summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/Makefile.in794
-rw-r--r--doc/sed-in.texi146
-rw-r--r--doc/sed.187
-rw-r--r--doc/sed.info368
-rw-r--r--doc/sed.texi148
-rw-r--r--doc/sed.x59
-rw-r--r--doc/stamp-vti8
-rw-r--r--doc/version.texi8
8 files changed, 1135 insertions, 483 deletions
diff --git a/doc/Makefile.in b/doc/Makefile.in
index f93617e..84e07d1 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.12.2 from Makefile.am.
# @configure_input@
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -16,9 +16,26 @@
VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
@@ -37,54 +54,71 @@ subdir = doc
DIST_COMMON = $(dist_man_MANS) $(dist_noinst_DATA) \
$(dist_noinst_SCRIPTS) $(sed_TEXINFOS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/stamp-vti \
- $(srcdir)/version.texi
+ $(srcdir)/version.texi $(top_srcdir)/build-aux/mdate-sh \
+ $(top_srcdir)/build-aux/texinfo.tex
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
$(top_srcdir)/m4/acl.m4 $(top_srcdir)/m4/alloca.m4 \
- $(top_srcdir)/m4/btowc.m4 $(top_srcdir)/m4/codeset.m4 \
- $(top_srcdir)/m4/dirname.m4 $(top_srcdir)/m4/dos.m4 \
+ $(top_srcdir)/m4/btowc.m4 $(top_srcdir)/m4/canonicalize.m4 \
+ $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.m4 \
+ $(top_srcdir)/m4/dirname.m4 \
$(top_srcdir)/m4/double-slash-root.m4 \
- $(top_srcdir)/m4/errno_h.m4 $(top_srcdir)/m4/error.m4 \
- $(top_srcdir)/m4/exitfail.m4 $(top_srcdir)/m4/extensions.m4 \
- $(top_srcdir)/m4/getdelim.m4 $(top_srcdir)/m4/getline.m4 \
- $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/getpagesize.m4 \
- $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gettimeofday.m4 \
- $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \
+ $(top_srcdir)/m4/eealloc.m4 $(top_srcdir)/m4/errno_h.m4 \
+ $(top_srcdir)/m4/error.m4 $(top_srcdir)/m4/extensions.m4 \
+ $(top_srcdir)/m4/extern-inline.m4 $(top_srcdir)/m4/fcntl-o.m4 \
+ $(top_srcdir)/m4/fcntl_h.m4 $(top_srcdir)/m4/fstat.m4 \
+ $(top_srcdir)/m4/fwriting.m4 $(top_srcdir)/m4/getdelim.m4 \
+ $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/gettimeofday.m4 $(top_srcdir)/m4/glibc21.m4 \
+ $(top_srcdir)/m4/gnulib-common.m4 \
$(top_srcdir)/m4/gnulib-comp.m4 $(top_srcdir)/m4/iconv.m4 \
- $(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/inline.m4 \
- $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/include_next.m4 \
+ $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/langinfo_h.m4 \
+ $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
$(top_srcdir)/m4/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \
$(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-zh.m4 \
+ $(top_srcdir)/m4/locale_h.m4 $(top_srcdir)/m4/localeconv.m4 \
$(top_srcdir)/m4/longlong.m4 $(top_srcdir)/m4/lstat.m4 \
- $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/mbrlen.m4 \
- $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbsinit.m4 \
- $(top_srcdir)/m4/mbstate_t.m4 $(top_srcdir)/m4/memchr.m4 \
- $(top_srcdir)/m4/mkstemp.m4 $(top_srcdir)/m4/mmap-anon.m4 \
- $(top_srcdir)/m4/multiarch.m4 $(top_srcdir)/m4/nls.m4 \
+ $(top_srcdir)/m4/malloc.m4 $(top_srcdir)/m4/malloca.m4 \
+ $(top_srcdir)/m4/mbrlen.m4 $(top_srcdir)/m4/mbrtowc.m4 \
+ $(top_srcdir)/m4/mbsinit.m4 $(top_srcdir)/m4/mbstate_t.m4 \
+ $(top_srcdir)/m4/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
+ $(top_srcdir)/m4/mkostemp.m4 $(top_srcdir)/m4/mmap-anon.m4 \
+ $(top_srcdir)/m4/msvc-inval.m4 \
+ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
+ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
+ $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/off_t.m4 \
$(top_srcdir)/m4/pathmax.m4 $(top_srcdir)/m4/po.m4 \
$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/quote.m4 \
- $(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/realloc.m4 \
- $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rename.m4 \
+ $(top_srcdir)/m4/quotearg.m4 $(top_srcdir)/m4/readlink.m4 \
+ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/regex.m4 \
+ $(top_srcdir)/m4/rename.m4 $(top_srcdir)/m4/rmdir.m4 \
$(top_srcdir)/m4/selinux-context-h.m4 \
$(top_srcdir)/m4/selinux-selinux-h.m4 \
- $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stdbool.m4 \
- $(top_srcdir)/m4/stdint.m4 $(top_srcdir)/m4/stdio_h.m4 \
- $(top_srcdir)/m4/stdlib_h.m4 $(top_srcdir)/m4/strerror.m4 \
- $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strndup.m4 \
- $(top_srcdir)/m4/strnlen.m4 $(top_srcdir)/m4/strverscmp.m4 \
+ $(top_srcdir)/m4/ssize_t.m4 $(top_srcdir)/m4/stat.m4 \
+ $(top_srcdir)/m4/stdarg.m4 $(top_srcdir)/m4/stdbool.m4 \
+ $(top_srcdir)/m4/stddef_h.m4 $(top_srcdir)/m4/stdint.m4 \
+ $(top_srcdir)/m4/stdio_h.m4 $(top_srcdir)/m4/stdlib_h.m4 \
+ $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/string_h.m4 \
+ $(top_srcdir)/m4/strverscmp.m4 \
+ $(top_srcdir)/m4/sys_socket_h.m4 \
$(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
- $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/threadlib.m4 \
+ $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/tempname.m4 \
+ $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/m4/time_h.m4 \
$(top_srcdir)/m4/unistd_h.m4 $(top_srcdir)/m4/unlocked-io.m4 \
- $(top_srcdir)/m4/wchar.m4 $(top_srcdir)/m4/wcrtomb.m4 \
- $(top_srcdir)/m4/wctob.m4 $(top_srcdir)/m4/wctype.m4 \
- $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/m4/xalloc.m4 \
- $(top_srcdir)/m4/xstrndup.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/m4/version-etc.m4 \
+ $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/wchar_h.m4 \
+ $(top_srcdir)/m4/wchar_t.m4 $(top_srcdir)/m4/wcrtomb.m4 \
+ $(top_srcdir)/m4/wctob.m4 $(top_srcdir)/m4/wctomb.m4 \
+ $(top_srcdir)/m4/wctype_h.m4 $(top_srcdir)/m4/wint_t.m4 \
+ $(top_srcdir)/m4/xalloc.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
SCRIPTS = $(dist_noinst_SCRIPTS)
SOURCES =
DIST_SOURCES =
@@ -99,23 +133,52 @@ TEXINFOS = sed.texi
TEXI2PDF = $(TEXI2DVI) --pdf --batch
MAKEINFOHTML = $(MAKEINFO) --html
DVIPS = dvips
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
man1dir = $(mandir)/man1
NROFF = nroff
MANS = $(dist_man_MANS)
DATA = $(dist_noinst_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+pkglibexecdir = @pkglibexecdir@
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
ALLOCA_H = @ALLOCA_H@
AMTAR = @AMTAR@
APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
@@ -154,43 +217,76 @@ GMSGFMT_015 = @GMSGFMT_015@
GNULIB_ATOLL = @GNULIB_ATOLL@
GNULIB_BTOWC = @GNULIB_BTOWC@
GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
+GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
+GNULIB_CHDIR = @GNULIB_CHDIR@
GNULIB_CHOWN = @GNULIB_CHOWN@
GNULIB_CLOSE = @GNULIB_CLOSE@
GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
GNULIB_DUP2 = @GNULIB_DUP2@
+GNULIB_DUP3 = @GNULIB_DUP3@
+GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@
GNULIB_ENVIRON = @GNULIB_ENVIRON@
GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@
+GNULIB_FACCESSAT = @GNULIB_FACCESSAT@
GNULIB_FCHDIR = @GNULIB_FCHDIR@
+GNULIB_FCHMODAT = @GNULIB_FCHMODAT@
+GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@
GNULIB_FCLOSE = @GNULIB_FCLOSE@
+GNULIB_FCNTL = @GNULIB_FCNTL@
+GNULIB_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
GNULIB_FOPEN = @GNULIB_FOPEN@
GNULIB_FPRINTF = @GNULIB_FPRINTF@
GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@
GNULIB_FPURGE = @GNULIB_FPURGE@
GNULIB_FPUTC = @GNULIB_FPUTC@
GNULIB_FPUTS = @GNULIB_FPUTS@
+GNULIB_FREAD = @GNULIB_FREAD@
GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FSCANF = @GNULIB_FSCANF@
GNULIB_FSEEK = @GNULIB_FSEEK@
GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FSTAT = @GNULIB_FSTAT@
+GNULIB_FSTATAT = @GNULIB_FSTATAT@
GNULIB_FSYNC = @GNULIB_FSYNC@
GNULIB_FTELL = @GNULIB_FTELL@
GNULIB_FTELLO = @GNULIB_FTELLO@
GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@
+GNULIB_FUTIMENS = @GNULIB_FUTIMENS@
GNULIB_FWRITE = @GNULIB_FWRITE@
+GNULIB_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
GNULIB_GETCWD = @GNULIB_GETCWD@
GNULIB_GETDELIM = @GNULIB_GETDELIM@
GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@
GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@
+GNULIB_GETGROUPS = @GNULIB_GETGROUPS@
GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@
GNULIB_GETLINE = @GNULIB_GETLINE@
GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
+GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@
+GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
+GNULIB_ISATTY = @GNULIB_ISATTY@
+GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
+GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
GNULIB_LCHMOD = @GNULIB_LCHMOD@
GNULIB_LCHOWN = @GNULIB_LCHOWN@
GNULIB_LINK = @GNULIB_LINK@
+GNULIB_LINKAT = @GNULIB_LINKAT@
+GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
GNULIB_LSEEK = @GNULIB_LSEEK@
GNULIB_LSTAT = @GNULIB_LSTAT@
GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@
@@ -213,30 +309,67 @@ GNULIB_MBSSEP = @GNULIB_MBSSEP@
GNULIB_MBSSPN = @GNULIB_MBSSPN@
GNULIB_MBSSTR = @GNULIB_MBSSTR@
GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@
+GNULIB_MBTOWC = @GNULIB_MBTOWC@
GNULIB_MEMCHR = @GNULIB_MEMCHR@
GNULIB_MEMMEM = @GNULIB_MEMMEM@
GNULIB_MEMPCPY = @GNULIB_MEMPCPY@
GNULIB_MEMRCHR = @GNULIB_MEMRCHR@
+GNULIB_MKDIRAT = @GNULIB_MKDIRAT@
GNULIB_MKDTEMP = @GNULIB_MKDTEMP@
+GNULIB_MKFIFO = @GNULIB_MKFIFO@
+GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@
+GNULIB_MKNOD = @GNULIB_MKNOD@
+GNULIB_MKNODAT = @GNULIB_MKNODAT@
+GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@
+GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@
GNULIB_MKSTEMP = @GNULIB_MKSTEMP@
+GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@
+GNULIB_MKTIME = @GNULIB_MKTIME@
+GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@
+GNULIB_NL_LANGINFO = @GNULIB_NL_LANGINFO@
+GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@
GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
+GNULIB_OPEN = @GNULIB_OPEN@
+GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
GNULIB_PERROR = @GNULIB_PERROR@
+GNULIB_PIPE = @GNULIB_PIPE@
+GNULIB_PIPE2 = @GNULIB_PIPE2@
+GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
+GNULIB_PREAD = @GNULIB_PREAD@
GNULIB_PRINTF = @GNULIB_PRINTF@
GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
GNULIB_PUTC = @GNULIB_PUTC@
GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
GNULIB_PUTENV = @GNULIB_PUTENV@
GNULIB_PUTS = @GNULIB_PUTS@
+GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
GNULIB_READLINK = @GNULIB_READLINK@
+GNULIB_READLINKAT = @GNULIB_READLINKAT@
GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
+GNULIB_REALPATH = @GNULIB_REALPATH@
+GNULIB_REMOVE = @GNULIB_REMOVE@
+GNULIB_RENAME = @GNULIB_RENAME@
+GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
+GNULIB_RMDIR = @GNULIB_RMDIR@
GNULIB_RPMATCH = @GNULIB_RPMATCH@
+GNULIB_SCANF = @GNULIB_SCANF@
GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
GNULIB_SLEEP = @GNULIB_SLEEP@
GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_STAT = @GNULIB_STAT@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@
GNULIB_STPCPY = @GNULIB_STPCPY@
GNULIB_STPNCPY = @GNULIB_STPNCPY@
@@ -244,9 +377,12 @@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@
GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@
GNULIB_STRDUP = @GNULIB_STRDUP@
GNULIB_STRERROR = @GNULIB_STRERROR@
+GNULIB_STRERROR_R = @GNULIB_STRERROR_R@
+GNULIB_STRNCAT = @GNULIB_STRNCAT@
GNULIB_STRNDUP = @GNULIB_STRNDUP@
GNULIB_STRNLEN = @GNULIB_STRNLEN@
GNULIB_STRPBRK = @GNULIB_STRPBRK@
+GNULIB_STRPTIME = @GNULIB_STRPTIME@
GNULIB_STRSEP = @GNULIB_STRSEP@
GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@
GNULIB_STRSTR = @GNULIB_STRSTR@
@@ -255,80 +391,193 @@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@
GNULIB_STRTOLL = @GNULIB_STRTOLL@
GNULIB_STRTOULL = @GNULIB_STRTOULL@
GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@
+GNULIB_SYMLINK = @GNULIB_SYMLINK@
+GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
+GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TIMEGM = @GNULIB_TIMEGM@
+GNULIB_TIME_R = @GNULIB_TIME_R@
+GNULIB_TMPFILE = @GNULIB_TMPFILE@
+GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
+GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
+GNULIB_UNLINK = @GNULIB_UNLINK@
+GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
+GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
GNULIB_UNSETENV = @GNULIB_UNSETENV@
+GNULIB_USLEEP = @GNULIB_USLEEP@
+GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@
GNULIB_VASPRINTF = @GNULIB_VASPRINTF@
GNULIB_VDPRINTF = @GNULIB_VDPRINTF@
GNULIB_VFPRINTF = @GNULIB_VFPRINTF@
GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@
+GNULIB_VFSCANF = @GNULIB_VFSCANF@
GNULIB_VPRINTF = @GNULIB_VPRINTF@
GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCPCPY = @GNULIB_WCPCPY@
+GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
+GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
+GNULIB_WCSCAT = @GNULIB_WCSCAT@
+GNULIB_WCSCHR = @GNULIB_WCSCHR@
+GNULIB_WCSCMP = @GNULIB_WCSCMP@
+GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
+GNULIB_WCSCPY = @GNULIB_WCSCPY@
+GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
+GNULIB_WCSDUP = @GNULIB_WCSDUP@
+GNULIB_WCSLEN = @GNULIB_WCSLEN@
+GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
+GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
+GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
+GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
+GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
+GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
+GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
+GNULIB_WCSSPN = @GNULIB_WCSSPN@
+GNULIB_WCSSTR = @GNULIB_WCSSTR@
+GNULIB_WCSTOK = @GNULIB_WCSTOK@
+GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
+GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
GNULIB_WCTOB = @GNULIB_WCTOB@
+GNULIB_WCTOMB = @GNULIB_WCTOMB@
+GNULIB_WCTRANS = @GNULIB_WCTRANS@
+GNULIB_WCTYPE = @GNULIB_WCTYPE@
GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
+GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
+GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
+GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
+GNULIB_WMEMSET = @GNULIB_WMEMSET@
GNULIB_WRITE = @GNULIB_WRITE@
+GNULIB__EXIT = @GNULIB__EXIT@
GREP = @GREP@
HAVE_ATOLL = @HAVE_ATOLL@
HAVE_BTOWC = @HAVE_BTOWC@
-HAVE_CALLOC_POSIX = @HAVE_CALLOC_POSIX@
+HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
+HAVE_CHOWN = @HAVE_CHOWN@
HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
+HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
+HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@
HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
+HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
-HAVE_DECL_STRERROR = @HAVE_DECL_STRERROR@
+HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@
HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@
HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@
HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@
+HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
+HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
HAVE_DPRINTF = @HAVE_DPRINTF@
HAVE_DUP2 = @HAVE_DUP2@
+HAVE_DUP3 = @HAVE_DUP3@
+HAVE_DUPLOCALE = @HAVE_DUPLOCALE@
HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_FACCESSAT = @HAVE_FACCESSAT@
+HAVE_FCHDIR = @HAVE_FCHDIR@
+HAVE_FCHMODAT = @HAVE_FCHMODAT@
+HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
+HAVE_FCNTL = @HAVE_FCNTL@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
+HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
HAVE_FSEEKO = @HAVE_FSEEKO@
+HAVE_FSTATAT = @HAVE_FSTATAT@
HAVE_FSYNC = @HAVE_FSYNC@
HAVE_FTELLO = @HAVE_FTELLO@
HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
-HAVE_GETDOMAINNAME = @HAVE_GETDOMAINNAME@
+HAVE_FUTIMENS = @HAVE_FUTIMENS@
HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@
+HAVE_GETGROUPS = @HAVE_GETGROUPS@
HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@
+HAVE_GETLOGIN = @HAVE_GETLOGIN@
+HAVE_GETOPT_H = @HAVE_GETOPT_H@
HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@
HAVE_GETSUBOPT = @HAVE_GETSUBOPT@
-HAVE_GETUSERSHELL = @HAVE_GETUSERSHELL@
+HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
+HAVE_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWBLANK = @HAVE_ISWBLANK@
HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
+HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
+HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
+HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@
+HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@
HAVE_LCHMOD = @HAVE_LCHMOD@
+HAVE_LCHOWN = @HAVE_LCHOWN@
HAVE_LINK = @HAVE_LINK@
+HAVE_LINKAT = @HAVE_LINKAT@
HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
HAVE_LSTAT = @HAVE_LSTAT@
-HAVE_MALLOC_POSIX = @HAVE_MALLOC_POSIX@
HAVE_MBRLEN = @HAVE_MBRLEN@
HAVE_MBRTOWC = @HAVE_MBRTOWC@
HAVE_MBSINIT = @HAVE_MBSINIT@
+HAVE_MBSLEN = @HAVE_MBSLEN@
HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
+HAVE_MEMCHR = @HAVE_MEMCHR@
HAVE_MEMPCPY = @HAVE_MEMPCPY@
+HAVE_MKDIRAT = @HAVE_MKDIRAT@
HAVE_MKDTEMP = @HAVE_MKDTEMP@
+HAVE_MKFIFO = @HAVE_MKFIFO@
+HAVE_MKFIFOAT = @HAVE_MKFIFOAT@
+HAVE_MKNOD = @HAVE_MKNOD@
+HAVE_MKNODAT = @HAVE_MKNODAT@
+HAVE_MKOSTEMP = @HAVE_MKOSTEMP@
+HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@
+HAVE_MKSTEMP = @HAVE_MKSTEMP@
+HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
+HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
+HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
+HAVE_OPENAT = @HAVE_OPENAT@
HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
+HAVE_PIPE = @HAVE_PIPE@
+HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_PREAD = @HAVE_PREAD@
+HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
+HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RANDOM = @HAVE_RANDOM@
HAVE_RANDOM_H = @HAVE_RANDOM_H@
HAVE_RANDOM_R = @HAVE_RANDOM_R@
HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
HAVE_READLINK = @HAVE_READLINK@
-HAVE_REALLOC_POSIX = @HAVE_REALLOC_POSIX@
+HAVE_READLINKAT = @HAVE_READLINKAT@
+HAVE_REALPATH = @HAVE_REALPATH@
+HAVE_RENAMEAT = @HAVE_RENAMEAT@
HAVE_RPMATCH = @HAVE_RPMATCH@
HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@
HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@
HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@
@@ -338,8 +587,8 @@ HAVE_STPCPY = @HAVE_STPCPY@
HAVE_STPNCPY = @HAVE_STPNCPY@
HAVE_STRCASESTR = @HAVE_STRCASESTR@
HAVE_STRCHRNUL = @HAVE_STRCHRNUL@
-HAVE_STRNDUP = @HAVE_STRNDUP@
HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRPTIME = @HAVE_STRPTIME@
HAVE_STRSEP = @HAVE_STRSEP@
HAVE_STRTOD = @HAVE_STRTOD@
HAVE_STRTOLL = @HAVE_STRTOLL@
@@ -347,24 +596,64 @@ HAVE_STRTOULL = @HAVE_STRTOULL@
HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
+HAVE_SYMLINK = @HAVE_SYMLINK@
+HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_TIMEGM = @HAVE_TIMEGM@
HAVE_UNISTD_H = @HAVE_UNISTD_H@
-HAVE_UNSETENV = @HAVE_UNSETENV@
+HAVE_UNLINKAT = @HAVE_UNLINKAT@
+HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@
+HAVE_USLEEP = @HAVE_USLEEP@
+HAVE_UTIMENSAT = @HAVE_UTIMENSAT@
HAVE_VASPRINTF = @HAVE_VASPRINTF@
HAVE_VDPRINTF = @HAVE_VDPRINTF@
HAVE_WCHAR_H = @HAVE_WCHAR_H@
+HAVE_WCHAR_T = @HAVE_WCHAR_T@
+HAVE_WCPCPY = @HAVE_WCPCPY@
+HAVE_WCPNCPY = @HAVE_WCPNCPY@
HAVE_WCRTOMB = @HAVE_WCRTOMB@
+HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
+HAVE_WCSCAT = @HAVE_WCSCAT@
+HAVE_WCSCHR = @HAVE_WCSCHR@
+HAVE_WCSCMP = @HAVE_WCSCMP@
+HAVE_WCSCOLL = @HAVE_WCSCOLL@
+HAVE_WCSCPY = @HAVE_WCSCPY@
+HAVE_WCSCSPN = @HAVE_WCSCSPN@
+HAVE_WCSDUP = @HAVE_WCSDUP@
+HAVE_WCSLEN = @HAVE_WCSLEN@
+HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
+HAVE_WCSNCAT = @HAVE_WCSNCAT@
+HAVE_WCSNCMP = @HAVE_WCSNCMP@
+HAVE_WCSNCPY = @HAVE_WCSNCPY@
+HAVE_WCSNLEN = @HAVE_WCSNLEN@
HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
+HAVE_WCSPBRK = @HAVE_WCSPBRK@
+HAVE_WCSRCHR = @HAVE_WCSRCHR@
HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
+HAVE_WCSSPN = @HAVE_WCSSPN@
+HAVE_WCSSTR = @HAVE_WCSSTR@
+HAVE_WCSTOK = @HAVE_WCSTOK@
+HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
+HAVE_WCSXFRM = @HAVE_WCSXFRM@
+HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WMEMCHR = @HAVE_WMEMCHR@
+HAVE_WMEMCMP = @HAVE_WMEMCMP@
+HAVE_WMEMCPY = @HAVE_WMEMCPY@
+HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
+HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
HAVE__BOOL = @HAVE__BOOL@
+HAVE__EXIT = @HAVE__EXIT@
INCLUDE_NEXT = @INCLUDE_NEXT@
INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
INSTALL = @INSTALL@
@@ -397,22 +686,40 @@ MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
MSGMERGE = @MSGMERGE@
NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@
+NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
+NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@
+NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@
+NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
+NEXT_AS_FIRST_DIRECTIVE_SELINUX_SELINUX_H = @NEXT_AS_FIRST_DIRECTIVE_SELINUX_SELINUX_H@
+NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@
+NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@
NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@
NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@
NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@
+NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@
NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
NEXT_ERRNO_H = @NEXT_ERRNO_H@
+NEXT_FCNTL_H = @NEXT_FCNTL_H@
+NEXT_GETOPT_H = @NEXT_GETOPT_H@
+NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
+NEXT_LOCALE_H = @NEXT_LOCALE_H@
+NEXT_SELINUX_SELINUX_H = @NEXT_SELINUX_SELINUX_H@
+NEXT_STDARG_H = @NEXT_STDARG_H@
+NEXT_STDDEF_H = @NEXT_STDDEF_H@
NEXT_STDINT_H = @NEXT_STDINT_H@
NEXT_STDIO_H = @NEXT_STDIO_H@
NEXT_STDLIB_H = @NEXT_STDLIB_H@
NEXT_STRING_H = @NEXT_STRING_H@
NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
+NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
+NEXT_TIME_H = @NEXT_TIME_H@
NEXT_UNISTD_H = @NEXT_UNISTD_H@
NEXT_WCHAR_H = @NEXT_WCHAR_H@
NEXT_WCTYPE_H = @NEXT_WCTYPE_H@
@@ -422,18 +729,28 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
POSUB = @POSUB@
+PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
+PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
RANLIB = @RANLIB@
REPLACE_BTOWC = @REPLACE_BTOWC@
+REPLACE_CALLOC = @REPLACE_CALLOC@
+REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
REPLACE_CHOWN = @REPLACE_CHOWN@
REPLACE_CLOSE = @REPLACE_CLOSE@
REPLACE_DPRINTF = @REPLACE_DPRINTF@
-REPLACE_FCHDIR = @REPLACE_FCHDIR@
+REPLACE_DUP = @REPLACE_DUP@
+REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@
+REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
REPLACE_FCLOSE = @REPLACE_FCLOSE@
+REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
REPLACE_FFLUSH = @REPLACE_FFLUSH@
REPLACE_FOPEN = @REPLACE_FOPEN@
REPLACE_FPRINTF = @REPLACE_FPRINTF@
@@ -441,39 +758,101 @@ REPLACE_FPURGE = @REPLACE_FPURGE@
REPLACE_FREOPEN = @REPLACE_FREOPEN@
REPLACE_FSEEK = @REPLACE_FSEEK@
REPLACE_FSEEKO = @REPLACE_FSEEKO@
+REPLACE_FSTAT = @REPLACE_FSTAT@
+REPLACE_FSTATAT = @REPLACE_FSTATAT@
REPLACE_FTELL = @REPLACE_FTELL@
REPLACE_FTELLO = @REPLACE_FTELLO@
+REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@
+REPLACE_FUTIMENS = @REPLACE_FUTIMENS@
REPLACE_GETCWD = @REPLACE_GETCWD@
+REPLACE_GETDELIM = @REPLACE_GETDELIM@
+REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_ISATTY = @REPLACE_ISATTY@
+REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
REPLACE_LCHOWN = @REPLACE_LCHOWN@
+REPLACE_LINK = @REPLACE_LINK@
+REPLACE_LINKAT = @REPLACE_LINKAT@
+REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
+REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
REPLACE_LSEEK = @REPLACE_LSEEK@
REPLACE_LSTAT = @REPLACE_LSTAT@
+REPLACE_MALLOC = @REPLACE_MALLOC@
REPLACE_MBRLEN = @REPLACE_MBRLEN@
REPLACE_MBRTOWC = @REPLACE_MBRTOWC@
REPLACE_MBSINIT = @REPLACE_MBSINIT@
REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@
REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@
REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@
+REPLACE_MBTOWC = @REPLACE_MBTOWC@
REPLACE_MEMCHR = @REPLACE_MEMCHR@
REPLACE_MEMMEM = @REPLACE_MEMMEM@
REPLACE_MKDIR = @REPLACE_MKDIR@
+REPLACE_MKFIFO = @REPLACE_MKFIFO@
+REPLACE_MKNOD = @REPLACE_MKNOD@
REPLACE_MKSTEMP = @REPLACE_MKSTEMP@
+REPLACE_MKTIME = @REPLACE_MKTIME@
+REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@
+REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@
+REPLACE_NULL = @REPLACE_NULL@
REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@
+REPLACE_OPEN = @REPLACE_OPEN@
+REPLACE_OPENAT = @REPLACE_OPENAT@
REPLACE_PERROR = @REPLACE_PERROR@
+REPLACE_POPEN = @REPLACE_POPEN@
+REPLACE_PREAD = @REPLACE_PREAD@
REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PTSNAME = @REPLACE_PTSNAME@
+REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
+REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_REALLOC = @REPLACE_REALLOC@
+REPLACE_REALPATH = @REPLACE_REALPATH@
+REPLACE_REMOVE = @REPLACE_REMOVE@
+REPLACE_RENAME = @REPLACE_RENAME@
+REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
+REPLACE_RMDIR = @REPLACE_RMDIR@
+REPLACE_SETENV = @REPLACE_SETENV@
+REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
+REPLACE_SLEEP = @REPLACE_SLEEP@
REPLACE_SNPRINTF = @REPLACE_SNPRINTF@
REPLACE_SPRINTF = @REPLACE_SPRINTF@
+REPLACE_STAT = @REPLACE_STAT@
+REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
+REPLACE_STPNCPY = @REPLACE_STPNCPY@
REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
REPLACE_STRDUP = @REPLACE_STRDUP@
REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
+REPLACE_STRNCAT = @REPLACE_STRNCAT@
+REPLACE_STRNDUP = @REPLACE_STRNDUP@
+REPLACE_STRNLEN = @REPLACE_STRNLEN@
REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
REPLACE_STRSTR = @REPLACE_STRSTR@
REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
+REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
+REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_TIMEGM = @REPLACE_TIMEGM@
+REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
+REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
+REPLACE_UNLINK = @REPLACE_UNLINK@
+REPLACE_UNLINKAT = @REPLACE_UNLINKAT@
+REPLACE_UNSETENV = @REPLACE_UNSETENV@
+REPLACE_USLEEP = @REPLACE_USLEEP@
+REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@
REPLACE_VASPRINTF = @REPLACE_VASPRINTF@
REPLACE_VDPRINTF = @REPLACE_VDPRINTF@
REPLACE_VFPRINTF = @REPLACE_VFPRINTF@
@@ -483,29 +862,33 @@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@
REPLACE_WCRTOMB = @REPLACE_WCRTOMB@
REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@
REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@
+REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@
REPLACE_WCTOB = @REPLACE_WCTOB@
+REPLACE_WCTOMB = @REPLACE_WCTOMB@
REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
REPLACE_WRITE = @REPLACE_WRITE@
SED_FEATURE_VERSION = @SED_FEATURE_VERSION@
SELINUX_CONTEXT_H = @SELINUX_CONTEXT_H@
-SELINUX_SELINUX_H = @SELINUX_SELINUX_H@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@
SIZE_T_SUFFIX = @SIZE_T_SUFFIX@
+STDARG_H = @STDARG_H@
STDBOOL_H = @STDBOOL_H@
+STDDEF_H = @STDDEF_H@
STDINT_H = @STDINT_H@
STRIP = @STRIP@
-SYS_STAT_H = @SYS_STAT_H@
-SYS_TIME_H = @SYS_TIME_H@
+SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
+TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
+UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
+UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
USE_ACL = @USE_ACL@
USE_NLS = @USE_NLS@
VERSION = @VERSION@
-VOID_UNSETENV = @VOID_UNSETENV@
-WCHAR_H = @WCHAR_H@
WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@
-WCTYPE_H = @WCTYPE_H@
+WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@
+WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@
WINT_T_SUFFIX = @WINT_T_SUFFIX@
XFAIL_TESTS = @XFAIL_TESTS@
XGETTEXT = @XGETTEXT@
@@ -537,6 +920,7 @@ gl_LIBOBJS = @gl_LIBOBJS@
gl_LTLIBOBJS = @gl_LTLIBOBJS@
gltests_LIBOBJS = @gltests_LIBOBJS@
gltests_LTLIBOBJS = @gltests_LTLIBOBJS@
+gltests_WITNESS = @gltests_WITNESS@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
@@ -548,6 +932,7 @@ infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
+lispdir = @lispdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
@@ -582,14 +967,14 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
- && exit 0; \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu doc/Makefile
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits doc/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnits doc/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -607,10 +992,11 @@ $(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
.texi.info:
restore=: && backupdir="$(am__leading_dot)am$$$$" && \
- am__cwd=`pwd` && cd $(srcdir) && \
+ am__cwd=`pwd` && $(am__cd) $(srcdir) && \
rm -rf $$backupdir && mkdir $$backupdir && \
if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
@@ -622,10 +1008,10 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
-o $@ $<; \
then \
rc=0; \
- cd $(srcdir); \
+ $(am__cd) $(srcdir); \
else \
rc=$$?; \
- cd $(srcdir) && \
+ $(am__cd) $(srcdir) && \
$$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
fi; \
rm -rf $$backupdir; exit $$rc
@@ -633,12 +1019,12 @@ $(ACLOCAL_M4): $(am__aclocal_m4_deps)
.texi.dvi:
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
- $(TEXI2DVI) $<
+ $(TEXI2DVI) --clean $<
.texi.pdf:
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
- $(TEXI2PDF) $<
+ $(TEXI2PDF) --clean $<
.texi.html:
rm -rf $(@:.html=.htp)
@@ -678,34 +1064,35 @@ maintainer-clean-vti:
-rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
.dvi.ps:
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
- $(DVIPS) -o $@ $<
+ $(DVIPS) -o $@ $<
uninstall-dvi-am:
@$(NORMAL_UNINSTALL)
- @list='$(DVIS)'; for p in $$list; do \
- f=$(am__strip_dir) \
+ @list='$(DVIS)'; test -n "$(dvidir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \
rm -f "$(DESTDIR)$(dvidir)/$$f"; \
done
uninstall-html-am:
@$(NORMAL_UNINSTALL)
- @list='$(HTMLS)'; for p in $$list; do \
- f=$(am__strip_dir) \
+ @list='$(HTMLS)'; test -n "$(htmldir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \
rm -rf "$(DESTDIR)$(htmldir)/$$f"; \
done
uninstall-info-am:
@$(PRE_UNINSTALL)
- @if test -d '$(DESTDIR)$(infodir)' && \
- (install-info --version && \
- install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+ @if test -d '$(DESTDIR)$(infodir)' && $(am__can_run_installinfo); then \
list='$(INFO_DEPS)'; \
for file in $$list; do \
relfile=`echo "$$file" | sed 's|^.*/||'`; \
echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \
- install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \
+ if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \
+ then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \
done; \
else :; fi
@$(NORMAL_UNINSTALL)
@@ -721,16 +1108,18 @@ uninstall-info-am:
uninstall-pdf-am:
@$(NORMAL_UNINSTALL)
- @list='$(PDFS)'; for p in $$list; do \
- f=$(am__strip_dir) \
+ @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \
rm -f "$(DESTDIR)$(pdfdir)/$$f"; \
done
uninstall-ps-am:
@$(NORMAL_UNINSTALL)
- @list='$(PSS)'; for p in $$list; do \
- f=$(am__strip_dir) \
+ @list='$(PSS)'; test -n "$(psdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \
rm -f "$(DESTDIR)$(psdir)/$$f"; \
done
@@ -747,16 +1136,19 @@ dist-info: $(INFO_DEPS)
for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \
if test -f $$file; then \
relfile=`expr "$$file" : "$$d/\(.*\)"`; \
- test -f $(distdir)/$$relfile || \
- cp -p $$file $(distdir)/$$relfile; \
+ test -f "$(distdir)/$$relfile" || \
+ cp -p $$file "$(distdir)/$$relfile"; \
else :; fi; \
done; \
done
mostlyclean-aminfo:
-rm -rf sed.aux sed.cp sed.cps sed.fn sed.fns sed.ky sed.log sed.op sed.pg \
- sed.tmp sed.toc sed.tp sed.vr sed.vrs sed.dvi sed.pdf sed.ps \
- sed.html
+ sed.tmp sed.toc sed.tp sed.vr sed.vrs
+
+clean-aminfo:
+ -test -z "sed.dvi sed.pdf sed.ps sed.html" \
+ || rm -rf sed.dvi sed.pdf sed.ps sed.html
maintainer-clean-aminfo:
@list='$(INFO_DEPS)'; for i in $$list; do \
@@ -764,59 +1156,72 @@ maintainer-clean-aminfo:
echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
done
-install-man1: $(man1_MANS) $(man_MANS)
+install-man1: $(dist_man_MANS)
@$(NORMAL_INSTALL)
- test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
+ @list1=''; \
+ list2='$(dist_man_MANS)'; \
+ test -n "$(man1dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.1[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+ fi; \
done; \
- for i in $$list; do \
- if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
- else file=$$i; fi; \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 1*) ;; \
- *) ext='1' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
- done
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+ done; }
+
uninstall-man1:
@$(NORMAL_UNINSTALL)
- @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
- l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
- for i in $$l2; do \
- case "$$i" in \
- *.1*) list="$$list $$i" ;; \
- esac; \
- done; \
- for i in $$list; do \
- ext=`echo $$i | sed -e 's/^.*\\.//'`; \
- case "$$ext" in \
- 1*) ;; \
- *) ext='1' ;; \
- esac; \
- inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
- inst=`echo $$inst | sed -e 's/^.*\///'`; \
- inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
- rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
- done
+ @list=''; test -n "$(man1dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.1[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
ctags: CTAGS
CTAGS:
+cscope cscopelist:
+
distdir: $(DISTFILES)
+ @list='$(MANS)'; if test -n "$$list"; then \
+ list=`for p in $$list; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+ if test -n "$$list" && \
+ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+ echo "error: found man pages containing the 'missing help2man' replacement text:" >&2; \
+ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
+ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+ echo " typically 'make maintainer-clean' will remove them" >&2; \
+ exit 1; \
+ else :; fi; \
+ else :; fi
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
@@ -832,13 +1237,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
- cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
- test -f $(distdir)/$$file \
- || cp -p $$d/$$file $(distdir)/$$file \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
@@ -862,23 +1271,29 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
-clean-am: clean-generic mostlyclean-am
+clean-am: clean-aminfo clean-generic mostlyclean-am
distclean: distclean-am
-rm -f Makefile
@@ -902,12 +1317,18 @@ install-dvi: install-dvi-am
install-dvi-am: $(DVIS)
@$(NORMAL_INSTALL)
- test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)"
- @list='$(DVIS)'; for p in $$list; do \
+ @list='$(DVIS)'; test -n "$(dvidir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(dvidir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(dvidir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(dvidir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(dvidir)/$$f"; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dvidir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \
done
install-exec-am:
@@ -915,27 +1336,39 @@ install-html: install-html-am
install-html-am: $(HTMLS)
@$(NORMAL_INSTALL)
- test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)"
- @list='$(HTMLS)'; for p in $$list; do \
+ @list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- if test -d "$$d$$p"; then \
+ $(am__strip_dir) \
+ d2=$$d$$p; \
+ if test -d "$$d2"; then \
echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \
$(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \
- echo " $(INSTALL_DATA) '$$d$$p'/* '$(DESTDIR)$(htmldir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p"/* "$(DESTDIR)$(htmldir)/$$f"; \
+ echo " $(INSTALL_DATA) '$$d2'/* '$(DESTDIR)$(htmldir)/$$f'"; \
+ $(INSTALL_DATA) "$$d2"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \
else \
- echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(htmldir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(htmldir)/$$f"; \
+ list2="$$list2 $$d2"; \
fi; \
- done
+ done; \
+ test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \
+ done; }
install-info: install-info-am
install-info-am: $(INFO_DEPS)
@$(NORMAL_INSTALL)
- test -z "$(infodir)" || $(MKDIR_P) "$(DESTDIR)$(infodir)"
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
- list='$(INFO_DEPS)'; \
+ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(infodir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(infodir)" || exit 1; \
+ fi; \
for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
@@ -943,18 +1376,18 @@ install-info-am: $(INFO_DEPS)
if test -f $$file; then d=.; else d=$(srcdir); fi; \
file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \
for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \
- $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \
+ $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \
if test -f $$ifile; then \
- relfile=`echo "$$ifile" | sed 's|^.*/||'`; \
- echo " $(INSTALL_DATA) '$$ifile' '$(DESTDIR)$(infodir)/$$relfile'"; \
- $(INSTALL_DATA) "$$ifile" "$(DESTDIR)$(infodir)/$$relfile"; \
+ echo "$$ifile"; \
else : ; fi; \
done; \
- done
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done
@$(POST_INSTALL)
- @if (install-info --version && \
- install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
- list='$(INFO_DEPS)'; \
+ @if $(am__can_run_installinfo); then \
+ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \
for file in $$list; do \
relfile=`echo "$$file" | sed 's|^.*/||'`; \
echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\
@@ -967,24 +1400,34 @@ install-pdf: install-pdf-am
install-pdf-am: $(PDFS)
@$(NORMAL_INSTALL)
- test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)"
- @list='$(PDFS)'; for p in $$list; do \
+ @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pdfdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pdfdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(pdfdir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(pdfdir)/$$f"; \
- done
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done
install-ps: install-ps-am
install-ps-am: $(PSS)
@$(NORMAL_INSTALL)
- test -z "$(psdir)" || $(MKDIR_P) "$(DESTDIR)$(psdir)"
- @list='$(PSS)'; for p in $$list; do \
+ @list='$(PSS)'; test -n "$(psdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(psdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(psdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f=$(am__strip_dir) \
- echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(psdir)/$$f'"; \
- $(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(psdir)/$$f"; \
- done
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done
installcheck-am:
maintainer-clean: maintainer-clean-am
@@ -1011,20 +1454,20 @@ uninstall-man: uninstall-man1
.MAKE: install-am install-strip
-.PHONY: all all-am check check-am clean clean-generic dist-hook \
- dist-info distclean distclean-generic distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-html install-html-am install-info \
- install-info-am install-man install-man1 install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-aminfo maintainer-clean-generic \
- maintainer-clean-vti mostlyclean mostlyclean-aminfo \
- mostlyclean-generic mostlyclean-vti pdf pdf-am ps ps-am \
- uninstall uninstall-am uninstall-dvi-am uninstall-html-am \
- uninstall-info-am uninstall-man uninstall-man1 \
- uninstall-pdf-am uninstall-ps-am
+.PHONY: all all-am check check-am clean clean-aminfo clean-generic \
+ dist-hook dist-info distclean distclean-generic distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-man1 \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-aminfo \
+ maintainer-clean-generic maintainer-clean-vti mostlyclean \
+ mostlyclean-aminfo mostlyclean-generic mostlyclean-vti pdf \
+ pdf-am ps ps-am uninstall uninstall-am uninstall-dvi-am \
+ uninstall-html-am uninstall-info-am uninstall-man \
+ uninstall-man1 uninstall-pdf-am uninstall-ps-am
# To produce better quality output, in the example sed
@@ -1048,6 +1491,7 @@ sed.1: $(top_srcdir)/sed/sed.c $(top_srcdir)/configure.ac $(srcdir)/sed.x
dist-hook:
touch $(distdir)/sed.1
+
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/doc/sed-in.texi b/doc/sed-in.texi
index c8bb21d..bf5158c 100644
--- a/doc/sed-in.texi
+++ b/doc/sed-in.texi
@@ -1,7 +1,7 @@
\input texinfo @c -*-texinfo-*-
@c
@c -- Stuff that needs adding: ----------------------------------------------
-@c (document the `;' command-separator)
+@c (nothing!)
@c --------------------------------------------------------------------------
@c Check for consistency: regexps in @code, text that they match in @samp.
@c
@@ -280,6 +280,7 @@ A length of 0 (zero) means to never wrap long lines. If
not specified, it is taken to be 70.
@item --posix
+@opindex --posix
@cindex @value{SSEDEXT}, disabling
@value{SSED} includes several extensions to @acronym{POSIX}
sed. In order to simplify writing portable scripts, this
@@ -346,6 +347,8 @@ Perl-style regular expressions}.
@item -s
@itemx --separate
+@opindex -s
+@opindex --separate
@cindex Working on separate files
By default, @command{sed} will consider the files specified on the
command line as a single continuous long stream. This @value{SSED}
@@ -366,6 +369,16 @@ Buffer both input and output as minimally as practical.
the likes of @samp{tail -f}, and you wish to see the transformed
output as soon as possible.)
+@item -z
+@itemx --null-data
+@itemx --zero-terminated
+@opindex -z
+@opindex --null-data
+@opindex --zero-terminated
+Treat the input as a set of lines, each terminated by a zero byte
+(the ASCII @samp{NUL} character) instead of a newline. This option can
+be used with commands like @samp{sort -z} and @samp{find -print0}
+to process arbitrary file names.
@end table
If no @option{-e}, @option{-f}, @option{--expression}, or @option{--file}
@@ -396,6 +409,14 @@ This document will refer to ``the'' @command{sed} script;
this is understood to mean the in-order catenation
of all of the @var{script}s and @var{script-file}s passed in.
+Commands within a @var{script} or @var{script-file} can be
+separated by semicolons (@code{;}) or newlines (ASCII 10).
+Some commands, due to their syntax, cannot be followed by semicolons
+working as command separators and thus should be terminated
+with newlines or be placed at the end of a @var{script} or @var{script-file}.
+Commands can also be preceded with optional non-significant
+whitespace characters.
+
Each @code{sed} command consists of an optional address or
address range, followed by a one-character command name
and any additional command-specific code.
@@ -424,7 +445,7 @@ and any additional command-specific code.
and the auxiliary @emph{hold} space. Both are initially empty.
@command{sed} operates by performing the following cycle on each
-lines of input: first, @command{sed} reads one line from the input
+line of input: first, @command{sed} reads one line from the input
stream, removes any trailing newline, and places it in the pattern space.
Then commands are executed; each command can have an address associated
to it: addresses are a kind of condition code, and a command is only
@@ -521,15 +542,16 @@ a case-insensitive manner.
@item /@var{regexp}/M
@itemx \%@var{regexp}%M
-@ifset PERL
@cindex @value{SSEDEXT}, @code{M} modifier
-@end ifset
+@ifset PERL
@cindex Perl-style regular expressions, multiline
+@end ifset
The @code{M} modifier to regular-expression matching is a @value{SSED}
-extension which causes @code{^} and @code{$} to match respectively
-(in addition to the normal behavior) the empty string after a newline,
-and the empty string before a newline. There are special character
-sequences
+extension which directs @value{SSED} to match the regular expression
+in @cite{multi-line} mode. The modifier causes @code{^} and @code{$} to
+match respectively (in addition to the normal behavior) the empty string
+after a newline, and the empty string before a newline. There are
+special character sequences
@ifset PERL
(@code{\A} and @code{\Z} in Perl mode, @code{\`} and @code{\'}
in basic or extended regular expression modes)
@@ -538,7 +560,12 @@ in basic or extended regular expression modes)
(@code{\`} and @code{\'})
@end ifclear
which always match the beginning or the end of the buffer.
-@code{M} stands for @cite{multi-line}.
+In addition,
+@ifset PERL
+just like in Perl mode without the @code{S} modifier,
+@end ifset
+the period character does not match a new-line character in
+multi-line mode.
@ifset PERL
@item /@var{regexp}/S
@@ -835,7 +862,7 @@ string), while the second matches only strings containing
at least one character.
@item ^main.*(.*)
-his matches a string starting with @samp{main},
+This matches a string starting with @samp{main},
followed by an opening and closing
parenthesis. The @samp{n}, @samp{(} and @samp{)} need not
be adjacent.
@@ -1004,6 +1031,32 @@ to uppercase,
Stop case conversion started by @code{\L} or @code{\U}.
@end table
+When the @code{g} flag is being used, case conversion does not
+propagate from one occurrence of the regular expression to
+another. For example, when the following command is executed
+with @samp{a-b-} in pattern space:
+@example
+s/\(b\?\)-/x\u\1/g
+@end example
+
+@noindent
+the output is @samp{axxB}. When replacing the first @samp{-},
+the @samp{\u} sequence only affects the empty replacement of
+@samp{\1}. It does not affect the @code{x} character that is
+added to pattern space when replacing @code{b-} with @code{xB}.
+
+On the other hand, @code{\l} and @code{\u} do affect the remainder
+of the replacement text if they are followed by an empty substitution.
+With @samp{a-b-} in pattern space, the following command:
+@example
+s/\(b\?\)-/\u\1x/g
+@end example
+
+@noindent
+will replace @samp{-} with @samp{X} (uppercase) and @samp{b-} with
+@samp{Bx}. If this behavior is undesirable, you can prevent it by
+adding a @samp{\E} sequence---after @samp{\1} in this case.
+
To include a literal @code{\}, @code{&}, or newline in the final
replacement, be sure to precede the desired @code{\}, @code{&},
or newline in the @var{replacement} with a @code{\}.
@@ -1091,10 +1144,11 @@ case-insensitive manner.
@cindex Perl-style regular expressions, multiline
@end ifset
The @code{M} modifier to regular-expression matching is a @value{SSED}
-extension which causes @code{^} and @code{$} to match respectively
-(in addition to the normal behavior) the empty string after a newline,
-and the empty string before a newline. There are special character
-sequences
+extension which directs @value{SSED} to match the regular expression
+in @cite{multi-line} mode. The modifier causes @code{^} and @code{$} to
+match respectively (in addition to the normal behavior) the empty string
+after a newline, and the empty string before a newline. There are
+special character sequences
@ifset PERL
(@code{\A} and @code{\Z} in Perl mode, @code{\`} and @code{\'}
in basic or extended regular expression modes)
@@ -1103,7 +1157,12 @@ in basic or extended regular expression modes)
(@code{\`} and @code{\'})
@end ifclear
which always match the beginning or the end of the buffer.
-@code{M} stands for @cite{multi-line}.
+In addition,
+@ifset PERL
+just like in Perl mode without the @code{S} modifier,
+@end ifset
+the period character does not match a new-line character in
+multi-line mode.
@ifset PERL
@item S
@@ -1259,19 +1318,18 @@ error, and @file{/dev/stdout}, which writes to the standard
output.@footnote{This is equivalent to @code{p} unless the @option{-i}
option is being used.}
-The file will be created (or truncated) before the
-first input line is read; all @code{w} commands
-(including instances of @code{w} flag on successful @code{s} commands)
-which refer to the same @var{filename} are output without
-closing and reopening the file.
+The file will be created (or truncated) before the first input line is
+read; all @code{w} commands (including instances of the @code{w} flag
+on successful @code{s} commands) which refer to the same @var{filename}
+are output without closing and reopening the file.
@item D
@findex D (delete first line) command
@cindex Delete first line from pattern space
-Delete text in the pattern space up to the first newline.
-If any text is left, restart cycle with the resultant
-pattern space (without reading a new line of input),
-otherwise start a normal new cycle.
+If pattern space contains no newline, start a normal new cycle as if
+the @code{d} command was issued. Otherwise, delete text in the pattern
+space up to the first newline, and restart cycle with the resultant
+pattern space, without reading a new line of input.
@item N
@findex N (append Next line) command
@@ -1383,13 +1441,24 @@ replaces the pattern space with the output; a trailing newline
is suppressed.
If a parameter is specified, instead, the @code{e} command
-interprets it as a command and sends its output to the output stream
-(like @code{r} does). The command can run across multiple
-lines, all but the last ending with a back-slash.
+interprets it as a command and sends its output to the output stream.
+The command can run across multiple lines, all but the last ending with
+a back-slash.
In both cases, the results are undefined if the command to be
executed contains a @sc{nul} character.
+Note that, unlike the @code{r} command, the output of the command will
+be printed immediately; the @code{r} command instead delays the output
+to the end of the current cycle.
+
+@item F
+@findex F (File name) command
+@cindex Printing file name
+@cindex File name, printing
+Print out the file name of the current input file (with a trailing
+newline).
+
@item L @var{n}
@findex L (fLow paragraphs) command
@cindex Reformat pattern space
@@ -1712,7 +1781,7 @@ and then again substituting underscores with zeros.
/[^0-9]/ d
-# replace all leading 9s by _ (any other character except digits, could
+# replace all trailing 9s by _ (any other character except digits, could
# be used)
:d
s/9\(_*\)$/_\1/
@@ -1720,9 +1789,6 @@ td
# incr last digit only. The first line adds a most-significant
# digit of 1 if we have to add a digit.
-#
-# The @code{tn} commands are not necessary, but make the thing
-# faster
s/^\(_*\)$/1\1/; tn
s/8\(_*\)$/9\1/; tn
@@ -1841,9 +1907,12 @@ x
G
# check if converted file name is equal to original file name,
-# if it is, do not print nothing
+# if it is, do not print anything
/^.*\/\(.*\)\n\1/b
+# escape special characters for the shell
+s/["$`\\]/\\&/g
+
# now, transform path/fromfile\n, into
# mv path/fromfile path/tofile and print it
s/^\(.*\/\)\(.*\)\n\(.*\)$/mv "\1\2" "\1\3"/p
@@ -2621,8 +2690,7 @@ for the @code{sed-users} mailing list.
@chapter Reporting Bugs
@cindex Bugs, reporting
-Email bug reports to @email{bonzini@@gnu.org}.
-Be sure to include the word ``sed'' somewhere in the @code{Subject:} field.
+Email bug reports to @email{bug-sed@@gnu.org}.
Also, please include the output of @samp{sed --version} in the body
of your report if at all possible.
@@ -2808,10 +2876,12 @@ the @env{LC_COLLATE} and @env{LC_CTYPE} environment variables to @samp{C}.
The only difference between basic and extended regular expressions is in
the behavior of a few characters: @samp{?}, @samp{+}, parentheses,
-and braces (@samp{@{@}}). While basic regular expressions require
-these to be escaped if you want them to behave as special characters,
-when using extended regular expressions you must escape them if
-you want them @emph{to match a literal character}.
+braces (@samp{@{@}}), and @samp{|}. While basic regular expressions
+require these to be escaped if you want them to behave as special
+characters, when using extended regular expressions you must escape
+them if you want them @emph{to match a literal character}. @samp{|}
+is special here because @samp{\|} is a GNU extension -- standard
+basic regular expressions do not provide its functionality.
@noindent
Examples:
diff --git a/doc/sed.1 b/doc/sed.1
index d1d9d22..440287a 100644
--- a/doc/sed.1
+++ b/doc/sed.1
@@ -1,5 +1,5 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.28.
-.TH SED "1" "June 2009" "sed version 4.2.1" "User Commands"
+.TH SED "1" "December 2012" "sed 4.2.2" "User Commands"
.SH NAME
sed \- stream editor for filtering and transforming text
.SH SYNOPSIS
@@ -38,7 +38,7 @@ follow symlinks when processing in place
.HP
\fB\-i[SUFFIX]\fR, \fB\-\-in\-place\fR[=\fISUFFIX\fR]
.IP
-edit files in place (makes backup if extension supplied)
+edit files in place (makes backup if SUFFIX supplied)
.HP
\fB\-l\fR N, \fB\-\-line\-length\fR=\fIN\fR
.IP
@@ -61,6 +61,10 @@ long stream.
.IP
load minimal amounts of data from the input files and flush
the output buffers more often
+.HP
+\fB\-z\fR, \fB\-\-null\-data\fR
+.IP
+separate lines by NUL characters
.TP
\fB\-\-help\fR
display this help and exit
@@ -75,7 +79,7 @@ specified, then the standard input is read.
.PP
GNU sed home page: <http://www.gnu.org/software/sed/>.
General help using GNU software: <http://www.gnu.org/gethelp/>.
-E-mail bug reports to: <bug-gnu-utils@gnu.org>.
+E-mail bug reports to: <bug-sed@gnu.org>.
Be sure to include the word ``sed'' somewhere in the ``Subject:'' field.
.SH "COMMAND SYNOPSIS"
This is just a brief synopsis of \*(sd commands to serve as
@@ -151,25 +155,6 @@ if
.I label
is omitted, branch to end of script.
.TP
-.RI t\ label
-If a s/// has done a successful substitution since the
-last input line was read and since the last t or T
-command, then branch to
-.IR label ;
-if
-.I label
-is omitted, branch to end of script.
-.TP
-.RI T\ label
-If no s/// has done a successful substitution since the
-last input line was read and since the last t or T
-command, then branch to
-.IR label ;
-if
-.I label
-is omitted, branch to end of script. This is a GNU
-extension.
-.TP
c \e
.TP
.I text
@@ -182,9 +167,10 @@ Delete pattern space.
Start next cycle.
.TP
D
-Delete up to the first embedded newline in the pattern space.
-Start next cycle, but skip reading from the input
-if there is still data in the pattern space.
+If pattern space contains no newline, start a normal new cycle as if
+the d command was issued. Otherwise, delete text in the pattern
+space up to the first newline, and restart cycle with the resultant
+pattern space, without reading a new line of input.
.TP
h H
Copy/append pattern space to hold space.
@@ -192,9 +178,6 @@ Copy/append pattern space to hold space.
g G
Copy/append hold space to pattern space.
.TP
-x
-Exchange the contents of the hold and pattern spaces.
-.TP
l
List out the current line in a ``visually unambiguous'' form.
.TP
@@ -229,6 +212,25 @@ and the special escapes \e1 through \e9 to refer to the
corresponding matching sub-expressions in the
.IR regexp .
.TP
+.RI t\ label
+If a s/// has done a successful substitution since the
+last input line was read and since the last t or T
+command, then branch to
+.IR label ;
+if
+.I label
+is omitted, branch to end of script.
+.TP
+.RI T\ label
+If no s/// has done a successful substitution since the
+last input line was read and since the last t or T
+command, then branch to
+.IR label ;
+if
+.I label
+is omitted, branch to end of script. This is a GNU
+extension.
+.TP
.RI w\ filename
Write the current pattern space to
.IR filename .
@@ -238,6 +240,9 @@ Write the first line of the current pattern space to
.IR filename .
This is a GNU extension.
.TP
+x
+Exchange the contents of the hold and pattern spaces.
+.TP
.RI y/ source / dest /
Transliterate the characters in the pattern space which appear in
.I source
@@ -284,7 +289,10 @@ The following address types are supported:
.TP
.I number
Match only the specified line
-.IR number .
+.IR number
+(which increments cumulatively across files, unless the
+.B -s
+option is specified on the command line).
.TP
.IR first ~ step
Match every
@@ -362,21 +370,22 @@ and other sequences.
.SH BUGS
.PP
E-mail bug reports to
-.BR bonzini@gnu.org .
-Be sure to include the word ``sed'' somewhere in the ``Subject:'' field.
+.BR bug-sed@gnu.org .
Also, please include the output of ``sed --version'' in the body
of your report if at all possible.
-.SH COPYRIGHT
-Copyright \(co 2009 Free Software Foundation, Inc.
-.br
-This is free software; see the source for copying conditions. There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,
-to the extent permitted by law.
-.PP
+.SH AUTHOR
+Written by Jay Fenlason, Tom Lord, Ken Pizzini,
+and Paolo Bonzini.
GNU sed home page: <http://www.gnu.org/software/sed/>.
General help using GNU software: <http://www.gnu.org/gethelp/>.
-E-mail bug reports to: <bug-gnu-utils@gnu.org>.
+E-mail bug reports to: <bug-sed@gnu.org>.
Be sure to include the word ``sed'' somewhere in the ``Subject:'' field.
+.SH COPYRIGHT
+Copyright \(co 2012 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
+.br
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.
.SH "SEE ALSO"
.BR awk (1),
.BR ed (1),
diff --git a/doc/sed.info b/doc/sed.info
index 5e1c9ae..38235da 100644
--- a/doc/sed.info
+++ b/doc/sed.info
@@ -1,4 +1,4 @@
-This is ../../doc/sed.info, produced by makeinfo version 4.12 from
+This is ../../doc/sed.info, produced by makeinfo version 4.13 from
../../doc//config.texi.
INFO-DIR-SECTION Text creation and manipulation
@@ -7,7 +7,7 @@ START-INFO-DIR-ENTRY
END-INFO-DIR-ENTRY
- This file documents version 4.2.1 of GNU `sed', a stream editor.
+ This file documents version 4.2.2 of GNU `sed', a stream editor.
Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004 Free Software
Foundation, Inc.
@@ -30,7 +30,7 @@ File: sed.info, Node: Top, Next: Introduction, Up: (dir)
sed, a stream editor
********************
-This file documents version 4.2.1 of GNU `sed', a stream editor.
+This file documents version 4.2.2 of GNU `sed', a stream editor.
Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004 Free Software
Foundation, Inc.
@@ -245,6 +245,13 @@ specifies a script to be executed, that is if neither of the `-e' and
-f', and you wish to see the transformed output as soon as
possible.)
+`-z'
+`--null-data'
+`--zero-terminated'
+ Treat the input as a set of lines, each terminated by a zero byte
+ (the ASCII `NUL' character) instead of a newline. This option can
+ be used with commands like `sort -z' and `find -print0' to process
+ arbitrary file names.
If no `-e', `-f', `--expression', or `--file' options are given on
the command-line, then the first non-option argument on the command
@@ -277,6 +284,13 @@ document will refer to "the" `sed' script; this is understood to mean
the in-order catenation of all of the SCRIPTs and SCRIPT-FILEs passed
in.
+ Commands within a SCRIPT or SCRIPT-FILE can be separated by
+semicolons (`;') or newlines (ASCII 10). Some commands, due to their
+syntax, cannot be followed by semicolons working as command separators
+and thus should be terminated with newlines or be placed at the end of
+a SCRIPT or SCRIPT-FILE. Commands can also be preceded with optional
+non-significant whitespace characters.
+
Each `sed' command consists of an optional address or address range,
followed by a one-character command name and any additional
command-specific code.
@@ -302,7 +316,7 @@ File: sed.info, Node: Execution Cycle, Next: Addresses, Up: sed Programs
`sed' maintains two data buffers: the active _pattern_ space, and the
auxiliary _hold_ space. Both are initially empty.
- `sed' operates by performing the following cycle on each lines of
+ `sed' operates by performing the following cycle on each line of
input: first, `sed' reads one line from the input stream, removes any
trailing newline, and places it in the pattern space. Then commands
are executed; each command can have an address associated to it:
@@ -382,11 +396,13 @@ Addresses in a `sed' script can be in any of the following forms:
`/REGEXP/M'
`\%REGEXP%M'
The `M' modifier to regular-expression matching is a GNU `sed'
- extension which causes `^' and `$' to match respectively (in
- addition to the normal behavior) the empty string after a newline,
- and the empty string before a newline. There are special character
- sequences (`\`' and `\'') which always match the beginning or the
- end of the buffer. `M' stands for `multi-line'.
+ extension which directs GNU `sed' to match the regular expression
+ in `multi-line' mode. The modifier causes `^' and `$' to match
+ respectively (in addition to the normal behavior) the empty string
+ after a newline, and the empty string before a newline. There are
+ special character sequences (`\`' and `\'') which always match the
+ beginning or the end of the buffer. In addition, the period
+ character does not match a new-line character in multi-line mode.
If no addresses are given, then all lines are matched; if one
@@ -604,7 +620,7 @@ Examples:
second matches only strings containing at least one character.
`^main.*(.*)'
- his matches a string starting with `main', followed by an opening
+ This matches a string starting with `main', followed by an opening
and closing parenthesis. The `n', `(' and `)' need not be
adjacent.
@@ -737,6 +753,24 @@ follows:
`\E'
Stop case conversion started by `\L' or `\U'.
+ When the `g' flag is being used, case conversion does not propagate
+from one occurrence of the regular expression to another. For example,
+when the following command is executed with `a-b-' in pattern space:
+ s/\(b\?\)-/x\u\1/g
+
+the output is `axxB'. When replacing the first `-', the `\u' sequence
+only affects the empty replacement of `\1'. It does not affect the `x'
+character that is added to pattern space when replacing `b-' with `xB'.
+
+ On the other hand, `\l' and `\u' do affect the remainder of the
+replacement text if they are followed by an empty substitution. With
+`a-b-' in pattern space, the following command:
+ s/\(b\?\)-/\u\1x/g
+
+will replace `-' with `X' (uppercase) and `b-' with `Bx'. If this
+behavior is undesirable, you can prevent it by adding a `\E'
+sequence--after `\1' in this case.
+
To include a literal `\', `&', or newline in the final replacement,
be sure to precede the desired `\', `&', or newline in the REPLACEMENT
with a `\'.
@@ -794,11 +828,13 @@ FLAGS:
`M'
`m'
The `M' modifier to regular-expression matching is a GNU `sed'
- extension which causes `^' and `$' to match respectively (in
- addition to the normal behavior) the empty string after a newline,
- and the empty string before a newline. There are special character
- sequences (`\`' and `\'') which always match the beginning or the
- end of the buffer. `M' stands for `multi-line'.
+ extension which directs GNU `sed' to match the regular expression
+ in `multi-line' mode. The modifier causes `^' and `$' to match
+ respectively (in addition to the normal behavior) the empty string
+ after a newline, and the empty string before a newline. There are
+ special character sequences (`\`' and `\'') which always match the
+ beginning or the end of the buffer. In addition, the period
+ character does not match a new-line character in multi-line mode.
---------- Footnotes ----------
@@ -899,15 +935,15 @@ commands.
which writes to the standard output.(1)
The file will be created (or truncated) before the first input
- line is read; all `w' commands (including instances of `w' flag on
- successful `s' commands) which refer to the same FILENAME are
+ line is read; all `w' commands (including instances of the `w' flag
+ on successful `s' commands) which refer to the same FILENAME are
output without closing and reopening the file.
`D'
- Delete text in the pattern space up to the first newline. If any
- text is left, restart cycle with the resultant pattern space
- (without reading a new line of input), otherwise start a normal
- new cycle.
+ If pattern space contains no newline, start a normal new cycle as
+ if the `d' command was issued. Otherwise, delete text in the
+ pattern space up to the first newline, and restart cycle with the
+ resultant pattern space, without reading a new line of input.
`N'
Add a newline to the pattern space, then append the next line of
@@ -986,13 +1022,21 @@ are required quite often, yet are unsupported by standard `sed's.
space with the output; a trailing newline is suppressed.
If a parameter is specified, instead, the `e' command interprets
- it as a command and sends its output to the output stream (like
- `r' does). The command can run across multiple lines, all but the
- last ending with a back-slash.
+ it as a command and sends its output to the output stream. The
+ command can run across multiple lines, all but the last ending with
+ a back-slash.
In both cases, the results are undefined if the command to be
executed contains a NUL character.
+ Note that, unlike the `r' command, the output of the command will
+ be printed immediately; the `r' command instead delays the output
+ to the end of the current cycle.
+
+`F'
+ Print out the file name of the current input file (with a trailing
+ newline).
+
`L N'
This GNU `sed' extension fills and joins lines in pattern space to
produce output lines of (at most) N characters, like `fmt' does;
@@ -1250,7 +1294,7 @@ underscores with zeros.
/[^0-9]/ d
- # replace all leading 9s by _ (any other character except digits, could
+ # replace all trailing 9s by _ (any other character except digits, could
# be used)
:d
s/9\(_*\)$/_\1/
@@ -1258,9 +1302,6 @@ underscores with zeros.
# incr last digit only. The first line adds a most-significant
# digit of 1 if we have to add a digit.
- #
- # The `tn' commands are not necessary, but make the thing
- # faster
s/^\(_*\)$/1\1/; tn
s/8\(_*\)$/9\1/; tn
@@ -1381,9 +1422,12 @@ parameterized using shell variables and proper quoting.
G
# check if converted file name is equal to original file name,
- # if it is, do not print nothing
+ # if it is, do not print anything
/^.*\/\(.*\)\n\1/b
+ # escape special characters for the shell
+ s/["$`\\]/\\&/g
+
# now, transform path/fromfile\n, into
# mv path/fromfile path/tofile and print it
s/^\(.*\/\)\(.*\)\n\(.*\)$/mv "\1\2" "\1\3"/p
@@ -2042,8 +2086,7 @@ File: sed.info, Node: Reporting Bugs, Next: Extended regexps, Prev: Other Res
7 Reporting Bugs
****************
-Email bug reports to <bonzini@gnu.org>. Be sure to include the word
-"sed" somewhere in the `Subject:' field. Also, please include the
+Email bug reports to <bug-sed@gnu.org>. Also, please include the
output of `sed --version' in the body of your report if at all possible.
Please do not send a bug report like this:
@@ -2189,11 +2232,13 @@ Appendix A Extended regular expressions
***************************************
The only difference between basic and extended regular expressions is in
-the behavior of a few characters: `?', `+', parentheses, and braces
-(`{}'). While basic regular expressions require these to be escaped if
-you want them to behave as special characters, when using extended
+the behavior of a few characters: `?', `+', parentheses, braces (`{}'),
+and `|'. While basic regular expressions require these to be escaped
+if you want them to behave as special characters, when using extended
regular expressions you must escape them if you want them _to match a
-literal character_.
+literal character_. `|' is special here because `\|' is a GNU
+extension - standard basic regular expressions do not provide its
+functionality.
Examples:
`abc?'
@@ -2229,10 +2274,10 @@ exception of the `sed' commands and command-line options.
* Menu:
-* 0 address: Reporting Bugs. (line 103)
+* 0 address: Reporting Bugs. (line 102)
* Additional reading about sed: Other Resources. (line 6)
-* ADDR1,+N: Addresses. (line 78)
-* ADDR1,~N: Addresses. (line 78)
+* ADDR1,+N: Addresses. (line 80)
+* ADDR1,~N: Addresses. (line 80)
* Address, as a regular expression: Addresses. (line 27)
* Address, last line: Addresses. (line 22)
* Address, numeric: Addresses. (line 8)
@@ -2242,18 +2287,18 @@ exception of the `sed' commands and command-line options.
* Append pattern space to hold space: Other Commands. (line 117)
* Appending text after a line: Other Commands. (line 27)
* Backreferences, in regular expressions: The "s" Command. (line 19)
-* Branch to a label, if s/// failed: Extended Commands. (line 63)
+* Branch to a label, if s/// failed: Extended Commands. (line 71)
* Branch to a label, if s/// succeeded: Programming Commands.
(line 22)
* Branch to a label, unconditionally: Programming Commands.
(line 18)
* Buffer spaces, pattern and hold: Execution Cycle. (line 6)
* Bugs, reporting: Reporting Bugs. (line 6)
-* Case-insensitive matching: The "s" Command. (line 94)
+* Case-insensitive matching: The "s" Command. (line 112)
* Caveat -- #n on first line: Common Commands. (line 20)
* Command groups: Common Commands. (line 50)
* Comments, in scripts: Common Commands. (line 12)
-* Conditional branch <1>: Extended Commands. (line 63)
+* Conditional branch <1>: Extended Commands. (line 71)
* Conditional branch: Programming Commands.
(line 22)
* Copy hold space into pattern space: Other Commands. (line 121)
@@ -2261,78 +2306,80 @@ exception of the `sed' commands and command-line options.
* Delete first line from pattern space: Other Commands. (line 99)
* Disabling autoprint, from command line: Invoking sed. (line 34)
* empty regular expression: Addresses. (line 31)
-* Emptying pattern space <1>: Reporting Bugs. (line 130)
-* Emptying pattern space: Extended Commands. (line 85)
+* Emptying pattern space <1>: Reporting Bugs. (line 129)
+* Emptying pattern space: Extended Commands. (line 93)
* Evaluate Bourne-shell commands: Extended Commands. (line 12)
* Evaluate Bourne-shell commands, after substitution: The "s" Command.
- (line 85)
+ (line 103)
* Exchange hold space with pattern space: Other Commands. (line 129)
-* Excluding lines: Addresses. (line 101)
+* Excluding lines: Addresses. (line 103)
* Extended regular expressions, choosing: Invoking sed. (line 113)
* Extended regular expressions, syntax: Extended regexps. (line 6)
-* Files to be processed as input: Invoking sed. (line 141)
+* File name, printing: Extended Commands. (line 30)
+* Files to be processed as input: Invoking sed. (line 148)
* Flow of control in scripts: Programming Commands.
(line 11)
-* Global substitution: The "s" Command. (line 51)
+* Global substitution: The "s" Command. (line 69)
* GNU extensions, /dev/stderr file <1>: Other Commands. (line 88)
-* GNU extensions, /dev/stderr file: The "s" Command. (line 78)
-* GNU extensions, /dev/stdin file <1>: Extended Commands. (line 53)
+* GNU extensions, /dev/stderr file: The "s" Command. (line 96)
+* GNU extensions, /dev/stdin file <1>: Extended Commands. (line 61)
* GNU extensions, /dev/stdin file: Other Commands. (line 78)
* GNU extensions, /dev/stdout file <1>: Other Commands. (line 88)
-* GNU extensions, /dev/stdout file <2>: The "s" Command. (line 78)
-* GNU extensions, /dev/stdout file: Invoking sed. (line 149)
-* GNU extensions, 0 address <1>: Reporting Bugs. (line 103)
-* GNU extensions, 0 address: Addresses. (line 78)
-* GNU extensions, 0,ADDR2 addressing: Addresses. (line 78)
-* GNU extensions, ADDR1,+N addressing: Addresses. (line 78)
-* GNU extensions, ADDR1,~N addressing: Addresses. (line 78)
-* GNU extensions, branch if s/// failed: Extended Commands. (line 63)
+* GNU extensions, /dev/stdout file <2>: The "s" Command. (line 96)
+* GNU extensions, /dev/stdout file: Invoking sed. (line 156)
+* GNU extensions, 0 address <1>: Reporting Bugs. (line 102)
+* GNU extensions, 0 address: Addresses. (line 80)
+* GNU extensions, 0,ADDR2 addressing: Addresses. (line 80)
+* GNU extensions, ADDR1,+N addressing: Addresses. (line 80)
+* GNU extensions, ADDR1,~N addressing: Addresses. (line 80)
+* GNU extensions, branch if s/// failed: Extended Commands. (line 71)
* GNU extensions, case modifiers in s commands: The "s" Command.
(line 23)
* GNU extensions, checking for their presence: Extended Commands.
- (line 69)
+ (line 77)
* GNU extensions, disabling: Invoking sed. (line 81)
-* GNU extensions, emptying pattern space <1>: Reporting Bugs. (line 130)
-* GNU extensions, emptying pattern space: Extended Commands. (line 85)
+* GNU extensions, emptying pattern space <1>: Reporting Bugs. (line 129)
+* GNU extensions, emptying pattern space: Extended Commands. (line 93)
* GNU extensions, evaluating Bourne-shell commands <1>: Extended Commands.
(line 12)
* GNU extensions, evaluating Bourne-shell commands: The "s" Command.
- (line 85)
+ (line 103)
* GNU extensions, extended regular expressions: Invoking sed. (line 113)
* GNU extensions, g and NUMBER modifier interaction in s command: The "s" Command.
- (line 57)
-* GNU extensions, I modifier <1>: The "s" Command. (line 94)
+ (line 75)
+* GNU extensions, I modifier <1>: The "s" Command. (line 112)
* GNU extensions, I modifier: Addresses. (line 49)
-* GNU extensions, in-place editing <1>: Reporting Bugs. (line 85)
+* GNU extensions, in-place editing <1>: Reporting Bugs. (line 84)
* GNU extensions, in-place editing: Invoking sed. (line 51)
-* GNU extensions, L command: Extended Commands. (line 26)
-* GNU extensions, M modifier: The "s" Command. (line 99)
+* GNU extensions, L command: Extended Commands. (line 34)
+* GNU extensions, M modifier <1>: The "s" Command. (line 117)
+* GNU extensions, M modifier: Addresses. (line 54)
* GNU extensions, modifiers and the empty regular expression: Addresses.
(line 31)
* GNU extensions, N~M addresses: Addresses. (line 13)
-* GNU extensions, quitting silently: Extended Commands. (line 36)
-* GNU extensions, R command: Extended Commands. (line 53)
+* GNU extensions, quitting silently: Extended Commands. (line 44)
+* GNU extensions, R command: Extended Commands. (line 61)
* GNU extensions, reading a file a line at a time: Extended Commands.
- (line 53)
-* GNU extensions, reformatting paragraphs: Extended Commands. (line 26)
+ (line 61)
+* GNU extensions, reformatting paragraphs: Extended Commands. (line 34)
* GNU extensions, returning an exit code <1>: Extended Commands.
- (line 36)
+ (line 44)
* GNU extensions, returning an exit code: Common Commands. (line 30)
* GNU extensions, setting line length: Other Commands. (line 65)
-* GNU extensions, special escapes <1>: Reporting Bugs. (line 78)
+* GNU extensions, special escapes <1>: Reporting Bugs. (line 77)
* GNU extensions, special escapes: Escapes. (line 6)
-* GNU extensions, special two-address forms: Addresses. (line 78)
+* GNU extensions, special two-address forms: Addresses. (line 80)
* GNU extensions, subprocesses <1>: Extended Commands. (line 12)
-* GNU extensions, subprocesses: The "s" Command. (line 85)
+* GNU extensions, subprocesses: The "s" Command. (line 103)
* GNU extensions, to basic regular expressions <1>: Reporting Bugs.
- (line 51)
+ (line 50)
* GNU extensions, to basic regular expressions: Regular Expressions.
(line 26)
* GNU extensions, two addresses supported by most commands: Other Commands.
(line 25)
* GNU extensions, unlimited line length: Limitations. (line 6)
* GNU extensions, writing first line to a file: Extended Commands.
- (line 80)
+ (line 88)
* Goto, in scripts: Programming Commands.
(line 18)
* Greedy regular expression matching: Regular Expressions. (line 143)
@@ -2343,7 +2390,7 @@ exception of the `sed' commands and command-line options.
* Hold space, copying pattern space into: Other Commands. (line 113)
* Hold space, definition: Execution Cycle. (line 6)
* Hold space, exchange with pattern space: Other Commands. (line 129)
-* In-place editing: Reporting Bugs. (line 85)
+* In-place editing: Reporting Bugs. (line 84)
* In-place editing, activating: Invoking sed. (line 51)
* In-place editing, Perl-style backup file names: Invoking sed.
(line 62)
@@ -2360,78 +2407,78 @@ exception of the `sed' commands and command-line options.
* Line, selecting last: Addresses. (line 22)
* List pattern space: Other Commands. (line 65)
* Mixing g and NUMBER modifiers in the s command: The "s" Command.
- (line 57)
+ (line 75)
* Next input line, append to pattern space: Other Commands. (line 105)
* Next input line, replace pattern space with: Common Commands.
(line 44)
-* Non-bugs, 0 address: Reporting Bugs. (line 103)
-* Non-bugs, in-place editing: Reporting Bugs. (line 85)
-* Non-bugs, localization-related: Reporting Bugs. (line 112)
-* Non-bugs, N command on the last line: Reporting Bugs. (line 31)
-* Non-bugs, regex syntax clashes: Reporting Bugs. (line 51)
+* Non-bugs, 0 address: Reporting Bugs. (line 102)
+* Non-bugs, in-place editing: Reporting Bugs. (line 84)
+* Non-bugs, localization-related: Reporting Bugs. (line 111)
+* Non-bugs, N command on the last line: Reporting Bugs. (line 30)
+* Non-bugs, regex syntax clashes: Reporting Bugs. (line 50)
* Parenthesized substrings: The "s" Command. (line 19)
* Pattern space, definition: Execution Cycle. (line 6)
-* Perl-style regular expressions, multiline: Addresses. (line 54)
* Portability, comments: Common Commands. (line 15)
* Portability, line length limitations: Limitations. (line 6)
-* Portability, N command on the last line: Reporting Bugs. (line 31)
+* Portability, N command on the last line: Reporting Bugs. (line 30)
* POSIXLY_CORRECT behavior, bracket expressions: Regular Expressions.
(line 105)
* POSIXLY_CORRECT behavior, enabling: Invoking sed. (line 84)
* POSIXLY_CORRECT behavior, escapes: Escapes. (line 11)
-* POSIXLY_CORRECT behavior, N command: Reporting Bugs. (line 46)
+* POSIXLY_CORRECT behavior, N command: Reporting Bugs. (line 45)
* Print first line from pattern space: Other Commands. (line 110)
+* Printing file name: Extended Commands. (line 30)
* Printing line number: Other Commands. (line 62)
* Printing text unambiguously: Other Commands. (line 65)
-* Quitting <1>: Extended Commands. (line 36)
+* Quitting <1>: Extended Commands. (line 44)
* Quitting: Common Commands. (line 30)
-* Range of lines: Addresses. (line 65)
-* Range with start address of zero: Addresses. (line 78)
+* Range of lines: Addresses. (line 67)
+* Range with start address of zero: Addresses. (line 80)
* Read next input line: Common Commands. (line 44)
-* Read text from a file <1>: Extended Commands. (line 53)
+* Read text from a file <1>: Extended Commands. (line 61)
* Read text from a file: Other Commands. (line 78)
-* Reformat pattern space: Extended Commands. (line 26)
-* Reformatting paragraphs: Extended Commands. (line 26)
+* Reformat pattern space: Extended Commands. (line 34)
+* Reformatting paragraphs: Extended Commands. (line 34)
* Replace hold space with copy of pattern space: Other Commands.
(line 113)
* Replace pattern space with copy of hold space: Other Commands.
(line 121)
* Replacing all text matching regexp in a line: The "s" Command.
- (line 51)
+ (line 69)
* Replacing only Nth match of regexp in a line: The "s" Command.
- (line 55)
+ (line 73)
* Replacing selected lines with other text: Other Commands. (line 52)
-* Requiring GNU sed: Extended Commands. (line 69)
+* Requiring GNU sed: Extended Commands. (line 77)
* Script structure: sed Programs. (line 6)
* Script, from a file: Invoking sed. (line 46)
* Script, from command line: Invoking sed. (line 41)
* sed program structure: sed Programs. (line 6)
* Selecting lines to process: Addresses. (line 6)
-* Selecting non-matching lines: Addresses. (line 101)
-* Several lines, selecting: Addresses. (line 65)
+* Selecting non-matching lines: Addresses. (line 103)
+* Several lines, selecting: Addresses. (line 67)
* Slash character, in regular expressions: Addresses. (line 41)
* Spaces, pattern and hold: Execution Cycle. (line 6)
-* Special addressing forms: Addresses. (line 78)
-* Standard input, processing as input: Invoking sed. (line 143)
+* Special addressing forms: Addresses. (line 80)
+* Standard input, processing as input: Invoking sed. (line 150)
* Stream editor: Introduction. (line 6)
* Subprocesses <1>: Extended Commands. (line 12)
-* Subprocesses: The "s" Command. (line 85)
-* Substitution of text, options: The "s" Command. (line 47)
+* Subprocesses: The "s" Command. (line 103)
+* Substitution of text, options: The "s" Command. (line 65)
* Text, appending: Other Commands. (line 27)
* Text, deleting: Common Commands. (line 36)
* Text, insertion: Other Commands. (line 46)
* Text, printing: Common Commands. (line 39)
-* Text, printing after substitution: The "s" Command. (line 65)
+* Text, printing after substitution: The "s" Command. (line 83)
* Text, writing to a file after substitution: The "s" Command.
- (line 78)
+ (line 96)
* Transliteration: Other Commands. (line 14)
* Unbuffered I/O, choosing: Invoking sed. (line 131)
* Usage summary, printing: Invoking sed. (line 28)
* Version, printing: Invoking sed. (line 24)
* Working on separate files: Invoking sed. (line 121)
-* Write first line to a file: Extended Commands. (line 80)
+* Write first line to a file: Extended Commands. (line 88)
* Write to a file: Other Commands. (line 88)
-* Zero, as range start address: Addresses. (line 78)
+* Zero, as range start address: Addresses. (line 80)

File: sed.info, Node: Command and Option Index, Prev: Concept Index, Up: Top
@@ -2453,11 +2500,15 @@ options.
* --help: Invoking sed. (line 28)
* --in-place: Invoking sed. (line 51)
* --line-length: Invoking sed. (line 76)
+* --null-data: Invoking sed. (line 139)
+* --posix: Invoking sed. (line 81)
* --quiet: Invoking sed. (line 34)
* --regexp-extended: Invoking sed. (line 113)
+* --separate: Invoking sed. (line 121)
* --silent: Invoking sed. (line 34)
* --unbuffered: Invoking sed. (line 131)
* --version: Invoking sed. (line 24)
+* --zero-terminated: Invoking sed. (line 139)
* -b: Invoking sed. (line 93)
* -e: Invoking sed. (line 41)
* -f: Invoking sed. (line 46)
@@ -2466,7 +2517,9 @@ options.
* -n: Invoking sed. (line 34)
* -n, forcing from within a script: Common Commands. (line 20)
* -r: Invoking sed. (line 113)
+* -s: Invoking sed. (line 121)
* -u: Invoking sed. (line 131)
+* -z: Invoking sed. (line 139)
* : (label) command: Programming Commands.
(line 14)
* = (print line number) command: Other Commands. (line 62)
@@ -2477,31 +2530,32 @@ options.
* D (delete first line) command: Other Commands. (line 99)
* d (delete) command: Common Commands. (line 36)
* e (evaluate) command: Extended Commands. (line 12)
+* F (File name) command: Extended Commands. (line 30)
* G (appending Get) command: Other Commands. (line 125)
* g (get) command: Other Commands. (line 121)
* H (append Hold) command: Other Commands. (line 117)
* h (hold) command: Other Commands. (line 113)
* i (insert text lines) command: Other Commands. (line 46)
-* L (fLow paragraphs) command: Extended Commands. (line 26)
+* L (fLow paragraphs) command: Extended Commands. (line 34)
* l (list unambiguously) command: Other Commands. (line 65)
* N (append Next line) command: Other Commands. (line 105)
* n (next-line) command: Common Commands. (line 44)
* P (print first line) command: Other Commands. (line 110)
* p (print) command: Common Commands. (line 39)
* q (quit) command: Common Commands. (line 30)
-* Q (silent Quit) command: Extended Commands. (line 36)
+* Q (silent Quit) command: Extended Commands. (line 44)
* r (read file) command: Other Commands. (line 78)
-* R (read line) command: Extended Commands. (line 53)
-* s command, option flags: The "s" Command. (line 47)
-* T (test and branch if failed) command: Extended Commands. (line 63)
+* R (read line) command: Extended Commands. (line 61)
+* s command, option flags: The "s" Command. (line 65)
+* T (test and branch if failed) command: Extended Commands. (line 71)
* t (test and branch if successful) command: Programming Commands.
(line 22)
-* v (version) command: Extended Commands. (line 69)
+* v (version) command: Extended Commands. (line 77)
* w (write file) command: Other Commands. (line 88)
-* W (write first line) command: Extended Commands. (line 80)
+* W (write first line) command: Extended Commands. (line 88)
* x (eXchange) command: Other Commands. (line 129)
* y (transliterate) command: Other Commands. (line 14)
-* z (Zap) command: Extended Commands. (line 85)
+* z (Zap) command: Extended Commands. (line 93)
* {} command grouping: Common Commands. (line 50)
@@ -2510,49 +2564,49 @@ Tag Table:
Node: Top944
Node: Introduction3867
Node: Invoking sed4421
-Ref: Invoking sed-Footnote-110512
-Ref: Invoking sed-Footnote-210704
-Node: sed Programs10803
-Node: Execution Cycle11951
-Ref: Execution Cycle-Footnote-113129
-Node: Addresses13430
-Node: Regular Expressions18174
-Node: Common Commands26082
-Node: The "s" Command28085
-Ref: The "s" Command-Footnote-132422
-Node: Other Commands32494
-Ref: Other Commands-Footnote-137636
-Node: Programming Commands37708
-Node: Extended Commands38622
-Node: Escapes42630
-Ref: Escapes-Footnote-145641
-Node: Examples45832
-Node: Centering lines46928
-Node: Increment a number47820
-Ref: Increment a number-Footnote-149380
-Node: Rename files to lower case49500
-Node: Print bash environment52203
-Node: Reverse chars of lines52958
-Ref: Reverse chars of lines-Footnote-153959
-Node: tac54176
-Node: cat -n54943
-Node: cat -b56765
-Node: wc -c57512
-Ref: wc -c-Footnote-159420
-Node: wc -w59489
-Node: wc -l60953
-Node: head61197
-Node: tail61528
-Node: uniq63209
-Node: uniq -d63997
-Node: uniq -u64708
-Node: cat -s65419
-Node: Limitations67270
-Node: Other Resources68111
-Node: Reporting Bugs68956
-Ref: Reporting Bugs-Footnote-176092
-Node: Extended regexps76163
-Node: Concept Index77349
-Node: Command and Option Index92298
+Ref: Invoking sed-Footnote-110793
+Ref: Invoking sed-Footnote-210985
+Node: sed Programs11084
+Node: Execution Cycle12617
+Ref: Execution Cycle-Footnote-113794
+Node: Addresses14095
+Node: Regular Expressions18996
+Node: Common Commands26905
+Node: The "s" Command28908
+Ref: The "s" Command-Footnote-134229
+Node: Other Commands34301
+Ref: Other Commands-Footnote-139501
+Node: Programming Commands39573
+Node: Extended Commands40487
+Node: Escapes44752
+Ref: Escapes-Footnote-147763
+Node: Examples47954
+Node: Centering lines49050
+Node: Increment a number49942
+Ref: Increment a number-Footnote-151419
+Node: Rename files to lower case51539
+Node: Print bash environment54312
+Node: Reverse chars of lines55067
+Ref: Reverse chars of lines-Footnote-156068
+Node: tac56285
+Node: cat -n57052
+Node: cat -b58874
+Node: wc -c59621
+Ref: wc -c-Footnote-161529
+Node: wc -w61598
+Node: wc -l63062
+Node: head63306
+Node: tail63637
+Node: uniq65318
+Node: uniq -d66106
+Node: uniq -u66817
+Node: cat -s67528
+Node: Limitations69379
+Node: Other Resources70220
+Node: Reporting Bugs71065
+Ref: Reporting Bugs-Footnote-178131
+Node: Extended regexps78202
+Node: Concept Index79517
+Node: Command and Option Index94612

End Tag Table
diff --git a/doc/sed.texi b/doc/sed.texi
index 72408e5..6efc48c 100644
--- a/doc/sed.texi
+++ b/doc/sed.texi
@@ -2,7 +2,7 @@
@c Do not edit this file!! It is automatically generated from sed-in.texi.
@c
@c -- Stuff that needs adding: ----------------------------------------------
-@c (document the `;' command-separator)
+@c (nothing!)
@c --------------------------------------------------------------------------
@c Check for consistency: regexps in @code, text that they match in @samp.
@c
@@ -281,6 +281,7 @@ A length of 0 (zero) means to never wrap long lines. If
not specified, it is taken to be 70.
@item --posix
+@opindex --posix
@cindex @value{SSEDEXT}, disabling
@value{SSED} includes several extensions to @acronym{POSIX}
sed. In order to simplify writing portable scripts, this
@@ -347,6 +348,8 @@ Perl-style regular expressions}.
@item -s
@itemx --separate
+@opindex -s
+@opindex --separate
@cindex Working on separate files
By default, @command{sed} will consider the files specified on the
command line as a single continuous long stream. This @value{SSED}
@@ -367,6 +370,16 @@ Buffer both input and output as minimally as practical.
the likes of @samp{tail -f}, and you wish to see the transformed
output as soon as possible.)
+@item -z
+@itemx --null-data
+@itemx --zero-terminated
+@opindex -z
+@opindex --null-data
+@opindex --zero-terminated
+Treat the input as a set of lines, each terminated by a zero byte
+(the ASCII @samp{NUL} character) instead of a newline. This option can
+be used with commands like @samp{sort -z} and @samp{find -print0}
+to process arbitrary file names.
@end table
If no @option{-e}, @option{-f}, @option{--expression}, or @option{--file}
@@ -397,6 +410,14 @@ This document will refer to ``the'' @command{sed} script;
this is understood to mean the in-order catenation
of all of the @var{script}s and @var{script-file}s passed in.
+Commands within a @var{script} or @var{script-file} can be
+separated by semicolons (@code{;}) or newlines (ASCII 10).
+Some commands, due to their syntax, cannot be followed by semicolons
+working as command separators and thus should be terminated
+with newlines or be placed at the end of a @var{script} or @var{script-file}.
+Commands can also be preceded with optional non-significant
+whitespace characters.
+
Each @code{sed} command consists of an optional address or
address range, followed by a one-character command name
and any additional command-specific code.
@@ -425,7 +446,7 @@ and any additional command-specific code.
and the auxiliary @emph{hold} space. Both are initially empty.
@command{sed} operates by performing the following cycle on each
-lines of input: first, @command{sed} reads one line from the input
+line of input: first, @command{sed} reads one line from the input
stream, removes any trailing newline, and places it in the pattern space.
Then commands are executed; each command can have an address associated
to it: addresses are a kind of condition code, and a command is only
@@ -522,15 +543,16 @@ a case-insensitive manner.
@item /@var{regexp}/M
@itemx \%@var{regexp}%M
-@ifset PERL
@cindex @value{SSEDEXT}, @code{M} modifier
-@end ifset
+@ifset PERL
@cindex Perl-style regular expressions, multiline
+@end ifset
The @code{M} modifier to regular-expression matching is a @value{SSED}
-extension which causes @code{^} and @code{$} to match respectively
-(in addition to the normal behavior) the empty string after a newline,
-and the empty string before a newline. There are special character
-sequences
+extension which directs @value{SSED} to match the regular expression
+in @cite{multi-line} mode. The modifier causes @code{^} and @code{$} to
+match respectively (in addition to the normal behavior) the empty string
+after a newline, and the empty string before a newline. There are
+special character sequences
@ifset PERL
(@code{\A} and @code{\Z} in Perl mode, @code{\`} and @code{\'}
in basic or extended regular expression modes)
@@ -539,7 +561,12 @@ in basic or extended regular expression modes)
(@code{\`} and @code{\'})
@end ifclear
which always match the beginning or the end of the buffer.
-@code{M} stands for @cite{multi-line}.
+In addition,
+@ifset PERL
+just like in Perl mode without the @code{S} modifier,
+@end ifset
+the period character does not match a new-line character in
+multi-line mode.
@ifset PERL
@item /@var{regexp}/S
@@ -836,7 +863,7 @@ string), while the second matches only strings containing
at least one character.
@item ^main.*(.*)
-his matches a string starting with @samp{main},
+This matches a string starting with @samp{main},
followed by an opening and closing
parenthesis. The @samp{n}, @samp{(} and @samp{)} need not
be adjacent.
@@ -1005,6 +1032,32 @@ to uppercase,
Stop case conversion started by @code{\L} or @code{\U}.
@end table
+When the @code{g} flag is being used, case conversion does not
+propagate from one occurrence of the regular expression to
+another. For example, when the following command is executed
+with @samp{a-b-} in pattern space:
+@example
+s/\(b\?\)-/x\u\1/g
+@end example
+
+@noindent
+the output is @samp{axxB}. When replacing the first @samp{-},
+the @samp{\u} sequence only affects the empty replacement of
+@samp{\1}. It does not affect the @code{x} character that is
+added to pattern space when replacing @code{b-} with @code{xB}.
+
+On the other hand, @code{\l} and @code{\u} do affect the remainder
+of the replacement text if they are followed by an empty substitution.
+With @samp{a-b-} in pattern space, the following command:
+@example
+s/\(b\?\)-/\u\1x/g
+@end example
+
+@noindent
+will replace @samp{-} with @samp{X} (uppercase) and @samp{b-} with
+@samp{Bx}. If this behavior is undesirable, you can prevent it by
+adding a @samp{\E} sequence---after @samp{\1} in this case.
+
To include a literal @code{\}, @code{&}, or newline in the final
replacement, be sure to precede the desired @code{\}, @code{&},
or newline in the @var{replacement} with a @code{\}.
@@ -1092,10 +1145,11 @@ case-insensitive manner.
@cindex Perl-style regular expressions, multiline
@end ifset
The @code{M} modifier to regular-expression matching is a @value{SSED}
-extension which causes @code{^} and @code{$} to match respectively
-(in addition to the normal behavior) the empty string after a newline,
-and the empty string before a newline. There are special character
-sequences
+extension which directs @value{SSED} to match the regular expression
+in @cite{multi-line} mode. The modifier causes @code{^} and @code{$} to
+match respectively (in addition to the normal behavior) the empty string
+after a newline, and the empty string before a newline. There are
+special character sequences
@ifset PERL
(@code{\A} and @code{\Z} in Perl mode, @code{\`} and @code{\'}
in basic or extended regular expression modes)
@@ -1104,7 +1158,12 @@ in basic or extended regular expression modes)
(@code{\`} and @code{\'})
@end ifclear
which always match the beginning or the end of the buffer.
-@code{M} stands for @cite{multi-line}.
+In addition,
+@ifset PERL
+just like in Perl mode without the @code{S} modifier,
+@end ifset
+the period character does not match a new-line character in
+multi-line mode.
@ifset PERL
@item S
@@ -1260,19 +1319,18 @@ error, and @file{/dev/stdout}, which writes to the standard
output.@footnote{This is equivalent to @code{p} unless the @option{-i}
option is being used.}
-The file will be created (or truncated) before the
-first input line is read; all @code{w} commands
-(including instances of @code{w} flag on successful @code{s} commands)
-which refer to the same @var{filename} are output without
-closing and reopening the file.
+The file will be created (or truncated) before the first input line is
+read; all @code{w} commands (including instances of the @code{w} flag
+on successful @code{s} commands) which refer to the same @var{filename}
+are output without closing and reopening the file.
@item D
@findex D (delete first line) command
@cindex Delete first line from pattern space
-Delete text in the pattern space up to the first newline.
-If any text is left, restart cycle with the resultant
-pattern space (without reading a new line of input),
-otherwise start a normal new cycle.
+If pattern space contains no newline, start a normal new cycle as if
+the @code{d} command was issued. Otherwise, delete text in the pattern
+space up to the first newline, and restart cycle with the resultant
+pattern space, without reading a new line of input.
@item N
@findex N (append Next line) command
@@ -1384,13 +1442,24 @@ replaces the pattern space with the output; a trailing newline
is suppressed.
If a parameter is specified, instead, the @code{e} command
-interprets it as a command and sends its output to the output stream
-(like @code{r} does). The command can run across multiple
-lines, all but the last ending with a back-slash.
+interprets it as a command and sends its output to the output stream.
+The command can run across multiple lines, all but the last ending with
+a back-slash.
In both cases, the results are undefined if the command to be
executed contains a @sc{nul} character.
+Note that, unlike the @code{r} command, the output of the command will
+be printed immediately; the @code{r} command instead delays the output
+to the end of the current cycle.
+
+@item F
+@findex F (File name) command
+@cindex Printing file name
+@cindex File name, printing
+Print out the file name of the current input file (with a trailing
+newline).
+
@item L @var{n}
@findex L (fLow paragraphs) command
@cindex Reformat pattern space
@@ -1724,7 +1793,7 @@ and then again substituting underscores with zeros.
/[^0-9]/ d
@group
-# replace all leading 9s by _ (any other character except digits, could
+# replace all trailing 9s by _ (any other character except digits, could
# be used)
:d
s/9\(_*\)$/_\1/
@@ -1734,9 +1803,6 @@ td
@group
# incr last digit only. The first line adds a most-significant
# digit of 1 if we have to add a digit.
-#
-# The @code{tn} commands are not necessary, but make the thing
-# faster
@end group
@group
@@ -1895,11 +1961,16 @@ G
@group
# check if converted file name is equal to original file name,
-# if it is, do not print nothing
+# if it is, do not print anything
/^.*\/\(.*\)\n\1/b
@end group
@group
+# escape special characters for the shell
+s/["$`\\]/\\&/g
+@end group
+
+@group
# now, transform path/fromfile\n, into
# mv path/fromfile path/tofile and print it
s/^\(.*\/\)\(.*\)\n\(.*\)$/mv "\1\2" "\1\3"/p
@@ -2788,8 +2859,7 @@ for the @code{sed-users} mailing list.
@chapter Reporting Bugs
@cindex Bugs, reporting
-Email bug reports to @email{bonzini@@gnu.org}.
-Be sure to include the word ``sed'' somewhere in the @code{Subject:} field.
+Email bug reports to @email{bug-sed@@gnu.org}.
Also, please include the output of @samp{sed --version} in the body
of your report if at all possible.
@@ -2975,10 +3045,12 @@ the @env{LC_COLLATE} and @env{LC_CTYPE} environment variables to @samp{C}.
The only difference between basic and extended regular expressions is in
the behavior of a few characters: @samp{?}, @samp{+}, parentheses,
-and braces (@samp{@{@}}). While basic regular expressions require
-these to be escaped if you want them to behave as special characters,
-when using extended regular expressions you must escape them if
-you want them @emph{to match a literal character}.
+braces (@samp{@{@}}), and @samp{|}. While basic regular expressions
+require these to be escaped if you want them to behave as special
+characters, when using extended regular expressions you must escape
+them if you want them @emph{to match a literal character}. @samp{|}
+is special here because @samp{\|} is a GNU extension -- standard
+basic regular expressions do not provide its functionality.
@noindent
Examples:
diff --git a/doc/sed.x b/doc/sed.x
index 2d764df..433d52f 100644
--- a/doc/sed.x
+++ b/doc/sed.x
@@ -99,25 +99,6 @@ if
.I label
is omitted, branch to end of script.
.TP
-.RI t\ label
-If a s/// has done a successful substitution since the
-last input line was read and since the last t or T
-command, then branch to
-.IR label ;
-if
-.I label
-is omitted, branch to end of script.
-.TP
-.RI T\ label
-If no s/// has done a successful substitution since the
-last input line was read and since the last t or T
-command, then branch to
-.IR label ;
-if
-.I label
-is omitted, branch to end of script. This is a GNU
-extension.
-.TP
c \e
.TP
.I text
@@ -130,9 +111,10 @@ Delete pattern space.
Start next cycle.
.TP
D
-Delete up to the first embedded newline in the pattern space.
-Start next cycle, but skip reading from the input
-if there is still data in the pattern space.
+If pattern space contains no newline, start a normal new cycle as if
+the d command was issued. Otherwise, delete text in the pattern
+space up to the first newline, and restart cycle with the resultant
+pattern space, without reading a new line of input.
.TP
h H
Copy/append pattern space to hold space.
@@ -140,9 +122,6 @@ Copy/append pattern space to hold space.
g G
Copy/append hold space to pattern space.
.TP
-x
-Exchange the contents of the hold and pattern spaces.
-.TP
l
List out the current line in a ``visually unambiguous'' form.
.TP
@@ -177,6 +156,25 @@ and the special escapes \e1 through \e9 to refer to the
corresponding matching sub-expressions in the
.IR regexp .
.TP
+.RI t\ label
+If a s/// has done a successful substitution since the
+last input line was read and since the last t or T
+command, then branch to
+.IR label ;
+if
+.I label
+is omitted, branch to end of script.
+.TP
+.RI T\ label
+If no s/// has done a successful substitution since the
+last input line was read and since the last t or T
+command, then branch to
+.IR label ;
+if
+.I label
+is omitted, branch to end of script. This is a GNU
+extension.
+.TP
.RI w\ filename
Write the current pattern space to
.IR filename .
@@ -186,6 +184,9 @@ Write the first line of the current pattern space to
.IR filename .
This is a GNU extension.
.TP
+x
+Exchange the contents of the hold and pattern spaces.
+.TP
.RI y/ source / dest /
Transliterate the characters in the pattern space which appear in
.I source
@@ -232,7 +233,10 @@ The following address types are supported:
.TP
.I number
Match only the specified line
-.IR number .
+.IR number
+(which increments cumulatively across files, unless the
+.B -s
+option is specified on the command line).
.TP
.IR first ~ step
Match every
@@ -324,7 +328,6 @@ http://sed.sf.net/grabbag/.
[BUGS]
.PP
E-mail bug reports to
-.BR bonzini@gnu.org .
-Be sure to include the word ``sed'' somewhere in the ``Subject:'' field.
+.BR bug-sed@gnu.org .
Also, please include the output of ``sed --version'' in the body
of your report if at all possible.
diff --git a/doc/stamp-vti b/doc/stamp-vti
index 30cc31a..0a7839c 100644
--- a/doc/stamp-vti
+++ b/doc/stamp-vti
@@ -1,4 +1,4 @@
-@set UPDATED 25 June 2009
-@set UPDATED-MONTH June 2009
-@set EDITION 4.2.1
-@set VERSION 4.2.1
+@set UPDATED 22 December 2012
+@set UPDATED-MONTH December 2012
+@set EDITION 4.2.2
+@set VERSION 4.2.2
diff --git a/doc/version.texi b/doc/version.texi
index 30cc31a..0a7839c 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -1,4 +1,4 @@
-@set UPDATED 25 June 2009
-@set UPDATED-MONTH June 2009
-@set EDITION 4.2.1
-@set VERSION 4.2.1
+@set UPDATED 22 December 2012
+@set UPDATED-MONTH December 2012
+@set EDITION 4.2.2
+@set VERSION 4.2.2