aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2014-01-03 12:59:30 +0200
committerArnold D. Robbins <arnold@skeeve.com>2014-01-03 12:59:30 +0200
commit253b88d9f30c3513ab5c525e0a63cc3b055fd80d (patch)
tree94b1e4868ce83468642eac5591f5b74d0d10d9c3
parentc34e30427363c70688233a4ce0be44dfc92c6226 (diff)
parent4a7dc37ea7122759469ee93eae9dadea455d658b (diff)
downloadegawk-253b88d9f30c3513ab5c525e0a63cc3b055fd80d.tar.gz
egawk-253b88d9f30c3513ab5c525e0a63cc3b055fd80d.tar.bz2
egawk-253b88d9f30c3513ab5c525e0a63cc3b055fd80d.zip
Merge branch 'gawk-4.1-stable'
-rw-r--r--ChangeLog7
-rw-r--r--NEWS6
-rwxr-xr-xconfig.guess6
-rwxr-xr-xconfig.rpath106
-rwxr-xr-xconfig.sub70
-rwxr-xr-xdepcomp433
-rw-r--r--dfa.c4
-rw-r--r--dfa.h2
-rw-r--r--doc/ChangeLog5
-rw-r--r--doc/gawk.info1086
-rw-r--r--doc/gawk.texi22
-rw-r--r--doc/gawktexi.in22
-rw-r--r--extension/build-aux/ChangeLog5
-rwxr-xr-xextension/build-aux/config.guess6
-rwxr-xr-xextension/build-aux/config.rpath106
-rwxr-xr-xextension/build-aux/config.sub99
-rwxr-xr-xextension/build-aux/depcomp442
-rwxr-xr-xextension/build-aux/install-sh337
-rwxr-xr-xinstall-sh337
-rw-r--r--po/fi.gmobin45006 -> 84089 bytes
-rw-r--r--po/fi.po1475
21 files changed, 2186 insertions, 2390 deletions
diff --git a/ChangeLog b/ChangeLog
index f0d9ee13..8199425d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2014-01-03 Arnold D. Robbins <arnold@skeeve.com>
+
+ * config.guess, config.rpath, config.sub, depcomp,
+ install-sh: Updated.
+ * dfa.h, dfa.c: Sync with GNU grep; comment fix and copyright year.
+ * NEWS: Updated some, including copyright year.
+
2013-12-26 Arnold D. Robbins <arnold@skeeve.com>
* README: Add John Malmberg for VMS.
diff --git a/NEWS b/NEWS
index d444526e..d3d002b4 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
- Copyright (C) 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
+ Copyright (C) 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
@@ -22,7 +22,7 @@ Changes from 4.1.0 to 4.1.1
1. The "stat" extension now includes a "devbsize" element which indicates
the units for the "nblocks" element
-2. The extension facility works on MinGW. Many of the extensions can be
+2. The extension now facility works on MinGW. Many of the extensions can be
built and used directly.
3. A number of bugs in the pretty-printing / profiling code have been fixed.
@@ -31,7 +31,7 @@ Changes from 4.1.0 to 4.1.1
5. The debugger now lists source code correctly under Cygwin.
-6. Configuration and building Mac OS X libreadline should work now.
+6. Configuration and building with the Mac OS X libreadline should work now.
7. The -O option now works again.
diff --git a/config.guess b/config.guess
index 9afd6762..4438cd70 100755
--- a/config.guess
+++ b/config.guess
@@ -1,8 +1,8 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2013 Free Software Foundation, Inc.
+# Copyright 1992-2014 Free Software Foundation, Inc.
-timestamp='2013-11-29'
+timestamp='2014-01-01'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -50,7 +50,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2013 Free Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
diff --git a/config.rpath b/config.rpath
index 17298f23..ab6fd995 100755
--- a/config.rpath
+++ b/config.rpath
@@ -2,7 +2,7 @@
# Output a system dependent set of variables, describing how to set the
# run time search path of shared libraries in an executable.
#
-# Copyright 1996-2010 Free Software Foundation, Inc.
+# Copyright 1996-2014 Free Software Foundation, Inc.
# Taken from GNU libtool, 2001
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
@@ -25,7 +25,7 @@
# known workaround is to choose shorter directory names for the build
# directory and/or the installation directory.
-# All known linkers require a `.a' archive for static linking (except MSVC,
+# All known linkers require a '.a' archive for static linking (except MSVC,
# which needs '.lib').
libext=a
shrext=.so
@@ -57,13 +57,6 @@ else
aix*)
wl='-Wl,'
;;
- darwin*)
- case $cc_basename in
- xlc*)
- wl='-Wl,'
- ;;
- esac
- ;;
mingw* | cygwin* | pw32* | os2* | cegcc*)
;;
hpux9* | hpux10* | hpux11*)
@@ -72,9 +65,7 @@ else
irix5* | irix6* | nonstopux*)
wl='-Wl,'
;;
- newsos6)
- ;;
- linux* | k*bsd*-gnu)
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
case $cc_basename in
ecc*)
wl='-Wl,'
@@ -85,17 +76,26 @@ else
lf95*)
wl='-Wl,'
;;
- pgcc | pgf77 | pgf90)
+ nagfor*)
+ wl='-Wl,-Wl,,'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
wl='-Wl,'
;;
ccc*)
wl='-Wl,'
;;
+ xl* | bgxl* | bgf* | mpixl*)
+ wl='-Wl,'
+ ;;
como)
wl='-lopt='
;;
*)
case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ F* | *Sun*Fortran*)
+ wl=
+ ;;
*Sun\ C*)
wl='-Wl,'
;;
@@ -103,13 +103,24 @@ else
;;
esac
;;
+ newsos6)
+ ;;
+ *nto* | *qnx*)
+ ;;
osf3* | osf4* | osf5*)
wl='-Wl,'
;;
rdos*)
;;
solaris*)
- wl='-Wl,'
+ case $cc_basename in
+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ wl='-Qoption ld '
+ ;;
+ *)
+ wl='-Wl,'
+ ;;
+ esac
;;
sunos4*)
wl='-Qoption ld '
@@ -171,15 +182,14 @@ if test "$with_gnu_ld" = yes; then
fi
;;
amigaos*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
- # that the semantics of dynamic libraries on AmigaOS, at least up
- # to version 4, is to share data among multiple programs linked
- # with the same dynamic library. Since this doesn't match the
- # behavior of shared libraries on other platforms, we cannot use
- # them.
- ld_shlibs=no
+ case "$host_cpu" in
+ powerpc)
+ ;;
+ m68k)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
;;
beos*)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
@@ -198,11 +208,13 @@ if test "$with_gnu_ld" = yes; then
ld_shlibs=no
fi
;;
+ haiku*)
+ ;;
interix[3-9]*)
hardcode_direct=no
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
;;
- gnu* | linux* | k*bsd*-gnu)
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
@@ -325,10 +337,14 @@ else
fi
;;
amigaos*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- # see comment about different semantics on the GNU ld section
- ld_shlibs=no
+ case "$host_cpu" in
+ powerpc)
+ ;;
+ m68k)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
;;
bsdi[45]*)
;;
@@ -342,24 +358,15 @@ else
;;
darwin* | rhapsody*)
hardcode_direct=no
- if test "$GCC" = yes ; then
+ if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then
:
else
- case $cc_basename in
- xlc*)
- ;;
- *)
- ld_shlibs=no
- ;;
- esac
+ ld_shlibs=no
fi
;;
dgux*)
hardcode_libdir_flag_spec='-L$libdir'
;;
- freebsd1*)
- ld_shlibs=no
- ;;
freebsd2.2*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
@@ -420,6 +427,8 @@ else
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator=:
;;
+ *nto* | *qnx*)
+ ;;
openbsd*)
if test -f /usr/libexec/ld.so; then
hardcode_direct=yes
@@ -515,7 +524,12 @@ case "$host_os" in
library_names_spec='$libname$shrext'
;;
amigaos*)
- library_names_spec='$libname.a'
+ case "$host_cpu" in
+ powerpc*)
+ library_names_spec='$libname$shrext' ;;
+ m68k)
+ library_names_spec='$libname.a' ;;
+ esac
;;
beos*)
library_names_spec='$libname$shrext'
@@ -534,8 +548,6 @@ case "$host_os" in
dgux*)
library_names_spec='$libname$shrext'
;;
- freebsd1*)
- ;;
freebsd* | dragonfly*)
case "$host_os" in
freebsd[123]*)
@@ -547,6 +559,9 @@ case "$host_os" in
gnu*)
library_names_spec='$libname$shrext'
;;
+ haiku*)
+ library_names_spec='$libname$shrext'
+ ;;
hpux9* | hpux10* | hpux11*)
case $host_cpu in
ia64*)
@@ -582,7 +597,7 @@ case "$host_os" in
;;
linux*oldld* | linux*aout* | linux*coff*)
;;
- linux* | k*bsd*-gnu)
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
library_names_spec='$libname$shrext'
;;
knetbsd*-gnu)
@@ -594,7 +609,7 @@ case "$host_os" in
newsos6)
library_names_spec='$libname$shrext'
;;
- nto-qnx*)
+ *nto* | *qnx*)
library_names_spec='$libname$shrext'
;;
openbsd*)
@@ -625,6 +640,9 @@ case "$host_os" in
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
library_names_spec='$libname$shrext'
;;
+ tpf*)
+ library_names_spec='$libname$shrext'
+ ;;
uts4*)
library_names_spec='$libname$shrext'
;;
diff --git a/config.sub b/config.sub
index 8df55110..092cff00 100755
--- a/config.sub
+++ b/config.sub
@@ -1,24 +1,18 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-# 2011, 2012 Free Software Foundation, Inc.
+# Copyright 1992-2014 Free Software Foundation, Inc.
-timestamp='2012-12-06'
+timestamp='2014-01-01'
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 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.
+# 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, see <http://www.gnu.org/licenses/>.
@@ -26,11 +20,12 @@ timestamp='2012-12-06'
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted GNU ChangeLog entry.
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
#
# Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument.
@@ -73,9 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -259,12 +252,12 @@ case $basic_machine in
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
- | arc \
+ | arc | arceb \
| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
| avr | avr32 \
| be32 | be64 \
| bfin \
- | c4x | clipper \
+ | c4x | c8051 | clipper \
| d10v | d30v | dlx | dsp16xx \
| epiphany \
| fido | fr30 | frv \
@@ -272,6 +265,7 @@ case $basic_machine in
| hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
+ | k1om \
| le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
@@ -293,16 +287,17 @@ case $basic_machine in
| mipsisa64r2 | mipsisa64r2el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
+ | mipsr5900 | mipsr5900el \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
| moxie \
| mt \
| msp430 \
| nds32 | nds32le | nds32be \
- | nios | nios2 \
+ | nios | nios2 | nios2eb | nios2el \
| ns16k | ns32k \
| open8 \
- | or32 \
+ | or1k | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \
@@ -330,7 +325,7 @@ case $basic_machine in
c6x)
basic_machine=tic6x-unknown
;;
- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
basic_machine=$basic_machine-unknown
os=-none
;;
@@ -372,13 +367,13 @@ case $basic_machine in
| aarch64-* | aarch64_be-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
| be32-* | be64-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
- | clipper-* | craynv-* | cydra-* \
+ | c8051-* | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
@@ -387,6 +382,7 @@ case $basic_machine in
| hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
+ | k1om-* \
| le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
@@ -410,12 +406,13 @@ case $basic_machine in
| mipsisa64r2-* | mipsisa64r2el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipsr5900-* | mipsr5900el-* \
| mipstx39-* | mipstx39el-* \
| mmix-* \
| mt-* \
| msp430-* \
| nds32-* | nds32le-* | nds32be-* \
- | nios-* | nios2-* \
+ | nios-* | nios2-* | nios2eb-* | nios2el-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| open8-* \
| orion-* \
@@ -799,7 +796,7 @@ case $basic_machine in
os=-mingw64
;;
mingw32)
- basic_machine=i386-pc
+ basic_machine=i686-pc
os=-mingw32
;;
mingw32ce)
@@ -835,7 +832,7 @@ case $basic_machine in
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
;;
msys)
- basic_machine=i386-pc
+ basic_machine=i686-pc
os=-msys
;;
mvs)
@@ -1357,7 +1354,7 @@ case $os in
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
- | -sym* | -kopensolaris* \
+ | -sym* | -kopensolaris* | -plan9* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* | -aros* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
@@ -1503,9 +1500,6 @@ case $os in
-aros*)
os=-aros
;;
- -kaos*)
- os=-kaos
- ;;
-zvmoe)
os=-zvmoe
;;
@@ -1554,6 +1548,9 @@ case $basic_machine in
c4x-* | tic4x-*)
os=-coff
;;
+ c8051-*)
+ os=-elf
+ ;;
hexagon-*)
os=-elf
;;
@@ -1597,6 +1594,9 @@ case $basic_machine in
mips*-*)
os=-elf
;;
+ or1k-*)
+ os=-elf
+ ;;
or32-*)
os=-coff
;;
diff --git a/depcomp b/depcomp
index e1f51f48..31788017 100755
--- a/depcomp
+++ b/depcomp
@@ -1,9 +1,9 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
-scriptversion=2012-07-12.20; # UTC
+scriptversion=2013-05-30.07; # UTC
-# Copyright (C) 1999-2012 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 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
@@ -27,9 +27,9 @@ scriptversion=2012-07-12.20; # UTC
case $1 in
'')
- echo "$0: No command. Try '$0 --help' for more information." 1>&2
- exit 1;
- ;;
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
-h | --h*)
cat <<\EOF
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
@@ -56,11 +56,65 @@ EOF
;;
esac
+# Get the directory component of the given path, and save it in the
+# global variables '$dir'. Note that this directory component will
+# be either empty or ending with a '/' character. This is deliberate.
+set_dir_from ()
+{
+ case $1 in
+ */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
+ *) dir=;;
+ esac
+}
+
+# Get the suffix-stripped basename of the given path, and save it the
+# global variable '$base'.
+set_base_from ()
+{
+ base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
+}
+
+# If no dependency file was actually created by the compiler invocation,
+# we still have to create a dummy depfile, to avoid errors with the
+# Makefile "include basename.Plo" scheme.
+make_dummy_depfile ()
+{
+ echo "#dummy" > "$depfile"
+}
+
+# Factor out some common post-processing of the generated depfile.
+# Requires the auxiliary global variable '$tmpdepfile' to be set.
+aix_post_process_depfile ()
+{
+ # If the compiler actually managed to produce a dependency file,
+ # post-process it.
+ if test -f "$tmpdepfile"; then
+ # Each line is of the form 'foo.o: dependency.h'.
+ # Do two passes, one to just change these to
+ # $object: dependency.h
+ # and one to simply output
+ # dependency.h:
+ # which is needed to avoid the deleted-header problem.
+ { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
+ sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
+ } > "$depfile"
+ rm -f "$tmpdepfile"
+ else
+ make_dummy_depfile
+ fi
+}
+
# A tabulation character.
tab=' '
# A newline character.
nl='
'
+# Character ranges might be problematic outside the C locale.
+# These definitions help.
+upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
+lower=abcdefghijklmnopqrstuvwxyz
+digits=0123456789
+alpha=${upper}${lower}
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
@@ -88,32 +142,32 @@ if test "$depmode" = hp; then
fi
if test "$depmode" = dashXmstdout; then
- # This is just like dashmstdout with a different argument.
- dashmflag=-xM
- depmode=dashmstdout
+ # This is just like dashmstdout with a different argument.
+ dashmflag=-xM
+ depmode=dashmstdout
fi
cygpath_u="cygpath -u -f -"
if test "$depmode" = msvcmsys; then
- # This is just like msvisualcpp but w/o cygpath translation.
- # Just convert the backslash-escaped backslashes to single forward
- # slashes to satisfy depend.m4
- cygpath_u='sed s,\\\\,/,g'
- depmode=msvisualcpp
+ # This is just like msvisualcpp but w/o cygpath translation.
+ # Just convert the backslash-escaped backslashes to single forward
+ # slashes to satisfy depend.m4
+ cygpath_u='sed s,\\\\,/,g'
+ depmode=msvisualcpp
fi
if test "$depmode" = msvc7msys; then
- # This is just like msvc7 but w/o cygpath translation.
- # Just convert the backslash-escaped backslashes to single forward
- # slashes to satisfy depend.m4
- cygpath_u='sed s,\\\\,/,g'
- depmode=msvc7
+ # This is just like msvc7 but w/o cygpath translation.
+ # Just convert the backslash-escaped backslashes to single forward
+ # slashes to satisfy depend.m4
+ cygpath_u='sed s,\\\\,/,g'
+ depmode=msvc7
fi
if test "$depmode" = xlc; then
- # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
- gccflag=-qmakedep=gcc,-MF
- depmode=gcc
+ # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
+ gccflag=-qmakedep=gcc,-MF
+ depmode=gcc
fi
case "$depmode" in
@@ -136,8 +190,7 @@ gcc3)
done
"$@"
stat=$?
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
@@ -163,15 +216,14 @@ gcc)
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
- alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-## The second -e expression handles DOS-style file names with drive letters.
+ # The second -e expression handles DOS-style file names with drive
+ # letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the "deleted header file" problem.
@@ -180,15 +232,15 @@ gcc)
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
- tr ' ' "$nl" < "$tmpdepfile" |
## Some versions of gcc put a space before the ':'. On the theory
## that the space means something, we add a space to the output as
## well. hp depmode also adds that space, but also prefixes the VPATH
## to the object. Take care to not repeat it in the output.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
- | sed -e 's/$/ :/' >> "$depfile"
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
@@ -199,47 +251,6 @@ hp)
exit 1
;;
-sgi)
- if test "$libtool" = yes; then
- "$@" "-Wp,-MDupdate,$tmpdepfile"
- else
- "$@" -MDupdate "$tmpdepfile"
- fi
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
-
- if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
- echo "$object : \\" > "$depfile"
-
- # Clip off the initial element (the dependent). Don't try to be
- # clever and replace this with sed code, as IRIX sed won't handle
- # lines with more than a fixed number of characters (4096 in
- # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
- # the IRIX cc adds comments like '#:fec' to the end of the
- # dependency line.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
- tr "$nl" ' ' >> "$depfile"
- echo >> "$depfile"
-
- # The second pass generates a dummy entry for each header file.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
- >> "$depfile"
- else
- # The sourcefile does not contain any dependencies, so just
- # store a dummy comment line, to avoid errors with the Makefile
- # "include basename.Plo" scheme.
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
-
xlc)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
@@ -253,9 +264,8 @@ aix)
# current directory. Also, the AIX compiler puts '$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
- base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+ set_dir_from "$object"
+ set_base_from "$object"
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.u
tmpdepfile2=$base.u
@@ -268,9 +278,7 @@ aix)
"$@" -M
fi
stat=$?
-
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi
@@ -279,65 +287,37 @@ aix)
do
test -f "$tmpdepfile" && break
done
- if test -f "$tmpdepfile"; then
- # Each line is of the form 'foo.o: dependent.h'.
- # Do two passes, one to just change these to
- # '$object: dependent.h' and one to simply 'dependent.h:'.
- sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
- else
- # The sourcefile does not contain any dependencies, so just
- # store a dummy comment line, to avoid errors with the Makefile
- # "include basename.Plo" scheme.
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
+ aix_post_process_depfile
;;
-icc)
- # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
- # However on
- # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
- # ICC 7.0 will fill foo.d with something like
- # foo.o: sub/foo.c
- # foo.o: sub/foo.h
- # which is wrong. We want
- # sub/foo.o: sub/foo.c
- # sub/foo.o: sub/foo.h
- # sub/foo.c:
- # sub/foo.h:
- # ICC 7.1 will output
- # foo.o: sub/foo.c sub/foo.h
- # and will wrap long lines using '\':
- # foo.o: sub/foo.c ... \
- # sub/foo.h ... \
- # ...
- # tcc 0.9.26 (FIXME still under development at the moment of writing)
- # will emit a similar output, but also prepend the continuation lines
- # with horizontal tabulation characters.
+tcc)
+ # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
+ # FIXME: That version still under development at the moment of writing.
+ # Make that this statement remains true also for stable, released
+ # versions.
+ # It will wrap lines (doesn't matter whether long or short) with a
+ # trailing '\', as in:
+ #
+ # foo.o : \
+ # foo.c \
+ # foo.h \
+ #
+ # It will put a trailing '\' even on the last line, and will use leading
+ # spaces rather than leading tabs (at least since its commit 0394caf7
+ # "Emit spaces for -MD").
"$@" -MD -MF "$tmpdepfile"
stat=$?
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
- # Each line is of the form 'foo.o: dependent.h',
- # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
- # Do two passes, one to just change these to
- # '$object: dependent.h' and one to simply 'dependent.h:'.
- sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \
- < "$tmpdepfile" > "$depfile"
- sed '
- s/[ '"$tab"'][ '"$tab"']*/ /g
- s/^ *//
- s/ *\\*$//
- s/^[^:]*: *//
- /^$/d
- /:$/d
- s/$/ :/
- ' < "$tmpdepfile" >> "$depfile"
+ # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
+ # We have to change lines of the first kind to '$object: \'.
+ sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
+ # And for each line of the second kind, we have to emit a 'dep.h:'
+ # dummy dependency, to avoid the deleted-header problem.
+ sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
rm -f "$tmpdepfile"
;;
@@ -356,34 +336,37 @@ pgcc)
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
+ set_dir_from "$object"
# Use the source, not the object, to determine the base name, since
# that's sadly what pgcc will do too.
- base=`echo "$source" | sed -e 's|^.*/||' -e 's/\.[-_a-zA-Z0-9]*$//'`
- tmpdepfile="$base.d"
+ set_base_from "$source"
+ tmpdepfile=$base.d
# For projects that build the same source file twice into different object
# files, the pgcc approach of using the *source* file root name can cause
# problems in parallel builds. Use a locking strategy to avoid stomping on
# the same $tmpdepfile.
- lockdir="$base.d-lock"
- trap "echo '$0: caught signal, cleaning up...' >&2; rm -rf $lockdir" 1 2 13 15
+ lockdir=$base.d-lock
+ trap "
+ echo '$0: caught signal, cleaning up...' >&2
+ rmdir '$lockdir'
+ exit 1
+ " 1 2 13 15
numtries=100
i=$numtries
- while test $i -gt 0 ; do
+ while test $i -gt 0; do
# mkdir is a portable test-and-set.
- if mkdir $lockdir 2>/dev/null; then
+ if mkdir "$lockdir" 2>/dev/null; then
# This process acquired the lock.
"$@" -MD
stat=$?
# Release the lock.
- rm -rf $lockdir
+ rmdir "$lockdir"
break
else
- ## the lock is being held by a different process,
- ## wait until the winning process is done or we timeout
- while test -d $lockdir && test $i -gt 0; do
+ # If the lock is being held by a different process, wait
+ # until the winning process is done or we timeout.
+ while test -d "$lockdir" && test $i -gt 0; do
sleep 1
i=`expr $i - 1`
done
@@ -409,8 +392,8 @@ pgcc)
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this invocation
# correctly. Breaking it into two sed invocations is a workaround.
- sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
- sed -e 's/$/ :/' >> "$depfile"
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
+ | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
@@ -421,9 +404,8 @@ hp2)
# 'foo.d', which lands next to the object file, wherever that
# happens to be.
# Much of this is similar to the tru64 case; see comments there.
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
- base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+ set_dir_from "$object"
+ set_base_from "$object"
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir.libs/$base.d
@@ -434,8 +416,7 @@ hp2)
"$@" +Maked
fi
stat=$?
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
@@ -445,76 +426,61 @@ hp2)
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
- sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
+ sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
# Add 'dependent.h:' lines.
sed -ne '2,${
- s/^ *//
- s/ \\*$//
- s/$/:/
- p
- }' "$tmpdepfile" >> "$depfile"
+ s/^ *//
+ s/ \\*$//
+ s/$/:/
+ p
+ }' "$tmpdepfile" >> "$depfile"
else
- echo "#dummy" > "$depfile"
+ make_dummy_depfile
fi
rm -f "$tmpdepfile" "$tmpdepfile2"
;;
tru64)
- # The Tru64 compiler uses -MD to generate dependencies as a side
- # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
- # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
- # dependencies in 'foo.d' instead, so we check for that too.
- # Subdirectories are respected.
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
- base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
-
- if test "$libtool" = yes; then
- # With Tru64 cc, shared objects can also be used to make a
- # static library. This mechanism is used in libtool 1.4 series to
- # handle both shared and static libraries in a single compilation.
- # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
- #
- # With libtool 1.5 this exception was removed, and libtool now
- # generates 2 separate objects for the 2 libraries. These two
- # compilations output dependencies in $dir.libs/$base.o.d and
- # in $dir$base.o.d. We have to check for both files, because
- # one of the two compilations can be disabled. We should prefer
- # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
- # automatically cleaned when .libs/ is deleted, while ignoring
- # the former would cause a distcleancheck panic.
- tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
- tmpdepfile2=$dir$base.o.d # libtool 1.5
- tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
- tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
- "$@" -Wc,-MD
- else
- tmpdepfile1=$dir$base.o.d
- tmpdepfile2=$dir$base.d
- tmpdepfile3=$dir$base.d
- tmpdepfile4=$dir$base.d
- "$@" -MD
- fi
-
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
- do
- test -f "$tmpdepfile" && break
- done
- if test -f "$tmpdepfile"; then
- sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
- else
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
+ # The Tru64 compiler uses -MD to generate dependencies as a side
+ # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+ # dependencies in 'foo.d' instead, so we check for that too.
+ # Subdirectories are respected.
+ set_dir_from "$object"
+ set_base_from "$object"
+
+ if test "$libtool" = yes; then
+ # Libtool generates 2 separate objects for the 2 libraries. These
+ # two compilations output dependencies in $dir.libs/$base.o.d and
+ # in $dir$base.o.d. We have to check for both files, because
+ # one of the two compilations can be disabled. We should prefer
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+ # automatically cleaned when .libs/ is deleted, while ignoring
+ # the former would cause a distcleancheck panic.
+ tmpdepfile1=$dir$base.o.d # libtool 1.5
+ tmpdepfile2=$dir.libs/$base.o.d # Likewise.
+ tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
+ "$@" -Wc,-MD
+ else
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir$base.d
+ tmpdepfile3=$dir$base.d
+ "$@" -MD
+ fi
+
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ # Same post-processing that is required for AIX mode.
+ aix_post_process_depfile
+ ;;
msvc7)
if test "$libtool" = yes; then
@@ -525,8 +491,7 @@ msvc7)
"$@" $showIncludes > "$tmpdepfile"
stat=$?
grep -v '^Note: including file: ' "$tmpdepfile"
- if test "$stat" = 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
@@ -552,6 +517,7 @@ $ {
G
p
}' >> "$depfile"
+ echo >> "$depfile" # make sure the fragment doesn't end with a backslash
rm -f "$tmpdepfile"
;;
@@ -603,13 +569,14 @@ dashmstdout)
# in the target name. This is to cope with DOS-style filenames:
# a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
"$@" $dashmflag |
- sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
+ sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
- tr ' ' "$nl" < "$tmpdepfile" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process this sed invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
@@ -662,10 +629,12 @@ makedepend)
# makedepend may prepend the VPATH from the source file name to the object.
# No need to regex-escape $object, excess matching of '.' is harmless.
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
- sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process the last invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed '1,2d' "$tmpdepfile" \
+ | tr ' ' "$nl" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
@@ -701,10 +670,10 @@ cpp)
esac
done
- "$@" -E |
- sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
- -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
- sed '$ s: \\$::' > "$tmpdepfile"
+ "$@" -E \
+ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ | sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
@@ -736,15 +705,15 @@ msvisualcpp)
shift
;;
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
- set fnord "$@"
- shift
- shift
- ;;
+ set fnord "$@"
+ shift
+ shift
+ ;;
*)
- set fnord "$@" "$arg"
- shift
- shift
- ;;
+ set fnord "$@" "$arg"
+ shift
+ shift
+ ;;
esac
done
"$@" -E 2>/dev/null |
diff --git a/dfa.c b/dfa.c
index a75d332c..44bb220e 100644
--- a/dfa.c
+++ b/dfa.c
@@ -1,5 +1,5 @@
/* dfa.c - deterministic extended regexp routines for GNU
- Copyright (C) 1988, 1998, 2000, 2002, 2004-2005, 2007-2013 Free Software
+ Copyright (C) 1988, 1998, 2000, 2002, 2004-2005, 2007-2014 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
@@ -470,7 +470,7 @@ static void dfamust (struct dfa *dfa);
static void regexp (void);
/* These two macros are identical to the ones in gnulib's xalloc.h,
- except that they not to case the result to "(t *)", and thus may
+ except that they do not cast the result to "(t *)", and thus may
be used via type-free CALLOC and MALLOC macros. */
#undef XNMALLOC
#undef XCALLOC
diff --git a/dfa.h b/dfa.h
index c58485a7..bacd4894 100644
--- a/dfa.h
+++ b/dfa.h
@@ -1,5 +1,5 @@
/* dfa.h - declarations for GNU deterministic regexp compiler
- Copyright (C) 1988, 1998, 2007, 2009-2013 Free Software Foundation, Inc.
+ Copyright (C) 1988, 1998, 2007, 2009-2014 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
diff --git a/doc/ChangeLog b/doc/ChangeLog
index e40a2127..b953d1b0 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,8 @@
+2014-01-03 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in (Full Line Fields): New node.
+ Update copyright year.
+
2013-12-26 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in: More minor additions / fixes.
diff --git a/doc/gawk.info b/doc/gawk.info
index e45050b2..91962482 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -10,8 +10,8 @@ START-INFO-DIR-ENTRY
END-INFO-DIR-ENTRY
Copyright (C) 1989, 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011, 2012, 2013 Free
-Software Foundation, Inc.
+2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011, 2012, 2013, 2014
+Free Software Foundation, Inc.
This is Edition 4.1 of `GAWK: Effective AWK Programming: A User's
@@ -42,8 +42,8 @@ This file documents `awk', a program that you can use to select
particular records in a file and perform operations upon them.
Copyright (C) 1989, 1991, 1992, 1993, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011, 2012, 2013 Free
-Software Foundation, Inc.
+2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011, 2012, 2013, 2014
+Free Software Foundation, Inc.
This is Edition 4.1 of `GAWK: Effective AWK Programming: A User's
@@ -193,6 +193,7 @@ texts being (a) (see below), and with the Back-Cover Texts being (b)
field.
* Command Line Field Separator:: Setting `FS' from the
command-line.
+* Full Line Fields:: Making the full line be a single field.
* Field Splitting Summary:: Some final points and a summary table.
* Constant Size:: Reading constant width data.
* Splitting By Content:: Defining Fields By Content
@@ -4381,6 +4382,7 @@ File: gawk.info, Node: Field Separators, Next: Constant Size, Prev: Changing
* Regexp Field Splitting:: Using regexps as the field separator.
* Single Character Fields:: Making each character a separate field.
* Command Line Field Separator:: Setting `FS' from the command-line.
+* Full Line Fields:: Making the full line be a single field.
* Field Splitting Summary:: Some final points and a summary table.
The "field separator", which is either a single character or a
@@ -4562,7 +4564,7 @@ Options::), if `FS' is the null string, then `gawk' also behaves this
way.

-File: gawk.info, Node: Command Line Field Separator, Next: Field Splitting Summary, Prev: Single Character Fields, Up: Field Separators
+File: gawk.info, Node: Command Line Field Separator, Next: Full Line Fields, Prev: Single Character Fields, Up: Field Separators
4.5.4 Setting `FS' from the Command Line
----------------------------------------
@@ -4649,9 +4651,27 @@ the entries for users who have no password:
awk -F: '$2 == ""' /etc/passwd

-File: gawk.info, Node: Field Splitting Summary, Prev: Command Line Field Separator, Up: Field Separators
+File: gawk.info, Node: Full Line Fields, Next: Field Splitting Summary, Prev: Command Line Field Separator, Up: Field Separators
-4.5.5 Field-Splitting Summary
+4.5.5 Making The Full Line Be A Single Field
+--------------------------------------------
+
+Occasionally, it's useful to treat the whole input line as a single
+field. This can be done easily and portably simply by setting `FS' to
+`"\n"' (a newline).(1)
+
+ awk -F'\n' 'PROGRAM' FILES ...
+
+When you do this, `$1' is the same as `$0'.
+
+ ---------- Footnotes ----------
+
+ (1) Thanks to Andrew Schorr for this tip.
+
+
+File: gawk.info, Node: Field Splitting Summary, Prev: Full Line Fields, Up: Field Separators
+
+4.5.6 Field-Splitting Summary
-----------------------------
It is important to remember that when you assign a string constant as
@@ -29908,7 +29928,7 @@ Index
* Beebe, Nelson: Acknowledgments. (line 60)
* BEGIN pattern <1>: Profiling. (line 62)
* BEGIN pattern <2>: BEGIN/END. (line 6)
-* BEGIN pattern <3>: Field Separators. (line 44)
+* BEGIN pattern <3>: Field Separators. (line 45)
* BEGIN pattern: Records. (line 29)
* BEGIN pattern, assert() user-defined function and: Assert Function.
(line 83)
@@ -30567,8 +30587,8 @@ Index
* field operator $: Fields. (line 19)
* field operators, dollar sign as: Fields. (line 19)
* field separators <1>: User-modified. (line 56)
-* field separators: Field Separators. (line 14)
-* field separators, choice of: Field Separators. (line 50)
+* field separators: Field Separators. (line 15)
+* field separators, choice of: Field Separators. (line 51)
* field separators, FIELDWIDTHS variable and: User-modified. (line 35)
* field separators, FPAT variable and: User-modified. (line 45)
* field separators, in multiline records: Multiple Line. (line 41)
@@ -30579,7 +30599,7 @@ Index
* field separators, POSIX and: Fields. (line 6)
* field separators, regular expressions as <1>: Regexp Field Splitting.
(line 6)
-* field separators, regular expressions as: Field Separators. (line 50)
+* field separators, regular expressions as: Field Separators. (line 51)
* field separators, See Also OFS: Changing Fields. (line 64)
* field separators, spaces as: Cut Program. (line 109)
* fields <1>: Basic High Level. (line 73)
@@ -30592,7 +30612,7 @@ Index
* fields, number of: Fields. (line 33)
* fields, numbers: Nonconstant Fields. (line 6)
* fields, printing: Print Examples. (line 21)
-* fields, separating: Field Separators. (line 14)
+* fields, separating: Field Separators. (line 15)
* fields, single-character: Single Character Fields.
(line 6)
* FIELDWIDTHS variable <1>: User-modified. (line 35)
@@ -30701,12 +30721,12 @@ Index
* Free Software Foundation (FSF): Manual History. (line 6)
* FreeBSD: Glossary. (line 624)
* FS variable <1>: User-modified. (line 56)
-* FS variable: Field Separators. (line 14)
+* FS variable: Field Separators. (line 15)
* FS variable, --field-separator option and: Options. (line 21)
* FS variable, as null string: Single Character Fields.
(line 20)
* FS variable, as TAB character: Options. (line 259)
-* FS variable, changing value of: Field Separators. (line 34)
+* FS variable, changing value of: Field Separators. (line 35)
* FS variable, running awk programs and: Cut Program. (line 68)
* FS variable, setting from command line: Command Line Field Separator.
(line 6)
@@ -31643,7 +31663,7 @@ Index
* regexp constants, vs. string constants: Computed Regexps. (line 38)
* regexp, See regular expressions: Regexp. (line 6)
* regular expressions: Regexp. (line 6)
-* regular expressions as field separators: Field Separators. (line 50)
+* regular expressions as field separators: Field Separators. (line 51)
* regular expressions, anchors in: Regexp Operators. (line 22)
* regular expressions, as field separators: Regexp Field Splitting.
(line 6)
@@ -32013,7 +32033,7 @@ Index
* troubleshooting, --non-decimal-data option: Options. (line 207)
* troubleshooting, == operator: Comparison Operators.
(line 37)
-* troubleshooting, awk uses FS not IFS: Field Separators. (line 29)
+* troubleshooting, awk uses FS not IFS: Field Separators. (line 30)
* troubleshooting, backslash before nonspecial character: Escape Sequences.
(line 112)
* troubleshooting, division: Arithmetic Ops. (line 44)
@@ -32207,521 +32227,523 @@ Index

Tag Table:
-Node: Top1360
-Node: Foreword40460
-Node: Preface44805
-Ref: Preface-Footnote-147858
-Ref: Preface-Footnote-247954
-Node: History48186
-Node: Names50560
-Ref: Names-Footnote-152037
-Node: This Manual52109
-Ref: This Manual-Footnote-157883
-Node: Conventions57983
-Node: Manual History60139
-Ref: Manual History-Footnote-163587
-Ref: Manual History-Footnote-263628
-Node: How To Contribute63702
-Node: Acknowledgments64846
-Node: Getting Started69055
-Node: Running gawk71434
-Node: One-shot72620
-Node: Read Terminal73845
-Ref: Read Terminal-Footnote-175495
-Ref: Read Terminal-Footnote-275771
-Node: Long75942
-Node: Executable Scripts77318
-Ref: Executable Scripts-Footnote-179151
-Ref: Executable Scripts-Footnote-279253
-Node: Comments79800
-Node: Quoting82267
-Node: DOS Quoting86890
-Node: Sample Data Files87565
-Node: Very Simple90609
-Node: Two Rules95208
-Node: More Complex97355
-Ref: More Complex-Footnote-1100285
-Node: Statements/Lines100370
-Ref: Statements/Lines-Footnote-1104832
-Node: Other Features105097
-Node: When106025
-Node: Invoking Gawk108172
-Node: Command Line109633
-Node: Options110416
-Ref: Options-Footnote-1125808
-Node: Other Arguments125833
-Node: Naming Standard Input128491
-Node: Environment Variables129585
-Node: AWKPATH Variable130143
-Ref: AWKPATH Variable-Footnote-1132901
-Node: AWKLIBPATH Variable133161
-Node: Other Environment Variables133879
-Node: Exit Status136842
-Node: Include Files137517
-Node: Loading Shared Libraries141086
-Node: Obsolete142450
-Node: Undocumented143147
-Node: Regexp143389
-Node: Regexp Usage144778
-Node: Escape Sequences146804
-Node: Regexp Operators152473
-Ref: Regexp Operators-Footnote-1159853
-Ref: Regexp Operators-Footnote-2160000
-Node: Bracket Expressions160098
-Ref: table-char-classes161988
-Node: GNU Regexp Operators164511
-Node: Case-sensitivity168234
-Ref: Case-sensitivity-Footnote-1171202
-Ref: Case-sensitivity-Footnote-2171437
-Node: Leftmost Longest171545
-Node: Computed Regexps172746
-Node: Reading Files176083
-Node: Records178085
-Ref: Records-Footnote-1186974
-Node: Fields187011
-Ref: Fields-Footnote-1190044
-Node: Nonconstant Fields190130
-Node: Changing Fields192332
-Node: Field Separators198291
-Node: Default Field Splitting200920
-Node: Regexp Field Splitting202037
-Node: Single Character Fields205379
-Node: Command Line Field Separator206438
-Node: Field Splitting Summary209879
-Ref: Field Splitting Summary-Footnote-1212990
-Node: Constant Size213091
-Node: Splitting By Content217675
-Ref: Splitting By Content-Footnote-1221401
-Node: Multiple Line221441
-Ref: Multiple Line-Footnote-1227288
-Node: Getline227467
-Node: Plain Getline229683
-Node: Getline/Variable231778
-Node: Getline/File232925
-Node: Getline/Variable/File234266
-Ref: Getline/Variable/File-Footnote-1235865
-Node: Getline/Pipe235952
-Node: Getline/Variable/Pipe238651
-Node: Getline/Coprocess239758
-Node: Getline/Variable/Coprocess241010
-Node: Getline Notes241747
-Node: Getline Summary244534
-Ref: table-getline-variants244942
-Node: Read Timeout245854
-Ref: Read Timeout-Footnote-1249595
-Node: Command line directories249652
-Node: Printing250282
-Node: Print251913
-Node: Print Examples253250
-Node: Output Separators256034
-Node: OFMT257794
-Node: Printf259152
-Node: Basic Printf260058
-Node: Control Letters261597
-Node: Format Modifiers265409
-Node: Printf Examples271418
-Node: Redirection274133
-Node: Special Files281098
-Node: Special FD281631
-Ref: Special FD-Footnote-1285256
-Node: Special Network285330
-Node: Special Caveats286180
-Node: Close Files And Pipes286976
-Ref: Close Files And Pipes-Footnote-1293959
-Ref: Close Files And Pipes-Footnote-2294107
-Node: Expressions294257
-Node: Values295389
-Node: Constants296065
-Node: Scalar Constants296745
-Ref: Scalar Constants-Footnote-1297604
-Node: Nondecimal-numbers297786
-Node: Regexp Constants300786
-Node: Using Constant Regexps301261
-Node: Variables304316
-Node: Using Variables304971
-Node: Assignment Options306695
-Node: Conversion308567
-Ref: table-locale-affects314068
-Ref: Conversion-Footnote-1314692
-Node: All Operators314801
-Node: Arithmetic Ops315431
-Node: Concatenation317936
-Ref: Concatenation-Footnote-1320728
-Node: Assignment Ops320848
-Ref: table-assign-ops325836
-Node: Increment Ops327167
-Node: Truth Values and Conditions330601
-Node: Truth Values331684
-Node: Typing and Comparison332733
-Node: Variable Typing333526
-Ref: Variable Typing-Footnote-1337423
-Node: Comparison Operators337545
-Ref: table-relational-ops337955
-Node: POSIX String Comparison341504
-Ref: POSIX String Comparison-Footnote-1342460
-Node: Boolean Ops342598
-Ref: Boolean Ops-Footnote-1346676
-Node: Conditional Exp346767
-Node: Function Calls348499
-Node: Precedence352093
-Node: Locales355762
-Node: Patterns and Actions356851
-Node: Pattern Overview357905
-Node: Regexp Patterns359574
-Node: Expression Patterns360117
-Node: Ranges363802
-Node: BEGIN/END366768
-Node: Using BEGIN/END367530
-Ref: Using BEGIN/END-Footnote-1370261
-Node: I/O And BEGIN/END370367
-Node: BEGINFILE/ENDFILE372649
-Node: Empty375563
-Node: Using Shell Variables375879
-Node: Action Overview378164
-Node: Statements380521
-Node: If Statement382375
-Node: While Statement383874
-Node: Do Statement385918
-Node: For Statement387074
-Node: Switch Statement390226
-Node: Break Statement392323
-Node: Continue Statement394313
-Node: Next Statement396106
-Node: Nextfile Statement398496
-Node: Exit Statement401139
-Node: Built-in Variables403555
-Node: User-modified404650
-Ref: User-modified-Footnote-1413008
-Node: Auto-set413070
-Ref: Auto-set-Footnote-1426540
-Ref: Auto-set-Footnote-2426745
-Node: ARGC and ARGV426801
-Node: Arrays430652
-Node: Array Basics432157
-Node: Array Intro432983
-Node: Reference to Elements437300
-Node: Assigning Elements439570
-Node: Array Example440061
-Node: Scanning an Array441793
-Node: Controlling Scanning444107
-Ref: Controlling Scanning-Footnote-1449194
-Node: Delete449510
-Ref: Delete-Footnote-1452275
-Node: Numeric Array Subscripts452332
-Node: Uninitialized Subscripts454515
-Node: Multidimensional456142
-Node: Multiscanning459234
-Node: Arrays of Arrays460823
-Node: Functions465463
-Node: Built-in466282
-Node: Calling Built-in467360
-Node: Numeric Functions469348
-Ref: Numeric Functions-Footnote-1473180
-Ref: Numeric Functions-Footnote-2473537
-Ref: Numeric Functions-Footnote-3473585
-Node: String Functions473854
-Ref: String Functions-Footnote-1496774
-Ref: String Functions-Footnote-2496903
-Ref: String Functions-Footnote-3497151
-Node: Gory Details497238
-Ref: table-sub-escapes498917
-Ref: table-sub-posix-92500271
-Ref: table-sub-proposed501622
-Ref: table-posix-sub502976
-Ref: table-gensub-escapes504521
-Ref: Gory Details-Footnote-1505697
-Ref: Gory Details-Footnote-2505748
-Node: I/O Functions505899
-Ref: I/O Functions-Footnote-1512884
-Node: Time Functions513031
-Ref: Time Functions-Footnote-1523964
-Ref: Time Functions-Footnote-2524032
-Ref: Time Functions-Footnote-3524190
-Ref: Time Functions-Footnote-4524301
-Ref: Time Functions-Footnote-5524413
-Ref: Time Functions-Footnote-6524640
-Node: Bitwise Functions524906
-Ref: table-bitwise-ops525468
-Ref: Bitwise Functions-Footnote-1529689
-Node: Type Functions529873
-Node: I18N Functions531024
-Node: User-defined532651
-Node: Definition Syntax533455
-Ref: Definition Syntax-Footnote-1538365
-Node: Function Example538434
-Node: Function Caveats541028
-Node: Calling A Function541449
-Node: Variable Scope542564
-Node: Pass By Value/Reference545527
-Node: Return Statement549035
-Node: Dynamic Typing552016
-Node: Indirect Calls552947
-Node: Library Functions562632
-Ref: Library Functions-Footnote-1566145
-Ref: Library Functions-Footnote-2566288
-Node: Library Names566459
-Ref: Library Names-Footnote-1569930
-Ref: Library Names-Footnote-2570150
-Node: General Functions570236
-Node: Strtonum Function571264
-Node: Assert Function574194
-Node: Round Function577520
-Node: Cliff Random Function579063
-Node: Ordinal Functions580079
-Ref: Ordinal Functions-Footnote-1583149
-Ref: Ordinal Functions-Footnote-2583401
-Node: Join Function583610
-Ref: Join Function-Footnote-1585381
-Node: Getlocaltime Function585581
-Node: Readfile Function589322
-Node: Data File Management591161
-Node: Filetrans Function591793
-Node: Rewind Function595862
-Node: File Checking597249
-Node: Empty Files598343
-Node: Ignoring Assigns600573
-Node: Getopt Function602126
-Ref: Getopt Function-Footnote-1613429
-Node: Passwd Functions613632
-Ref: Passwd Functions-Footnote-1622607
-Node: Group Functions622695
-Node: Walking Arrays630779
-Node: Sample Programs632916
-Node: Running Examples633590
-Node: Clones634318
-Node: Cut Program635542
-Node: Egrep Program645387
-Ref: Egrep Program-Footnote-1653160
-Node: Id Program653270
-Node: Split Program656886
-Ref: Split Program-Footnote-1660405
-Node: Tee Program660533
-Node: Uniq Program663336
-Node: Wc Program670765
-Ref: Wc Program-Footnote-1675031
-Ref: Wc Program-Footnote-2675231
-Node: Miscellaneous Programs675323
-Node: Dupword Program676511
-Node: Alarm Program678542
-Node: Translate Program683295
-Ref: Translate Program-Footnote-1687682
-Ref: Translate Program-Footnote-2687930
-Node: Labels Program688064
-Ref: Labels Program-Footnote-1691435
-Node: Word Sorting691519
-Node: History Sorting695403
-Node: Extract Program697242
-Ref: Extract Program-Footnote-1704745
-Node: Simple Sed704873
-Node: Igawk Program707935
-Ref: Igawk Program-Footnote-1723092
-Ref: Igawk Program-Footnote-2723293
-Node: Anagram Program723431
-Node: Signature Program726499
-Node: Advanced Features727599
-Node: Nondecimal Data729485
-Node: Array Sorting731068
-Node: Controlling Array Traversal731765
-Node: Array Sorting Functions740049
-Ref: Array Sorting Functions-Footnote-1743918
-Node: Two-way I/O744112
-Ref: Two-way I/O-Footnote-1749544
-Node: TCP/IP Networking749614
-Node: Profiling752458
-Node: Internationalization759955
-Node: I18N and L10N761380
-Node: Explaining gettext762066
-Ref: Explaining gettext-Footnote-1767134
-Ref: Explaining gettext-Footnote-2767318
-Node: Programmer i18n767483
-Node: Translator i18n771685
-Node: String Extraction772478
-Ref: String Extraction-Footnote-1773439
-Node: Printf Ordering773525
-Ref: Printf Ordering-Footnote-1776309
-Node: I18N Portability776373
-Ref: I18N Portability-Footnote-1778822
-Node: I18N Example778885
-Ref: I18N Example-Footnote-1781523
-Node: Gawk I18N781595
-Node: Debugger782216
-Node: Debugging783187
-Node: Debugging Concepts783620
-Node: Debugging Terms785476
-Node: Awk Debugging788073
-Node: Sample Debugging Session788965
-Node: Debugger Invocation789485
-Node: Finding The Bug790817
-Node: List of Debugger Commands797305
-Node: Breakpoint Control798639
-Node: Debugger Execution Control802303
-Node: Viewing And Changing Data805663
-Node: Execution Stack809019
-Node: Debugger Info810486
-Node: Miscellaneous Debugger Commands814468
-Node: Readline Support819644
-Node: Limitations820475
-Node: Arbitrary Precision Arithmetic822727
-Ref: Arbitrary Precision Arithmetic-Footnote-1824376
-Node: General Arithmetic824524
-Node: Floating Point Issues826244
-Node: String Conversion Precision827125
-Ref: String Conversion Precision-Footnote-1828830
-Node: Unexpected Results828939
-Node: POSIX Floating Point Problems831092
-Ref: POSIX Floating Point Problems-Footnote-1834917
-Node: Integer Programming834955
-Node: Floating-point Programming836694
-Ref: Floating-point Programming-Footnote-1843025
-Ref: Floating-point Programming-Footnote-2843295
-Node: Floating-point Representation843559
-Node: Floating-point Context844724
-Ref: table-ieee-formats845563
-Node: Rounding Mode846947
-Ref: table-rounding-modes847426
-Ref: Rounding Mode-Footnote-1850441
-Node: Gawk and MPFR850620
-Node: Arbitrary Precision Floats851875
-Ref: Arbitrary Precision Floats-Footnote-1854318
-Node: Setting Precision854634
-Ref: table-predefined-precision-strings855320
-Node: Setting Rounding Mode857465
-Ref: table-gawk-rounding-modes857869
-Node: Floating-point Constants859056
-Node: Changing Precision860485
-Ref: Changing Precision-Footnote-1861882
-Node: Exact Arithmetic862056
-Node: Arbitrary Precision Integers865194
-Ref: Arbitrary Precision Integers-Footnote-1868212
-Node: Dynamic Extensions868359
-Node: Extension Intro869817
-Node: Plugin License871082
-Node: Extension Mechanism Outline871767
-Ref: load-extension872184
-Ref: load-new-function873662
-Ref: call-new-function874657
-Node: Extension API Description876672
-Node: Extension API Functions Introduction877885
-Node: General Data Types882751
-Ref: General Data Types-Footnote-1888356
-Node: Requesting Values888655
-Ref: table-value-types-returned889386
-Node: Constructor Functions890340
-Node: Registration Functions893360
-Node: Extension Functions894045
-Node: Exit Callback Functions896270
-Node: Extension Version String897519
-Node: Input Parsers898169
-Node: Output Wrappers907926
-Node: Two-way processors912436
-Node: Printing Messages914644
-Ref: Printing Messages-Footnote-1915721
-Node: Updating `ERRNO'915873
-Node: Accessing Parameters916612
-Node: Symbol Table Access917842
-Node: Symbol table by name918354
-Node: Symbol table by cookie920101
-Ref: Symbol table by cookie-Footnote-1924231
-Node: Cached values924294
-Ref: Cached values-Footnote-1927743
-Node: Array Manipulation927834
-Ref: Array Manipulation-Footnote-1928932
-Node: Array Data Types928971
-Ref: Array Data Types-Footnote-1931674
-Node: Array Functions931766
-Node: Flattening Arrays935532
-Node: Creating Arrays942384
-Node: Extension API Variables947109
-Node: Extension Versioning947745
-Node: Extension API Informational Variables949646
-Node: Extension API Boilerplate950732
-Node: Finding Extensions954536
-Node: Extension Example955096
-Node: Internal File Description955826
-Node: Internal File Ops959917
-Ref: Internal File Ops-Footnote-1971425
-Node: Using Internal File Ops971565
-Ref: Using Internal File Ops-Footnote-1973918
-Node: Extension Samples974184
-Node: Extension Sample File Functions975708
-Node: Extension Sample Fnmatch984193
-Node: Extension Sample Fork985919
-Node: Extension Sample Inplace987137
-Node: Extension Sample Ord988915
-Node: Extension Sample Readdir989751
-Node: Extension Sample Revout991283
-Node: Extension Sample Rev2way991876
-Node: Extension Sample Read write array992566
-Node: Extension Sample Readfile994449
-Node: Extension Sample API Tests995267
-Node: Extension Sample Time995792
-Node: gawkextlib997156
-Node: Language History999937
-Node: V7/SVR3.11001459
-Node: SVR41003779
-Node: POSIX1005221
-Node: BTL1006607
-Node: POSIX/GNU1007341
-Node: Common Extensions1012876
-Node: Ranges and Locales1014182
-Ref: Ranges and Locales-Footnote-11018800
-Ref: Ranges and Locales-Footnote-21018827
-Ref: Ranges and Locales-Footnote-31019087
-Node: Contributors1019308
-Node: Installation1024383
-Node: Gawk Distribution1025277
-Node: Getting1025761
-Node: Extracting1026587
-Node: Distribution contents1028279
-Node: Unix Installation1033984
-Node: Quick Installation1034601
-Node: Additional Configuration Options1037045
-Node: Configuration Philosophy1038781
-Node: Non-Unix Installation1041135
-Node: PC Installation1041593
-Node: PC Binary Installation1042892
-Node: PC Compiling1044740
-Node: PC Testing1047684
-Node: PC Using1048860
-Node: Cygwin1053045
-Node: MSYS1054045
-Node: VMS Installation1054559
-Node: VMS Compilation1055162
-Ref: VMS Compilation-Footnote-11056169
-Node: VMS Installation Details1056227
-Node: VMS Running1057862
-Node: VMS Old Gawk1059469
-Node: Bugs1059943
-Node: Other Versions1063863
-Node: Notes1069947
-Node: Compatibility Mode1070747
-Node: Additions1071530
-Node: Accessing The Source1072457
-Node: Adding Code1073897
-Node: New Ports1079942
-Node: Derived Files1084077
-Ref: Derived Files-Footnote-11089398
-Ref: Derived Files-Footnote-21089432
-Ref: Derived Files-Footnote-31090032
-Node: Future Extensions1090130
-Node: Implementation Limitations1090713
-Node: Extension Design1091965
-Node: Old Extension Problems1093119
-Ref: Old Extension Problems-Footnote-11094627
-Node: Extension New Mechanism Goals1094684
-Ref: Extension New Mechanism Goals-Footnote-11098049
-Node: Extension Other Design Decisions1098235
-Node: Extension Future Growth1100341
-Node: Old Extension Mechanism1101177
-Node: Basic Concepts1102917
-Node: Basic High Level1103598
-Ref: figure-general-flow1103869
-Ref: figure-process-flow1104468
-Ref: Basic High Level-Footnote-11107697
-Node: Basic Data Typing1107882
-Node: Glossary1111237
-Node: Copying1136699
-Node: GNU Free Documentation License1174256
-Node: Index1199393
+Node: Top1366
+Node: Foreword40552
+Node: Preface44897
+Ref: Preface-Footnote-147950
+Ref: Preface-Footnote-248046
+Node: History48278
+Node: Names50652
+Ref: Names-Footnote-152129
+Node: This Manual52201
+Ref: This Manual-Footnote-157975
+Node: Conventions58075
+Node: Manual History60231
+Ref: Manual History-Footnote-163679
+Ref: Manual History-Footnote-263720
+Node: How To Contribute63794
+Node: Acknowledgments64938
+Node: Getting Started69147
+Node: Running gawk71526
+Node: One-shot72712
+Node: Read Terminal73937
+Ref: Read Terminal-Footnote-175587
+Ref: Read Terminal-Footnote-275863
+Node: Long76034
+Node: Executable Scripts77410
+Ref: Executable Scripts-Footnote-179243
+Ref: Executable Scripts-Footnote-279345
+Node: Comments79892
+Node: Quoting82359
+Node: DOS Quoting86982
+Node: Sample Data Files87657
+Node: Very Simple90701
+Node: Two Rules95300
+Node: More Complex97447
+Ref: More Complex-Footnote-1100377
+Node: Statements/Lines100462
+Ref: Statements/Lines-Footnote-1104924
+Node: Other Features105189
+Node: When106117
+Node: Invoking Gawk108264
+Node: Command Line109725
+Node: Options110508
+Ref: Options-Footnote-1125900
+Node: Other Arguments125925
+Node: Naming Standard Input128583
+Node: Environment Variables129677
+Node: AWKPATH Variable130235
+Ref: AWKPATH Variable-Footnote-1132993
+Node: AWKLIBPATH Variable133253
+Node: Other Environment Variables133971
+Node: Exit Status136934
+Node: Include Files137609
+Node: Loading Shared Libraries141178
+Node: Obsolete142542
+Node: Undocumented143239
+Node: Regexp143481
+Node: Regexp Usage144870
+Node: Escape Sequences146896
+Node: Regexp Operators152565
+Ref: Regexp Operators-Footnote-1159945
+Ref: Regexp Operators-Footnote-2160092
+Node: Bracket Expressions160190
+Ref: table-char-classes162080
+Node: GNU Regexp Operators164603
+Node: Case-sensitivity168326
+Ref: Case-sensitivity-Footnote-1171294
+Ref: Case-sensitivity-Footnote-2171529
+Node: Leftmost Longest171637
+Node: Computed Regexps172838
+Node: Reading Files176175
+Node: Records178177
+Ref: Records-Footnote-1187066
+Node: Fields187103
+Ref: Fields-Footnote-1190136
+Node: Nonconstant Fields190222
+Node: Changing Fields192424
+Node: Field Separators198383
+Node: Default Field Splitting201085
+Node: Regexp Field Splitting202202
+Node: Single Character Fields205544
+Node: Command Line Field Separator206603
+Node: Full Line Fields210037
+Ref: Full Line Fields-Footnote-1210545
+Node: Field Splitting Summary210591
+Ref: Field Splitting Summary-Footnote-1213690
+Node: Constant Size213791
+Node: Splitting By Content218375
+Ref: Splitting By Content-Footnote-1222101
+Node: Multiple Line222141
+Ref: Multiple Line-Footnote-1227988
+Node: Getline228167
+Node: Plain Getline230383
+Node: Getline/Variable232478
+Node: Getline/File233625
+Node: Getline/Variable/File234966
+Ref: Getline/Variable/File-Footnote-1236565
+Node: Getline/Pipe236652
+Node: Getline/Variable/Pipe239351
+Node: Getline/Coprocess240458
+Node: Getline/Variable/Coprocess241710
+Node: Getline Notes242447
+Node: Getline Summary245234
+Ref: table-getline-variants245642
+Node: Read Timeout246554
+Ref: Read Timeout-Footnote-1250295
+Node: Command line directories250352
+Node: Printing250982
+Node: Print252613
+Node: Print Examples253950
+Node: Output Separators256734
+Node: OFMT258494
+Node: Printf259852
+Node: Basic Printf260758
+Node: Control Letters262297
+Node: Format Modifiers266109
+Node: Printf Examples272118
+Node: Redirection274833
+Node: Special Files281798
+Node: Special FD282331
+Ref: Special FD-Footnote-1285956
+Node: Special Network286030
+Node: Special Caveats286880
+Node: Close Files And Pipes287676
+Ref: Close Files And Pipes-Footnote-1294659
+Ref: Close Files And Pipes-Footnote-2294807
+Node: Expressions294957
+Node: Values296089
+Node: Constants296765
+Node: Scalar Constants297445
+Ref: Scalar Constants-Footnote-1298304
+Node: Nondecimal-numbers298486
+Node: Regexp Constants301486
+Node: Using Constant Regexps301961
+Node: Variables305016
+Node: Using Variables305671
+Node: Assignment Options307395
+Node: Conversion309267
+Ref: table-locale-affects314768
+Ref: Conversion-Footnote-1315392
+Node: All Operators315501
+Node: Arithmetic Ops316131
+Node: Concatenation318636
+Ref: Concatenation-Footnote-1321428
+Node: Assignment Ops321548
+Ref: table-assign-ops326536
+Node: Increment Ops327867
+Node: Truth Values and Conditions331301
+Node: Truth Values332384
+Node: Typing and Comparison333433
+Node: Variable Typing334226
+Ref: Variable Typing-Footnote-1338123
+Node: Comparison Operators338245
+Ref: table-relational-ops338655
+Node: POSIX String Comparison342204
+Ref: POSIX String Comparison-Footnote-1343160
+Node: Boolean Ops343298
+Ref: Boolean Ops-Footnote-1347376
+Node: Conditional Exp347467
+Node: Function Calls349199
+Node: Precedence352793
+Node: Locales356462
+Node: Patterns and Actions357551
+Node: Pattern Overview358605
+Node: Regexp Patterns360274
+Node: Expression Patterns360817
+Node: Ranges364502
+Node: BEGIN/END367468
+Node: Using BEGIN/END368230
+Ref: Using BEGIN/END-Footnote-1370961
+Node: I/O And BEGIN/END371067
+Node: BEGINFILE/ENDFILE373349
+Node: Empty376263
+Node: Using Shell Variables376579
+Node: Action Overview378864
+Node: Statements381221
+Node: If Statement383075
+Node: While Statement384574
+Node: Do Statement386618
+Node: For Statement387774
+Node: Switch Statement390926
+Node: Break Statement393023
+Node: Continue Statement395013
+Node: Next Statement396806
+Node: Nextfile Statement399196
+Node: Exit Statement401839
+Node: Built-in Variables404255
+Node: User-modified405350
+Ref: User-modified-Footnote-1413708
+Node: Auto-set413770
+Ref: Auto-set-Footnote-1427240
+Ref: Auto-set-Footnote-2427445
+Node: ARGC and ARGV427501
+Node: Arrays431352
+Node: Array Basics432857
+Node: Array Intro433683
+Node: Reference to Elements438000
+Node: Assigning Elements440270
+Node: Array Example440761
+Node: Scanning an Array442493
+Node: Controlling Scanning444807
+Ref: Controlling Scanning-Footnote-1449894
+Node: Delete450210
+Ref: Delete-Footnote-1452975
+Node: Numeric Array Subscripts453032
+Node: Uninitialized Subscripts455215
+Node: Multidimensional456842
+Node: Multiscanning459934
+Node: Arrays of Arrays461523
+Node: Functions466163
+Node: Built-in466982
+Node: Calling Built-in468060
+Node: Numeric Functions470048
+Ref: Numeric Functions-Footnote-1473880
+Ref: Numeric Functions-Footnote-2474237
+Ref: Numeric Functions-Footnote-3474285
+Node: String Functions474554
+Ref: String Functions-Footnote-1497474
+Ref: String Functions-Footnote-2497603
+Ref: String Functions-Footnote-3497851
+Node: Gory Details497938
+Ref: table-sub-escapes499617
+Ref: table-sub-posix-92500971
+Ref: table-sub-proposed502322
+Ref: table-posix-sub503676
+Ref: table-gensub-escapes505221
+Ref: Gory Details-Footnote-1506397
+Ref: Gory Details-Footnote-2506448
+Node: I/O Functions506599
+Ref: I/O Functions-Footnote-1513584
+Node: Time Functions513731
+Ref: Time Functions-Footnote-1524664
+Ref: Time Functions-Footnote-2524732
+Ref: Time Functions-Footnote-3524890
+Ref: Time Functions-Footnote-4525001
+Ref: Time Functions-Footnote-5525113
+Ref: Time Functions-Footnote-6525340
+Node: Bitwise Functions525606
+Ref: table-bitwise-ops526168
+Ref: Bitwise Functions-Footnote-1530389
+Node: Type Functions530573
+Node: I18N Functions531724
+Node: User-defined533351
+Node: Definition Syntax534155
+Ref: Definition Syntax-Footnote-1539065
+Node: Function Example539134
+Node: Function Caveats541728
+Node: Calling A Function542149
+Node: Variable Scope543264
+Node: Pass By Value/Reference546227
+Node: Return Statement549735
+Node: Dynamic Typing552716
+Node: Indirect Calls553647
+Node: Library Functions563332
+Ref: Library Functions-Footnote-1566845
+Ref: Library Functions-Footnote-2566988
+Node: Library Names567159
+Ref: Library Names-Footnote-1570630
+Ref: Library Names-Footnote-2570850
+Node: General Functions570936
+Node: Strtonum Function571964
+Node: Assert Function574894
+Node: Round Function578220
+Node: Cliff Random Function579763
+Node: Ordinal Functions580779
+Ref: Ordinal Functions-Footnote-1583849
+Ref: Ordinal Functions-Footnote-2584101
+Node: Join Function584310
+Ref: Join Function-Footnote-1586081
+Node: Getlocaltime Function586281
+Node: Readfile Function590022
+Node: Data File Management591861
+Node: Filetrans Function592493
+Node: Rewind Function596562
+Node: File Checking597949
+Node: Empty Files599043
+Node: Ignoring Assigns601273
+Node: Getopt Function602826
+Ref: Getopt Function-Footnote-1614129
+Node: Passwd Functions614332
+Ref: Passwd Functions-Footnote-1623307
+Node: Group Functions623395
+Node: Walking Arrays631479
+Node: Sample Programs633616
+Node: Running Examples634290
+Node: Clones635018
+Node: Cut Program636242
+Node: Egrep Program646087
+Ref: Egrep Program-Footnote-1653860
+Node: Id Program653970
+Node: Split Program657586
+Ref: Split Program-Footnote-1661105
+Node: Tee Program661233
+Node: Uniq Program664036
+Node: Wc Program671465
+Ref: Wc Program-Footnote-1675731
+Ref: Wc Program-Footnote-2675931
+Node: Miscellaneous Programs676023
+Node: Dupword Program677211
+Node: Alarm Program679242
+Node: Translate Program683995
+Ref: Translate Program-Footnote-1688382
+Ref: Translate Program-Footnote-2688630
+Node: Labels Program688764
+Ref: Labels Program-Footnote-1692135
+Node: Word Sorting692219
+Node: History Sorting696103
+Node: Extract Program697942
+Ref: Extract Program-Footnote-1705445
+Node: Simple Sed705573
+Node: Igawk Program708635
+Ref: Igawk Program-Footnote-1723792
+Ref: Igawk Program-Footnote-2723993
+Node: Anagram Program724131
+Node: Signature Program727199
+Node: Advanced Features728299
+Node: Nondecimal Data730185
+Node: Array Sorting731768
+Node: Controlling Array Traversal732465
+Node: Array Sorting Functions740749
+Ref: Array Sorting Functions-Footnote-1744618
+Node: Two-way I/O744812
+Ref: Two-way I/O-Footnote-1750244
+Node: TCP/IP Networking750314
+Node: Profiling753158
+Node: Internationalization760655
+Node: I18N and L10N762080
+Node: Explaining gettext762766
+Ref: Explaining gettext-Footnote-1767834
+Ref: Explaining gettext-Footnote-2768018
+Node: Programmer i18n768183
+Node: Translator i18n772385
+Node: String Extraction773178
+Ref: String Extraction-Footnote-1774139
+Node: Printf Ordering774225
+Ref: Printf Ordering-Footnote-1777009
+Node: I18N Portability777073
+Ref: I18N Portability-Footnote-1779522
+Node: I18N Example779585
+Ref: I18N Example-Footnote-1782223
+Node: Gawk I18N782295
+Node: Debugger782916
+Node: Debugging783887
+Node: Debugging Concepts784320
+Node: Debugging Terms786176
+Node: Awk Debugging788773
+Node: Sample Debugging Session789665
+Node: Debugger Invocation790185
+Node: Finding The Bug791517
+Node: List of Debugger Commands798005
+Node: Breakpoint Control799339
+Node: Debugger Execution Control803003
+Node: Viewing And Changing Data806363
+Node: Execution Stack809719
+Node: Debugger Info811186
+Node: Miscellaneous Debugger Commands815168
+Node: Readline Support820344
+Node: Limitations821175
+Node: Arbitrary Precision Arithmetic823427
+Ref: Arbitrary Precision Arithmetic-Footnote-1825076
+Node: General Arithmetic825224
+Node: Floating Point Issues826944
+Node: String Conversion Precision827825
+Ref: String Conversion Precision-Footnote-1829530
+Node: Unexpected Results829639
+Node: POSIX Floating Point Problems831792
+Ref: POSIX Floating Point Problems-Footnote-1835617
+Node: Integer Programming835655
+Node: Floating-point Programming837394
+Ref: Floating-point Programming-Footnote-1843725
+Ref: Floating-point Programming-Footnote-2843995
+Node: Floating-point Representation844259
+Node: Floating-point Context845424
+Ref: table-ieee-formats846263
+Node: Rounding Mode847647
+Ref: table-rounding-modes848126
+Ref: Rounding Mode-Footnote-1851141
+Node: Gawk and MPFR851320
+Node: Arbitrary Precision Floats852575
+Ref: Arbitrary Precision Floats-Footnote-1855018
+Node: Setting Precision855334
+Ref: table-predefined-precision-strings856020
+Node: Setting Rounding Mode858165
+Ref: table-gawk-rounding-modes858569
+Node: Floating-point Constants859756
+Node: Changing Precision861185
+Ref: Changing Precision-Footnote-1862582
+Node: Exact Arithmetic862756
+Node: Arbitrary Precision Integers865894
+Ref: Arbitrary Precision Integers-Footnote-1868912
+Node: Dynamic Extensions869059
+Node: Extension Intro870517
+Node: Plugin License871782
+Node: Extension Mechanism Outline872467
+Ref: load-extension872884
+Ref: load-new-function874362
+Ref: call-new-function875357
+Node: Extension API Description877372
+Node: Extension API Functions Introduction878585
+Node: General Data Types883451
+Ref: General Data Types-Footnote-1889056
+Node: Requesting Values889355
+Ref: table-value-types-returned890086
+Node: Constructor Functions891040
+Node: Registration Functions894060
+Node: Extension Functions894745
+Node: Exit Callback Functions896970
+Node: Extension Version String898219
+Node: Input Parsers898869
+Node: Output Wrappers908626
+Node: Two-way processors913136
+Node: Printing Messages915344
+Ref: Printing Messages-Footnote-1916421
+Node: Updating `ERRNO'916573
+Node: Accessing Parameters917312
+Node: Symbol Table Access918542
+Node: Symbol table by name919054
+Node: Symbol table by cookie920801
+Ref: Symbol table by cookie-Footnote-1924931
+Node: Cached values924994
+Ref: Cached values-Footnote-1928443
+Node: Array Manipulation928534
+Ref: Array Manipulation-Footnote-1929632
+Node: Array Data Types929671
+Ref: Array Data Types-Footnote-1932374
+Node: Array Functions932466
+Node: Flattening Arrays936232
+Node: Creating Arrays943084
+Node: Extension API Variables947809
+Node: Extension Versioning948445
+Node: Extension API Informational Variables950346
+Node: Extension API Boilerplate951432
+Node: Finding Extensions955236
+Node: Extension Example955796
+Node: Internal File Description956526
+Node: Internal File Ops960617
+Ref: Internal File Ops-Footnote-1972125
+Node: Using Internal File Ops972265
+Ref: Using Internal File Ops-Footnote-1974618
+Node: Extension Samples974884
+Node: Extension Sample File Functions976408
+Node: Extension Sample Fnmatch984893
+Node: Extension Sample Fork986619
+Node: Extension Sample Inplace987837
+Node: Extension Sample Ord989615
+Node: Extension Sample Readdir990451
+Node: Extension Sample Revout991983
+Node: Extension Sample Rev2way992576
+Node: Extension Sample Read write array993266
+Node: Extension Sample Readfile995149
+Node: Extension Sample API Tests995967
+Node: Extension Sample Time996492
+Node: gawkextlib997856
+Node: Language History1000637
+Node: V7/SVR3.11002159
+Node: SVR41004479
+Node: POSIX1005921
+Node: BTL1007307
+Node: POSIX/GNU1008041
+Node: Common Extensions1013576
+Node: Ranges and Locales1014882
+Ref: Ranges and Locales-Footnote-11019500
+Ref: Ranges and Locales-Footnote-21019527
+Ref: Ranges and Locales-Footnote-31019787
+Node: Contributors1020008
+Node: Installation1025083
+Node: Gawk Distribution1025977
+Node: Getting1026461
+Node: Extracting1027287
+Node: Distribution contents1028979
+Node: Unix Installation1034684
+Node: Quick Installation1035301
+Node: Additional Configuration Options1037745
+Node: Configuration Philosophy1039481
+Node: Non-Unix Installation1041835
+Node: PC Installation1042293
+Node: PC Binary Installation1043592
+Node: PC Compiling1045440
+Node: PC Testing1048384
+Node: PC Using1049560
+Node: Cygwin1053745
+Node: MSYS1054745
+Node: VMS Installation1055259
+Node: VMS Compilation1055862
+Ref: VMS Compilation-Footnote-11056869
+Node: VMS Installation Details1056927
+Node: VMS Running1058562
+Node: VMS Old Gawk1060169
+Node: Bugs1060643
+Node: Other Versions1064563
+Node: Notes1070647
+Node: Compatibility Mode1071447
+Node: Additions1072230
+Node: Accessing The Source1073157
+Node: Adding Code1074597
+Node: New Ports1080642
+Node: Derived Files1084777
+Ref: Derived Files-Footnote-11090098
+Ref: Derived Files-Footnote-21090132
+Ref: Derived Files-Footnote-31090732
+Node: Future Extensions1090830
+Node: Implementation Limitations1091413
+Node: Extension Design1092665
+Node: Old Extension Problems1093819
+Ref: Old Extension Problems-Footnote-11095327
+Node: Extension New Mechanism Goals1095384
+Ref: Extension New Mechanism Goals-Footnote-11098749
+Node: Extension Other Design Decisions1098935
+Node: Extension Future Growth1101041
+Node: Old Extension Mechanism1101877
+Node: Basic Concepts1103617
+Node: Basic High Level1104298
+Ref: figure-general-flow1104569
+Ref: figure-process-flow1105168
+Ref: Basic High Level-Footnote-11108397
+Node: Basic Data Typing1108582
+Node: Glossary1111937
+Node: Copying1137399
+Node: GNU Free Documentation License1174956
+Node: Index1200093

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index a0a2af6b..90fa06bd 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -26,7 +26,7 @@
@c applies to and all the info about who's publishing this edition
@c These apply across the board.
-@set UPDATE-MONTH December, 2013
+@set UPDATE-MONTH January, 2014
@set VERSION 4.1
@set PATCHLEVEL 0
@@ -153,7 +153,8 @@ Some comments on the layout for TeX.
@copying
Copyright @copyright{} 1989, 1991, 1992, 1993, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011, 2012, 2013
+2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011, 2012, 2013,
+2014
Free Software Foundation, Inc.
@sp 2
@@ -401,6 +402,7 @@ particular records in a file and perform operations upon them.
field.
* Command Line Field Separator:: Setting @code{FS} from the
command-line.
+* Full Line Fields:: Making the full line be a single field.
* Field Splitting Summary:: Some final points and a summary table.
* Constant Size:: Reading constant width data.
* Splitting By Content:: Defining Fields By Content
@@ -6303,6 +6305,7 @@ with a statement such as @samp{$1 = $1}, as described earlier.
* Regexp Field Splitting:: Using regexps as the field separator.
* Single Character Fields:: Making each character a separate field.
* Command Line Field Separator:: Setting @code{FS} from the command-line.
+* Full Line Fields:: Making the full line be a single field.
* Field Splitting Summary:: Some final points and a summary table.
@end menu
@@ -6671,6 +6674,21 @@ the entries for users who have no password:
awk -F: '$2 == ""' /etc/passwd
@end example
+@node Full Line Fields
+@subsection Making The Full Line Be A Single Field
+
+Occasionally, it's useful to treat the whole input line as a
+single field. This can be done easily and portably simply by
+setting @code{FS} to @code{"\n"} (a newline).@footnote{Thanks to
+Andrew Schorr for this tip.}
+
+@example
+awk -F'\n' '@var{program}' @var{files @dots{}}
+@end example
+
+@noindent
+When you do this, @code{$1} is the same as @code{$0}.
+
@node Field Splitting Summary
@subsection Field-Splitting Summary
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 6c1b0e8d..8fe83dae 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -21,7 +21,7 @@
@c applies to and all the info about who's publishing this edition
@c These apply across the board.
-@set UPDATE-MONTH December, 2013
+@set UPDATE-MONTH January, 2014
@set VERSION 4.1
@set PATCHLEVEL 0
@@ -148,7 +148,8 @@ Some comments on the layout for TeX.
@copying
Copyright @copyright{} 1989, 1991, 1992, 1993, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011, 2012, 2013
+2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010, 2011, 2012, 2013,
+2014
Free Software Foundation, Inc.
@sp 2
@@ -396,6 +397,7 @@ particular records in a file and perform operations upon them.
field.
* Command Line Field Separator:: Setting @code{FS} from the
command-line.
+* Full Line Fields:: Making the full line be a single field.
* Field Splitting Summary:: Some final points and a summary table.
* Constant Size:: Reading constant width data.
* Splitting By Content:: Defining Fields By Content
@@ -6024,6 +6026,7 @@ with a statement such as @samp{$1 = $1}, as described earlier.
* Regexp Field Splitting:: Using regexps as the field separator.
* Single Character Fields:: Making each character a separate field.
* Command Line Field Separator:: Setting @code{FS} from the command-line.
+* Full Line Fields:: Making the full line be a single field.
* Field Splitting Summary:: Some final points and a summary table.
@end menu
@@ -6392,6 +6395,21 @@ the entries for users who have no password:
awk -F: '$2 == ""' /etc/passwd
@end example
+@node Full Line Fields
+@subsection Making The Full Line Be A Single Field
+
+Occasionally, it's useful to treat the whole input line as a
+single field. This can be done easily and portably simply by
+setting @code{FS} to @code{"\n"} (a newline).@footnote{Thanks to
+Andrew Schorr for this tip.}
+
+@example
+awk -F'\n' '@var{program}' @var{files @dots{}}
+@end example
+
+@noindent
+When you do this, @code{$1} is the same as @code{$0}.
+
@node Field Splitting Summary
@subsection Field-Splitting Summary
diff --git a/extension/build-aux/ChangeLog b/extension/build-aux/ChangeLog
index 8a658870..b578de8b 100644
--- a/extension/build-aux/ChangeLog
+++ b/extension/build-aux/ChangeLog
@@ -1,3 +1,8 @@
+2014-01-03 Arnold D. Robbins <arnold@skeeve.com>
+
+ * config.guess, config.rpath, config.sub, depcomp,
+ install-sh: Updated.
+
2013-12-24 Arnold D. Robbins <arnold@skeeve.com>
* config.guess: Updated.
diff --git a/extension/build-aux/config.guess b/extension/build-aux/config.guess
index 9afd6762..4438cd70 100755
--- a/extension/build-aux/config.guess
+++ b/extension/build-aux/config.guess
@@ -1,8 +1,8 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2013 Free Software Foundation, Inc.
+# Copyright 1992-2014 Free Software Foundation, Inc.
-timestamp='2013-11-29'
+timestamp='2014-01-01'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -50,7 +50,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2013 Free Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
diff --git a/extension/build-aux/config.rpath b/extension/build-aux/config.rpath
index 17298f23..ab6fd995 100755
--- a/extension/build-aux/config.rpath
+++ b/extension/build-aux/config.rpath
@@ -2,7 +2,7 @@
# Output a system dependent set of variables, describing how to set the
# run time search path of shared libraries in an executable.
#
-# Copyright 1996-2010 Free Software Foundation, Inc.
+# Copyright 1996-2014 Free Software Foundation, Inc.
# Taken from GNU libtool, 2001
# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
#
@@ -25,7 +25,7 @@
# known workaround is to choose shorter directory names for the build
# directory and/or the installation directory.
-# All known linkers require a `.a' archive for static linking (except MSVC,
+# All known linkers require a '.a' archive for static linking (except MSVC,
# which needs '.lib').
libext=a
shrext=.so
@@ -57,13 +57,6 @@ else
aix*)
wl='-Wl,'
;;
- darwin*)
- case $cc_basename in
- xlc*)
- wl='-Wl,'
- ;;
- esac
- ;;
mingw* | cygwin* | pw32* | os2* | cegcc*)
;;
hpux9* | hpux10* | hpux11*)
@@ -72,9 +65,7 @@ else
irix5* | irix6* | nonstopux*)
wl='-Wl,'
;;
- newsos6)
- ;;
- linux* | k*bsd*-gnu)
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
case $cc_basename in
ecc*)
wl='-Wl,'
@@ -85,17 +76,26 @@ else
lf95*)
wl='-Wl,'
;;
- pgcc | pgf77 | pgf90)
+ nagfor*)
+ wl='-Wl,-Wl,,'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
wl='-Wl,'
;;
ccc*)
wl='-Wl,'
;;
+ xl* | bgxl* | bgf* | mpixl*)
+ wl='-Wl,'
+ ;;
como)
wl='-lopt='
;;
*)
case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ F* | *Sun*Fortran*)
+ wl=
+ ;;
*Sun\ C*)
wl='-Wl,'
;;
@@ -103,13 +103,24 @@ else
;;
esac
;;
+ newsos6)
+ ;;
+ *nto* | *qnx*)
+ ;;
osf3* | osf4* | osf5*)
wl='-Wl,'
;;
rdos*)
;;
solaris*)
- wl='-Wl,'
+ case $cc_basename in
+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ wl='-Qoption ld '
+ ;;
+ *)
+ wl='-Wl,'
+ ;;
+ esac
;;
sunos4*)
wl='-Qoption ld '
@@ -171,15 +182,14 @@ if test "$with_gnu_ld" = yes; then
fi
;;
amigaos*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
- # that the semantics of dynamic libraries on AmigaOS, at least up
- # to version 4, is to share data among multiple programs linked
- # with the same dynamic library. Since this doesn't match the
- # behavior of shared libraries on other platforms, we cannot use
- # them.
- ld_shlibs=no
+ case "$host_cpu" in
+ powerpc)
+ ;;
+ m68k)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
;;
beos*)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
@@ -198,11 +208,13 @@ if test "$with_gnu_ld" = yes; then
ld_shlibs=no
fi
;;
+ haiku*)
+ ;;
interix[3-9]*)
hardcode_direct=no
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
;;
- gnu* | linux* | k*bsd*-gnu)
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
:
else
@@ -325,10 +337,14 @@ else
fi
;;
amigaos*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- # see comment about different semantics on the GNU ld section
- ld_shlibs=no
+ case "$host_cpu" in
+ powerpc)
+ ;;
+ m68k)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
;;
bsdi[45]*)
;;
@@ -342,24 +358,15 @@ else
;;
darwin* | rhapsody*)
hardcode_direct=no
- if test "$GCC" = yes ; then
+ if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then
:
else
- case $cc_basename in
- xlc*)
- ;;
- *)
- ld_shlibs=no
- ;;
- esac
+ ld_shlibs=no
fi
;;
dgux*)
hardcode_libdir_flag_spec='-L$libdir'
;;
- freebsd1*)
- ld_shlibs=no
- ;;
freebsd2.2*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
@@ -420,6 +427,8 @@ else
hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
hardcode_libdir_separator=:
;;
+ *nto* | *qnx*)
+ ;;
openbsd*)
if test -f /usr/libexec/ld.so; then
hardcode_direct=yes
@@ -515,7 +524,12 @@ case "$host_os" in
library_names_spec='$libname$shrext'
;;
amigaos*)
- library_names_spec='$libname.a'
+ case "$host_cpu" in
+ powerpc*)
+ library_names_spec='$libname$shrext' ;;
+ m68k)
+ library_names_spec='$libname.a' ;;
+ esac
;;
beos*)
library_names_spec='$libname$shrext'
@@ -534,8 +548,6 @@ case "$host_os" in
dgux*)
library_names_spec='$libname$shrext'
;;
- freebsd1*)
- ;;
freebsd* | dragonfly*)
case "$host_os" in
freebsd[123]*)
@@ -547,6 +559,9 @@ case "$host_os" in
gnu*)
library_names_spec='$libname$shrext'
;;
+ haiku*)
+ library_names_spec='$libname$shrext'
+ ;;
hpux9* | hpux10* | hpux11*)
case $host_cpu in
ia64*)
@@ -582,7 +597,7 @@ case "$host_os" in
;;
linux*oldld* | linux*aout* | linux*coff*)
;;
- linux* | k*bsd*-gnu)
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
library_names_spec='$libname$shrext'
;;
knetbsd*-gnu)
@@ -594,7 +609,7 @@ case "$host_os" in
newsos6)
library_names_spec='$libname$shrext'
;;
- nto-qnx*)
+ *nto* | *qnx*)
library_names_spec='$libname$shrext'
;;
openbsd*)
@@ -625,6 +640,9 @@ case "$host_os" in
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
library_names_spec='$libname$shrext'
;;
+ tpf*)
+ library_names_spec='$libname$shrext'
+ ;;
uts4*)
library_names_spec='$libname$shrext'
;;
diff --git a/extension/build-aux/config.sub b/extension/build-aux/config.sub
index aa2cf19b..092cff00 100755
--- a/extension/build-aux/config.sub
+++ b/extension/build-aux/config.sub
@@ -1,24 +1,18 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-# 2011, 2012 Free Software Foundation, Inc.
+# Copyright 1992-2014 Free Software Foundation, Inc.
-timestamp='2012-06-17'
+timestamp='2014-01-01'
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine. It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 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.
+# 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, see <http://www.gnu.org/licenses/>.
@@ -26,11 +20,12 @@ timestamp='2012-06-17'
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
-# Please send patches to <config-patches@gnu.org>. Submit a context
-# diff and a properly formatted GNU ChangeLog entry.
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
#
# Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument.
@@ -73,9 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
+Copyright 1992-2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -123,7 +116,7 @@ esac
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
- linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
knetbsd*-gnu* | netbsd*-gnu* | \
kopensolaris*-gnu* | \
storm-chaos* | os2-emx* | rtmk-nova*)
@@ -156,7 +149,7 @@ case $os in
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis | -knuth | -cray | -microblaze)
+ -apple | -axis | -knuth | -cray | -microblaze*)
os=
basic_machine=$1
;;
@@ -259,10 +252,12 @@ case $basic_machine in
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
- | be32 | be64 \
+ | arc | arceb \
+ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+ | avr | avr32 \
+ | be32 | be64 \
| bfin \
- | c4x | clipper \
+ | c4x | c8051 | clipper \
| d10v | d30v | dlx | dsp16xx \
| epiphany \
| fido | fr30 | frv \
@@ -270,10 +265,11 @@ case $basic_machine in
| hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
+ | k1om \
| le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | mcore | mep | metag \
+ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
@@ -291,16 +287,17 @@ case $basic_machine in
| mipsisa64r2 | mipsisa64r2el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
+ | mipsr5900 | mipsr5900el \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
| moxie \
| mt \
| msp430 \
| nds32 | nds32le | nds32be \
- | nios | nios2 \
+ | nios | nios2 | nios2eb | nios2el \
| ns16k | ns32k \
| open8 \
- | or32 \
+ | or1k | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \
@@ -328,7 +325,7 @@ case $basic_machine in
c6x)
basic_machine=tic6x-unknown
;;
- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
basic_machine=$basic_machine-unknown
os=-none
;;
@@ -370,13 +367,13 @@ case $basic_machine in
| aarch64-* | aarch64_be-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
| be32-* | be64-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
- | clipper-* | craynv-* | cydra-* \
+ | c8051-* | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
@@ -385,11 +382,13 @@ case $basic_machine in
| hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
+ | k1om-* \
| le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+ | microblaze-* | microblazeel-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
@@ -407,12 +406,13 @@ case $basic_machine in
| mipsisa64r2-* | mipsisa64r2el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipsr5900-* | mipsr5900el-* \
| mipstx39-* | mipstx39el-* \
| mmix-* \
| mt-* \
| msp430-* \
| nds32-* | nds32le-* | nds32be-* \
- | nios-* | nios2-* \
+ | nios-* | nios2-* | nios2eb-* | nios2el-* \
| none-* | np1-* | ns16k-* | ns32k-* \
| open8-* \
| orion-* \
@@ -788,11 +788,15 @@ case $basic_machine in
basic_machine=ns32k-utek
os=-sysv
;;
- microblaze)
+ microblaze*)
basic_machine=microblaze-xilinx
;;
+ mingw64)
+ basic_machine=x86_64-pc
+ os=-mingw64
+ ;;
mingw32)
- basic_machine=i386-pc
+ basic_machine=i686-pc
os=-mingw32
;;
mingw32ce)
@@ -828,7 +832,7 @@ case $basic_machine in
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
;;
msys)
- basic_machine=i386-pc
+ basic_machine=i686-pc
os=-msys
;;
mvs)
@@ -1019,7 +1023,11 @@ case $basic_machine in
basic_machine=i586-unknown
os=-pw32
;;
- rdos)
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+ os=-rdos
+ ;;
+ rdos32)
basic_machine=i386-pc
os=-rdos
;;
@@ -1346,7 +1354,7 @@ case $os in
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
- | -sym* | -kopensolaris* \
+ | -sym* | -kopensolaris* | -plan9* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* | -aros* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
@@ -1359,8 +1367,8 @@ case $os in
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* | -cegcc* \
| -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -linux-android* \
- | -linux-newlib* | -linux-uclibc* \
+ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+ | -linux-newlib* | -linux-musl* | -linux-uclibc* \
| -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
@@ -1492,9 +1500,6 @@ case $os in
-aros*)
os=-aros
;;
- -kaos*)
- os=-kaos
- ;;
-zvmoe)
os=-zvmoe
;;
@@ -1543,6 +1548,9 @@ case $basic_machine in
c4x-* | tic4x-*)
os=-coff
;;
+ c8051-*)
+ os=-elf
+ ;;
hexagon-*)
os=-elf
;;
@@ -1586,6 +1594,9 @@ case $basic_machine in
mips*-*)
os=-elf
;;
+ or1k-*)
+ os=-elf
+ ;;
or32-*)
os=-coff
;;
diff --git a/extension/build-aux/depcomp b/extension/build-aux/depcomp
index 0544c683..31788017 100755
--- a/extension/build-aux/depcomp
+++ b/extension/build-aux/depcomp
@@ -1,9 +1,9 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
-scriptversion=2012-07-12.20; # UTC
+scriptversion=2013-05-30.07; # UTC
-# Copyright (C) 1999-2012 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 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
@@ -27,9 +27,9 @@ scriptversion=2012-07-12.20; # UTC
case $1 in
'')
- echo "$0: No command. Try '$0 --help' for more information." 1>&2
- exit 1;
- ;;
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
-h | --h*)
cat <<\EOF
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
@@ -56,11 +56,65 @@ EOF
;;
esac
+# Get the directory component of the given path, and save it in the
+# global variables '$dir'. Note that this directory component will
+# be either empty or ending with a '/' character. This is deliberate.
+set_dir_from ()
+{
+ case $1 in
+ */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
+ *) dir=;;
+ esac
+}
+
+# Get the suffix-stripped basename of the given path, and save it the
+# global variable '$base'.
+set_base_from ()
+{
+ base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
+}
+
+# If no dependency file was actually created by the compiler invocation,
+# we still have to create a dummy depfile, to avoid errors with the
+# Makefile "include basename.Plo" scheme.
+make_dummy_depfile ()
+{
+ echo "#dummy" > "$depfile"
+}
+
+# Factor out some common post-processing of the generated depfile.
+# Requires the auxiliary global variable '$tmpdepfile' to be set.
+aix_post_process_depfile ()
+{
+ # If the compiler actually managed to produce a dependency file,
+ # post-process it.
+ if test -f "$tmpdepfile"; then
+ # Each line is of the form 'foo.o: dependency.h'.
+ # Do two passes, one to just change these to
+ # $object: dependency.h
+ # and one to simply output
+ # dependency.h:
+ # which is needed to avoid the deleted-header problem.
+ { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
+ sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
+ } > "$depfile"
+ rm -f "$tmpdepfile"
+ else
+ make_dummy_depfile
+ fi
+}
+
# A tabulation character.
tab=' '
# A newline character.
nl='
'
+# Character ranges might be problematic outside the C locale.
+# These definitions help.
+upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
+lower=abcdefghijklmnopqrstuvwxyz
+digits=0123456789
+alpha=${upper}${lower}
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
@@ -74,6 +128,9 @@ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
+# Avoid interferences from the environment.
+gccflag= dashmflag=
+
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
@@ -85,32 +142,32 @@ if test "$depmode" = hp; then
fi
if test "$depmode" = dashXmstdout; then
- # This is just like dashmstdout with a different argument.
- dashmflag=-xM
- depmode=dashmstdout
+ # This is just like dashmstdout with a different argument.
+ dashmflag=-xM
+ depmode=dashmstdout
fi
cygpath_u="cygpath -u -f -"
if test "$depmode" = msvcmsys; then
- # This is just like msvisualcpp but w/o cygpath translation.
- # Just convert the backslash-escaped backslashes to single forward
- # slashes to satisfy depend.m4
- cygpath_u='sed s,\\\\,/,g'
- depmode=msvisualcpp
+ # This is just like msvisualcpp but w/o cygpath translation.
+ # Just convert the backslash-escaped backslashes to single forward
+ # slashes to satisfy depend.m4
+ cygpath_u='sed s,\\\\,/,g'
+ depmode=msvisualcpp
fi
if test "$depmode" = msvc7msys; then
- # This is just like msvc7 but w/o cygpath translation.
- # Just convert the backslash-escaped backslashes to single forward
- # slashes to satisfy depend.m4
- cygpath_u='sed s,\\\\,/,g'
- depmode=msvc7
+ # This is just like msvc7 but w/o cygpath translation.
+ # Just convert the backslash-escaped backslashes to single forward
+ # slashes to satisfy depend.m4
+ cygpath_u='sed s,\\\\,/,g'
+ depmode=msvc7
fi
if test "$depmode" = xlc; then
- # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
- gccflag=-qmakedep=gcc,-MF
- depmode=gcc
+ # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
+ gccflag=-qmakedep=gcc,-MF
+ depmode=gcc
fi
case "$depmode" in
@@ -133,8 +190,7 @@ gcc3)
done
"$@"
stat=$?
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
@@ -142,13 +198,17 @@ gcc3)
;;
gcc)
+## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
+## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
+## (see the conditional assignment to $gccflag above).
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-## -MM, not -M (despite what the docs say).
+## -MM, not -M (despite what the docs say). Also, it might not be
+## supported by the other compilers which use the 'gcc' depmode.
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
@@ -156,15 +216,14 @@ gcc)
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
- alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-## The second -e expression handles DOS-style file names with drive letters.
+ # The second -e expression handles DOS-style file names with drive
+ # letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the "deleted header file" problem.
@@ -173,15 +232,15 @@ gcc)
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
- tr ' ' "$nl" < "$tmpdepfile" |
## Some versions of gcc put a space before the ':'. On the theory
## that the space means something, we add a space to the output as
## well. hp depmode also adds that space, but also prefixes the VPATH
## to the object. Take care to not repeat it in the output.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
- | sed -e 's/$/ :/' >> "$depfile"
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
@@ -192,47 +251,6 @@ hp)
exit 1
;;
-sgi)
- if test "$libtool" = yes; then
- "$@" "-Wp,-MDupdate,$tmpdepfile"
- else
- "$@" -MDupdate "$tmpdepfile"
- fi
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile"
- exit $stat
- fi
- rm -f "$depfile"
-
- if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
- echo "$object : \\" > "$depfile"
-
- # Clip off the initial element (the dependent). Don't try to be
- # clever and replace this with sed code, as IRIX sed won't handle
- # lines with more than a fixed number of characters (4096 in
- # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
- # the IRIX cc adds comments like '#:fec' to the end of the
- # dependency line.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
- tr "$nl" ' ' >> "$depfile"
- echo >> "$depfile"
-
- # The second pass generates a dummy entry for each header file.
- tr ' ' "$nl" < "$tmpdepfile" \
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
- >> "$depfile"
- else
- # The sourcefile does not contain any dependencies, so just
- # store a dummy comment line, to avoid errors with the Makefile
- # "include basename.Plo" scheme.
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
-
xlc)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
@@ -246,9 +264,8 @@ aix)
# current directory. Also, the AIX compiler puts '$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
- base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+ set_dir_from "$object"
+ set_base_from "$object"
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.u
tmpdepfile2=$base.u
@@ -261,9 +278,7 @@ aix)
"$@" -M
fi
stat=$?
-
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi
@@ -272,65 +287,37 @@ aix)
do
test -f "$tmpdepfile" && break
done
- if test -f "$tmpdepfile"; then
- # Each line is of the form 'foo.o: dependent.h'.
- # Do two passes, one to just change these to
- # '$object: dependent.h' and one to simply 'dependent.h:'.
- sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
- else
- # The sourcefile does not contain any dependencies, so just
- # store a dummy comment line, to avoid errors with the Makefile
- # "include basename.Plo" scheme.
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
+ aix_post_process_depfile
;;
-icc)
- # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
- # However on
- # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
- # ICC 7.0 will fill foo.d with something like
- # foo.o: sub/foo.c
- # foo.o: sub/foo.h
- # which is wrong. We want
- # sub/foo.o: sub/foo.c
- # sub/foo.o: sub/foo.h
- # sub/foo.c:
- # sub/foo.h:
- # ICC 7.1 will output
- # foo.o: sub/foo.c sub/foo.h
- # and will wrap long lines using '\':
- # foo.o: sub/foo.c ... \
- # sub/foo.h ... \
- # ...
- # tcc 0.9.26 (FIXME still under development at the moment of writing)
- # will emit a similar output, but also prepend the continuation lines
- # with horizontal tabulation characters.
+tcc)
+ # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
+ # FIXME: That version still under development at the moment of writing.
+ # Make that this statement remains true also for stable, released
+ # versions.
+ # It will wrap lines (doesn't matter whether long or short) with a
+ # trailing '\', as in:
+ #
+ # foo.o : \
+ # foo.c \
+ # foo.h \
+ #
+ # It will put a trailing '\' even on the last line, and will use leading
+ # spaces rather than leading tabs (at least since its commit 0394caf7
+ # "Emit spaces for -MD").
"$@" -MD -MF "$tmpdepfile"
stat=$?
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
- # Each line is of the form 'foo.o: dependent.h',
- # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
- # Do two passes, one to just change these to
- # '$object: dependent.h' and one to simply 'dependent.h:'.
- sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \
- < "$tmpdepfile" > "$depfile"
- sed '
- s/[ '"$tab"'][ '"$tab"']*/ /g
- s/^ *//
- s/ *\\*$//
- s/^[^:]*: *//
- /^$/d
- /:$/d
- s/$/ :/
- ' < "$tmpdepfile" >> "$depfile"
+ # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
+ # We have to change lines of the first kind to '$object: \'.
+ sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
+ # And for each line of the second kind, we have to emit a 'dep.h:'
+ # dummy dependency, to avoid the deleted-header problem.
+ sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
rm -f "$tmpdepfile"
;;
@@ -349,34 +336,37 @@ pgcc)
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
+ set_dir_from "$object"
# Use the source, not the object, to determine the base name, since
# that's sadly what pgcc will do too.
- base=`echo "$source" | sed -e 's|^.*/||' -e 's/\.[-_a-zA-Z0-9]*$//'`
- tmpdepfile="$base.d"
+ set_base_from "$source"
+ tmpdepfile=$base.d
# For projects that build the same source file twice into different object
# files, the pgcc approach of using the *source* file root name can cause
# problems in parallel builds. Use a locking strategy to avoid stomping on
# the same $tmpdepfile.
- lockdir="$base.d-lock"
- trap "echo '$0: caught signal, cleaning up...' >&2; rm -rf $lockdir" 1 2 13 15
+ lockdir=$base.d-lock
+ trap "
+ echo '$0: caught signal, cleaning up...' >&2
+ rmdir '$lockdir'
+ exit 1
+ " 1 2 13 15
numtries=100
i=$numtries
- while test $i -gt 0 ; do
+ while test $i -gt 0; do
# mkdir is a portable test-and-set.
- if mkdir $lockdir 2>/dev/null; then
+ if mkdir "$lockdir" 2>/dev/null; then
# This process acquired the lock.
"$@" -MD
stat=$?
# Release the lock.
- rm -rf $lockdir
+ rmdir "$lockdir"
break
else
- ## the lock is being held by a different process,
- ## wait until the winning process is done or we timeout
- while test -d $lockdir && test $i -gt 0; do
+ # If the lock is being held by a different process, wait
+ # until the winning process is done or we timeout.
+ while test -d "$lockdir" && test $i -gt 0; do
sleep 1
i=`expr $i - 1`
done
@@ -402,8 +392,8 @@ pgcc)
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this invocation
# correctly. Breaking it into two sed invocations is a workaround.
- sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
- sed -e 's/$/ :/' >> "$depfile"
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
+ | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
@@ -414,9 +404,8 @@ hp2)
# 'foo.d', which lands next to the object file, wherever that
# happens to be.
# Much of this is similar to the tru64 case; see comments there.
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
- base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+ set_dir_from "$object"
+ set_base_from "$object"
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir.libs/$base.d
@@ -427,8 +416,7 @@ hp2)
"$@" +Maked
fi
stat=$?
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
@@ -438,76 +426,61 @@ hp2)
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
- sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
+ sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
# Add 'dependent.h:' lines.
sed -ne '2,${
- s/^ *//
- s/ \\*$//
- s/$/:/
- p
- }' "$tmpdepfile" >> "$depfile"
+ s/^ *//
+ s/ \\*$//
+ s/$/:/
+ p
+ }' "$tmpdepfile" >> "$depfile"
else
- echo "#dummy" > "$depfile"
+ make_dummy_depfile
fi
rm -f "$tmpdepfile" "$tmpdepfile2"
;;
tru64)
- # The Tru64 compiler uses -MD to generate dependencies as a side
- # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
- # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
- # dependencies in 'foo.d' instead, so we check for that too.
- # Subdirectories are respected.
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
- base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
-
- if test "$libtool" = yes; then
- # With Tru64 cc, shared objects can also be used to make a
- # static library. This mechanism is used in libtool 1.4 series to
- # handle both shared and static libraries in a single compilation.
- # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
- #
- # With libtool 1.5 this exception was removed, and libtool now
- # generates 2 separate objects for the 2 libraries. These two
- # compilations output dependencies in $dir.libs/$base.o.d and
- # in $dir$base.o.d. We have to check for both files, because
- # one of the two compilations can be disabled. We should prefer
- # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
- # automatically cleaned when .libs/ is deleted, while ignoring
- # the former would cause a distcleancheck panic.
- tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
- tmpdepfile2=$dir$base.o.d # libtool 1.5
- tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
- tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
- "$@" -Wc,-MD
- else
- tmpdepfile1=$dir$base.o.d
- tmpdepfile2=$dir$base.d
- tmpdepfile3=$dir$base.d
- tmpdepfile4=$dir$base.d
- "$@" -MD
- fi
-
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
- do
- test -f "$tmpdepfile" && break
- done
- if test -f "$tmpdepfile"; then
- sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
- else
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
+ # The Tru64 compiler uses -MD to generate dependencies as a side
+ # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+ # dependencies in 'foo.d' instead, so we check for that too.
+ # Subdirectories are respected.
+ set_dir_from "$object"
+ set_base_from "$object"
+
+ if test "$libtool" = yes; then
+ # Libtool generates 2 separate objects for the 2 libraries. These
+ # two compilations output dependencies in $dir.libs/$base.o.d and
+ # in $dir$base.o.d. We have to check for both files, because
+ # one of the two compilations can be disabled. We should prefer
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+ # automatically cleaned when .libs/ is deleted, while ignoring
+ # the former would cause a distcleancheck panic.
+ tmpdepfile1=$dir$base.o.d # libtool 1.5
+ tmpdepfile2=$dir.libs/$base.o.d # Likewise.
+ tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
+ "$@" -Wc,-MD
+ else
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir$base.d
+ tmpdepfile3=$dir$base.d
+ "$@" -MD
+ fi
+
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ # Same post-processing that is required for AIX mode.
+ aix_post_process_depfile
+ ;;
msvc7)
if test "$libtool" = yes; then
@@ -518,8 +491,7 @@ msvc7)
"$@" $showIncludes > "$tmpdepfile"
stat=$?
grep -v '^Note: including file: ' "$tmpdepfile"
- if test "$stat" = 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
@@ -545,6 +517,7 @@ $ {
G
p
}' >> "$depfile"
+ echo >> "$depfile" # make sure the fragment doesn't end with a backslash
rm -f "$tmpdepfile"
;;
@@ -596,13 +569,14 @@ dashmstdout)
# in the target name. This is to cope with DOS-style filenames:
# a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
"$@" $dashmflag |
- sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
+ sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
- tr ' ' "$nl" < "$tmpdepfile" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process this sed invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
@@ -655,10 +629,12 @@ makedepend)
# makedepend may prepend the VPATH from the source file name to the object.
# No need to regex-escape $object, excess matching of '.' is harmless.
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
- sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly. Breaking it into two sed invocations is a workaround.
- sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process the last invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed '1,2d' "$tmpdepfile" \
+ | tr ' ' "$nl" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
@@ -694,10 +670,10 @@ cpp)
esac
done
- "$@" -E |
- sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
- -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
- sed '$ s: \\$::' > "$tmpdepfile"
+ "$@" -E \
+ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ | sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
@@ -729,15 +705,15 @@ msvisualcpp)
shift
;;
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
- set fnord "$@"
- shift
- shift
- ;;
+ set fnord "$@"
+ shift
+ shift
+ ;;
*)
- set fnord "$@" "$arg"
- shift
- shift
- ;;
+ set fnord "$@" "$arg"
+ shift
+ shift
+ ;;
esac
done
"$@" -E 2>/dev/null |
diff --git a/extension/build-aux/install-sh b/extension/build-aux/install-sh
index 377bb868..04367377 100755
--- a/extension/build-aux/install-sh
+++ b/extension/build-aux/install-sh
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2011-11-20.07; # UTC
+scriptversion=2013-10-30.23; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -41,19 +41,15 @@ scriptversion=2011-11-20.07; # UTC
# This script is compatible with the BSD install script, but was written
# from scratch.
+tab=' '
nl='
'
-IFS=" "" $nl"
+IFS=" $tab$nl"
-# set DOITPROG to echo to test this script
+# Set DOITPROG to "echo" to test this script.
-# Don't use :- since 4.3BSD and earlier shells don't like it.
doit=${DOITPROG-}
-if test -z "$doit"; then
- doit_exec=exec
-else
- doit_exec=$doit
-fi
+doit_exec=${doit:-exec}
# Put in absolute file names if you don't have them in your path;
# or use environment vars.
@@ -68,17 +64,6 @@ mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}
-posix_glob='?'
-initialize_posix_glob='
- test "$posix_glob" != "?" || {
- if (set -f) 2>/dev/null; then
- posix_glob=
- else
- posix_glob=:
- fi
- }
-'
-
posix_mkdir=
# Desired mode of installed file.
@@ -137,40 +122,39 @@ while test $# -ne 0; do
-d) dir_arg=true;;
-g) chgrpcmd="$chgrpprog $2"
- shift;;
+ shift;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
- case $mode in
- *' '* | *' '* | *'
-'* | *'*'* | *'?'* | *'['*)
- echo "$0: invalid mode: $mode" >&2
- exit 1;;
- esac
- shift;;
+ case $mode in
+ *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
+ echo "$0: invalid mode: $mode" >&2
+ exit 1;;
+ esac
+ shift;;
-o) chowncmd="$chownprog $2"
- shift;;
+ shift;;
-s) stripcmd=$stripprog;;
-t) dst_arg=$2
- # Protect names problematic for 'test' and other utilities.
- case $dst_arg in
- -* | [=\(\)!]) dst_arg=./$dst_arg;;
- esac
- shift;;
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
+ shift;;
-T) no_target_directory=true;;
--version) echo "$0 $scriptversion"; exit $?;;
- --) shift
- break;;
+ --) shift
+ break;;
- -*) echo "$0: invalid option: $1" >&2
- exit 1;;
+ -*) echo "$0: invalid option: $1" >&2
+ exit 1;;
*) break;;
esac
@@ -223,16 +207,16 @@ if test -z "$dir_arg"; then
*[0-7])
if test -z "$stripcmd"; then
- u_plus_rw=
+ u_plus_rw=
else
- u_plus_rw='% 200'
+ u_plus_rw='% 200'
fi
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
*)
if test -z "$stripcmd"; then
- u_plus_rw=
+ u_plus_rw=
else
- u_plus_rw=,u+rw
+ u_plus_rw=,u+rw
fi
cp_umask=$mode$u_plus_rw;;
esac
@@ -270,40 +254,14 @@ do
# if double slashes aren't ignored.
if test -d "$dst"; then
if test -n "$no_target_directory"; then
- echo "$0: $dst_arg: Is a directory" >&2
- exit 1
+ echo "$0: $dst_arg: Is a directory" >&2
+ exit 1
fi
dstdir=$dst
dst=$dstdir/`basename "$src"`
dstdir_status=0
else
- # Prefer dirname, but fall back on a substitute if dirname fails.
- dstdir=`
- (dirname "$dst") 2>/dev/null ||
- expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$dst" : 'X\(//\)[^/]' \| \
- X"$dst" : 'X\(//\)$' \| \
- X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
- echo X"$dst" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'
- `
-
+ dstdir=`dirname "$dst"`
test -d "$dstdir"
dstdir_status=$?
fi
@@ -314,74 +272,74 @@ do
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
- # Create intermediate dirs using mode 755 as modified by the umask.
- # This is like FreeBSD 'install' as of 1997-10-28.
- umask=`umask`
- case $stripcmd.$umask in
- # Optimize common cases.
- *[2367][2367]) mkdir_umask=$umask;;
- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
- *[0-7])
- mkdir_umask=`expr $umask + 22 \
- - $umask % 100 % 40 + $umask % 20 \
- - $umask % 10 % 4 + $umask % 2
- `;;
- *) mkdir_umask=$umask,go-w;;
- esac
-
- # With -d, create the new directory with the user-specified mode.
- # Otherwise, rely on $mkdir_umask.
- if test -n "$dir_arg"; then
- mkdir_mode=-m$mode
- else
- mkdir_mode=
- fi
-
- posix_mkdir=false
- case $umask in
- *[123567][0-7][0-7])
- # POSIX mkdir -p sets u+wx bits regardless of umask, which
- # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
- ;;
- *)
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
- trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
- if (umask $mkdir_umask &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
- then
- if test -z "$dir_arg" || {
- # Check for POSIX incompatibilities with -m.
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
- # other-writable bit of parent directory when it shouldn't.
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- ls_ld_tmpdir=`ls -ld "$tmpdir"`
- case $ls_ld_tmpdir in
- d????-?r-*) different_mode=700;;
- d????-?--*) different_mode=755;;
- *) false;;
- esac &&
- $mkdirprog -m$different_mode -p -- "$tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
- }
- }
- then posix_mkdir=:
- fi
- rmdir "$tmpdir/d" "$tmpdir"
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
- fi
- trap '' 0;;
- esac;;
+ # Create intermediate dirs using mode 755 as modified by the umask.
+ # This is like FreeBSD 'install' as of 1997-10-28.
+ umask=`umask`
+ case $stripcmd.$umask in
+ # Optimize common cases.
+ *[2367][2367]) mkdir_umask=$umask;;
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+ *[0-7])
+ mkdir_umask=`expr $umask + 22 \
+ - $umask % 100 % 40 + $umask % 20 \
+ - $umask % 10 % 4 + $umask % 2
+ `;;
+ *) mkdir_umask=$umask,go-w;;
+ esac
+
+ # With -d, create the new directory with the user-specified mode.
+ # Otherwise, rely on $mkdir_umask.
+ if test -n "$dir_arg"; then
+ mkdir_mode=-m$mode
+ else
+ mkdir_mode=
+ fi
+
+ posix_mkdir=false
+ case $umask in
+ *[123567][0-7][0-7])
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+ ;;
+ *)
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+ if (umask $mkdir_umask &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ ls_ld_tmpdir=`ls -ld "$tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/d" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+ fi
+ trap '' 0;;
+ esac;;
esac
if
$posix_mkdir && (
- umask $mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+ umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
)
then :
else
@@ -391,53 +349,51 @@ do
# directory the slow way, step by step, checking for races as we go.
case $dstdir in
- /*) prefix='/';;
- [-=\(\)!]*) prefix='./';;
- *) prefix='';;
+ /*) prefix='/';;
+ [-=\(\)!]*) prefix='./';;
+ *) prefix='';;
esac
- eval "$initialize_posix_glob"
-
oIFS=$IFS
IFS=/
- $posix_glob set -f
+ set -f
set fnord $dstdir
shift
- $posix_glob set +f
+ set +f
IFS=$oIFS
prefixes=
for d
do
- test X"$d" = X && continue
-
- prefix=$prefix$d
- if test -d "$prefix"; then
- prefixes=
- else
- if $posix_mkdir; then
- (umask=$mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
- # Don't fail if two instances are running concurrently.
- test -d "$prefix" || exit 1
- else
- case $prefix in
- *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
- *) qprefix=$prefix;;
- esac
- prefixes="$prefixes '$qprefix'"
- fi
- fi
- prefix=$prefix/
+ test X"$d" = X && continue
+
+ prefix=$prefix$d
+ if test -d "$prefix"; then
+ prefixes=
+ else
+ if $posix_mkdir; then
+ (umask=$mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+ # Don't fail if two instances are running concurrently.
+ test -d "$prefix" || exit 1
+ else
+ case $prefix in
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) qprefix=$prefix;;
+ esac
+ prefixes="$prefixes '$qprefix'"
+ fi
+ fi
+ prefix=$prefix/
done
if test -n "$prefixes"; then
- # Don't fail if two instances are running concurrently.
- (umask $mkdir_umask &&
- eval "\$doit_exec \$mkdirprog $prefixes") ||
- test -d "$dstdir" || exit 1
- obsolete_mkdir_used=true
+ # Don't fail if two instances are running concurrently.
+ (umask $mkdir_umask &&
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
+ test -d "$dstdir" || exit 1
+ obsolete_mkdir_used=true
fi
fi
fi
@@ -472,15 +428,12 @@ do
# If -C, don't bother to copy if it wouldn't change the file.
if $copy_on_change &&
- old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
- new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
-
- eval "$initialize_posix_glob" &&
- $posix_glob set -f &&
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+ set -f &&
set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 &&
- $posix_glob set +f &&
-
+ set +f &&
test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then
@@ -493,24 +446,24 @@ do
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
{
- # Now remove or move aside any old file at destination location.
- # We try this two ways since rm can't unlink itself on some
- # systems and the destination file might be busy for other
- # reasons. In this case, the final cleanup might fail but the new
- # file should still install successfully.
- {
- test ! -f "$dst" ||
- $doit $rmcmd -f "$dst" 2>/dev/null ||
- { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
- { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
- } ||
- { echo "$0: cannot unlink or rename $dst" >&2
- (exit 1); exit 1
- }
- } &&
-
- # Now rename the file to the real destination.
- $doit $mvcmd "$dsttmp" "$dst"
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ test ! -f "$dst" ||
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ } ||
+ { echo "$0: cannot unlink or rename $dst" >&2
+ (exit 1); exit 1
+ }
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dst"
}
fi || exit 1
diff --git a/install-sh b/install-sh
index 377bb868..04367377 100755
--- a/install-sh
+++ b/install-sh
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2011-11-20.07; # UTC
+scriptversion=2013-10-30.23; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -41,19 +41,15 @@ scriptversion=2011-11-20.07; # UTC
# This script is compatible with the BSD install script, but was written
# from scratch.
+tab=' '
nl='
'
-IFS=" "" $nl"
+IFS=" $tab$nl"
-# set DOITPROG to echo to test this script
+# Set DOITPROG to "echo" to test this script.
-# Don't use :- since 4.3BSD and earlier shells don't like it.
doit=${DOITPROG-}
-if test -z "$doit"; then
- doit_exec=exec
-else
- doit_exec=$doit
-fi
+doit_exec=${doit:-exec}
# Put in absolute file names if you don't have them in your path;
# or use environment vars.
@@ -68,17 +64,6 @@ mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}
-posix_glob='?'
-initialize_posix_glob='
- test "$posix_glob" != "?" || {
- if (set -f) 2>/dev/null; then
- posix_glob=
- else
- posix_glob=:
- fi
- }
-'
-
posix_mkdir=
# Desired mode of installed file.
@@ -137,40 +122,39 @@ while test $# -ne 0; do
-d) dir_arg=true;;
-g) chgrpcmd="$chgrpprog $2"
- shift;;
+ shift;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
- case $mode in
- *' '* | *' '* | *'
-'* | *'*'* | *'?'* | *'['*)
- echo "$0: invalid mode: $mode" >&2
- exit 1;;
- esac
- shift;;
+ case $mode in
+ *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
+ echo "$0: invalid mode: $mode" >&2
+ exit 1;;
+ esac
+ shift;;
-o) chowncmd="$chownprog $2"
- shift;;
+ shift;;
-s) stripcmd=$stripprog;;
-t) dst_arg=$2
- # Protect names problematic for 'test' and other utilities.
- case $dst_arg in
- -* | [=\(\)!]) dst_arg=./$dst_arg;;
- esac
- shift;;
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
+ shift;;
-T) no_target_directory=true;;
--version) echo "$0 $scriptversion"; exit $?;;
- --) shift
- break;;
+ --) shift
+ break;;
- -*) echo "$0: invalid option: $1" >&2
- exit 1;;
+ -*) echo "$0: invalid option: $1" >&2
+ exit 1;;
*) break;;
esac
@@ -223,16 +207,16 @@ if test -z "$dir_arg"; then
*[0-7])
if test -z "$stripcmd"; then
- u_plus_rw=
+ u_plus_rw=
else
- u_plus_rw='% 200'
+ u_plus_rw='% 200'
fi
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
*)
if test -z "$stripcmd"; then
- u_plus_rw=
+ u_plus_rw=
else
- u_plus_rw=,u+rw
+ u_plus_rw=,u+rw
fi
cp_umask=$mode$u_plus_rw;;
esac
@@ -270,40 +254,14 @@ do
# if double slashes aren't ignored.
if test -d "$dst"; then
if test -n "$no_target_directory"; then
- echo "$0: $dst_arg: Is a directory" >&2
- exit 1
+ echo "$0: $dst_arg: Is a directory" >&2
+ exit 1
fi
dstdir=$dst
dst=$dstdir/`basename "$src"`
dstdir_status=0
else
- # Prefer dirname, but fall back on a substitute if dirname fails.
- dstdir=`
- (dirname "$dst") 2>/dev/null ||
- expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$dst" : 'X\(//\)[^/]' \| \
- X"$dst" : 'X\(//\)$' \| \
- X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
- echo X"$dst" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'
- `
-
+ dstdir=`dirname "$dst"`
test -d "$dstdir"
dstdir_status=$?
fi
@@ -314,74 +272,74 @@ do
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
- # Create intermediate dirs using mode 755 as modified by the umask.
- # This is like FreeBSD 'install' as of 1997-10-28.
- umask=`umask`
- case $stripcmd.$umask in
- # Optimize common cases.
- *[2367][2367]) mkdir_umask=$umask;;
- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
- *[0-7])
- mkdir_umask=`expr $umask + 22 \
- - $umask % 100 % 40 + $umask % 20 \
- - $umask % 10 % 4 + $umask % 2
- `;;
- *) mkdir_umask=$umask,go-w;;
- esac
-
- # With -d, create the new directory with the user-specified mode.
- # Otherwise, rely on $mkdir_umask.
- if test -n "$dir_arg"; then
- mkdir_mode=-m$mode
- else
- mkdir_mode=
- fi
-
- posix_mkdir=false
- case $umask in
- *[123567][0-7][0-7])
- # POSIX mkdir -p sets u+wx bits regardless of umask, which
- # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
- ;;
- *)
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
- trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
- if (umask $mkdir_umask &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
- then
- if test -z "$dir_arg" || {
- # Check for POSIX incompatibilities with -m.
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
- # other-writable bit of parent directory when it shouldn't.
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- ls_ld_tmpdir=`ls -ld "$tmpdir"`
- case $ls_ld_tmpdir in
- d????-?r-*) different_mode=700;;
- d????-?--*) different_mode=755;;
- *) false;;
- esac &&
- $mkdirprog -m$different_mode -p -- "$tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
- }
- }
- then posix_mkdir=:
- fi
- rmdir "$tmpdir/d" "$tmpdir"
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
- fi
- trap '' 0;;
- esac;;
+ # Create intermediate dirs using mode 755 as modified by the umask.
+ # This is like FreeBSD 'install' as of 1997-10-28.
+ umask=`umask`
+ case $stripcmd.$umask in
+ # Optimize common cases.
+ *[2367][2367]) mkdir_umask=$umask;;
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+ *[0-7])
+ mkdir_umask=`expr $umask + 22 \
+ - $umask % 100 % 40 + $umask % 20 \
+ - $umask % 10 % 4 + $umask % 2
+ `;;
+ *) mkdir_umask=$umask,go-w;;
+ esac
+
+ # With -d, create the new directory with the user-specified mode.
+ # Otherwise, rely on $mkdir_umask.
+ if test -n "$dir_arg"; then
+ mkdir_mode=-m$mode
+ else
+ mkdir_mode=
+ fi
+
+ posix_mkdir=false
+ case $umask in
+ *[123567][0-7][0-7])
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+ ;;
+ *)
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+ if (umask $mkdir_umask &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ ls_ld_tmpdir=`ls -ld "$tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/d" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+ fi
+ trap '' 0;;
+ esac;;
esac
if
$posix_mkdir && (
- umask $mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+ umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
)
then :
else
@@ -391,53 +349,51 @@ do
# directory the slow way, step by step, checking for races as we go.
case $dstdir in
- /*) prefix='/';;
- [-=\(\)!]*) prefix='./';;
- *) prefix='';;
+ /*) prefix='/';;
+ [-=\(\)!]*) prefix='./';;
+ *) prefix='';;
esac
- eval "$initialize_posix_glob"
-
oIFS=$IFS
IFS=/
- $posix_glob set -f
+ set -f
set fnord $dstdir
shift
- $posix_glob set +f
+ set +f
IFS=$oIFS
prefixes=
for d
do
- test X"$d" = X && continue
-
- prefix=$prefix$d
- if test -d "$prefix"; then
- prefixes=
- else
- if $posix_mkdir; then
- (umask=$mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
- # Don't fail if two instances are running concurrently.
- test -d "$prefix" || exit 1
- else
- case $prefix in
- *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
- *) qprefix=$prefix;;
- esac
- prefixes="$prefixes '$qprefix'"
- fi
- fi
- prefix=$prefix/
+ test X"$d" = X && continue
+
+ prefix=$prefix$d
+ if test -d "$prefix"; then
+ prefixes=
+ else
+ if $posix_mkdir; then
+ (umask=$mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+ # Don't fail if two instances are running concurrently.
+ test -d "$prefix" || exit 1
+ else
+ case $prefix in
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) qprefix=$prefix;;
+ esac
+ prefixes="$prefixes '$qprefix'"
+ fi
+ fi
+ prefix=$prefix/
done
if test -n "$prefixes"; then
- # Don't fail if two instances are running concurrently.
- (umask $mkdir_umask &&
- eval "\$doit_exec \$mkdirprog $prefixes") ||
- test -d "$dstdir" || exit 1
- obsolete_mkdir_used=true
+ # Don't fail if two instances are running concurrently.
+ (umask $mkdir_umask &&
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
+ test -d "$dstdir" || exit 1
+ obsolete_mkdir_used=true
fi
fi
fi
@@ -472,15 +428,12 @@ do
# If -C, don't bother to copy if it wouldn't change the file.
if $copy_on_change &&
- old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
- new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
-
- eval "$initialize_posix_glob" &&
- $posix_glob set -f &&
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+ set -f &&
set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 &&
- $posix_glob set +f &&
-
+ set +f &&
test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then
@@ -493,24 +446,24 @@ do
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
{
- # Now remove or move aside any old file at destination location.
- # We try this two ways since rm can't unlink itself on some
- # systems and the destination file might be busy for other
- # reasons. In this case, the final cleanup might fail but the new
- # file should still install successfully.
- {
- test ! -f "$dst" ||
- $doit $rmcmd -f "$dst" 2>/dev/null ||
- { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
- { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
- } ||
- { echo "$0: cannot unlink or rename $dst" >&2
- (exit 1); exit 1
- }
- } &&
-
- # Now rename the file to the real destination.
- $doit $mvcmd "$dsttmp" "$dst"
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ test ! -f "$dst" ||
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ } ||
+ { echo "$0: cannot unlink or rename $dst" >&2
+ (exit 1); exit 1
+ }
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dst"
}
fi || exit 1
diff --git a/po/fi.gmo b/po/fi.gmo
index 18411e5b..c2e017f1 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index 37607553..e58b6179 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -1,14 +1,14 @@
# Finnish messages for gawk.
-# Copyright © 2010, 2011, 2012 Free Software Foundation, Inc.
+# Copyright © 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
# This file is distributed under the same license as the gawk package.
-# Jorma Karvonen <karvonen.jorma@gmail.com>, 2010-2012.
+# Jorma Karvonen <karvonen.jorma@gmail.com>, 2010-2014.
#
msgid ""
msgstr ""
-"Project-Id-Version: gawk 4.0.0h\n"
+"Project-Id-Version: gawk 4.0.75\n"
"Report-Msgid-Bugs-To: arnold@skeeve.com\n"
-"POT-Creation-Date: 2013-05-09 16:05+0300\n"
-"PO-Revision-Date: 2012-03-13 18:00+0200\n"
+"POT-Creation-Date: 2013-04-17 20:54+0300\n"
+"PO-Revision-Date: 2014-01-02 11:55+0200\n"
"Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
"Language: fi\n"
@@ -16,6 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 1.5.4\n"
#: array.c:254
#, c-format
@@ -54,9 +55,8 @@ msgid "attempt to use scalar `%s[\"%.*s\"]' as an array"
msgstr "yritettiin käyttää skalaaria ”%s[\"%.*s\"]” taulukkona"
#: array.c:773
-#, fuzzy
msgid "adump: first argument not an array"
-msgstr "adump: argumentti ei ole taulukko"
+msgstr "adump: ensimmäinen argumentti ei ole taulukko"
#: array.c:812
msgid "asort: second argument not an array"
@@ -76,27 +76,19 @@ msgstr "asorti: ensimmäinen argumentti ei ole taulukko"
#: array.c:828
msgid "asort: cannot use a subarray of first arg for second arg"
-msgstr ""
-"asort: ei voida käyttää ensimmäisen argumentin alitaulukkoa toiselle "
-"argumentille"
+msgstr "asort: ensimmäisen argumentin alitaulukon käyttö toiselle argumentille epäonnistui"
#: array.c:829
msgid "asorti: cannot use a subarray of first arg for second arg"
-msgstr ""
-"asorti: ei voida käyttää ensimmäisen argumentin alitaulukkoa toiselle "
-"argumentille"
+msgstr "asorti: ensimmäisen argumentin alitaulukon käyttö toiselle argumentille epäonnistui"
#: array.c:834
msgid "asort: cannot use a subarray of second arg for first arg"
-msgstr ""
-"asort: ei voida käyttää toisen argumentin alitaulukkoa ensimmäiselle "
-"argumentille"
+msgstr "asort: toisen argumentin alitaulukon käyttö ensimmäiselle argumentille epäonnistui"
#: array.c:835
msgid "asorti: cannot use a subarray of second arg for first arg"
-msgstr ""
-"asorti: ei voida käyttää toisen argumentin alitaulukkoa ensimmäiselle "
-"argumentille"
+msgstr "asorti: toisen argumentin alitaulukon käyttö ensimmäiselle argumentille epäonnistui"
#: array.c:1309
#, c-format
@@ -128,14 +120,12 @@ msgstr "”%s” on sisäänrakennettu funktio. Sitä ei voi määritellä uudel
#: awkgram.y:419
msgid "regexp constant `//' looks like a C++ comment, but is not"
-msgstr ""
-"säännöllisen lausekkeen vakio ”//” näyttää C++-kommentilta, mutta ei ole"
+msgstr "säännöllisen lausekkeen vakio ”//” näyttää C++-kommentilta, mutta ei ole"
#: awkgram.y:423
#, c-format
msgid "regexp constant `/%s/' looks like a C comment, but is not"
-msgstr ""
-"säännöllisen lausekkeen vakio ”/%s/” näyttää C-kommentilta, mutta ei ole"
+msgstr "säännöllisen lausekkeen vakio ”/%s/” näyttää C-kommentilta, mutta ei ole"
#: awkgram.y:515
#, c-format
@@ -170,16 +160,15 @@ msgstr "”return” käytetty funktiokontekstin ulkopuolella"
#: awkgram.y:922
msgid "plain `print' in BEGIN or END rule should probably be `print \"\"'"
-msgstr ""
-"pelkkä ”print” BEGIN- tai END-säännössä pitäisi luultavasti olla ”print \"\"”"
+msgstr "pelkkä ”print” BEGIN- tai END-säännössä pitäisi luultavasti olla ”print \"\"”"
#: awkgram.y:988 awkgram.y:1037
msgid "`delete' is not allowed with SYMTAB"
-msgstr ""
+msgstr "”delete” ei ole sallittu kohteessa SYMTAB"
#: awkgram.y:990 awkgram.y:1039
msgid "`delete' is not allowed with FUNCTAB"
-msgstr ""
+msgstr "”delete” ei ole sallittu kohteessa FUNCTAB"
#: awkgram.y:1024 awkgram.y:1028
msgid "`delete(array)' is a non-portable tawk extension"
@@ -234,7 +223,7 @@ msgstr "epäsuorat funktiokutsut ovat gawk-laajennus"
#: awkgram.y:1620
#, c-format
msgid "can not use special variable `%s' for indirect function call"
-msgstr "ei voi käyttää erikoismuuttujaa ”%s” epäsuoralle funktiokutsulle"
+msgstr "erikoismuuttujan ”%s” käyttö epäsuoralle funktiokutsulle epäonnistui"
#: awkgram.y:1698
msgid "invalid subscript expression"
@@ -242,11 +231,11 @@ msgstr "virheellinen indeksointilauseke"
#: awkgram.y:2024 awkgram.y:2044 gawkapi.c:206 gawkapi.c:224 msg.c:119
msgid "warning: "
-msgstr "varoitus:"
+msgstr "varoitus: "
#: awkgram.y:2042 gawkapi.c:192 gawkapi.c:221 msg.c:151
msgid "fatal: "
-msgstr "tuhoisa:"
+msgstr "tuhoisa: "
#: awkgram.y:2092
msgid "unexpected newline or end of string"
@@ -256,12 +245,12 @@ msgstr "odottamaton rivinvaihto tai merkkijonon loppu"
#: debug.c:2792 debug.c:5040
#, c-format
msgid "can't open source file `%s' for reading (%s)"
-msgstr "ei voi avata lähdetiedostoa ”%s” lukemista varten (%s)"
+msgstr "lähdetiedoston ”%s” avaaminen lukemista varten (%s) epäonnistui"
#: awkgram.y:2360 awkgram.y:2485
-#, fuzzy, c-format
+#, c-format
msgid "can't open shared library `%s' for reading (%s)"
-msgstr "ei voi avata lähdetiedostoa ”%s” lukemista varten (%s)"
+msgstr "jaetun kirjaston ”%s” avaaminen lukemista varten (%s) epäonnistui"
#: awkgram.y:2362 awkgram.y:2436 awkgram.y:2486 builtin.c:130 debug.c:5191
msgid "reason unknown"
@@ -270,7 +259,7 @@ msgstr "syy tuntematon"
#: awkgram.y:2371 awkgram.y:2395
#, c-format
msgid "can't include `%s' and use it as a program file"
-msgstr ""
+msgstr "kohteen ”%s” sisällyttäminen ja käyttö ohjelmatiedostona epäonnistui"
#: awkgram.y:2384
#, c-format
@@ -278,9 +267,9 @@ msgid "already included source file `%s'"
msgstr "on jo sisällytetty lähdetiedostoon ”%s”"
#: awkgram.y:2385
-#, fuzzy, c-format
+#, c-format
msgid "already loaded shared library `%s'"
-msgstr "on jo sisällytetty lähdetiedostoon ”%s”"
+msgstr "jaettu kirjasto ”%s” on jo ladattu"
#: awkgram.y:2420
msgid "@include is a gawk extension"
@@ -291,14 +280,12 @@ msgid "empty filename after @include"
msgstr "tyhjä tiedostonimi @include:n jälkeen"
#: awkgram.y:2470
-#, fuzzy
msgid "@load is a gawk extension"
-msgstr "@include on gawk-laajennus"
+msgstr "@load on gawk-laajennus"
#: awkgram.y:2476
-#, fuzzy
msgid "empty filename after @load"
-msgstr "tyhjä tiedostonimi @include:n jälkeen"
+msgstr "tyhjä tiedostonimi @load:n jälkeen"
#: awkgram.y:2610
msgid "empty program text on command line"
@@ -307,7 +294,7 @@ msgstr "tyhjä ohjelmateksti komentorivillä"
#: awkgram.y:2725
#, c-format
msgid "can't read sourcefile `%s' (%s)"
-msgstr "ei voi lukea lähdetiedostoa ”%s” (%s)"
+msgstr "lähdetiedoston ”%s” (%s) lukeminen epäonnistui"
#: awkgram.y:2736
#, c-format
@@ -320,8 +307,7 @@ msgstr "lähdetiedoston lopussa ei ole rivinvaihtoa"
#: awkgram.y:3018
msgid "unterminated regexp ends with `\\' at end of file"
-msgstr ""
-"päättämätön säännöllinen lauseke loppuu ”\\”-merkkeihin tiedoston lopussa"
+msgstr "päättämätön säännöllinen lauseke loppuu ”\\”-merkkeihin tiedoston lopussa"
#: awkgram.y:3042
#, c-format
@@ -390,7 +376,7 @@ msgstr "”%s” on gawk-laajennus"
#: awkgram.y:3631
#, c-format
msgid "POSIX does not allow `%s'"
-msgstr "POSIX ei salli operaattori ”%s”"
+msgstr "POSIX ei salli operaattoria ”%s”"
#: awkgram.y:3639
#, c-format
@@ -409,9 +395,7 @@ msgstr "%d on virheellinen argumenttilukumäärä operaattorille %s"
#: awkgram.y:3798
#, c-format
msgid "%s: string literal as last arg of substitute has no effect"
-msgstr ""
-"%s: merkkijonoliteraalilla ei ole vaikutusta korvauksen viimeisenä "
-"argumenttina"
+msgstr "%s: merkkijonoliteraalilla ei ole vaikutusta korvauksen viimeisenä argumenttina"
#: awkgram.y:3803
#, c-format
@@ -434,74 +418,69 @@ msgstr "dcgettext(_\"...\")-käyttö on virheellinen: poista alaviiva alusta"
msgid "use of dcngettext(_\"...\") is incorrect: remove leading underscore"
msgstr "dcngettext(_\"...\")-käyttö on virheellinen: poista alaviiva alusta"
-#: awkgram.y:3992
-#, fuzzy
-msgid "index: regexp constant as second argument is not allowed"
-msgstr "index: toinen vastaanotettu argumentti ei ole merkkijono"
-
-#: awkgram.y:4045
+#: awkgram.y:4039
#, c-format
msgid "function `%s': parameter `%s' shadows global variable"
msgstr "funktio ”%s”: parametri ”%s” varjostaa yleismuuttujaa"
-#: awkgram.y:4102 debug.c:4021 debug.c:4064 debug.c:5189
+#: awkgram.y:4096 debug.c:4021 debug.c:4064 debug.c:5189
#, c-format
msgid "could not open `%s' for writing (%s)"
-msgstr "ei voitu avata tiedostoa ”%s” kirjoittamista varten (%s)"
+msgstr "tiedoston ”%s” avaaminen kirjoittamista varten (%s) epäonnistui"
-#: awkgram.y:4103
+#: awkgram.y:4097
msgid "sending variable list to standard error"
msgstr "lähetetään muuttujaluettelo vakiovirheeseen"
-#: awkgram.y:4111
+#: awkgram.y:4105
#, c-format
msgid "%s: close failed (%s)"
msgstr "%s: sulkeminen epäonnistui (%s)"
-#: awkgram.y:4136
+#: awkgram.y:4130
msgid "shadow_funcs() called twice!"
msgstr "shadow_funcs() kutsuttu kahdesti!"
-#: awkgram.y:4144
+#: awkgram.y:4138
msgid "there were shadowed variables."
msgstr "siellä oli varjostettuja muuttujia."
-#: awkgram.y:4215
+#: awkgram.y:4209
#, c-format
msgid "function name `%s' previously defined"
msgstr "funktionimi ”%s” on jo aikaisemmin määritelty"
-#: awkgram.y:4261
+#: awkgram.y:4255
#, c-format
msgid "function `%s': can't use function name as parameter name"
-msgstr "funktio ”%s”: ei voi käyttää funktionimeä parametrinimenä"
+msgstr "funktio ”%s”: funktionimen käyttö parametrinimenä epäonnistui"
-#: awkgram.y:4264
+#: awkgram.y:4258
#, c-format
msgid "function `%s': can't use special variable `%s' as a function parameter"
-msgstr "funktio ”%s”: ei voi käyttää erikoismuuttujaa ”%s” funktioparametrina"
+msgstr "funktio ”%s”: erikoismuuttujan ”%s” käyttö funktioparametrina epäonnistui"
-#: awkgram.y:4272
+#: awkgram.y:4266
#, c-format
msgid "function `%s': parameter #%d, `%s', duplicates parameter #%d"
msgstr "funktio ”%s”: parametri #%d, ”%s”, samanlainen parametri #%d"
-#: awkgram.y:4366 awkgram.y:4372
+#: awkgram.y:4360 awkgram.y:4366
#, c-format
msgid "function `%s' called but never defined"
msgstr "funktiota ”%s” kutsuttiin, mutta sitä ei ole koskaan määritelty"
-#: awkgram.y:4376
+#: awkgram.y:4370
#, c-format
msgid "function `%s' defined but never called directly"
msgstr "funktio ”%s” määriteltiin, mutta sitä ei ole koskaan kutsuttu suoraan"
-#: awkgram.y:4408
+#: awkgram.y:4402
#, c-format
msgid "regexp constant for parameter #%d yields boolean value"
msgstr "säännöllisen lausekkeen vakio parametrille #%d antaa boolean-arvon"
-#: awkgram.y:4467
+#: awkgram.y:4461
#, c-format
msgid ""
"function `%s' called with space between name and `(',\n"
@@ -510,11 +489,11 @@ msgstr ""
"funktio ”%s” kutsuttu välilyönnillä nimen ja ”(”-merkin\n"
"välillä, tai käytetty muuttujana tai taulukkona"
-#: awkgram.y:4703
+#: awkgram.y:4697
msgid "division by zero attempted"
msgstr "nollalla jakoa yritettiin"
-#: awkgram.y:4712
+#: awkgram.y:4706
#, c-format
msgid "division by zero attempted in `%%'"
msgstr "jakoa nollalla yritettiin operaattorissa ”%%”"
@@ -541,16 +520,12 @@ msgstr "exp: argumentti %g on lukualueen ulkopuolella"
#: builtin.c:224
#, c-format
msgid "fflush: cannot flush: pipe `%s' opened for reading, not writing"
-msgstr ""
-"fflush: ei voi tyhjentää: putki ”%s” avattu lukemista varten, ei "
-"kirjoittamiseen"
+msgstr "fflush: tyhjentäminen epäonnistui: putki ”%s” avattu lukemista varten, ei kirjoittamiseen"
#: builtin.c:227
#, c-format
msgid "fflush: cannot flush: file `%s' opened for reading, not writing"
-msgstr ""
-"fflush: ei voi tyhjentää: tiedosto ”%s” avattu lukemista varten, ei "
-"kirjoittamiseen"
+msgstr "fflush: tyhjentäminen epäonnistui: tiedosto ”%s” avattu lukemista varten, ei kirjoittamiseen"
#: builtin.c:239
#, c-format
@@ -620,9 +595,7 @@ msgstr "kohtalokas: argumenttilukumäärän argumentilla ”$” on oltava > 0"
#: builtin.c:914
#, c-format
msgid "fatal: arg count %ld greater than total number of supplied arguments"
-msgstr ""
-"kohtalokas: argumenttilukumäärä %ld on suurempi kuin toimitettujen "
-"argumenttien lukumäärä"
+msgstr "kohtalokas: argumenttilukumäärä %ld on suurempi kuin toimitettujen argumenttien lukumäärä"
#: builtin.c:918
msgid "fatal: `$' not permitted after period in format"
@@ -630,9 +603,7 @@ msgstr "kohtalokas: ”$”-argumentti ei ole sallittu pisteen jälkeen muodossa
#: builtin.c:934
msgid "fatal: no `$' supplied for positional field width or precision"
-msgstr ""
-"kohtalokas: ei ”$”-argumenttia tarjottu sijantikenttäleveydelle tai "
-"tarkkuudelle"
+msgstr "kohtalokas: ei ”$”-argumenttia tarjottu sijantikenttäleveydelle tai tarkkuudelle"
#: builtin.c:1006
msgid "`l' is meaningless in awk formats; ignored"
@@ -666,8 +637,7 @@ msgstr "[s]printf: arvo %g on lukualueen ulkopuolella ”%%%c”-muodolle"
#: builtin.c:1537
#, c-format
msgid "ignoring unknown format specifier character `%c': no argument converted"
-msgstr ""
-"ohitetaan tuntematon muotoargumenttimerkki ”%c”: ei muunnettu argumenttia"
+msgstr "ohitetaan tuntematon muotoargumenttimerkki ”%c”: ei muunnettu argumenttia"
#: builtin.c:1542
msgid "fatal: not enough arguments to satisfy format string"
@@ -686,9 +656,8 @@ msgid "too many arguments supplied for format string"
msgstr "muotomerkkijonoon toimitettu liian monta argumenttia"
#: builtin.c:1610
-#, fuzzy
msgid "sprintf: no arguments"
-msgstr "printf: ei argumentteja"
+msgstr "sprintf: ei argumentteja"
#: builtin.c:1633 builtin.c:1644
msgid "printf: no arguments"
@@ -721,8 +690,7 @@ msgstr "substr: typistetään pituus %g, joka ei ole kokonaisluku"
#: builtin.c:1736
#, c-format
msgid "substr: length %g too big for string indexing, truncating to %g"
-msgstr ""
-"substr: pituus %g liian suuri merkkijononindeksointiin, typistetään arvoon %g"
+msgstr "substr: pituus %g liian suuri merkkijononindeksointiin, typistetään arvoon %g"
#: builtin.c:1748
#, c-format
@@ -745,16 +713,12 @@ msgstr "substr: aloitusindeksi %g on merkkijonon lopun jälkeen"
#: builtin.c:1802
#, c-format
-msgid ""
-"substr: length %g at start index %g exceeds length of first argument (%lu)"
-msgstr ""
-"substr: pituus %g alkuindeksissä %g ylittää ensimmäisen argumentin pituuden "
-"(%lu)"
+msgid "substr: length %g at start index %g exceeds length of first argument (%lu)"
+msgstr "substr: pituus %g alkuindeksissä %g ylittää ensimmäisen argumentin pituuden (%lu)"
#: builtin.c:1876
msgid "strftime: format value in PROCINFO[\"strftime\"] has numeric type"
-msgstr ""
-"strftime: muotoarvolla kohteessa PROCINFO[\"strftime\"] on numerotyyppi"
+msgstr "strftime: muotoarvolla kohteessa PROCINFO[\"strftime\"] on numerotyyppi"
#: builtin.c:1899
msgid "strftime: received non-numeric second argument"
@@ -762,9 +726,7 @@ msgstr "strftime: toinen vastaanotettu argumentti ei ole numeerinen"
#: builtin.c:1903
msgid "strftime: second argument less than 0 or too big for time_t"
-msgstr ""
-"strftime: toinen argumentti on pienempi kuin 0 tai liian suuri time_t-"
-"rakenteeseen"
+msgstr "strftime: toinen argumentti on pienempi kuin 0 tai liian suuri time_t-rakenteeseen"
#: builtin.c:1910
msgid "strftime: received non-string first argument"
@@ -784,7 +746,7 @@ msgstr "mktime: vähintään yksi arvoista on oletuslukualueen ulkopuolella"
#: builtin.c:2035
msgid "'system' function not allowed in sandbox mode"
-msgstr "”system”-funktio ei ole sallittu hiekkalaatikkotilassa"
+msgstr "’system’-funktio ei ole sallittu hiekkalaatikkotilassa"
#: builtin.c:2040
msgid "system: received non-string argument"
@@ -840,19 +802,19 @@ msgid "lshift: received non-numeric second argument"
msgstr "lshift: toinen vastaanotettu argumentti ei ole numeerinen"
#: builtin.c:3011
-#, fuzzy, c-format
+#, c-format
msgid "lshift(%f, %f): negative values will give strange results"
-msgstr "lshift(%lf, %lf): negatiiviset arvot antavat outoja tuloksia"
+msgstr "lshift(%f, %f): negatiiviset arvot antavat outoja tuloksia"
#: builtin.c:3013
-#, fuzzy, c-format
+#, c-format
msgid "lshift(%f, %f): fractional values will be truncated"
-msgstr "lshift(%lf, %lf): jaosarvot typistetään"
+msgstr "lshift(%f, %f): jaosarvot typistetään"
#: builtin.c:3015
-#, fuzzy, c-format
+#, c-format
msgid "lshift(%f, %f): too large shift value will give strange results"
-msgstr "lshift(%lf, %lf): liian suuri siirrosarvo antaa outoja tuloksia"
+msgstr "lshift(%f, %f): liian suuri siirrosarvo antaa outoja tuloksia"
#: builtin.c:3040
msgid "rshift: received non-numeric first argument"
@@ -863,78 +825,75 @@ msgid "rshift: received non-numeric second argument"
msgstr "rshift: toinen vastaanotettu argumentti ei ole numeerinen"
#: builtin.c:3048
-#, fuzzy, c-format
+#, c-format
msgid "rshift(%f, %f): negative values will give strange results"
-msgstr "rshift(%lf, %lf): negatiiviset arvot antavat outoja tuloksia"
+msgstr "rshift(%f, %f): negatiiviset arvot antavat outoja tuloksia"
#: builtin.c:3050
-#, fuzzy, c-format
+#, c-format
msgid "rshift(%f, %f): fractional values will be truncated"
-msgstr "rshift(%lf, %lf): jaosarvot typistetään"
+msgstr "rshift(%f, %f): jaosarvot typistetään"
#: builtin.c:3052
-#, fuzzy, c-format
+#, c-format
msgid "rshift(%f, %f): too large shift value will give strange results"
-msgstr "rshift(%lf, %lf): liian suuri siirrosarvo antaa outoja tuloksia"
+msgstr "rshift(%f, %f): liian suuri siirrosarvo antaa outoja tuloksia"
#: builtin.c:3077 mpfr.c:968
-#, fuzzy
msgid "and: called with less than two arguments"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "and: kutsuttu vähemmällä kuin kahdella argumentilla"
#: builtin.c:3082
-#, fuzzy, c-format
+#, c-format
msgid "and: argument %d is non-numeric"
-msgstr "exp: argumentti %g on lukualueen ulkopuolella"
+msgstr "and: argumentti %d ei ole numeeraaliargumentti"
#: builtin.c:3086
-#, fuzzy, c-format
+#, c-format
msgid "and: argument %d negative value %g will give strange results"
-msgstr "and(%lf, %lf): negatiiviset arvot antavat outoja tuloksia"
+msgstr "and: argumentin %d negatiivinen arvo %g antaa outoja tuloksia"
#: builtin.c:3109 mpfr.c:1000
-#, fuzzy
msgid "or: called with less than two arguments"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "or: kutsuttu vähemmällä kuin kahdella argumentilla"
#: builtin.c:3114
-#, fuzzy, c-format
+#, c-format
msgid "or: argument %d is non-numeric"
-msgstr "exp: argumentti %g on lukualueen ulkopuolella"
+msgstr "or: argumentti %d ei ole numeraaliargumentti"
#: builtin.c:3118
-#, fuzzy, c-format
+#, c-format
msgid "or: argument %d negative value %g will give strange results"
-msgstr "compl(%lf): negatiiviset arvot antavat outoja tuloksia"
+msgstr "or: argumentin %d negatiivinen arvo %g antaa outoja tuloksia"
#: builtin.c:3140 mpfr.c:1031
-#, fuzzy
msgid "xor: called with less than two arguments"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "xor: kutsuttu vähemmällä kuin kahdella argumentilla"
#: builtin.c:3146
-#, fuzzy, c-format
+#, c-format
msgid "xor: argument %d is non-numeric"
-msgstr "exp: argumentti %g on lukualueen ulkopuolella"
+msgstr "xor: argumentti %d ei ole numeraaliargumentti"
#: builtin.c:3150
-#, fuzzy, c-format
+#, c-format
msgid "xor: argument %d negative value %g will give strange results"
-msgstr "xor(%lf, %lf): negatiiviset arvot antavat outoja tuloksia"
+msgstr "xor: argumentin %d negatiivinen arvo %g antaa outoja tuloksia"
#: builtin.c:3175 mpfr.c:787
msgid "compl: received non-numeric argument"
msgstr "compl: vastaanotettu argumentti ei ole numeerinen"
#: builtin.c:3181
-#, fuzzy, c-format
+#, c-format
msgid "compl(%f): negative value will give strange results"
-msgstr "compl(%lf): negatiiviset arvot antavat outoja tuloksia"
+msgstr "compl(%f): negatiivinen arvo antaa outoja tuloksia"
#: builtin.c:3183
-#, fuzzy, c-format
+#, c-format
msgid "compl(%f): fractional value will be truncated"
-msgstr "compl(%lf): jaosarvo typistetään"
+msgstr "compl(%f): jaosarvo typistetään"
#: builtin.c:3352
#, c-format
@@ -944,853 +903,843 @@ msgstr "dcgettext: ”%s” ei ole kelvollinen paikallinen kategoria"
#: command.y:225
#, c-format
msgid "Type (g)awk statement(s). End with the command \"end\"\n"
-msgstr ""
+msgstr "Kirjoita (g)awk-lause(et). Lopeta komennolla \"end\"\n"
#: command.y:289
-#, fuzzy, c-format
+#, c-format
msgid "invalid frame number: %d"
-msgstr "Virheellinen lukualueen loppu"
+msgstr "virheellinen kehysnumero: %d"
#: command.y:295
-#, fuzzy, c-format
+#, c-format
msgid "info: invalid option - \"%s\""
-msgstr "%s: virheellinen valitsin -- ’%c’\n"
+msgstr "info: virheellinen valitsin -- ”%s”"
#: command.y:321
#, c-format
msgid "source \"%s\": already sourced."
-msgstr ""
+msgstr "source ”%s”: on jo merkitty lähteeksi."
#: command.y:326
#, c-format
msgid "save \"%s\": command not permitted."
-msgstr ""
+msgstr "save ”%s”: komento ei ole sallittu."
#: command.y:339
msgid "Can't use command `commands' for breakpoint/watchpoint commands"
-msgstr ""
+msgstr "Komennon ”commands” käyttö breakpoint/watchpoint-komentoja varten epäonnistui"
#: command.y:341
msgid "no breakpoint/watchpoint has been set yet"
-msgstr ""
+msgstr "yhtään breakpoint/watchpoint -kohdetta ei ole vielä asetettu"
#: command.y:343
msgid "invalid breakpoint/watchpoint number"
-msgstr ""
+msgstr "virheellinen breakpoint/watchpoint-numero"
#: command.y:348
#, c-format
msgid "Type commands for when %s %d is hit, one per line.\n"
-msgstr ""
+msgstr "Kirjoita komennot, kun %s %d osui, yksi per rivi.\n"
#: command.y:350
#, c-format
msgid "End with the command \"end\"\n"
-msgstr ""
+msgstr "Lopeta komennolla ”end”\n"
#: command.y:357
msgid "`end' valid only in command `commands' or `eval'"
-msgstr ""
+msgstr "”end” on kelvollinen vain komennoissa ”commands” tai ”eval”"
#: command.y:367
msgid "`silent' valid only in command `commands'"
-msgstr ""
+msgstr "”silent” on kelvollinen vain komennossa ”commands”"
#: command.y:373
-#, fuzzy, c-format
+#, c-format
msgid "trace: invalid option - \"%s\""
-msgstr "%s: virheellinen valitsin -- ’%c’\n"
+msgstr "trace: virheellinen valitsin -- ”%s”"
#: command.y:387
msgid "condition: invalid breakpoint/watchpoint number"
-msgstr ""
+msgstr "condition: virheellinen breakpoint/watchpoint-numero"
#: command.y:449
-#, fuzzy
msgid "argument not a string"
-msgstr "exp: argumentti %g on lukualueen ulkopuolella"
+msgstr "argumentti ei ole merkkijono"
#: command.y:459 command.y:464
#, c-format
msgid "option: invalid parameter - \"%s\""
-msgstr ""
+msgstr "option: virheellinen parametri - ”%s”"
#: command.y:474
#, c-format
msgid "no such function - \"%s\""
-msgstr ""
+msgstr "tuntematon funktio - ”%s”"
#: command.y:531
-#, fuzzy, c-format
+#, c-format
msgid "enable: invalid option - \"%s\""
-msgstr "%s: virheellinen valitsin -- ’%c’\n"
+msgstr "enable: virheellinen valitsin -- ”%s”"
#: command.y:597
-#, fuzzy, c-format
+#, c-format
msgid "invalid range specification: %d - %d"
-msgstr "Virheellinen lukualueen loppu"
+msgstr "virheellinen lukualuemäärittely: %d - %d"
#: command.y:659
-#, fuzzy
msgid "non-numeric value for field number"
-msgstr "tuntematon arvo kenttämääritteelle: %d\n"
+msgstr "ei-numeerinen arvo kenttänumerolle"
#: command.y:680 command.y:687
msgid "non-numeric value found, numeric expected"
-msgstr ""
+msgstr "löytyi ei-numeerinen arvo, odotettiin numeraalia"
#: command.y:712 command.y:718
msgid "non-zero integer value"
-msgstr ""
+msgstr "nollasta poikkeava kokonaislukuarvo"
#: command.y:817
-msgid ""
-"backtrace [N] - print trace of all or N innermost (outermost if N < 0) "
-"frames."
-msgstr ""
+msgid "backtrace [N] - print trace of all or N innermost (outermost if N < 0) frames."
+msgstr "backtrace [N] - tulosta kaikkien tai N:n sisimmäisen (ulommaisin, jos N < 0) kehyksen jäljet."
#: command.y:819
-msgid ""
-"break [[filename:]N|function] - set breakpoint at the specified location."
-msgstr ""
+msgid "break [[filename:]N|function] - set breakpoint at the specified location."
+msgstr "break [[filename:]N|function] - aseta breakpoint määriteltyyn sijaintiin."
#: command.y:821
msgid "clear [[filename:]N|function] - delete breakpoints previously set."
-msgstr ""
+msgstr "clear [[filename:]N|function] - poista aiemmin asetetut breakpoint-kohdat."
#: command.y:823
-msgid ""
-"commands [num] - starts a list of commands to be executed at a breakpoint"
-"(watchpoint) hit."
-msgstr ""
+msgid "commands [num] - starts a list of commands to be executed at a breakpoint(watchpoint) hit."
+msgstr "commands [num] - aloittaa komentojen luettelon, joka suoritetaan keskeytyskohta(watchpoint)osumassa."
#: command.y:825
msgid "condition num [expr] - set or clear breakpoint or watchpoint condition."
-msgstr ""
+msgstr "condition num [expr] - aseta tai nollaa keskeytyskohta- tai vahtikohtaehdot."
#: command.y:827
msgid "continue [COUNT] - continue program being debugged."
-msgstr ""
+msgstr "continue [COUNT] - continue program being debugged."
#: command.y:829
msgid "delete [breakpoints] [range] - delete specified breakpoints."
-msgstr ""
+msgstr "delete [keskeytyskohdat] [lukualue] - poista määritellyt keskeytyskohdat."
#: command.y:831
msgid "disable [breakpoints] [range] - disable specified breakpoints."
-msgstr ""
+msgstr "disable [keskeytyskohdat] [lukualue] - ota pois käytöstä määritellyt keskeytyskohdat."
#: command.y:833
msgid "display [var] - print value of variable each time the program stops."
-msgstr ""
+msgstr "display [muuttuja] - tulosta muuttujan arvo joka kerta kun ohjelma pysähtyy."
#: command.y:835
msgid "down [N] - move N frames down the stack."
-msgstr ""
+msgstr "down [N] - siirrä N kehystä alaspäin pinossa."
#: command.y:837
msgid "dump [filename] - dump instructions to file or stdout."
-msgstr ""
+msgstr "dump [tiedostonimi] - vedosta käskyt tiedostoon tai vakiotulosteeseen."
#: command.y:839
msgid "enable [once|del] [breakpoints] [range] - enable specified breakpoints."
-msgstr ""
+msgstr "enable [once|del] [keskeytyskohdat] [lukualue] - ota käyttöön määritellyt keskeytyskohdat."
#: command.y:841
msgid "end - end a list of commands or awk statements."
-msgstr ""
+msgstr "end - lopeta komentojen tai awk-lauseiden luottelo."
#: command.y:843
msgid "eval stmt|[p1, p2, ...] - evaluate awk statement(s)."
-msgstr ""
+msgstr "eval stmt|[p1, p2, ...] - evaloi awk-lauseet."
#: command.y:845
msgid "finish - execute until selected stack frame returns."
-msgstr ""
+msgstr "finish - suorita kunnes palautetaan valittu pinokehys."
#: command.y:847
msgid "frame [N] - select and print stack frame number N."
-msgstr ""
+msgstr "frame [N] - valitse ja tulosta pinokehys numero N."
#: command.y:849
msgid "help [command] - print list of commands or explanation of command."
-msgstr ""
+msgstr "help [komento] - tulosta komentoluettelo tai komennon selitys."
#: command.y:851
msgid "ignore N COUNT - set ignore-count of breakpoint number N to COUNT."
-msgstr ""
+msgstr "ignore N COUNT - aseta keskeytyskohdan ignore-count numero N arvoon COUNT."
#: command.y:853
-msgid ""
-"info topic - source|sources|variables|functions|break|frame|args|locals|"
-"display|watch."
-msgstr ""
+msgid "info topic - source|sources|variables|functions|break|frame|args|locals|display|watch."
+msgstr "info aihe - source|sources|variables|functions|break|frame|args|locals|display|watch."
#: command.y:855
msgid "list [-|+|[filename:]lineno|function|range] - list specified line(s)."
-msgstr ""
+msgstr "list [-|+|[tiedostonimi:]rivinumero|funktio|lukualue] - luettele määritellyt rivit."
#: command.y:857
msgid "next [COUNT] - step program, proceeding through subroutine calls."
-msgstr ""
+msgstr "next [COUNT] - askella ohjelmaa, etene alirutiinikutsujen kautta."
#: command.y:859
-msgid ""
-"nexti [COUNT] - step one instruction, but proceed through subroutine calls."
-msgstr ""
+msgid "nexti [COUNT] - step one instruction, but proceed through subroutine calls."
+msgstr "nexti [COUNT] - askella yksi käsky, mutta etene alirutiinikutsujen kautta."
#: command.y:861
msgid "option [name[=value]] - set or display debugger option(s)."
-msgstr ""
+msgstr "option [nimi[=arvo]] - aseta tai näytä vianjäljittäjävalitsimet."
#: command.y:863
msgid "print var [var] - print value of a variable or array."
-msgstr ""
+msgstr "print var [muuttuja] - tulosta muutujan tai taulukon arvo."
#: command.y:865
msgid "printf format, [arg], ... - formatted output."
-msgstr ""
+msgstr "printf muoto, [argumentti], ... - muotoiltu tuloste."
#: command.y:867
msgid "quit - exit debugger."
-msgstr ""
+msgstr "quit - poistu vianjäljittäjästä."
#: command.y:869
msgid "return [value] - make selected stack frame return to its caller."
-msgstr ""
+msgstr "return [arvo] - tekee valitun pinokehyksen paluun sen kutsujalle."
#: command.y:871
msgid "run - start or restart executing program."
-msgstr ""
+msgstr "run - käynnistä tai uudelleenkäynnistä ohjelman suoritus."
#: command.y:874
msgid "save filename - save commands from the session to file."
-msgstr ""
+msgstr "save tiedostonimi - tallenna komennot istunnosta tiedostoon."
#: command.y:877
msgid "set var = value - assign value to a scalar variable."
-msgstr ""
+msgstr "set var = arvo - liitä arvo skalaarimuuttujaan."
#: command.y:879
-msgid ""
-"silent - suspends usual message when stopped at a breakpoint/watchpoint."
-msgstr ""
+msgid "silent - suspends usual message when stopped at a breakpoint/watchpoint."
+msgstr "silent - pysäyttää tavallisen viestin kun pysähdytään katkaisukohdassa/vahtipisteessä."
#: command.y:881
msgid "source file - execute commands from file."
-msgstr ""
+msgstr "source file - suorita komennot tiedostosta."
#: command.y:883
msgid "step [COUNT] - step program until it reaches a different source line."
-msgstr ""
+msgstr "step [COUNT] - askella ohjelmaa, kunnes se saavuttaa eri lähdekoodirivin."
#: command.y:885
msgid "stepi [COUNT] - step one instruction exactly."
-msgstr ""
+msgstr "stepi [COUNT] - askella tarkalleen yksi käsky."
#: command.y:887
msgid "tbreak [[filename:]N|function] - set a temporary breakpoint."
-msgstr ""
+msgstr "tbreak [[tiedostonimi:]N|funktio] - aseta tilapäinen keskeytyskohta."
#: command.y:889
msgid "trace on|off - print instruction before executing."
-msgstr ""
+msgstr "trace on|off - tulosta käsky ennen suoritusta."
#: command.y:891
msgid "undisplay [N] - remove variable(s) from automatic display list."
-msgstr ""
+msgstr "undisplay [N] - poista muuttuja(t) automaattisesta näyttöluettelosta."
#: command.y:893
-msgid ""
-"until [[filename:]N|function] - execute until program reaches a different "
-"line or line N within current frame."
-msgstr ""
+msgid "until [[filename:]N|function] - execute until program reaches a different line or line N within current frame."
+msgstr "until [[tiedostonimi:]N|funktio] - suorita kunnes ohjelma tavoittaa eri rivin tai rivin N nykyisen kehyksen sisällä."
#: command.y:895
msgid "unwatch [N] - remove variable(s) from watch list."
-msgstr ""
+msgstr "unwatch [N] - poista muuttuja(t) vahtiluettelosta."
#: command.y:897
msgid "up [N] - move N frames up the stack."
-msgstr ""
+msgstr "up [N] - siirrä N kehystä ylöspäin pinossa."
#: command.y:899
msgid "watch var - set a watchpoint for a variable."
-msgstr ""
+msgstr "watch muuttuja - aseta vahtikohta muuttujalle."
#: command.y:1011 debug.c:395 msg.c:128
#, c-format
msgid "error: "
-msgstr "virhe:"
+msgstr "virhe: "
#: command.y:1051
-#, fuzzy, c-format
+#, c-format
msgid "can't read command (%s)\n"
-msgstr "ei voi uudelleenohjata putkesta ”%s” (%s)"
+msgstr "komennon (%s) lukeminen epäonnistui\n"
#: command.y:1065
-#, fuzzy, c-format
+#, c-format
msgid "can't read command (%s)"
-msgstr "ei voi uudelleenohjata putkesta ”%s” (%s)"
+msgstr "komennon (%s) lukeminen epäonnistui"
#: command.y:1116
-#, fuzzy
msgid "invalid character in command"
-msgstr "Virheellinen merkkiluokkanimi"
+msgstr "virheellinen merkki komennossa"
#: command.y:1152
#, c-format
msgid "unknown command - \"%.*s\", try help"
-msgstr ""
+msgstr "tuntematon komento - \"%.*s\", kokeile käskyä help"
#: command.y:1222
#, c-format
msgid "%s"
-msgstr ""
+msgstr "%s"
#: command.y:1284
-#, fuzzy
msgid "invalid character"
-msgstr "Virheellinen vertailumerkki"
+msgstr "virheellinen merkki"
#: command.y:1455
#, c-format
msgid "undefined command: %s\n"
-msgstr ""
+msgstr "määrittelemätön komento: %s\n"
#: debug.c:246
msgid "set or show the number of lines to keep in history file."
-msgstr ""
+msgstr "aseta tai näytä historiatiedostossa säilytettävien rivien lukumäärä."
#: debug.c:248
msgid "set or show the list command window size."
-msgstr ""
+msgstr "aseta tai näytä luettelokomentoikkunan koko."
#: debug.c:250
msgid "set or show gawk output file."
-msgstr ""
+msgstr "aseta tai näytä gawk-tulostetiedosto."
#: debug.c:252
msgid "set or show debugger prompt."
-msgstr ""
+msgstr "aseta tai näytä vianjäljittäjäkehote."
#: debug.c:254
msgid "(un)set or show saving of command history (value=on|off)."
-msgstr ""
+msgstr "aseta, poista asetus tai näytä komentohistoriatallennus (value=on|off)."
#: debug.c:256
msgid "(un)set or show saving of options (value=on|off)."
-msgstr ""
+msgstr "aseta, poista asetus tai näytä valitsintallennus (value=on|off)."
#: debug.c:258
msgid "(un)set or show instruction tracing (value=on|off)."
-msgstr ""
+msgstr "aseta, poista asetus tai näytä käskyjäljitys (value=on|off)."
#: debug.c:339
msgid "program not running."
-msgstr ""
+msgstr "ohjelma ei ole käynnissä."
#: debug.c:442 debug.c:597
-#, fuzzy, c-format
+#, c-format
msgid "can't read source file `%s' (%s)"
-msgstr "ei voi lukea lähdetiedostoa ”%s” (%s)"
+msgstr "lähdetiedoston ”%s” (%s) lukeminen epäonnistui"
#: debug.c:447
-#, fuzzy, c-format
+#, c-format
msgid "source file `%s' is empty.\n"
-msgstr "lähdetiedosto ”%s” on tyhjä"
+msgstr "lähdetiedosto ”%s” on tyhjä.\n"
#: debug.c:474
msgid "no current source file."
-msgstr ""
+msgstr "ei nykyistä lähdekooditiedostoa."
#: debug.c:499
-#, fuzzy, c-format
+#, c-format
msgid "cannot find source file named `%s' (%s)"
-msgstr "ei voi lukea lähdetiedostoa ”%s” (%s)"
+msgstr "lähdetiedostoa nimeltä ”%s” (%s) ei kyetä lukemaan"
#: debug.c:523
#, c-format
msgid "WARNING: source file `%s' modified since program compilation.\n"
-msgstr ""
+msgstr "VAROITUS: lähdekooditiedostoa ”%s” on muokattu ohjelman kääntämisen jälkeen.\n"
#: debug.c:542
#, c-format
msgid "line number %d out of range; `%s' has %d lines"
-msgstr ""
+msgstr "rivinumero %d lukualueen ulkopuolella; kohteessa ”%s” on %d riviä"
#: debug.c:602
-#, fuzzy, c-format
+#, c-format
msgid "unexpected eof while reading file `%s', line %d"
-msgstr "odottamaton rivinvaihto tai merkkijonon loppu"
+msgstr "odottamaton eof-tiedostonloppumerkki luettaessa tiedostoa ”%s”, rivi %d"
#: debug.c:611
#, c-format
msgid "source file `%s' modified since start of program execution"
-msgstr ""
+msgstr "lähdekooditiedostoa ”%s” on muokattu ohjelman suorituksen aloituksen jälkeen"
#: debug.c:723
-#, fuzzy, c-format
+#, c-format
msgid "Current source file: %s\n"
-msgstr "on jo sisällytetty lähdetiedostoon ”%s”"
+msgstr "Nykyinen lähdetiedosto: %s\n"
#: debug.c:724
#, c-format
msgid "Number of lines: %d\n"
-msgstr ""
+msgstr "Rivien lukumäärä: %d\n"
#: debug.c:731
#, c-format
msgid "Source file (lines): %s (%d)\n"
-msgstr ""
+msgstr "Lähdetiedosto (riviä): %s (%d)\n"
#: debug.c:745
msgid ""
"Number Disp Enabled Location\n"
"\n"
msgstr ""
+"Numero Disp Käytössä Sijainti\n"
+"\n"
#: debug.c:756
#, c-format
msgid "\tno of hits = %ld\n"
-msgstr ""
+msgstr "\tosumien lukumäärä = %ld\n"
#: debug.c:758
#, c-format
msgid "\tignore next %ld hit(s)\n"
-msgstr ""
+msgstr "\tohita seuraavat %ld osumaa\n"
#: debug.c:760 debug.c:900
#, c-format
msgid "\tstop condition: %s\n"
-msgstr ""
+msgstr "\tpysähtymisehto: %s\n"
#: debug.c:762 debug.c:902
msgid "\tcommands:\n"
-msgstr ""
+msgstr "\tkomennot:\n"
#: debug.c:784
#, c-format
msgid "Current frame: "
-msgstr ""
+msgstr "Nykyinen kehys: "
#: debug.c:787
#, c-format
msgid "Called by frame: "
-msgstr ""
+msgstr "Kehyksen kutsuma: "
#: debug.c:791
#, c-format
msgid "Caller of frame: "
-msgstr ""
+msgstr "Kehyksen kutsuja: "
#: debug.c:809
#, c-format
msgid "None in main().\n"
-msgstr ""
+msgstr "Funktiossa main() ei ole mitään.\n"
#: debug.c:839
-#, fuzzy
msgid "No arguments.\n"
-msgstr "printf: ei argumentteja"
+msgstr "Ei argumentteja.\n"
#: debug.c:840
msgid "No locals.\n"
-msgstr ""
+msgstr "Ei paikallisia muuttujia.\n"
#: debug.c:848
msgid ""
"All defined variables:\n"
"\n"
msgstr ""
+"Kaikki määritellyt muuttujat:\n"
+"\n"
#: debug.c:858
msgid ""
"All defined functions:\n"
"\n"
msgstr ""
+"Kaikki määritellyt funktiot.\n"
+"\n"
#: debug.c:877
msgid ""
"Auto-display variables:\n"
"\n"
msgstr ""
+"Automaattisesti näytettävät muuttujat:\n"
+"\n"
#: debug.c:880
msgid ""
"Watch variables:\n"
"\n"
msgstr ""
+"Vahtimuuttujia:\n"
+"\n"
#: debug.c:1020
-#, fuzzy, c-format
+#, c-format
msgid "no symbol `%s' in current context\n"
-msgstr "”exit” ei voida kutsua nykyisessä asiayhteydessä"
+msgstr "symbolia ”%s” ei löydy nykyisestä asiayhteydestä\n"
#: debug.c:1032 debug.c:1418
-#, fuzzy, c-format
+#, c-format
msgid "`%s' is not an array\n"
-msgstr "”%s” ei ole laillinen muuttujanimi"
+msgstr "”%s” ei ole taulukko\n"
#: debug.c:1046
-#, fuzzy, c-format
+#, c-format
msgid "$%ld = uninitialized field\n"
-msgstr "viite alustamattomaan kenttään ”$%d”"
+msgstr "$%ld = alustamaton kenttä\n"
#: debug.c:1067
-#, fuzzy, c-format
+#, c-format
msgid "array `%s' is empty\n"
-msgstr "data-tiedosto ”%s” on tyhjä"
+msgstr "taulukko ”%s” on tyhjä\n"
#: debug.c:1110 debug.c:1162
-#, fuzzy, c-format
+#, c-format
msgid "[\"%s\"] not in array `%s'\n"
-msgstr "delete: indeksi ”%s” ei ole taulukossa ”%s”"
+msgstr "[”%s”] ei ole taulukossa ”%s”\n"
#: debug.c:1166
#, c-format
msgid "`%s[\"%s\"]' is not an array\n"
-msgstr ""
+msgstr "”%s[\"%s\"]” ei ole taulukko\n"
#: debug.c:1227 debug.c:4949
-#, fuzzy, c-format
+#, c-format
msgid "`%s' is not a scalar variable"
-msgstr "”%s” ei ole laillinen muuttujanimi"
+msgstr "”%s” ei ole skalaarimuuttuja"
#: debug.c:1249 debug.c:4979
-#, fuzzy, c-format
+#, c-format
msgid "attempt to use array `%s[\"%s\"]' in a scalar context"
-msgstr "yritettiin käyttää taulukkoa ”%s[\"%.*s\"]” skalaarikontekstissa"
+msgstr "yritettiin käyttää taulukkoa ”%s[\"%s\"]” skalaarikontekstissa"
#: debug.c:1271 debug.c:4990
-#, fuzzy, c-format
+#, c-format
msgid "attempt to use scalar `%s[\"%s\"]' as array"
-msgstr "yritettiin käyttää skalaaria ”%s[\"%.*s\"]” taulukkona"
+msgstr "yritettiin käyttää skalaaria ”%s[\"%s\"]” taulukkona"
#: debug.c:1414
-#, fuzzy, c-format
+#, c-format
msgid "`%s' is a function"
-msgstr "”%s” on virheellinen funktionimenä"
+msgstr "”%s” on funktio"
#: debug.c:1456
#, c-format
msgid "watchpoint %d is unconditional\n"
-msgstr ""
+msgstr "watchpoint %d ei ole ehdollinen\n"
#: debug.c:1490
#, c-format
msgid "No display item numbered %ld"
-msgstr ""
+msgstr "Yksikään näyttörivi ei ole numeroitu %ld"
#: debug.c:1493
#, c-format
msgid "No watch item numbered %ld"
-msgstr ""
+msgstr "Yksikään vahtirivi ei ole numeroitu %ld"
#: debug.c:1519
-#, fuzzy, c-format
+#, c-format
msgid "%d: [\"%s\"] not in array `%s'\n"
-msgstr "delete: indeksi ”%s” ei ole taulukossa ”%s”"
+msgstr "%d: [”%s”] ei ole taulukossa ”%s”\n"
#: debug.c:1758
-#, fuzzy
msgid "attempt to use scalar value as array"
msgstr "yritettiin käyttää skalaariarvoa taulukkona"
#: debug.c:1847
#, c-format
msgid "Watchpoint %d deleted because parameter is out of scope.\n"
-msgstr ""
+msgstr "Watchpoint %d poistettiin, koska parametri on lukualueen ulkopuolella.\n"
#: debug.c:1858
#, c-format
msgid "Display %d deleted because parameter is out of scope.\n"
-msgstr ""
+msgstr "Display %d poistettiin, koska parametri on lukualueen ulkopuolella.\n"
#: debug.c:1891
#, c-format
msgid " in file `%s', line %d\n"
-msgstr ""
+msgstr " tiedostossa ”%s”, rivi %d\n"
#: debug.c:1912
#, c-format
msgid " at `%s':%d"
-msgstr ""
+msgstr " osoitteessa ”%s”:%d"
#: debug.c:1928 debug.c:1991
#, c-format
msgid "#%ld\tin "
-msgstr ""
+msgstr "#%ld\tkohteessa "
#: debug.c:1965
#, c-format
msgid "More stack frames follow ...\n"
-msgstr ""
+msgstr "Lisää pinokehyksiä seuraa ...\n"
#: debug.c:2008
-#, fuzzy
msgid "invalid frame number"
-msgstr "Virheellinen lukualueen loppu"
+msgstr "virheellinen kehysnumero"
#: debug.c:2180
#, c-format
msgid "Note: breakpoint %d (enabled, ignore next %ld hits), also set at %s:%d"
-msgstr ""
+msgstr "Huomaa: keskeytyskohta %d (otettu käyttöön, ohita seuraavat %ld osumaa), asetettu myös osoitteessa %s:%d"
#: debug.c:2187
#, c-format
msgid "Note: breakpoint %d (enabled), also set at %s:%d"
-msgstr ""
+msgstr "Huomaa: keskeytyskohta %d (otettu käyttöön), asetettu myös kohdassa %s:%d"
#: debug.c:2194
#, c-format
msgid "Note: breakpoint %d (disabled, ignore next %ld hits), also set at %s:%d"
-msgstr ""
+msgstr "Huomaa: keskeytyskohta %d (otettu pois käytöstä, ohita seuraavat %ld osumaa), asetettu myös kohdassa %s:%d"
#: debug.c:2201
#, c-format
msgid "Note: breakpoint %d (disabled), also set at %s:%d"
-msgstr ""
+msgstr "Huomaa: keskeytyskohta %d (otettu pois käytöstä), asetettu myös kohdassa %s:%d"
#: debug.c:2218
#, c-format
msgid "Breakpoint %d set at file `%s', line %d\n"
-msgstr ""
+msgstr "Keskeytyskohta %d asetettu tiedostossa ”%s”, rivi %d\n"
#: debug.c:2320
#, c-format
msgid "Can't set breakpoint in file `%s'\n"
-msgstr ""
+msgstr "Keskeytyskohdan asetaminen tiedostossa ”%s” epäonnistui\n"
#: debug.c:2349 debug.c:2472 debug.c:3330
-#, fuzzy, c-format
+#, c-format
msgid "line number %d in file `%s' out of range"
-msgstr "exp: argumentti %g on lukualueen ulkopuolella"
+msgstr "rivinumero %d tiedostossa ”%s” on lukualueen ulkopuolella"
#: debug.c:2353
#, c-format
msgid "Can't find rule!!!\n"
-msgstr ""
+msgstr "Säännön löytäminen epäonnistui!!!\n"
#: debug.c:2355
#, c-format
msgid "Can't set breakpoint at `%s':%d\n"
-msgstr ""
+msgstr "Keskeytykohdan asettaminen kohdassa ”%s”:%d epäonnistui\n"
#: debug.c:2367
#, c-format
msgid "Can't set breakpoint in function `%s'\n"
-msgstr ""
+msgstr "Keskeytyskohdan asettaminen funktiossa ”%s” epäonnistui\n"
#: debug.c:2383
#, c-format
msgid "breakpoint %d set at file `%s', line %d is unconditional\n"
-msgstr ""
+msgstr "keskeytyskohta %d asetettu tiedostossa ”%s”, rivi %d on ehdoton\n"
#: debug.c:2488 debug.c:2510
#, c-format
msgid "Deleted breakpoint %d"
-msgstr ""
+msgstr "Poistettu keskeytyskohta %d"
#: debug.c:2494
#, c-format
msgid "No breakpoint(s) at entry to function `%s'\n"
-msgstr ""
+msgstr "Ei keskeytyskohtaa funktion ”%s” sisääntulossa\n"
#: debug.c:2521
-#, fuzzy, c-format
+#, c-format
msgid "No breakpoint at file `%s', line #%d\n"
-msgstr "virhe luettaessa syötetiedostoa ”%s”: %s"
+msgstr "Tiedostossa ”%s” ei ole keskeytyskohtaa, rivi #%d\n"
#: debug.c:2576 debug.c:2617 debug.c:2637 debug.c:2680
msgid "invalid breakpoint number"
-msgstr ""
+msgstr "virheellinen keskeytyskohtanumero"
#: debug.c:2592
msgid "Delete all breakpoints? (y or n) "
-msgstr ""
+msgstr "Poistetaanko kaikki keskeytyskohdata? (y tai n) "
#: debug.c:2593 debug.c:2903 debug.c:2956
msgid "y"
-msgstr ""
+msgstr "k"
#: debug.c:2642
#, c-format
msgid "Will ignore next %ld crossing(s) of breakpoint %d.\n"
-msgstr ""
+msgstr "Keskeytyskohta %2$d:n seuraavat %1$ld risteystä ohitetaan.\n"
#: debug.c:2646
#, c-format
msgid "Will stop next time breakpoint %d is reached.\n"
-msgstr ""
+msgstr "Pysähtyy seuraavalla kerralla kun keskeytyskohta %d saavutetaan.\n"
#: debug.c:2763
#, c-format
msgid "Can only debug programs provided with the `-f' option.\n"
-msgstr ""
+msgstr "Vain ohjelmia, jotka tarjoavat valitsimen ”-f”, voidaan vikajäljittää.\n"
#: debug.c:2888
#, c-format
msgid "Failed to restart debugger"
-msgstr ""
+msgstr "Vianjäljittäjän uudelleenkäynnistys epäonnistui"
#: debug.c:2902
msgid "Program already running. Restart from beginning (y/n)? "
-msgstr ""
+msgstr "Ohjelma on jo käynnissä. Käynnistetäänkö uudelleen alusta (y/n)? "
#: debug.c:2906
#, c-format
msgid "Program not restarted\n"
-msgstr ""
+msgstr "Ohjelma ei käynnistynyt uudelleen\n"
#: debug.c:2916
#, c-format
msgid "error: cannot restart, operation not allowed\n"
-msgstr ""
+msgstr "virhe: uudelleenkäynnistys epäonnistui, toiminto ei ole sallittu\n"
#: debug.c:2922
#, c-format
msgid "error (%s): cannot restart, ignoring rest of the commands\n"
-msgstr ""
+msgstr "virhe (%s): uudelleenkäynnistys epäonnistui, loput komennot ohitetaan\n"
#: debug.c:2930
#, c-format
msgid "Starting program: \n"
-msgstr ""
+msgstr "Käynnistetään ohjelma: \n"
#: debug.c:2939
#, c-format
msgid "Program exited %s with exit value: %d\n"
-msgstr ""
+msgstr "Ohjelma päättyi %s päättymisarvolla: %d\n"
#: debug.c:2955
msgid "The program is running. Exit anyway (y/n)? "
-msgstr ""
+msgstr "Ohjelma on käynnissä. Poistutaanko silti (y/n)? "
#: debug.c:2990
#, c-format
msgid "Not stopped at any breakpoint; argument ignored.\n"
-msgstr ""
+msgstr "Ei pysäytetty yhdessäkään keskeytyskohdassa; argumentti ohitetaan.\n"
#: debug.c:2995
#, c-format
msgid "invalid breakpoint number %d."
-msgstr ""
+msgstr "virheellinen keskeytyskohtanumero %d."
#: debug.c:3000
#, c-format
msgid "Will ignore next %ld crossings of breakpoint %d.\n"
-msgstr ""
+msgstr "Ohittaa seuraavat %ld keskeytyskohdan %d ylitystä.\n"
#: debug.c:3187
#, c-format
msgid "'finish' not meaningful in the outermost frame main()\n"
-msgstr ""
+msgstr "’finish’ ei ole merkityksellinen ulommaisen kehyksen main()-funktiossa\n"
#: debug.c:3192
#, c-format
msgid "Run till return from "
-msgstr ""
+msgstr "Suorita kunnes paluu kohteesta "
#: debug.c:3235
#, c-format
msgid "'return' not meaningful in the outermost frame main()\n"
-msgstr ""
+msgstr "’return’ ei ole merkityksellinen ulommaisen kehyksen main()-funktiossa\n"
#: debug.c:3349
#, c-format
msgid "Can't find specified location in function `%s'\n"
-msgstr ""
+msgstr "Määritellyn sijainnin löytyminen funktiossa ”%s” epäonnistui\n"
#: debug.c:3357
-#, fuzzy, c-format
+#, c-format
msgid "invalid source line %d in file `%s'"
-msgstr "on jo sisällytetty lähdetiedostoon ”%s”"
+msgstr "virheellinen lähdekoodirivi %d tiedostossa ”%s”"
#: debug.c:3372
#, c-format
msgid "Can't find specified location %d in file `%s'\n"
-msgstr ""
+msgstr "Määritellyn sijainnin %d löytyminen tiedostossa ”%s” epäonnistui\n"
#: debug.c:3404
-#, fuzzy, c-format
+#, c-format
msgid "element not in array\n"
-msgstr "delete: indeksi ”%s” ei ole taulukossa ”%s”"
+msgstr "elementti ei ole taulukossa\n"
#: debug.c:3404
#, c-format
msgid "untyped variable\n"
-msgstr ""
+msgstr "tyypitön muuttuja\n"
#: debug.c:3446
#, c-format
msgid "Stopping in %s ...\n"
-msgstr ""
+msgstr "Pysäytetään kohdassa %s ...\n"
#: debug.c:3523
#, c-format
msgid "'finish' not meaningful with non-local jump '%s'\n"
-msgstr ""
+msgstr "’finish’ ei ole merkityksellinen ei-paikallisessa hypyssä ’%s’\n"
#: debug.c:3530
#, c-format
msgid "'until' not meaningful with non-local jump '%s'\n"
-msgstr ""
+msgstr "’until’ ei ole merkityksellinen ei-paikallisessa hypyssä ’%s’\n"
#: debug.c:4165
msgid "\t------[Enter] to continue or q [Enter] to quit------"
-msgstr ""
+msgstr "\t------Jatka painamalla [Enter] tai poistu painamalla q [Enter]------"
#: debug.c:4166
msgid "q"
-msgstr ""
+msgstr "q"
#: debug.c:4986
-#, fuzzy, c-format
+#, c-format
msgid "[\"%s\"] not in array `%s'"
-msgstr "delete: indeksi ”%s” ei ole taulukossa ”%s”"
+msgstr "[”%s”] ei ole taulukossa ”%s”"
#: debug.c:5192
#, c-format
msgid "sending output to stdout\n"
-msgstr ""
+msgstr "lähetetään tuloste vakiotulosteeseen\n"
#: debug.c:5232
msgid "invalid number"
-msgstr ""
+msgstr "virheellinen numero"
#: debug.c:5366
-#, fuzzy, c-format
+#, c-format
msgid "`%s' not allowed in current context; statement ignored"
-msgstr "”exit” ei voida kutsua nykyisessä asiayhteydessä"
+msgstr "”%s” ei ole sallittu nykyisessä asiayhteydessä; lause ohitetaan"
#: debug.c:5374
-#, fuzzy
msgid "`return' not allowed in current context; statement ignored"
-msgstr "”exit” ei voida kutsua nykyisessä asiayhteydessä"
+msgstr "”return” ei ole sallittu nykyisessä asiayhteydessä; lause ohitetaan"
#: debug.c:5575
-#, fuzzy, c-format
+#, c-format
msgid "No symbol `%s' in current context"
-msgstr "yritettiin käyttää taulukkoa ”%s” skalaarikontekstissa"
+msgstr "Symbolia ”%s” ei ole nykyisesssä asiayhteydessä"
#: dfa.c:998 dfa.c:1001 dfa.c:1021 dfa.c:1031 dfa.c:1043 dfa.c:1094 dfa.c:1103
#: dfa.c:1106 dfa.c:1111 dfa.c:1124 dfa.c:1192
msgid "unbalanced ["
-msgstr ""
+msgstr "pariton ["
#: dfa.c:1052
-#, fuzzy
msgid "invalid character class"
-msgstr "Virheellinen merkkiluokkanimi"
+msgstr "virheellinen merkkiluokka"
#: dfa.c:1229
msgid "character class syntax is [[:space:]], not [:space:]"
-msgstr ""
+msgstr "merkkiluokkasyntaksi on [[:space:]], ei [:space:]"
#: dfa.c:1281
msgid "unfinished \\ escape"
-msgstr ""
+msgstr "päättymätön \\-koodinvaihtomerkki"
#: dfa.c:1428 regcomp.c:161
msgid "Invalid content of \\{\\}"
@@ -1802,15 +1751,15 @@ msgstr "Säännöllinen lauseke on liian iso"
#: dfa.c:1816
msgid "unbalanced ("
-msgstr ""
+msgstr "pariton ("
#: dfa.c:1943
msgid "no syntax specified"
-msgstr ""
+msgstr "syntaksi ei ole määritelty"
#: dfa.c:1951
msgid "unbalanced )"
-msgstr ""
+msgstr "pariton )"
#: eval.c:394
#, c-format
@@ -1916,85 +1865,75 @@ msgid "extensions are not allowed in sandbox mode"
msgstr "laajennuksia ei sallita hiekkalaatikkotilassa"
#: ext.c:92
-#, fuzzy
msgid "-l / @load are gawk extensions"
-msgstr "@include on gawk-laajennus"
+msgstr "-l / @load ovat gawk-laajennuksia"
#: ext.c:95 ext.c:177
msgid "load_ext: received NULL lib_name"
-msgstr ""
+msgstr "load_ext: vastaanotettiin NULL lib_name"
#: ext.c:98
-#, fuzzy, c-format
+#, c-format
msgid "load_ext: cannot open library `%s' (%s)\n"
-msgstr "tuhoisa: extension: ei voi avata solmua ”%s” (%s)\n"
+msgstr "load_ext: kirjaston ”%s” (%s) avaus epäonnistui\n"
#: ext.c:104
-#, fuzzy, c-format
-msgid ""
-"load_ext: library `%s': does not define `plugin_is_GPL_compatible' (%s)\n"
-msgstr ""
-"tuhoisa: extension: kirjasto ”%s”: ei määrittele "
-"”plugin_is_GPL_compatible” (%s)\n"
+#, c-format
+msgid "load_ext: library `%s': does not define `plugin_is_GPL_compatible' (%s)\n"
+msgstr "load_ext: kirjasto ”%s”: ei määrittele ”plugin_is_GPL_compatible” (%s)\n"
#: ext.c:110
-#, fuzzy, c-format
+#, c-format
msgid "load_ext: library `%s': cannot call function `%s' (%s)\n"
-msgstr "tuhoisa: extension: kirjasto ”%s”: ei voi kutsua funktiota ”%s” (%s)\n"
+msgstr "load_ext: kirjasto ”%s”: funktion ”%s” (%s) kutsu epäonnistui\n"
#: ext.c:114
#, c-format
msgid "load_ext: library `%s' initialization routine `%s' failed\n"
-msgstr ""
+msgstr "load_ext: kirjaston ”%s” alustusrutiini ”%s” epäonnistui\n"
#: ext.c:174
msgid "`extension' is a gawk extension"
msgstr "”extension” on gawk-laajennus"
#: ext.c:180
-#, fuzzy, c-format
+#, c-format
msgid "extension: cannot open library `%s' (%s)"
-msgstr "tuhoisa: extension: ei voi avata solmua ”%s” (%s)\n"
+msgstr "extension: kirjaston ”%s” (%s) avaus epäonnistui"
#: ext.c:186
-#, fuzzy, c-format
-msgid ""
-"extension: library `%s': does not define `plugin_is_GPL_compatible' (%s)"
-msgstr ""
-"tuhoisa: extension: kirjasto ”%s”: ei määrittele "
-"”plugin_is_GPL_compatible” (%s)\n"
+#, c-format
+msgid "extension: library `%s': does not define `plugin_is_GPL_compatible' (%s)"
+msgstr "extension: kirjasto ”%s”: ei määrittele ”plugin_is_GPL_compatible” (%s)"
#: ext.c:190
-#, fuzzy, c-format
+#, c-format
msgid "extension: library `%s': cannot call function `%s' (%s)"
-msgstr "tuhoisa: extension: kirjasto ”%s”: ei voi kutsua funktiota ”%s” (%s)\n"
+msgstr "extension: kirjasto ”%s”: funktion ”%s” (%s) kutsu epäonnistui"
#: ext.c:221
-#, fuzzy
msgid "make_builtin: missing function name"
-msgstr "extension: puuttuva funktionimi"
+msgstr "make_builtin: puuttuva funktionimi"
#: ext.c:238
-#, fuzzy, c-format
+#, c-format
msgid "make_builtin: can't redefine function `%s'"
-msgstr "extension: ei voi määritellä uudelleen funktiota ”%s”"
+msgstr "make_builtin: funktion ”%s” uudelleenmäärittely epäonnistui"
#: ext.c:242
-#, fuzzy, c-format
+#, c-format
msgid "make_builtin: function `%s' already defined"
-msgstr "extension: funktio ”%s” on jo määritelty"
+msgstr "make_builtin: funktio ”%s” on jo määritelty"
#: ext.c:246
-#, fuzzy, c-format
+#, c-format
msgid "make_builtin: function name `%s' previously defined"
-msgstr "extension: funktionimi ”%s” on määritelty jo aiemmin"
+msgstr "make_builtin: funktionimi ”%s” on määritelty jo aiemmin"
#: ext.c:248
-#, fuzzy, c-format
+#, c-format
msgid "make_builtin: can't use gawk built-in `%s' as function name"
-msgstr ""
-"extension: ei voi käyttää gawk-ohjelman sisäistä muuttujanimeä ”%s” "
-"funktionimenä"
+msgstr "make_builtin: gawk-ohjelman sisäisen muuttujanimen ”%s” käyttö funktionimenä epäonnistui"
#: ext.c:251 ext.c:304
#, c-format
@@ -2002,36 +1941,33 @@ msgid "make_builtin: negative argument count for function `%s'"
msgstr "make_builtin: negatiivinen argumenttilukumäärä funktiolle ”%s”"
#: ext.c:278
-#, fuzzy
msgid "extension: missing function name"
msgstr "extension: puuttuva funktionimi"
#: ext.c:283
-#, fuzzy, c-format
+#, c-format
msgid "extension: illegal character `%c' in function name `%s'"
msgstr "extension: virheellinen merkki ”%c” funktionimessä ”%s”"
#: ext.c:291
-#, fuzzy, c-format
+#, c-format
msgid "extension: can't redefine function `%s'"
-msgstr "extension: ei voi määritellä uudelleen funktiota ”%s”"
+msgstr "extension: funktion ”%s” uudelleenmäärittely epäonnistui"
#: ext.c:295
-#, fuzzy, c-format
+#, c-format
msgid "extension: function `%s' already defined"
msgstr "extension: funktio ”%s” on jo määritelty"
#: ext.c:299
-#, fuzzy, c-format
+#, c-format
msgid "extension: function name `%s' previously defined"
-msgstr "funktionimi ”%s” on jo aikaisemmin määritelty"
+msgstr "extension: funktionimi ”%s” on määritelty jo aiemmin"
#: ext.c:301
-#, fuzzy, c-format
+#, c-format
msgid "extension: can't use gawk built-in `%s' as function name"
-msgstr ""
-"extension: ei voi käyttää gawk-ohjelman sisäistä muuttujanimeä ”%s” "
-"funktionimenä"
+msgstr "extension: gawk-ohjelman sisäisen muuttujanimen käyttö ”%s” funktionimenä epäonnistui"
#: ext.c:374
#, c-format
@@ -2055,366 +1991,334 @@ msgstr "funktio ”%s”: argumentti #%d: yritettiin käyttää taulukkoa skalaa
#: ext.c:412
msgid "dynamic loading of library not supported"
-msgstr ""
+msgstr "kirjaston dynaamista latausta ei tueta"
#: extension/filefuncs.c:97
-#, fuzzy
msgid "chdir: called with incorrect number of arguments, expecting 1"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "chdir: kutsuttu argumenttien väärällä lukumäärällä, odotettiin 1"
#: extension/filefuncs.c:343
#, c-format
msgid "stat: unable to read symbolic link `%s'"
-msgstr ""
+msgstr "stat: symbolisen linkin ”%s” lukeminen epäonnistui"
#: extension/filefuncs.c:376
-#, fuzzy
msgid "stat: called with wrong number of arguments"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "stat: kutsuttu argumenttien väärällä lukumäärällä"
#: extension/filefuncs.c:383
-#, fuzzy
msgid "stat: bad parameters"
-msgstr "%s: on parametri\n"
+msgstr "stat: väärät parametrit"
#: extension/filefuncs.c:437
-#, fuzzy, c-format
+#, c-format
msgid "fts init: could not create variable %s"
-msgstr "index: toinen vastaanotettu argumentti ei ole merkkijono"
+msgstr "fts init: muuttujan %s luominen epäonnistui"
#: extension/filefuncs.c:460
msgid "fill_stat_element: could not create array"
-msgstr ""
+msgstr "fill_stat_element: taulukon luominen epäonnistui"
#: extension/filefuncs.c:469
msgid "fill_stat_element: could not set element"
-msgstr ""
+msgstr "fill_stat_element: elementin asettaminen epäonnistui"
#: extension/filefuncs.c:484
-#, fuzzy
msgid "fill_path_element: could not set element"
-msgstr "index: toinen vastaanotettu argumentti ei ole merkkijono"
+msgstr "fill_path_element: elementin asettaminen epäonnistui"
#: extension/filefuncs.c:500
msgid "fill_error_element: could not set element"
-msgstr ""
+msgstr "fill_error_element: elementin asettaminen epäonnistui"
#: extension/filefuncs.c:547 extension/filefuncs.c:594
msgid "fts-process: could not create array"
-msgstr ""
+msgstr "fts-process: taulukon luominen epäonnistui"
#: extension/filefuncs.c:557 extension/filefuncs.c:604
#: extension/filefuncs.c:622
-#, fuzzy
msgid "fts-process: could not set element"
-msgstr "index: toinen vastaanotettu argumentti ei ole merkkijono"
+msgstr "fts-process: elementin asettaminen epäonnistui"
#: extension/filefuncs.c:671
-#, fuzzy
msgid "fts: called with incorrect number of arguments, expecting 3"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "fts: kutsuttu argumenttien väärällä lukumäärällä, odotettiin 3"
#: extension/filefuncs.c:674
-#, fuzzy
msgid "fts: bad first parameter"
-msgstr "%s: on parametri\n"
+msgstr "fts: väärä ensimmäinen parametri"
#: extension/filefuncs.c:680
-#, fuzzy
msgid "fts: bad second parameter"
-msgstr "%s: on parametri\n"
+msgstr "fts: väärä toinen parametri"
#: extension/filefuncs.c:686
-#, fuzzy
msgid "fts: bad third parameter"
-msgstr "%s: on parametri\n"
+msgstr "fts: väärä kolmas parametri"
#: extension/filefuncs.c:693
-#, fuzzy
msgid "fts: could not flatten array\n"
-msgstr "”%s” ei ole laillinen muuttujanimi"
+msgstr "fts: taulukon litistäminen epäonnistui\n"
#: extension/filefuncs.c:711
msgid "fts: ignoring sneaky FTS_NOSTAT flag. nyah, nyah, nyah."
-msgstr ""
+msgstr "fts: ohitetaan petollinen FTS_NOSTAT-lippu. nyyh, nyyh, nyyh."
#: extension/filefuncs.c:728
msgid "fts: clear_array() failed\n"
-msgstr ""
+msgstr "fts: clear_array() epäonnistui\n"
#: extension/fnmatch.c:98
-#, fuzzy
msgid "fnmatch: called with less than three arguments"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "fnmatch: kutsuttu vähemmällä kuin kolmella argumentilla"
#: extension/fnmatch.c:101
-#, fuzzy
msgid "fnmatch: called with more than three arguments"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "fnmatch: kutsuttu useammalla kuin kolmella argumentilla"
#: extension/fnmatch.c:104
-#, fuzzy
msgid "fnmatch: could not get first argument"
-msgstr "strftime: ensimmäinen vastaanotettu argumentti ei ole merkkijono"
+msgstr "fnmatch: ensimmäistä argumenttia ei saatu"
#: extension/fnmatch.c:109
-#, fuzzy
msgid "fnmatch: could not get second argument"
-msgstr "index: toinen vastaanotettu argumentti ei ole merkkijono"
+msgstr "fnmatch: toista argumenttia ei saatu"
#: extension/fnmatch.c:114
msgid "fnmatch: could not get third argument"
-msgstr ""
+msgstr "fnmatch: kolmatta argumenttia ei saatu"
#: extension/fnmatch.c:127
msgid "fnmatch is not implemented on this system\n"
-msgstr ""
+msgstr "fnmatch ei ole toteutettu tässä järjestelmässä\n"
#: extension/fnmatch.c:159
msgid "fnmatch init: could not add FNM_NOMATCH variable"
-msgstr ""
+msgstr "fnmatch init: muuttujan FNM_NOMATCH lisääminen epäonnistui"
#: extension/fnmatch.c:169
#, c-format
msgid "fnmatch init: could not set array element %s"
-msgstr ""
+msgstr "fnmatch init: taulukkoelementin %s asettaminen epäonnistui"
#: extension/fnmatch.c:179
msgid "fnmatch init: could not install FNM array"
-msgstr ""
+msgstr "fnmatch init: FNM-taulukon lisääminen epäonnistui"
#: extension/fork.c:81
-#, fuzzy
msgid "fork: called with too many arguments"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "fork: kutsuttu liian monella argumentilla"
#: extension/fork.c:94
msgid "fork: PROCINFO is not an array!"
-msgstr ""
+msgstr "fork: PROCINFO ei ole taulukko!"
#: extension/fork.c:118
-#, fuzzy
msgid "waitpid: called with too many arguments"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "waitpid: kutsuttu liian monella argumentilla"
#: extension/fork.c:126
-#, fuzzy
msgid "wait: called with no arguments"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "wait: kutsuttu ilman argumentteja"
#: extension/fork.c:143
-#, fuzzy
msgid "wait: called with too many arguments"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "wait: kutsuttu liian monella argumentilla"
#: extension/inplace.c:110
msgid "inplace_begin: in-place editing already active"
-msgstr ""
+msgstr "inplace_begin: kohdallaanmuokkaus on jo aktivoitu"
#: extension/inplace.c:113 extension/inplace.c:187
#, c-format
msgid "inplace_begin: expects 2 arguments but called with %d"
-msgstr ""
+msgstr "inplace_begin: odotetaan 2 argumenttia, mutta kutsussa oli %d argumenttia"
#: extension/inplace.c:116
msgid "inplace_begin: cannot retrieve 1st argument as a string filename"
-msgstr ""
+msgstr "inplace_begin: ensimmäisen argumentin noutaminen merkkijonotiedostonimenä epäonnistui"
#: extension/inplace.c:124
#, c-format
msgid "inplace_begin: disabling in-place editing for invalid FILENAME `%s'"
-msgstr ""
+msgstr "inplace_begin: ottaen pois käytöstä virheellisen TIEDOSTONIMI ”%s” muokkauksen"
#: extension/inplace.c:131
-#, fuzzy, c-format
+#, c-format
msgid "inplace_begin: Cannot stat `%s' (%s)"
-msgstr "tuhoisa: extension: ei voi avata solmua ”%s” (%s)\n"
+msgstr "inplace_begin: stat ”%s” (%s) epäonnistui"
#: extension/inplace.c:138
-#, fuzzy, c-format
+#, c-format
msgid "inplace_begin: `%s' is not a regular file"
-msgstr "”%s” ei ole laillinen muuttujanimi"
+msgstr "inplace_begin: ”%s” ei ole tavallinen tiedosto"
#: extension/inplace.c:149
#, c-format
msgid "inplace_begin: mkstemp(`%s') failed (%s)"
-msgstr ""
+msgstr "inplace_begin: mkstemp(”%s”) epäonnistui (%s)"
#: extension/inplace.c:158
-#, fuzzy, c-format
+#, c-format
msgid "inplace_begin: chmod failed (%s)"
-msgstr "%s: sulkeminen epäonnistui (%s)"
+msgstr "inplace_begin: chmod epäonnistui (%s)"
#: extension/inplace.c:165
#, c-format
msgid "inplace_begin: dup(stdout) failed (%s)"
-msgstr ""
+msgstr "inplace_begin: dup(stdout) epäonnistui (%s)"
#: extension/inplace.c:168
#, c-format
msgid "inplace_begin: dup2(%d, stdout) failed (%s)"
-msgstr ""
+msgstr "inplace_begin: dup2(%d, stdout) epäonnistui (%s)"
#: extension/inplace.c:171
-#, fuzzy, c-format
+#, c-format
msgid "inplace_begin: close(%d) failed (%s)"
-msgstr "%s: sulkeminen epäonnistui (%s)"
+msgstr "inplace_begin: close(%d) epäonnistui (%s)"
#: extension/inplace.c:190
msgid "inplace_end: cannot retrieve 1st argument as a string filename"
-msgstr ""
+msgstr "inplace_end: ensimmäisen argumentin noutaminen merkkijonotiedostonimenä epäonnistui"
#: extension/inplace.c:197
msgid "inplace_end: in-place editing not active"
-msgstr ""
+msgstr "inplace_end: kohdallaanmuokkaus ei ole aktiivinen"
#: extension/inplace.c:203
#, c-format
msgid "inplace_end: dup2(%d, stdout) failed (%s)"
-msgstr ""
+msgstr "inplace_end: dup2(%d, stdout) epäonnistui (%s)"
#: extension/inplace.c:206
-#, fuzzy, c-format
+#, c-format
msgid "inplace_end: close(%d) failed (%s)"
-msgstr "%s: sulkeminen epäonnistui (%s)"
+msgstr "inplace_end: close(%d) epäonnistui (%s)"
#: extension/inplace.c:210
#, c-format
msgid "inplace_end: fsetpos(stdout) failed (%s)"
-msgstr ""
+msgstr "inplace_end: fsetpos(stdout) epäonnistui (%s)"
#: extension/inplace.c:223
-#, fuzzy, c-format
+#, c-format
msgid "inplace_end: link(`%s', `%s') failed (%s)"
-msgstr "uudelleenohjauksen ”%s” putken tyhjennys epäonnistui (%s)."
+msgstr "inplace_end: link(”%s”, ”%s”) epäonnistui (%s)."
#: extension/inplace.c:229
-#, fuzzy, c-format
+#, c-format
msgid "inplace_end: rename(`%s', `%s') failed (%s)"
-msgstr "tiedostomäärittelijän %d (”%s”) sulkeminen epäonnistui (%s)"
+msgstr "inplace_end: rename(”%s”, ”%s”) epäonnistui (%s)"
#: extension/ordchr.c:69
-#, fuzzy
msgid "ord: called with too many arguments"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "ord: kutsuttu liian monella argumentilla"
#: extension/ordchr.c:75
-#, fuzzy
msgid "ord: called with no arguments"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "ord: kutsuttu ilman argumentteja"
#: extension/ordchr.c:77
-#, fuzzy
msgid "ord: called with inappropriate argument(s)"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "ord: kutsuttu sopimattomalla argumentilla"
#: extension/ordchr.c:99
-#, fuzzy
msgid "chr: called with too many arguments"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "chr: kutsuttu liian monella argumentilla"
#: extension/ordchr.c:109
-#, fuzzy
msgid "chr: called with no arguments"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "chr: kutsuttu ilman argumentteja"
#: extension/ordchr.c:111
-#, fuzzy
msgid "chr: called with inappropriate argument(s)"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "chr: kutsuttu sopimattomalla argumentilla"
#: extension/readdir.c:203
#, c-format
msgid "dir_take_control_of: opendir/fdopendir failed: %s"
-msgstr ""
+msgstr "dir_take_control_of: opendir/fdopendir epäonnistui: %s"
#: extension/readfile.c:84
-#, fuzzy
msgid "readfile: called with too many arguments"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "readfile: kutsuttu liian monella argumentilla"
#: extension/readfile.c:118
-#, fuzzy
msgid "readfile: called with no arguments"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "readfile: kutsuttu ilman argumentteja"
#: extension/rwarray.c:120
-#, fuzzy
msgid "writea: called with too many arguments"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "writea: kutsuttu liian monella argumentilla"
#: extension/rwarray.c:127
-#, fuzzy, c-format
+#, c-format
msgid "do_writea: argument 0 is not a string\n"
-msgstr "exp: argumentti %g on lukualueen ulkopuolella"
+msgstr "do_writea: argumentti 0 ei ole merkkijono\n"
#: extension/rwarray.c:133
-#, fuzzy, c-format
+#, c-format
msgid "do_writea: argument 1 is not an array\n"
-msgstr "split: neljäs argumentti ei ole taulukko"
+msgstr "do_writea: argumentti 1 ei ole taulukko\n"
#: extension/rwarray.c:180
#, c-format
msgid "write_array: could not flatten array\n"
-msgstr ""
+msgstr "write_array: taulukon litistäminen epäonnistui\n"
#: extension/rwarray.c:194
#, c-format
msgid "write_array: could not release flattened array\n"
-msgstr ""
+msgstr "write_array: litistettyä taulukon vapauttaminen epäonnistui\n"
#: extension/rwarray.c:276
-#, fuzzy
msgid "reada: called with too many arguments"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "reada: kutsuttu liian monilla argumenteilla"
#: extension/rwarray.c:283
-#, fuzzy, c-format
+#, c-format
msgid "do_reada: argument 0 is not a string\n"
-msgstr "exp: argumentti %g on lukualueen ulkopuolella"
+msgstr "do_reada: argumentti 0 ei ole merkkijono\n"
#: extension/rwarray.c:289
-#, fuzzy, c-format
+#, c-format
msgid "do_reada: argument 1 is not an array\n"
-msgstr "match: kolmas argumentti ei ole taulukko"
+msgstr "do_reada: argumentti 1 ei ole taulukko\n"
#: extension/rwarray.c:333
#, c-format
msgid "do_reada: clear_array failed\n"
-msgstr ""
+msgstr "do_reada: clear_array epäonnistui\n"
#: extension/rwarray.c:370
#, c-format
msgid "read_array: set_array_element failed\n"
-msgstr ""
+msgstr "read_array: set_array_element epäonnistui\n"
#: extension/time.c:81
-#, fuzzy
msgid "gettimeofday: ignoring arguments"
-msgstr "mktime: vastaanotettu argumentti ei ole merkkijono"
+msgstr "gettimeofday: ohitetaan argumentit"
#: extension/time.c:112
msgid "gettimeofday: not supported on this platform"
-msgstr ""
+msgstr "gettimeofday: ei ole tuettu tällä alustalla"
#: extension/time.c:133
-#, fuzzy
msgid "sleep: called with too many arguments"
-msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
+msgstr "sleep: kutsuttu liian monella argumentilla"
#: extension/time.c:136
-#, fuzzy
msgid "sleep: missing required numeric argument"
-msgstr "exp: vastaanotettu argumentti ei ole numeerinen"
+msgstr "sleep: puuttuu vaadittu numeerinen argumentti"
#: extension/time.c:142
-#, fuzzy
msgid "sleep: argument is negative"
-msgstr "exp: argumentti %g on lukualueen ulkopuolella"
+msgstr "sleep: argumentti on negatiivinen"
#: extension/time.c:176
msgid "sleep: not supported on this platform"
-msgstr ""
+msgstr "sleep: ei ole tuettu tällä alustalla"
#: field.c:339
msgid "NF set to negative value"
@@ -2434,20 +2338,15 @@ msgstr "split: toinen argumentti ei ole taulukko"
#: field.c:986
msgid "split: cannot use the same array for second and fourth args"
-msgstr ""
-"split: ei voida käyttää samaa taulukkoa toiselle ja neljännelle argumentille"
+msgstr "split: saman taulukon käyttö toiselle ja neljännelle argumentille epäonnistui"
#: field.c:991
msgid "split: cannot use a subarray of second arg for fourth arg"
-msgstr ""
-"split: ei voida käyttää toisen argumentin alitaulukkoa neljännelle "
-"argumentille"
+msgstr "split: toisen argumentin käyttö alitaulukkoa neljännelle argumentille epäonnistui"
#: field.c:994
msgid "split: cannot use a subarray of fourth arg for second arg"
-msgstr ""
-"split: ei voida käyttää neljännen argumentin alitaulukkoa toiselle "
-"argumentille"
+msgstr "split: neljännen argumentin käyttö alitaulukkoa toiselle argumentille epäonnistui"
#: field.c:1023
msgid "split: null string for third arg is a gawk extension"
@@ -2467,21 +2366,15 @@ msgstr "patsplit: kolmas argumentti ei ole taulukko"
#: field.c:1078
msgid "patsplit: cannot use the same array for second and fourth args"
-msgstr ""
-"patsplit: ei voida käyttää samaa taulukkoa toiselle ja neljännelle "
-"argumentille"
+msgstr "patsplit: saman taulukon käyttö toiselle ja neljännelle argumentille epäonnistui"
#: field.c:1083
msgid "patsplit: cannot use a subarray of second arg for fourth arg"
-msgstr ""
-"patsplit: ei voida käyttää toisen argumentin alitaulukkkoa neljännelle "
-"argumentille"
+msgstr "patsplit: toisen argumentin käyttö alitaulukkkoa neljännelle argumentille epäonnistui"
#: field.c:1086
msgid "patsplit: cannot use a subarray of fourth arg for second arg"
-msgstr ""
-"patsplit: ei voida käyttää neljännen argumentin alitaulukkoa toiselle "
-"argumentille"
+msgstr "patsplit: neljännen argumentin käyttö alitaulukkoa toiselle argumentille epäonnistui"
#: field.c:1124
msgid "`FIELDWIDTHS' is a gawk extension"
@@ -2506,39 +2399,38 @@ msgstr "”FPAT” on gawk-laajennus"
#: gawkapi.c:146
msgid "awk_value_to_node: received null retval"
-msgstr ""
+msgstr "awk_value_to_node: vastaanotti null retval-paluuarvon"
#: gawkapi.c:384
msgid "node_to_awk_value: received null node"
-msgstr ""
+msgstr "node_to_awk_value: vastaaotti null-solmun"
#: gawkapi.c:387
msgid "node_to_awk_value: received null val"
-msgstr ""
+msgstr "node_to_awk_value: vastaanotti null-arvon"
#: gawkapi.c:808
-#, fuzzy
msgid "remove_element: received null array"
-msgstr "length: vastaanotettu taulukkoargumentti"
+msgstr "remove_element: vastaanotettu null-taulukko"
#: gawkapi.c:811
msgid "remove_element: received null subscript"
-msgstr ""
+msgstr "remove_element: vastaanotti null-alaindeksin"
#: gawkapi.c:943
#, c-format
msgid "api_flatten_array: could not convert index %d\n"
-msgstr ""
+msgstr "api_flatten_array: indeksin %d muuntaminen epäonnistui\n"
#: gawkapi.c:948
#, c-format
msgid "api_flatten_array: could not convert value %d\n"
-msgstr ""
+msgstr "api_flatten_array: arvon %d muuntaminen epäonnistui\n"
#: getopt.c:603 getopt.c:632
-#, fuzzy, c-format
+#, c-format
msgid "%s: option '%s' is ambiguous; possibilities:"
-msgstr "%s: valitsin ’%s’ ei ole yksiselitteinen\n"
+msgstr "%s: valitsin ’%s’ ei ole yksiselitteinen; mahdollisuudet:"
#: getopt.c:678 getopt.c:682
#, c-format
@@ -2598,7 +2490,7 @@ msgstr "komentoriviargumentti ”%s” on hakemisto: ohitettiin"
#: io.c:350 io.c:463
#, c-format
msgid "cannot open file `%s' for reading (%s)"
-msgstr "ei voi avata tiedostoa ”%s” lukemista varten (%s)"
+msgstr "tiedoston ”%s” avaaminen lukemista varten (%s) epäonnistui"
#: io.c:590
#, c-format
@@ -2622,9 +2514,7 @@ msgstr "lausekkeella ”%s”-uudelleenohjauksessa on null-merkkijonoarvo"
#: io.c:711
#, c-format
msgid "filename `%s' for `%s' redirection may be result of logical expression"
-msgstr ""
-"tiedostonimi ”%s” ”%s”-uudelleenohjaukselle saattaa olla loogisen lausekkeen "
-"tulos"
+msgstr "tiedostonimi ”%s” ”%s”-uudelleenohjaukselle saattaa olla loogisen lausekkeen tulos"
#: io.c:754
#, c-format
@@ -2634,288 +2524,274 @@ msgstr "turha merkkien ”>” ja ”>>” sekoittaminen tiedostolle ”%.*s”"
#: io.c:808
#, c-format
msgid "can't open pipe `%s' for output (%s)"
-msgstr "ei voi avata putkea ”%s” tulosteelle (%s)"
+msgstr "putken ”%s” avaaminen tulosteelle (%s) epäonnistui"
#: io.c:818
#, c-format
msgid "can't open pipe `%s' for input (%s)"
-msgstr "ei voi avata putkea ”%s” syötteelle (%s)"
+msgstr "putken ”%s” avaaminen syötteelle (%s) epäonnistui"
#: io.c:849
#, c-format
msgid "can't open two way pipe `%s' for input/output (%s)"
-msgstr "ei voi avata kaksisuuntaista putkea ”%s” syötteelle/tulosteelle (%s)"
+msgstr "kaksisuuntaisen putken ”%s” avaaminen syötteelle/tulosteelle (%s) epäonnistui"
-#: io.c:928
+#: io.c:932
#, c-format
msgid "can't redirect from `%s' (%s)"
-msgstr "ei voi uudelleenohjata putkesta ”%s” (%s)"
+msgstr "uudelleenohjaus putkesta ”%s” (%s) epäonnistui"
-#: io.c:931
+#: io.c:935
#, c-format
msgid "can't redirect to `%s' (%s)"
-msgstr "ei voi uudelleenohjata putkeen ”%s” (%s)"
+msgstr "uudelleenohjaus putkeen ”%s” (%s) epäonnistui"
-#: io.c:982
-msgid ""
-"reached system limit for open files: starting to multiplex file descriptors"
-msgstr ""
-"saavutettiin avoimien tiedostojen järjestelmäraja: aloitetaan "
-"tiedostomäärittelijöiden lomittaminen"
+#: io.c:986
+msgid "reached system limit for open files: starting to multiplex file descriptors"
+msgstr "saavutettiin avoimien tiedostojen järjestelmäraja: aloitetaan tiedostomäärittelijöiden lomittaminen"
-#: io.c:998
+#: io.c:1002
#, c-format
msgid "close of `%s' failed (%s)."
msgstr "uudelleenohjauksen ”%s” sulkeminen epäonnistui (%s)."
-#: io.c:1006
+#: io.c:1010
msgid "too many pipes or input files open"
msgstr "avoinna liian monta putkea tai syötetiedostoa"
-#: io.c:1028
+#: io.c:1032
msgid "close: second argument must be `to' or `from'"
msgstr "close: toisen argumentin on oltava ”to” tai ”from”"
-#: io.c:1045
+#: io.c:1049
#, c-format
msgid "close: `%.*s' is not an open file, pipe or co-process"
msgstr "close: ”%.*s” ei ole avoin tiedosto, putki tai apuprosessi"
-#: io.c:1050
+#: io.c:1054
msgid "close of redirection that was never opened"
msgstr "suljettiin uudelleenohjaus, jota ei avattu koskaan"
-#: io.c:1147
+#: io.c:1151
#, c-format
msgid "close: redirection `%s' not opened with `|&', second argument ignored"
-msgstr ""
-"close: uudelleenohjaus ”%s” ei ole avattu operaattoreilla ”|&”, toinen "
-"argumentti ohitettu"
+msgstr "close: uudelleenohjaus ”%s” ei ole avattu operaattoreilla ”|&”, toinen argumentti ohitettu"
-#: io.c:1164
+#: io.c:1168
#, c-format
msgid "failure status (%d) on pipe close of `%s' (%s)"
msgstr "virhetila (%d) putken ”%s” sulkemisessa (%s)"
-#: io.c:1167
+#: io.c:1171
#, c-format
msgid "failure status (%d) on file close of `%s' (%s)"
msgstr "virhetila (%d) tiedoston ”%s” sulkemisessa (%s)"
-#: io.c:1187
+#: io.c:1191
#, c-format
msgid "no explicit close of socket `%s' provided"
msgstr "pistokkeen ”%s” eksplisiittistä sulkemista ei tarjota"
-#: io.c:1190
+#: io.c:1194
#, c-format
msgid "no explicit close of co-process `%s' provided"
msgstr "apuprosessin ”%s” eksplisiittistä sulkemista ei tarjota"
-#: io.c:1193
+#: io.c:1197
#, c-format
msgid "no explicit close of pipe `%s' provided"
msgstr "putken ”%s” eksplisiittistä sulkemista ei tarjota"
-#: io.c:1196
+#: io.c:1200
#, c-format
msgid "no explicit close of file `%s' provided"
msgstr "tiedoston ”%s” eksplisiittistä sulkemista ei tarjota"
-#: io.c:1224 io.c:1279 main.c:842 main.c:879
+#: io.c:1228 io.c:1283 main.c:842 main.c:879
#, c-format
msgid "error writing standard output (%s)"
msgstr "virhe kirjoitettaessa vakiotulosteeseen (%s)"
-#: io.c:1228 io.c:1284
+#: io.c:1232 io.c:1288
#, c-format
msgid "error writing standard error (%s)"
msgstr "virhe kirjoitettaessa vakiovirheeseen (%s)"
-#: io.c:1236
+#: io.c:1240
#, c-format
msgid "pipe flush of `%s' failed (%s)."
msgstr "uudelleenohjauksen ”%s” putken tyhjennys epäonnistui (%s)."
-#: io.c:1239
+#: io.c:1243
#, c-format
msgid "co-process flush of pipe to `%s' failed (%s)."
msgstr "putken apuprosessityhjennys uudelleenohjaukseen ”%s” epäonnistui (%s)."
-#: io.c:1242
+#: io.c:1246
#, c-format
msgid "file flush of `%s' failed (%s)."
msgstr "uudelleenohjauksen ”%s” tiedostontyhjennys epäonnistui (%s)."
-#: io.c:1356
+#: io.c:1360
#, c-format
msgid "local port %s invalid in `/inet'"
msgstr "paikallinen portti %s virheellinen pistokkeessa ”/inet”"
-#: io.c:1374
+#: io.c:1378
#, c-format
msgid "remote host and port information (%s, %s) invalid"
msgstr "etäkone- ja porttitiedot (%s, %s) ovat virheellisiä"
-#: io.c:1526
+#: io.c:1530
#, c-format
msgid "no (known) protocol supplied in special filename `%s'"
msgstr "ei (tunnettua) yhteyskäytäntöä tarjottu erikoistiedostonimessä ”%s”"
-#: io.c:1540
+#: io.c:1544
#, c-format
msgid "special file name `%s' is incomplete"
msgstr "erikoistiedostonimi ”%s” on vaillinainen"
-#: io.c:1557
+#: io.c:1561
msgid "must supply a remote hostname to `/inet'"
msgstr "on tarjottava etäkoneen nimi pistokkeeseen ”/inet”"
-#: io.c:1575
+#: io.c:1579
msgid "must supply a remote port to `/inet'"
msgstr "on tarjottava etäportti pistokkeeseen ”/inet”"
-#: io.c:1621
+#: io.c:1625
msgid "TCP/IP communications are not supported"
msgstr "TCP/IP-viestintää ei tueta"
-#: io.c:1796
+#: io.c:1800
#, c-format
msgid "could not open `%s', mode `%s'"
-msgstr "ei voitu avata laitetta ”%s”, tila ”%s”"
+msgstr "laitteen ”%s” avaus epäonnistui, tila ”%s”"
-#: io.c:1846
+#: io.c:1850
#, c-format
msgid "close of master pty failed (%s)"
msgstr "”master pty”-sulkeminen epäonnistui (%s)"
-#: io.c:1848 io.c:2024 io.c:2194
+#: io.c:1852 io.c:2028 io.c:2198
#, c-format
msgid "close of stdout in child failed (%s)"
msgstr "vakiotulosteen sulkeminen lapsiprosessissa epäonnistui (%s)"
-#: io.c:1851
+#: io.c:1855
#, c-format
msgid "moving slave pty to stdout in child failed (dup: %s)"
-msgstr ""
-"”slave pty”:n siirtäminen vakiotulosteeseen lapsiprosessissa epäonnistui "
-"(dup: %s)"
+msgstr "”slave pty”:n siirtäminen vakiotulosteeseen lapsiprosessissa epäonnistui (dup: %s)"
-#: io.c:1853 io.c:2029
+#: io.c:1857 io.c:2033
#, c-format
msgid "close of stdin in child failed (%s)"
msgstr "vakiosyötteen sulkeminen lapsiprosessissa epäonnistui (%s)"
-#: io.c:1856
+#: io.c:1860
#, c-format
msgid "moving slave pty to stdin in child failed (dup: %s)"
-msgstr ""
-"”slave pty”:n siirtäminen vakiosyötteeseen lapsiprosessissa epäonnistui "
-"(dup: %s)"
+msgstr "”slave pty”:n siirtäminen vakiosyötteeseen lapsiprosessissa epäonnistui (dup: %s)"
-#: io.c:1858 io.c:1879
+#: io.c:1862 io.c:1883
#, c-format
msgid "close of slave pty failed (%s)"
msgstr "”slave pty”:n sulkeminen epäonnistui (%s)"
-#: io.c:1965 io.c:2027 io.c:2171 io.c:2197
+#: io.c:1969 io.c:2031 io.c:2175 io.c:2201
#, c-format
msgid "moving pipe to stdout in child failed (dup: %s)"
-msgstr ""
-"putken siirtäminen vakiotulosteeseen lapsiprosessissa epäonnistui (dup: %s)"
+msgstr "putken siirtäminen vakiotulosteeseen lapsiprosessissa epäonnistui (dup: %s)"
-#: io.c:1972 io.c:2032
+#: io.c:1976 io.c:2036
#, c-format
msgid "moving pipe to stdin in child failed (dup: %s)"
-msgstr ""
-"putken siirtäminen vakiosyötteeseen lapsiprosessissa epäonnistui (dup: %s)"
+msgstr "putken siirtäminen vakiosyötteeseen lapsiprosessissa epäonnistui (dup: %s)"
-#: io.c:1992 io.c:2187
+#: io.c:1996 io.c:2191
msgid "restoring stdout in parent process failed\n"
msgstr "vakiotulosteen palauttaminen äitiprosessissa epäonnistui\n"
-#: io.c:2000
+#: io.c:2004
msgid "restoring stdin in parent process failed\n"
msgstr "vakiosyötön palauttaminen äitiprosessissa epäonnistui\n"
-#: io.c:2035 io.c:2199 io.c:2213
+#: io.c:2039 io.c:2203 io.c:2217
#, c-format
msgid "close of pipe failed (%s)"
msgstr "putken sulkeminen epäonnistui (%s)"
-#: io.c:2089
+#: io.c:2093
msgid "`|&' not supported"
msgstr "”|&” ei tueta"
-#: io.c:2156
+#: io.c:2160
#, c-format
msgid "cannot open pipe `%s' (%s)"
-msgstr "ei voi avata putkea ”%s” (%s)"
+msgstr "putken ”%s” (%s) avaaminen epäonnistui"
-#: io.c:2207
+#: io.c:2211
#, c-format
msgid "cannot create child process for `%s' (fork: %s)"
-msgstr "ei voida luoda lapsiprosessia komennolle ”%s” (fork: %s)"
+msgstr "lapsiprosessin luominen komennolle ”%s” (fork: %s) epäonnistui"
-#: io.c:2667
+#: io.c:2671
msgid "register_input_parser: received NULL pointer"
-msgstr ""
+msgstr "register_input_parser: vastaanotettiin NULL-osoitin"
-#: io.c:2695
+#: io.c:2699
#, c-format
msgid "input parser `%s' conflicts with previously installed input parser `%s'"
-msgstr ""
+msgstr "syötejäsennin ”%s” on ristiriidassa aiemmin asennetun syötejäsentimen ”%s” kanssa"
-#: io.c:2702
+#: io.c:2706
#, c-format
msgid "input parser `%s' failed to open `%s'"
-msgstr ""
+msgstr "syötejäsentäjä ”%s” epäonnistui kohteen ”%s” avaamisessa"
-#: io.c:2722
+#: io.c:2726
msgid "register_output_wrapper: received NULL pointer"
-msgstr ""
+msgstr "register_output_wrapper: vastaanotti NULL-osoittimen"
-#: io.c:2750
+#: io.c:2754
#, c-format
-msgid ""
-"output wrapper `%s' conflicts with previously installed output wrapper `%s'"
-msgstr ""
+msgid "output wrapper `%s' conflicts with previously installed output wrapper `%s'"
+msgstr "tulostekäärin ”%s” on ristiriidassa aiemmin asennetun tulostekäärimen ”%s” kanssa"
-#: io.c:2757
+#: io.c:2761
#, c-format
msgid "output wrapper `%s' failed to open `%s'"
-msgstr ""
+msgstr "tulostekäärin ”%s” epäonnistui avaamaan ”%s”"
-#: io.c:2778
+#: io.c:2782
msgid "register_output_processor: received NULL pointer"
-msgstr ""
+msgstr "register_output_processor: vastaanotti NULL-osoittimen"
-#: io.c:2807
+#: io.c:2811
#, c-format
-msgid ""
-"two-way processor `%s' conflicts with previously installed two-way processor "
-"`%s'"
-msgstr ""
+msgid "two-way processor `%s' conflicts with previously installed two-way processor `%s'"
+msgstr "kaksisuuntainen prosessori ”%s” on ristiriidassa aiemmin asennetun kaksisuuntaisen prosessorin ”%s” kanssa"
-#: io.c:2816
+#: io.c:2820
#, c-format
msgid "two way processor `%s' failed to open `%s'"
-msgstr ""
+msgstr "kaksisuuntainen prosessori ”%s” epäonnistui avaamaan ”%s”"
-#: io.c:2923
+#: io.c:2927
#, c-format
msgid "data file `%s' is empty"
msgstr "data-tiedosto ”%s” on tyhjä"
-#: io.c:2965 io.c:2973
+#: io.c:2969 io.c:2977
msgid "could not allocate more input memory"
-msgstr "ei voitu varata lisää syötemuistia"
+msgstr "lisäsyötemuistin varaus epäonnistui"
-#: io.c:3539
+#: io.c:3543
msgid "multicharacter value of `RS' is a gawk extension"
msgstr "”RS”-monimerkkiarvo on gawk-laajennus"
-#: io.c:3628
+#: io.c:3632
msgid "IPv6 communication is not supported"
msgstr "IPv6-viestintää ei tueta"
@@ -2935,9 +2811,7 @@ msgstr "%s: valitsin vaatii argumentin -- %c\n"
#: main.c:545
msgid "environment variable `POSIXLY_CORRECT' set: turning on `--posix'"
-msgstr ""
-"ympäristömuuttuja ”POSIXLY_CORRECT” asetettu: käännetään päälle valitsin ”--"
-"posix”"
+msgstr "ympäristömuuttuja ”POSIXLY_CORRECT” asetettu: käännetään päälle valitsin ”--posix”"
#: main.c:551
msgid "`--posix' overrides `--traditional'"
@@ -2945,8 +2819,7 @@ msgstr "valitsin ”--posix” korvaa valitsimen ”--traditional”"
#: main.c:562
msgid "`--posix'/`--traditional' overrides `--non-decimal-data'"
-msgstr ""
-"valitsin ”--posix” tai ”--traditional” korvaa valitsimen ”--non-decimal-data”"
+msgstr "valitsin ”--posix” tai ”--traditional” korvaa valitsimen ”--non-decimal-data”"
#: main.c:566
#, c-format
@@ -2954,24 +2827,23 @@ msgid "running %s setuid root may be a security problem"
msgstr "suorittaminen ”%s setuid root”-käyttäjänä saattaa olla turvapulma"
#: main.c:571
-#, fuzzy
msgid "`--posix' overrides `--characters-as-bytes'"
-msgstr "valitsin ”--posix” korvaa valitsimen ”--binary”"
+msgstr "valitsin ”--posix” korvaa valitsimen ”--characters-as-bytes”"
#: main.c:630
#, c-format
msgid "can't set binary mode on stdin (%s)"
-msgstr "ei voi asettaa binaaritilaa vakiosyötteessä (%s)"
+msgstr "binaaritilan asettaminen vakiosyötteessä (%s) epäonnistui"
#: main.c:633
#, c-format
msgid "can't set binary mode on stdout (%s)"
-msgstr "ei voi asettaa binaaritilaa vakiotulosteessa (%s)"
+msgstr "binaaritilan asettaminen vakiotulosteessa (%s) epäonnistui"
#: main.c:635
#, c-format
msgid "can't set binary mode on stderr (%s)"
-msgstr "ei voi asettaa binaaritilaa vakiovirheessä (%s)"
+msgstr "binaaritilaa asettaminen vakiovirheessä (%s) epäonnistui"
#: main.c:693
msgid "no program text at all!"
@@ -2980,16 +2852,12 @@ msgstr "ei ohjelmatekstiä ollenkaan!"
#: main.c:779
#, c-format
msgid "Usage: %s [POSIX or GNU style options] -f progfile [--] file ...\n"
-msgstr ""
-"Käyttö: %s [POSIX- tai GNU-tyyliset valitsimet] -f ohjelmatiedosto [--] "
-"tiedosto ...\n"
+msgstr "Käyttö: %s [POSIX- tai GNU-tyyliset valitsimet] -f ohjelmatiedosto [--] tiedosto ...\n"
#: main.c:781
#, c-format
msgid "Usage: %s [POSIX or GNU style options] [--] %cprogram%c file ...\n"
-msgstr ""
-"Käyttö: %s [POSIX- tai GNU-tyyliset valitsimet] [--] %cohjelma%c "
-"tiedosto ...\n"
+msgstr "Käyttö: %s [POSIX- tai GNU-tyyliset valitsimet] [--] %cohjelma%c tiedosto ...\n"
#: main.c:786
msgid "POSIX options:\t\tGNU long options: (standard)\n"
@@ -3028,9 +2896,8 @@ msgid "\t-d[file]\t\t--dump-variables[=file]\n"
msgstr "\t-d[tiedosto]\t\t--dump-variables[=tiedosto]\n"
#: main.c:795
-#, fuzzy
msgid "\t-D[file]\t\t--debug[=file]\n"
-msgstr "\t-p[tiedosto]\t\t--profile[=tiedosto]\n"
+msgstr "\t-D[tiedosto]\t\t--debug[=tiedosto]\n"
#: main.c:796
msgid "\t-e 'program-text'\t--source='program-text'\n"
@@ -3050,11 +2917,11 @@ msgstr "\t-h\t\t\t--help\n"
#: main.c:800
msgid "\t-i includefile\t\t--include=includefile\n"
-msgstr ""
+msgstr "\t-i include-tiedosto\t\t--include=include-tiedosto\n"
#: main.c:801
msgid "\t-l library\t\t--load=library\n"
-msgstr ""
+msgstr "\t-l kirjasto\t\t--load=kirjasto\n"
#: main.c:802
msgid "\t-L [fatal]\t\t--lint[=fatal]\n"
@@ -3065,18 +2932,16 @@ msgid "\t-n\t\t\t--non-decimal-data\n"
msgstr "\t-n\t\t\t--non-decimal-data\n"
#: main.c:804
-#, fuzzy
msgid "\t-M\t\t\t--bignum\n"
-msgstr "\t-g\t\t\t--gen-po\n"
+msgstr "\t-M\t\t\t--bignum\n"
#: main.c:805
msgid "\t-N\t\t\t--use-lc-numeric\n"
msgstr "\t-N\t\t\t--use-lc-numeric\n"
#: main.c:806
-#, fuzzy
msgid "\t-o[file]\t\t--pretty-print[=file]\n"
-msgstr "\t-p[tiedosto]\t\t--profile[=tiedosto]\n"
+msgstr "\t-o[tiedosto]\t\t--pretty-print[=tiedosto]\n"
#: main.c:807
msgid "\t-O\t\t\t--optimize\n"
@@ -3127,8 +2992,7 @@ msgid ""
"\n"
msgstr ""
"\n"
-"Virheiden ilmoittamista varten, katso solmua ”Bugs” tiedostossa ”gawk."
-"info”,\n"
+"Virheiden ilmoittamista varten, katso solmua ”Bugs” tiedostossa ”gawk.info”,\n"
"joka on kappale ”Reporting Problems and Bugs” painetussa versiossa.\n"
"\n"
@@ -3197,12 +3061,12 @@ msgstr ""
msgid "-Ft does not set FS to tab in POSIX awk"
msgstr "-Ft ei aseta FS välilehteen POSIX awk:ssa"
-#: main.c:1181
+#: main.c:1176
#, c-format
msgid "unknown value for field spec: %d\n"
msgstr "tuntematon arvo kenttämääritteelle: %d\n"
-#: main.c:1279
+#: main.c:1274
#, c-format
msgid ""
"%s: `%s' argument to `-v' not in `var=value' form\n"
@@ -3211,105 +3075,101 @@ msgstr ""
"%s: ”%s” argumentti valitsimelle ”-v” ei ole ”var=arvo”-muodossa\n"
"\n"
-#: main.c:1305
+#: main.c:1300
#, c-format
msgid "`%s' is not a legal variable name"
msgstr "”%s” ei ole laillinen muuttujanimi"
-#: main.c:1308
+#: main.c:1303
#, c-format
msgid "`%s' is not a variable name, looking for file `%s=%s'"
msgstr "”%s” ei ole muuttujanimi, etsitään tiedostoa ”%s=%s”"
-#: main.c:1312
+#: main.c:1307
#, c-format
msgid "cannot use gawk builtin `%s' as variable name"
-msgstr "ei voi käyttää gawk-ohjelman sisäistä ”%s”-määrittelyä muuttujanimenä"
+msgstr "gawk-ohjelman sisäisen ”%s”-määrittelyn käyttö muuttujanimenä epäonnistui"
-#: main.c:1317
+#: main.c:1312
#, c-format
msgid "cannot use function `%s' as variable name"
-msgstr "funktionimeä ”%s” ei voi käyttää muuttujanimenä"
+msgstr "funktionimen ”%s” käyttö muuttujanimenä epäonnistui"
-#: main.c:1370
+#: main.c:1365
msgid "floating point exception"
msgstr "liukulukupoikkeus"
-#: main.c:1377
+#: main.c:1372
msgid "fatal error: internal error"
msgstr "tuhoisa virhe: sisäinen virhe"
-#: main.c:1392
+#: main.c:1387
msgid "fatal error: internal error: segfault"
msgstr "tuhoisa virhe: sisäinen virhe: segmenttivirhe"
-#: main.c:1404
+#: main.c:1399
msgid "fatal error: internal error: stack overflow"
msgstr "tuhoisa virhe: sisäinen virhe: pinoylivuoto"
-#: main.c:1463
+#: main.c:1458
#, c-format
msgid "no pre-opened fd %d"
msgstr "ei avattu uudelleen tiedostomäärittelijää %d"
-#: main.c:1470
+#: main.c:1465
#, c-format
msgid "could not pre-open /dev/null for fd %d"
-msgstr "ei voitu avata uudelleen laitetta /dev/null tiedostomäärittelijälle %d"
+msgstr "laitteen /dev/null avaaminen uudelleen tiedostomäärittelijälle %d epäonnistui"
#: mpfr.c:550
-#, fuzzy, c-format
+#, c-format
msgid "PREC value `%.*s' is invalid"
-msgstr "BINMODE-arvo ”%s” on virheellinen, käsiteltiin arvona 3"
+msgstr "PREC-arvo ”%.*s” on virheellinen"
#: mpfr.c:608
-#, fuzzy, c-format
+#, c-format
msgid "RNDMODE value `%.*s' is invalid"
-msgstr "BINMODE-arvo ”%s” on virheellinen, käsiteltiin arvona 3"
+msgstr "RNDMODE-arvo ”%.*s” on virheellinen"
#: mpfr.c:698
-#, fuzzy, c-format
+#, c-format
msgid "%s: received non-numeric argument"
-msgstr "cos: vastaanotettu argumentti ei ole numeerinen"
+msgstr "%s: vastaanotettu argumentti ei ole numeerinen"
#: mpfr.c:800
-#, fuzzy
msgid "compl(%Rg): negative value will give strange results"
-msgstr "compl(%lf): negatiiviset arvot antavat outoja tuloksia"
+msgstr "compl(%Rg): negatiivinen arvo antaa outoja tuloksia"
#: mpfr.c:804
-#, fuzzy
msgid "comp(%Rg): fractional value will be truncated"
-msgstr "compl(%lf): jaosarvo typistetään"
+msgstr "compl(%Rg): jaosarvo typistetään"
#: mpfr.c:816
-#, fuzzy, c-format
+#, c-format
msgid "cmpl(%Zd): negative values will give strange results"
-msgstr "compl(%lf): negatiiviset arvot antavat outoja tuloksia"
+msgstr "compl(%Zd): negatiiviset arvot antavat outoja tuloksia"
#: mpfr.c:835
-#, fuzzy, c-format
+#, c-format
msgid "%s: received non-numeric argument #%d"
-msgstr "cos: vastaanotettu argumentti ei ole numeerinen"
+msgstr "%s: vastaanotettu argumentti #%d ei ole numeerinen"
#: mpfr.c:845
msgid "%s: argument #%d has invalid value %Rg, using 0"
-msgstr ""
+msgstr "%s: argumentilla #%d on virheellinen arvo %Rg, käytetään 0"
#: mpfr.c:857
-#, fuzzy
msgid "%s: argument #%d negative value %Rg will give strange results"
-msgstr "compl(%lf): negatiiviset arvot antavat outoja tuloksia"
+msgstr "%s: argumentin #%d negatiivinen arvo %Rg antaa outoja tuloksia"
#: mpfr.c:863
-#, fuzzy
msgid "%s: argument #%d fractional value %Rg will be truncated"
-msgstr "or(%lf, %lf): jaosarvot typistetään"
+msgstr "%s: argumentin #%d jaosarvo %Rg typistetään"
#: mpfr.c:878
-#, fuzzy, c-format
+#, c-format
msgid "%s: argument #%d negative value %Zd will give strange results"
-msgstr "compl(%lf): negatiiviset arvot antavat outoja tuloksia"
+msgstr "%s: argumentin #%d negatiivinen arvo %Zd antaa outoja tuloksia"
#: msg.c:61
#, c-format
@@ -3335,12 +3195,8 @@ msgstr "ei heksadesimaalilukuja ”\\x”-koodinvaihtosekvenssissä"
#: node.c:579
#, c-format
-msgid ""
-"hex escape \\x%.*s of %d characters probably not interpreted the way you "
-"expect"
-msgstr ""
-"heksadesimaalikoodinvaihtomerkkejä \\x%.*s / %d ei ole luultavasti tulkittu "
-"sillä tavalla kuin odotat"
+msgid "hex escape \\x%.*s of %d characters probably not interpreted the way you expect"
+msgstr "heksadesimaalikoodinvaihtomerkkejä \\x%.*s / %d ei ole luultavasti tulkittu sillä tavalla kuin odotat"
#: node.c:594
#, c-format
@@ -3348,27 +3204,23 @@ msgid "escape sequence `\\%c' treated as plain `%c'"
msgstr "koodinvaihtosekvenssi ”\\%c” käsitelty kuin pelkkä ”%c”"
#: node.c:739
-msgid ""
-"Invalid multibyte data detected. There may be a mismatch between your data "
-"and your locale."
-msgstr ""
-"Virheellinen monitavutieto havaittu. Paikallisasetuksesi ja tietojesi "
-"välillä saattaa olla täsmäämättömyys."
+msgid "Invalid multibyte data detected. There may be a mismatch between your data and your locale."
+msgstr "Virheellinen monitavutieto havaittu. Paikallisasetuksesi ja tietojesi välillä saattaa olla täsmäämättömyys."
#: posix/gawkmisc.c:177
#, c-format
msgid "%s %s `%s': could not get fd flags: (fcntl F_GETFD: %s)"
-msgstr "%s %s ”%s”: ei voitu hakea fd-lippuja: (fcntl F_GETFD: %s)"
+msgstr "%s %s ”%s”: fd-lippujen hakeminen epäonnistui: (fcntl F_GETFD: %s)"
#: posix/gawkmisc.c:189
#, c-format
msgid "%s %s `%s': could not set close-on-exec: (fcntl F_SETFD: %s)"
-msgstr "%s %s ”%s”: ei voitu asettaa close-on-exec: (fcntl F_SETFD: %s)"
+msgstr "%s %s ”%s”: close-on-exec -asettaminen epäonnistui: (fcntl F_SETFD: %s)"
#: profile.c:70
#, c-format
msgid "could not open `%s' for writing: %s"
-msgstr "ei voitu avata tiedostoa ”%s” kirjoittamista varten: %s"
+msgstr "tiedoston ”%s” avaaminen kirjoittamista varten epäonnistui: %s"
#: profile.c:72
msgid "sending profile to standard error"
@@ -3398,9 +3250,8 @@ msgid "internal error: %s with null vname"
msgstr "sisäinen virhe: %s null vname-arvolla"
#: profile.c:530
-#, fuzzy
msgid "internal error: builtin with null fname"
-msgstr "sisäinen virhe: %s null vname-arvolla"
+msgstr "sisäinen virhe: builtin null-funktionimellä"
#: profile.c:942
#, c-format
@@ -3408,6 +3259,8 @@ msgid ""
"\t# Loaded extensions (-l and/or @load)\n"
"\n"
msgstr ""
+"\t# Ladatut laajennukset (-l ja/tai @load)\n"
+"\n"
#: profile.c:965
#, c-format
@@ -3436,8 +3289,7 @@ msgstr "muodon ”[%c-%c]” lukualue on paikallisasetuksesta riippuvainen"
#: re.c:610
#, c-format
msgid "regexp component `%.*s' should probably be `[%.*s]'"
-msgstr ""
-"säännöllisen lausekkeen komponentin ”%.*s” pitäisi luultavasti olla ”[%.*s]”"
+msgstr "säännöllisen lausekkeen komponentin ”%.*s” pitäisi luultavasti olla ”[%.*s]”"
#: regcomp.c:131
msgid "Success"
@@ -3505,48 +3357,28 @@ msgstr "Ei edellistä säännöllistä lauseketta"
#: symbol.c:740
msgid "can not pop main context"
-msgstr ""
-
-#, fuzzy
-#~ msgid "[s]printf called with no arguments"
-#~ msgstr "sqrt: kutsuttu negatiivisella argumentilla %g"
-
-#~ msgid "`-m[fr]' option irrelevant in gawk"
-#~ msgstr "”-m[fr]”-valitsin asiaanliittymätön gawk:ssa"
-
-#~ msgid "-m option usage: `-m[fr] nnn'"
-#~ msgstr "-m valitsinkäyttö: ”-m[fr] nnn”"
-
-#, fuzzy
-#~ msgid "%s: received non-numeric first argument"
-#~ msgstr "or: ensimmäinen vastaanotettu argumentti ei ole numeerinen"
+msgstr "pääsisällön pop-toiminto epäonnistui"
-#, fuzzy
-#~ msgid "%s: received non-numeric second argument"
-#~ msgstr "or: toinen vastaanotettu argumentti ei ole numeerinen"
+#~ msgid "attempt to use function `%s' as an array"
+#~ msgstr "yritettiin käyttää funktiota ”%s” taulukkona"
-#, fuzzy
-#~ msgid "%s(%Rg, ..): negative values will give strange results"
-#~ msgstr "or(%lf, %lf): negatiiviset arvot antavat outoja tuloksia"
+#~ msgid "reference to uninitialized element `%s[\"%.*s\"]'"
+#~ msgstr "viite alustamattomaan elementtiin ”%s[\"%.*s\"]”"
-#, fuzzy
-#~ msgid "%s(%Rg, ..): fractional values will be truncated"
-#~ msgstr "or(%lf, %lf): jaosarvot typistetään"
+#~ msgid "subscript of array `%s' is null string"
+#~ msgstr "taulukon alaindeksi ”%s” on null-merkkijono"
-#, fuzzy
-#~ msgid "%s(%Zd, ..): negative values will give strange results"
-#~ msgstr "or(%lf, %lf): negatiiviset arvot antavat outoja tuloksia"
+#~ msgid "%s: empty (null)\n"
+#~ msgstr "%s: tyhjä (null)\n"
-#, fuzzy
-#~ msgid "%s(.., %Rg): negative values will give strange results"
-#~ msgstr "or(%lf, %lf): negatiiviset arvot antavat outoja tuloksia"
+#~ msgid "%s: empty (zero)\n"
+#~ msgstr "%s: tyhjä (nolla)\n"
-#, fuzzy
-#~ msgid "%s(.., %Zd): negative values will give strange results"
-#~ msgstr "or(%lf, %lf): negatiiviset arvot antavat outoja tuloksia"
+#~ msgid "%s: table_size = %d, array_size = %d\n"
+#~ msgstr "%s: table_size = %d, array_size = %d\n"
-#~ msgid "`%s' is a Bell Labs extension"
-#~ msgstr "”%s” on Bell Labs -laajennus"
+#~ msgid "%s: array_ref to %s\n"
+#~ msgstr "%s: array_ref-viite taulukkoon %s\n"
#~ msgid "`nextfile' is a gawk extension"
#~ msgstr "”nextfile” on gawk-laajennus"
@@ -3554,14 +3386,29 @@ msgstr ""
#~ msgid "`delete array' is a gawk extension"
#~ msgstr "”delete array” on gawk-laajennus"
+#~ msgid "use of non-array as array"
+#~ msgstr "ei-taulukon käyttö taulukkona"
+
+#~ msgid "`%s' is a Bell Labs extension"
+#~ msgstr "”%s” on Bell Labs -laajennus"
+
#~ msgid "and: received non-numeric first argument"
#~ msgstr "and: ensimmäinen vastaanotettu argumentti ei ole numeerinen"
#~ msgid "and: received non-numeric second argument"
#~ msgstr "and: toinen vastaanotettu argumentti ei ole numeerinen"
-#~ msgid "and(%lf, %lf): fractional values will be truncated"
-#~ msgstr "and(%lf, %lf): jaosarvot typistetään"
+#~ msgid "or: received non-numeric first argument"
+#~ msgstr "or: ensimmäinen vastaanotettu argumentti ei ole numeerinen"
+
+#~ msgid "or: received non-numeric second argument"
+#~ msgstr "or: toinen vastaanotettu argumentti ei ole numeerinen"
+
+#~ msgid "or(%lf, %lf): negative values will give strange results"
+#~ msgstr "or(%lf, %lf): negatiiviset arvot antavat outoja tuloksia"
+
+#~ msgid "or(%lf, %lf): fractional values will be truncated"
+#~ msgstr "or(%lf, %lf): jaosarvot typistetään"
#~ msgid "xor: received non-numeric first argument"
#~ msgstr "xor: ensimmäinen vastaanotettu argumentti ei ole numeerinen"
@@ -3572,35 +3419,8 @@ msgstr ""
#~ msgid "xor(%lf, %lf): fractional values will be truncated"
#~ msgstr "xor(%lf, %lf): jaosarvot typistetään"
-#~ msgid "Operation Not Supported"
-#~ msgstr "Toimintoa ei tueta"
-
-#~ msgid "attempt to use function `%s' as an array"
-#~ msgstr "yritettiin käyttää funktiota ”%s” taulukkona"
-
-#~ msgid "reference to uninitialized element `%s[\"%.*s\"]'"
-#~ msgstr "viite alustamattomaan elementtiin ”%s[\"%.*s\"]”"
-
-#~ msgid "subscript of array `%s' is null string"
-#~ msgstr "taulukon alaindeksi ”%s” on null-merkkijono"
-
-#~ msgid "%s: empty (null)\n"
-#~ msgstr "%s: tyhjä (null)\n"
-
-#~ msgid "%s: empty (zero)\n"
-#~ msgstr "%s: tyhjä (nolla)\n"
-
-#~ msgid "%s: table_size = %d, array_size = %d\n"
-#~ msgstr "%s: table_size = %d, array_size = %d\n"
-
-#~ msgid "%s: array_ref to %s\n"
-#~ msgstr "%s: array_ref-viite taulukkoon %s\n"
-
-#~ msgid "use of non-array as array"
-#~ msgstr "ei-taulukon käyttö taulukkona"
-
#~ msgid "can't use function name `%s' as variable or array"
-#~ msgstr "funktionimeä ”%s” ei voi käyttää muuttujana tai taulukkona"
+#~ msgstr "funktionimeä ”%s” käyttö muuttujana tai taulukkona epäonnistui"
#~ msgid "assignment used in conditional context"
#~ msgstr "sijoitusta käytetty ehdollisessa kontekstissa"
@@ -3608,11 +3428,8 @@ msgstr ""
#~ msgid "statement has no effect"
#~ msgstr "käskyllä ei ole vaikutusta"
-#~ msgid ""
-#~ "for loop: array `%s' changed size from %ld to %ld during loop execution"
-#~ msgstr ""
-#~ "for-silmukka: taulukon ”%s” koko muuttui arvosta %ld arvoon %ld silmukan "
-#~ "suorituksen aikana"
+#~ msgid "for loop: array `%s' changed size from %ld to %ld during loop execution"
+#~ msgstr "for-silmukka: taulukon ”%s” koko muuttui arvosta %ld arvoon %ld silmukan suorituksen aikana"
#~ msgid "function called indirectly through `%s' does not exist"
#~ msgstr "kohteen ”%s” kautta epäsuorasti kutsuttu funktio ei ole olemassa"
@@ -3632,11 +3449,20 @@ msgstr ""
#~ msgid "Sorry, don't know how to interpret `%s'"
#~ msgstr "Ei osata tulkita kohdetta ”%s”"
+#~ msgid "Operation Not Supported"
+#~ msgstr "Toimintoa ei tueta"
+
+#~ msgid "`-m[fr]' option irrelevant in gawk"
+#~ msgstr "”-m[fr]”-valitsin asiaanliittymätön gawk:ssa"
+
+#~ msgid "-m option usage: `-m[fr] nnn'"
+#~ msgstr "-m valitsinkäyttö: ”-m[fr] nnn”"
+
#~ msgid "\t-R file\t\t\t--command=file\n"
#~ msgstr "\t-R tiedosto\t\t\t--exec=tiedosto\n"
#~ msgid "could not find groups: %s"
-#~ msgstr "ei voitu löytää ryhmiä: %s"
+#~ msgstr "ryhmien löytäminen epäonnistui: %s"
#~ msgid "assignment is not allowed to result of builtin function"
#~ msgstr "sijoitusta ei sallita sisäänrakennetun funktion tulokselle"
@@ -3651,8 +3477,7 @@ msgstr ""
#~ msgstr "muisti loppui"
#~ msgid "call of `length' without parentheses is deprecated by POSIX"
-#~ msgstr ""
-#~ "”length”-kutsu ilman sulkumerkkejä on vanhentunut POSIX-standardissa"
+#~ msgstr "”length”-kutsu ilman sulkumerkkejä on vanhentunut POSIX-standardissa"
#~ msgid "division by zero attempted in `/'"
#~ msgstr "jakoa nollalla yritettiin operaatiossa ”/”"
@@ -3675,12 +3500,8 @@ msgstr ""
#~ msgid "`nextfile' cannot be called from a BEGIN rule"
#~ msgstr "”nextfile” ei voida kutsua BEGIN-säännöstä"
-#~ msgid ""
-#~ "concatenation: side effects in one expression have changed the length of "
-#~ "another!"
-#~ msgstr ""
-#~ "concatenation: sivuvaikutukset yhdessä lausekkeessa ovat muuttaneet "
-#~ "toisen pituutta!"
+#~ msgid "concatenation: side effects in one expression have changed the length of another!"
+#~ msgstr "concatenation: sivuvaikutukset yhdessä lausekkeessa ovat muuttaneet toisen pituutta!"
#~ msgid "illegal type (%s) in tree_eval"
#~ msgstr "virheellinen tyyppi (%s) funktiossa tree_eval"
@@ -3701,7 +3522,7 @@ msgstr ""
#~ msgstr "/inet/raw-palvelin ei ole vielä valitettavasti valmis"
#~ msgid "file `%s' is a directory"
-#~ msgstr "tiedosto `%s' on hakemisto"
+#~ msgstr "tiedosto ”%s” on hakemisto"
#~ msgid "use `PROCINFO[\"%s\"]' instead of `%s'"
#~ msgstr "käytä ”PROCINFO[\"%s\"]” eikä ”%s”"
@@ -3722,7 +3543,7 @@ msgstr ""
#~ msgstr "\t-W usage\t\t--usage\n"
#~ msgid "can't convert string to float"
-#~ msgstr "ei voi muuntaa merkkijonoa liukuluvuksi"
+#~ msgstr "merkkijonon muuntaminen liukuluvuksi epäonnistui"
#~ msgid "# treated internally as `delete'"
#~ msgstr "# käsitelty sisäisesti kuin ”delete”"
@@ -3744,8 +3565,10 @@ msgstr ""
#~ msgstr "Tuntematon solmutyyppi %s funktiossa pp_var"
#~ msgid "can't open two way socket `%s' for input/output (%s)"
-#~ msgstr ""
-#~ "ei voi avata kaksisuuntaista pistoketta ”%s” syötteelle/tulosteelle (%s)"
+#~ msgstr "kaksisuuntaisen vastakkeen ”%s” avaaminen syötteelle/tulosteelle (%s) epäonnistui"
#~ msgid "attempt to use scalar `%s' as array"
#~ msgstr "yritettiin käyttää skalaaria ”%s” taulukkona"
+
+#~ msgid "cannot pop main context"
+#~ msgstr "pääsisällön pop-toiminto epäonnistui"