diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/Makefile.in | 794 | ||||
-rw-r--r-- | doc/sed-in.texi | 146 | ||||
-rw-r--r-- | doc/sed.1 | 87 | ||||
-rw-r--r-- | doc/sed.info | 368 | ||||
-rw-r--r-- | doc/sed.texi | 148 | ||||
-rw-r--r-- | doc/sed.x | 59 | ||||
-rw-r--r-- | doc/stamp-vti | 8 | ||||
-rw-r--r-- | doc/version.texi | 8 |
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: @@ -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: @@ -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 |