From beeb86fbf335bbe73b0ecee826d3435e55f61cf9 Mon Sep 17 00:00:00 2001 From: christos Date: Wed, 13 Jan 2016 03:41:44 +0000 Subject: diffutils has moved --- gnu/dist/diffutils/ABOUT-NLS | 396 - gnu/dist/diffutils/AUTHORS | 112 - gnu/dist/diffutils/COPYING | 340 - gnu/dist/diffutils/ChangeLog | 3409 ------ gnu/dist/diffutils/INSTALL | 231 - gnu/dist/diffutils/INSTALLME | 53 - gnu/dist/diffutils/Makefile.am | 23 - gnu/dist/diffutils/Makefile.in | 455 - gnu/dist/diffutils/NEWS | 202 - gnu/dist/diffutils/README | 38 - gnu/dist/diffutils/THANKS | 22 - gnu/dist/diffutils/aclocal.m4 | 3633 ------- gnu/dist/diffutils/config.hin | 514 - gnu/dist/diffutils/config/config.guess | 1321 --- gnu/dist/diffutils/config/config.rpath | 513 - gnu/dist/diffutils/config/config.sub | 1443 --- gnu/dist/diffutils/config/depcomp | 436 - gnu/dist/diffutils/config/install-sh | 251 - gnu/dist/diffutils/config/mdate-sh | 97 - gnu/dist/diffutils/config/missing | 336 - gnu/dist/diffutils/config/mkinstalldirs | 101 - gnu/dist/diffutils/config/texinfo.tex | 6364 ------------ gnu/dist/diffutils/configure | 15482 ---------------------------- gnu/dist/diffutils/configure.ac | 135 - gnu/dist/diffutils/diffutils2netbsd | 83 - gnu/dist/diffutils/doc/Makefile.am | 24 - gnu/dist/diffutils/doc/Makefile.in | 359 - gnu/dist/diffutils/doc/diagmeet.note | 71 - gnu/dist/diffutils/doc/diff.info | 5084 --------- gnu/dist/diffutils/doc/diff.texi | 4557 -------- gnu/dist/diffutils/doc/fdl.texi | 404 - gnu/dist/diffutils/doc/stamp-vti | 4 - gnu/dist/diffutils/doc/version.texi | 5 - gnu/dist/diffutils/exgettext | 123 - gnu/dist/diffutils/lib/Makefile.am | 42 - gnu/dist/diffutils/lib/Makefile.in | 493 - gnu/dist/diffutils/lib/alloca.c | 506 - gnu/dist/diffutils/lib/basename.c | 81 - gnu/dist/diffutils/lib/c-stack.c | 239 - gnu/dist/diffutils/lib/c-stack.h | 26 - gnu/dist/diffutils/lib/cmpbuf.c | 149 - gnu/dist/diffutils/lib/cmpbuf.h | 23 - gnu/dist/diffutils/lib/dirname.h | 49 - gnu/dist/diffutils/lib/error.c | 402 - gnu/dist/diffutils/lib/error.h | 80 - gnu/dist/diffutils/lib/exclude.c | 270 - gnu/dist/diffutils/lib/exclude.h | 51 - gnu/dist/diffutils/lib/exitfail.c | 33 - gnu/dist/diffutils/lib/exitfail.h | 22 - gnu/dist/diffutils/lib/fnmatch.c | 232 - gnu/dist/diffutils/lib/fnmatch.hin | 69 - gnu/dist/diffutils/lib/freesoft.c | 33 - gnu/dist/diffutils/lib/freesoft.h | 3 - gnu/dist/diffutils/lib/getopt.c | 1069 -- gnu/dist/diffutils/lib/getopt.h | 181 - gnu/dist/diffutils/lib/getopt1.c | 189 - gnu/dist/diffutils/lib/gettext.h | 61 - gnu/dist/diffutils/lib/hard-locale.c | 81 - gnu/dist/diffutils/lib/hard-locale.h | 20 - gnu/dist/diffutils/lib/imaxtostr.c | 5 - gnu/dist/diffutils/lib/inttostr.c | 51 - gnu/dist/diffutils/lib/inttostr.h | 62 - gnu/dist/diffutils/lib/malloc.c | 40 - gnu/dist/diffutils/lib/memchr.c | 218 - gnu/dist/diffutils/lib/mkstemp.c | 44 - gnu/dist/diffutils/lib/offtostr.c | 5 - gnu/dist/diffutils/lib/posix/Makefile.am | 4 - gnu/dist/diffutils/lib/posix/Makefile.in | 229 - gnu/dist/diffutils/lib/posix/regex.h | 564 - gnu/dist/diffutils/lib/posixver.c | 60 - gnu/dist/diffutils/lib/posixver.h | 3 - gnu/dist/diffutils/lib/prepargs.c | 95 - gnu/dist/diffutils/lib/prepargs.h | 5 - gnu/dist/diffutils/lib/quotesys.c | 127 - gnu/dist/diffutils/lib/quotesys.h | 11 - gnu/dist/diffutils/lib/realloc.c | 46 - gnu/dist/diffutils/lib/regex.c | 8433 --------------- gnu/dist/diffutils/lib/regex.hin | 46 - gnu/dist/diffutils/lib/setmode.c | 64 - gnu/dist/diffutils/lib/setmode.h | 29 - gnu/dist/diffutils/lib/strcasecmp.c | 68 - gnu/dist/diffutils/lib/strftime.c | 1408 --- gnu/dist/diffutils/lib/strtoimax.c | 103 - gnu/dist/diffutils/lib/strtol.c | 474 - gnu/dist/diffutils/lib/strtoul.c | 24 - gnu/dist/diffutils/lib/strtoull.c | 29 - gnu/dist/diffutils/lib/strtoumax.c | 4 - gnu/dist/diffutils/lib/tempname.c | 344 - gnu/dist/diffutils/lib/umaxtostr.c | 5 - gnu/dist/diffutils/lib/unlocked-io.h | 71 - gnu/dist/diffutils/lib/waitpid.c | 74 - gnu/dist/diffutils/lib/xalloc.h | 84 - gnu/dist/diffutils/lib/xmalloc.c | 115 - gnu/dist/diffutils/lib/xstrtol.c | 304 - gnu/dist/diffutils/lib/xstrtol.h | 84 - gnu/dist/diffutils/lib/xstrtoumax.c | 33 - gnu/dist/diffutils/m4/Makefile.am | 50 - gnu/dist/diffutils/m4/Makefile.am.in | 17 - gnu/dist/diffutils/m4/Makefile.in | 272 - gnu/dist/diffutils/m4/README | 10 - gnu/dist/diffutils/m4/c-bs-a.m4 | 23 - gnu/dist/diffutils/m4/c-stack.m4 | 131 - gnu/dist/diffutils/m4/check-decl.m4 | 85 - gnu/dist/diffutils/m4/codeset.m4 | 23 - gnu/dist/diffutils/m4/dos.m4 | 53 - gnu/dist/diffutils/m4/error.m4 | 13 - gnu/dist/diffutils/m4/fnmatch.m4 | 47 - gnu/dist/diffutils/m4/gettext.m4 | 541 - gnu/dist/diffutils/m4/glibc21.m4 | 32 - gnu/dist/diffutils/m4/gnu-source.m4 | 25 - gnu/dist/diffutils/m4/iconv.m4 | 96 - gnu/dist/diffutils/m4/inttypes.m4 | 32 - gnu/dist/diffutils/m4/jm-glibc-io.m4 | 14 - gnu/dist/diffutils/m4/lcmessage.m4 | 32 - gnu/dist/diffutils/m4/lib-ld.m4 | 97 - gnu/dist/diffutils/m4/lib-link.m4 | 521 - gnu/dist/diffutils/m4/lib-prefix.m4 | 148 - gnu/dist/diffutils/m4/longlong.m4 | 35 - gnu/dist/diffutils/m4/malloc.m4 | 34 - gnu/dist/diffutils/m4/mbrtowc.m4 | 18 - gnu/dist/diffutils/m4/mbstate_t.m4 | 29 - gnu/dist/diffutils/m4/prereq.m4 | 153 - gnu/dist/diffutils/m4/progtest.m4 | 59 - gnu/dist/diffutils/m4/realloc.m4 | 34 - gnu/dist/diffutils/m4/regex.m4 | 81 - gnu/dist/diffutils/m4/setmode.m4 | 38 - gnu/dist/diffutils/m4/st_mtim.m4 | 32 - gnu/dist/diffutils/m4/stdbool.m4 | 56 - gnu/dist/diffutils/m4/strftime.m4 | 43 - gnu/dist/diffutils/m4/vararrays.m4 | 37 - gnu/dist/diffutils/m4/xstrtoumax.m4 | 40 - gnu/dist/diffutils/man/Makefile.am | 34 - gnu/dist/diffutils/man/Makefile.in | 291 - gnu/dist/diffutils/man/cmp.1 | 66 - gnu/dist/diffutils/man/diff.1 | 227 - gnu/dist/diffutils/man/diff3.1 | 78 - gnu/dist/diffutils/man/sdiff.1 | 90 - gnu/dist/diffutils/po/LINGUAS | 1 - gnu/dist/diffutils/po/Makefile.in.in | 317 - gnu/dist/diffutils/po/Makevars | 25 - gnu/dist/diffutils/po/POTFILES.in | 33 - gnu/dist/diffutils/po/Rules-quot | 42 - gnu/dist/diffutils/po/boldquot.sed | 10 - gnu/dist/diffutils/po/cs.gmo | Bin 23035 -> 0 bytes gnu/dist/diffutils/po/cs.po | 947 -- gnu/dist/diffutils/po/da.gmo | Bin 22910 -> 0 bytes gnu/dist/diffutils/po/da.po | 931 -- gnu/dist/diffutils/po/de.gmo | Bin 24021 -> 0 bytes gnu/dist/diffutils/po/de.po | 993 -- gnu/dist/diffutils/po/diffutils.pot | 841 -- gnu/dist/diffutils/po/en@boldquot.header | 25 - gnu/dist/diffutils/po/en@quot.header | 22 - gnu/dist/diffutils/po/en_GB.gmo | Bin 617 -> 0 bytes gnu/dist/diffutils/po/en_GB.po | 843 -- gnu/dist/diffutils/po/eo.gmo | Bin 22734 -> 0 bytes gnu/dist/diffutils/po/eo.po | 923 -- gnu/dist/diffutils/po/es.gmo | Bin 25106 -> 0 bytes gnu/dist/diffutils/po/es.po | 1137 -- gnu/dist/diffutils/po/fr.gmo | Bin 25082 -> 0 bytes gnu/dist/diffutils/po/fr.po | 1033 -- gnu/dist/diffutils/po/gl.gmo | Bin 23855 -> 0 bytes gnu/dist/diffutils/po/gl.po | 997 -- gnu/dist/diffutils/po/he.gmo | Bin 23365 -> 0 bytes gnu/dist/diffutils/po/he.po | 907 -- gnu/dist/diffutils/po/id.gmo | Bin 22711 -> 0 bytes gnu/dist/diffutils/po/id.po | 913 -- gnu/dist/diffutils/po/insert-header.sin | 23 - gnu/dist/diffutils/po/ja.gmo | Bin 22004 -> 0 bytes gnu/dist/diffutils/po/ja.po | 898 -- gnu/dist/diffutils/po/pl.gmo | Bin 23351 -> 0 bytes gnu/dist/diffutils/po/pl.po | 930 -- gnu/dist/diffutils/po/quot.sed | 6 - gnu/dist/diffutils/po/remove-potcdate.sin | 19 - gnu/dist/diffutils/po/ru.gmo | Bin 23983 -> 0 bytes gnu/dist/diffutils/po/ru.po | 942 -- gnu/dist/diffutils/po/sv.gmo | Bin 22549 -> 0 bytes gnu/dist/diffutils/po/sv.po | 921 -- gnu/dist/diffutils/po/tr.gmo | Bin 24943 -> 0 bytes gnu/dist/diffutils/po/tr.po | 956 -- gnu/dist/diffutils/po/zh_TW.gmo | Bin 21489 -> 0 bytes gnu/dist/diffutils/po/zh_TW.po | 922 -- gnu/dist/diffutils/src/Makefile.am | 44 - gnu/dist/diffutils/src/Makefile.in | 418 - gnu/dist/diffutils/src/analyze.c | 1070 -- gnu/dist/diffutils/src/cmp.c | 676 -- gnu/dist/diffutils/src/context.c | 480 - gnu/dist/diffutils/src/diff.c | 1367 --- gnu/dist/diffutils/src/diff.h | 377 - gnu/dist/diffutils/src/diff3.c | 1747 ---- gnu/dist/diffutils/src/dir.c | 291 - gnu/dist/diffutils/src/ed.c | 171 - gnu/dist/diffutils/src/ifdef.c | 426 - gnu/dist/diffutils/src/io.c | 857 -- gnu/dist/diffutils/src/normal.c | 73 - gnu/dist/diffutils/src/sdiff.c | 1225 --- gnu/dist/diffutils/src/side.c | 285 - gnu/dist/diffutils/src/system.h | 403 - gnu/dist/diffutils/src/util.c | 758 -- gnu/dist/diffutils/src/version.c | 4 - 199 files changed, 95356 deletions(-) delete mode 100644 gnu/dist/diffutils/ABOUT-NLS delete mode 100644 gnu/dist/diffutils/AUTHORS delete mode 100644 gnu/dist/diffutils/COPYING delete mode 100644 gnu/dist/diffutils/ChangeLog delete mode 100644 gnu/dist/diffutils/INSTALL delete mode 100644 gnu/dist/diffutils/INSTALLME delete mode 100644 gnu/dist/diffutils/Makefile.am delete mode 100644 gnu/dist/diffutils/Makefile.in delete mode 100644 gnu/dist/diffutils/NEWS delete mode 100644 gnu/dist/diffutils/README delete mode 100644 gnu/dist/diffutils/THANKS delete mode 100644 gnu/dist/diffutils/aclocal.m4 delete mode 100644 gnu/dist/diffutils/config.hin delete mode 100644 gnu/dist/diffutils/config/config.guess delete mode 100755 gnu/dist/diffutils/config/config.rpath delete mode 100644 gnu/dist/diffutils/config/config.sub delete mode 100755 gnu/dist/diffutils/config/depcomp delete mode 100755 gnu/dist/diffutils/config/install-sh delete mode 100755 gnu/dist/diffutils/config/mdate-sh delete mode 100755 gnu/dist/diffutils/config/missing delete mode 100644 gnu/dist/diffutils/config/mkinstalldirs delete mode 100644 gnu/dist/diffutils/config/texinfo.tex delete mode 100755 gnu/dist/diffutils/configure delete mode 100644 gnu/dist/diffutils/configure.ac delete mode 100755 gnu/dist/diffutils/diffutils2netbsd delete mode 100644 gnu/dist/diffutils/doc/Makefile.am delete mode 100644 gnu/dist/diffutils/doc/Makefile.in delete mode 100644 gnu/dist/diffutils/doc/diagmeet.note delete mode 100644 gnu/dist/diffutils/doc/diff.info delete mode 100644 gnu/dist/diffutils/doc/diff.texi delete mode 100644 gnu/dist/diffutils/doc/fdl.texi delete mode 100644 gnu/dist/diffutils/doc/stamp-vti delete mode 100644 gnu/dist/diffutils/doc/version.texi delete mode 100755 gnu/dist/diffutils/exgettext delete mode 100644 gnu/dist/diffutils/lib/Makefile.am delete mode 100644 gnu/dist/diffutils/lib/Makefile.in delete mode 100644 gnu/dist/diffutils/lib/alloca.c delete mode 100644 gnu/dist/diffutils/lib/basename.c delete mode 100644 gnu/dist/diffutils/lib/c-stack.c delete mode 100644 gnu/dist/diffutils/lib/c-stack.h delete mode 100644 gnu/dist/diffutils/lib/cmpbuf.c delete mode 100644 gnu/dist/diffutils/lib/cmpbuf.h delete mode 100644 gnu/dist/diffutils/lib/dirname.h delete mode 100644 gnu/dist/diffutils/lib/error.c delete mode 100644 gnu/dist/diffutils/lib/error.h delete mode 100644 gnu/dist/diffutils/lib/exclude.c delete mode 100644 gnu/dist/diffutils/lib/exclude.h delete mode 100644 gnu/dist/diffutils/lib/exitfail.c delete mode 100644 gnu/dist/diffutils/lib/exitfail.h delete mode 100644 gnu/dist/diffutils/lib/fnmatch.c delete mode 100644 gnu/dist/diffutils/lib/fnmatch.hin delete mode 100644 gnu/dist/diffutils/lib/freesoft.c delete mode 100644 gnu/dist/diffutils/lib/freesoft.h delete mode 100644 gnu/dist/diffutils/lib/getopt.c delete mode 100644 gnu/dist/diffutils/lib/getopt.h delete mode 100644 gnu/dist/diffutils/lib/getopt1.c delete mode 100644 gnu/dist/diffutils/lib/gettext.h delete mode 100644 gnu/dist/diffutils/lib/hard-locale.c delete mode 100644 gnu/dist/diffutils/lib/hard-locale.h delete mode 100644 gnu/dist/diffutils/lib/imaxtostr.c delete mode 100644 gnu/dist/diffutils/lib/inttostr.c delete mode 100644 gnu/dist/diffutils/lib/inttostr.h delete mode 100644 gnu/dist/diffutils/lib/malloc.c delete mode 100644 gnu/dist/diffutils/lib/memchr.c delete mode 100644 gnu/dist/diffutils/lib/mkstemp.c delete mode 100644 gnu/dist/diffutils/lib/offtostr.c delete mode 100644 gnu/dist/diffutils/lib/posix/Makefile.am delete mode 100644 gnu/dist/diffutils/lib/posix/Makefile.in delete mode 100644 gnu/dist/diffutils/lib/posix/regex.h delete mode 100644 gnu/dist/diffutils/lib/posixver.c delete mode 100644 gnu/dist/diffutils/lib/posixver.h delete mode 100644 gnu/dist/diffutils/lib/prepargs.c delete mode 100644 gnu/dist/diffutils/lib/prepargs.h delete mode 100644 gnu/dist/diffutils/lib/quotesys.c delete mode 100644 gnu/dist/diffutils/lib/quotesys.h delete mode 100644 gnu/dist/diffutils/lib/realloc.c delete mode 100644 gnu/dist/diffutils/lib/regex.c delete mode 100644 gnu/dist/diffutils/lib/regex.hin delete mode 100644 gnu/dist/diffutils/lib/setmode.c delete mode 100644 gnu/dist/diffutils/lib/setmode.h delete mode 100644 gnu/dist/diffutils/lib/strcasecmp.c delete mode 100644 gnu/dist/diffutils/lib/strftime.c delete mode 100644 gnu/dist/diffutils/lib/strtoimax.c delete mode 100644 gnu/dist/diffutils/lib/strtol.c delete mode 100644 gnu/dist/diffutils/lib/strtoul.c delete mode 100644 gnu/dist/diffutils/lib/strtoull.c delete mode 100644 gnu/dist/diffutils/lib/strtoumax.c delete mode 100644 gnu/dist/diffutils/lib/tempname.c delete mode 100644 gnu/dist/diffutils/lib/umaxtostr.c delete mode 100644 gnu/dist/diffutils/lib/unlocked-io.h delete mode 100644 gnu/dist/diffutils/lib/waitpid.c delete mode 100644 gnu/dist/diffutils/lib/xalloc.h delete mode 100644 gnu/dist/diffutils/lib/xmalloc.c delete mode 100644 gnu/dist/diffutils/lib/xstrtol.c delete mode 100644 gnu/dist/diffutils/lib/xstrtol.h delete mode 100644 gnu/dist/diffutils/lib/xstrtoumax.c delete mode 100644 gnu/dist/diffutils/m4/Makefile.am delete mode 100644 gnu/dist/diffutils/m4/Makefile.am.in delete mode 100644 gnu/dist/diffutils/m4/Makefile.in delete mode 100644 gnu/dist/diffutils/m4/README delete mode 100644 gnu/dist/diffutils/m4/c-bs-a.m4 delete mode 100644 gnu/dist/diffutils/m4/c-stack.m4 delete mode 100644 gnu/dist/diffutils/m4/check-decl.m4 delete mode 100644 gnu/dist/diffutils/m4/codeset.m4 delete mode 100644 gnu/dist/diffutils/m4/dos.m4 delete mode 100644 gnu/dist/diffutils/m4/error.m4 delete mode 100644 gnu/dist/diffutils/m4/fnmatch.m4 delete mode 100644 gnu/dist/diffutils/m4/gettext.m4 delete mode 100644 gnu/dist/diffutils/m4/glibc21.m4 delete mode 100644 gnu/dist/diffutils/m4/gnu-source.m4 delete mode 100644 gnu/dist/diffutils/m4/iconv.m4 delete mode 100644 gnu/dist/diffutils/m4/inttypes.m4 delete mode 100644 gnu/dist/diffutils/m4/jm-glibc-io.m4 delete mode 100644 gnu/dist/diffutils/m4/lcmessage.m4 delete mode 100644 gnu/dist/diffutils/m4/lib-ld.m4 delete mode 100644 gnu/dist/diffutils/m4/lib-link.m4 delete mode 100644 gnu/dist/diffutils/m4/lib-prefix.m4 delete mode 100644 gnu/dist/diffutils/m4/longlong.m4 delete mode 100644 gnu/dist/diffutils/m4/malloc.m4 delete mode 100644 gnu/dist/diffutils/m4/mbrtowc.m4 delete mode 100644 gnu/dist/diffutils/m4/mbstate_t.m4 delete mode 100644 gnu/dist/diffutils/m4/prereq.m4 delete mode 100644 gnu/dist/diffutils/m4/progtest.m4 delete mode 100644 gnu/dist/diffutils/m4/realloc.m4 delete mode 100644 gnu/dist/diffutils/m4/regex.m4 delete mode 100644 gnu/dist/diffutils/m4/setmode.m4 delete mode 100644 gnu/dist/diffutils/m4/st_mtim.m4 delete mode 100644 gnu/dist/diffutils/m4/stdbool.m4 delete mode 100644 gnu/dist/diffutils/m4/strftime.m4 delete mode 100644 gnu/dist/diffutils/m4/vararrays.m4 delete mode 100644 gnu/dist/diffutils/m4/xstrtoumax.m4 delete mode 100644 gnu/dist/diffutils/man/Makefile.am delete mode 100644 gnu/dist/diffutils/man/Makefile.in delete mode 100644 gnu/dist/diffutils/man/cmp.1 delete mode 100644 gnu/dist/diffutils/man/diff.1 delete mode 100644 gnu/dist/diffutils/man/diff3.1 delete mode 100644 gnu/dist/diffutils/man/sdiff.1 delete mode 100644 gnu/dist/diffutils/po/LINGUAS delete mode 100644 gnu/dist/diffutils/po/Makefile.in.in delete mode 100644 gnu/dist/diffutils/po/Makevars delete mode 100644 gnu/dist/diffutils/po/POTFILES.in delete mode 100644 gnu/dist/diffutils/po/Rules-quot delete mode 100644 gnu/dist/diffutils/po/boldquot.sed delete mode 100644 gnu/dist/diffutils/po/cs.gmo delete mode 100644 gnu/dist/diffutils/po/cs.po delete mode 100644 gnu/dist/diffutils/po/da.gmo delete mode 100644 gnu/dist/diffutils/po/da.po delete mode 100644 gnu/dist/diffutils/po/de.gmo delete mode 100644 gnu/dist/diffutils/po/de.po delete mode 100644 gnu/dist/diffutils/po/diffutils.pot delete mode 100644 gnu/dist/diffutils/po/en@boldquot.header delete mode 100644 gnu/dist/diffutils/po/en@quot.header delete mode 100644 gnu/dist/diffutils/po/en_GB.gmo delete mode 100644 gnu/dist/diffutils/po/en_GB.po delete mode 100644 gnu/dist/diffutils/po/eo.gmo delete mode 100644 gnu/dist/diffutils/po/eo.po delete mode 100644 gnu/dist/diffutils/po/es.gmo delete mode 100644 gnu/dist/diffutils/po/es.po delete mode 100644 gnu/dist/diffutils/po/fr.gmo delete mode 100644 gnu/dist/diffutils/po/fr.po delete mode 100644 gnu/dist/diffutils/po/gl.gmo delete mode 100644 gnu/dist/diffutils/po/gl.po delete mode 100644 gnu/dist/diffutils/po/he.gmo delete mode 100644 gnu/dist/diffutils/po/he.po delete mode 100644 gnu/dist/diffutils/po/id.gmo delete mode 100644 gnu/dist/diffutils/po/id.po delete mode 100644 gnu/dist/diffutils/po/insert-header.sin delete mode 100644 gnu/dist/diffutils/po/ja.gmo delete mode 100644 gnu/dist/diffutils/po/ja.po delete mode 100644 gnu/dist/diffutils/po/pl.gmo delete mode 100644 gnu/dist/diffutils/po/pl.po delete mode 100644 gnu/dist/diffutils/po/quot.sed delete mode 100644 gnu/dist/diffutils/po/remove-potcdate.sin delete mode 100644 gnu/dist/diffutils/po/ru.gmo delete mode 100644 gnu/dist/diffutils/po/ru.po delete mode 100644 gnu/dist/diffutils/po/sv.gmo delete mode 100644 gnu/dist/diffutils/po/sv.po delete mode 100644 gnu/dist/diffutils/po/tr.gmo delete mode 100644 gnu/dist/diffutils/po/tr.po delete mode 100644 gnu/dist/diffutils/po/zh_TW.gmo delete mode 100644 gnu/dist/diffutils/po/zh_TW.po delete mode 100644 gnu/dist/diffutils/src/Makefile.am delete mode 100644 gnu/dist/diffutils/src/Makefile.in delete mode 100644 gnu/dist/diffutils/src/analyze.c delete mode 100644 gnu/dist/diffutils/src/cmp.c delete mode 100644 gnu/dist/diffutils/src/context.c delete mode 100644 gnu/dist/diffutils/src/diff.c delete mode 100644 gnu/dist/diffutils/src/diff.h delete mode 100644 gnu/dist/diffutils/src/diff3.c delete mode 100644 gnu/dist/diffutils/src/dir.c delete mode 100644 gnu/dist/diffutils/src/ed.c delete mode 100644 gnu/dist/diffutils/src/ifdef.c delete mode 100644 gnu/dist/diffutils/src/io.c delete mode 100644 gnu/dist/diffutils/src/normal.c delete mode 100644 gnu/dist/diffutils/src/sdiff.c delete mode 100644 gnu/dist/diffutils/src/side.c delete mode 100644 gnu/dist/diffutils/src/system.h delete mode 100644 gnu/dist/diffutils/src/util.c delete mode 100644 gnu/dist/diffutils/src/version.c (limited to 'gnu/dist/diffutils') diff --git a/gnu/dist/diffutils/ABOUT-NLS b/gnu/dist/diffutils/ABOUT-NLS deleted file mode 100644 index 022965c6ac5..00000000000 --- a/gnu/dist/diffutils/ABOUT-NLS +++ /dev/null @@ -1,396 +0,0 @@ -Notes on the Free Translation Project -************************************* - - Free software is going international! The Free Translation Project -is a way to get maintainers of free software, translators, and users all -together, so that will gradually become able to speak many languages. -A few packages already provide translations for their messages. - - If you found this `ABOUT-NLS' file inside a distribution, you may -assume that the distributed package does use GNU `gettext' internally, -itself available at your nearest GNU archive site. But you do _not_ -need to install GNU `gettext' prior to configuring, installing or using -this package with messages translated. - - Installers will find here some useful hints. These notes also -explain how users should proceed for getting the programs to use the -available translations. They tell how people wanting to contribute and -work at translations should contact the appropriate team. - - When reporting bugs in the `intl/' directory or bugs which may be -related to internationalization, you should tell about the version of -`gettext' which is used. The information can be found in the -`intl/VERSION' file, in internationalized packages. - -Quick configuration advice -========================== - - If you want to exploit the full power of internationalization, you -should configure it using - - ./configure --with-included-gettext - -to force usage of internationalizing routines provided within this -package, despite the existence of internationalizing capabilities in the -operating system where this package is being installed. So far, only -the `gettext' implementation in the GNU C library version 2 provides as -many features (such as locale alias, message inheritance, automatic -charset conversion or plural form handling) as the implementation here. -It is also not possible to offer this additional functionality on top -of a `catgets' implementation. Future versions of GNU `gettext' will -very likely convey even more functionality. So it might be a good idea -to change to GNU `gettext' as soon as possible. - - So you need _not_ provide this option if you are using GNU libc 2 or -you have installed a recent copy of the GNU gettext package with the -included `libintl'. - -INSTALL Matters -=============== - - Some packages are "localizable" when properly installed; the -programs they contain can be made to speak your own native language. -Most such packages use GNU `gettext'. Other packages have their own -ways to internationalization, predating GNU `gettext'. - - By default, this package will be installed to allow translation of -messages. It will automatically detect whether the system already -provides the GNU `gettext' functions. If not, the GNU `gettext' own -library will be used. This library is wholly contained within this -package, usually in the `intl/' subdirectory, so prior installation of -the GNU `gettext' package is _not_ required. Installers may use -special options at configuration time for changing the default -behaviour. The commands: - - ./configure --with-included-gettext - ./configure --disable-nls - -will respectively bypass any pre-existing `gettext' to use the -internationalizing routines provided within this package, or else, -_totally_ disable translation of messages. - - When you already have GNU `gettext' installed on your system and run -configure without an option for your new package, `configure' will -probably detect the previously built and installed `libintl.a' file and -will decide to use this. This might be not what is desirable. You -should use the more recent version of the GNU `gettext' library. I.e. -if the file `intl/VERSION' shows that the library which comes with this -package is more recent, you should use - - ./configure --with-included-gettext - -to prevent auto-detection. - - The configuration process will not test for the `catgets' function -and therefore it will not be used. The reason is that even an -emulation of `gettext' on top of `catgets' could not provide all the -extensions of the GNU `gettext' library. - - Internationalized packages have usually many `po/LL.po' files, where -LL gives an ISO 639 two-letter code identifying the language. Unless -translations have been forbidden at `configure' time by using the -`--disable-nls' switch, all available translations are installed -together with the package. However, the environment variable `LINGUAS' -may be set, prior to configuration, to limit the installed set. -`LINGUAS' should then contain a space separated list of two-letter -codes, stating which languages are allowed. - -Using This Package -================== - - As a user, if your language has been installed for this package, you -only have to set the `LANG' environment variable to the appropriate -`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, -and `CC' is an ISO 3166 two-letter country code. For example, let's -suppose that you speak German and live in Germany. At the shell -prompt, merely execute `setenv LANG de_DE' (in `csh'), -`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). -This can be done from your `.login' or `.profile' file, once and for -all. - - You might think that the country code specification is redundant. -But in fact, some languages have dialects in different countries. For -example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The -country code serves to distinguish the dialects. - - The locale naming convention of `LL_CC', with `LL' denoting the -language and `CC' denoting the country, is the one use on systems based -on GNU libc. On other systems, some variations of this scheme are -used, such as `LL' or `LL_CC.ENCODING'. You can get the list of -locales supported by your system for your country by running the command -`locale -a | grep '^LL''. - - Not all programs have translations for all languages. By default, an -English message is shown in place of a nonexistent translation. If you -understand other languages, you can set up a priority list of languages. -This is done through a different environment variable, called -`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' -for the purpose of message handling, but you still need to have `LANG' -set to the primary language; this is required by other parts of the -system libraries. For example, some Swedish users who would rather -read translations in German than English for when Swedish is not -available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. - - In the `LANGUAGE' environment variable, but not in the `LANG' -environment variable, `LL_CC' combinations can be abbreviated as `LL' -to denote the language's main dialect. For example, `de' is equivalent -to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' -(Portuguese as spoken in Portugal) in this context. - -Translating Teams -================= - - For the Free Translation Project to be a success, we need interested -people who like their own language and write it well, and who are also -able to synergize with other translators speaking the same language. -Each translation team has its own mailing list. The up-to-date list of -teams can be found at the Free Translation Project's homepage, -`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" -area. - - If you'd like to volunteer to _work_ at translating messages, you -should become a member of the translating team for your own language. -The subscribing address is _not_ the same as the list itself, it has -`-request' appended. For example, speakers of Swedish can send a -message to `sv-request@li.org', having this message body: - - subscribe - - Keep in mind that team members are expected to participate -_actively_ in translations, or at solving translational difficulties, -rather than merely lurking around. If your team does not exist yet and -you want to start one, or if you are unsure about what to do or how to -get started, please write to `translation@iro.umontreal.ca' to reach the -coordinator for all translator teams. - - The English team is special. It works at improving and uniformizing -the terminology in use. Proven linguistic skill are praised more than -programming skill, here. - -Available Packages -================== - - Languages are not equally supported in all packages. The following -matrix shows the current state of internationalization, as of March -2002. The matrix shows, in regard of each package, for which languages -PO files have been submitted to translation coordination, with a -translation percentage of at least 50%. - - Ready PO files bg ca cs da de el en eo es et fi fr - +-------------------------------------+ - a2ps | [] [] [] [] | - bash | [] [] [] [] | - bfd | [] [] | - binutils | [] [] | - bison | [] [] [] | - clisp | [] [] [] [] | - cpio | [] [] [] [] | - diffutils | [] [] [] [] [] [] | - enscript | [] [] | - error | [] [] | - fetchmail | () [] [] [] () | - fileutils | [] [] [] [] [] | - findutils | [] [] [] [] [] | - flex | [] [] [] [] | - gas | [] [] | - gawk | [] [] | - gcal | [] [] | - gcc | [] [] | - gettext | [] [] [] [] [] | - gnupg | [] [] [] [] [] [] | - gprof | [] [] | - grep | [] [] [] [] [] [] | - hello | [] [] [] [] [] [] [] [] | - id-utils | [] [] [] | - indent | [] [] [] [] [] | - jpilot | () [] [] [] | - jwhois | [] [] | - kbd | [] [] | - ld | [] [] | - libc | [] [] [] [] [] [] [] | - lilypond | [] [] | - lynx | [] [] [] [] | - m4 | [] [] [] [] [] | - make | [] [] [] [] | - mysecretdiary | [] [] | - nano | [] () [] [] [] [] | - nano_1_0 | [] () [] [] [] [] | - opcodes | [] [] [] | - parted | [] [] [] [] | - ptx | [] [] [] [] [] | - python | | - recode | [] [] [] [] [] [] | - sed | [] [] [] [] [] [] [] [] | - sh-utils | [] [] [] [] [] [] [] [] | - sharutils | [] [] [] [] [] [] | - sketch | () [] () | - soundtracker | [] [] [] | - sp | | - tar | [] [] [] [] [] [] | - texinfo | [] [] [] [] [] | - textutils | [] [] [] [] [] | - util-linux | [] [] [] [] | - vorbis-tools | | - wdiff | [] [] [] [] [] | - wget | [] [] [] [] [] [] [] [] | - +-------------------------------------+ - bg ca cs da de el en eo es et fi fr - 1 12 11 31 36 9 1 8 39 15 1 50 - - gl he hr hu id it ja ko lv nb nl nn - +-------------------------------------+ - a2ps | () () [] | - bash | | - bfd | [] | - binutils | [] | - bison | [] [] | - clisp | [] | - cpio | [] [] [] | - diffutils | [] [] [] | - enscript | [] | - error | [] | - fetchmail | | - fileutils | [] [] [] | - findutils | [] [] [] [] [] [] | - flex | [] | - gas | | - gawk | [] | - gcal | | - gcc | | - gettext | [] | - gnupg | [] [] [] | - gprof | | - grep | [] | - hello | [] [] [] [] [] [] [] [] [] [] | - id-utils | [] | - indent | [] [] [] | - jpilot | () () | - jwhois | | - kbd | | - ld | | - libc | [] [] [] [] | - lilypond | [] [] | - lynx | [] [] | - m4 | [] [] [] [] | - make | [] [] [] [] | - mysecretdiary | | - nano | [] [] [] () [] () [] | - nano_1_0 | [] [] [] () [] () [] | - opcodes | [] | - parted | [] [] [] | - ptx | [] [] [] [] | - python | | - recode | [] [] [] | - sed | [] [] [] [] [] [] [] | - sh-utils | [] [] [] [] [] | - sharutils | [] [] [] | - sketch | () | - soundtracker | [] | - sp | | - tar | [] [] [] | - texinfo | [] [] | - textutils | [] [] | - util-linux | () [] | - vorbis-tools | | - wdiff | | - wget | [] [] [] [] [] | - +-------------------------------------+ - gl he hr hu id it ja ko lv nb nl nn - 19 7 0 4 6 11 22 9 1 8 19 4 - - no pl pt pt_BR ru sk sl sv tr uk zh_TW - +----------------------------------------+ - a2ps | () () () [] [] [] () | 8 - bash | | 4 - bfd | [] [] | 5 - binutils | [] | 4 - bison | [] [] [] | 8 - clisp | | 5 - cpio | [] [] [] [] | 11 - diffutils | [] [] [] [] [] | 14 - enscript | [] [] [] | 6 - error | [] [] [] | 6 - fetchmail | () () [] | 4 - fileutils | [] [] [] [] | 12 - findutils | [] [] [] [] [] [] [] | 18 - flex | [] [] [] | 8 - gas | [] | 3 - gawk | [] [] | 5 - gcal | [] [] | 4 - gcc | [] | 3 - gettext | [] [] [] [] | 10 - gnupg | [] [] [] | 12 - gprof | [] [] | 4 - grep | [] [] [] | 10 - hello | [] [] [] [] [] [] [] | 25 - id-utils | [] [] | 6 - indent | [] [] [] [] | 12 - jpilot | () () | 3 - jwhois | () () [] | 3 - kbd | [] [] | 4 - ld | [] [] | 4 - libc | [] [] [] [] [] [] | 17 - lilypond | [] | 5 - lynx | [] [] [] | 9 - m4 | [] [] [] | 12 - make | [] [] [] [] | 12 - mysecretdiary | [] [] | 4 - nano | () [] [] [] [] | 14 - nano_1_0 | () [] [] [] | 13 - opcodes | [] [] | 6 - parted | [] [] [] | 10 - ptx | [] [] [] [] [] [] | 15 - python | | 0 - recode | [] [] [] [] | 13 - sed | [] [] [] [] [] [] | 21 - sh-utils | [] [] [] [] [] [] [] [] [] | 22 - sharutils | [] [] [] | 12 - sketch | [] () | 3 - soundtracker | [] | 5 - sp | | 0 - tar | [] [] [] [] [] [] [] | 16 - texinfo | [] [] [] | 10 - textutils | [] [] [] [] | 11 - util-linux | [] [] [] | 8 - vorbis-tools | [] | 1 - wdiff | [] [] [] [] | 9 - wget | [] [] [] [] [] [] [] | 20 - +----------------------------------------+ - 35 teams no pl pt pt_BR ru sk sl sv tr uk zh_TW - 55 domains 5 13 2 12 25 11 11 41 34 4 7 489 - - Some counters in the preceding matrix are higher than the number of -visible blocks let us expect. This is because a few extra PO files are -used for implementing regional variants of languages, or language -dialects. - - For a PO file in the matrix above to be effective, the package to -which it applies should also have been internationalized and -distributed as such by its maintainer. There might be an observable -lag between the mere existence a PO file and its wide availability in a -distribution. - - If March 2002 seems to be old, you may fetch a more recent copy of -this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date -matrix with full percentage details can be found at -`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'. - -Using `gettext' in new packages -=============================== - - If you are writing a freely available program and want to -internationalize it you are welcome to use GNU `gettext' in your -package. Of course you have to respect the GNU Library General Public -License which covers the use of the GNU `gettext' library. This means -in particular that even non-free programs can use `libintl' as a shared -library, whereas only free software can use `libintl' as a static -library or use modified versions of `libintl'. - - Once the sources are changed appropriately and the setup can handle -to use of `gettext' the only thing missing are the translations. The -Free Translation Project is also available for packages which are not -developed inside the GNU project. Therefore the information given above -applies also for every other Free Software Project. Contact -`translation@iro.umontreal.ca' to make the `.pot' files available to -the translation teams. - diff --git a/gnu/dist/diffutils/AUTHORS b/gnu/dist/diffutils/AUTHORS deleted file mode 100644 index f5f0e90b323..00000000000 --- a/gnu/dist/diffutils/AUTHORS +++ /dev/null @@ -1,112 +0,0 @@ -Authors of GNU diffutils. - - Copyright 2001 Free Software Foundation, Inc. - - This file is part of GNU diffutils. - - GNU diffutils is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU diffutils is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU diffutils; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. - -The following contributions warranted legal paper exchanges with the -Free Software Foundation. Also see files ChangeLog and THANKS. - -DIFFUTILS Leonard H. Tower Jr. US 1949 1987-03-09 -Assigns diff (diff.c, initial version). - -DIFFUTILS Torbjorn Granlund Sweden 1961 1988-01-11 -Assigns cmp. -tege@matematik.su.se - -DIFFUTILS Mike Haertel US 1967 1988-09-16 -Assigns changes to diff. - -DIFFUTILS David S. Hayes US ? 1988-01-12 -Assigns changes to diff. - -DIFFUTILS Randall Smith US 1964 1988-09-21 -Assigns diff3. - -DIFFUTILS Richard Stallman US 1953 1988-01-15 -Assigns changes to GNU Diff. - -DIFFUTILS F. Thomas May US 1965 1989-08-22 -Assigns changes to diff (for -D). - -DIFFUTILS Optimal Solutions, Inc. 1989-08-14 -Disclaims changes by Thomas May to diff. - -DIFFUTILS Wayne Davison 1990-09-10 -Disclaims changes to diff. - -DIFFUTILS Digital Research Inc. 1990-09-13 -Disclaims changes by Wayne Davison to diff. - -DIFFUTILS Paul Eggert 1990-03-16 -Disclaims changes to diff. -eggert@twinsun.com - -DIFFUTILS Paul Eggert 1990-08-14 -Disclaims changes to GNU Diff. -eggert@twinsun.com - -DIFFUTILS Twin Sun Inc. 1990-03-16 -Disclaims changes to GNU Diff by Paul Eggert. - -DIFFUTILS Twin Sun Inc. 1990-08-14 -Disclaims changes to GNU Diff by Paul Eggert. - -DIFFUTILS Chip Rosenthal US 1959 1990-03-06 -Assigns changes to diff. -chip@chinacat.Unicom.COM - -DIFFUTILS Unicom Systems Development 1990-03-06 -Disclaims changes by Chip Rosenthal to diff. - -GCC DIFFUTILS Paul Eggert and Twin Sun Inc. 1992-03-11 -Disclaims changes by Paul Eggert to gcc and diff. -eggert@twinsun.com - -DIFF Wayne Davison 1993-06-20 -Disclaims diffcvt.c. - -DIFFUTILS Francois Pinard Canada 1949 1993-01-15 -Assigns wdiff and future changes submitted to the FSF. -pinard@iro.umontreal.ca - -DIFFUTILS Patrick D'Cruze Australia 1971 1994-11-10 -Assigns changes (makefile.in, analyze.c, cmp.c, error.c, diff.c, -diff3.c, getopt.c, getopt1.c, regex.c, sdiff.c, util.c, xmalloc.c; -new file: language.++) - -DIFFUTILS Paul R. Eggert US 1954 1997-04-07 -Assigns past and future changes. -eggert@twinsun.com - -DIFFUTILS Paul R. Eggert US 1954 1997-04-07 -Assigns past and future changes to manual. -eggert@twinsun.com - -ANY DIFFUTILS GNATS Cyclic Software 1997-11-11 -Assigns past and future works (work for hire by Tim Pierce (diffutils) and -Abe Feldman (GNATS)). -kingdon@cyclic.com - -WEBPAGES Gregory B. Harvey Canada 1976 1998-02-14 -Assigns web pages describing GNU Diffutils and future changes. - -DIFFUTILS Olga Nikulin Russia 1965 2001-01-11 -Assigns changes to diff. (diffutils-2.7.2/analyze.c, context.c, diff.[ch], -ed.c, ifdef.c, io.c, normal.c, side.c, util.c) -onikulin@yahoo.com diff --git a/gnu/dist/diffutils/COPYING b/gnu/dist/diffutils/COPYING deleted file mode 100644 index d60c31a97a5..00000000000 --- a/gnu/dist/diffutils/COPYING +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/gnu/dist/diffutils/ChangeLog b/gnu/dist/diffutils/ChangeLog deleted file mode 100644 index 1e8723d4c41..00000000000 --- a/gnu/dist/diffutils/ChangeLog +++ /dev/null @@ -1,3409 +0,0 @@ -2002-04-05 Paul Eggert - - * NEWS, configure.ac (AC_INIT): Version 2.8.1. - - * configure.ac (AC_HEADER_STDBOOL): Add. - (AC_CHECK_HEADERS): Remove stdbool.h. - * m4/stdbool.m4: New file. - * m4/prereq.m4 (jm_PREREQ_EXCLUDE): - Use AC_HEADER_STDBOOL rather than AC_CHECK_HEADERS(stdbool.h). - (jm_PREREQ_HASH): Likewise. - - * src/system.h (SSIZE_MAX): Define if limits.h doesn't. - - * src/analyze.c (diff_2_files): Assign PTRDIFF_MAX - 1 to a - size_t variable, just in case there's a problem with ptrdiff_t - versus size_t. - - * lib/cmpbuf.c (errno): Remove decl; K&R C is no longer supported. - Include limits.h. - (SIZE_MAX, SSIZE_MAX): Define if standard headers don't. - (MIN): New macro. - (block_read): Do not attempt to read more than SSIZE_MAX bytes, as the - resulting behavior is implementation-defined. Work around bug in - Tru64 5.1, which can't read more than INT_MAX bytes at a time. - * src/cmp.c (cmp): Use block_read instead of read, to work - around Tru64 5.1 bug. - * src/diff3.c (read_diff): Likewise. - * src/diff3.c: Include cmpbuf.h. - - * THANKS: Add Ulrich Drepper. - - * INSTALLME: Mention GNU texinfo. - - * doc/diff.texi: - Use new @copying directive. - Put @contents first, not last, since Texinfo now suggests this. - Fix bug in -w documentation noted by Karl Berry. - Mention links for speedup. - New node "Speedups" for future speedups. - Just say "Index", not "Concept Index". - -2002-03-26 Paul Eggert - - * src/Makefile.am: - (INCLUDES): Remove this obsolete macro, replacing it with: - (AM_CPPFLAGS): New macro. - -2002-03-26 Albert Chin-A-Young - - * src/Makefile.am (datadir): Remove, as it conflicts with --datadir. - -2002-03-26 Paul Eggert - - * doc/diff.texi (dircategory GNU packages): Fix typo: a "* " was - missing before the menu entry. Bug diagnosed by Adam Heath. - Also, put this dircategory after the Individual utilities dircategory, - to work around a compatibility problem with Debian install-info. - -2002-03-24 Eli Zaretskii - - * src/io.c (sip): Do not mishandle buffered count when reverting - to text mode. - -2002-03-23 Paul Eggert - - * NEWS, configure.ac (AC_INIT): Version 2.8. - * configure.ac (AC_PREREQ): 2.53. - * INSTALLME: Upgrade to gettext 0.11.1 and help2man 1.27. - - * doc/diff.texi: Upgrade the description of `patch' to GNU patch - 2.5.4, and revamp the documentation accordingly. - - * src/diff.c (main): Fix typo that prevented diff -y from working. - Bug reported by Mitsuru Chinen. - -2002-03-15 Paul Eggert - - * lib/c-stack.c (c_stack_die) [!HAVE_SIGINFO_T]: Don't use info. - Bug reported by Eli Zaretskii. - -2002-03-15 Eli Zaretskii - - * ms/config.sed: Tweak editing of install-info-am target. - -2002-03-12 Paul Eggert - - * NEWS, configure.ac (AC_INIT): Version 2.7.10. - - * NEWS: cmp -l -s and cmp -s -l are not allowed. - Deprecate diff -h, -H, -L, -P, --inhibit-hunk-merge. - - * configure.ac (jm_PREREQ_HARD_LOCALE): Add. - (AM_INIT_AUTOMAKE): Do not distribute shar file. - - * doc/diff.texi (Overview): byte != character. - (Detailed Context, Detailed Unified, Alternate Names, diff Options): - Do not document diff -L. - (Comparing Directories, Making Patches, diff Options): - Do not document diff -P. - (diff Performance, sdiff Option Summary, diff Options, sdiff Options): - Do not document diff -H. - (diff Performance, diff Options): Do not document --horizon-lines. - (cmp Options): Prefer -b to -c. - (cmp Options, diff Options, diff3 Options, patch Options, - sdiff Options): Put short options next to the similar long options. - Document --help, and use the same wording for --verbose. - (diff3 Options): Fix typo in description of -E, which used wrongly used - "-e" instead of "-E". - - * lib/hard-locale.c (alloca): Remove. - Include stdlib.h if available, for malloc. - (hard_locale): Use malloc, not alloca, so that we need not worry about - alloca issues. Test for storage allocation failure. - - * m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_HARD_LOCALE. - (jm_PREREQ_HARD_LOCALE): New macro. - - * src/cmp.c (specify_comparison_type): New function. - (check_stdout): "indices and codes" -> "byte numbers and values" - (main): Detect clashing options. - (cmp): Use "byte" rather than "char" if a translation for "byte" - is available, even when in the POSIX locale. - - * src/diff.c (option_help_msgid): Do not document -L, -P, - --horizon-lines, --inhibit-hunk-merge, -H. - * src/diff.h: -L -> --label - -2002-03-11 Paul Eggert - - * NEWS, configure.ac (AC_INIT): Version 2.7.9. - - * INSTALLME: Update to autoconf 2.53, automake 1.6, help2man - 1.25 with patch. - - * configure.ac (AC_INIT): - Change package name from diff to diffutils. - (AM_INIT_AUTOMAKE): Use new form, with option gnits, - rather than old from that duplicated AC_INIT. - (AM_MISSING_PROG): Add help2man. - (REGEX_MALLOC): Define. - (AC_CONFIG_FILES): Add man/Makefile. - - * Makefile.am (AUTOMAKE_OPTIONS): Remove. - * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove. - * lib/Makefile.am (AUTOMAKE_OPTIONS): Likewise. - * ms/Makefile.am (AUTOMAKE_OPTIONS): Likewise. - * src/Makefile.am (AUTOMAKE_OPTIONS): Likewise. - - * lib/c-stack.c: Include - (ENOTSUP): Define if errno.h doesn't. - (SA_NODEFER, SA_ONSTACK, SA_RESETHAND, SA_SIGINFO, SIGSTKSZ, - _SC_PAGESIZE, ALTERNATE_STACK_SIZE, stack_t, sigaltstack): - Remove; we now assume them all when - HAVE_XSI_STACK_OVERFLOW_HEURISTIC, so we don't need - substitutes. - (): Include only if HAVE_XSI_STACK_OVERFLOW_HEURISTIC. - (alternate_signal_stack): Now of size SIGSTKSZ. - (segv_handler): Simplify, under the assumption that - HAVE_XSI_STACK_OVERFLOW_HEURISTIC is nonzero. - (c_stack_action): Likewise. - (exit_failure) [DEBUG]: Initialize to 0, not 1. - (recurse, main) [DEBUG]: Remove main args. - - * m4/c-stack.m4 (AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC): Change - wording of message. Do not check for stdbool.h or ucontext.h, - or for ucontext_t or sigaction or sigaltstack. - - * po/LINGUAS: Add zh_TW. - - * Makefile.am (SUBDIRS): Add man. - * man/Makefile.am: New file. - * src/cmp.c (usage): Reword for help2man. - * src/diff.c (option_help_msgid): Likewise. - * src/diff3.c (option_help_msgid, usage): Likewise. - * src/sdiff3.c (option_help_msgid, usage): Likewise. - Reword for help2man. - - * THANKS: Add email address for Tower. - - * config/config.guess, config/config.sub, config/depcomp, - config/install-sh, config/mdate-sh, config/missing, - config/mkinstalldirs, config/texinfo.texi: Update - to recent version (maintained in other packages). - -2002-03-04 Bruno Haible - - * m4/gettext.m4 (AM_GNU_GETTEXT): Set LIBINTL and LTLIBINTL to empty if - no preinstalled GNU gettext was found. - -2002-03-02 Eli Zaretskii - - * ms/config.sed: Tweak editing of install-info-am and - uninstall-info-am targets, to include 8+3-butchered names of Info - files. - -2002-02-28 Paul Eggert - - * NEWS, configure.ac (AC_INIT, AM_INIT_AUTOMAKE): Version 2.7.8. - - * doc/diff.texi: Add vr index. - Update copyright to 2002. - (Standards conformance): New chapter. - (Binary): Differing binary files are trouble unless the user asked for - brief output. - (Detailed Context): Prefer ISO time stamp format in discussion. - (Detailed Unified, Pagination): Likewise. - (Less Context): Likewise. Also use short option. - (Alternate Names): Separate option from arg. - (Making Patches): Mention -U 2. - (diff Options): Deprecate -LINES, as POSIX 1003.1-2001 does not - allow it. - - * INSTALLME: Update advice for Solaris installation problems. - We no longer use a test version of gettext. - Autoconf test version updated from 2.52f to 2.52h. - POSIX 1003.1-2001 patch for Automake. - - * configure.ac (AC__GNU_SOURCE): Add this, - replacing AH_VERBATIM of _GNU_SOURCE. - (tempname): Use AC_LIBOBJS, not LIBOBJS=, as now required by autoconf. - (jm_PREREQ_C_STACK): Add. - (AC_CONFIG_FILES): Remove intl/Makefile. - (AM_GNU_GETTEXT): Add external arg, from gettext 0.11. - - * lib/c-stack.c, lib/c-stack.h, lib/exitfail.c, lib/exitfail.h, - lib/posixver.c, lib/posixver.h, m4/c-stack.m4, m4/gnu-source.m4, - po/cs.po, po/ja.po: New files. - - * intl/ChangeLog, intl/Makefile.in, intl/VERSION, - intl/bindtextdom.c, intl/config.charset, intl/dcgettext.c, - intl/dcigettext.c, intl/dcngettext.c, intl/dgettext.c, - intl/dngettext.c, intl/explodename.c, intl/finddomain.c, - intl/gettext.c, intl/gettextP.h, intl/gmo.h, intl/hash-string.h, - intl/intl-compat.c, intl/l10nflist.c, intl/libgnuintl.h, - intl/loadinfo.h, intl/loadmsgcat.c, intl/localcharset.c, - intl/locale.alias, intl/localealias.c, intl/localename.c, - intl/ngettext.c, intl/os2compat.c, intl/os2compat.h, intl/osdep.c, - intl/plural-eval.c, intl/plural-exp.c, intl/plural-exp.h, - intl/plural.c, intl/plural.y, intl/ref-add.sin, intl/ref-del.sin, - intl/textdomain.c, m4/isc-posix.m4, m4/libtool.m4: Remove. - - * ABOUT-NLS: Update to Gettext 0.11. - - * Makefile.am (SUBDIRS): Remove intl. - - * config/config.guess, config/config.rpath, config/config.sub, - config/texinfo.tex, config/depcomp, config/texinfo.tex, - lib/tempname.c: Update to latest version from other packages. - - * lib/xalloc.h (xalloc_exit_failure): Remove; subsumed by exit_failure. - * lib/xmalloc.c: Include exitfail.h. - (xalloc_exit_failure): Remove; subsumed by exit_failure. - All uses changed. - - * lib/Makefile.am (noinst_HEADERS): Add c-stack.h, exitfail.h. - (libdiffutils_a_SOURCES): Add c-stack.c, exitfail.c, quotesys.c. - (INCLUDES): Remove. - - * lib/cmpbuf.h (buffer_lcm): New arg LCM_MAX. - * lib/cmpbuf.c: Include errno.h. - (errno): Declare if !STDC_HEADERS. - Include signal.h. - (SA_RESTART): Define if not already defined. - Include . - (PTRDIFF_MAX): Define if not already defined. - (TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM): Likewise. - (block_read): Accommodate ancient AIX hosts that set errno to EINTR - after uncaught SIGCONT. - (buffer_lcm): Return a reasonable size if the multiple is too large. - New arg LCM_MAX. All callers changed. - - * lib/hard-locale.c: Include "hard-locale.h". - (hard_locale): Ignore ENABLE_NLS, since we want to operate on - locales other than LC_MESSAGES. - - * m4/prereq.m4 (jm_PREREQ): Add jm_PREREQ_POSIXVER. - (jm_PREREQ_POSIXVER): New macro. - - * m4/setmode.m4 (AC_FUNC_SETMODE_DOS): - Check for fcntl.h and unistd.h unconditionally. - Suggested by Bruno Haible. - - * po/LINGUAS: Add cs, ja. - * po/POTFILES.in: Add lib/c-stack.c, src/dir.c. - - * src/Makefile.am (datadir): @DATADIRNAME@ -> share. - (INCLUDES): Remove intl. - (LDADD): Change INTLLIBS to LIBINTL. - No longer need to link libdiffutils.a twice. - - * src/analyze.c (diff_2_files): - Avoid arithmetic overflow in buffer size calculation. - - * src/cmp.c: Include c-stack.h, exitfail.h. - (hard_locale_LC_MESSAGES): Depend on ENABLE_NLS. - (try_help, check_stdout, main, cmp): 2 -> EXIT_TROUBLE. - (main): Check for stack overflow. - 0 -> EXIT_SUCCESS. - 1 -> EXIT_FAILURE. - (cmp): Likewise. - Accommodate ancient AIX hosts that set errno to - EINTR after uncaught SIGCONT. - - * src/context.c (pr_context_hunk): - Do not dump core if an enormous context causes an - arithmetic overflow. - (pr_unidiff_hunk): Likewise. - (find_hunk): Likewise. - - * src/diff.h: unsigned -> unsigned int. - * src/diff.c: Include c-stack.h, exitfail.h. - Do not include signal.h. - (specify_style, specify_value): Bring these routines back, as POSIX - requires that the order of options not matter. - (shortopts): New constant. - (group_format_option, line_format_option): New constants. - (main): 0 -> EXIT_SUCCESS, 1 -> EXIT_FAILURE, 2 -> EXIT_TROUBLE. - Ensure that order of options does not matter. - Check for stack overflow. - If contexts overflow, substitute LIN_MAX, as that's good enough. - If multiple contexts are specified, use their maximum. - -c is equivalent to -C 3 now, instead of having an implicit context; - likewise for -u and -U 3. - Use specify_style and specify_value. - (SIGCHLD): Do not define; now done in a header. - Use new style time stamp format for -u / -U. - Reject numeric-string options if operating in POSIX 1003.1-2001 mode. - Avoid overflow problems with tab width. - Simplify from-file and to-file code. - (usage): Do not mention obsolete options. - (filetype): Do not mention whether a file is executable. - Add typed memory objects. - (compare_files): 0 -> EXIT_SUCCESS, 1 -> EXIT_FAILURE, 2 -> - EXIT_TROUBLE. - - * src/diff3.c: Include c-stack.h, exitfail.h. - (ALLOCATE): Remove. All uses changed to xmalloc, or to xmalloc plus - an overflow check. - (myread): Remove. - (main): Check for stack overflow. - 0 -> EXIT_SUCCESS, 1 -> EXIT_FAIULRE, 2 -> EXIT_TROUBLE. - (try_help): Likewise. - (process_diff): Check for integer overflow, to avoid core dumps. - 2 -> EXIT_TROUBLE. - (read_diff): Exit with status 126 if the file is not executable, - for compatibility with POSIX 1003.1-2001. - Accommodate ancient AIX hosts that set errno to EINTR after uncaught - SIGCONT. - Check for integer overflow to avoid core dumps. - (fatal, perror_with_exit): 2 -> EXIT_TROUBLE. - - * src/dir.c (dir_read): - Ignore st_size of directories: POSIX says it's garbage. - Check for integer overflow to avoid core dumps. - (diff_dirs): 0 -> EXIT_SUCCESS, 2 -> EXIT_TROUBLE. - - * src/ifdef.c: Include . - (format_group, print_ifdef_lines): Avoid core dumps with bad formats. - (do_printf_spec): Avoid alloca. - - * src/io.c (sip): - Avoid integer overflow and core dumps if buffer alignments are - preposterously incompatible. - (slurp): Do not dump core if the file is growing as we read it. - If a regular file grows, keep reading until we catch up with its EOF. - (find_and_hash_each_line): Check for integer overflow to avoid cores. - (GUESS_LINES): Remove. - (guess_lines): New function. Avoid integer overflow. - (find_identical_ends): Use it. - Avoid integer overflow and possible core dumps. - - * src/sdiff.c: Include c-stack.h, exitfail.h. Do not include signal.h. - 0 -> EXIT_SUCCESS, 1 -> EXIT_FAILURE, 2 -> EXIT_TROUBLE. - (ck_editor_status): New function. - (main): Check for stack overflow. - Adopt POSIX convention for subsidiary programs not found. - (diffarg): Check for integer overflow to avoid core dumps. - (trapsigs): Remove SA_INTERRUPT special case; now done by header. - (SIGCHLD): Likewise. - (edit): Adopt POSIX convention for subsidiary programs not found. - - * src/side.c: unsigned -> unsigned int. - - * src/system.h: Don't use alloca or include . - unsigned -> unsigned int - (EXIT_SUCCESS, EXIT_FAILURE, EXIT_TROUBLE): Define if not defined. - Include signal.h. - (SA_RESTART): Define if not defined. - (SIGCHLD): Likewise. - - * src/util.c: 2 -> EXIT_TROUBLE. - Adopt POSIX convention for ENOEXEC and exit status 126. - unsigned -> unsigned int - -2002-01-24 Paul Eggert - - * NEWS, configure.ac (AC_INIT, AM_INIT_AUTOMAKE): Version 2.7.7. - - * intl/plural.c: Regenerate with Bison 1.31. - - * ABOUT-NLS, intl/*: Update to Gettext 0.11-pre5++. - * INSTALL: Update to Autoconf 2.52f. - - * INSTALLME: New file. - * Makefile.am (EXTRA_DIST): Add config/config.rpath, INSTALLME. - (DISTCLEANFILES): Remove. - * NEWS: Reformat for imminent 2.8 release. - * README: Mention INSTALLME. - * README-alpha: Move most of contents to INSTALLME. - * THANKS: Add Bruno Haible, Jim Meyering, and Eli Zaretskii. - - * config: New subdirectory, containing the following files from .: - config.guess, config.sub, depcomp, missing, install-sh, mkinstalldirs. - Move the following files here from doc: texinfo.tex, mdate-sh. - * config/config.guess, config/config.sub, config/texinfo.tex: - Update to latest version from FSF. - * config/config.rpath: New file, from Gettext 0.11-pre5++. - - * configure.ac (AC_INIT): Use new 3-arg form. - (AC_CONFIG_SRCDIR): Specify src/diff.c here, not in AC_INIT. - (ALL_LINGUAS): Remove: now in po/LINGUAS as per Gettext 0.11. - (AC_CONFIG_AUX_DIR): New macro invocation. - - * lib/Makefile.am (noinst_HEADERS): Add gettext.h. - * lib/gettext.h: New file, from Gettext 0.11-pre5++. - * lib/prepargs.c: Include . Reported by Bruno Haible. - - * m4/codeset.m4, m4/gettext.m4, glibc21.m4, iconv.m4, isc-posix.m4, - lcmessage.m4, progtest.m4: Upgrade to Gettext 0.11-pre5++. - * m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4: New files, from - Gettext 0.11-pre5++. - - * po/LINGUAS: New file. - * po/Makefile.in.in: Upgrade to Gettext 0.11-pre5++. - * po/Makevars, po/Rules-quot, po/boldquot.sed: New files, - from Gettext 0.11-pre5++. - - * src/cmp.c (copyright_string): Update to 2002. - * src/diff.c (copyright_string): Likewise. - * src/diff3.c (copyright_string): Likewise. - * src/sdiff.c (copyright_string): Likewise. - - * src/cmp.c (bytes, parse_ignore_initial, cmp): Use UINTMAX_MAX - instead of (uintmax_t) -1, to avoid warnings on some compilers. - * src/io.c (file_block_read): Likewise, for SIZE_MAX. - - * src/cmp.c (usage): Reformat messages to ease translation. - * src/diff3.c (usage): Likewise. - * src/sdiff.c (usage): Likewise. - - * src/diff3.c (main): Remove unused variable. - - * src/dir.c: Include - (struct dirdata): New member nnames. - (locale_specific_sorting, failed_strcoll): New vars. - (dir_read): Renamed from dir_sort. Don't sort the dir. - Set new nnames member of struct dirdata. All callers changed. - (compare_names): Don't check for errno after strcasecmp. - Use strcoll only if locale_specific_sorting is nonzero. - If strcoll fails, longjmp out rather than returning a value - that might result in an invalid comparison function that might - make qsort dump core. - (diff_dirs): Sort the directory ourselves. Use setjmp to recover - from strcoll failure, falling back on native byte comparison. - Make local variables volatile if they need to preserve their value - after setjmp/longjmp. - - * src/sdiff.c (handler_index_of_SIGINT, handler_index_of_SIGPIPE): - New macros. - (main): Do not confuse signal numbers with their indices. - Bug reported by Bruno Haible. - (edit): Cat lin to long before printing with %ld, since lin might - be narrow than long. - - * src/system.h (UINTMAX_MAX): New macro. - Include gettext.h, not libgettext.h. - (N_): Do not wrap arg in parentheses. Fix from Bruno Haible. - - * src/util.c (finish_output): Ensure that werrno is initialized. - (lines_differ): Have an explicit do-nothing case for - IGNORE_NO_WHITE_SPACE, to pacify gcc -Wall. - -2001-12-29 Eli Zaretskii - - * src/sdiff.c (interact): After extracting rlen from the editor - command, test for a terminating null character, not for a newline. - - * ms/config.bat: Allow longer source directory names without - overflowing the line length limits. Create the cache in the - build directory, not in the source directory - * ms/config.sed: Fix AC_CONFIG_LINKS for when symlinks are - unavailable. - -2001-12-23 Paul Eggert - - * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.6. - - * configure.ac (ALL_LINGUAS): Add tr. - - * src/util.c (begin_output): - Have child exit with status 127 rather than reporting - failure on its own. Set errno to 0 before invoking popen. - (finish_output): Report errno on pclose failure. - Distinguish between subsidiary program not found, and failure. - - * src/sdiff.c (not_found, execdiff): Remove. - (DIFF_PROGRAM_OPTION): New constant. - (longopts, option_help_msgid, main): Add --diff-program=PROGRAM. - (check_stdout): New function. - (main): Remove DIFF_PROGRAM. Check stdout after printing version. - Use check_stdout after printing help. Use execvp/perror_fatail rather - than execdiff. Set errno to 0 before invoking popen. - Check for pclose failure properly. - (main, edit): If child exec fails, exit with 127 rather than trying to - print diagnostic. - Distinguish between subsidiary program failing and not being found. - (edit): Handle signals the same way, regardless of whether we're using - system or fork+exec. Check for system returning -1. - - * src/diff3.c (DIFF_PROGRAM_OPTION, HELP_OPTION): New constants. - (longopts, main): Use them. - (longopts, main, option_help_msgid): New option --diff-option=PROGRAM. - (main): Remove DIFF_PROGRAM support. - Check stdout after printing version. - (check_stdout): Report errno info if fclose fails. - (read_diff): Have child exit with status 127 when program is not found, - rather than trying to have the child report failure. Check for - pclose returning -1. - - * src/diff.c (DEFAULT_WIDTH): Remove. - (main): Use 130 instead of DEFAULT_WIDTH, since it's not really - builder-settable. Do not prepend DIFF_OPTIONS. - (check-stdout): If fclose (stdout) fails, print errno info. - (option_help_msgid): Default context is 3, not 2. - (usage): Work even if ptrdiff_t is wider than int. - - * doc/diff.texi (diff Options): Remove DIFF_OPTIONS. - (Invoking diff3, Invoking sdiff): Remove DIFF_PROGRAM. - (diff3 Options, sdiff Options): Add --diff-program. - - * src/cmp.c (valid_suffixes): - Add '0', to support suffixes like "MB" and "MiB". - (check_stdout): Don't assume that the translations of "write failed" - and of "standard output" lack '%'. - (main): Check stdout after printing version. - - * lib/setmode.c: [HAVE_FCNTL_H && HAVE_SETMODE_DOS]: Include . - [!HAVE_SETMODE_DOS]: Do not include . - (set_binary_mode): Return mode (not 1) if fd is a tty. - Do not assume that O_TEXT is zero. - - * doc/diff.texi (cmp Options): - In byte counts, a plain suffix (without any integer) - is assumed to modify the integer 1. Index terms like "kibibyte". - Document plain "k". - - (Reporting Bugs): Mention bug-report archive and test version - location. Ask for "diff --version" in bug reports. - -2001-12-13 Paul Eggert - - * src/diff.c (DEFAULT_WIDTH): Remove; couldn't be changed without - also changing option_help_msgid. All uses replaced with 130. - - * lib/setmode.c: Include fcntl.h and unistd.h only if - HAVE_SETMODE_DOS. - (setmode): Assume a file is binary unless the mode is O_TEXT. - * ms/README: Fix minor typos. - -2001-12-13 Eli Zaretskii - - * ms/README: New file. - - * lib/setmode.c (set_binary_mode) [HAVE_SETMODE_DOS]: Don't assume - O_TEXT has a zero value. If FD is a terminal device, do nothing - and return MODE, thus pretending that it was already in the - requested MODE. - [HAVE_FCNTL_H]: Include fcntl.h (needed for O_BINARY). - - * ms/config.sed: Remove the split prevention of config.status. - Fix Sed commands for converting absolute file names into - top_srcdir-relative ones. - - * ms/config.bat: Fix typos. - -2001-12-12 Neal H Walfield - - * diff.c (option_help_msgid): Correct the default context width - from 2 to 3. - -2001-12-11 Paul Eggert - - * m4/Makefile.am.in: Remove jm-glibc-io.m4 - - * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.5. - - * configure.ac (PR_PROGRAM): Use AC_DEFINE_UNQUOTED, so that - $PR_PROGRAM is expanded by sh. - (ptrdiff_t, ssize_t): Use AC_CHECK_TYPE with a default of int, - not AC_CHECK_TYPES. - (jm_AC_DOS, AC_FUNC_SETMODE_DOS): New macros. - (AC_CONFIG_FILES): Add ms/Makefile. - - * doc/diff.texi: Add --no-ignore-file-name-case. - File name case sensitivity now affects file name exclusion. - Fix typos. - - * src/util.c: Include dirname.h. - (dir_file_pathname): Use base_name rather than file_name_lastdirchar. - - * src/system.h (S_IXUSR, S_IXGRP, S_IXOTH): New macros. - Include rather than rolling it ourselves. - (file_name_lastdirchar, HAVE_SETMODE, set_binary_mode): Remove. - - * src/sdiff.c: Include . - (expand_name): Use base_name rather than file_name_lastdirchar, for - portability to DOS. - (main): Initialize xalloc_exit_failure before possibly invoking - any memory allocator. - - * src/io.c: Include setmode.h. - - * src/diff3.c (main): - Initialize xalloc_exit_failure before possibly invoking any memory - allocator. - - * src/diff.c: Include dirname.h, setmode.h. - - (main): Later values and/or styles now silently override earlier. - (specify_value, specify_style): Likewise. All callers changed. - Remove. - (binary, main, option_help_msgid, compare_files): - HAVE_SETMODE -> HAVE_SETMODE_DOS. - (NO_IGNORE_FILE_NAME_CASE_OPTION): New constant. - (longopts, main, option_help_msgid): Support it. - (exclude_options): New function. - (main): Use it. Initialize xalloc_exit_failure before potentially - allocating memory. - - (filetype): Distinguish executable files from others, as POSIX - suggests. - - (compare_files): Use base_name instead of file_name_lastdirchar. - - * src/cmp.c: Include , . - (hard_locale_LC_MESSAGES): New macro. - (sprintc): Remove int width arg; it's now the caller's responsibility - to pad. All callers changed. - (stat_buf): New static var; was formerly a local var in 'main'. - (valid_suffixes): Add 'K', for 'KiB'. - (option_help_msgid): Don't confuse bytes with characters. - (main): Set xalloc_exit_failure before invoking anything that might - allocate memory. Fix bug: -n was incorrectly ignored when optimizing - the case of regular files with different lengths. - (cmp): Use an index column wide enough to store this comparison's - indexes. In locales other than the POSIX locale, say "byte" - rather than "char". - - * ms/config.bat: pc -> ms - - * ms/Makefile.am, m4/setmode.m4, lib/setmode.c, lib/setmode.h: - New file. - - * lib/Makefile.am (noinst_HEADERS): Add dirname.h, setmode.h. - (libdiffutils_a_SOURCES): Add basename.c, setmode.c. - - * Makefile.am (SUBDIRS): Add ms. - -2001-12-10 Paul Eggert - - * m4/fnmatch.m4: Test for FNM_CASEFOLD. - -2001-12-03 Paul Eggert - - * lib/posix/regex.h: Fix copyright notice. - -2001-12-03 Paul Eggert - - * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.4. - - * diff.texi (direntry, Overview, Comparison, Binary, Invoking cmp): - Use "byte" rather than "character" when talking about cmp, since - it compares bytes, not character. - (Invoking cmp): New trailing operands FROM-SKIP and TO-SKIP. - -i or --ignore-initial now accepts FROM-SKIP:TO-SKIP. - New option -n or --bytes. - Count operands now may be in octal or hex, and may be followed by a - size multiplier. - - * configure.ac (DEFAULT_DIFF_PROGRAM): - Define to "diff", not "$bindir/diff" (which didn't work anyway). - (AC_CHECK_MEMBERS): Add struct stat.st_blksize, struct stat.st_rdev. - (AC_STRUCT_ST_BLKSIZE, AC_STRUCT_ST_RDEV): Remove; obsolescent. - (AC_FUNC_FORK): Use this, instead of obsolescent AC_FUNC_VFORK. - (AC_CONFIG_FILES, AC_CONFIG_COMMANDS): Add. - (AC_OUTPUT): Remove args; they were obsolescent. - - * util.c (setup_output, begin_output, finish_output): - HAVE_FORK -> HAVE_WORKING_FORK || HAVE_WORKING_VFORK. - * sdiff.c (diffpid, cleanup, main, edit): Likewise. - * diff3.c (read_diff): Likewise. - - * system.h (STAT_BLOCKSIZE): - Use HAVE_STRUCT_STAT_ST_BLKSIZE, not HAVE_ST_BLKSIZE. - (vfork): New macro. - (HAVE_FORK): Remove. - (set_binary_mode): New macro. - - * sdiff.c (main): HAVE_VFORK -> HAVE_WORKING_VFORK. - (edit): Reopen the temporary file after the editor has run, in case - the editor operates by unlinking the old file and linking a new one. - (P_tmpdir): Rename from PVT_tmpdir; this fixes a typo. - All uses changed. - - * io.c (sip, read_files): - Remove tests for HAVE_SETMODE; use set_binary_mode - instead of setmode. - (sip): Fix typo in backward lseek when reverting to text mode. - - * config.site, config.sed, config.bat: New file. - - * Makefile.am (EXTRA_DIST): Add xstrtol.c. - (noinst_HEADERS): Add xstrtol.h. - (libdiffutils_a_SOURCES): Add xstrtoumax.c. - - * cmp.c: : Include. - (ignore_initial): Now an array with 2 elements. All uses changed. - (bytes): New var. - (HELP_OPTION): New constant. - (long_options, main): Use it. - (long_options, option_help_msgid, main, cmp): - Add support for -n or --bytes. - (parse_ignore_initial): New function. - (option_help_msgid, main): Add -i M:N. - (usage, main): Add two optional trailing operands, a la BSD. - (main): setmode -> set_binary_mode. - (cmp): Report byte number of what we've seen, not of the entire file. - This is to be consistent with the line number, which is always relative - with what we've seen. - -2001-12-02 Paul Eggert - - * diff.c (main, compare_files): setmode -> set_binary_mode. - - * xstrtol.c (__xstrtol): Don't accept 'Ki'; require 'KiB'. - - * xstrtol.c (__xstrtol): Add support for IEC 60027-2. - -2001-11-25 Paul Eggert - - * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 2.7.3. - - * README-alpha: New file. - - * src/Makefile.am (INCLUDES): Add -I../lib, for regex.h. - - * configure.ac: - Don't set LIB_CLOCK_GETTIME to 'none required'; set it to - the empty string instead. - - * lib/Makefile.am (EXTRA_DIST): Add strtoimax.c, strtol.c. - - * Makefile.am (SUBDIRS): Put intl before lib, so that libintl.h exists. - - * lib/Makefile.am (noinst_HEADERS): Add unlocked-io.h. - - * configure.ac (__EXTENSIONS__): New define, for the unlocked macros. - - * README: Add copyright notice. - Remove stuff that doesn't apply any more. - - * doc/diff.texi: offsets -> indices for cmp - - * src/cmp.c (option_help_msgid): offsets -> indices - - * src/diff.c (option_help_msgid): - Don't mention --binary on POSIX hosts. - - * src/sdiff.c (STRIP_TRAILING_CR_OPTION): New constant. - (longopts, option_help_msgid, main): Add -E, --ignore-tab-expansion, - --strip-trailing-cr. - - * doc/diff.texi: Change direcategory from Utilities to GNU Packages. - Add individual utilities. - Switch to Free Documentation License. - @code -> @command - @samp -> @option - GNU -> @sc{gnu} - Expand tabs to spaces, except when in an example that actually - uses tabs. - Prefer @node with just one arg. - Document -E or --ignore-tab-expansion, --strip-trailing-cr, - --ignore-file-name-case. - Regular expressions are now grep style, not Emacs style. - cmp's -c or --print-chars option is now -b or --print-bytes. - Time stamps now depend on LC_TIME. - -p now implies ^[[:alpha:]$_]. - Flags now include ' and 0. - cmp -i is an alias for --ignore-initial - Document --from-file, --to-file. - Document DIFF_OPTIONS. - - * configure.ac (AC_CHECK_FUNCS): Add gettimeofday, clock_gettime. - (LIB_CLOCK_GETTIME): New subst. - - * src/system.h: Assume C89 or better. - (_GNU_SOURCE): Remove; config.h now defines it. - (alloca): Declare like coreutils does it. - (verify, TYPE_SIGNED, TYPE_MINIMUM, TYPE_MAXIMUM, O_RDWR, - S_IRUSR, S_IWUSR): New macros. - (STAT_BLOCKSIZE): Parenthesize definiens. - : Include if HAVE_INTTYPES_H. - (CHAR_MAX, INT_MAX): Remove. - (PTRDIFF_MAX, SIZE_MAX): New macros. - (strtoumax): New decl. - Include stddef.h. - (bzero): Remove. - (bindtextdomain, textdomain, N_): New macros. - (ISPRINT, ISSPACE): Remove ifndef wrappers. - (ISUPPER, ISDIGIT): Remove. - (TOLOWER): New macro. - (MIN): Renamed from min; all callers changed. - (MAX): Likewise, from max. - (lin): New type. - (LIN_MAX): New macro. - (file_name_cmp): Renamed from filename_cmp. All callers changed. - (file_name_lastdirchar): Renamed from file_name_lastdirchar. - All callers changed. - (could_be_mvfs_stat_bug, could_be_nfs_stat_bug, - dev_may_have_duplicate_ino): Remove. - (HAVE_SETMODE, NULL_DEVICE): New macros. - (same_file): Do not check attributes. - (same_file_attributes): New macro. - - * src/util.c: Assume C89 or better. - int -> bool for booleans. - int -> lin for line numbers. - int -> size_t for sizes. - Use angle-brackets when including quotesys.h. - Include error.h, regex.h, xalloc.h. - (message5): sizeof -> offsetof - (begin_output): Invoke pr without -f. - (lines_differ): Renamed from line_cmp, and return bool not 3-way int. - All callers changed. - Add support for IGNORE_TAB_EXPANSION. - (change_letter): Now an array rather than a function. All - callers changed. - (translate_range): Translate line numbers to long, not lin, - for convenience with printf. - (analyze_hunk): Return enum changes instead of a count of - inserts and deletes. All callers changed. - (zalloc): New function. - - * src/side.c: Assume C89 or better. - int -> bool for booleans. - int -> lin for line numbers. - - * src/sdiff.c: Assume C89 or better. - int -> bool for booleans. - int -> lin for line numbers. - Use angle-brackets when including getopt.h, quotesys.h. - Include error.h, freesoft.h, stdio.h, xalloc.h. - (copyright_string): Use only most recent year. - (authorship_msgid, option_help_msgid): Wrap in N_(). - - (tmpname): Now volatile. - (tmpmade): Remove. - (tmp): New var. - (private_tempnam, exists, letters): Remove. - (temporary_file): New function. - (edit): Use it. - (interact): Use strtoumax, not atoi. - - * src/normal.c: Assume C89 or better. - int -> lin for line numbers. - - * src/io.c: Assume C89 or better. - int -> bool for booleans. - int -> lin for line numbers. - int -> size_t for sizes. - Use angle-brackets when including cmpbuf.h. - Include regex.h, xalloc.h. - (word): Remove; now done in system.h. - (hash_value): New type; use it instead of 'unsigned' for hash values. - (file_block_read): New function. - (sip, slurp): Use it. Now static. - (sip): Ensure block size is a multiple of word size. Clear eof flag. - (slurp): Use xalloc_die to report memory exhaustion. - (find_and_hash_each_line): Use TOLOWER instead of _tolower. - Add support for IGNORE_TAB_EXPANSION. - (prepare_text_end): Strip trailing CR if requested. - (find_identical_ends): Prepare the text only once, - if they're duplicates. - Let the compiler take advantage more of the fact that the buffers are - word-aligned. - (primes): Remove. - (prime_offset): New var. - (read_var): Use prime_offset instead of primes. - Use zalloc instead of xmalloc + bzero. - - * src/ifdef.c: Assume C89 or better. - int -> lin for line numbers. - (format_group): Use strtoumax to parse line numbers. - (format_group, print_ifdef_lines): Use do_printf_spec to - handle printf specs. - (groups_letter_value): Don't use _tolower; it's locale-dependent. - (do_printf_spec): Renamed from scan_printf_spec; now does the printing. - - * src/ed.c: Assume C89 or better. - int -> lin for line numbers (or 'long' when that's more convenient). - (print_ed_hunk): Fix bug when handling double-dot inserts. - - * src/dir.c: Assume C89 or better. - int -> bool for booleans. - Include error.h, exclude.h, xalloc.h. - - (dir_sort): Return 0 on error, 1 on success. All callers changed. - compare_names -> compare_names_for_qsort. - - (compare_names): Try strcasecmp if ignore_file_name_case. Then try - strcoll. Use file_name_cmp only as a last resort. Warn about - strcasecmp or strcoll failure. - (compare_names_for_qsort): New function. - - (diff_dirs): Use compare_names rather than filename_cmp. - - * src/diff3.c: Assume C89 or better. - int -> bool for booleans. - int -> lin for line numbers. - Use angle-brackets when including getopt.h, quotesys.h. - Include error.h, freesoft.h, inttostr.h, xalloc.h. - (copyright_string): Use only most recent year. - (authorship_msgid, option_help_msgid): Wrap in N_(). - - Rename the following variables for consistency with user-visible - option spellings. All uses changed. - (text): Renamed from always_text. - (initial_tab): Renamed from tab_align_flag. - - (horizon_lines): Remove. Remove all uses. - - (main): Invoke bindtextdomain and textdomain after setlocale. - Rename "DIFF" to "DIFF_PROGRAM". - - Try to compare file0 to file1, because this is where changes are - expected to come from. Diffing between these pairs of files is more - likely to avoid phantom changes from file0 to file1. - However, use file2 as the common file if this is a 3-way diff, - for backward compatibility. Suggested by Karl Tomlinson. - - (create_diff3_block): Use xcalloc instead of malloc + bzero. - - (INT_STRLEN_BOUND): Remove; now in system.h. - - (read_diff): Always use --horizon-lines=100 rather than trying - to guess it. - Do not pass --inhibit-hunk-merge. - Minimum chunk size is 1, not 8KiB. - Use xalloc_die to report memory exhaustion. - (undotlines): Use long for start, not int. - - * src/diff.h: Assume C89 or better. - int -> bool for booleans. - int -> lin for line numbers. - Don't include regex.h. - (enum changes): New enum. - (enum line_class): Remove; subsumed by enum changes. - (enum output_style): New constant OUTPUT_UNSPECIFIED. - - (ignore_space_change_flag, ignore_all_space_flag): Remove. - (ignore_white_space): New decl, subsuming the above two. All - uses changed. - - Rename the following decls for consistency with user-visible - option spellings. All uses changed. - (text): Renamed from always_text_flag. - (ignore_blank_lines): Renamed from ignore_blank_lines_flag. - (ignore_case): Renamed from ignore_case_flag. - (brief): Renamed from no_details_flag. - (initial_tab): Renamed from tab_align_flag. - (expand_tabs): Renamed from tab_expand_flag. - (starting_file): Renamed from dir_start_file. - (paginate): Renamed from paginate_flag. - (sdiff_merge_assist): Renamed from sdiff_help_sdiff. - (left_column): Renamed from sdiff_left_only. - (suppress_common_lines): Renamed from sdiff_skip_common_lines. - (speed_large_files): Renamed from heuristic. - (minimal): Renamed from no_discards. - - (inhibit_hunk_merge): Remove. - - (strip_trailing_cr, excluded, time_format): New decls. - - (files_can_be_treated_as_binary): Renamed from ignore_some_changes. - - (group_format, line_format): Now char const *[], not char *[]. - - (struct file_data): Buffer is now word*, not char*, as it's always - aligned and this can help the compiler. buffered_chars -> buffered - (since it's a byte count, not a char count). All uses changed. - New member `eof'. - - (FILE_BUFFER): New macro. - - (excluded_filename, error, free_software_msgid): Remove decls; now in - other .h files. - - (sip, slurp): Remove decls. - (file_block_read): New decl. - (change_letter): Now an array, not a function. - (lines_differ): Renamed from line_cmp. - (analyze_hunk): Now returns enum changes rather than two change counts. - - * src/Makefile.am (diff_LDADD): New symbol. - - * src/diff.c: Assume C89 or better. - int -> bool for booleans. - long -> off_t for line numbers. - Use angle-brackets when including getopt.h, fnmatch.h, quotesys.h. - Include error.h, exclude.h, freesoft.h, hard-locale.h, prepargs.h, - regex.h, signal.h, xalloc.h. - (copyright_string): Use only most recent year. - (authorship_msgid, option_help_msgid): Wrap in N_(). - - Rename the following variables for consistency with user-visible - option spellings. All uses changed. - (binary): Renamed from binary_flag. - (new_file): Renamed from entire_new_file_flag. - (unidirectional_new_file): Renamed from unidirectional_new_file_flag. - (report_identical_files): Renamed from print_file_same_flag. - - (numeric_arg): Remove. - - (exclude, exclude_alloc, exclude_count, excluded_filename, add_exclude, - add_exclude_file): - Remove; now done by exclude.h. - - (BINARY_OPTION, FROM_FILE_OPTION, HELP_OPTION, HORIZON_LINES_OPTION, - IGNORE_FILE_NAME_CASE_OPTION, INHIBIT_HUNK_MERGE_OPTION, - LEFT_COLUMN_OPTION, LINE_FORMAT_OPTION, NORMAL_OPTION, - SDIFF_MERGE_ASSIST_OPTION, STRIP_TRAILING_CR_OPTION, - SUPPRESS_COMMON_LINES_OPTION, TO_FILE_OPTION, - UNCHANGED_LINE_FORMAT_OPTION, OLD_LINE_FORMAT_OPTION, - NEW_LINE_FORMAT_OPTION, UNCHANGED_GROUP_FORMAT_OPTION, - OLD_GROUP_FORMAT_OPTION, NEW_GROUP_FORMAT_OPTION, - CHANGED_GROUP_FORMAT_OPTION): New constants. - (longopts, main): Use them. - - (longopts, main, option_help_msgid): Add -E, --from-file, --to-file. - - (main): Invoke bindtextdomain and textdomain after setlocale. - Use grep syntax, not Emacs, for regular expressions. - Use exclude.h, not our own functions. - Use ISO 8601 time format in hard locales. - Prepend DIFF_OPTIONS. - Don't update ignore_some_changes. - Use strtoumax instead of numeric_arg. - Use specify_value when appropriate. - error -> try_help when appropriate. - -p now means ^[[:alpha:]$_], not ^[_a-zA-Z$]. - Ignore --inhibit-hunk-merge. - Prefer changed group formats to unchanged ones. - Remove now-unnecessary casts. - Set files_can_be_treated_as_binary. - - (specify_value): Renamed from specify_format. All uses changed. - - (specify_style): Default is now unspecified, not normal. All - uses changed. - - (set_mtime_to_now): New function. - (compare_files): Use it. Use memset, not bzero. - Set stdin mtime to current time even when stdin is not a regular file. - Check for same file attributes, as well as for same file. - Use files_can_be_treated_as_binary. - "write failed" -> "standard output on output failure. - - * src/context.c: Assume C89 or better. - int -> lin for line numbers. - Include inttostr.h, regex.h. - (TIMESPEC_NS): New macro. - (nstrftime): New decl. - (print_context_label): Use nstrftime and time_format to format times. - Print numeric time stamp value if localtime fails. - (print_context_function): New function. - (pr_context_hunk, pr_unidiff_hunk): Use it. - (find_function): Use size_t for sizes, not int. - - * src/cmp.c: Assume C89 or better. - int -> bool for booleans. - long -> off_t for line numbers. - Use angle-brackets when including cmpbuf.h, getopt.h. - Include error.h, freesoft.h, inttostr.h, xalloc.h. - (copyright_string): Use only most recent year. - (authorship_msgid): Wrap in N_(). - (buffer): Now word*, not char*. All uses changed. - (word): Remove macro; now in system.h. - (long_options, option_help_msgid, main): -c --print-chars -> - -b --print-bytes - (check_stdout): "write failed" -> "standard output" - (option_help_msgid): Wrap in N_(). - (main): Invoke bindtextdomain and textdomain after setlocale. - Use strtoumax instead of doing the work ourselves. - Check for same_file_attributes as well as same_file. - (cmp): Use ssize_t for read returns, not size_t. - Do not assume that size_t is not narrower than int. - Do not assume that line numbers fit in 'long'. - (block_compare_and_count, block_compare): - Compiler now checks that buffers are word-aligned. - (block_compare_and_count): Count sizes with size_t, not long. - (sprintc): byte arg is unsigned char, not unsigned. - - * src/analyze.c: Assume C89 or better. - int -> lin for line numbers. - int -> bool for booleans. - unsigned int -> size_t for sizes. - Use angle-brackets when including cmpbuf.h. - Include error.h, regex.h, xalloc.h. - (discard_confusing_lines, diff_2_files): Use zalloc rather - than xalloc+bzero. - (discard_confusing_lines): unsigned int -> lin for values that - are really line numbers. - (shift_boundaries): Do not inhibit hunk merges. - (build_reverse_script, build_script, diff_2_files): Use |, not ||. - (diff_2_files): no_details_flag & ~ignore_some_changes -> - files_can_be_treated_as_binary. Esure that buffer size is a multiple - of sizeof (word). Use file_block_read to read buffers. - (diff_2_files): Abort if output style is not one of the - expected styles. - -2001-11-23 Paul Eggert - - * src/Makefile.am, m4/vararrays.m4: New file. - - * m4/prereq.m4 (jm_PREREQ_READUTMP): - Remove, as it gives autoheader the willies. - - * m4/README, lib/prepargs.h, lib/prepargs.c, lib/offtostr.c, - lib/umaxtostr.c, lib/inttostr.c, lib/inttostr.h, - lib/imaxtostr.c, lib/freesoft.h: New files. - - * lib/freesoft.c: Include config.h, freesoft.h rather than diff.h. - (free_software_msgid): Wrap contents in N_. - - * lib/cmpbuf.h: Use prototypes instead of old-style functions. - - * lib/cmpbuf.c: - Don't include system.h; instead, include config.h, unistd.h. - Use prototypes instead of old-style functions. - (block_read): Don't assume that int is no wider than size_t. - - * lib/Makefile.am, po/POTFILES.in: New file. - -2001-11-22 Paul Eggert - - * pc/config.h: - Define filename_cmp as an object-like macro, not as a function-like - macro. - - * exgettext: Always operate in the C locale. - Set AWK using a method that works even with broken shells. - - * doc/Makefile.am: New file. - - * configure.ac (AC_INIT): - Use src/diff.c, not diff.h, as the source files got removed. - (AM_CONFIG_HEADER): Switch from AC_CONFIG_HEADER. - (AC_ARG_PROGRAM, AC_MINIX): Remove. - - (AC_PREREQ, AM_INIT_AUTOMAKE, ALL_LINGUAS, AC_PROG_AWK, - AM_PROG_CC_STDC, AC_PROG_RANLIB, AC_C_INLINE, AC_C_VARARRAYS, - DEFAULT_DIFF_PROGRAM, DEFAULT_EDITOR_PROGRAM, - AC_STRUCT_ST_MTIM_NSEC): Add. - - (PR_PROGRAM): AC_DEFINE. - - (AC_SYS_LARGEFILE): Use instead of our homebrew version. - - (_GNU_SOURCE): Define if not defined. - - (AC_CHECK_HEADERS): Add stdbool.h, unistd.h. - (AC_CHECK_TYPES): Add ptrdiff_t, uintmax_t. - (AM_GNU_GETTEXT, XGETTEXT): Add. - - (WITH_MVFS_STAT_BUG, WITH_NFS_STAT_BUG): Remove. - (HAVE_MEMCHR): Remove. - (AC_CHECK_FUNCS): Add diraccess. - (AC_REPLACE_FUNCS): Add memchr, waitpid. - (jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_GNU_STRFTIME, jm_FUNC_MALLOC, - jm_FUNC_REALLOC, jm_PREREQ_ERROR, jm_PREREQ_QUOTEARG, jm_PREREQ_REGEX, - jm_PREREQ_TEMPNAME, jm_AC_PREREQ_XSTRTOUMAX, AC_FUNC_FNMATCH): Add. - (fnmatch.h, regex.h): Do not create these files unless we're using - our own fnmatch and regex. - - (AC_OUTPUT): Add doc/Makefile, intl/Makefile, lib/Makefile, - lib/posix/Makefile, m4/Makefile, po/Makefile.in, src/Makefile. - - * Makefile.am: New file. - - * po/en_GB.po: Don't translate "program" to "programme". - -2001-11-20 Paul Eggert - - * m4/prereq.m4: New file. - -2001-03-16 Paul Eggert - - * lib/tempname.c (uint64_t): - Define if not defined, and if UINT64_MAX is not defined. - -2001-02-26 Paul Eggert - - * lib/tempname.c: glibc 1.32 - -2001-02-17 Paul Eggert - - * m4/Makefile.am.in: GNU fileutils 4.1 - -2001-01-09 Paul Eggert - - * lib/tempname.c (struct_stat64): New macro. - (direxists, __gen_tempname): Use it. This avoids a portability problem - with Solaris 8. - - * lib/tempname.c (): Include if HAVE_CONFIG_H. - (, , ): - Include only if STDC_HEADERS || _LIBC. - (): Include only if HAVE_FCNTL_H || _LIBC. - (): Include only if HAVE_UNISTD_H || _LIBC. - (): Include only if HAVE_SYS_TIME_H || _LIBC. - (__set_errno): Define this macro if doesn't. - (P_tmpdir, TMP_MAX, __GT_FILE, __GT_BIGFILE, __GT_DIR, __GT_NOCREATE): - Define these macros if doesn't. - (S_ISDIR, S_IRUSR, S_IWUSR, S_IXUSR): - Define these macros if - doesn't. Ignore S_ISDIR if STAT_MACROS_BROKEN. - (stat64, __getpid, __gettimeofday, __mkdir, __open, __open64, lxstat64, - __xstat64): Define if not _LIBC. - (__secure_getenv): Define if ! (HAVE___SECURE_GETENV || _LIBC). - (__gen_tempname): Invoke gettimeofday only if HAVE_GETTIMEOFDAY - || _LIBC; otherwise, fall back on plain "time". - Use macros like S_IRUSR | S_IWUSR rather than octal values like 0600. - - * lib/mkstemp.c (__GT_FILE): Define to zero if not defined. - -2000-10-25 Paul Eggert - - * lib/hard-locale.c: New file. - -2000-02-05 Paul Eggert - - * exgettext: From GCC repository - -1999-07-06 Paul Eggert - - * lib/mkstemp.c: glibc 2.2 - -1998-12-11 Paul Eggert - - * src/sdiff.c (lf_snarf): - Fix bug when help line wrapped around the input buffer. - -1998-09-15 Paul Eggert - - * diff.texi: Add @dircategory and @direntry. - -1998-09-14 Paul Eggert - - * Makefile.in (VERSION): Version 2.7.2. - (DEFAULT_DIFF_PROGRAM): Renamed from DIFF_PROGRAM. - (PR_PROGRAM): All `configure' to define it. - (srcs): Add $(diffutils_srcs), freesoft.c, quotearg.c instead of - quote.c, quotearg.h. - (distfiles): Add acconfig.h, message/*. - (all): Depend on $(destfiles), not info. - (version.c): Parenthesize `GNU diffutils'. - (common_o): Add freesoft.o - (diff_o): quote.o -> quotearg.o - (diff3_o, sdiff_o): Likewise. - (diff.dvi): Depend on version.texi. - (diff.o diff3.o quotearg.o sdiff.o util.o): - New dependency on quotearg.h - (diff3.o): DIFF_PROGRAM -> DEFAULT_DIFF_PROGRAM. - (sdiff.o): Likewise. - (messages.po): Remove. - (message/msgid.po, message/template.po): New rules. - (maintainer-clean): Renamed from realclean. - (install): Install from source directory, if applicable. - Invoke install-info if needed. - (install-strip): New rule. - (check): Set DIFF. - (stamp-h.in): Don't put the date into the timestamp. - (D_dirs): Add $D/message. - ($D.tar.gz): Compress with gzip -9. - Don't use ln to create distribution; it doesn't work with symlinks. - (srcs, distfiles, diff_o, diff3_o, sdiff_o): Rename quotearg.c to - quotesys.c and quotearg.h to quotesys.h. - - * configure.in (AC_PATH_PROG): Add PR_PROGRAM. - If available, prefer support for large files unless the user specified - one of the CPPFLAGS, LDFLAGS, or LIBS variables. - (AC_STRUCT_ST_RDEV): Add. - (HAVE_ST_FSTYPE_STRING): Add. - (--with-mvfs-stat-bug, --with-nfs-stat-bug): New options. - (HAVE_MEMCHR): New macro. - (AC_CHECK_FUNCS): Add sicprocmask. - - * diff.h (XTERN): Renamed from EXTERN. - (struct filedata): Remove dir_p arg. - (struct comparison): New type. - (diff_2_files, diff_dirs)" Ise ot/ - (error): Add printf attribute if applicable. - (free_software_msgid): New decl. - (pr_program): New decl. - (fatal): Add noreturn attribute. - (pfatal_with_name): Likewise. - - * system.h (__attribute__): New macro. - (getenv): Don't declare if HAVE_STDLIB_H. - (CHAR_MAX): New macro. - (): New include. - (): Include before . - (could_be_mvfs_stat_bug, could_be_nfs_stat_bug, - dev_may_have_duplicate_ino, same_special_file): New macros. - (same_file): Use them. - - * cmp.c (authorship_msgid): New var. - (free_software_msgid): New decl. - (error): Now has printf attribute. - (try_help): Likewise. - (long_options): Don't assume ASCII. - (try_help): Now accepts operand arg. - (main): Check for -1, not EOF, when calling getopt_long. - Report --ignore-initial value when complaining about it. - Output copyright and free software info with -v. - Don't assume ASCII. - Report last operand when one is missing. - Report text of extra operand. - Move block_read into cmpbuf.c. - - * diff.c (authorship_msgid): New var. - (quotesys.h): Include. - (ck_atoi): Remove. - (function_regexp_list, ignore_regexp_list): Now static. - (binary_flag): Renamed from binary_I_O. - (entire_new_file_flag, unidirectional_new_file_flag, - print_file_same_flag): Now static. - (numeric_arg): Renamed from ck_atoi. - New argument specifying the argument type. - (longopts, main): Don't assume ASCII. - (longopts): Remove old aliases --file-label, --entire-new-file, - --ascii, --print. - (main): Check for -1, not EOF, when calling getopt_long. - Use numeric_arg to report errors. - Report error if -l specified but pagination is not supported. - Report error if -S is specified twice with conflicting values. - Have --version conform to the new GNU standards. - Add new --from-file, --to-file, --inhibit-hun,-merge options. - Make the horizon at least as large as the context. - Add casts to pacify gcc -Wall. - (try_help): Add operand arg. - (option_help_msgid): Doc fix to match above. - (usage): Indent option_help_msgid. - (compare_files): Now takes struct comparison - instead of two directory names and a depth. - (NONEXISTENT, UNOPENED, ERRNO_ENCODE, ERRNO_DECODE): - New macros. - (DIR_P): New macro. - Report error if fflush does. - - * cmpbuf.c (block_read): Moved here from cmp.c. - - * cmpbuf.h (block_read): New decl. - - * io.c (cmpbuf.h): Include. - (slurp): Check for arithmetic overflow when computing buffer size. - - * dir.c (diff_dirs): Check for recursive directory loop. - Arg is now struct comparison const *. - (dir_loop): New function - - * analyze.c (no_discards): Remove. - (inhibit): Remove. - (shift_boundaries): Don't inhibit. If inhibit_hunk_merge is nonzero, - don't merge hunks. - (briefly_report): Now returns 2 if trouble, CHANGES otherwise. - (diff_2_files): Now takes struct comparison. If briefly_report reports - trouble, pass it on to caller. - - * side.c (print_half_line): Add brackets to pacify GCC -Wall. - - * sdiff.c (quotesys.h): Include. - (DIFF_PROGRAM, DEFAULT_EDITOR_PROGRAM): Remove. - (free_software_msgid, editor_program, not_found): New vars. - (diffbin, edbin): Remove. - (editor_program): Renamed from edbin. - (edit, interact): Now take extra string arg. - (exiterr, fatal, perror_fatal, try_help): Add noreturn attribute. - (sigset_t, sigemptyset, sigmask, sigaddset, SIG_BLOCK, SIG_SETMASK): - (sigprocmask): New macros, if !HAVE_SIGPROCMASK. - (error): Now has printf attribute. - (longopts, main): Don't assume ASCII. - (try_help): New operand arg. - (usage): Conform to new GNU standards. - (main): Set static vars for editor and diff program. - Compare getopt_long result to -1, not EOF. - -v conforms to new GNU standard. - Complain better about extra and missing operands. - If HAVE_VFORK, block SIGINT and SIGPIPE in the parent, since when - the child munges its handlers it may somp on the parent. - Pass rname to intract. - Translate not-found message before forking. - (give_help): Just output it all at once. - (edit): New args lname, lline, rname, rline. - (edit): New command 'd'. - (interact): New args lname, rname. - - * util.c (quotesys.h): Include. - (PR_PROGRAM): New macro. - (pfatal_with_name): Abort if error returns. - (fatal): Likewise. - (print_message_queue): Free message chain after printing. - (currently_recursive): Renamed from current_depth, and now a boolean. - (begin_output): Report error if fflush does. - Avoid stdio and gettext in child. - - * diff3.c (quotesys.h): Include. - (free_software_msgid): New decl. - (RANGE_START, RANGE_END): Renamed from START and END. - (fatal, perror_with_exit, try_help): Add noreturn attribute. - (error): Add printf attribute. - (diff_program): Now a ptr, not an array. - Initialize to DEFAULT_DIFF_PROGRAM instead of DIFF_PROGRAM. - (longopts, main): Don't assume ASCII. - (main): Use DIFF environment var to specify name of diff program. - Compare getopt_long result to -1, not EOF. - -v now reports version according to new GNU standard. - Report spelling of extra operand, or last operand before missing one. - (try_help): Now takes operand arg. - (option_help_ms): Fix typo: missing comma. - (usage): Update as per current GNU standards. - (environ): Remove decl. - (read_diff): Invoke diff with --inhibit-hunk-merge. - Translate `not found' message before forking. - Quote name of diff program. - Pass horizon lines. - `memory exhausted' -> `Memory exhausted' - - * pc/makefile (%.exe): Remove. - (pc-clean): Remove *.exe - * pc/makefile.sed (DEFAULT_DIFF_PROGRAM): Renamed from DIFF_PROGRAM. - When editing mkinstalldirs rule, look for exec_prefix and prefix. - Add .exe when installing files. - * pc/emx/config.h (same_file): Add. - * pc/config.h (same_file): Remove. - * pc/djgpp/config.h: Adjust to latest patch from eliz. - * pc/djgpp/makefile.sed: Don't alter PROGRAMS. - * pc/pc.c: Update FSF address. - (quote_system_arg): Renamed from system_quote_arg. - - * README: Add --with-mvfs-stat-bug, --with-nfs-stat-bug. - - * getmsgids: Add copyright date and update FSF address. - - * diff.texi: Document recent changes. - The patch doc still corresponds to patch 2.2, unfortunately. - Update GNU bug reporting address. Omit Larry Wall's address; - it's obsolete and he's busy with perl. - - * context.c: Fix spacing. - - * NEWS: Mention --from-file=FILE, --to-file=FILE, ed. - - * acconfig.h, freesoft.c, message/de.po, message/en_UK.po, - message/es.po, message/fr.po, message/pl.po, message/sv.po: - New files. - - * ed.c: Remove `#if 0'ed code. - - * normal.c, waitpid.c: Update FSF address. - -1998-03-15 Paul Eggert - - * quotesys.c: Renamed from quotearg.c. - - * quotesys.h: Renamed from quotearg.h - (__QUOTESYS_P): Renamed from __QUOTEARG_P. - -1997-05-05 Paul Eggert - - * quotesys.c, quotesys.h: New file. - -Mon Nov 14 05:10:56 1994 Paul Eggert - - Add internationalization support. - Several messages have been changed slightly, - to make them more consistent and easier to translate. - All strings that are messages are passed through gettext once before - being used, so that they can be localized. - Each function and macro whose first parameter is a gettext msgid - has had its first parameter's name changed so it ends in `msgid'. - All arrays of msgids have had their names changed to end in `msgid'. - `getmsgids' uses this to determine which strings are msgids. - - * pc/COPYING, pc/INSTALL, pc/config.h, - pc/djgpp/config.h, pc/djgpp/makefile.sed, - pc/emx/config.h, pc/emx/diff.def, pc/emx/gnuregex.def, - pc/emx/makefile.sed, - pc/makefile, pc/makefile.sed, pc/pc.c: New files, for PC support. - - * getmsgids: New file. - - * Makefile.in (PACKAGE, VERSION, diffutils_srcs, D): New vars. - (version.c, version.texi, messages.po): New files. - messages.po is built automatically from source files and `getmsgids'. - (distfiles): Add them, pc/*, and getmsgids. - (diff.info): Now depends on version.texi. - (realclean): Clean messages.po, version.*. - (dist): Just build $D.tar.gz. - ($D.tar.gz): New file, takes over old `dist' function. - Don't assume $(distfiles) are all in same directory. - - * configure.in (AC_CHECK_HEADERS): Add libintl.h, locale.h. - (AC_CHECK_LIB): Check for -lintl. - - * analyze.c (briefly_report): Rewrite `message (A?"B":"C")' as - `if (A) message ("B") : message ("C")'; this is for getmsgids. - (briefly_report, diff_2_files): For label, use file_label if set. - * diff.c (compare_files): Likewise. - - * system.h (gettext): Declare; use a stub if ! HAVE_LIBINTL_H. - (setlocale): Declare; use a stub if ! HAVE_LOCALE_H. - - * cmp.c, diff.c, diff3.c, sdiff.c (main): - Invoke setlocale first thing, to tell library we're internationalized. - (option_help_msgid): New constant. - (usage): Use it, so message is translated one option at a time. - * sdiff (help_msgid, give_help): Likewise. - - * cmp.c (sprintc): Renamed from `printc'. - Now outputs to a buffer instead of stdout. - (cmp): Use new sprintc; it's easier to internationalize. - - * diff.c (main): -D FOO now outputs `/* ! FOO */ instead of - `/* not FOO */'. - - * sdiff.c (version_string): Fix decl typo: `const' was missing. - (trapsigs): Ignore sigaction failure, to be compatible with `signal'. - - * util.c (struct msg, message5, print_message_queue): - Allocate just one block of memory to save a message. - -Wed Nov 9 17:42:44 1994 Paul Eggert - - * sdiff.c (trapsigs): Don't check signal return value, since it's - bogus under djgpp. - -Mon Oct 31 07:27:27 1994 Paul Eggert - - * Makefile.in (srcs, diff_o, diff3_o, sdiff_o): - New files quote.c, quote.o. - - * diff.h (function_regexp, ignore_regexp): Replace lists of compiled - regexps with these single compiled regexps. All users changed. - (regexp_list,function_regexp_list,ignore_regexp_list): Move to diff.c. - * diff.c (add_regexp): Build one big regexp instead of a regexp list. - (summarize_regexp_list): New function. - (regexp_list): Redesigned struct; moved here from diff.h. - (function_regexp_list, ignore_regexp_list): Likewise, for vars. - - * context.c (find_function): Simplify interface: - don't return size of function line. All callers changed. - (print_context_script, find_function): INT_MAX now denotes no - previous match; this is simpler than `- file->prefix_lines - 1'. - - * diff3.c (read_diff): Quote arguments with system_quote_arg. - * sdiff.c (main): Use system_quote_arg to compute command. - * diff.c (option_list): Quote options with system_quote_arg. - * util.c (begin_output): Use system_quote_arg to compute command. - - * util.c (pr_program): New var. - (analyze_hunk): Fix off-by-1 line length bug. - Match with one big regexp instead of a list of regexps. - Use new `trivial_length' local instead of comparing first byte to `\n'. - Help the compiler with linbuf local vars. - - * system.h (system_quote_arg): - New function; replaces SYSTEM_QUOTE_ARG macro. - -Sat Oct 15 20:09:12 1994 Paul Eggert - - * system.h (_tolower): Define if not already defined. - * io.c (find_and_hash_each_line): Change tolower to _tolower; this - speeds up diff -i considerably on some hosts (e.g. Solaris 2.3). - * util.c (line_cmp): Likewise. - * ifdef.c (groups_letter_value): Likewise. - - * diff.h (ignore_some_line_changes): Remove. All users changed. - * io.c (find_and_hash_each_line): Don't invoke line_cmp if the length - differs and -i is in force. Don't assume ISSPACE ('\n') is nonzero. - - * diff.h (xmalloc_exit_failure): New variable. - All `main' programs set this variable at the start. - xmalloc and xrealloc are now taken from GNU library. - * cmp.c (main): Align buffer size to word size; some mallocs care. - * io.c (slurp): Likewise. - * diff.c (add_exclude): Can now assume xrealloc (0, ...) works. - (add_regexp): Free storage on failure. Allocate storage all at one go. - * system.h (malloc, realloc): Remove unused declarations. - * diff3.c, sdiff.c, util.c (xmalloc, xrealloc): Remove. - * sdiff.c (diffarg): Take advantage of cleaner xrealloc semantics. - - * io.c (ROL): Use sizeof to make it more generic. - - * Makefile.in (common_o): New variable. - Link error.o and xmalloc.o into all programs. - (check): Depend on $(PROGRAMS). - - * diff.h (error): Change to GNU library standard. All callers changed. - * diff3.c (main): Use strerror (EISDIR) instead of "Is a directory". - (fatal, perror_with_exit): Use `error'. - * util.c (perror_with_name, fatal): Use GNU `error'. - (error): Remove. - -Wed Oct 12 17:04:40 1994 David J. MacKenzie (djm@duality.gnu.ai.mit.edu) - - * cmp.c (main): Set xmalloc_exit_failure. - -Sat Oct 1 05:24:19 1994 Paul Eggert - - * Version 2.7 released. - - * configure.in (AC_HEADER_SYS_WAIT): Add. - (AC_CHECK_HEADERS): Remove sys/wait.h. - (AC_CHECK_FUNCS): Add tmpnam. - * system.h (, WEXITSTATUS): Use simpler scheme - now that HAVE_SYS_WAIT_H is not set on hosts - that are incompatible with Posix applications. - - * util.c (dir_file_pathname): Use filename_lastdirchar not strrchr. - * sdiff.c (expand_name): Likewise. - (private_tempnam): Use tmpnam if HAVE_TMPNAM; this simplifies porting. - (exists, letters): Omit if HAVE_TMPNAM. - - * diff3.c (read_diff): If STAT_BLOCKSIZE yields zero, - adjust it to a more reasonable value. - -Sat Sep 24 20:36:40 1994 Paul Eggert - - * sdiff.c (exists, private_tempname): Adopt latest GNU libc algorithm. - (private_tempnam): Specialize for sdiff to avoid portability problems. - -Thu Sep 22 16:47:00 1994 Paul Eggert - - * configure.in (AC_ARG_PROGRAM): Added. - (AC_OUTPUT): Add [date > stamp-h]. - - * Makefile.in (DEFAULT_EDITOR_PROGRAM, DIFF_PROGRAM, LIBOBJS, - NULL_DEVICE, PR_PROGRAM, PROGRAMS): New variables. - (check, stamp-h.in, cmp.o, util.o): New targets. - (edit_program_name): New variable; replaces old binprefix method. - (install, uninstall): Use it. - (binprefix): Removed. - (distfiles): Add stamp-h.in. - (clean): Clean stamp-h. - (config.hin, config.h): Use time stamp files. - (cmp_o): Add $(LIBOBJS). - (install): Install info files from srcdir if they're not in `.'. - - * cmp.c, io.c (word): Don't define if already defined. - - * comp.c (main): Use setmode, not open(..., O_BINARY); this gets stdin. - Use NULL_DEVICE instead of "/dev/null". - (cmp): Use %lu instead of %ld when it is more likely to be right. - - * diff.h (PR_FILE_NAME): Rename to PR_PROGRAM and move to Makefile.in, - util.c. - - * diff3.c (main): Give proper diagnostic if too many labels were given. - (read_diff): Use SYSTEM_QUOTE_ARG. - - * system.h: : Include if HAVE_STRING_H, too. - : Include here. All includers changed. - (CTYPE_DOMAIN, ISDIGIT, ISPRINT, ISSPACE, ISUPPER): New macros that - work around common problems. - (O_BINARY): Remove. - (SYSTEM_QUOTE_ARG): New macros. - - * diff.c: Add comment. - - * util.c (PR_PROGRAM): Moved here from diff.h. - (begin_output): Use SYSTEM_QUOTE_ARG. - - * io.c (read_files): Set mode to binary before returning 1. - - * sdiff.c (TMPDIR_ENV): New macro. - (DEFAULT_EDITOR_PROGRAM): Renamed from DEFAULT_EDITOR for consistency. - (expand_name): Change `isdir' to `is_dir' to avoid theoretical ctype - namespace contamination. - (main): Use SYSTEM_QUOTE_ARG. - (private_tempnam): Don't access "/tmp" directly; use PVT_tmpdir. - -Tue Sep 13 18:46:43 1994 Paul Eggert - - * configure.in (AC_FUNC_MEMCHR): Remove. Autoconf didn't adopt this, - since we need not worry about an old experimental library - where memchr didn't work. - (AC_FUNC_MEMCMP): Not needed, since we only test for equality. - (AC_REPLACE_FUNCS): Add test for memchr. - (AC_CHECK_FUNCS): Check for memchr, not memcpy, since it'll be cached. - (AC_CHECK_HEADERS): Add string.h; regex.c uses on some old hosts. - - * system.h (memcmp): Define in terms of bcmp. - Use HAVE_MEMCHR to test for all mem* routines. - - * Makefile.in (srcs): Remove memcmp.c. - We use bcmp if memcmp doesn't work, since we only test for equality. - -Mon Sep 12 15:52:22 1994 Paul Eggert - - * configure.in (AC_CONFIG_HEADER): Rename config.h.in to config.hin. - (AC_ISC_POSIX, AC_MINIX): Go back to these old names for Autoconf 2. - (AC_CHECK_HEADERS): Remove now-redundant check for . - (AC_CHECK_FUNCS): Check for strchr. - (AC_FUNC_MEMCHR, AC_FUNC_MEMCMP, AC_CHECK_FUNCS): Use special-purpose - macros when suitable. - * memcmp.c: New file. - * Makefile.in (CPPFLAGS, DEFS, CFLAGS, LDFLAGS, prefix, exec_prefix): - Default to autoconf-specified strings. - (COMPILE): Use the defaults. - (srcs): Add memcmp.c. - (distfiles): Rename config.h.in->config.hin, install.sh->install-sh. - (Makefile, config.h, config.hin, config.status): Rework for - compatibility with Autoconf 2. - * io.c (binary_file_p): Assume non-broken memchr. - * memchr.c: Assume compiler understands void *; otherwise - we don't match GCC's internal declaration of memchr. - * system.h: Use more modern autoconf approach to standard C headers. - * version.c: Include , not "config.h". - - * diff.c, diff.h (ignore_some_line_changes): - New variable; replaces `length_varies'. - (line_end_char): Replace with '\n'; it wasn't being used consistently. - - * io.c (find_and_hash_each_line): Fix inconsistencies with -b -w -i and - incomplete lines. Put incomplete lines into their own bucket. - This means line_cmp no longer needs line length arguments, - and equivalence classes' line lengths no longer need to include \n. - Invoke line_cmp only if ignore_some_line_changes. - (prepare_text_end): -B no longer ignores missing newlines. - (read_files): Allocate another bucket for incomplete lines. - - * util.c (line_cmp): Now takes just two arguments. No longer - optimizes for common case of exact equality; the caller does that - optimization now. The caller is changed accordingly. - Optimize for the common case of mostly equality. - Use isupper+tolower instead of islower+toupper, for consistency. - - * waitpid.c (waitpid): Fix typo with internal scoping. - -Thu Sep 8 08:23:15 1994 Paul Eggert - - * configure.in: Revamp for Autoconf 2. - * memchr.c, waitpid.c: New source files for substitute functions. - * Makefile.in (diff_o, diff3_o, sdiff_o): Add $(LIBOBJS). - (srcs): Add memchr.c, waitpid.c. - (distfiles): Add install.sh, memchr.c, waitpid.c, install.sh. - * system.h: Use Autoconf 2 style HAVE_DIRENT_H etc. macros for dirs. - * dir.c (dir_sort): Prefer NAMLEN (p) to strlen (p->d_name). - Change VOID_CLOSEDIR to CLOSEDIR_VOID for Autoconf 2. - * sdiff.c, util.c (memchr, waitpid): Remove; use new substitutes. - * diff3.c (read_diff): Use new waitpid substitute. - - * cmp.c, diff.c, diff3.c, sdiff.c (check_stdout, try_help): New fns. - (usage): Just print more detailed usage message; let caller exit. - * diff.c (option_help): New variable. - (filetype): Add Posix.1b file types. - -Fri Sep 2 16:01:49 1994 Paul Eggert - - * configure.in: Switch to new autoconf names. Add sys/file.h test. - * Makefile.in (distclean): Clean config.cache, config.log - (used by new autoconf). - - * diff.c, diff3.c, (main), sdiff.c (trapsigs): If we'll have children, - make sure SIGCHLD isn't ignored. - - * diff3.c (DIFF_CHUNK_SIZE): Removed. Get size from STAT_BLOCKSIZE. - (INT_STRLEN_BOUND): New macro. - - * ifdef.c (format_group, groups_letter_value): - Use * instead of [] in prototypes. - - * system.h: Include only if HAVE_SYS_FILE_H. - (S_IXGRP, S_IXOTH, S_IXUSR): Remove unused macros. - - * util.c (begin_output): Check fdopen result. - - The following changes simplify porting to non-Posix environments. - * cmp.c, diff.c, diff3.c, sdiff.c, (main): Call initialize_main first. - * diff.c (binary_I_O): New variable for --binary option. - (main, usage, compare_files): Support --binary option. - (compare_files): Use filename_lastdirchar to find last - directory char in a file name. - * cmp.c (main), diff.c (compare_files), dir.c (compare_names, - diff_dirs): Use filename_cmp to compare file names. - Use same_file to determine whether two files are the same. - * context.c (print_context_label): Check whether ctime yields 0. - * diff3.c (read_diff), sdiff.c (cleanup, main, waitpid), - util.c (begin_output): Use popen+pclose if !HAVE_FORK. - * io.c (sip): If HAVE_SETMODE, test for binary files in O_BINARY mode. - * sdiff.c (ck_fdopen): Function removed. - (edit): Use system if !HAVE_FORK. - (execdiff): Now assumes caller has pushed all args, plus trailing 0. - All callers changed. - (private_tempnam): Try TMP if TMPDIR isn't defined. - Fit temporary filenames into 8.3 limit. - * system.h (STAT_BLOCKSIZE): Don't define if already defined. - (min, max): Undef if already defined. - (filename_cmp, filename_lastdirchar, HAVE_FORK, HAVE_SETMODE, - initialize_main, O_BINARY, same_file): New macros. - -Fri Jun 17 11:23:53 1994 David J. MacKenzie (djm@geech.gnu.ai.mit.edu) - - * Makefile.in (info, dvi, diff.dvi): New targets. - (clean): Remove TeX output files. - -Fri Jun 17 05:37:52 1994 Paul Eggert (eggert@twinsun.com) - - * cmp.c, io.c (word): Change from typedef to #define, to avoid - collision with Unicos 8.0 , which also typedefs `word'. - -Thu Apr 15 00:53:01 1994 Paul Eggert (eggert@twinsun.com) - - * diff3.c (scan_diff_line), util.c (print_number_range): Don't - rely on promotion to make the old-style parameter type agree - with the prototype parameter type; this doesn't work on - Apollos running bsd4.3. - -Mon Jan 3 02:05:51 1994 Paul Eggert (eggert@twinsun.com) - - * Makefile.in (LDFLAGS): Remove -g. Change all link commands - to use both $(CFLAGS) and $(LDFLAGS). - -Mon Dec 13 12:23:27 1993 Paul Eggert (eggert@twinsun.com) - - * system.h: Don't assume dirent.h exists just because - _POSIX_VERSION is defined. - -Fri Dec 3 18:39:39 1993 Paul Eggert (eggert@twinsun.com) - - * diff.c (main): allow -pu. - -Tue Nov 23 03:51:08 1993 Paul Eggert (eggert@twinsun.com) - - * Makefile.in (distclean): Remove config.h. - -Wed Nov 10 00:28:27 1993 Paul Eggert (eggert@twinsun.com) - - * Version 2.6 released. - - * analyze.c (too_expensive): New variable, for heuristic to - limit the worst-case cost to O(N**1.5 log N) at the price of - producing suboptimal output for large inputs with many differences. - (diff_2_files): Initialize it. - (struct partition): New type. - (SNAKE_LIMIT): New macro; merely documents already-used number 20. - (diag): New `minimal' arg; all callers changed. Put results into - struct partition. Apply `too_expensive' heuristic. Tune. - (compareseq): New `minimal' arg; all callers changed. Tune. - (shift_boundaries): Improve heuristic to also coalesce adjacent runs - of changes more often. - - * diff.c (long_options, main, usage): Add `--help'. - (main): Send version number to stdout, not stderr. - (usage): Send usage to stdout, not stderr. - (compare_files): Initialize `inf' properly. - - * io.c (word): Change to `int'; it makes a big difference on x86. - (sip, slurp): Put off allocating room to hold the whole file until we - have to read the whole file. This wins if the file turns out - to be binary. - - * util.c (xmalloc, xrealloc): "virtual memory" -> "memory" - (primes): Omit large primes if INT_MAX is small. - - * sdiff.c (usage): Send usage to stdout, not stderr. - (long_options, main, usage): Add `--help'. - (main): Send version number to stdout, not stderr. Exit afterwards. - - * diff3.c (usage): Send usage to stdout, not stderr. - (long_options, main, usage): Add `--help'. - (read_diff): Detect integer overflow in buffer size calculations. - - * cmp.c (word): New type. All uses of `long' for - word-at-a-time comparisons changed to `word'. - (long_options, main, usage): Add `--help'. - (usage): Send usage to stdout, not stderr. - (main): Add `-v'. Send version number to stdout, not stderr. - - * configure.in (AC_HAVE_HEADERS): Add unistd.h; remove AC_UNISTD_H. - -Mon Sep 27 07:20:24 1993 Paul Eggert (eggert@twinsun.com) - - * diff.c (add_exclude_file): Cast memchr to (char *) - to suppress bogus warnings on some nonstandard hosts. - - * Makefile.in (cmp): Add version.o. - - * analyze.c (diff_2_files): Work around memcmp bug with size=0. - - * cmp.c (main, usage, version_string): Add --version option. - - * system.h (malloc, realloc): Declare only if !HAVE_STDLIB_H. - (memchr): Declare only if !HAVE_MEMCHR. These changes are - needed to keep some nonstandard hosts happy. - - * util.c (memchr): Make first arg char const * - to match standard. - (xmalloc, xrealloc): Cast malloc, realloc - to (VOID *) to suppress bogus warnings on some nonstandard hosts. - - * diff3.c (xmalloc, xrealloc): Cast malloc, realloc - to (VOID *) to suppress bogus warnings on some nonstandard hosts. - - * sdiff.c (xmalloc, xrealloc): Cast malloc, realloc - to (VOID *) to suppress bogus warnings on some nonstandard hosts. - (lf_copy, lf_skip, lf_snarf): Cast memchr to (char *) - to suppress bogus warnings on some nonstandard hosts. - (memchr): Make first arg char const * - to match standard. - -Mon Sep 27 00:23:37 1993 Paul Eggert (eggert@twinsun.com) - - * Version 2.5 released. - - * analyze.c (diff_2_files): Work around memcmp bug with size=0. - - * cmp.c (main, usage, version_string): Add --version option. - * Makefile.in (cmp): Add version.o. - - * diff.c (add_exclude_file): Cast memchr to (char *) - to suppress bogus warnings on some nonstandard hosts. - * sdiff.c (lf_copy, lf_skip, lf_snarf): Likewise. - - * diff3.c, sdiff.c, util.c (xmalloc, xrealloc): Cast malloc, realloc - to (VOID *) to suppress bogus warnings on some nonstandard hosts. - - * sdiff.c, util.c (memchr): Make first arg char const * - to match standard. - - * system.h (malloc, realloc): Declare only if !HAVE_STDLIB_H. - (memchr): Declare only if !HAVE_MEMCHR. These changes are - needed to keep some nonstandard hosts happy. - - * xmalloc.c: Include always; some nonstandard hosts - need it for size_t even if STDC_HEADERS. - -Sat Sep 18 01:33:07 1993 Paul Eggert (eggert@twinsun.com) - - * configure.in (AC_STAT_MACROS_BROKEN): Add. - * system.h (S_IS{BLK,CHR,DIR,FIFO,REG,SOCK}): Fix defns if - STAT_MACROS_BROKEN. - - * Makefile.in (diff3, sdiff, cmp): Do not link $(ALLOCA). - - * analyze.c (discard_confusing_lines): Make defn static, like decl. - * sdiff.c (xmalloc): Likewise. - - * ifdef.c (format_group): Ensure isdigit argument isn't < 0. - - * side.c (print_half_line): Use isprint, since some hosts lack isgraph. - * util.c (output_1_line): Likewise. Ensure its argument isn't < 0. - (xmalloc, xrealloc): Remove needless casts. - - * system.h (volatile, const): - Define these before including any system headers, - so that they're used consistently in all system includes. - (getenv, malloc, realloc): Declare even if HAVE_STDLIB_H, since some - s don't declare them. - (memchr): Likewise for . - - * cmp.c, diff3.c, diff.h, sdiff.c: Include "system.h" first. - * diff.c: Remove redundant "system.h" inclusion. - - * diff3.c (xmalloc): Now static. - (xmalloc, realloc): Remove needless casts. - (READNUM): Ensure isdigit argument isn't negative. - -Wed Sep 14 07:14:15 1993 Paul Eggert (eggert@twinsun.com) - - * Version 2.4 released. - - * ifdef.c (scan_char_literal): New function, for new %c'x' and - %c'\ooo' format specs. - (format_group, print_ifdef_lines): Use it. Remove %0 format spec. - - * cmp.c (cmp): Don't try to read past end of file; this doesn't - work on ttys. - - * system.h, version.c: #include , not "config.h", to allow - configuring in a separate directory when the source directory has - already been configured. - * Makefile.in (COMPILE): New defn, with proper -I options so that - `#include ' works. - (.c.o, diff3.o, sdiff.o): Use it. - -Mon Sep 13 06:45:43 1993 Paul Eggert (eggert@twinsun.com) - - * diff.c (main, longopts): Add --line-format=FORMAT option. - (specify_format): Args no longer const pointers. All callers changed. - - * ifdef.c: Add support for %?c, %(A=B?T:E), PRINTF_SPECn formats. - (struct group): New struct. - (print_ifdef_lines): Use it to simplify argument passing. - Remove the convention that last arg -1 signifies that the lines - from file 2 are the same as the lines from file 1; this - convention no longer works, now that line numbers might be - printed out, since the line numbers may differ. - Add first FILE * argument to output to. All callers changed. - Use a faster test for the single-fwrite optimization. - (format_group, scan_printf_spec, groups_letter_value): New functions. - - * diff.h (group_format, line_format): No longer const pointers. - (format_ifdef): 1st arg is no longer const pointer. - - * configure.in: Configure HAVE_LIMITS_H, HAVE_STDLIB_H. - * system.h , , : - Include only if HAVE_LIMITS_H etc. - - * system.h (memcmp, memcpy, strchr, strrchr, struct dirent): Prefer - these standard names to the traditional names (bcmp, bcpy, index, - rindex, struct direct). All callers changed. - - * system.h (PARAMS, VOID): - Define earlier so that malloc decl can use VOID. - (STAT_BLOCKSIZE): Simplify ersatz defn; just use 8K. - -Fri Sep 3 00:21:02 1993 Paul Eggert (eggert@twinsun.com) - - * diff.c (compare_files): Two files with the same name must be - the same file; avoid a needless `stat' in that case. - -Fri Aug 27 06:59:03 1993 Paul Eggert (eggert@twinsun.com) - - * Pervasive changes for portability to 64-bit hosts: - Add prototypes to function declarations. - Use size_t, not int, when needed. - - * Other pervasive changes: - Use `const' more often. - Use STD{IN,OUT,ERR}_FILENO instead of [012]. - Use 0, not NULL, for portability to broken hosts. - - * Makefile.in: (srcs, objs, distfiles, cmp): New files cmpbuf.[ch]. - (distfiles): New files config.h.in, mkinstalldirs. - (.c.o): Add -DHAVE_CONFIG_H. - - * analyze.c: (diag): Pacify `gcc -Wall' with a useless assignment. - (diff_2_files): Use l.c.m., not max, of files' buffer sizes. - - * cmp.c: Make globals static when possible. - - (file): Now a 2-element array; replaces `file1' and `file2'. - (file_desc, buffer): Likewise, for file[12]_desc and buf[12]. - (main): Likewise, for stat_buf[12]. Index these variables with `i'. - - (ignore_initial): New var. - (long_options): Now const. Add `--ignore-initial'. - (usage): Sort options and add `--ignore-initial'. - (main, cmp): Add `--ignore-initial' support. - - (main): `cmp - -' now succeeds. - When comparing standard input to a file, and using a shortcut (e.g. - looking at file sizes or inode numbers), take the lseek offset into - account before deciding whether the files are identical. - Avoid mentioning `dev_t', `ino_t' for portability to nonstandard hosts. - Use l.c.m. of files' buffer sizes, not 8 * 1024. - ferror (stdout) does not imply errno has a useful value. - If 2nd file is "-", treat it first, in case stdin is closed. - - (cmp): Always compute `char_number', `smaller' for speed and simplicity. - Say `cmp: EOF on input', not `/usr/gnu/bin/cmp: EOF on input', - as per Posix.2. - - (block_compare_and_count): Increment line_number argument. - Remove end_char argument; it's always '\n'. All callers changed. - Do not assume sizeof(long) == 4; this isn't true on some 64-bit hosts. - (block_compare): Minimize differences with block_compare_and_count. - - (block_read): Coalesce `bp += nread's. - - (printc): Remove `FILE *' arg; output to stdout. All callers changed. - - * configure.in: Configure HAVE_SIGACTION, RETSIGTYPE, HAVE_VPRINTF. - Configure into config.h. - - * context.c (print_context_label): - Standard input's st_mtime is no longer a special case - here, since `compare_files' now sets it to the current time. - - * diff.c (usage): Sort options. - (filetype): New function. - (compare_files): Set stdin's st_mtime to be the current time. - Leave its name "-" instead of changing it to "Standard Input"; - to test whether a file is stdin, we must compare its name to "-" instead - of its desc to 0, since if it's closed other file descs may be 0. - When comparing standard input to a file, and using a shortcut (e.g. - looking at file sizes or inode numbers), take the lseek offset into - account before deciding whether the files are identical. - Pretend that nonexistent files have the same filetype as existing files. - Rename `errorcount' to `failed', since it's boolean. - In directory comparisons, if a file is neither a regular file nor a - directory, just print its type and the other file's type. - - * diff.h (Is_space, textchar): Remove. - (struct msg, msg_chain, msg_chain_end): Move to util.c. - (VOID): Move to system.h. - (line_cmp, version_string, change_letter, print_number_range, - find_change): New decls. - - * diff.texi: - whitespace -> white space. It now stands for whatever isspace yields. - Add --ignore-initial. - - * diff3.c (VOID): Move to system.h. - (version_string): Now char[]. - (usage): Sort options. - (process_diff): Pacify `gcc -Wall' with a useless assignment. - (read_diff): pid is of type pid_t, not int. Use waitpid if available. - (output_diff3): Simplify test for `\ No newline at end of file' message. - - * dir.c (struct dirdata): Rename `files' to `names' to avoid confusion - with external struct file_data `files'. - - * io.c (line_cmp): Move declaration to diff.h. - (textchar): Remove. - (find_and_hash_each_line): Use locale's definition of white space - instead of using one hardwired defn for -b and another for -w. - - * normal.c (change_letter, print_number_range, find_change): - Move decls to diff.h. - (print_normal_hunk): Now static. - - * sdiff.c (SEEK_SET): Move to system.h. - (version_string): Now char[], not char*. - (private_tempnam): Remove hardcoded limit on temporary file names. - (exiterr, perror_fatal, main): When exiting because of a signal, - exit with that signal's status. - (lf_refill, main, skip_white, edit, interact): Check for signal. - (ignore_SIGINT): Renamed from `ignore_signals'. - (NUM_SIGS, initial_handler): New macros. - (initial_action, signal_received, sigs_trapped): New vars. - (catchsig, trapsigs): Use sigaction if possible, since this closes the - windows of vulnerability that `signal' has. Use RETSIGTYPE not void. - When a signal comes in, just set a global variable; this is safer. - (checksigs, untrapsig): New functions. - (edit): Pacify `gcc -Wall' with a useless assignment. - Respond to each empty line with help, not to every other empty line. - (private_tempnam): Remove hardcoded limit on temporary file name length. - Don't assume sizeof (pid_t) <= sizeof (int). - - * system.h: (S_IXOTH, S_IXGRP, S_IXUSR, - SEEK_SET, SEEK_CUR, - STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO): - New macros, if system doesn't define them. - (volatile): Don't define if already defined. - (PARAMS): New macro. - (VOID): Move here from diff.h. - - * util.c (struct msg, msg_chain, msg_chain_end): Moved here from diff.h. - (message5): New function. - (pr_pid): New var. - (begin_output): Allocate `name' more precisely. - Put child pid into pr_pid, so that we can wait for it later. - Don't check execl's return value, since any return must be an error. - (finish_output): Detect and report output errors. - Use waitpid if available. Check pr exit status. - (line_cmp): Use locale's definition of white space - instead of using one hardwired defn for -b and another for -w. - (analyze_cmp): Avoid double negation with `! nontrivial'. - Pacify `gcc -Wall' be rewriting for-loop into do-while-loop. - (dir_file_pathname): New function. - - * version.c (version_string): Now char[], not char*. - -Thu Jul 29 20:44:30 1993 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu) - - * Makefile.in (config.status): Run config.status --recheck, not - configure, to get the right args passed. - -Thu Jul 22 10:46:30 1993 Paul Eggert (eggert@twinsun.com) - - * Makefile.in (dist): Replace `if [ ! TEST ]; then ACTION; fi' - with `[ TEST ] || ACTION || exit' so that the containing for-loop exits - with proper status for `make'. - -Thu Jul 8 19:47:22 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) - - * Makefile.in (installdirs): New target. - (install): Use it. - (Makefile, config.status, configure): New targets. - -Sat Jun 5 23:10:40 1993 Paul Eggert (eggert@twinsun.com) - - * Makefile.in (dist): Switch from .z to .gz. - -Wed May 26 17:16:02 1993 Paul Eggert (eggert@twinsun.com) - - * diff.c (main): Cast args to compare_files, for traditional C. - * side.c (print_sdiff_common_lines_print_sdiff_hunk): Likewise. - * analyze.c, diff3.c, sdiff.c, util.c: Don't assume NULL is defined - properly. - -Tue May 25 14:54:05 1993 Paul Eggert (eggert@twinsun.com) - - * analyze.c (diff_2_files): With -q, do not report that files differ - if all their differences are ignored. - (briefly_report): New function. - * diff.h (ignore_some_changes): New variable. - * diff.c (compare_files): Don't use the file size shortcut if - ignore_some_changes is nonzero, since the file size may differ - merely due to ignored changes. - (main): Set ignore_some_changes if we might ignore some changes. - Remove unsystematic assignment of 0 to static vars. - * io.c (read_files): New argument PRETEND_BINARY says whether to - pretend the files are binary. - - * diff3.c (tab_align_flag): New variable, for new -T option. - (main, usage, output_diff3): Add support for -T. - -Sun May 23 15:25:29 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * dir.c (dir_sort): Always init `data' to avoid GCC warning. - -Sat May 22 15:35:02 1993 Paul Eggert (eggert@twinsun.com) - - * Makefile.in (dist): Change name of package from diff to diffutils. - Don't bother to build .Z dist; .z suffices. - -Fri May 21 16:35:22 1993 Paul Eggert (eggert@twinsun.com) - - * diff.c: Include "system.h" to get memchr declaration. - * system.h (memchr): Declare if !HAVE_MEMCHR, not if - !HAVE_MEMCHR && !STDC_HEADERS. - -Wed May 19 17:43:55 1993 Paul Eggert (eggert@twinsun.com) - - * Version 2.3 released. - -Fri Apr 23 17:18:44 1993 Paul Eggert (eggert@twinsun.com) - - * io.c (find_identical_ends): Do not discard the last HORIZON_LINES - lines of the prefix, or the first HORIZON_LINES lines of the suffix. - * diff.c (main, longopts, usage): Add --horizon-lines option. - * diff3.c (main, process_diff, read_diff): Invoke second diff - with --horizon-lines determined by the first diff. - * diff.h, diff3.c (horizon_lines): New variable. - -Mon Mar 22 16:16:00 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * system.h [HAVE_STRING_H || STDC_HEADERS] (bcopy, bcmp, bzero): - Don't define if already defined. - -Fri Mar 5 00:20:16 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * diff.c (main): Use NULL in arg to compare_files. - -Thu Feb 25 15:26:01 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * system.h: Declare memchr #if !HAVE_MEMCHR && !STDC_HEADERS, - not #if !HAVE_MEMCHR || !STDC_HEADERS. - -Mon Feb 22 15:04:46 1993 Richard Stallman (rms@geech.gnu.ai.mit.edu) - - * io.c (find_identical_ends): Move complicated arg outside GUESS_LINES. - -Mon Feb 22 12:56:12 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * Makefile.in (.c.o): Add -I$(srcdir); put $(CFLAGS) last before $<. - -Sat Feb 20 19:18:56 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * io.c (binary_file_p): Return zero if file size is zero. - -Fri Feb 19 17:31:32 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu) - - * Version 2.2 released. - - * system.h [HAVE_STRING_H || STDC_HEADERS] (index, rindex): Don't - define if already defined. - -Wed Feb 17 17:08:00 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) - - * Makefile.in (srcs): Remove limits.h. - -Thu Feb 11 03:36:00 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * diff3.c (xmalloc): No longer static. - - * sdiff.c (edit): Allocate buf dynamically. - - * dir.c (dir_sort): Handle VOID_CLOSEDIR. - -Wed Feb 10 00:15:54 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * limits.h: File deleted (should never have been there). - -Tue Feb 9 03:53:22 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * Makefile.in (.c.o, diff3.o, sdiff.o): Put $(CFLAGS) last. - -Wed Feb 3 15:42:10 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) - - * system.h: Don't #define const; let configure do it. - -Mon Feb 1 02:13:23 1993 Paul Eggert (eggert@hal.gnu.ai.mit.edu) - - * Version 2.1 released. - - * Makefile.in (dist): Survive ln failures. Create .tar.z - (gzipped tar) file as well as .tar.Z (compressed tar) file. - -Fri Jan 8 22:31:41 1993 Paul Eggert (eggert@twinsun.com) - - * side.c (print_half_line): When the input position falls - outside the column, do not output a tab even if the output - position still falls within the column. - -Mon Dec 21 13:54:36 1992 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu) - - * Makefile.in (.c.o): Add -I. - -Fri Dec 18 14:08:20 1992 Paul Eggert (eggert@twinsun.com) - - * configure.in: Add HAVE_FCNTL_H, since system.h uses it. - -Tue Nov 24 10:06:48 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu) - - * Makefile.in: Note change from USG to HAVE_STRING_H. - -Mon Nov 23 18:44:00 1992 Paul Eggert (eggert@twinsun.com) - - * io.c (find_and_hash_each_line): When running out of lines, - double the number of allocated lines, instead of just doubling - that number minus the prefix lines. This is more likely to - avoid the need for further memory allocation. - -Wed Nov 18 20:40:28 1992 Paul Eggert (eggert@twinsun.com) - - * dir.c (dir_sort): Plug memory leak: space holding directory - contents was not being reclaimed. Get directory size from - struct file_data for initial guess at memory needed. - Detect errors when reading and closing directory. - (diff_dirs): Pass struct file_data to dir_sort. Finish plugging leak. - * diff.c (compare_files): Pass struct file_data to diff_dirs. - - * io.c (find_and_hash_each_line): Don't assume alloc_lines is - nonzero when allocating more lines. - -Thu Nov 12 16:02:18 1992 Paul Eggert (eggert@twinsun.com) - - * diff.c (main): Add `-U lines' as an alias for `--unified=lines'. - - * diff3.c (usage): Add third --label option in example. - - * util.c (analyze_hunk): Fix test for ignoring blank lines. - - * configure.in, system.h: Avoid USG; use HAVE_TIME_H etc. instead. - -Mon Nov 9 05:13:25 1992 Paul Eggert (eggert@twinsun.com) - - * diff3.c (main, usage): Add -A or --show-all. - -m now defaults to -A, not -E. Allow up to three -L options. - (output_diff3_edscript, output_diff3_merge): - Remove spurious differences between these two functions. - Output ||||||| for -A. Distinguish between conflicts and overlaps. - (dotlines, undotlines): New functions that output `Ns', not `N,Ns'. - (output_diff3_edscript, output_diff3_merge): Use them. - - * io.c (find_identical_ends): shift_boundaries needs an extra - identical line at the end, not at the beginning. - - * sdiff.c (edit): execvp wants char **, not const char **. - -Mon Oct 19 04:39:32 1992 Paul Eggert (eggert@twinsun.com) - - * context.c (print_context_script, find_function): Context - line numbers start with - file->prefix_lines, not 0. - - * io.c (binary_file_p): Undo last change; it was a library bug. - -Sun Oct 18 00:17:29 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * io.c (binary_file_p): Consider empty file as non-binary. - -Mon Oct 5 05:18:46 1992 Paul Eggert (eggert@twinsun.com) - - * diff3.c (main, make_3way_diff, using_to_diff3_block): Don't - report bogus differences (for one of -mexEX3) just because the - file0-file1 diffs don't line up with the file0-file2 diffs. - (This is entirely possible since we don't use diff's -n - option.) Always compare file1 to file2, so that diff3 sees - those changes directly. Typically, file2 is now the common - file, not file0. - (output_diff3_merge): The input file is file 0, not the common file. - - (FC, FO): New macros; they replace FILE1, FILE0 for two-way diffs, - to distinguish them from three-way diffs. - - * diff3.c (using_to_diff3_block): Fold repeated code into loops. - - * diff3.c (make_3way_diff, process_diff): Have the *_end - variable point to the next field to be changed, not to the last - object allocated; this saves an if-then-else. - - * diff3.c (process_diff): Use D_NUMLINES instead of its definiens. - - * diff3.c: Make fns and vars static unless they must be external. - -Wed Sep 30 09:21:59 1992 Paul Eggert (eggert@twinsun.com) - - * analyze.c (diff_2_files): OUTPUT_IFDEF is now robust. - * diff.h (ROBUST_OUTPUT_STYLE): Likewise. - (default_line_format): Remove. All refs removed. - - * ifdef.c (print_ifdef_lines): Add %L. Optimize %l\n even if user - specified it, as opposed to its being the default. - -Tue Sep 29 19:01:28 1992 Paul Eggert (eggert@twinsun.com) - - * diff.c (longopts, main): --{old,new,unchanged,changed}--group-format - are new options, so that -D is no longer overloaded. Set - no_diff_means_no_output if --unchanged-{line,group}-format allows it. - * diff.h (enum line_class): New type. - (group_format, line_format): Use it to regularize option flags. - All refs changed. - - * ifdef.c (format_ifdef, print_ifdef_lines): %n is no longer a format. - -Mon Sep 28 04:51:42 1992 Paul Eggert (eggert@twinsun.com) - - * diff.c (main, usage): Replace --line-prefix with the more general - --{old,new,unchanged}-line-format options. - * ifdef.c (format_ifdef, print_ifdef_lines): Likewise. - * diff.h (line_format): Renamed from line_prefix. All refs changed. - * diff.h, ifdef.c (default_line_format): New variable. - * util.c (output_1_line): New function. - (print_1_line): Use it. - - * ifdef.c: (format_ifdef, print_ifdef_lines): Add %0 format. - -Sun Sep 27 05:38:13 1992 Paul Eggert (eggert@twinsun.com) - - * diff.c (main): Add -E or --line-prefix option. Add -D'=xxx' - for common lines. Change default -D< format from copy of -D> - format to to -D<%<; similarly for default -D> format. - * diff.h (common_format, line_prefix): New variables. - * ifdef.c (format_ifdef): New function. - (print_ifdef_script, print_ifdef_hunk, print_ifdef_lines): - Use it for -D'=xxx', -E. - - * context.c (find_hunk): Glue together two non-ignorable changes that - are exactly CONTEXT * 2 lines apart. This shortens output, removes - a behavioral discontinuity at CONTEXT = 0, and is more compatible - with traditional diff. - - * io.c (find_identical_ends): Slurp stdin at most once. - - * util.c (print_line_line): line_flag is const char *. - -Thu Sep 24 15:18:07 1992 Paul Eggert (eggert@twinsun.com) - - * ifdef.c (print_ifdef_lines): New function, which fwrites a sequence - of lines all at once for speed. - (print_ifdef_script, print_ifdef_hunk): Use it. - -Thu Sep 24 05:54:14 1992 Paul Eggert (eggert@twinsun.com) - - * diff.c (main): Support new -D options for if-then-else formats. - (specify_format): New function. - * diff.h (ifndef_format, ifdef_format, ifnelse_format): New variables. - * ifdef.c (print_ifdef_hunk): Use the new variables instead of - a hardwired format. - - * side.c (print_1sdiff_line): Represent incomplete lines on output. - (print_sdiff_script): Likewise. Don't print 'q' at end, - since that doesn't work with incomplete lines. - * sdiff.c (interact): Don't assume diff output ends with 'q' line. - * diff.h (ROBUST_OUTPUT_STYLE): OUTPUT_SDIFF is now robust. - - * sdiff.c (lf_copy, lf_snarf): Use memchr instead of index, - to avoid dumping core when files contain null characters. - (memchr): New function (if memchr is missing). - - * io.c (sip): New arg SKIP_TEST to skip test for binary file. - (read_files): Don't bother testing second file if first is binary. - -Thu Sep 17 21:17:49 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * system.h [!USG && !_POSIX_VERSION]: Protect from conflicting - prototype for wait in sys/wait.h. - -Wed Sep 16 12:32:18 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * Makefile.in: Include binprefix in -DDIFF_PROGRAM. - -Tue Sep 15 14:27:25 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * Version 2.0. - -Sat Sep 12 01:31:19 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * util.c, diff.h, system.h [!HAVE_MEMCHR]: Don't use void * - and const when declaring memchr replacement. Declare memchr - if !STDC_HEADERS && !USG. - -Thu Sep 10 15:17:32 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * Makefile.in (uninstall): New target. - - * diff.c (excluded_filename): Use fnmatch, not wildmat. - (usage): Document -x, -X, --exclude, --exclude-from. - Makefile.in: Use fnmatch.c, not wildmat.c. - -Sun Sep 6 23:46:25 1992 Paul Eggert (eggert@twinsun.com) - - * configure.in: Add HAVE_MEMCHR. - * diff.h, util.c: Use it instead of MEMCHR_MISSING. - -Sun Sep 6 07:25:49 1992 Paul Eggert (eggert@twinsun.com) - - * diff.h: (struct line_def): Replace this 3-word struct with char *. - This uses less memory, particularly for large files with short lines. - (struct file_data): New member linbuf_base counts number of lines - in common prefix that are not recorded in linbuf; - this uses less memory if files are identical or differ only at end. - New member buffered_lines counts possibly differing lines. - New member valid_lines counts valid data. - New member alloc_lines - linbuf_base replaces old linbufsize. - linbuf[0] now always points at first differing line. - Remove unused members ltran, suffix_lines. - Add const where appropriate. - (Is_space): New macro, for consistent definition of `white space'. - (excluded_filename, memchr, sip, slurp): New declarations. - * ed.c (print_ed_hunk): Adjust to diff.h's struct changes. - * context.c (pr_context_hunk): Likewise. - * ifdef.c (print_ifdef_script): Likewise. - * side.c (print_sdiff_script, print_half_line): Likewise. - * util.c (analyze_hunk, line_cmp, print_1_line): Likewise. - - * analyze.c (shift_boundaries): Remove unneeded variable `end' and - unnecessary comparisons of `preceding' and `other_preceding' against 0. - (diff_2_files): When comparing files byte-by-byte for equality, - don't slurp them all in at once; just compare them a buffer at a time. - This can win big if they differ early on. - Move some code to compare_files to enable this change. - Use only one buffer for stdin with `diff - -'. - (discard_confusing_lines, diff_2_files): Coalesce malloc/free calls. - (build_script): Remove obsolete OUTPUT_RCS code. - - * diff.c (add_exclude, add_exclude_file, excluded_filename): New fns. - (main): Use them for the new --exclude and --exclude-from options. - (compare_files): Don't open a file unless it must be read. - Treat `diff file file' and `diff file dir' similarly. - Move some code here from diff_2_files to enable this. - Simplify file vs dir warning. - - * dir.c (dir_sort): Support new --exclude* options. - - * io.c (struct equivclass): Put hash code and line length here instead - of struct line_def, so that they can be shared. - (find_and_hash_each_line): Compute equivalence class as we go, - instead of doing it in a separate pass; this thrashes memory less. - Make buckets realloc-able, since we can't preallocate them. - Record one more line start than there are lines, so that we can compute - any line's length by subtracting its start from the next line's, - instead of storing the length explicitly. This saves memory. - Move prefix-handling code to find_identical_ends; - this wins with large prefixes. - Use Is_space, not is_space, for consistent treatment of white space. - (prepare_text_end): New function. - (find_identical_ends): Move slurping here, so it's only done when - needed. Work even if the buffers are the same (because of `diff - -'). - Compare prefixes a word at a time for speed. - (find_equiv_class): Delete; now done by find_and_hash_each_line. - (read_files): Don't slurp unless needed. - find_equiv_class's work is now folded into find_and_hash_each_line. - Don't copy stdin buffer if `diff - -'. - Check for running out of primes. - (sip, slurp): Split first part of `slurp' into another function `sip'. - `sip' sets things up and perhaps reads the first ST_BLKSIZE buffer to - see whether the file is binary; `slurp' now just finishes the job. - This lets diff_2_files compare binary files lazily. - Allocate a one-word sentinel to allow word-at-a-time prefix comparison. - Count prefix lines only if needed, only count the first file's prefix. - Don't bother to count suffix lines; it's never needed. - Set up linbuf[0] to point at first differing line. - (binary_file_p): Change test for binary files: - if it has a null byte in its first buffer, it's binary. - (primes): Add more primes. - - * util.c (line_cmp): Use bcmp for speed. - Use Is_space, not is_space, for consistent treatment of white space. - (translate_line_number): Internal line numbers now count from 0 - starting after the prefix. - (memchr): New function (if memchr is missing). - - * Makefile.in: Document HAVE_ST_BLKSIZE. Link with wildmat.o. - * system.h (STAT_BLOCKSIZE): New macro based on HAVE_ST_BLKSIZE. - * configure.in: Add AC_ST_BLKSIZE. - * wildmat.c: New file. - -Fri Sep 4 01:28:51 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * sdiff.c (xmalloc): Renamed from ck_malloc. Callers changed. - -Thu Sep 3 15:28:59 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * diff.h: Don't declare free, index, rindex. - -Tue Aug 11 22:18:06 1992 John Gilmore (gnu at cygnus.com) - - * io.c (binary_file_p): Use heuristic to avoid declaring info - files as binary files. Allow about 1.5% non-printing - characters (in info's case, ^_). - -Tue Jul 7 01:09:26 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * diff.h: Replace function_regexp and ignore_regexp with lists - of compiled regexps. - * analyze.c, context.c, util.c: Test whether the lists, not - the old variables, are empty. - * util.c (analyze_hunk), context.c (find_function): Compare - lines with the lists of regexps. - * diff.c (add_regexp): New function. - (main): Use it. - - * diff3: Add -v --version option. - * Makefile.in: Link with version.o. - - * system.h: New file. - * diff.h, cmp.c, diff3.c, sdiff.c: Use it. - - * diff.h, diff3.c: Include string.h or strings.h, as appropriate. - Declare malloc and realloc. - - * diff3.c (perror_with_exit): Include program name in message. - - * diff3.c: Lowercase error messages for GNU standards. - - * sdiff.c [USG || STDC_HEADERS]: Define bcopy in terms of memcpy. - - * sdiff.c: Use the version number from version.c. - * Makefile.in: Link with version.o. - - * cmp.c error.c xmalloc.c: New files from textutils. - * Makefile.in: Add rules for them. - - * diff.c (longopts): --unidirectional-new-file is like -P, not -N. - Rename --file-label to --label (leave old name, but undocumented). - - * sdiff.c, diff.c (usage): Condense messages and fix some errors. - - * diff3.c (main, usage): Add long-named options. - -Fri Jul 3 14:31:18 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu) - - * diff.h, diff3.c, sdiff.c: Change FOO_MISSING macros to HAVE_FOO. - -Thu Jun 25 16:59:47 1992 David J. MacKenzie (djm@apple-gunkies.gnu.ai.mit.edu) - - * diff.c: --reversed-ed -> --forward-ed. - -Wed Feb 26 12:17:32 1992 Paul Eggert (eggert@yata.uucp) - - * analyze.c, diff.c, diff.h, io.c: For -y, compare even if same file. - -Fri Feb 14 22:46:38 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * io.c, diff3.c, analyze.c: Add extra parentheses. - -Sun Feb 9 00:22:42 1992 Richard Stallman (rms@mole.gnu.ai.mit.edu) - - * diff.h (unidirectional_new_file_flag): New variable. - * diff.c (main): Set that for -P. - (compare_files): Support -P, somewhat like -N. - (longopts): Support long name for -P. - -Sat Jan 4 20:10:34 1992 Paul Eggert (eggert at yata.uucp) - - * Makefile.in: Distribute diff.info-* too. - - * README, sdiff.c: version number now matches version.c. - - * configure: Fix and document vfork test. - - * ifdef.c: Don't dump core if `diff -Dx f f'. - -Mon Dec 23 23:36:08 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) - - * diff.h, diff3.c, sdiff.c: Change POSIX ifdefs to - HAVE_UNISTD_H and _POSIX_VERSION. - -Wed Dec 18 17:00:31 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) - - * Makefile.in (srcs): Add sdiff.c. - (tapefiles): Add diff.texi and diff.info. - - * diff.h, diff3.c, sdiff.c: Use HAVE_VFORK_H instead of - VFORK_HEADER and VFORK_WORKS. - -Tue Dec 17 00:02:59 1991 Paul Eggert (eggert at yata.uucp) - - * Makefile.in (all): Add diff.info, sdiff. - - * configure, diff.c, sdiff.c: - Prefix long options with `--', not `+'. - * diff.c: Regularize option names. - - * configure: Fix check for vfork. - * configure, diff.c, diff.h, diff3.c, sdiff.c: - Use Posix definitions when possible. - - * context.c: Align context with tab if -T is given. Tune. - * diff.c, diff.h, side.c: Calculate column widths so that tabs line up. - * io.c: Add distinction between white space and printing chars. - * side.c: Don't expand tabs unless -t is given. - * side.c, util.c: Tab expansion now knows about '\b', '\f', '\r', '\v'. - * util.c: -w skips all white space. Remove lint. Tune. - - * sdiff.c: Support many more diff options, e.g. `-', `sdiff file dir'. - Ignore interrupts while the subsidiary editor is in control. - Clean up temporary file and kill subsidiary diff if interrupted. - Ensure subsidiary diff doesn't ignore SIGPIPE. - Don't get confused while waiting for two subprocesses. - Don't let buffers overflow. Check for I/O errors. - Convert to GNU style. Tune. - - * sdiff.c, util.c: Don't lose errno. - Don't confuse sdiff with messages like `Binary files differ'. - * sdiff.c, side.c: Don't assume that common lines are identical. - Simplify --sdiff-merge-assist format. - -Mon Sep 16 16:42:01 1991 Tom Lord (lord at churchy.gnu.ai.mit.edu) - - * Makefile.in, sdiff.c: introduced sdiff front end to diff. - - * Makefile.in, analyze.c, diff.c, diff.h, io.c, side.c: Added - sdiff-style output format to diff. - -Mon Aug 26 16:44:55 1991 David J. MacKenzie (djm at pogo.gnu.ai.mit.edu) - - * Makefile.in, configure: Only put $< in Makefile if using VPATH, - because older makes don't understand it. - -Fri Aug 2 12:22:30 1991 David J. MacKenzie (djm at apple-gunkies) - - * configure: Create config.status. Remove it and Makefile if - interrupted while creating them. - -Thu Aug 1 22:24:31 1991 David J. MacKenzie (djm at apple-gunkies) - - * configure: Check for +srcdir etc. arg and look for - Makefile.in in that directory. Set VPATH if srcdir is not `.'. - * Makefile.in: Get rid of $(archpfx). - -Tue Jul 30 21:28:44 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) - - * Makefile.in (prefix): Renamed from DESTDIR. - -Wed Jul 24 23:08:56 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) - - * diff.h, diff3.c: Rearrange ifdefs to use POSIX, - STDC_HEADERS, VFORK_MISSING, DIRENT. This way it works on - more systems that aren't pure USG or BSD. - Don't not define const if __GNUC__ is defined -- that would - break with -traditional. - * configure: Check for those features. - -Wed Jul 10 01:39:23 1991 David J. MacKenzie (djm at wookumz.gnu.ai.mit.edu) - - * configure, Makefile.in: $(INSTALLPROG) -> $(INSTALL). - -Sat Jul 6 16:39:04 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu) - - * Replace Makefile with configure and Makefile.in. - Update README with current compilation instructions. - -Sat Jul 6 14:03:29 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) - - * util.c (setup_output): Just save the args for later use. - (begin_output): Do the real work, with the values that were saved. - It's safe to call begin_output more than once. - Print the special headers for context format here. - * analyze.c (diff_2_files): Don't print special headers here. - * context.c (pr_context_hunk, pr_unidiff_hunk): Call begin_output. - * ed.c (print_ed_hunk, print_forward_ed_hunk, print_rcs_hunk): - * normal.c (print_normal_hunk): Likewise. - * ifdef.c (print_ifdef_hunk): Likewise. - * util.c (finish_output): Don't die if begin_output was not called. - -Thu Jun 20 23:10:01 1991 David J. MacKenzie (djm at geech.gnu.ai.mit.edu) - - * Makefile: Add TAGS, distclean, and realclean targets. - Set SHELL. - -Tue Apr 30 13:54:36 1991 Richard Stallman (rms at mole.gnu.ai.mit.edu) - - * diff.h (TRUE, FALSE): Undefine these before defining. - -Thu Mar 14 18:27:27 1991 Richard Stallman (rms@mole.ai.mit.edu) - - * Makefile (objs): Include $(ALLOCA). - -Sat Mar 9 22:34:03 1991 Richard Stallman (rms at mole.ai.mit.edu) - - * diff.h: Include regex.h. - -Thu Feb 28 18:59:53 1991 Richard Stallman (rms at mole.ai.mit.edu) - - * Makefile (diff3): Link with GNU getopt. - -Sat Feb 23 12:49:43 1991 Richard Stallman (rms at mole.ai.mit.edu) - - * io.c (find_equiv_class): Make hash code unsigned before mod. - - * diff.h (files): Add EXTERN. - -Sun Jan 13 21:33:01 1991 Richard Stallman (rms at mole.ai.mit.edu) - - * diff.c: +print option renamed +paginate. Remove +all-text. - -Mon Jan 7 06:18:01 1991 David J. MacKenzie (djm at geech.ai.mit.edu) - - * Makefile (dist): New target, replacing diff.tar and - diff.tar.Z, to encode version number in distribution directory - and tar file names. - -Sun Jan 6 18:42:23 1991 Michael I Bushnell (mib at geech.ai.mit.edu) - - * Version 1.15 released. - - * version.c: Updated from 1.15 alpha to 1.15 - - * context.c (print_context_number_range, - print_unidiff_number_range): Don't print N,M when N=M, print - just N instead. - - * README: Updated for version 1.15. - Makefile: Updated for version 1.15. - - * diff3.c (main): Don't get confused if one of the arguments - is a directory. - - * diff.c (compare_files): Don't get confused if comparing - standard input to a directory; print error instead. - - * analyze.c (diff_2_files), context.c (print_context_header, - print_context_script), diff.c (main), diff.h (enum - output_style): Tread unidiff as an output style in its own - right. This also generates an error when both -u and -c are - given. - - * diff.c (main): Better error messages when regexps are bad. - - * diff.c (compare_files): Don't assume stdin is opened. - - * diff3.c (read_diff): Don't assume things about the order of - descriptor assignment and closes. - - * util.c (setup_output): Don't assume things about the order - of descriptor assignment and closes. - - * diff.c (compare_files): Set a flag so that closes don't - happen more than once. - - * diff.c (main): Don't just flush stdout, do a close. That - way on broken systems we can still get errors. - -Mon Dec 24 16:24:17 1990 Richard Stallman (rms at mole.ai.mit.edu) - - * diff.c (usage): Use = for args of long options. - -Mon Dec 17 18:19:20 1990 Michael I Bushnell (mib at geech.ai.mit.edu) - - * context.c (print_context_label): Labels were interchanged badly. - - * context.c (pr_unidiff_hunk): Changes to deal with files - ending in incomplete lines. - * util.c (print_1_line): Other half of the changes. - -Mon Dec 3 14:23:55 1990 Richard Stallman (rms at mole.ai.mit.edu) - - * diff.c (longopts, usage): unidiff => unified. - -Wed Nov 7 17:13:08 1990 Richard Stallman (rms at mole.ai.mit.edu) - - * analyze.c (diff_2_files): No warnings about newlines for -D. - - * diff.c (pr_unidiff_hunk): Remove ref to output_patch_flag. - -Tue Oct 23 23:19:18 1990 Richard Stallman (rms at mole.ai.mit.edu) - - * diff.c (compare_files): For -D, compare even args are same file. - * analyze.c (diff_2_files): Likewise. - Also, output even if files have no differences. - - * analyze.c (diff_2_files): Print missing newline messages last. - Return 2 if a newline is missing. - Print them even if files end with identical text. - -Mon Oct 22 19:40:09 1990 Richard Stallman (rms at mole.ai.mit.edu) - - * diff.c (usage): Return 2. - -Wed Oct 10 20:54:04 1990 Richard Stallman (rms at mole.ai.mit.edu) - - * diff.c (longopts): Add +new-files. - -Sun Sep 23 22:49:29 1990 Richard Stallman (rms at mole.ai.mit.edu) - - * context.c (print_context_script): Handle unidiff_flag. - (print_context_header): Likewise. - (print_unidiff_number_range, pr_unidiff_hunk): New functions. - * diff.c (longopts): Add element for +unidiff. - (main): Handle +unidiff and -u. - (usage): Mention them. - -Wed Sep 5 16:33:22 1990 Richard Stallman (rms at mole.ai.mit.edu) - - * io.c (find_and_hash_each_line): Deal with missing final newline - after buffering necessary context lines. - -Sat Sep 1 16:32:32 1990 Richard Stallman (rms at mole.ai.mit.edu) - - * io.c (find_identical_ends): ROBUST_OUTPUT_FORMAT test was backward. - -Thu Aug 23 17:17:20 1990 Richard Stallman (rms at mole.ai.mit.edu) - - * diff3.c (WIFEXITED): Undef it if WEXITSTATUS is not defined. - * context.c (find_function): Don't try to return values. - -Wed Aug 22 11:54:39 1990 Richard Stallman (rms at mole.ai.mit.edu) - - * diff.h (O_RDONLY): Define if not defined. - -Tue Aug 21 13:49:26 1990 Richard Stallman (rms at mole.ai.mit.edu) - - * Handle -L option. - * context.c (print_context_label): New function. - (print_context_header): Use that. - * diff.c (main): Recognize the option. - (usage): Updated. - * diff.h (file_label): New variable. - * diff3.c (main): Recognize -L instead of -t. - - * diff3.c (main): Support -m without other option. - - * diff3.c (WEXITSTATUS, WIFEXITED): Define whenever not defined. - - * diff3.c (bcopy, index, rindex): Delete definitions; not used. - (D_LINENUM, D_LINELEN): Likewise. - (struct diff_block): lengths includes newlines. - (struct diff3_block): Likewise. - (always_text, merge): New variables. - (read_diff): Return address of end, not size read. Calls changed. - Pass -a to diff if given to diff3. - current_chunk_size now an int. Detect error in `pipe'. - Check for incomplete line of output here. - (scan_diff_line): Don't make scan_ptr + 2 before knowing it is valid. - No need to check validity of diff output here. - Include newline in length of line. - (main): Compute rev_mapping here. Handle -a and -m. - Error message if excess -t operands. Error for incompatible options. - Error if `-' given more than once. - Fix error storing in tag_strings. - (output_diff3): REV_MAPPING is now an arg. Call changed. - Change syntax of "missing newline" message. - Expect length of line to include newline. - (output_diff3_edscript): Return just 0 or 1. - REV_MAPPING is now an arg. Call changed. - (output_diff3_merge): New function. - (process_diff): Better error message for bad diff format. - (fatal, perror_with_exit): Return status 2. - - * analyze.c (diff_2_files): Report missing newline in either - or both files, if not robust output style. - - * util.c (setup_output): Detect error from pipe. - No need to close stdin. - - * util.c (print_1_line): Change format of missing-newline msg. - Change if statements to switch. - - * io.c (slurp): Don't mention differences in final newline if -B. - - * io.c (binary_file_p): Use ISO char set as criterion, not ASCII. - - * io.c (find_identical_ends): Increase value of BEG0 by 1. - Other changes in backwards scan to avoid decrementing pointers - before start of array, and set LINES properly. - - * diff.h (ROBUST_OUTPUT_STYLE): New macro. - * io.c (find_identical_ends, find_and_hash_each_line): Use that macro. - - * diff.h (dup2): Don't define if XENIX. - - * diff.c (main): Check for write error at end. - - * context.c (find_function): Don't return a value. - Use argument FILE rather than global files. - - * analyze.c: Add external function declarations. - * analyze.c (build_script): Turn off explicit check for final newline. - - * analyze.c (discard_confusing_lines): Make integers unsigned. - -Tue Jul 31 21:37:16 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * io.c (find_and_hash_each_line): Correct the criterion - for leaving out the newline from the end of the line. - -Tue May 29 21:28:16 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * dir.c (diff_dirs): Free things only if nonzero. - -Mon Apr 16 18:31:05 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * diff.h (NDIR_IN_SYS): New macro controls location of ndir.h. - - * diff3.c (xmalloc, xrealloc): Don't die if size == 0 returns 0. - -Sun Mar 25 15:58:42 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * analyze.c (discard_confusing_lines): - `many' wasn't being used; use it. - Canceling provisionals near start of run must handle already - canceled provisionals. - Canceling subruns of provisionals was canceling last nonprovisional. - -Sat Mar 24 14:02:51 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * analyze.c (discard_confusing_lines): - Threshold for line occurring many times scales by square root - of total lines. - Within each run, cancel any long subrun of provisionals. - Don't update `provisional' while canceling provisionals. - In big outer loop, handle provisional and nonprovisional separately. - -Thu Mar 22 16:35:33 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * analyze.c (discard_confusing_lines): - The first loops to discard provisionals from ends failed to step. - In second such loops, keep discarding all consecutive provisionals. - Increase threshold for stopping discarding, and also check for - consecutive nondiscardables as separate threshold. - -Fri Mar 16 00:33:08 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * diff3.c (read_diff): Pass -- as first arg to diff. - - * diff3.c: Include wait.h or define equivalent macros. - (read_diff): Don't use stdio printing error in the inferior. - Remember the pid and wait for it. Report failing status. - Report failure of vfork. - -Sun Mar 11 17:10:32 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * diff3.c (main): Accept -t options and pass to output_diff3_edscript. - (usage): Mention -t. - (read_diff): Use vfork. - (vfork): Don't use it on Sparc. - - * diff.h (vfork): Don't use it on Sparc. - -Tue Mar 6 22:37:20 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * diff3.c (dup2): Don't define on Xenix. - - * Makefile: Comments for Xenix. - -Thu Mar 1 17:19:23 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * analyze.c (diff_2_files): `message' requires three args. - -Fri Feb 23 10:56:50 1990 David J. MacKenzie (djm at albert.ai.mit.edu) - - * diff.h, util.c, diff3.c: Change 'void *' to 'VOID *', with - VOID defined as void if __STDC__, char if not. - -Sun Feb 18 20:31:58 1990 David J. MacKenzie (djm at albert.ai.mit.edu) - - * Makefile: Add rules for getopt.c, getopt1.c, getopt.h. - - * getopt.c, getopt.h, getopt1.c: New files. - - * main.c (main, usage): Add long options. - - * analyze.c (shift_boundaries): Remove unused var 'j_end'. - -Thu Feb 8 02:43:16 1990 Jim Kingdon (kingdon at pogo.ai.mit.edu) - - * GNUmakefile: include ../Makerules before Makefile. - -Fri Feb 2 23:21:38 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * analyze.c (diff_2_files): If -B or -I, don't return 1 - if all changes were ignored. - -Wed Jan 24 20:43:57 1990 Richard Stallman (rms at albert.ai.mit.edu) - - * diff3.c (fatal): Output to stderr. - -Thu Jan 11 00:25:56 1990 David J. MacKenzie (djm at hobbes.ai.mit.edu) - - * diff.c (usage): Mention -v. - -Wed Jan 10 16:06:38 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * diff3.c (output_diff3_edscript): Return number of overlaps. - (main): If have overlaps, exit with status 1. - -Sun Dec 24 10:29:20 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * io.c (find_equiv_class): Fix typo that came from changing init of B - to an assignment. - - * version.c: New file. - * diff.c (main): -v prints version number. - - * io.c (binary_file_p): Null char implies binary file. - -Fri Nov 17 23:44:55 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * util.c (print_1_line): Fix off by 1 error. - -Thu Nov 16 13:51:10 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * util.c (xcalloc): Function deleted. - - * io.c (slurp): Null-terminate the buffer. - - * io.c (read_files): Delete unused vars. - - * io.c (find_equiv_class): Don't index by N if too low. - - * dir.c (dir_sort): Delete the extra declaration of compare_names. - - * diff.h: Don't declare xcalloc. Declare some other functions. - - * analyze.c (shift_boundaries): - Test for END at end of range before indexing by it. - Fix misspelling of `preceding' in var names. - -Sat Nov 11 14:04:16 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * diff3.c (using_to_diff3_block): Delete unused vars. - (make_3way_diff, process_diff_control, read_diff, output_diff3): Likewise. - -Mon Nov 6 18:15:50 EST 1989 Jay Fenlason (hack@ai.mit.edu) - - * README Fix typo. - -Fri Nov 3 15:27:47 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * diff.c (usage): Mention -D. - - * ifdef.c (print_ifdef_hunk): Write comments on #else and #endif. - -Sun Oct 29 16:41:07 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * diff.c (compare_files): Don't fflush for identical files. - -Wed Oct 25 17:57:12 1989 Randy Smith (randy at apple-gunkies.ai.mit.edu) - - * diff3.c (using_to_diff3_block): When defaulting lines from - FILE0, only copy up to just under the *lowest* line mentioned - in the next diff. - - * diff3.c (fatal): Add \n to error messages. - -Wed Oct 25 15:05:49 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * Makefile (tapefiles): Add ChangeLog. - -Tue Oct 3 00:51:17 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * diff3.c (process_diff, create_diff3_block): Init ->next field. - -Fri Sep 29 08:16:45 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * util.c (line_cmp): Alter end char of line 2, not line 1. - -Wed Sep 20 00:12:37 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * Makefile (diff.tar): Expect ln to fail on some files; - copy them with cp. - -Mon Sep 18 02:54:29 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * Handle -D option: - * io.c (find_and_hash_each_line): Keep all lines of 1st file. - * diff.c (main): Handle -D option. - (compare_files): Reject -D if files spec'd are directories. - * analyze.c (diff_2_files): Handle OUTPUT_IFDEF case. - -Fri Sep 1 20:15:50 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * diff.c (option_list): Rename arg VECTOR as OPTIONVEC. - -Mon Aug 28 17:58:27 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * diff.c (compare_files): Clear entire inf[i].stat. - -Wed Aug 23 17:48:47 1989 Richard Stallman (rms at apple-gunkies.ai.mit.edu) - - * io.c (find_identical_ends): Sign was backward - determining where to bound the scan for the suffix. - -Wed Aug 16 12:49:16 1989 Richard Stallman (rms at hobbes.ai.mit.edu) - - * analyze.c (diff_2_files): If -q, treat all files as binary. - * diff.c (main): Detect -q, record in no_details_flag. - -Sun Jul 30 23:12:00 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * diff.c (usage): New function. - (main): Call it. - -Wed Jul 26 02:02:19 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * diff.c (main): Make -C imply -c. - -Thu Jul 20 17:57:51 1989 Chris Hanson (cph at kleph) - - * io.c (find_and_hash_each_line): Bug fix in context handling, - introduced by last change. - -Fri Jul 14 17:39:20 1989 Chris Hanson (cph at kleph) - - * analyze.c: To make RCS work correctly on files that don't - necessarily end in newline, introduce some changes that cause - diffs to be sensitive to missing final newline. Because - non-RCS modes don't want to be affected by these changes, they - are conditional on `output_style == OUTPUT_RCS'. - (diff_2_files) [OUTPUT_RCS]: Suppress the "File X missing - newline" message. - (build_script) [OUTPUT_RCS]: Cause the last line to compare as - different if exactly one of the files is missing its final - newline. - - * io.c (find_and_hash_each_line): Bug fix in - ignore_space_change mode. Change line's length to include the - newline. For OUTPUT_RCS, decrement last line's length if - there is no final newline. - (find_identical_ends) [OUTPUT_RCS]: If one of the files is - missing a final newline, make sure it's not included in either - the prefix or suffix. - - * util.c (print_1_line): Change line output routine to account - for line length including the newline. - -Tue Jun 27 02:35:28 1989 Roland McGrath (roland at hobbes.ai.mit.edu) - - * Makefile: Inserted $(archpfx) where appropriate. - -Wed May 17 20:18:43 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * diff3.c [USG]: Include fcntl.h. - - * diff.h [USG]: New compilation flags HAVE_NDIR, HAVE_DIRECT. - -Wed Apr 26 15:35:57 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * dir.c (diff_dirs): Two new args, NONEX1 and NONEX2, say to pretend - nonex dirs are empty. - (dir_sort): New arg NONEX, likewise. - * diff.c (compare_files): Pass those args. - Sometimes call diff_dirs if subdir exists in just one place. - -Wed Apr 12 01:10:27 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * io.c (find_identical_ends): Set END0 *after* last char - during backward scan for suffix. - -Sat Apr 8 15:49:49 1989 Randall Smith (randy at apple-gunkies.ai.mit.edu) - - * diff3.c (using_to_diff3_block): Now find high marks in files 1 - and 2 through mapping off of the last difference instead of the - first. - - * diff3.c: Many trivial changes to spelling inside comments. - -Fri Feb 24 12:38:03 1989 Randall Smith (randy at gluteus.ai.mit.edu) - - * util.c, normal.c, io.c, ed.c, dir.c, diff.h, diff.c, context.c, - analyze.c, Makefile: Changed copyright header to conform with new - GNU General Public license. - * diff3.c: Changed copyright header to conform with new GNU - General Public license. - * COPYING: Made a hard link to /gp/rms/COPYING. - -Fri Feb 24 10:01:58 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * io.c (slurp): Leave 2 chars space at end of buffer, not one. - (find_identical_ends): Special case if either file is empty; - don't try to make a sentinel since could crash. - -Wed Feb 15 14:24:48 1989 Jay Fenlason (hack at apple-gunkies.ai.mit.edu) - - * diff3.c (message) Re-wrote routine to avoid using alloca() - -Wed Feb 15 06:19:14 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * io.c (find_identical_ends): Delete the variable `bytes'. - -Sun Feb 12 11:50:36 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * io.c (slurp): ->bufsize is nominal amount we have room for; - add room for sentinel when calling xmalloc or xrealloc. - - * io.c (find_identical_ends): Do need overrun check in finding suffix. - -Fri Feb 10 01:28:15 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * diff.c (main): -C now takes arg to specify context length. - Now -p to show C function name--Damned IEEE! - Fatal error if context length spec'd twice. - - * ed.c (print_ed_hunk): Now special treatment only for lines containing - precisely a dot and nothing else. Output `..', end the insert, - substitute that one line, then resume the insert if nec. - - * io.c (find_and_hash_lines): When backing up over starting context, - don't move past buffer-beg. - - * io.c (find_identical_ends): Use sentinels to make the loops faster. - If files are identical, skip the 2nd loop and return quickly. - (slurp): Leave 1 char extra space after each buffer. - - * analyze.c (diff_2_files): Mention difference in final newlines. - -Wed Jan 25 22:44:44 1989 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * dir.c (diff_dirs): Use * when calling fcn ptr variable. - -Sat Dec 17 14:12:06 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * Makefile: New vars INSTALL and LIBS used in some rules; - provide default defns plus commented-put defns for sysV. - -Thu Nov 17 16:42:53 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * dir.c (dir_sort): Open-trouble not fatal; just say # files is -1. - (diff_dirs): If dir_sort does that, give up and return 2. - - * diff.c (compare_files): Don't open directories. - Don't close them specially either. - Cross-propagate inf[i].dir_p sooner. - -Sun Nov 13 11:19:36 1988 Richard Stallman (rms at sugar-bombs.ai.mit.edu) - - * diff.h: Declare index, rindex. - - * diff.c (compare_files): If comparing foodir with b/f, - use foodir/f, not foodir/b/f. - - * diff.c (compare_files): Don't print "are identical" msg for 2 dirs. - Status now 1 if one file is a dir and the other isn't, etc. - -Thu Nov 3 16:30:24 1988 Randall Smith (randy at gluteus.ai.mit.edu) - - * Makefile: Added a define for diff3 to define DIFF_PROGRAM. - - * util.c: Added hack to make sure that perror was not called with - a null pointer. - - * diff.c: Changed S_IFDIR to S_IFMT in masking type of file bits - out. - - * diff3.c: Included USG compatibility defines. - - * diff.h: Moved sys/file.h into #else USG section (not needed or - wanted on System V). - - * ed.c, analyze.c, context.c: Shortened names to 12 characters for - the sake of System V (too simple not to do). - - -Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1997, 1998, 1999, -2000, 2001, 2002 Free Software Foundation, Inc. - -This file is part of GNU Diffutils. - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -This program is distributed in the hope that they will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. diff --git a/gnu/dist/diffutils/INSTALL b/gnu/dist/diffutils/INSTALL deleted file mode 100644 index 62ea076c1f7..00000000000 --- a/gnu/dist/diffutils/INSTALL +++ /dev/null @@ -1,231 +0,0 @@ -Copyright 1994, 1995, 1996, 1999, 2000, 2001 Free Software Foundation, -Inc. - - This file is free documentation; the Free Software Foundation gives -unlimited permission to copy, distribute and modify it. - -Basic Installation -================== - - These are generic installation instructions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, and a -file `config.log' containing compiler output (useful mainly for -debugging `configure'). - - It can also use an optional file (typically called `config.cache' -and enabled with `--cache-file=config.cache' or simply `-C') that saves -the results of its tests to speed up reconfiguring. (Caching is -disabled by default to prevent problems with accidental use of stale -cache files.) - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If you are using the cache, and at -some point `config.cache' contains results you don't want to keep, you -may remove or edit it. - - The file `configure.ac' (or `configure.in') is used to create -`configure' by a program called `autoconf'. You only need -`configure.ac' if you want to change it or regenerate `configure' using -a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. Run `./configure --help' -for details on some of the pertinent environment variables. - - You can give `configure' initial values for variables by setting -them in the environment. You can do that on the command line like this: - - ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix - - *Note Defining Variables::, for more details. - -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not support the `VPATH' -variable, you have to compile the package for one architecture at a -time in the source code directory. After you have installed the -package for one architecture, use `make distclean' before reconfiguring -for another architecture. - -Installation Names -================== - - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - - There may be some features `configure' cannot figure out -automatically, but needs to determine by the type of host the package -will run on. Usually `configure' can figure that out, but if it prints -a message saying it cannot guess the host type, give it the -`--build=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name which has the form: - - CPU-COMPANY-SYSTEM - -where SYSTEM can have one of these forms: - - OS KERNEL-OS - - See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the host type. - - If you are _building_ compiler tools for cross-compiling, you should -use the `--target=TYPE' option to select the type of system they will -produce code for. - - If you want to _use_ a cross compiler, that generates code for a -platform different from the build platform, you should specify the host -platform (i.e., that on which the generated programs will eventually be -run) with `--host=TYPE'. In this case, you should also specify the -build platform with `--build=TYPE', because, in this case, it may not -be possible to guess the build platform (it sometimes involves -compiling and running simple test programs, and this can't be done if -the compiler is a cross compiler). - -Sharing Defaults -================ - - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Defining Variables -================== - - Variables not defined in a site shell script can be set in the -environment passed to `configure'. However, some packages may run -configure again during the build, and the customized values of these -variables may be lost. In order to avoid this problem, you should set -them in the `configure' command line, using `VAR=value'. For example: - - ./configure CC=/usr/local2/bin/gcc - -will cause the specified gcc to be used as the C compiler (unless it is -overridden in the site shell script). - -`configure' Invocation -====================== - - `configure' recognizes the following options to control how it -operates. - -`--help' -`-h' - Print a summary of the options to `configure', and exit. - -`--version' -`-V' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`--cache-file=FILE' - Enable the cache: use and save the results of the tests in FILE, - traditionally `config.cache'. FILE defaults to `/dev/null' to - disable caching. - -`--config-cache' -`-C' - Alias for `--cache-file=config.cache'. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`configure' also accepts some other, not widely useful, options. Run -`configure --help' for more details. - diff --git a/gnu/dist/diffutils/INSTALLME b/gnu/dist/diffutils/INSTALLME deleted file mode 100644 index eab41194c35..00000000000 --- a/gnu/dist/diffutils/INSTALLME +++ /dev/null @@ -1,53 +0,0 @@ -Installation instructions specific to GNU Diffutils - - Copyright (C) 2001, 2002 Free Software Foundation, Inc. - - This file is part of GNU Diffutils. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. - - -Please send comments and problem reports to . - -If you have a problem with internationalization, you might be able to -work around it as described in ABOUT-NLS by invoking `./configure ---disable-nls'. Many of the problems arise from dynamic linking -issues on non-GNU platforms (e.g. with the iconv library). Such -problems tend to be shared by other GNU applications on these -platforms, and can usually be fixed by carefully tweaking your non-GNU -installation. If you have an older version of libiconv, please -upgrade to the latest one, preferably libiconv-1.8 or newer. -(libiconv-1.8 is not yet available as of this writing, but it should -be out soon.) If the problem seems isolated to diffutils, though, -please report a bug. - -This program requires a Standard C compiler (C89 or later); if you -have an older K&R compiler, please install GCC first. - -If you make changes to the source code, you may need recent test -versions of GNU build tools to regenerate the intermediate files. The -following versions were used to generate the intermediate files in -this distribution: - -* GNU Autoconf 2.53 - -* GNU Automake 1.6 - -* GNU gettext 0.11.1 - -* GNU help2man 1.27 - -* GNU texinfo 4.2 diff --git a/gnu/dist/diffutils/Makefile.am b/gnu/dist/diffutils/Makefile.am deleted file mode 100644 index a579b1d5aa6..00000000000 --- a/gnu/dist/diffutils/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -# Main Automakefile for GNU diffutils. - -# Copyright (C) 2001, 2002 Free Software Foundation, Inc. - -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2, or (at your option) -## any later version. - -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. - -## You should have received a copy of the GNU General Public License -## along with this program; if not, write to the Free Software -## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -## 02111-1307, USA. - -EXTRA_DIST = config/config.rpath exgettext INSTALLME -SUBDIRS = doc lib m4 ms src man po - -ACLOCAL_AMFLAGS = -I m4 diff --git a/gnu/dist/diffutils/Makefile.in b/gnu/dist/diffutils/Makefile.in deleted file mode 100644 index 75304fd68ac..00000000000 --- a/gnu/dist/diffutils/Makefile.in +++ /dev/null @@ -1,455 +0,0 @@ -# Makefile.in generated by automake 1.6 from Makefile.am. -# @configure_input@ - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 -# 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# Main Automakefile for GNU diffutils. - -# Copyright (C) 2001, 2002 Free Software Foundation, Inc. -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = . - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_HEADER = $(INSTALL_DATA) -transform = @program_transform_name@ -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ - -EXEEXT = @EXEEXT@ -OBJEXT = @OBJEXT@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -AMTAR = @AMTAR@ -AWK = @AWK@ -BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CPP = @CPP@ -DATADIRNAME = @DATADIRNAME@ -DEPDIR = @DEPDIR@ -GENCAT = @GENCAT@ -GLIBC21 = @GLIBC21@ -GMSGFMT = @GMSGFMT@ -HAVE_LIB = @HAVE_LIB@ -HELP2MAN = @HELP2MAN@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLBISON = @INTLBISON@ -INTLLIBS = @INTLLIBS@ -INTLOBJS = @INTLOBJS@ -INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ -LIB = @LIB@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ -LTLIB = @LTLIB@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -PACKAGE = @PACKAGE@ -POSUB = @POSUB@ -PR_PROGRAM = @PR_PROGRAM@ -RANLIB = @RANLIB@ -STRIP = @STRIP@ -U = @U@ -USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -am__include = @am__include@ -am__quote = @am__quote@ -install_sh = @install_sh@ - -EXTRA_DIST = config/config.rpath exgettext INSTALLME -SUBDIRS = doc lib m4 ms src man po - -ACLOCAL_AMFLAGS = -I m4 -subdir = . -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = config.h -CONFIG_CLEAN_FILES = -DIST_SOURCES = - -RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \ - uninstall-info-recursive all-recursive install-data-recursive \ - install-exec-recursive installdirs-recursive install-recursive \ - uninstall-recursive check-recursive installcheck-recursive -DIST_COMMON = README ABOUT-NLS AUTHORS COPYING ChangeLog INSTALL \ - Makefile.am Makefile.in NEWS THANKS aclocal.m4 config.hin \ - config/config.guess config/config.rpath config/config.sub \ - config/depcomp config/install-sh config/mdate-sh config/missing \ - config/mkinstalldirs config/texinfo.tex configure configure.ac -DIST_SUBDIRS = $(SUBDIRS) -all: config.h - $(MAKE) $(AM_MAKEFLAGS) all-recursive - -.SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnits Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe) - -$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck -$(srcdir)/configure: $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) - cd $(srcdir) && $(AUTOCONF) - -$(ACLOCAL_M4): configure.ac m4/c-bs-a.m4 m4/c-stack.m4 m4/check-decl.m4 m4/codeset.m4 m4/dos.m4 m4/error.m4 m4/fnmatch.m4 m4/gettext.m4 m4/glibc21.m4 m4/gnu-source.m4 m4/iconv.m4 m4/inttypes.m4 m4/jm-glibc-io.m4 m4/lcmessage.m4 m4/lib-ld.m4 m4/lib-link.m4 m4/lib-prefix.m4 m4/longlong.m4 m4/malloc.m4 m4/mbrtowc.m4 m4/mbstate_t.m4 m4/prereq.m4 m4/progtest.m4 m4/realloc.m4 m4/regex.m4 m4/setmode.m4 m4/st_mtim.m4 m4/stdbool.m4 m4/strftime.m4 m4/vararrays.m4 m4/xstrtoumax.m4 - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) - -config.h: stamp-h1 - @if test ! -f $@; then \ - rm -f stamp-h1; \ - $(MAKE) stamp-h1; \ - else :; fi - -stamp-h1: $(srcdir)/config.hin $(top_builddir)/config.status - @rm -f stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status config.h - -$(srcdir)/config.hin: $(top_srcdir)/configure.ac $(ACLOCAL_M4) - cd $(top_srcdir) && $(AUTOHEADER) - touch $(srcdir)/config.hin - -distclean-hdr: - -rm -f config.h -uninstall-info-am: - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done - -ETAGS = etags -ETAGSFLAGS = - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique - -TAGS: tags-recursive $(HEADERS) $(SOURCES) config.hin $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) config.hin $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$tags$$unique" \ - || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = . -distdir = $(PACKAGE)-$(VERSION) - -am__remove_distdir = \ - { test ! -d $(distdir) \ - || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr $(distdir); }; } - -GZIP_ENV = --best -distcleancheck_listfiles = find . -type f -print - -distdir: $(DISTFILES) - @if sed 15q $(srcdir)/NEWS | fgrep -e "$(VERSION)" >/dev/null; \ - then :; else \ - echo "NEWS not updated; not releasing" 1>&2; \ - exit 1; \ - fi - $(am__remove_distdir) - mkdir $(distdir) - $(mkinstalldirs) $(distdir)/config $(distdir)/po - @for file in $(DISTFILES); do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkinstalldirs) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - cp -pR $$d/$$file $(distdir)$$dir \ - || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" \ - distdir=../$(distdir)/$$subdir \ - distdir) \ - || exit 1; \ - fi; \ - done - -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r $(distdir) -dist-gzip: distdir - $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -dist dist-all: distdir - $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - $(am__remove_distdir) - GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - - chmod -R a-w $(distdir); chmod a+w $(distdir) - mkdir $(distdir)/=build - mkdir $(distdir)/=inst - chmod a-w $(distdir) - dc_install_base=`$(am__cd) $(distdir)/=inst && pwd` \ - && cd $(distdir)/=build \ - && ../configure --srcdir=.. --prefix=$$dc_install_base \ - --with-included-gettext \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && (test `find $$dc_install_base -type f -print | wc -l` -le 1 \ - || { echo "ERROR: files left after uninstall:" ; \ - find $$dc_install_base -type f -print ; \ - exit 1; } >&2 ) \ - && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \ - && rm -f $(distdir).tar.gz \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck - $(am__remove_distdir) - @echo "$(distdir).tar.gz is ready for distribution" | \ - sed 'h;s/./=/g;p;x;p;x' -distcleancheck: distclean - if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 -check-am: all-am -check: check-recursive -all-am: Makefile config.h -installdirs: installdirs-recursive -installdirs-am: - -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* - -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-recursive - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-recursive - -rm -f config.status config.cache config.log -distclean-am: clean-am distclean-generic distclean-hdr distclean-tags - -dvi: dvi-recursive - -dvi-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-generic - -uninstall-am: uninstall-info-am - -uninstall-info: uninstall-info-recursive - -.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \ - clean-generic clean-recursive dist dist-all dist-gzip distcheck \ - distclean distclean-generic distclean-hdr distclean-recursive \ - distclean-tags distcleancheck distdir dvi dvi-am dvi-recursive \ - info info-am info-recursive install install-am install-data \ - install-data-am install-data-recursive install-exec \ - install-exec-am install-exec-recursive install-info \ - install-info-am install-info-recursive install-man \ - install-recursive install-strip installcheck installcheck-am \ - installdirs installdirs-am installdirs-recursive \ - maintainer-clean maintainer-clean-generic \ - maintainer-clean-recursive mostlyclean mostlyclean-generic \ - mostlyclean-recursive tags tags-recursive uninstall \ - uninstall-am uninstall-info-am uninstall-info-recursive \ - uninstall-recursive - -# 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/gnu/dist/diffutils/NEWS b/gnu/dist/diffutils/NEWS deleted file mode 100644 index 348ac82e57e..00000000000 --- a/gnu/dist/diffutils/NEWS +++ /dev/null @@ -1,202 +0,0 @@ -User-visible changes in version 2.8.1: - -* Documentation fixes. - -User-visible changes in version 2.8: - -* cmp and diff now conform to POSIX 1003.1-2001 (IEEE Std 1003.1-2001) - if the underlying system conforms to POSIX and if the _POSIX2_VERSION - environment variable is set to 200112. Conformance removes support - for `diff -NUM', where NUM is a number. Use -C NUM or -U NUM instead. -* cmp now supports trailing operands SKIP1 and SKIP2, like BSD cmp. -* cmp -i or --ignore-initial now accepts SKIP1:SKIP2 option value. -* New cmp option: -n or --bytes. -* cmp's old -c or --print-chars option has been renamed; - use -b or --print-bytes instead. -* cmp now outputs "byte" rather than "char" outside the POSIX locale. -* cmp -l's index column width now adjusts to fit larger (or smaller) files. -* cmp -l -s and cmp -s -l are not allowed. Use cmp -s or cmp -l instead. -* diff uses ISO 8601 style time stamps for output times (e.g. "2001-11-23 - 16:44:36.875702460 -0800") unless in the C or POSIX locale and the - -c style is specified. -* diff's -I and -F options use the regexp syntax of grep, not of Emacs. -* diff now accepts multiple context arguments, and uses their maximum value. -* New diff and sdiff options: - -E --ignore-tab-expansion - --strip-trailing-cr -* New diff options: - --from-file=FILE, --to-file=FILE - --ignore-file-name-case - --no-ignore-file-name-case -* New diff3 and sdiff option: - --diff-program=PROGRAM -* The following diff options are still accepted, but are no longer documented. - They may be withdrawn in future releases. - -h (omit; it has no effect) - -H (use --speed-large-files instead) - -L (use --label instead) - -P (use --unidirectional-new-file instead) - --inhibit-hunk-merge (omit; it has no effect) -* Recursive diffs now sort file names according to the LC_COLLATE locale - category if possible, instead of using native byte comparison. -* Diff printf specs can now use the "0" and "'" flags. -* The new sdiff interactive command `ed' precedes each version with a header. -* On 64-bit hosts, files larger than 2 GB can be compared. -* Some internationalization support has been added, but multibyte locales - are still not completely supported yet. -* Some diagnostics have been reworded slightly for consistency. - Also, `diff -D FOO' now outputs `/* ! FOO */' instead of `/* not FOO */'. -* The `patch' part of the manual now describes `patch' version 2.5.4. -* Man pages are now distributed and installed. -* There is support for DJGPP; see the 'ms' subdirectory and the files - m4/dos.m4 and */setmode.*. - - -User-visible changes in version 2.7: - -* New diff option: --binary (useful only on non-POSIX hosts) -* diff -b and -w now ignore line incompleteness; -B no longer does this. -* cmp -c now uses locale to decide which output characters to quote. -* Help and version messages are reorganized. - - -User-visible changes in version 2.6: - -* New cmp, diff, diff3, sdiff option: --help -* A new heuristic for diff greatly reduces the time needed to compare - large input files that contain many differences. -* Partly as a result, GNU diff's output is not exactly the same as before. - Usually it is a bit smaller, but sometimes it is a bit larger. - - -User-visible changes in version 2.5: - -* New cmp option: -v --version - - -User-visible changes in version 2.4: - -* New cmp option: --ignore-initial=BYTES -* New diff3 option: -T --initial-tab -* New diff option: --line-format=FORMAT -* New diff group format specifications: - [eflmnEFLMN] - A printf spec followed by one of the following letters - causes the integer corresponding to that letter to be - printed according to the printf specification. - E.g. `%5df' prints the number of the first line in the - group in the old file using the "%5d" format. - e: line number just before the group in old file; equals f - 1 - f: first line number in group in the old file - l: last line number in group in the old file - m: line number just after the group in old file; equals l + 1 - n: number of lines in group in the old file; equals l - f + 1 - E, F, L, M, N: likewise, for lines in the new file - %(A=B?T:E) - If A equals B then T else E. A and B are each either a decimal - constant or a single letter interpreted as above. T and E are - arbitrary format strings. This format spec is equivalent to T if - A's value equals B's; otherwise it is equivalent to E. For - example, `%(N=0?no:%dN) line%(N=1?:s)' is equivalent to `no lines' - if N (the number of lines in the group in the the new file) is 0, - to `1 line' if N is 1, and to `%dN lines' otherwise. - %c'C' - where C is a single character, stands for the character C. C may not - be a backslash or an apostrophe. E.g. %c':' stands for a colon. - %c'\O' - where O is a string of 1, 2, or 3 octal digits, stands for the - character with octal code O. E.g. %c'\0' stands for a null character. -* New diff line format specifications: - n - The line number, printed with . - E.g. `%5dn' prints the line number with a "%5d" format. - %c'C' - %c'\O' - The character C, or with octal code O, as above. -* Supported s have the same meaning as with printf, but must - match the extended regular expression %-*[0-9]*(\.[0-9]*)?[doxX]. -* The format spec %0 introduced in version 2.1 has been removed, since it - is incompatible with printf specs like %02d. To represent a null char, - use %c'\0' instead. -* cmp and diff now conform to POSIX 1003.2-1992 (ISO/IEC 9945-2:1993) - if the underlying system conforms to POSIX: - - Some messages' wordings are changed in minor ways. - - ``White space'' is now whatever C's `isspace' says it is. - - When comparing directories, if `diff' finds a file that is not a regular - file or a directory, it reports the file's type instead of diffing it. - (As usual, it follows symbolic links first.) - - When signaled, sdiff exits with the signal's status, not with status 2. -* Now portable to hosts where int, long, pointer, etc. are not all the same - size. -* `cmp - -' now works like `diff - -'. - - -User-visible changes in version 2.3: - -* New diff option: --horizon-lines=lines - - -User-visible changes in version 2.1: - -* New diff options: - --{old,new,unchanged}-line-format='format' - --{old,new,unchanged,changed}-group-format='format' - -U -* New diff3 option: - -A --show-all -* diff3 -m now defaults to -A, not -E. -* diff3 now takes up to three -L or --label options, not just two. - If just two options are given, they refer to the first two input files, - not the first and third input files. -* sdiff and diff -y handle incomplete lines. - - -User-visible changes in version 2.0: - -* Add sdiff and cmp programs. -* Add Texinfo documentation. -* Add configure script. -* Improve diff performance. -* New diff options: --x --exclude --X --exclude-from --P --unidirectional-new-file --W --width --y --side-by-side ---left-column ---sdiff-merge-assist ---suppress-common-lines -* diff options renamed: ---label renamed from --file-label ---forward-ed renamed from --reversed-ed ---paginate renamed from --print ---entire-new-file renamed from --entire-new-files ---new-file renamed from --new-files ---all-text removed -* New diff3 options: --v --version -* Add long-named equivalents for other diff3 options. -* diff options -F (--show-function-line) and -I (--ignore-matching-lines) - can now be given more than once. - - - -Copyright (C) 1993, 1994, 1998, 2001, 2002 Free Software Foundation, -Inc. - -This file is part of GNU Diffutils. - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -This program is distributed in the hope that they will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. diff --git a/gnu/dist/diffutils/README b/gnu/dist/diffutils/README deleted file mode 100644 index 275a8cfb569..00000000000 --- a/gnu/dist/diffutils/README +++ /dev/null @@ -1,38 +0,0 @@ -README for GNU DIFF - - Copyright (C) 1992, 1998, 2001, 2002 Free Software Foundation, Inc. - - This file is part of GNU Diffutils. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. - - -This directory contains the GNU diff, diff3, sdiff, and cmp utilities. -Their features are a superset of the Unix features and they are -significantly faster. - -Please see the file COPYING for copying conditions. - -Please see the file doc/diff.texi (or doc/diff.info) for documentation -that can be printed with TeX, or read with the `info' program or with -Emacs's `M-x info'. There are no man pages. - -See the file INSTALL for generic compilation and installation instructions, -and the file INSTALLME for instructions specific to GNU diff. - -See the file ABOUT-NLS for notes about translations. - -Please report bugs to . diff --git a/gnu/dist/diffutils/THANKS b/gnu/dist/diffutils/THANKS deleted file mode 100644 index 4fc388c2c9d..00000000000 --- a/gnu/dist/diffutils/THANKS +++ /dev/null @@ -1,22 +0,0 @@ -Thanks to all the following for their contributions to GNU diffutils: - -Thomas Bushnell -Wayne Davison -Ulrich Drepper -Paul Eggert -Jay Fenlason -John Gilmore -Torbjorn Granlund -Mike Haertel -Bruno Haible -Chris Hanson -Jim Kingdon -Tom Lord -David J. MacKenzie -Roland McGrath -Jim Meyering -Eugene W. Myers -Randy Smith -Richard Stallman -Leonard H. Tower Jr. -Eli Zaretskii diff --git a/gnu/dist/diffutils/aclocal.m4 b/gnu/dist/diffutils/aclocal.m4 deleted file mode 100644 index 60288022349..00000000000 --- a/gnu/dist/diffutils/aclocal.m4 +++ /dev/null @@ -1,3633 +0,0 @@ -# aclocal.m4 generated automatically by aclocal 1.6 -*- Autoconf -*- - -# Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 -# Free Software Foundation, Inc. -# This file 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -# Like AC_CONFIG_HEADER, but automatically create stamp file. -*- Autoconf -*- - -# Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -AC_PREREQ([2.52]) - -# serial 6 - -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. We must strip everything past the first ":", -# and everything past the last "/". - -# _AM_DIRNAME(PATH) -# ----------------- -# Like AS_DIRNAME, only do it during macro expansion -AC_DEFUN([_AM_DIRNAME], - [m4_if(regexp([$1], [^.*[^/]//*[^/][^/]*/*$]), -1, - m4_if(regexp([$1], [^//\([^/]\|$\)]), -1, - m4_if(regexp([$1], [^/.*]), -1, - [.], - patsubst([$1], [^\(/\).*], [\1])), - patsubst([$1], [^\(//\)\([^/].*\|$\)], [\1])), - patsubst([$1], [^\(.*[^/]\)//*[^/][^/]*/*$], [\1]))[]dnl -])# _AM_DIRNAME - - -# The stamp files are numbered to have different names. -# We could number them on a directory basis, but that's additional -# complications, let's have a unique counter. -m4_define([_AM_STAMP_Count], [0]) - - -# _AM_STAMP(HEADER) -# ----------------- -# The name of the stamp file for HEADER. -AC_DEFUN([_AM_STAMP], -[m4_define([_AM_STAMP_Count], m4_incr(_AM_STAMP_Count))dnl -AS_ESCAPE(_AM_DIRNAME(patsubst([$1], - [:.*])))/stamp-h[]_AM_STAMP_Count]) - - -# _AM_CONFIG_HEADER(HEADER[:SOURCES], COMMANDS, INIT-COMMANDS) -# ------------------------------------------------------------ -# We used to try to get a real timestamp in stamp-h. But the fear is that -# that will cause unnecessary cvs conflicts. -AC_DEFUN([_AM_CONFIG_HEADER], -[# Add the stamp file to the list of files AC keeps track of, -# along with our hook. -AC_CONFIG_HEADERS([$1], - [# update the timestamp -echo 'timestamp for $1' >"_AM_STAMP([$1])" -$2], - [$3]) -])# _AM_CONFIG_HEADER - - -# AM_CONFIG_HEADER(HEADER[:SOURCES]..., COMMANDS, INIT-COMMANDS) -# -------------------------------------------------------------- -AC_DEFUN([AM_CONFIG_HEADER], -[AC_FOREACH([_AM_File], [$1], [_AM_CONFIG_HEADER(_AM_File, [$2], [$3])]) -])# AM_CONFIG_HEADER - -# Do all the work for Automake. -*- Autoconf -*- - -# This macro actually does too much some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -# Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 -# Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 8 - -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - - -AC_PREREQ([2.52]) - -# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow -# the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl - -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl - AC_REQUIRE([AC_PROG_INSTALL])dnl -# test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && - test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) -fi - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl - AC_SUBST([PACKAGE], [AC_PACKAGE_TARNAME])dnl - AC_SUBST([VERSION], [AC_PACKAGE_VERSION])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG(ACLOCAL, "aclocal-${am__api_version}") -AM_MISSING_PROG(AUTOCONF, autoconf) -AM_MISSING_PROG(AUTOMAKE, "automake-${am__api_version}") -AM_MISSING_PROG(AUTOHEADER, autoheader) -AM_MISSING_PROG(MAKEINFO, makeinfo) -AM_MISSING_PROG(AMTAR, tar) -AM_PROG_INSTALL_SH -AM_PROG_INSTALL_STRIP -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl - -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_][CC], - [_AM_DEPENDENCIES(CC)], - [define([AC_PROG_][CC], - defn([AC_PROG_][CC])[_AM_DEPENDENCIES(CC)])])dnl -AC_PROVIDE_IFELSE([AC_PROG_][CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_][CXX], - defn([AC_PROG_][CXX])[_AM_DEPENDENCIES(CXX)])])dnl -]) -]) - -# Copyright 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.6"]) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION so it can be traced. -# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], - [AM_AUTOMAKE_VERSION([1.6])]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright 2001, 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 2 - -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) - -# _AM_SET_OPTION(NAME) -# ------------------------------ -# Set option NAME. Presently that only means defining a flag for this option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) - -# _AM_SET_OPTIONS(OPTIONS) -# ---------------------------------- -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) - -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) - -# -# Check to make sure that the build environment is sane. -# - -# Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 3 - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftest.file -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftest.file` - fi - rm -f conftest.file - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -alias in your environment]) - fi - - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT(yes)]) - -# -*- Autoconf -*- - - -# Copyright 1997, 1999, 2000, 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 3 - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it supports --run. -# If it does, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - AC_MSG_WARN([`missing' script is too old or missing]) -fi -]) - -# AM_AUX_DIR_EXPAND - -# Copyright 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to -# `$srcdir', `$srcdir/..', or `$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is `.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. -# -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -# and then we would define $MISSING as -# MISSING="\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, because -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. -# -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. - -# Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50]) - -AC_DEFUN([AM_AUX_DIR_EXPAND], [ -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` -]) - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. - -# Copyright 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -install_sh=${install_sh-"$am_aux_dir/install-sh"} -AC_SUBST(install_sh)]) - -# AM_PROG_INSTALL_STRIP - -# Copyright 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# One issue with vendor `install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in `make install-strip', and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be `maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# serial 4 -*- Autoconf -*- - -# Copyright 1999, 2000, 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - - -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - - - -# _AM_DEPENDENCIES(NAME) -# ---------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "GCJ", or "OBJC". -# We try a few techniques and use that to set a single cache variable. -# -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -# dependency, and given that the user is not expected to run this macro, -# just rely on AC_PROG_CC. -AC_DEFUN([_AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl - -ifelse([$1], CC, [depcc="$CC" am_compiler_list=], - [$1], CXX, [depcc="$CXX" am_compiler_list=], - [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'] - [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - for depmode in $am_compiler_list; do - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - echo '#include "conftest.h"' > conftest.c - echo 'int i;' > conftest.h - echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf - - case $depmode in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. - if depmode=$depmode \ - source=conftest.c object=conftest.o \ - depfile=conftest.Po tmpdepfile=conftest.TPo \ - $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 && - grep conftest.h conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -]) - - -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES -AC_DEFUN([AM_SET_DEPDIR], -[rm -f .deps 2>/dev/null -mkdir .deps 2>/dev/null -if test -d .deps; then - DEPDIR=.deps -else - # MS-DOS does not allow filenames that begin with a dot. - DEPDIR=_deps -fi -rmdir .deps 2>/dev/null -AC_SUBST([DEPDIR]) -]) - - -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE(dependency-tracking, -[ --disable-dependency-tracking Speeds up one-time builds - --enable-dependency-tracking Do not reject slow dependency extractors]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH]) -]) - -# Generate code to set up dependency tracking. -*- Autoconf -*- - -# Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -#serial 2 - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - if (sed 1q $mf | fgrep 'generated by automake') > /dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue - # Extract the definition of DEP_FILES from the Makefile without - # running `make'. - DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` - test -z "$DEPDIR" && continue - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n -e '/^U = / s///p' < "$mf"` - test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" - # We invoke sed twice because it is the simplest approach to - # changing $(DEPDIR) to its actual value in the expansion. - for file in `sed -n -e ' - /^DEP_FILES = .*\\\\$/ { - s/^DEP_FILES = // - :loop - s/\\\\$// - p - n - /\\\\$/ b loop - p - } - /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done -])# _AM_OUTPUT_DEPENDENCY_COMMANDS - - -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each `.P' file that we will -# need in order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) - -# Copyright 2001 Free Software Foundation, Inc. -*- Autoconf -*- - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 2 - -# AM_MAKE_INCLUDE() -# ----------------- -# Check to see how make treats includes. -AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' -doit: - @echo done -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi -fi -AC_SUBST(am__include) -AC_SUBST(am__quote) -AC_MSG_RESULT($_am_result) -rm -f confinc confmf -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright 1997, 2000, 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 5 - -AC_PREREQ(2.52) - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE]) -AC_SUBST([$1_FALSE]) -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([conditional \"$1\" was never defined. -Usually this means the macro was only invoked conditionally.]) -fi])]) - -# isc-posix.m4 serial 1 (gettext-0.10.40) -dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. - -# This test replaces the one in autoconf. -# Currently this macro should have the same name as the autoconf macro -# because gettext's gettext.m4 (distributed in the automake package) -# still uses it. Otherwise, the use in gettext.m4 makes autoheader -# give these diagnostics: -# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX -# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX - -undefine([AC_ISC_POSIX]) - -AC_DEFUN([AC_ISC_POSIX], - [ - dnl This test replaces the obsolescent AC_ISC_POSIX kludge. - AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) - ] -) - - -# Copyright 1996, 1997, 1999, 2000, 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 1 - -# @defmac AC_PROG_CC_STDC -# @maindex PROG_CC_STDC -# @ovindex CC -# If the C compiler in not in ANSI C mode by default, try to add an option -# to output variable @code{CC} to make it so. This macro tries various -# options that select ANSI C on some system or another. It considers the -# compiler to be in ANSI C mode if it handles function prototypes correctly. -# -# If you use this macro, you should check after calling it whether the C -# compiler has been set to accept ANSI C; if not, the shell variable -# @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source -# code in ANSI C, you can make an un-ANSIfied copy of it by using the -# program @code{ansi2knr}, which comes with Ghostscript. -# @end defmac - -AC_DEFUN([AM_PROG_CC_STDC], -[AC_REQUIRE([AC_PROG_CC]) -AC_BEFORE([$0], [AC_C_INLINE]) -AC_BEFORE([$0], [AC_C_CONST]) -dnl Force this before AC_PROG_CPP. Some cpp's, eg on HPUX, require -dnl a magic option to avoid problems with ANSI preprocessor commands -dnl like #elif. -dnl FIXME: can't do this because then AC_AIX won't work due to a -dnl circular dependency. -dnl AC_BEFORE([$0], [AC_PROG_CPP]) -AC_MSG_CHECKING([for ${CC-cc} option to accept ANSI C]) -AC_CACHE_VAL(am_cv_prog_cc_stdc, -[am_cv_prog_cc_stdc=no -ac_save_CC="$CC" -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - AC_TRY_COMPILE( -[#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -], [ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; -], -[am_cv_prog_cc_stdc="$ac_arg"; break]) -done -CC="$ac_save_CC" -]) -if test -z "$am_cv_prog_cc_stdc"; then - AC_MSG_RESULT([none needed]) -else - AC_MSG_RESULT([$am_cv_prog_cc_stdc]) -fi -case "x$am_cv_prog_cc_stdc" in - x|xno) ;; - *) CC="$CC $am_cv_prog_cc_stdc" ;; -esac -]) - -#serial 3 -# Make sure _GNU_SOURCE is defined where necessary: as early as possible -# for configure-time tests, as well as for every source file that includes -# config.h. - -# From Jim Meyering. - -AC_DEFUN([AC__GNU_SOURCE], -[ - # Make sure that _GNU_SOURCE is defined for all subsequent - # configure-time compile tests. - # This definition must be emitted (into confdefs.h) before any - # test that involves compilation. - cat >>confdefs.h <<\EOF -#ifndef _GNU_SOURCE -# define _GNU_SOURCE -#endif -EOF - - # Emit this code into config.h.in. - # The ifndef is to avoid redefinition warnings. - AH_VERBATIM([_GNU_SOURCE], [#ifndef _GNU_SOURCE -# define _GNU_SOURCE -#endif]) -]) - -# Check for variable-length arrays. - -#serial 1 - -# From Paul Eggert - -# Copyright (C) 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -AC_DEFUN([AC_C_VARARRAYS], -[ - AC_CACHE_CHECK([for variable-length arrays], - ac_cv_c_vararrays, - [AC_TRY_COMPILE( - [], - [static int x; char a[++x]; a[sizeof a - 1] = 0; return a[0];], - ac_cv_c_vararrays=yes, - ac_cv_c_vararrays=no)]) - if test $ac_cv_c_vararrays = yes; then - AC_DEFINE(HAVE_C_VARARRAYS, 1, - [Define to 1 if C supports variable-length arrays.]) - fi -]) - -# Check for stdbool.h that conforms to C99. - -# Copyright (C) 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -AC_DEFUN([AC_HEADER_STDBOOL], - [AC_CACHE_CHECK([for stdbool.h that conforms to C99], - [ac_cv_header_stdbool_h], - [AC_TRY_COMPILE( - [ - #include - #ifndef bool - "error: bool is not defined" - #endif - #ifndef false - "error: false is not defined" - #endif - #ifndef true - "error: false is not defined" - #endif - #ifndef __bool_true_false_are_defined - "error: __bool_true_false_are_defined is not defined" - #endif - - struct s { _Bool s: 1; _Bool t; } s; - - char a[true == 1 ? 1 : -1]; - char b[false == 0 ? 1 : -1]; - char c[__bool_true_false_are_defined == 1 ? 1 : -1]; - char d[(bool) -0.5 == true ? 1 : -1]; - char e[(bool) &s == true ? 1 : -1]; - char f[(_Bool) -0.0 == false ? 1 : -1]; - char g[true]; - char h[sizeof (_Bool)]; - char i[sizeof s.t]; - ], - [ return !a + !b + !c + !d + !e + !f + !g + !h + !i; ], - [ac_cv_header_stdbool_h=yes], - [ac_cv_header_stdbool_h=no])]) - if test $ac_cv_header_stdbool_h = yes; then - AC_DEFINE(HAVE_STDBOOL_H, 1, [Define to 1 if stdbool.h conforms to C99.]) - fi]) - -#serial 6 - -dnl From Paul Eggert. - -AC_PREREQ(2.52) - -# Define intmax_t to long or long long if doesn't define. - -AC_DEFUN([jm_AC_TYPE_INTMAX_T], -[ - AC_REQUIRE([jm_AC_TYPE_LONG_LONG]) - AC_CHECK_TYPE(intmax_t, , - [test $ac_cv_type_long_long = yes \ - && ac_type='long long' \ - || ac_type='long' - AC_DEFINE_UNQUOTED(intmax_t, $ac_type, - [Define to widest signed type if doesn't define.])]) -]) - -# Define uintmax_t to unsigned long or unsigned long long -# if doesn't define. - -AC_DEFUN([jm_AC_TYPE_UINTMAX_T], -[ - AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG]) - AC_CHECK_TYPE(uintmax_t, , - [test $ac_cv_type_unsigned_long_long = yes \ - && ac_type='unsigned long long' \ - || ac_type='unsigned long' - AC_DEFINE_UNQUOTED(uintmax_t, $ac_type, - [Define to widest unsigned type if doesn't define.])]) -]) - -#serial 2 - -dnl From Paul Eggert. - -# Define HAVE_LONG_LONG if 'long long' works. - -AC_DEFUN([jm_AC_TYPE_LONG_LONG], -[ - AC_CACHE_CHECK([for long long], ac_cv_type_long_long, - [AC_TRY_LINK([long long ll = 1; int i = 63;], - [long long llmax = (long long) -1; - return ll << i | ll >> i | llmax / ll | llmax % ll;], - ac_cv_type_long_long=yes, - ac_cv_type_long_long=no)]) - if test $ac_cv_type_long_long = yes; then - AC_DEFINE(HAVE_LONG_LONG, 1, - [Define if you have the long long type.]) - fi -]) - -# Define HAVE_UNSIGNED_LONG_LONG if 'unsigned long long' works. - -AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG], -[ - AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long, - [AC_TRY_LINK([unsigned long long ull = 1; int i = 63;], - [unsigned long long ullmax = (unsigned long long) -1; - return ull << i | ull >> i | ullmax / ull | ullmax % ull;], - ac_cv_type_unsigned_long_long=yes, - ac_cv_type_unsigned_long_long=no)]) - if test $ac_cv_type_unsigned_long_long = yes; then - AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1, - [Define if you have the unsigned long long type.]) - fi -]) - -# gettext.m4 serial 13 (gettext-0.11.1) -dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. -dnl -dnl This file can can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Authors: -dnl Ulrich Drepper , 1995-2000. -dnl Bruno Haible , 2000-2002. - -dnl Macro to add for using GNU gettext. - -dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). -dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The -dnl default (if it is not specified or empty) is 'no-libtool'. -dnl INTLSYMBOL should be 'external' for packages with no intl directory, -dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. -dnl If INTLSYMBOL is 'use-libtool', then a libtool library -dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, -dnl depending on --{enable,disable}-{shared,static} and on the presence of -dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library -dnl $(top_builddir)/intl/libintl.a will be created. -dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext -dnl implementations (in libc or libintl) without the ngettext() function -dnl will be ignored. -dnl INTLDIR is used to find the intl libraries. If empty, -dnl the value `$(top_builddir)/intl/' is used. -dnl -dnl The result of the configuration is one of three cases: -dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled -dnl and used. -dnl Catalog format: GNU --> install in $(datadir) -dnl Catalog extension: .mo after installation, .gmo in source tree -dnl 2) GNU gettext has been found in the system's C library. -dnl Catalog format: GNU --> install in $(datadir) -dnl Catalog extension: .mo after installation, .gmo in source tree -dnl 3) No internationalization, always use English msgid. -dnl Catalog format: none -dnl Catalog extension: none -dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. -dnl The use of .gmo is historical (it was needed to avoid overwriting the -dnl GNU format catalogs when building on a platform with an X/Open gettext), -dnl but we keep it in order not to force irrelevant filename changes on the -dnl maintainers. -dnl -AC_DEFUN([AM_GNU_GETTEXT], -[ - dnl Argument checking. - ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , - [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT -])])])])]) - ifelse([$2], [], , [ifelse([$2], [need-ngettext], , - [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT -])])]) - define(gt_included_intl, ifelse([$1], [external], [no], [yes])) - define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], [])) - - AC_REQUIRE([AM_PO_SUBDIRS])dnl - ifelse(gt_included_intl, yes, [ - AC_REQUIRE([AM_INTL_SUBDIR])dnl - ]) - - dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - - AC_MSG_CHECKING([whether NLS is requested]) - dnl Default is enabled NLS - AC_ARG_ENABLE(nls, - [ --disable-nls do not use Native Language Support], - USE_NLS=$enableval, USE_NLS=yes) - AC_MSG_RESULT($USE_NLS) - AC_SUBST(USE_NLS) - - ifelse(gt_included_intl, yes, [ - BUILD_INCLUDED_LIBINTL=no - USE_INCLUDED_LIBINTL=no - ]) - LIBINTL= - LTLIBINTL= - POSUB= - - dnl If we use NLS figure out what method - if test "$USE_NLS" = "yes"; then - gt_use_preinstalled_gnugettext=no - ifelse(gt_included_intl, yes, [ - AC_MSG_CHECKING([whether included gettext is requested]) - AC_ARG_WITH(included-gettext, - [ --with-included-gettext use the GNU gettext library included here], - nls_cv_force_use_gnu_gettext=$withval, - nls_cv_force_use_gnu_gettext=no) - AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) - - nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" - if test "$nls_cv_force_use_gnu_gettext" != "yes"; then - ]) - dnl User does not insist on using GNU NLS library. Figure out what - dnl to use. If GNU gettext is available we use this. Else we have - dnl to fall back to GNU NLS library. - - dnl Add a version number to the cache macros. - define([gt_api_version], ifelse([$2], [need-ngettext], 2, 1)) - define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc]) - define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl]) - - AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, - [AC_TRY_LINK([#include -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings;], - [bindtextdomain ("", ""); -return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings], - gt_cv_func_gnugettext_libc=yes, - gt_cv_func_gnugettext_libc=no)]) - - if test "$gt_cv_func_gnugettext_libc" != "yes"; then - dnl Sometimes libintl requires libiconv, so first search for libiconv. - ifelse(gt_included_intl, yes, , [ - AM_ICONV_LINK - ]) - dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL - dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) - dnl because that would add "-liconv" to LIBINTL and LTLIBINTL - dnl even if libiconv doesn't exist. - AC_LIB_LINKFLAGS_BODY([intl]) - AC_CACHE_CHECK([for GNU gettext in libintl], - gt_cv_func_gnugettext_libintl, - [gt_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $INCINTL" - gt_save_LIBS="$LIBS" - LIBS="$LIBS $LIBINTL" - dnl Now see whether libintl exists and does not depend on libiconv. - AC_TRY_LINK([#include -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias ();], - [bindtextdomain ("", ""); -return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings + *_nl_expand_alias (0)], - gt_cv_func_gnugettext_libintl=yes, - gt_cv_func_gnugettext_libintl=no) - dnl Now see whether libintl exists and depends on libiconv. - if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then - LIBS="$LIBS $LIBICONV" - AC_TRY_LINK([#include -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias ();], - [bindtextdomain ("", ""); -return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings + *_nl_expand_alias (0)], - [LIBINTL="$LIBINTL $LIBICONV" - LTLIBINTL="$LTLIBINTL $LTLIBICONV" - gt_cv_func_gnugettext_libintl=yes - ]) - fi - CPPFLAGS="$gt_save_CPPFLAGS" - LIBS="$gt_save_LIBS"]) - fi - - dnl If an already present or preinstalled GNU gettext() is found, - dnl use it. But if this macro is used in GNU gettext, and GNU - dnl gettext is already preinstalled in libintl, we update this - dnl libintl. (Cf. the install rule in intl/Makefile.in.) - if test "$gt_cv_func_gnugettext_libc" = "yes" \ - || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ - && test "$PACKAGE" != gettext; }; then - gt_use_preinstalled_gnugettext=yes - else - dnl Reset the values set by searching for libintl. - LIBINTL= - LTLIBINTL= - INCINTL= - fi - - ifelse(gt_included_intl, yes, [ - if test "$gt_use_preinstalled_gnugettext" != "yes"; then - dnl GNU gettext is not found in the C library. - dnl Fall back on included GNU gettext library. - nls_cv_use_gnu_gettext=yes - fi - fi - - if test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Mark actions used to generate GNU NLS library. - INTLOBJS="\$(GETTOBJS)" - BUILD_INCLUDED_LIBINTL=yes - USE_INCLUDED_LIBINTL=yes - LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV" - LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV" - LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` - fi - - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Mark actions to use GNU gettext tools. - CATOBJEXT=.gmo - fi - ]) - - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - AC_DEFINE(ENABLE_NLS, 1, - [Define to 1 if translation of program messages to the user's native language - is requested.]) - else - USE_NLS=no - fi - fi - - if test "$USE_NLS" = "yes"; then - - if test "$gt_use_preinstalled_gnugettext" = "yes"; then - if test "$gt_cv_func_gnugettext_libintl" = "yes"; then - AC_MSG_CHECKING([how to link with libintl]) - AC_MSG_RESULT([$LIBINTL]) - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) - fi - - dnl For backward compatibility. Some packages may be using this. - AC_DEFINE(HAVE_GETTEXT, 1, - [Define if the GNU gettext() function is already present or preinstalled.]) - AC_DEFINE(HAVE_DCGETTEXT, 1, - [Define if the GNU dcgettext() function is already present or preinstalled.]) - fi - - dnl We need to process the po/ directory. - POSUB=po - fi - - ifelse(gt_included_intl, yes, [ - dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL - dnl to 'yes' because some of the testsuite requires it. - if test "$PACKAGE" = gettext; then - BUILD_INCLUDED_LIBINTL=yes - fi - - dnl Make all variables we use known to autoconf. - AC_SUBST(BUILD_INCLUDED_LIBINTL) - AC_SUBST(USE_INCLUDED_LIBINTL) - AC_SUBST(CATOBJEXT) - AC_SUBST(INTLOBJS) - - dnl For backward compatibility. Some configure.ins may be using this. - nls_cv_header_intl= - nls_cv_header_libgt= - - dnl For backward compatibility. Some Makefiles may be using this. - DATADIRNAME=share - AC_SUBST(DATADIRNAME) - - dnl For backward compatibility. Some Makefiles may be using this. - INSTOBJEXT=.mo - AC_SUBST(INSTOBJEXT) - - dnl For backward compatibility. Some Makefiles may be using this. - GENCAT=gencat - AC_SUBST(GENCAT) - - dnl Enable libtool support if the surrounding package wishes it. - INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix - AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) - ]) - - dnl For backward compatibility. Some Makefiles may be using this. - INTLLIBS="$LIBINTL" - AC_SUBST(INTLLIBS) - - dnl Make all documented variables known to autoconf. - AC_SUBST(LIBINTL) - AC_SUBST(LTLIBINTL) - AC_SUBST(POSUB) -]) - - -dnl Checks for all prerequisites of the po subdirectory, -dnl except for USE_NLS. -AC_DEFUN([AM_PO_SUBDIRS], -[ - AC_REQUIRE([AC_PROG_MAKE_SET])dnl - AC_REQUIRE([AC_PROG_INSTALL])dnl - AC_REQUIRE([AM_MKINSTALLDIRS])dnl - - dnl Perform the following tests also if --disable-nls has been given, - dnl because they are needed for "make dist" to work. - - dnl Search for GNU msgfmt in the PATH. - dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. - dnl The second test excludes FreeBSD msgfmt. - AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], - :) - AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) - - dnl Search for GNU xgettext 0.11 or newer in the PATH. - dnl The first test excludes Solaris xgettext and early GNU xgettext versions. - dnl The second test excludes FreeBSD xgettext. - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [$ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], - :) - dnl Remove leftover from FreeBSD xgettext call. - rm -f messages.po - - dnl Search for GNU msgmerge 0.11 or newer in the PATH. - AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, - [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :) - - dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. - dnl Test whether we really found GNU msgfmt. - if test "$GMSGFMT" != ":"; then - dnl If it is no GNU msgfmt we define it as : so that the - dnl Makefiles still can work. - if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && - (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` - AC_MSG_RESULT( - [found $GMSGFMT program is not GNU msgfmt; ignore it]) - GMSGFMT=":" - fi - fi - - dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. - dnl Test whether we really found GNU xgettext. - if test "$XGETTEXT" != ":"; then - dnl If it is no GNU xgettext we define it as : so that the - dnl Makefiles still can work. - if $XGETTEXT --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 && - (if $XGETTEXT --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - AC_MSG_RESULT( - [found xgettext program is not GNU xgettext; ignore it]) - XGETTEXT=":" - fi - dnl Remove leftover from FreeBSD xgettext call. - rm -f messages.po - fi - - AC_OUTPUT_COMMANDS([ - for ac_file in $CONFIG_FILES; do - # Support "outfile[:infile[:infile...]]" - case "$ac_file" in - *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - esac - # PO directories have a Makefile.in generated from Makefile.in.in. - case "$ac_file" in */Makefile.in) - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then - rm -f "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" - cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" - # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend - # on $ac_dir but don't depend on user-specified configuration - # parameters. - if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then - # The LINGUAS file contains the set of available languages. - if test -n "$ALL_LINGUAS"; then - test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" - fi - ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` - # Hide the ALL_LINGUAS assigment from automake. - eval 'ALL_LINGUAS''=$ALL_LINGUAS_' - fi - case "$ac_given_srcdir" in - .) srcdirpre= ;; - *) srcdirpre='$(srcdir)/' ;; - esac - POFILES= - GMOFILES= - UPDATEPOFILES= - DUMMYPOFILES= - for lang in $ALL_LINGUAS; do - POFILES="$POFILES $srcdirpre$lang.po" - GMOFILES="$GMOFILES $srcdirpre$lang.gmo" - UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" - DUMMYPOFILES="$DUMMYPOFILES $lang.nop" - done - # CATALOGS depends on both $ac_dir and the user's LINGUAS - # environment variable. - INST_LINGUAS= - if test -n "$ALL_LINGUAS"; then - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "$LINGUAS"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - INST_LINGUAS="$INST_LINGUAS $presentlang" - fi - done - fi - CATALOGS= - if test -n "$INST_LINGUAS"; then - for lang in $INST_LINGUAS; do - CATALOGS="$CATALOGS $lang.gmo" - done - fi - test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" - sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" - for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do - if test -f "$f"; then - case "$f" in - *.orig | *.bak | *~) ;; - *) cat "$f" >> "$ac_dir/Makefile" ;; - esac - fi - done - fi - ;; - esac - done], - [# Capture the value of obsolete $ALL_LINGUAS because we need it to compute - # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it - # from automake. - eval 'ALL_LINGUAS''="$ALL_LINGUAS"' - # Capture the value of LINGUAS because we need it to compute CATALOGS. - LINGUAS="${LINGUAS-%UNSET%}" - ]) -]) - - -dnl Checks for all prerequisites of the intl subdirectory, -dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, -dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. -AC_DEFUN([AM_INTL_SUBDIR], -[ - AC_REQUIRE([AC_PROG_INSTALL])dnl - AC_REQUIRE([AM_MKINSTALLDIRS])dnl - AC_REQUIRE([AC_PROG_CC])dnl - AC_REQUIRE([AC_CANONICAL_HOST])dnl - AC_REQUIRE([AC_PROG_RANLIB])dnl - AC_REQUIRE([AC_ISC_POSIX])dnl - AC_REQUIRE([AC_HEADER_STDC])dnl - AC_REQUIRE([AC_C_CONST])dnl - AC_REQUIRE([AC_C_INLINE])dnl - AC_REQUIRE([AC_TYPE_OFF_T])dnl - AC_REQUIRE([AC_TYPE_SIZE_T])dnl - AC_REQUIRE([AC_FUNC_ALLOCA])dnl - AC_REQUIRE([AC_FUNC_MMAP])dnl - AC_REQUIRE([jm_GLIBC21])dnl - - AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ -stdlib.h string.h unistd.h sys/param.h]) - AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \ -geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \ -strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next]) - - AM_ICONV - AM_LANGINFO_CODESET - AM_LC_MESSAGES - - dnl intl/plural.c is generated from intl/plural.y. It requires bison, - dnl because plural.y uses bison specific features. It requires at least - dnl bison-1.26 because earlier versions generate a plural.c that doesn't - dnl compile. - dnl bison is only needed for the maintainer (who touches plural.y). But in - dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put - dnl the rule in general Makefile. Now, some people carelessly touch the - dnl files or have a broken "make" program, hence the plural.c rule will - dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not - dnl present or too old. - AC_CHECK_PROGS([INTLBISON], [bison]) - if test -z "$INTLBISON"; then - ac_verc_fail=yes - else - dnl Found it, now check the version. - AC_MSG_CHECKING([version of bison]) -changequote(<<,>>)dnl - ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` - case $ac_prog_version in - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; - 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) -changequote([,])dnl - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; - *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; - esac - AC_MSG_RESULT([$ac_prog_version]) - fi - if test $ac_verc_fail = yes; then - INTLBISON=: - fi -]) - - -AC_DEFUN([AM_MKINSTALLDIRS], -[ - dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly - dnl find the mkinstalldirs script in another subdir but $(top_srcdir). - dnl Try to locate is. - MKINSTALLDIRS= - if test -n "$ac_aux_dir"; then - MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" - fi - if test -z "$MKINSTALLDIRS"; then - MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" - fi - AC_SUBST(MKINSTALLDIRS) -]) - -# lib-prefix.m4 serial 1 (gettext-0.11) -dnl Copyright (C) 2001-2002 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. - -dnl From Bruno Haible. - -dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed -dnl to access previously installed libraries. The basic assumption is that -dnl a user will want packages to use other packages he previously installed -dnl with the same --prefix option. -dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate -dnl libraries, but is otherwise very convenient. -AC_DEFUN([AC_LIB_PREFIX], -[ - AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) - AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - dnl By default, look in $includedir and $libdir. - use_additional=yes - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - AC_ARG_WITH([lib-prefix], -[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib - --without-lib-prefix don't search for libraries in includedir and libdir], -[ - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - else - additional_includedir="$withval/include" - additional_libdir="$withval/lib" - fi - fi -]) - if test $use_additional = yes; then - dnl Potentially add $additional_includedir to $CPPFLAGS. - dnl But don't add it - dnl 1. if it's the standard /usr/include, - dnl 2. if it's already present in $CPPFLAGS, - dnl 3. if it's /usr/local/include and we are using GCC on Linux, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - for x in $CPPFLAGS; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - dnl Really add $additional_includedir to $CPPFLAGS. - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" - fi - fi - fi - fi - dnl Potentially add $additional_libdir to $LDFLAGS. - dnl But don't add it - dnl 1. if it's the standard /usr/lib, - dnl 2. if it's already present in $LDFLAGS, - dnl 3. if it's /usr/local/lib and we are using GCC on Linux, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_libdir" != "X/usr/lib"; then - haveit= - for x in $LDFLAGS; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test "X$additional_libdir" = "X/usr/local/lib"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LDFLAGS. - LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" - fi - fi - fi - fi - fi -]) - -dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, -dnl acl_final_exec_prefix, containing the values to which $prefix and -dnl $exec_prefix will expand at the end of the configure script. -AC_DEFUN([AC_LIB_PREPARE_PREFIX], -[ - dnl Unfortunately, prefix and exec_prefix get only finally determined - dnl at the end of configure. - if test "X$prefix" = "XNONE"; then - acl_final_prefix="$ac_default_prefix" - else - acl_final_prefix="$prefix" - fi - if test "X$exec_prefix" = "XNONE"; then - acl_final_exec_prefix='${prefix}' - else - acl_final_exec_prefix="$exec_prefix" - fi - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" - prefix="$acl_save_prefix" -]) - -dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the -dnl variables prefix and exec_prefix bound to the values they will have -dnl at the end of the configure script. -AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], -[ - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - $1 - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" -]) - -# lib-link.m4 serial 1 (gettext-0.11) -dnl Copyright (C) 2001-2002 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. - -dnl From Bruno Haible. - -dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and -dnl the libraries corresponding to explicit and implicit dependencies. -dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and -dnl augments the CPPFLAGS variable. -AC_DEFUN([AC_LIB_LINKFLAGS], -[ - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - define([Name],[translit([$1],[./-], [___])]) - define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) - AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ - AC_LIB_LINKFLAGS_BODY([$1], [$2]) - ac_cv_lib[]Name[]_libs="$LIB[]NAME" - ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" - ac_cv_lib[]Name[]_cppflags="$INC[]NAME" - ]) - LIB[]NAME="$ac_cv_lib[]Name[]_libs" - LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" - INC[]NAME="$ac_cv_lib[]Name[]_cppflags" - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) - AC_SUBST([LIB]NAME) - AC_SUBST([LTLIB]NAME) - dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the - dnl results of this search when this library appears as a dependency. - HAVE_LIB[]NAME=yes - undefine([Name]) - undefine([NAME]) -]) - -dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) -dnl searches for libname and the libraries corresponding to explicit and -dnl implicit dependencies, together with the specified include files and -dnl the ability to compile and link the specified testcode. If found, it -dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and -dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and -dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs -dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. -AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], -[ - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - define([Name],[translit([$1],[./-], [___])]) - define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) - - dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME - dnl accordingly. - AC_LIB_LINKFLAGS_BODY([$1], [$2]) - - dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, - dnl because if the user has installed lib[]Name and not disabled its use - dnl via --without-lib[]Name-prefix, he wants to use it. - ac_save_CPPFLAGS="$CPPFLAGS" - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) - - AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ - ac_save_LIBS="$LIBS" - LIBS="$LIBS $LIB[]NAME" - AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) - LIBS="$ac_save_LIBS" - ]) - if test "$ac_cv_lib[]Name" = yes; then - HAVE_LIB[]NAME=yes - AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) - AC_MSG_CHECKING([how to link with lib[]$1]) - AC_MSG_RESULT([$LIB[]NAME]) - else - HAVE_LIB[]NAME=no - dnl If $LIB[]NAME didn't lead to a usable library, we don't need - dnl $INC[]NAME either. - CPPFLAGS="$ac_save_CPPFLAGS" - LIB[]NAME= - LTLIB[]NAME= - fi - AC_SUBST([HAVE_LIB]NAME) - AC_SUBST([LIB]NAME) - AC_SUBST([LTLIB]NAME) - undefine([Name]) - undefine([NAME]) -]) - -dnl Determine the platform dependent parameters needed to use rpath: -dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, -dnl hardcode_direct, hardcode_minus_L, -dnl sys_lib_search_path_spec, sys_lib_dlsearch_path_spec. -AC_DEFUN([AC_LIB_RPATH], -[ - AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS - AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld - AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host - AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir - AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ - CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ - ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh - . ./conftest.sh - rm -f ./conftest.sh - acl_cv_rpath=done - ]) - wl="$acl_cv_wl" - libext="$acl_cv_libext" - shlibext="$acl_cv_shlibext" - hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" - hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" - hardcode_direct="$acl_cv_hardcode_direct" - hardcode_minus_L="$acl_cv_hardcode_minus_L" - sys_lib_search_path_spec="$acl_cv_sys_lib_search_path_spec" - sys_lib_dlsearch_path_spec="$acl_cv_sys_lib_dlsearch_path_spec" -]) - -dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and -dnl the libraries corresponding to explicit and implicit dependencies. -dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. -AC_DEFUN([AC_LIB_LINKFLAGS_BODY], -[ - define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) - dnl By default, look in $includedir and $libdir. - use_additional=yes - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - AC_ARG_WITH([lib$1-prefix], -[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib - --without-lib$1-prefix don't search for lib$1 in includedir and libdir], -[ - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - else - additional_includedir="$withval/include" - additional_libdir="$withval/lib" - fi - fi -]) - dnl Search the library and its dependencies in $additional_libdir and - dnl $LDFLAGS. Using breadth-first-seach. - LIB[]NAME= - LTLIB[]NAME= - INC[]NAME= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='$1 $2' - while test -n "$names_next_round"; do - names_this_round="$names_next_round" - names_next_round= - for name in $names_this_round; do - already_handled= - for n in $names_already_handled; do - if test "$n" = "$name"; then - already_handled=yes - break - fi - done - if test -z "$already_handled"; then - names_already_handled="$names_already_handled $name" - dnl See if it was already located by an earlier AC_LIB_LINKFLAGS - dnl or AC_LIB_HAVE_LINKFLAGS call. - uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` - eval value=\"\$HAVE_LIB$uppername\" - if test -n "$value"; then - if test "$value" = yes; then - eval value=\"\$LIB$uppername\" - test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" - else - dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined - dnl that this library doesn't exist. So just drop it. - : - fi - else - dnl Search the library lib$name in $additional_libdir and $LDFLAGS - dnl and the already constructed $LIBNAME/$LTLIBNAME. - found_dir= - found_la= - found_so= - found_a= - if test $use_additional = yes; then - if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then - found_dir="$additional_libdir" - found_so="$additional_libdir/lib$name.$shlibext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - else - if test -f "$additional_libdir/lib$name.$libext"; then - found_dir="$additional_libdir" - found_a="$additional_libdir/lib$name.$libext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - fi - fi - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then - found_dir="$dir" - found_so="$dir/lib$name.$shlibext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - else - if test -f "$dir/lib$name.$libext"; then - found_dir="$dir" - found_a="$dir/lib$name.$libext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - dnl Found the library. - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - dnl Linking with a shared library. We attempt to hardcode its - dnl directory into the executable's runpath, unless it's the - dnl standard /usr/lib. - if test "X$found_dir" = "X/usr/lib"; then - dnl No hardcoding is needed. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - dnl Use an explicit option to hardcode DIR into the resulting - dnl binary. - dnl Potentially add DIR to ltrpathdirs. - dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $found_dir" - fi - dnl The hardcoding into $LIBNAME is system dependent. - if test "$hardcode_direct" = yes; then - dnl Using DIR/libNAME.so during linking hardcodes DIR into the - dnl resulting binary. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then - dnl Use an explicit option to hardcode DIR into the resulting - dnl binary. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - dnl Potentially add DIR to rpathdirs. - dnl The rpathdirs will be appended to $LIBNAME at the end. - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $found_dir" - fi - else - dnl Rely on "-L$found_dir". - dnl But don't add it if it's already contained in the LDFLAGS - dnl or the already constructed $LIBNAME - haveit= - for x in $LDFLAGS $LIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" - fi - if test "$hardcode_minus_L" != no; then - dnl FIXME: Not sure whether we should use - dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" - dnl here. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH - dnl here, because this doesn't fit in flags passed to the - dnl compiler. So give up. No hardcoding. This affects only - dnl very old systems. - dnl FIXME: Not sure whether we should use - dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" - dnl here. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - dnl Linking with a static library. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" - else - dnl We shouldn't come here, but anyway it's good to have a - dnl fallback. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" - fi - fi - dnl Assume the include files are nearby. - additional_includedir= - case "$found_dir" in - */lib | */lib/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - dnl Potentially add $additional_includedir to $INCNAME. - dnl But don't add it - dnl 1. if it's the standard /usr/include, - dnl 2. if it's /usr/local/include and we are using GCC on Linux, - dnl 3. if it's already present in $CPPFLAGS or the already - dnl constructed $INCNAME, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - for x in $CPPFLAGS $INC[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - dnl Really add $additional_includedir to $INCNAME. - INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" - fi - fi - fi - fi - fi - dnl Look for dependencies. - if test -n "$found_la"; then - dnl Read the .la file. It defines the variables - dnl dlname, library_names, old_library, dependency_libs, current, - dnl age, revision, installed, dlopen, dlpreopen, libdir. - save_libdir="$libdir" - case "$found_la" in - */* | *\\*) . "$found_la" ;; - *) . "./$found_la" ;; - esac - libdir="$save_libdir" - dnl We use only dependency_libs. - for dep in $dependency_libs; do - case "$dep" in - -L*) - additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. - dnl But don't add it - dnl 1. if it's the standard /usr/lib, - dnl 2. if it's /usr/local/lib and we are using GCC on Linux, - dnl 3. if it's already present in $LDFLAGS or the already - dnl constructed $LIBNAME, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_libdir" != "X/usr/lib"; then - haveit= - if test "X$additional_libdir" = "X/usr/local/lib"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - haveit= - for x in $LDFLAGS $LIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LIBNAME. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" - fi - fi - haveit= - for x in $LDFLAGS $LTLIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LTLIBNAME. - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" - fi - fi - fi - fi - ;; - -l*) - dnl Handle this in the next round. - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` - ;; - *.la) - dnl Handle this in the next round. Throw away the .la's - dnl directory; it is already contained in a preceding -L - dnl option. - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` - ;; - *) - dnl Most likely an immediate library name. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" - ;; - esac - done - fi - else - dnl Didn't find the library; assume it is in the system directories - dnl known to the linker and runtime loader. (All the system - dnl directories known to the linker should also be known to the - dnl runtime loader, otherwise the system is severely misconfigured.) - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" - fi - fi - fi - done - done - if test "X$rpathdirs" != "X"; then - if test -n "$hardcode_libdir_separator"; then - dnl Weird platform: only the last -rpath option counts, the user must - dnl pass all path elements in one option. We can arrange that for a - dnl single library, but not when more than one $LIBNAMEs are used. - alldirs= - for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" - done - dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" - else - dnl The -rpath options are cumulative. - for found_dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$found_dir" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" - done - fi - fi - if test "X$ltrpathdirs" != "X"; then - dnl When using libtool, the option that works for both libraries and - dnl executables is -R. The -R options are cumulative. - for found_dir in $ltrpathdirs; do - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" - done - fi -]) - -dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, -dnl unless already present in VAR. -dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes -dnl contains two or three consecutive elements that belong together. -AC_DEFUN([AC_LIB_APPENDTOVAR], -[ - for element in [$2]; do - haveit= - for x in $[$1]; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - [$1]="${[$1]}${[$1]:+ }$element" - fi - done -]) - -# lib-ld.m4 serial 1 (gettext-0.11) -dnl Copyright (C) 1996-2002 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. - -dnl Subroutines of libtool.m4, -dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision -dnl with libtool.m4. - -dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. -AC_DEFUN([AC_LIB_PROG_LD_GNU], -[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, -[# I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 &5; then - acl_cv_prog_gnu_ld=yes -else - acl_cv_prog_gnu_ld=no -fi]) -with_gnu_ld=$acl_cv_prog_gnu_ld -]) - -dnl From libtool-1.4. Sets the variable LD. -AC_DEFUN([AC_LIB_PROG_LD], -[AC_ARG_WITH(gnu-ld, -[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], -test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - AC_MSG_CHECKING([for ld used by GCC]) - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [[\\/]* | [A-Za-z]:[\\/]*)] - [re_direlt='/[^/][^/]*/\.\./'] - # Canonicalize the path of ld - ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -AC_CACHE_VAL(acl_cv_path_LD, -[if test -z "$LD"; then - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - acl_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break - fi - fi - done - IFS="$ac_save_ifs" -else - acl_cv_path_LD="$LD" # Let the user override the test with a path. -fi]) -LD="$acl_cv_path_LD" -if test -n "$LD"; then - AC_MSG_RESULT($LD) -else - AC_MSG_RESULT(no) -fi -test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) -AC_LIB_PROG_LD_GNU -]) - -# iconv.m4 serial AM3 (gettext-0.11) -dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. - -dnl From Bruno Haible. - -AC_DEFUN([AM_ICONV_LINK], -[ - dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and - dnl those with the standalone portable GNU libiconv installed). - - dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - - dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV - dnl accordingly. - AC_LIB_LINKFLAGS_BODY([iconv]) - - dnl Add $INCICONV to CPPFLAGS before performing the following checks, - dnl because if the user has installed libiconv and not disabled its use - dnl via --without-libiconv-prefix, he wants to use it. The first - dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. - am_save_CPPFLAGS="$CPPFLAGS" - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) - - AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - AC_TRY_LINK([#include -#include ], - [iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);], - am_cv_func_iconv=yes) - if test "$am_cv_func_iconv" != yes; then - am_save_LIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - AC_TRY_LINK([#include -#include ], - [iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);], - am_cv_lib_iconv=yes - am_cv_func_iconv=yes) - LIBS="$am_save_LIBS" - fi - ]) - if test "$am_cv_func_iconv" = yes; then - AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) - fi - if test "$am_cv_lib_iconv" = yes; then - AC_MSG_CHECKING([how to link with libiconv]) - AC_MSG_RESULT([$LIBICONV]) - else - dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV - dnl either. - CPPFLAGS="$am_save_CPPFLAGS" - LIBICONV= - LTLIBICONV= - fi - AC_SUBST(LIBICONV) - AC_SUBST(LTLIBICONV) -]) - -AC_DEFUN([AM_ICONV], -[ - AC_REQUIRE([AM_ICONV_LINK]) - if test "$am_cv_func_iconv" = yes; then - AC_MSG_CHECKING([for iconv declaration]) - AC_CACHE_VAL(am_cv_proto_iconv, [ - AC_TRY_COMPILE([ -#include -#include -extern -#ifdef __cplusplus -"C" -#endif -#if defined(__STDC__) || defined(__cplusplus) -size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); -#else -size_t iconv(); -#endif -], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") - am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) - am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` - AC_MSG_RESULT([$]{ac_t:- - }[$]am_cv_proto_iconv) - AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, - [Define as const if the declaration of iconv() needs const.]) - fi -]) - -# progtest.m4 serial 2 (gettext-0.10.40) -dnl Copyright (C) 1996-2002 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. -dnl -dnl This file can can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Authors: -dnl Ulrich Drepper , 1996. - -# Search path for a program which passes the given test. - -dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, -dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) -AC_DEFUN([AM_PATH_PROG_WITH_TEST], -[# Extract the first word of "$2", so it can be a program name with args. -set dummy $2; ac_word=[$]2 -AC_MSG_CHECKING([for $ac_word]) -AC_CACHE_VAL(ac_cv_path_$1, -[case "[$]$1" in - /*) - ac_cv_path_$1="[$]$1" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in ifelse([$5], , $PATH, [$5]); do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if [$3]; then - ac_cv_path_$1="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" -dnl If no 4th arg is given, leave the cache variable unset, -dnl so AC_PATH_PROGS will keep looking. -ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" -])dnl - ;; -esac])dnl -$1="$ac_cv_path_$1" -if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then - AC_MSG_RESULT([$]$1) -else - AC_MSG_RESULT(no) -fi -AC_SUBST($1)dnl -]) - -# glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40) -dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. - -# Test for the GNU C Library, version 2.1 or newer. -# From Bruno Haible. - -AC_DEFUN([jm_GLIBC21], - [ - AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, - ac_cv_gnu_library_2_1, - [AC_EGREP_CPP([Lucky GNU user], - [ -#include -#ifdef __GNU_LIBRARY__ - #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) - Lucky GNU user - #endif -#endif - ], - ac_cv_gnu_library_2_1=yes, - ac_cv_gnu_library_2_1=no) - ] - ) - AC_SUBST(GLIBC21) - GLIBC21="$ac_cv_gnu_library_2_1" - ] -) - -# codeset.m4 serial AM1 (gettext-0.10.40) -dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. - -dnl From Bruno Haible. - -AC_DEFUN([AM_LANGINFO_CODESET], -[ - AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, - [AC_TRY_LINK([#include ], - [char* cs = nl_langinfo(CODESET);], - am_cv_langinfo_codeset=yes, - am_cv_langinfo_codeset=no) - ]) - if test $am_cv_langinfo_codeset = yes; then - AC_DEFINE(HAVE_LANGINFO_CODESET, 1, - [Define if you have and nl_langinfo(CODESET).]) - fi -]) - -# lcmessage.m4 serial 2 (gettext-0.10.40) -dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. -dnl -dnl This file can can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Authors: -dnl Ulrich Drepper , 1995. - -# Check whether LC_MESSAGES is available in . - -AC_DEFUN([AM_LC_MESSAGES], - [if test $ac_cv_header_locale_h = yes; then - AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, - [AC_TRY_LINK([#include ], [return LC_MESSAGES], - am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) - if test $am_cv_val_LC_MESSAGES = yes; then - AC_DEFINE(HAVE_LC_MESSAGES, 1, - [Define if your file defines LC_MESSAGES.]) - fi - fi]) - -#serial 5 - -dnl From Paul Eggert. - -# Define ST_MTIM_NSEC to be the nanoseconds member of struct stat's st_mtim, -# if it exists. - -AC_DEFUN([AC_STRUCT_ST_MTIM_NSEC], - [AC_CACHE_CHECK([for nanoseconds member of struct stat.st_mtim], - ac_cv_struct_st_mtim_nsec, - [ac_save_CPPFLAGS="$CPPFLAGS" - ac_cv_struct_st_mtim_nsec=no - # tv_nsec -- the usual case - # _tv_nsec -- Solaris 2.6, if - # (defined _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED == 1 - # && !defined __EXTENSIONS__) - # st__tim.tv_nsec -- UnixWare 2.1.2 - for ac_val in tv_nsec _tv_nsec st__tim.tv_nsec; do - CPPFLAGS="$ac_save_CPPFLAGS -DST_MTIM_NSEC=$ac_val" - AC_TRY_COMPILE([#include -#include ], [struct stat s; s.st_mtim.ST_MTIM_NSEC;], - [ac_cv_struct_st_mtim_nsec=$ac_val; break]) - done - CPPFLAGS="$ac_save_CPPFLAGS"]) - - if test $ac_cv_struct_st_mtim_nsec != no; then - AC_DEFINE_UNQUOTED(ST_MTIM_NSEC, $ac_cv_struct_st_mtim_nsec, - [Define to be the nanoseconds member of struct stat's st_mtim, - if it exists.]) - fi - ] -) - -#serial 7 -*- autoconf -*- - -dnl From Jim Meyering. -dnl -dnl See if the glibc *_unlocked I/O macros are available. -dnl Use only those *_unlocked macros that are declared. -dnl - -AC_DEFUN([jm_FUNC_GLIBC_UNLOCKED_IO], - [AC_CHECK_DECLS( - [clearerr_unlocked, feof_unlocked, ferror_unlocked, - fflush_unlocked, fgets_unlocked, fputc_unlocked, fputs_unlocked, - fread_unlocked, fwrite_unlocked, getc_unlocked, - getchar_unlocked, putc_unlocked, putchar_unlocked])]) - -#serial 17 - -dnl This macro is intended to be used solely in this file. -dnl These are the prerequisite macros for GNU's strftime.c replacement. -AC_DEFUN([_jm_STRFTIME_PREREQS], -[ - dnl strftime.c uses localtime_r and the underyling system strftime - dnl if they exist. - AC_CHECK_FUNCS(localtime_r strftime) - - AC_CHECK_HEADERS(limits.h) - AC_CHECK_FUNCS(bcopy tzset mempcpy memcpy memset) - - # This defines (or not) HAVE_TZNAME and HAVE_TM_ZONE. - AC_STRUCT_TIMEZONE - - AC_CHECK_FUNCS(mblen mbrlen) - - AC_CHECK_MEMBER([struct tm.tm_gmtoff], - [AC_DEFINE(HAVE_TM_GMTOFF, 1, - [Define if struct tm has the tm_gmtoff member.])], - , - [#include ]) -]) - -dnl From Jim Meyering. -dnl -AC_DEFUN([jm_FUNC_GNU_STRFTIME], -[AC_REQUIRE([AC_HEADER_TIME])dnl - - _jm_STRFTIME_PREREQS - - AC_REQUIRE([AC_C_CONST])dnl - AC_REQUIRE([AC_HEADER_STDC])dnl - AC_CHECK_HEADERS(sys/time.h) - AC_DEFINE([my_strftime], [nstrftime], - [Define to the name of the strftime replacement function.]) -]) - -AC_DEFUN([jm_FUNC_STRFTIME], -[ - _jm_STRFTIME_PREREQS -]) - -#serial 5 - -dnl From Jim Meyering. -dnl Determine whether malloc accepts 0 as its argument. -dnl If it doesn't, arrange to use the replacement function. -dnl - -AC_DEFUN([jm_FUNC_MALLOC], -[ - dnl xmalloc.c requires that this symbol be defined so it doesn't - dnl mistakenly use a broken malloc -- as it might if this test were omitted. - AC_DEFINE(HAVE_DONE_WORKING_MALLOC_CHECK, 1, - [Define if the malloc check has been performed. ]) - - AC_CACHE_CHECK([for working malloc], jm_cv_func_working_malloc, - [AC_TRY_RUN([ - char *malloc (); - int - main () - { - exit (malloc (0) ? 0 : 1); - } - ], - jm_cv_func_working_malloc=yes, - jm_cv_func_working_malloc=no, - dnl When crosscompiling, assume malloc is broken. - jm_cv_func_working_malloc=no) - ]) - if test $jm_cv_func_working_malloc = no; then - AC_LIBOBJ(malloc) - AC_DEFINE(malloc, rpl_malloc, - [Define to rpl_malloc if the replacement function should be used.]) - fi -]) - -#serial 5 - -dnl From Jim Meyering. -dnl Determine whether realloc works when both arguments are 0. -dnl If it doesn't, arrange to use the replacement function. -dnl - -AC_DEFUN([jm_FUNC_REALLOC], -[ - dnl xmalloc.c requires that this symbol be defined so it doesn't - dnl mistakenly use a broken realloc -- as it might if this test were omitted. - AC_DEFINE(HAVE_DONE_WORKING_REALLOC_CHECK, 1, - [Define if the realloc check has been performed. ]) - - AC_CACHE_CHECK([for working realloc], jm_cv_func_working_realloc, - [AC_TRY_RUN([ - char *realloc (); - int - main () - { - exit (realloc (0, 0) ? 0 : 1); - } - ], - jm_cv_func_working_realloc=yes, - jm_cv_func_working_realloc=no, - dnl When crosscompiling, assume realloc is broken. - jm_cv_func_working_realloc=no) - ]) - if test $jm_cv_func_working_realloc = no; then - AC_LIBOBJ(realloc) - AC_DEFINE(realloc, rpl_realloc, - [Define to rpl_realloc if the replacement function should be used.]) - fi -]) - -# Check prerequisites for compiling lib/c-stack.c. - -# Copyright (C) 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -AC_DEFUN([AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC], - [# for STACK_DIRECTION - AC_REQUIRE([AC_FUNC_ALLOCA]) - - AC_CACHE_CHECK([for working C stack overflow detection], - ac_cv_sys_xsi_stack_overflow_heuristic, - [AC_TRY_RUN( - [ - #include - #include - - static union - { - char buffer[SIGSTKSZ]; - long double ld; - uintmax_t u; - void *p; - } alternate_signal_stack; - - #if STACK_DIRECTION - # define find_stack_direction(ptr) STACK_DIRECTION - #else - static int - find_stack_direction (char const *addr) - { - char dummy; - return (! addr ? find_stack_direction (&dummy) - : addr < &dummy ? 1 : -1); - } - #endif - - static void - segv_handler (int signo, siginfo_t *info, void *context) - { - if (0 < info->si_code) - { - ucontext_t const *user_context = context; - char const *stack_min = user_context->uc_stack.ss_sp; - size_t stack_size = user_context->uc_stack.ss_size; - char const *faulting_address = info->si_addr; - size_t s = faulting_address - stack_min; - size_t page_size = sysconf (_SC_PAGESIZE); - if (find_stack_direction (0) < 0) - s += page_size; - if (s < stack_size + page_size) - _exit (0); - } - - _exit (1); - } - - static int - c_stack_action (void) - { - stack_t st; - struct sigaction act; - int r; - - st.ss_flags = 0; - st.ss_sp = alternate_signal_stack.buffer; - st.ss_size = sizeof alternate_signal_stack.buffer; - r = sigaltstack (&st, 0); - if (r != 0) - return r; - - sigemptyset (&act.sa_mask); - act.sa_flags = SA_NODEFER | SA_ONSTACK | SA_RESETHAND | SA_SIGINFO; - act.sa_sigaction = segv_handler; - return sigaction (SIGSEGV, &act, 0); - } - - static int - recurse (char *p) - { - char array[500]; - array[0] = 1; - return *p + recurse (array); - } - - int - main (void) - { - c_stack_action (); - return recurse ("\1"); - } - ], - [ac_cv_sys_xsi_stack_overflow_heuristic=yes], - [ac_cv_sys_xsi_stack_overflow_heuristic=no], - [ac_cv_sys_xsi_stack_overflow_heuristic=cross-compiling])]) - - if test $ac_cv_sys_xsi_stack_overflow_heuristic = yes; then - AC_DEFINE(HAVE_XSI_STACK_OVERFLOW_HEURISTIC, 1, - [Define to 1 if extending the stack slightly past the limit causes - a SIGSEGV, and an alternate stack can be established with sigaltstack, - and the signal handler is passed a context that specifies the - run time stack. This behavior is defined by POSIX 1003.1-2001 - with the X/Open System Interface (XSI) option - and is a standardized way to implement a SEGV-based stack - overflow detection heuristic.]) - fi]) - - -AC_DEFUN([jm_PREREQ_C_STACK], - [AC_REQUIRE([jm_AC_TYPE_UINTMAX_T]) - AC_REQUIRE([AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC]) - - # for STACK_DIRECTION - AC_REQUIRE([AC_FUNC_ALLOCA]) - - AC_CHECK_HEADERS(unistd.h) - - AC_CHECK_TYPES([siginfo_t, stack_t], , , [#include ])]) - -#serial 4 - -dnl FIXME: put these prerequisite-only *.m4 files in a separate -dnl directory -- otherwise, they'll conflict with existing files. - -dnl These are the prerequisite macros for GNU's error.c file. -AC_DEFUN([jm_PREREQ_ERROR], -[ - AC_CHECK_FUNCS(strerror vprintf doprnt) - AC_CHECK_DECLS([strerror]) - AC_FUNC_STRERROR_R - AC_HEADER_STDC -]) - -#serial 22 - -dnl These are the prerequisite macros for files in the lib/ -dnl directories of the fileutils, sh-utils, and textutils packages. - -AC_DEFUN([jm_PREREQ], -[ - jm_PREREQ_ADDEXT - jm_PREREQ_CANON_HOST - jm_PREREQ_DIRNAME - jm_PREREQ_ERROR - jm_PREREQ_EXCLUDE - jm_PREREQ_GETPAGESIZE - jm_PREREQ_HARD_LOCALE - jm_PREREQ_HASH - jm_PREREQ_HUMAN - jm_PREREQ_MBSWIDTH - jm_PREREQ_MEMCHR - jm_PREREQ_PHYSMEM - jm_PREREQ_POSIXVER - jm_PREREQ_QUOTEARG - jm_PREREQ_READUTMP - jm_PREREQ_REGEX - jm_PREREQ_TEMPNAME # called by mkstemp - jm_PREREQ_XGETCWD - jm_PREREQ_XREADLINK -]) - -AC_DEFUN([jm_PREREQ_ADDEXT], -[ - dnl For addext.c. - AC_SYS_LONG_FILE_NAMES - AC_CHECK_FUNCS(pathconf) - AC_CHECK_HEADERS(limits.h string.h unistd.h) -]) - -AC_DEFUN([jm_PREREQ_CANON_HOST], -[ - dnl Add any libraries as early as possible. - dnl In particular, inet_ntoa needs -lnsl at least on Solaris5.5.1, - dnl so we have to add -lnsl to LIBS before checking for that function. - AC_SEARCH_LIBS(gethostbyname, [inet nsl]) - - dnl These come from -lnsl on Solaris5.5.1. - AC_CHECK_FUNCS(gethostbyname gethostbyaddr inet_ntoa) - - AC_CHECK_FUNCS(gethostbyname gethostbyaddr inet_ntoa) - AC_CHECK_HEADERS(unistd.h string.h netdb.h sys/socket.h \ - netinet/in.h arpa/inet.h) -]) - -AC_DEFUN([jm_PREREQ_DIRNAME], -[ - AC_HEADER_STDC - AC_CHECK_HEADERS(string.h) -]) - -AC_DEFUN([jm_PREREQ_EXCLUDE], -[ - jm_FUNC_FNMATCH - AC_HEADER_STDBOOL -]) - -AC_DEFUN([jm_PREREQ_GETPAGESIZE], -[ - AC_CHECK_FUNCS(getpagesize) - AC_CHECK_HEADERS(OS.h unistd.h) -]) - -AC_DEFUN([jm_PREREQ_HARD_LOCALE], -[ - AC_C_PROTOTYPES - AC_CHECK_FUNCS(setlocale) - AC_CHECK_HEADERS(locale.h stdlib.h string.h) -]) - -AC_DEFUN([jm_PREREQ_HASH], -[ - AC_CHECK_HEADERS(stdlib.h) - AC_HEADER_STDBOOL - AC_REQUIRE([jm_CHECK_DECLS]) -]) - -# If you use human.c, you need the following files: -# inttypes.m4 ulonglong.m4 -AC_DEFUN([jm_PREREQ_HUMAN], -[ - AC_CHECK_HEADERS(limits.h stdlib.h string.h) - AC_CHECK_DECLS([getenv]) - AC_REQUIRE([jm_AC_TYPE_UINTMAX_T]) -]) - -AC_DEFUN([jm_PREREQ_MEMCHR], -[ - AC_CHECK_HEADERS(limits.h stdlib.h bp-sym.h) -]) - -AC_DEFUN([jm_PREREQ_PHYSMEM], -[ - AC_CHECK_HEADERS(sys/pstat.h unistd.h) - AC_CHECK_FUNCS(pstat_getstatic pstat_getdynamic) -]) - -AC_DEFUN([jm_PREREQ_POSIXVER], -[ - AC_CHECK_HEADERS(unistd.h) - AC_CHECK_DECLS([getenv]) -]) - -AC_DEFUN([jm_PREREQ_QUOTEARG], -[ - AC_CHECK_FUNCS(isascii iswprint) - jm_FUNC_MBRTOWC - AC_CHECK_HEADERS(limits.h stddef.h stdlib.h string.h wchar.h wctype.h) - AC_HEADER_STDC - AC_C_BACKSLASH_A - AC_MBSTATE_T - AM_C_PROTOTYPES -]) - -AC_DEFUN([jm_PREREQ_REGEX], -[ - dnl FIXME: Maybe provide a btowc replacement someday: solaris-2.5.1 lacks it. - dnl FIXME: Check for wctype and iswctype, and and add -lw if necessary - dnl to get them. - AC_CHECK_FUNCS(bzero bcopy isascii btowc) - AC_CHECK_HEADERS(alloca.h libintl.h wctype.h wchar.h) - AC_HEADER_STDC - AC_FUNC_ALLOCA -]) - -AC_DEFUN([jm_PREREQ_TEMPNAME], -[ - AC_HEADER_STDC - AC_HEADER_STAT - AC_CHECK_HEADERS(fcntl.h sys/time.h stdint.h unistd.h) - AC_CHECK_FUNCS(__secure_getenv gettimeofday) - AC_CHECK_DECLS([getenv]) -]) - -AC_DEFUN([jm_PREREQ_XGETCWD], -[ - AC_C_PROTOTYPES - AC_CHECK_HEADERS(limits.h stdlib.h sys/param.h unistd.h) - AC_CHECK_FUNCS(getcwd) - AC_FUNC_GETCWD_NULL -]) - -AC_DEFUN([jm_PREREQ_XREADLINK], -[ - AC_C_PROTOTYPES - AC_CHECK_HEADERS(limits.h stdlib.h sys/types.h unistd.h) -]) - -#serial 18 - -dnl This is just a wrapper function to encapsulate this kludge. -dnl Putting it in a separate file like this helps share it between -dnl different packages. -AC_DEFUN([jm_CHECK_DECLS], -[ - AC_REQUIRE([_jm_DECL_HEADERS]) - AC_REQUIRE([AC_HEADER_TIME]) - headers=' -#include -#if HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H -# include -# endif -# include -#else -# if HAVE_STRINGS_H -# include -# endif -#endif -#if HAVE_STDLIB_H -# include -#endif -#if HAVE_UNISTD_H -# include -#endif - -#include -#if TIME_WITH_SYS_TIME -# include -# include -#else -# if HAVE_SYS_TIME_H -# include -# else -# include -# endif -#endif - -#if HAVE_UTMP_H -# include -#endif - -#if HAVE_GRP_H -# include -#endif - -#if HAVE_PWD_H -# include -#endif -' - - AC_CHECK_DECLS([ - free, - getenv, - geteuid, - getgrgid, - getlogin, - getpwuid, - getuid, - getutent, - lseek, - malloc, - memchr, - memrchr, - nanosleep, - realloc, - stpcpy, - strndup, - strnlen, - strstr, - strtoul, - strtoull, - ttyname], , , $headers) -]) - -dnl FIXME: when autoconf has support for it. -dnl This is a little helper so we can require these header checks. -AC_DEFUN([_jm_DECL_HEADERS], -[ - AC_REQUIRE([AC_HEADER_STDC]) - AC_CHECK_HEADERS(grp.h memory.h pwd.h string.h strings.h stdlib.h \ - unistd.h sys/time.h utmp.h utmpx.h) -]) - -#serial 4 - -dnl From Paul Eggert - -AC_DEFUN([jm_FUNC_MBRTOWC], -[ - AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared], - jm_cv_func_mbrtowc, - [AC_TRY_LINK( - [#include ], - [mbstate_t state; return ! (sizeof state && mbrtowc);], - jm_cv_func_mbrtowc=yes, - jm_cv_func_mbrtowc=no)]) - if test $jm_cv_func_mbrtowc = yes; then - AC_DEFINE(HAVE_MBRTOWC, 1, - [Define to 1 if mbrtowc and mbstate_t are properly declared.]) - fi -]) - -#serial 4 - -dnl From Paul Eggert. - -AC_DEFUN([AC_C_BACKSLASH_A], -[ - AC_CACHE_CHECK([whether backslash-a works in strings], ac_cv_c_backslash_a, - [AC_TRY_COMPILE([], - [ -#if '\a' == 'a' - syntax error; -#endif - char buf['\a' == 'a' ? -1 : 1]; - buf[0] = '\a'; - return buf[0] != "\a"[0]; - ], - ac_cv_c_backslash_a=yes, - ac_cv_c_backslash_a=no)]) - if test $ac_cv_c_backslash_a = yes; then - AC_DEFINE(HAVE_C_BACKSLASH_A, 1, - [Define if backslash-a works in C strings.]) - fi -]) - -# serial 9 - -# From Paul Eggert. - -# BeOS 5 has but does not define mbstate_t, -# so you can't declare an object of that type. -# Check for this incompatibility with Standard C. - -# Include stdlib.h first, because otherwise this test would fail on Linux -# (at least glibc-2.1.3) because the "_XOPEN_SOURCE 500" definition elicits -# a syntax error in wchar.h due to the use of undefined __int32_t. - -AC_DEFUN([AC_MBSTATE_T], - [ - AC_CHECK_HEADERS(stdlib.h) - - AC_CACHE_CHECK([for mbstate_t], ac_cv_type_mbstate_t, - [AC_TRY_COMPILE([ -#if HAVE_STDLIB_H -# include -#endif -#include ], - [mbstate_t x; return sizeof x;], - ac_cv_type_mbstate_t=yes, - ac_cv_type_mbstate_t=no)]) - if test $ac_cv_type_mbstate_t = no; then - AC_DEFINE(mbstate_t, int, - [Define to a type if does not define.]) - fi]) - - -# Copyright 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# serial 1 - -AC_DEFUN([AM_C_PROTOTYPES], -[AC_REQUIRE([AM_PROG_CC_STDC]) -AC_REQUIRE([AC_PROG_CPP]) -AC_MSG_CHECKING([for function prototypes]) -if test "$am_cv_prog_cc_stdc" != no; then - AC_MSG_RESULT(yes) - AC_DEFINE(PROTOTYPES,1,[Define if compiler has function prototypes]) - U= ANSI2KNR= -else - AC_MSG_RESULT(no) - U=_ ANSI2KNR=./ansi2knr -fi -# Ensure some checks needed by ansi2knr itself. -AC_HEADER_STDC -AC_CHECK_HEADERS(string.h) -AC_SUBST(U)dnl -AC_SUBST(ANSI2KNR)dnl -]) - -#serial 4 - -# autoconf tests required for use of xstrtoumax.c - -AC_DEFUN([jm_AC_PREREQ_XSTRTOUMAX], -[ - AC_REQUIRE([jm_AC_TYPE_INTMAX_T]) - AC_REQUIRE([jm_AC_TYPE_UINTMAX_T]) - AC_REQUIRE([jm_AC_TYPE_LONG_LONG]) - AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG]) - AC_CHECK_DECLS([strtol, strtoul, strtoull, strtoimax, strtoumax]) - AC_CHECK_HEADERS(limits.h stdlib.h inttypes.h) - - AC_CACHE_CHECK([whether defines strtoumax as a macro], - jm_cv_func_strtoumax_macro, - AC_EGREP_CPP([inttypes_h_defines_strtoumax], [#include -#ifdef strtoumax - inttypes_h_defines_strtoumax -#endif], - jm_cv_func_strtoumax_macro=yes, - jm_cv_func_strtoumax_macro=no)) - - if test "$jm_cv_func_strtoumax_macro" != yes; then - AC_REPLACE_FUNCS(strtoumax) - fi - - dnl Only the replacement strtoumax invokes strtoul and strtoull, - dnl so we need the replacements only if strtoumax does not exist. - case "$jm_cv_func_strtoumax_macro,$ac_cv_func_strtoumax" in - no,no) - AC_REPLACE_FUNCS(strtoul) - - dnl We don't need (and can't compile) the replacement strtoull - dnl unless the type `unsigned long long' exists. - if test "$ac_cv_type_unsigned_long_long" = yes; then - AC_REPLACE_FUNCS(strtoull) - fi - ;; - esac -]) - -# Check for fnmatch. - -# This is a modified version of autoconf's AC_FUNC_FNMATCH; -# it also checks for FNM_CASEFOLD or FNM_IGNORECASE. - -# Copyright (C) 2000, 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# AC_FUNC_FNMATCH -# --------------- -# We look for fnmatch.h to avoid that the test fails in C++. -AC_DEFUN([AC_FUNC_FNMATCH], -[AC_CACHE_CHECK([for working GNU-style fnmatch], - [ac_cv_func_fnmatch_works], -# Some versions of Solaris, SCO, and the GNU C Library -# have a broken or incompatible fnmatch. -# So we run a test program. If we are cross-compiling, take no chance. -# Thanks to John Oleynick, Franc,ois Pinard, and Paul Eggert for this test. -[AC_RUN_IFELSE([AC_LANG_PROGRAM([@%:@include ], - [exit (fnmatch ("a*", "abc", 0) != 0 - || fnmatch ("xxXX", "xXxX", FNM_CASEFOLD) != 0 - || fnmatch ("d*/*1", "d/s/1", FNM_FILE_NAME) != FNM_NOMATCH - || fnmatch ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR) != 0 - || fnmatch ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR) != 0 - || fnmatch ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR) != 0);])], - [ac_cv_func_fnmatch_works=yes], - [ac_cv_func_fnmatch_works=no], - [ac_cv_func_fnmatch_works=no])]) -if test $ac_cv_func_fnmatch_works = yes; then - AC_DEFINE(HAVE_FNMATCH, 1, - [Define to 1 if your system has a working `fnmatch' function.]) -fi -])# AC_FUNC_FNMATCH - -#serial 12 - -dnl Initially derived from code in GNU grep. -dnl Mostly written by Jim Meyering. - -dnl Usage: jm_INCLUDED_REGEX([lib/regex.c]) -dnl -AC_DEFUN([jm_INCLUDED_REGEX], - [ - dnl Even packages that don't use regex.c can use this macro. - dnl Of course, for them it doesn't do anything. - - # Assume we'll default to using the included regex.c. - ac_use_included_regex=yes - - # However, if the system regex support is good enough that it passes the - # the following run test, then default to *not* using the included regex.c. - # If cross compiling, assume the test would fail and use the included - # regex.c. The first failing regular expression is from `Spencer ere - # test #75' in grep-2.3. - AC_CACHE_CHECK([for working re_compile_pattern], - jm_cv_func_working_re_compile_pattern, - AC_TRY_RUN( -[#include -#include - int - main () - { - static struct re_pattern_buffer regex; - const char *s; - struct re_registers regs; - re_set_syntax (RE_SYNTAX_POSIX_EGREP); - [s = re_compile_pattern ("a[[:@:>@:]]b\n", 9, ®ex);] - /* This should fail with _Invalid character class name_ error. */ - if (!s) - exit (1); - - /* This should succeed, but doesn't for e.g. glibc-2.1.3. */ - s = re_compile_pattern ("{1", 2, ®ex); - - if (s) - exit (1); - - /* The following example is derived from a problem report - against gawk from Jorge Stolfi . */ - s = re_compile_pattern ("[[anù]]*n", 7, ®ex); - if (s) - exit (1); - - /* This should match, but doesn't for e.g. glibc-2.2.1. */ - if (re_match (®ex, "an", 2, 0, ®s) != 2) - exit (1); - - exit (0); - } - ], - jm_cv_func_working_re_compile_pattern=yes, - jm_cv_func_working_re_compile_pattern=no, - dnl When crosscompiling, assume it's broken. - jm_cv_func_working_re_compile_pattern=no)) - if test $jm_cv_func_working_re_compile_pattern = yes; then - ac_use_included_regex=no - fi - - test -n "$1" || AC_MSG_ERROR([missing argument]) - m4_syscmd([test -f $1]) - ifelse(m4_sysval, 0, - [ - AC_ARG_WITH(included-regex, - [ --without-included-regex don't compile regex; this is the default on - systems with version 2 of the GNU C library - (use with caution on other system)], - jm_with_regex=$withval, - jm_with_regex=$ac_use_included_regex) - if test "$jm_with_regex" = yes; then - AC_LIBOBJ(regex) - fi - ], - ) - ] -) - -#serial 5 - -# Define some macros required for proper operation of code in lib/*.c -# on MSDOS/Windows systems. - -# From Jim Meyering. - -AC_DEFUN([jm_AC_DOS], - [ - AC_CACHE_CHECK([whether system is Windows or MSDOS], [ac_cv_win_or_dos], - [ - AC_TRY_COMPILE([], - [#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ -neither MSDOS nor Windows -#endif], - [ac_cv_win_or_dos=yes], - [ac_cv_win_or_dos=no]) - ]) - - if test x"$ac_cv_win_or_dos" = xyes; then - ac_fs_accepts_drive_letter_prefix=1 - ac_fs_backslash_is_file_name_separator=1 - else - ac_fs_accepts_drive_letter_prefix=0 - ac_fs_backslash_is_file_name_separator=0 - fi - - AH_VERBATIM(FILESYSTEM_PREFIX_LEN, - [#if FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX -# define FILESYSTEM_PREFIX_LEN(Filename) \ - ((Filename)[0] && (Filename)[1] == ':' ? 2 : 0) -#else -# define FILESYSTEM_PREFIX_LEN(Filename) 0 -#endif]) - - AC_DEFINE_UNQUOTED([FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX], - $ac_fs_accepts_drive_letter_prefix, - [Define on systems for which file names may have a so-called - `drive letter' prefix, define this to compute the length of that - prefix, including the colon.]) - - AH_VERBATIM(ISSLASH, - [#if FILESYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR -# define ISSLASH(C) ((C) == '/' || (C) == '\\') -#else -# define ISSLASH(C) ((C) == '/') -#endif]) - - AC_DEFINE_UNQUOTED([FILESYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR], - $ac_fs_backslash_is_file_name_separator, - [Define if the backslash character may also serve as a file name - component separator.]) - ]) - -# Check for setmode, DOS style. - -# Copyright (C) 2001, 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -AC_DEFUN([AC_FUNC_SETMODE_DOS], - [AC_CHECK_HEADERS(fcntl.h unistd.h) - AC_CACHE_CHECK([for DOS-style setmode], - [ac_cv_func_setmode_dos], - [AC_TRY_LINK( - [#include - #if HAVE_FCNTL_H - # include - #endif - #if HAVE_UNISTD_H - # include - #endif], - [int ret = setmode && setmode (1, O_BINARY);], - [ac_cv_func_setmode_dos=yes], - [ac_cv_func_setmode_dos=no])]) - if test $ac_cv_func_setmode_dos = yes; then - AC_DEFINE(HAVE_SETMODE_DOS, 1, - [Define to 1 if you have the DOS-style `setmode' function.]) - fi]) - diff --git a/gnu/dist/diffutils/config.hin b/gnu/dist/diffutils/config.hin deleted file mode 100644 index 0b2e261af50..00000000000 --- a/gnu/dist/diffutils/config.hin +++ /dev/null @@ -1,514 +0,0 @@ -/* config.hin. Generated from configure.ac by autoheader. */ - -/* Define to 1 if the `closedir' function returns void instead of `int'. */ -#undef CLOSEDIR_VOID - -/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP - systems. This function is required for `alloca.c' support on those systems. - */ -#undef CRAY_STACKSEG_END - -/* Define to 1 if using `alloca.c'. */ -#undef C_ALLOCA - -/* Name of "diff" program, unless overridden. */ -#undef DEFAULT_DIFF_PROGRAM - -/* Name of editor program, unless overridden. */ -#undef DEFAULT_EDITOR_PROGRAM - -/* Define to 1 if translation of program messages to the user's native - language is requested. */ -#undef ENABLE_NLS - -/* Define on systems for which file names may have a so-called `drive letter' - prefix, define this to compute the length of that prefix, including the - colon. */ -#undef FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX - -/* Define if the backslash character may also serve as a file name component - separator. */ -#undef FILESYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR - -#if FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX -# define FILESYSTEM_PREFIX_LEN(Filename) \ - ((Filename)[0] && (Filename)[1] == ':' ? 2 : 0) -#else -# define FILESYSTEM_PREFIX_LEN(Filename) 0 -#endif - -/* Define to 1 if you have `alloca', as a function or macro. */ -#undef HAVE_ALLOCA - -/* Define to 1 if you have and it should be used (not on Ultrix). - */ -#undef HAVE_ALLOCA_H - -/* Define to 1 if you have the `bcopy' function. */ -#undef HAVE_BCOPY - -/* Define to 1 if you have the `btowc' function. */ -#undef HAVE_BTOWC - -/* Define to 1 if you have the `bzero' function. */ -#undef HAVE_BZERO - -/* Define to 1 if you have the `clock_gettime' function. */ -#undef HAVE_CLOCK_GETTIME - -/* Define if backslash-a works in C strings. */ -#undef HAVE_C_BACKSLASH_A - -/* Define to 1 if C supports variable-length arrays. */ -#undef HAVE_C_VARARRAYS - -/* Define if the GNU dcgettext() function is already present or preinstalled. - */ -#undef HAVE_DCGETTEXT - -/* Define to 1 if you have the declaration of `clearerr_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_CLEARERR_UNLOCKED - -/* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you - don't. */ -#undef HAVE_DECL_FEOF_UNLOCKED - -/* Define to 1 if you have the declaration of `ferror_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_FERROR_UNLOCKED - -/* Define to 1 if you have the declaration of `fflush_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_FFLUSH_UNLOCKED - -/* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_FGETS_UNLOCKED - -/* Define to 1 if you have the declaration of `fputc_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_FPUTC_UNLOCKED - -/* Define to 1 if you have the declaration of `fputs_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_FPUTS_UNLOCKED - -/* Define to 1 if you have the declaration of `fread_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_FREAD_UNLOCKED - -/* Define to 1 if you have the declaration of `fwrite_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_FWRITE_UNLOCKED - -/* Define to 1 if you have the declaration of `getchar_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_GETCHAR_UNLOCKED - -/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you - don't. */ -#undef HAVE_DECL_GETC_UNLOCKED - -/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't. - */ -#undef HAVE_DECL_GETENV - -/* Define to 1 if you have the declaration of `putchar_unlocked', and to 0 if - you don't. */ -#undef HAVE_DECL_PUTCHAR_UNLOCKED - -/* Define to 1 if you have the declaration of `putc_unlocked', and to 0 if you - don't. */ -#undef HAVE_DECL_PUTC_UNLOCKED - -/* Define to 1 if you have the declaration of `strerror', and to 0 if you - don't. */ -#undef HAVE_DECL_STRERROR - -/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you - don't. */ -#undef HAVE_DECL_STRERROR_R - -/* Define to 1 if you have the declaration of `strtoimax', and to 0 if you - don't. */ -#undef HAVE_DECL_STRTOIMAX - -/* Define to 1 if you have the declaration of `strtol', and to 0 if you don't. - */ -#undef HAVE_DECL_STRTOL - -/* Define to 1 if you have the declaration of `strtoul', and to 0 if you - don't. */ -#undef HAVE_DECL_STRTOUL - -/* Define to 1 if you have the declaration of `strtoull', and to 0 if you - don't. */ -#undef HAVE_DECL_STRTOULL - -/* Define to 1 if you have the declaration of `strtoumax', and to 0 if you - don't. */ -#undef HAVE_DECL_STRTOUMAX - -/* Define to 1 if you have the `diraccess' function. */ -#undef HAVE_DIRACCESS - -/* Define to 1 if you have the header file, and it defines `DIR'. - */ -#undef HAVE_DIRENT_H - -/* Define if the malloc check has been performed. */ -#undef HAVE_DONE_WORKING_MALLOC_CHECK - -/* Define if the realloc check has been performed. */ -#undef HAVE_DONE_WORKING_REALLOC_CHECK - -/* Define to 1 if you have the `doprnt' function. */ -#undef HAVE_DOPRNT - -/* Define to 1 if you have the `dup2' function. */ -#undef HAVE_DUP2 - -/* Define to 1 if you have the header file. */ -#undef HAVE_FCNTL_H - -/* Define to 1 if your system has a working `fnmatch' function. */ -#undef HAVE_FNMATCH - -/* Define to 1 if you have the `fork' function. */ -#undef HAVE_FORK - -/* Define if the GNU gettext() function is already present or preinstalled. */ -#undef HAVE_GETTEXT - -/* Define to 1 if you have the `gettimeofday' function. */ -#undef HAVE_GETTIMEOFDAY - -/* Define if you have the iconv() function. */ -#undef HAVE_ICONV - -/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H - -/* Define to 1 if you have the `isascii' function. */ -#undef HAVE_ISASCII - -/* Define to 1 if you have the `iswprint' function. */ -#undef HAVE_ISWPRINT - -/* Define to 1 if you have the header file. */ -#undef HAVE_LIBINTL_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_LIMITS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_LOCALE_H - -/* Define to 1 if you have the `localtime_r' function. */ -#undef HAVE_LOCALTIME_R - -/* Define if you have the long long type. */ -#undef HAVE_LONG_LONG - -/* Define to 1 if you have the `mblen' function. */ -#undef HAVE_MBLEN - -/* Define to 1 if you have the `mbrlen' function. */ -#undef HAVE_MBRLEN - -/* Define to 1 if mbrtowc and mbstate_t are properly declared. */ -#undef HAVE_MBRTOWC - -/* Define to 1 if you have the `memchr' function. */ -#undef HAVE_MEMCHR - -/* Define to 1 if you have the `memcpy' function. */ -#undef HAVE_MEMCPY - -/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H - -/* Define to 1 if you have the `mempcpy' function. */ -#undef HAVE_MEMPCPY - -/* Define to 1 if you have the `memset' function. */ -#undef HAVE_MEMSET - -/* Define to 1 if you have the `mkstemp' function. */ -#undef HAVE_MKSTEMP - -/* Define to 1 if you have the header file, and it defines `DIR'. */ -#undef HAVE_NDIR_H - -/* Define to 1 if you have the `setlocale' function. */ -#undef HAVE_SETLOCALE - -/* Define to 1 if you have the DOS-style `setmode' function. */ -#undef HAVE_SETMODE_DOS - -/* Define to 1 if you have the `sigaction' function. */ -#undef HAVE_SIGACTION - -/* Define to 1 if the system has the type `siginfo_t'. */ -#undef HAVE_SIGINFO_T - -/* Define to 1 if you have the `sigprocmask' function. */ -#undef HAVE_SIGPROCMASK - -/* Define to 1 if the system has the type `stack_t'. */ -#undef HAVE_STACK_T - -/* Define to 1 if stdbool.h conforms to C99. */ -#undef HAVE_STDBOOL_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDDEF_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the `strcasecmp' function. */ -#undef HAVE_STRCASECMP - -/* Define to 1 if you have the `strchr' function. */ -#undef HAVE_STRCHR - -/* Define to 1 if you have the `strerror' function. */ -#undef HAVE_STRERROR - -/* Define to 1 if you have the `strerror_r' function. */ -#undef HAVE_STRERROR_R - -/* Define to 1 if you have the `strftime' function. */ -#undef HAVE_STRFTIME - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the `strtoul' function. */ -#undef HAVE_STRTOUL - -/* Define to 1 if you have the `strtoull' function. */ -#undef HAVE_STRTOULL - -/* Define to 1 if you have the `strtoumax' function. */ -#undef HAVE_STRTOUMAX - -/* Define to 1 if `st_blksize' is member of `struct stat'. */ -#undef HAVE_STRUCT_STAT_ST_BLKSIZE - -/* Define to 1 if `st_rdev' is member of `struct stat'. */ -#undef HAVE_STRUCT_STAT_ST_RDEV - -/* Define to 1 if `tm_zone' is member of `struct tm'. */ -#undef HAVE_STRUCT_TM_TM_ZONE - -/* Define to 1 if you have the header file, and it defines `DIR'. - */ -#undef HAVE_SYS_DIR_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_FILE_H - -/* Define to 1 if you have the header file, and it defines `DIR'. - */ -#undef HAVE_SYS_NDIR_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TIME_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have that is POSIX.1 compatible. */ -#undef HAVE_SYS_WAIT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_TIME_H - -/* Define to 1 if you have the `tmpnam' function. */ -#undef HAVE_TMPNAM - -/* Define if struct tm has the tm_gmtoff member. */ -#undef HAVE_TM_GMTOFF - -/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use - `HAVE_STRUCT_TM_TM_ZONE' instead. */ -#undef HAVE_TM_ZONE - -/* Define to 1 if you don't have `tm_zone' but do have the external array - `tzname'. */ -#undef HAVE_TZNAME - -/* Define to 1 if you have the `tzset' function. */ -#undef HAVE_TZSET - -/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H - -/* Define if you have the unsigned long long type. */ -#undef HAVE_UNSIGNED_LONG_LONG - -/* Define to 1 if you have the `vfork' function. */ -#undef HAVE_VFORK - -/* Define to 1 if you have the header file. */ -#undef HAVE_VFORK_H - -/* Define to 1 if you have the `vprintf' function. */ -#undef HAVE_VPRINTF - -/* Define to 1 if you have the `waitpid' function. */ -#undef HAVE_WAITPID - -/* Define to 1 if you have the header file. */ -#undef HAVE_WCHAR_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_WCTYPE_H - -/* Define to 1 if `fork' works. */ -#undef HAVE_WORKING_FORK - -/* Define to 1 if `vfork' works. */ -#undef HAVE_WORKING_VFORK - -/* Define to 1 if extending the stack slightly past the limit causes a - SIGSEGV, and an alternate stack can be established with sigaltstack, and - the signal handler is passed a context that specifies the run time stack. - This behavior is defined by POSIX 1003.1-2001 with the X/Open System - Interface (XSI) option and is a standardized way to implement a SEGV-based - stack overflow detection heuristic. */ -#undef HAVE_XSI_STACK_OVERFLOW_HEURISTIC - -/* Define to 1 if you have the `__secure_getenv' function. */ -#undef HAVE___SECURE_GETENV - -#if FILESYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR -# define ISSLASH(C) ((C) == '/' || (C) == '\\') -#else -# define ISSLASH(C) ((C) == '/') -#endif - -/* Name of package */ -#undef PACKAGE - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* Define if compiler has function prototypes */ -#undef PROTOTYPES - -/* Name of "pr" program. */ -#undef PR_PROGRAM - -/* Define to 1 to avoid alloca in the regular-expression implementation. */ -#undef REGEX_MALLOC - -/* Define as the return type of signal handlers (`int' or `void'). */ -#undef RETSIGTYPE - -/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at run-time. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ -#undef STACK_DIRECTION - -/* Define to 1 if the `S_IS*' macros in do not work properly. */ -#undef STAT_MACROS_BROKEN - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Define to 1 if strerror_r returns char *. */ -#undef STRERROR_R_CHAR_P - -/* Define to be the nanoseconds member of struct stat's st_mtim, if it exists. - */ -#undef ST_MTIM_NSEC - -/* Define to 1 if you can safely include both and . */ -#undef TIME_WITH_SYS_TIME - -/* Define to 1 if your declares `struct tm'. */ -#undef TM_IN_SYS_TIME - -/* Version number of package */ -#undef VERSION - -/* Number of bits in a file offset, on hosts where this is settable. */ -#undef _FILE_OFFSET_BITS - -#ifndef _GNU_SOURCE -# define _GNU_SOURCE -#endif - -/* Define for large files, on AIX-style hosts. */ -#undef _LARGE_FILES - -/* Enable Solaris extensions. */ -#undef __EXTENSIONS__ - -/* Define like PROTOTYPES; this can be used by system headers. */ -#undef __PROTOTYPES - -/* Define to empty if `const' does not conform to ANSI C. */ -#undef const - -/* Define as `__inline' if that's what the C compiler calls it, or to nothing - if it is not supported. */ -#undef inline - -/* Define to widest signed type if doesn't define. */ -#undef intmax_t - -/* Define to rpl_malloc if the replacement function should be used. */ -#undef malloc - -/* Define to a type if does not define. */ -#undef mbstate_t - -/* Define to the name of the strftime replacement function. */ -#undef my_strftime - -/* Define to `int' if does not define. */ -#undef pid_t - -/* Define to `int' if does not define. */ -#undef ptrdiff_t - -/* Define to rpl_realloc if the replacement function should be used. */ -#undef realloc - -/* Define to `int' if does not define. */ -#undef ssize_t - -/* Define to widest unsigned type if doesn't define. */ -#undef uintmax_t - -/* Define as `fork' if `vfork' does not work. */ -#undef vfork diff --git a/gnu/dist/diffutils/config/config.guess b/gnu/dist/diffutils/config/config.guess deleted file mode 100644 index ed2e03b7f2b..00000000000 --- a/gnu/dist/diffutils/config/config.guess +++ /dev/null @@ -1,1321 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002 Free Software Foundation, Inc. - -timestamp='2002-03-20' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Originally written by Per Bothner . -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; - --version | -v ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - - -dummy=dummy-$$ -trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int dummy(){}" > $dummy.c ; - for c in cc gcc c89 c99 ; do - ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ; - if test $? = 0 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - rm -f $dummy.c $dummy.o $dummy.rel ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # The OS release - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - macppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvmeppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mipseb-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - cat <$dummy.s - .data -\$Lformat: - .byte 37,100,45,37,120,10,0 # "%d-%x\n" - - .text - .globl main - .align 4 - .ent main -main: - .frame \$30,16,\$26,0 - ldgp \$29,0(\$27) - .prologue 1 - .long 0x47e03d80 # implver \$0 - lda \$2,-1 - .long 0x47e20c21 # amask \$2,\$1 - lda \$16,\$Lformat - mov \$0,\$17 - not \$1,\$18 - jsr \$26,printf - ldgp \$29,0(\$26) - mov 0,\$16 - jsr \$26,exit - .end main -EOF - eval $set_cc_for_build - $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null - if test "$?" = 0 ; then - case `./$dummy` in - 0-0) - UNAME_MACHINE="alpha" - ;; - 1-0) - UNAME_MACHINE="alphaev5" - ;; - 1-1) - UNAME_MACHINE="alphaev56" - ;; - 1-101) - UNAME_MACHINE="alphapca56" - ;; - 2-303) - UNAME_MACHINE="alphaev6" - ;; - 2-307) - UNAME_MACHINE="alphaev67" - ;; - 2-1307) - UNAME_MACHINE="alphaev68" - ;; - esac - fi - rm -f $dummy.s $dummy - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit 0 ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit 0 ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit 0 ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit 0;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit 0 ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit 0 ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit 0;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit 0 ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit 0 ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit 0 ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit 0 ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit 0 ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit 0 ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit 0 ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit 0 ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD $dummy.c -o $dummy \ - && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && rm -f $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit 0 ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit 0 ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit 0 ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit 0 ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit 0 ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit 0 ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit 0 ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit 0 ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit 0 ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit 0 ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit 0 ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - echo rs6000-ibm-aix3.2.5 - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit 0 ;; - *:AIX:*:[45]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit 0 ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit 0 ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit 0 ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit 0 ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit 0 ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit 0 ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`./$dummy` - if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi - rm -f $dummy.c $dummy - fi ;; - esac - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit 0 ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0 - rm -f $dummy.c $dummy - echo unknown-hitachi-hiuxwe2 - exit 0 ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit 0 ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit 0 ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit 0 ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit 0 ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit 0 ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit 0 ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit 0 ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit 0 ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit 0 ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit 0 ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit 0 ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*T3D:*:*:*) - echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit 0 ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - *:FreeBSD:*:*) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit 0 ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit 0 ;; - i*:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit 0 ;; - x86:Interix*:3*) - echo i386-pc-interix3 - exit 0 ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i386-pc-interix - exit 0 ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit 0 ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit 0 ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - *:GNU:*:*) - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit 0 ;; - arm*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - mips:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips - #undef mipsel - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips - #else - CPU= - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` - rm -f $dummy.c - test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0 - ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit 0 ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit 0 ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit 0 ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac - exit 0 ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit 0 ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit 0 ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit 0 ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit 0 ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit 0 ;; - coff-i386) - echo "${UNAME_MACHINE}-pc-linux-gnucoff" - exit 0 ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit 0 ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #ifdef __INTEL_COMPILER - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif -EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` - rm -f $dummy.c - test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 - test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 - ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit 0 ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit 0 ;; - i*86:*:5:[78]*) - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit 0 ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` - (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit 0 ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit 0 ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp - exit 0 ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit 0 ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit 0 ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit 0 ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4.3${OS_REL} && exit 0 - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit 0 ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit 0 ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit 0 ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit 0 ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit 0 ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit 0 ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit 0 ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit 0 ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit 0 ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit 0 ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit 0 ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit 0 ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit 0 ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit 0 ;; - *:Darwin:*:*) - echo `uname -p`-apple-darwin${UNAME_RELEASE} - exit 0 ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit 0 ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit 0 ;; - NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit 0 ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit 0 ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit 0 ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit 0 ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit 0 ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit 0 ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit 0 ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit 0 ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit 0 ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit 0 ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit 0 ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit 0 ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit 0 ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit 0 ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0 -rm -f $dummy.c $dummy - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit 0 ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - c34*) - echo c34-convex-bsd - exit 0 ;; - c38*) - echo c38-convex-bsd - exit 0 ;; - c4*) - echo c4-convex-bsd - exit 0 ;; - esac -fi - -cat >&2 < in order to provide the needed -information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/gnu/dist/diffutils/config/config.rpath b/gnu/dist/diffutils/config/config.rpath deleted file mode 100755 index 5ead7586a7c..00000000000 --- a/gnu/dist/diffutils/config/config.rpath +++ /dev/null @@ -1,513 +0,0 @@ -#! /bin/sh -# Output a system dependent set of variables, describing how to set the -# run time search path of shared libraries in an executable. -# -# Copyright 1996-2002 Free Software Foundation, Inc. -# Taken from GNU libtool, 2001 -# Originally by Gordon Matzigkeit , 1996 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. -# -# The first argument passed to this file is the canonical host specification, -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld -# should be set by the caller. -# -# The set of defined variables is at the end of this script. - -# All known linkers require a `.a' archive for static linking (except M$VC, -# which needs '.lib'). -libext=a -shlibext= - -host="$1" -host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - -wl= -if test "$GCC" = yes; then - wl='-Wl,' -else - case "$host_os" in - aix3* | aix4* | aix5*) - wl='-Wl,' - ;; - hpux9* | hpux10* | hpux11*) - wl='-Wl,' - ;; - irix5* | irix6*) - wl='-Wl,' - ;; - linux*) - echo '__INTEL_COMPILER' > conftest.$ac_ext - if $CC -E conftest.$ac_ext >/dev/null | grep __INTEL_COMPILER >/dev/null - then - : - else - # Intel icc - wl='-Qoption,ld,' - fi - ;; - osf3* | osf4* | osf5*) - wl='-Wl,' - ;; - solaris*) - wl='-Wl,' - ;; - sunos4*) - wl='-Qoption ld ' - ;; - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - if test "x$host_vendor" = xsni; then - wl='-LD' - else - wl='-Wl,' - fi - ;; - esac -fi - -hardcode_libdir_flag_spec= -hardcode_libdir_separator= -hardcode_direct=no -hardcode_minus_L=no - -case "$host_os" in - cygwin* | mingw* | pw32*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - if test "$GCC" != yes; then - with_gnu_ld=no - fi - ;; - openbsd*) - with_gnu_ld=no - ;; -esac - -ld_shlibs=yes -if test "$with_gnu_ld" = yes; then - case "$host_os" in - aix3* | aix4* | aix5*) - # On AIX, the GNU linker is very broken - ld_shlibs=no - ;; - amigaos*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - # Samuel A. Falvo II reports - # that the semantics of dynamic libraries on AmigaOS, at least up - # to version 4, is to share data among multiple programs linked - # with the same dynamic library. Since this doesn't match the - # behavior of shared libraries on other platforms, we can use - # them. - ld_shlibs=no - ;; - beos*) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - cygwin* | mingw* | pw32*) - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - ;; - solaris* | sysv5*) - if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - sunos4*) - hardcode_direct=yes - ;; - *) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - : - else - ld_shlibs=no - fi - ;; - esac - if test "$ld_shlibs" = yes; then - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - fi -else - case "$host_os" in - aix3*) - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$GCC" = yes; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - aix4* | aix5*) - if test "$host_cpu" = ia64; then - # On IA64, the linker does run time linking by default, so we don't - # have to do anything special. - aix_use_runtimelinking=no - else - aix_use_runtimelinking=no - # Test if we are trying to use run time linking or normal - # AIX style linking. If -brtl is somewhere in LDFLAGS, we - # need to do runtime linking. - case $host_os in aix4.[23]|aix4.[23].*|aix5*) - for ld_flag in $LDFLAGS; do - if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then - aix_use_runtimelinking=yes - break - fi - done - esac - fi - hardcode_direct=yes - hardcode_libdir_separator=':' - if test "$GCC" = yes; then - case $host_os in aix4.[012]|aix4.[012].*) - collect2name=`${CC} -print-prog-name=collect2` - if test -f "$collect2name" && \ - strings "$collect2name" | grep resolve_lib_name >/dev/null - then - # We have reworked collect2 - hardcode_direct=yes - else - # We have old collect2 - hardcode_direct=unsupported - hardcode_minus_L=yes - hardcode_libdir_flag_spec='-L$libdir' - hardcode_libdir_separator= - fi - esac - fi - if test "$aix_use_runtimelinking" = yes; then - hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib' - else - if test "$host_cpu" = ia64; then - hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' - else - hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' - fi - fi - ;; - amigaos*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - # see comment about different semantics on the GNU ld section - ld_shlibs=no - ;; - cygwin* | mingw* | pw32*) - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec=' ' - libext=lib - ;; - darwin* | rhapsody*) - hardcode_direct=yes - ;; - freebsd1*) - ld_shlibs=no - ;; - freebsd2.2*) - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - ;; - freebsd2*) - hardcode_direct=yes - hardcode_minus_L=yes - ;; - freebsd*) - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - ;; - hpux9* | hpux10* | hpux11*) - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - hardcode_minus_L=yes # Not in the search PATH, but as the default - # location of the library. - ;; - irix5* | irix6*) - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - netbsd*) - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - ;; - newsos6) - hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - openbsd*) - hardcode_direct=yes - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - else - case "$host_os" in - openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) - hardcode_libdir_flag_spec='-R$libdir' - ;; - *) - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - ;; - esac - fi - ;; - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - osf3*) - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - osf4* | osf5*) - if test "$GCC" = yes; then - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - # Both cc and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - hardcode_libdir_separator=: - ;; - sco3.2v5*) - ;; - solaris*) - hardcode_libdir_flag_spec='-R$libdir' - ;; - sunos4*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - ;; - sysv4) - if test "x$host_vendor" = xsno; then - hardcode_direct=yes # is this really true??? - else - hardcode_direct=no # Motorola manual says yes, but my tests say they lie - fi - ;; - sysv4.3*) - ;; - sysv5*) - hardcode_libdir_flag_spec= - ;; - uts4*) - hardcode_libdir_flag_spec='-L$libdir' - ;; - dgux*) - hardcode_libdir_flag_spec='-L$libdir' - ;; - sysv4*MP*) - if test -d /usr/nec; then - ld_shlibs=yes - fi - ;; - sysv4.2uw2*) - hardcode_direct=yes - hardcode_minus_L=no - ;; - sysv5uw7* | unixware7*) - ;; - *) - ld_shlibs=no - ;; - esac -fi - -# Check dynamic linker characteristics -libname_spec='lib$name' -sys_lib_dlsearch_path_spec="/lib /usr/lib" -sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -case "$host_os" in - aix3*) - shlibext=so - ;; - aix4* | aix5*) - shlibext=so - ;; - amigaos*) - shlibext=ixlibrary - ;; - beos*) - shlibext=so - ;; - bsdi4*) - shlibext=so - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - ;; - cygwin* | mingw* | pw32*) - case $GCC,$host_os in - yes,cygwin*) - shlibext=dll.a - ;; - yes,mingw*) - shlibext=dll - sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g"` - ;; - yes,pw32*) - shlibext=dll - ;; - *) - shlibext=dll - ;; - esac - ;; - darwin* | rhapsody*) - shlibext=dylib - ;; - freebsd1*) - ;; - freebsd*) - shlibext=so - ;; - gnu*) - shlibext=so - ;; - hpux9* | hpux10* | hpux11*) - shlibext=sl - ;; - irix5* | irix6*) - shlibext=so - case "$host_os" in - irix5*) - libsuff= shlibsuff= - ;; - *) - case $LD in - *-32|*"-32 ") libsuff= shlibsuff= ;; - *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 ;; - *-64|*"-64 ") libsuff=64 shlibsuff=64 ;; - *) libsuff= shlibsuff= ;; - esac - ;; - esac - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - ;; - linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) - ;; - linux-gnu*) - shlibext=so - ;; - netbsd*) - shlibext=so - ;; - newsos6) - shlibext=so - ;; - openbsd*) - shlibext=so - ;; - os2*) - libname_spec='$name' - shlibext=dll - ;; - osf3* | osf4* | osf5*) - shlibext=so - sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" - sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - ;; - sco3.2v5*) - shlibext=so - ;; - solaris*) - shlibext=so - ;; - sunos4*) - shlibext=so - ;; - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - shlibext=so - case "$host_vendor" in - motorola) - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - ;; - esac - ;; - uts4*) - shlibext=so - ;; - dgux*) - shlibext=so - ;; - sysv4*MP*) - if test -d /usr/nec; then - shlibext=so - fi - ;; -esac - -sed_quote_subst='s/\(["`$\\]\)/\\\1/g' -escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` -escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` -escaped_sys_lib_search_path_spec=`echo "X$sys_lib_search_path_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` -escaped_sys_lib_dlsearch_path_spec=`echo "X$sys_lib_dlsearch_path_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` - -sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. Submit a context -# diff and a properly formatted ChangeLog entry. -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit 0 ;; - --version | -v ) - echo "$version" ; exit 0 ;; - --help | --h* | -h ) - echo "$usage"; exit 0 ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit 0;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis) - os= - basic_machine=$1 - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ - | c4x | clipper \ - | d10v | d30v | dsp16xx \ - | fr30 \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | m32r | m68000 | m68k | m88k | mcore \ - | mips | mips16 | mips64 | mips64el | mips64orion | mips64orionel \ - | mips64vr4100 | mips64vr4100el | mips64vr4300 \ - | mips64vr4300el | mips64vr5000 | mips64vr5000el \ - | mipsbe | mipseb | mipsel | mipsle | mipstx39 | mipstx39el \ - | mipsisa32 | mipsisa64 \ - | mn10200 | mn10300 \ - | ns16k | ns32k \ - | openrisc | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ - | sh | sh[34] | sh[34]eb | shbe | shle | sh64 \ - | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ - | strongarm \ - | tahoe | thumb | tic80 | tron \ - | v850 | v850e \ - | we32k \ - | x86 | xscale | xstormy16 | xtensa \ - | z8k) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armv*-* \ - | avr-* \ - | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c54x-* \ - | clipper-* | cydra-* \ - | d10v-* | d30v-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fr30-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | m32r-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | mcore-* \ - | mips-* | mips16-* | mips64-* | mips64el-* | mips64orion-* \ - | mips64orionel-* | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* | mipsbe-* | mipseb-* \ - | mipsle-* | mipsel-* | mipstx39-* | mipstx39el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ - | sh-* | sh[34]-* | sh[34]eb-* | shbe-* | shle-* | sh64-* \ - | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ - | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ - | xtensa-* \ - | ymp-* \ - | z8k-*) - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - crds | unos) - basic_machine=m68k-crds - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - or32 | or32-*) - basic_machine=or32-unknown - os=-coff - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon) - basic_machine=i686-pc - ;; - pentiumii | pentium2) - basic_machine=i686-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3d) - basic_machine=alpha-cray - os=-unicos - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - windows32) - basic_machine=i386-pc - os=-windows32-msvcrt - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh3 | sh4 | sh3eb | sh4eb) - basic_machine=sh-unknown - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparc | sparcv9 | sparcv9b) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - c4x*) - basic_machine=c4x-none - os=-coff - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto*) - os=-nto-qnx - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-ibm) - os=-aix - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -vxsim* | -vxworks*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit 0 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/gnu/dist/diffutils/config/depcomp b/gnu/dist/diffutils/config/depcomp deleted file mode 100755 index 368e3be93e0..00000000000 --- a/gnu/dist/diffutils/config/depcomp +++ /dev/null @@ -1,436 +0,0 @@ -#! /bin/sh - -# depcomp - compile a program generating dependencies as side-effects -# Copyright 1999, 2000 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Originally written by Alexandre Oliva . - -if test -z "$depmode" || test -z "$source" || test -z "$object"; then - echo "depcomp: Variables source, object and depmode must be set" 1>&2 - exit 1 -fi -# `libtool' can also be set to `yes' or `no'. - -if test -z "$depfile"; then - base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'` - dir=`echo "$object" | sed 's,/.*$,/,'` - if test "$dir" = "$object"; then - dir= - fi - # FIXME: should be _deps on DOS. - depfile="$dir.deps/$base" -fi - -tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} - -rm -f "$tmpdepfile" - -# Some modes work just like other modes, but use different flags. We -# parameterize here, but still list the modes in the big case below, -# to make depend.m4 easier to write. Note that we *cannot* use a case -# here, because this file can only contain one case statement. -if test "$depmode" = hp; then - # HP compiler uses -M and no extra arg. - gccflag=-M - depmode=gcc -fi - -if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout -fi - -case "$depmode" in -gcc3) -## gcc 3 implements dependency tracking that does exactly what -## we want. Yay! Note: for some reason libtool 1.4 doesn't like -## it if -MD -MP comes after the -MF stuff. Hmm. - "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - mv "$tmpdepfile" "$depfile" - ;; - -gcc) -## There are various ways to get dependency output from gcc. Here's -## why we pick this rather obscure method: -## - Don't want to use -MD because we'd like the dependencies to end -## up in a subdir. Having to rename by hand is ugly. -## (We might end up doing this anyway to support other compilers.) -## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). -## - Using -M directly means running the compiler twice (even worse -## than renaming). - if test -z "$gccflag"; then - gccflag=-MD, - fi - "$@" -Wp,"$gccflag$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -## The second -e expression handles DOS-style file names with drive letters. - sed -e 's/^[^:]*: / /' \ - -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the `deleted header file' problem. -## The problem is that when a header file which appears in a .P file -## is deleted, the dependency causes make to die (because there is -## typically no way to rebuild the header). We avoid this by adding -## dummy dependencies for each header file. Too bad gcc doesn't do -## this for us directly. - tr ' ' ' -' < "$tmpdepfile" | -## Some versions of gcc put a space before the `:'. On the theory -## that the space means something, we add a space to the output as -## well. -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -hp) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - -sgi) - if test "$libtool" = yes; then - "$@" "-Wp,-MDupdate,$tmpdepfile" - else - "$@" -MDupdate "$tmpdepfile" - fi - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - - if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files - echo "$object : \\" > "$depfile" - - # Clip off the initial element (the dependent). Don't try to be - # clever and replace this with sed code, as IRIX sed won't handle - # lines with more than a fixed number of characters (4096 in - # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like `#:fec' to the end of the - # dependency line. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ - tr ' -' ' ' >> $depfile - echo >> $depfile - - # The second pass generates a dummy entry for each header file. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> $depfile - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -aix) - # The C for AIX Compiler uses -M and outputs the dependencies - # in a .u file. This file always lives in the current directory. - # Also, the AIX compiler puts `$object:' at the start of each line; - # $object doesn't have directory information. - stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'` - tmpdepfile="$stripped.u" - outname="$stripped.o" - if test "$libtool" = yes; then - "$@" -Wc,-M - else - "$@" -M - fi - - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - - if test -f "$tmpdepfile"; then - # Each line is of the form `foo.o: dependent.h'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" - sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -tru64) - # The Tru64 AIX compiler uses -MD to generate dependencies as a side - # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in `foo.d' instead, so we check for that too. - # Subdirectories are respected. - - base=`echo "$object" | sed -e 's/\.o$/.d/' -e 's/\.lo$/.d/'` - tmpdepfile1="$base.o.d" - tmpdepfile2="$base.d" - if test "$libtool" = yes; then - "$@" -Wc,-MD - else - "$@" -MD - fi - - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" - exit $stat - fi - - if test -f "$tmpdepfile1"; then - tmpdepfile="$tmpdepfile1" - else - tmpdepfile="$tmpdepfile2" - fi - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a space and a tab in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; - -#nosideeffect) - # This comment above is used by automake to tell side-effect - # dependency tracking mechanisms from slower ones. - -dashmstdout) - # Important note: in order to support this mode, a compiler *must* - # always write the proprocessed file to stdout, regardless of -o, - # because we must use -o when running libtool. - test -z "$dashmflag" && dashmflag=-M - ( IFS=" " - case " $* " in - *" --mode=compile "*) # this is libtool, let us make it quiet - for arg - do # cycle over the arguments - case "$arg" in - "--mode=compile") - # insert --quiet before "--mode=compile" - set fnord "$@" --quiet - shift # fnord - ;; - esac - set fnord "$@" "$arg" - shift # fnord - shift # "$arg" - done - ;; - esac - "$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" - ) & - proc=$! - "$@" - stat=$? - wait "$proc" - if test "$stat" != 0; then exit $stat; fi - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - tr ' ' ' -' < "$tmpdepfile" | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -dashXmstdout) - # This case only exists to satisfy depend.m4. It is never actually - # run, as this mode is specially recognized in the preamble. - exit 1 - ;; - -makedepend) - # X makedepend - ( - shift - cleared=no - for arg in "$@"; do - case $cleared in no) - set ""; shift - cleared=yes - esac - case "$arg" in - -D*|-I*) - set fnord "$@" "$arg"; shift;; - -*) - ;; - *) - set fnord "$@" "$arg"; shift;; - esac - done - obj_suffix="`echo $object | sed 's/^.*\././'`" - touch "$tmpdepfile" - ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@" - ) & - proc=$! - "$@" - stat=$? - wait "$proc" - if test "$stat" != 0; then exit $stat; fi - rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - sed '1,2d' "$tmpdepfile" | tr ' ' ' -' | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" "$tmpdepfile".bak - ;; - -cpp) - # Important note: in order to support this mode, a compiler *must* - # always write the proprocessed file to stdout, regardless of -o, - # because we must use -o when running libtool. - ( IFS=" " - case " $* " in - *" --mode=compile "*) - for arg - do # cycle over the arguments - case $arg in - "--mode=compile") - # insert --quiet before "--mode=compile" - set fnord "$@" --quiet - shift # fnord - ;; - esac - set fnord "$@" "$arg" - shift # fnord - shift # "$arg" - done - ;; - esac - "$@" -E | - sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | - sed '$ s: \\$::' > "$tmpdepfile" - ) & - proc=$! - "$@" - stat=$? - wait "$proc" - if test "$stat" != 0; then exit $stat; fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - cat < "$tmpdepfile" >> "$depfile" - sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvisualcpp) - # Important note: in order to support this mode, a compiler *must* - # always write the proprocessed file to stdout, regardless of -o, - # because we must use -o when running libtool. - ( IFS=" " - case " $* " in - *" --mode=compile "*) - for arg - do # cycle over the arguments - case $arg in - "--mode=compile") - # insert --quiet before "--mode=compile" - set fnord "$@" --quiet - shift # fnord - ;; - esac - set fnord "$@" "$arg" - shift # fnord - shift # "$arg" - done - ;; - esac - for arg - do - case "$arg" in - "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; - *) - set fnord "$@" "$arg" - shift - shift - ;; - esac - done - "$@" -E | - sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" - ) & - proc=$! - "$@" - stat=$? - wait "$proc" - if test "$stat" != 0; then exit $stat; fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" - echo " " >> "$depfile" - . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -none) - exec "$@" - ;; - -*) - echo "Unknown depmode $depmode" 1>&2 - exit 1 - ;; -esac - -exit 0 diff --git a/gnu/dist/diffutils/config/install-sh b/gnu/dist/diffutils/config/install-sh deleted file mode 100755 index 398a88e1421..00000000000 --- a/gnu/dist/diffutils/config/install-sh +++ /dev/null @@ -1,251 +0,0 @@ -#!/bin/sh -# -# install - install a program, script, or datafile -# This comes from X11R5 (mit/util/scripts/install.sh). -# -# Copyright 1991 by the Massachusetts Institute of Technology -# -# Permission to use, copy, modify, distribute, and sell this software and its -# documentation for any purpose is hereby granted without fee, provided that -# the above copyright notice appear in all copies and that both that -# copyright notice and this permission notice appear in supporting -# documentation, and that the name of M.I.T. not be used in advertising or -# publicity pertaining to distribution of the software without specific, -# written prior permission. M.I.T. makes no representations about the -# suitability of this software for any purpose. It is provided "as is" -# without express or implied warranty. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. - - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd="$cpprog" - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd="$stripprog" - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "install: no input file specified" - exit 1 -else - : -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d $dst ]; then - instcmd=: - chmodcmd="" - else - instcmd=$mkdirprog - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f $src -o -d $src ] - then - : - else - echo "install: $src does not exist" - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "install: no destination specified" - exit 1 - else - : - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d $dst ] - then - dst="$dst"/`basename $src` - else - : - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' - ' -IFS="${IFS-${defaultIFS}}" - -oIFS="${IFS}" -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS="${oIFS}" - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp="${pathcomp}${1}" - shift - - if [ ! -d "${pathcomp}" ] ; - then - $mkdirprog "${pathcomp}" - else - : - fi - - pathcomp="${pathcomp}/" -done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd $dst && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename $dst` - else - dstfile=`basename $dst $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename $dst` - else - : - fi - -# Make a temp file name in the proper directory. - - dsttmp=$dstdir/#inst.$$# - -# Move or copy the file name to the temp name - - $doit $instcmd $src $dsttmp && - - trap "rm -f ${dsttmp}" 0 && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi && - -# Now rename the file to the real destination. - - $doit $rmcmd -f $dstdir/$dstfile && - $doit $mvcmd $dsttmp $dstdir/$dstfile - -fi && - - -exit 0 diff --git a/gnu/dist/diffutils/config/mdate-sh b/gnu/dist/diffutils/config/mdate-sh deleted file mode 100755 index c079aed3e22..00000000000 --- a/gnu/dist/diffutils/config/mdate-sh +++ /dev/null @@ -1,97 +0,0 @@ -#!/bin/sh -# Get modification time of a file or directory and pretty-print it. -# Copyright 1995, 1996, 1997 Free Software Foundation, Inc. -# written by Ulrich Drepper , June 1995 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Prevent date giving response in another language. -LANG=C -export LANG -LC_ALL=C -export LC_ALL -LC_TIME=C -export LC_TIME - -# Get the extended ls output of the file or directory. -# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below. -if ls -L /dev/null 1>/dev/null 2>&1; then - set - x`ls -L -l -d $1` -else - set - x`ls -l -d $1` -fi -# The month is at least the fourth argument -# (3 shifts here, the next inside the loop). -shift -shift -shift - -# Find the month. Next argument is day, followed by the year or time. -month= -until test $month -do - shift - case $1 in - Jan) month=January; nummonth=1;; - Feb) month=February; nummonth=2;; - Mar) month=March; nummonth=3;; - Apr) month=April; nummonth=4;; - May) month=May; nummonth=5;; - Jun) month=June; nummonth=6;; - Jul) month=July; nummonth=7;; - Aug) month=August; nummonth=8;; - Sep) month=September; nummonth=9;; - Oct) month=October; nummonth=10;; - Nov) month=November; nummonth=11;; - Dec) month=December; nummonth=12;; - esac -done - -day=$2 - -# Here we have to deal with the problem that the ls output gives either -# the time of day or the year. -case $3 in - *:*) set `date`; eval year=\$$# - case $2 in - Jan) nummonthtod=1;; - Feb) nummonthtod=2;; - Mar) nummonthtod=3;; - Apr) nummonthtod=4;; - May) nummonthtod=5;; - Jun) nummonthtod=6;; - Jul) nummonthtod=7;; - Aug) nummonthtod=8;; - Sep) nummonthtod=9;; - Oct) nummonthtod=10;; - Nov) nummonthtod=11;; - Dec) nummonthtod=12;; - esac - # For the first six month of the year the time notation can also - # be used for files modified in the last year. - if (expr $nummonth \> $nummonthtod) > /dev/null; - then - year=`expr $year - 1` - fi;; - *) year=$3;; -esac - -# The result. -echo $day $month $year diff --git a/gnu/dist/diffutils/config/missing b/gnu/dist/diffutils/config/missing deleted file mode 100755 index dd583709f53..00000000000 --- a/gnu/dist/diffutils/config/missing +++ /dev/null @@ -1,336 +0,0 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. -# Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc. -# Originally by Fran,cois Pinard , 1996. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -run=: - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.ac; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi - -case "$1" in ---run) - # Try to run requested program, and just exit if it succeeds. - run= - shift - "$@" && exit 0 - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case "$1" in - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch]" - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing 0.4 - GNU automake" - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - - aclocal*) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acinclude.m4' or \`${configure_ac}'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`${configure_ac}'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acconfig.h' or \`${configure_ac}'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case "$f" in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake*) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - autom4te) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the - proper tools for further handling them. - You can get \`$1Help2man' as part of \`Autoconf' from any GNU - archive site." - - file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` - test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo "#! /bin/sh" - echo "# Created by GNU Automake missing as a replacement of" - echo "# $ $@" - echo "exit 0" - chmod +x $file - exit 1 - fi - ;; - - bison|yacc) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if [ ! -f y.tab.h ]; then - echo >y.tab.h - fi - if [ ! -f y.tab.c ]; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex|flex) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if [ ! -f lex.yy.c ]; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a dependency of a manual page. You may need the - \`Help2man' package in order for those modifications to take - effect. You can get \`Help2man' from any GNU archive site." - - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` - fi - if [ -f "$file" ]; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit 1 - fi - ;; - - makeinfo) - if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then - # We have makeinfo, but it failed. - exit 1 - fi - - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` - fi - touch $file - ;; - - tar) - shift - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - fi - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar ${1+"$@"} && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar ${1+"$@"} && exit 0 - fi - firstarg="$1" - if shift; then - case "$firstarg" in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" ${1+"$@"} && exit 0 - ;; - esac - case "$firstarg" in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" ${1+"$@"} && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequirements for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 diff --git a/gnu/dist/diffutils/config/mkinstalldirs b/gnu/dist/diffutils/config/mkinstalldirs deleted file mode 100644 index 3f605fa6344..00000000000 --- a/gnu/dist/diffutils/config/mkinstalldirs +++ /dev/null @@ -1,101 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy -# Author: Noah Friedman -# Created: 1993-05-16 -# Public domain - -# Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp - -errstatus=0 -dirmode="" - -usage="\ -Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." - -# process command line arguments -while test $# -gt 0 ; do - case "${1}" in - -h | --help | --h* ) # -h for help - echo "${usage}" 1>&2; exit 0 ;; - -m ) # -m PERM arg - shift - test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; } - dirmode="${1}" - shift ;; - -- ) shift; break ;; # stop option processing - -* ) echo "${usage}" 1>&2; exit 1 ;; # unknown option - * ) break ;; # first non-opt arg - esac -done - -for file -do - if test -d "$file"; then - shift - else - break - fi -done - -case $# in -0) exit 0 ;; -esac - -case $dirmode in -'') - if mkdir -p -- . 2>/dev/null; then - echo "mkdir -p -- $*" - exec mkdir -p -- "$@" - fi ;; -*) - if mkdir -m "$dirmode" -p -- . 2>/dev/null; then - echo "mkdir -m $dirmode -p -- $*" - exec mkdir -m "$dirmode" -p -- "$@" - fi ;; -esac - -for file -do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` - shift - - pathcomp= - for d - do - pathcomp="$pathcomp$d" - case "$pathcomp" in - -* ) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" - - mkdir "$pathcomp" || lasterr=$? - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - else - if test ! -z "$dirmode"; then - echo "chmod $dirmode $pathcomp" - - lasterr="" - chmod "$dirmode" "$pathcomp" || lasterr=$? - - if test ! -z "$lasterr"; then - errstatus=$lasterr - fi - fi - fi - fi - - pathcomp="$pathcomp/" - done -done - -exit $errstatus - -# Local Variables: -# mode: shell-script -# sh-indentation: 3 -# End: -# mkinstalldirs ends here diff --git a/gnu/dist/diffutils/config/texinfo.tex b/gnu/dist/diffutils/config/texinfo.tex deleted file mode 100644 index df62a127bb7..00000000000 --- a/gnu/dist/diffutils/config/texinfo.tex +++ /dev/null @@ -1,6364 +0,0 @@ -% texinfo.tex -- TeX macros to handle Texinfo files. -% -% Load plain if necessary, i.e., if running under initex. -\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi -% -\def\texinfoversion{2002-03-26.08} -% -% Copyright (C) 1985, 86, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -% 2000, 01, 02 Free Software Foundation, Inc. -% -% This texinfo.tex file is free software; you can redistribute it and/or -% modify it under the terms of the GNU General Public License as -% published by the Free Software Foundation; either version 2, or (at -% your option) any later version. -% -% This texinfo.tex file is distributed in the hope that it will be -% useful, but WITHOUT ANY WARRANTY; without even the implied warranty -% of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -% General Public License for more details. -% -% You should have received a copy of the GNU General Public License -% along with this texinfo.tex file; see the file COPYING. If not, write -% to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -% Boston, MA 02111-1307, USA. -% -% In other words, you are welcome to use, share and improve this program. -% You are forbidden to forbid anyone else to use, share and improve -% what you give them. Help stamp out software-hoarding! -% -% Please try the latest version of texinfo.tex before submitting bug -% reports; you can get the latest version from: -% ftp://ftp.gnu.org/gnu/texinfo.tex -% (and all GNU mirrors, see http://www.gnu.org/order/ftp.html) -% ftp://texinfo.org/texinfo/texinfo.tex -% ftp://tug.org/tex/texinfo.tex -% (and all CTAN mirrors, see http://www.ctan.org), -% and /home/gd/gnu/doc/texinfo.tex on the GNU machines. -% -% The texinfo.tex in any given Texinfo distribution could well be out -% of date, so if that's what you're using, please check. -% -% Texinfo has a small home page at http://texinfo.org/ and also -% http://www.gnu.org/software/texinfo. -% -% Send bug reports to bug-texinfo@gnu.org. Please include including a -% complete document in each bug report with which we can reproduce the -% problem. Patches are, of course, greatly appreciated. -% -% To process a Texinfo manual with TeX, it's most reliable to use the -% texi2dvi shell script that comes with the distribution. For a simple -% manual foo.texi, however, you can get away with this: -% tex foo.texi -% texindex foo.?? -% tex foo.texi -% tex foo.texi -% dvips foo.dvi -o # or whatever; this makes foo.ps. -% The extra TeX runs get the cross-reference information correct. -% Sometimes one run after texindex suffices, and sometimes you need more -% than two; texi2dvi does it as many times as necessary. -% -% It is possible to adapt texinfo.tex for other languages. You can get -% the existing language-specific files from the full Texinfo distribution. - -\message{Loading texinfo [version \texinfoversion]:} - -% If in a .fmt file, print the version number -% and turn on active characters that we couldn't do earlier because -% they might have appeared in the input file name. -\everyjob{\message{[Texinfo version \texinfoversion]}% - \catcode`+=\active \catcode`\_=\active} - -% Save some parts of plain tex whose names we will redefine. -\let\ptexb=\b -\let\ptexbullet=\bullet -\let\ptexc=\c -\let\ptexcomma=\, -\let\ptexdot=\. -\let\ptexdots=\dots -\let\ptexend=\end -\let\ptexequiv=\equiv -\let\ptexexclam=\! -\let\ptexi=\i -\let\ptexlbrace=\{ -\let\ptexrbrace=\} -\let\ptexstar=\* -\let\ptext=\t - -% We never want plain's outer \+ definition in Texinfo. -% For @tex, we can use \tabalign. -\let\+ = \relax - -\message{Basics,} -\chardef\other=12 - -% If this character appears in an error message or help string, it -% starts a new line in the output. -\newlinechar = `^^J - -% Set up fixed words for English if not already set. -\ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi -\ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi -\ifx\putwordfile\undefined \gdef\putwordfile{file}\fi -\ifx\putwordin\undefined \gdef\putwordin{in}\fi -\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi -\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi -\ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi -\ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi -\ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi -\ifx\putwordNoTitle\undefined \gdef\putwordNoTitle{No Title}\fi -\ifx\putwordof\undefined \gdef\putwordof{of}\fi -\ifx\putwordon\undefined \gdef\putwordon{on}\fi -\ifx\putwordpage\undefined \gdef\putwordpage{page}\fi -\ifx\putwordsection\undefined \gdef\putwordsection{section}\fi -\ifx\putwordSection\undefined \gdef\putwordSection{Section}\fi -\ifx\putwordsee\undefined \gdef\putwordsee{see}\fi -\ifx\putwordSee\undefined \gdef\putwordSee{See}\fi -\ifx\putwordShortTOC\undefined \gdef\putwordShortTOC{Short Contents}\fi -\ifx\putwordTOC\undefined \gdef\putwordTOC{Table of Contents}\fi -% -\ifx\putwordMJan\undefined \gdef\putwordMJan{January}\fi -\ifx\putwordMFeb\undefined \gdef\putwordMFeb{February}\fi -\ifx\putwordMMar\undefined \gdef\putwordMMar{March}\fi -\ifx\putwordMApr\undefined \gdef\putwordMApr{April}\fi -\ifx\putwordMMay\undefined \gdef\putwordMMay{May}\fi -\ifx\putwordMJun\undefined \gdef\putwordMJun{June}\fi -\ifx\putwordMJul\undefined \gdef\putwordMJul{July}\fi -\ifx\putwordMAug\undefined \gdef\putwordMAug{August}\fi -\ifx\putwordMSep\undefined \gdef\putwordMSep{September}\fi -\ifx\putwordMOct\undefined \gdef\putwordMOct{October}\fi -\ifx\putwordMNov\undefined \gdef\putwordMNov{November}\fi -\ifx\putwordMDec\undefined \gdef\putwordMDec{December}\fi -% -\ifx\putwordDefmac\undefined \gdef\putwordDefmac{Macro}\fi -\ifx\putwordDefspec\undefined \gdef\putwordDefspec{Special Form}\fi -\ifx\putwordDefvar\undefined \gdef\putwordDefvar{Variable}\fi -\ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi -\ifx\putwordDeftypevar\undefined\gdef\putwordDeftypevar{Variable}\fi -\ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi -\ifx\putwordDeftypefun\undefined\gdef\putwordDeftypefun{Function}\fi - -% Ignore a token. -% -\def\gobble#1{} - -\hyphenation{ap-pen-dix} -\hyphenation{mini-buf-fer mini-buf-fers} -\hyphenation{eshell} -\hyphenation{white-space} - -% Margin to add to right of even pages, to left of odd pages. -\newdimen \bindingoffset -\newdimen \normaloffset -\newdimen\pagewidth \newdimen\pageheight - -% Sometimes it is convenient to have everything in the transcript file -% and nothing on the terminal. We don't just call \tracingall here, -% since that produces some useless output on the terminal. -% -\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}% -\ifx\eTeXversion\undefined -\def\loggingall{\tracingcommands2 \tracingstats2 - \tracingpages1 \tracingoutput1 \tracinglostchars1 - \tracingmacros2 \tracingparagraphs1 \tracingrestores1 - \showboxbreadth\maxdimen\showboxdepth\maxdimen -}% -\else -\def\loggingall{\tracingcommands3 \tracingstats2 - \tracingpages1 \tracingoutput1 \tracinglostchars1 - \tracingmacros2 \tracingparagraphs1 \tracingrestores1 - \tracingscantokens1 \tracingassigns1 \tracingifs1 - \tracinggroups1 \tracingnesting2 - \showboxbreadth\maxdimen\showboxdepth\maxdimen -}% -\fi - -% add check for \lastpenalty to plain's definitions. If the last thing -% we did was a \nobreak, we don't want to insert more space. -% -\def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount - \removelastskip\penalty-50\smallskip\fi\fi} -\def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount - \removelastskip\penalty-100\medskip\fi\fi} -\def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount - \removelastskip\penalty-200\bigskip\fi\fi} - -% For @cropmarks command. -% Do @cropmarks to get crop marks. -% -\newif\ifcropmarks -\let\cropmarks = \cropmarkstrue -% -% Dimensions to add cropmarks at corners. -% Added by P. A. MacKay, 12 Nov. 1986 -% -\newdimen\outerhsize \newdimen\outervsize % set by the paper size routines -\newdimen\cornerlong \cornerlong=1pc -\newdimen\cornerthick \cornerthick=.3pt -\newdimen\topandbottommargin \topandbottommargin=.75in - -% Main output routine. -\chardef\PAGE = 255 -\output = {\onepageout{\pagecontents\PAGE}} - -\newbox\headlinebox -\newbox\footlinebox - -% \onepageout takes a vbox as an argument. Note that \pagecontents -% does insertions, but you have to call it yourself. -\def\onepageout#1{% - \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi - % - \ifodd\pageno \advance\hoffset by \bindingoffset - \else \advance\hoffset by -\bindingoffset\fi - % - % Do this outside of the \shipout so @code etc. will be expanded in - % the headline as they should be, not taken literally (outputting ''code). - \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}% - \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}% - % - {% - % Have to do this stuff outside the \shipout because we want it to - % take effect in \write's, yet the group defined by the \vbox ends - % before the \shipout runs. - % - \escapechar = `\\ % use backslash in output files. - \indexdummies % don't expand commands in the output. - \normalturnoffactive % \ in index entries must not stay \, e.g., if - % the page break happens to be in the middle of an example. - \shipout\vbox{% - % Do this early so pdf references go to the beginning of the page. - \ifpdfmakepagedest \pdfmkdest{\the\pageno} \fi - % - \ifcropmarks \vbox to \outervsize\bgroup - \hsize = \outerhsize - \vskip-\topandbottommargin - \vtop to0pt{% - \line{\ewtop\hfil\ewtop}% - \nointerlineskip - \line{% - \vbox{\moveleft\cornerthick\nstop}% - \hfill - \vbox{\moveright\cornerthick\nstop}% - }% - \vss}% - \vskip\topandbottommargin - \line\bgroup - \hfil % center the page within the outer (page) hsize. - \ifodd\pageno\hskip\bindingoffset\fi - \vbox\bgroup - \fi - % - \unvbox\headlinebox - \pagebody{#1}% - \ifdim\ht\footlinebox > 0pt - % Only leave this space if the footline is nonempty. - % (We lessened \vsize for it in \oddfootingxxx.) - % The \baselineskip=24pt in plain's \makefootline has no effect. - \vskip 2\baselineskip - \unvbox\footlinebox - \fi - % - \ifcropmarks - \egroup % end of \vbox\bgroup - \hfil\egroup % end of (centering) \line\bgroup - \vskip\topandbottommargin plus1fill minus1fill - \boxmaxdepth = \cornerthick - \vbox to0pt{\vss - \line{% - \vbox{\moveleft\cornerthick\nsbot}% - \hfill - \vbox{\moveright\cornerthick\nsbot}% - }% - \nointerlineskip - \line{\ewbot\hfil\ewbot}% - }% - \egroup % \vbox from first cropmarks clause - \fi - }% end of \shipout\vbox - }% end of group with \turnoffactive - \advancepageno - \ifnum\outputpenalty>-20000 \else\dosupereject\fi -} - -\newinsert\margin \dimen\margin=\maxdimen - -\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}} -{\catcode`\@ =11 -\gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi -% marginal hacks, juha@viisa.uucp (Juha Takala) -\ifvoid\margin\else % marginal info is present - \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi -\dimen@=\dp#1 \unvbox#1 -\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi -\ifr@ggedbottom \kern-\dimen@ \vfil \fi} -} - -% Here are the rules for the cropmarks. Note that they are -% offset so that the space between them is truly \outerhsize or \outervsize -% (P. A. MacKay, 12 November, 1986) -% -\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong} -\def\nstop{\vbox - {\hrule height\cornerthick depth\cornerlong width\cornerthick}} -\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong} -\def\nsbot{\vbox - {\hrule height\cornerlong depth\cornerthick width\cornerthick}} - -% Parse an argument, then pass it to #1. The argument is the rest of -% the input line (except we remove a trailing comment). #1 should be a -% macro which expects an ordinary undelimited TeX argument. -% -\def\parsearg#1{% - \let\next = #1% - \begingroup - \obeylines - \futurelet\temp\parseargx -} - -% If the next token is an obeyed space (from an @example environment or -% the like), remove it and recurse. Otherwise, we're done. -\def\parseargx{% - % \obeyedspace is defined far below, after the definition of \sepspaces. - \ifx\obeyedspace\temp - \expandafter\parseargdiscardspace - \else - \expandafter\parseargline - \fi -} - -% Remove a single space (as the delimiter token to the macro call). -{\obeyspaces % - \gdef\parseargdiscardspace {\futurelet\temp\parseargx}} - -{\obeylines % - \gdef\parseargline#1^^M{% - \endgroup % End of the group started in \parsearg. - % - % First remove any @c comment, then any @comment. - % Result of each macro is put in \toks0. - \argremovec #1\c\relax % - \expandafter\argremovecomment \the\toks0 \comment\relax % - % - % Call the caller's macro, saved as \next in \parsearg. - \expandafter\next\expandafter{\the\toks0}% - }% -} - -% Since all \c{,omment} does is throw away the argument, we can let TeX -% do that for us. The \relax here is matched by the \relax in the call -% in \parseargline; it could be more or less anything, its purpose is -% just to delimit the argument to the \c. -\def\argremovec#1\c#2\relax{\toks0 = {#1}} -\def\argremovecomment#1\comment#2\relax{\toks0 = {#1}} - -% \argremovec{,omment} might leave us with trailing spaces, though; e.g., -% @end itemize @c foo -% will have two active spaces as part of the argument with the -% `itemize'. Here we remove all active spaces from #1, and assign the -% result to \toks0. -% -% This loses if there are any *other* active characters besides spaces -% in the argument -- _ ^ +, for example -- since they get expanded. -% Fortunately, Texinfo does not define any such commands. (If it ever -% does, the catcode of the characters in questionwill have to be changed -% here.) But this means we cannot call \removeactivespaces as part of -% \argremovec{,omment}, since @c uses \parsearg, and thus the argument -% that \parsearg gets might well have any character at all in it. -% -\def\removeactivespaces#1{% - \begingroup - \ignoreactivespaces - \edef\temp{#1}% - \global\toks0 = \expandafter{\temp}% - \endgroup -} - -% Change the active space to expand to nothing. -% -\begingroup - \obeyspaces - \gdef\ignoreactivespaces{\obeyspaces\let =\empty} -\endgroup - - -\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next} - -%% These are used to keep @begin/@end levels from running away -%% Call \inENV within environments (after a \begingroup) -\newif\ifENV \ENVfalse \def\inENV{\ifENV\relax\else\ENVtrue\fi} -\def\ENVcheck{% -\ifENV\errmessage{Still within an environment; press RETURN to continue} -\endgroup\fi} % This is not perfect, but it should reduce lossage - -% @begin foo is the same as @foo, for now. -\newhelp\EMsimple{Press RETURN to continue.} - -\outer\def\begin{\parsearg\beginxxx} - -\def\beginxxx #1{% -\expandafter\ifx\csname #1\endcsname\relax -{\errhelp=\EMsimple \errmessage{Undefined command @begin #1}}\else -\csname #1\endcsname\fi} - -% @end foo executes the definition of \Efoo. -% -\def\end{\parsearg\endxxx} -\def\endxxx #1{% - \removeactivespaces{#1}% - \edef\endthing{\the\toks0}% - % - \expandafter\ifx\csname E\endthing\endcsname\relax - \expandafter\ifx\csname \endthing\endcsname\relax - % There's no \foo, i.e., no ``environment'' foo. - \errhelp = \EMsimple - \errmessage{Undefined command `@end \endthing'}% - \else - \unmatchedenderror\endthing - \fi - \else - % Everything's ok; the right environment has been started. - \csname E\endthing\endcsname - \fi -} - -% There is an environment #1, but it hasn't been started. Give an error. -% -\def\unmatchedenderror#1{% - \errhelp = \EMsimple - \errmessage{This `@end #1' doesn't have a matching `@#1'}% -} - -% Define the control sequence \E#1 to give an unmatched @end error. -% -\def\defineunmatchedend#1{% - \expandafter\def\csname E#1\endcsname{\unmatchedenderror{#1}}% -} - - -% Single-spacing is done by various environments (specifically, in -% \nonfillstart and \quotations). -\newskip\singlespaceskip \singlespaceskip = 12.5pt -\def\singlespace{% - % Why was this kern here? It messes up equalizing space above and below - % environments. --karl, 6may93 - %{\advance \baselineskip by -\singlespaceskip - %\kern \baselineskip}% - \setleading\singlespaceskip -} - -%% Simple single-character @ commands - -% @@ prints an @ -% Kludge this until the fonts are right (grr). -\def\@{{\tt\char64}} - -% This is turned off because it was never documented -% and you can use @w{...} around a quote to suppress ligatures. -%% Define @` and @' to be the same as ` and ' -%% but suppressing ligatures. -%\def\`{{`}} -%\def\'{{'}} - -% Used to generate quoted braces. -\def\mylbrace {{\tt\char123}} -\def\myrbrace {{\tt\char125}} -\let\{=\mylbrace -\let\}=\myrbrace -\begingroup - % Definitions to produce actual \{ & \} command in an index. - \catcode`\{ = 12 \catcode`\} = 12 - \catcode`\[ = 1 \catcode`\] = 2 - \catcode`\@ = 0 \catcode`\\ = 12 - @gdef@lbracecmd[\{]% - @gdef@rbracecmd[\}]% -@endgroup - -% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent -% Others are defined by plain TeX: @` @' @" @^ @~ @= @v @H. -\let\, = \c -\let\dotaccent = \. -\def\ringaccent#1{{\accent23 #1}} -\let\tieaccent = \t -\let\ubaraccent = \b -\let\udotaccent = \d - -% Other special characters: @questiondown @exclamdown -% Plain TeX defines: @AA @AE @O @OE @L (and lowercase versions) @ss. -\def\questiondown{?`} -\def\exclamdown{!`} - -% Dotless i and dotless j, used for accents. -\def\imacro{i} -\def\jmacro{j} -\def\dotless#1{% - \def\temp{#1}% - \ifx\temp\imacro \ptexi - \else\ifx\temp\jmacro \j - \else \errmessage{@dotless can be used only with i or j}% - \fi\fi -} - -% Be sure we're in horizontal mode when doing a tie, since we make space -% equivalent to this in @example-like environments. Otherwise, a space -% at the beginning of a line will start with \penalty -- and -% since \penalty is valid in vertical mode, we'd end up putting the -% penalty on the vertical list instead of in the new paragraph. -{\catcode`@ = 11 - % Avoid using \@M directly, because that causes trouble - % if the definition is written into an index file. - \global\let\tiepenalty = \@M - \gdef\tie{\leavevmode\penalty\tiepenalty\ } -} - -% @: forces normal size whitespace following. -\def\:{\spacefactor=1000 } - -% @* forces a line break. -\def\*{\hfil\break\hbox{}\ignorespaces} - -% @. is an end-of-sentence period. -\def\.{.\spacefactor=3000 } - -% @! is an end-of-sentence bang. -\def\!{!\spacefactor=3000 } - -% @? is an end-of-sentence query. -\def\?{?\spacefactor=3000 } - -% @w prevents a word break. Without the \leavevmode, @w at the -% beginning of a paragraph, when TeX is still in vertical mode, would -% produce a whole line of output instead of starting the paragraph. -\def\w#1{\leavevmode\hbox{#1}} - -% @group ... @end group forces ... to be all on one page, by enclosing -% it in a TeX vbox. We use \vtop instead of \vbox to construct the box -% to keep its height that of a normal line. According to the rules for -% \topskip (p.114 of the TeXbook), the glue inserted is -% max (\topskip - \ht (first item), 0). If that height is large, -% therefore, no glue is inserted, and the space between the headline and -% the text is small, which looks bad. -% -\def\group{\begingroup - \ifnum\catcode13=\active \else - \errhelp = \groupinvalidhelp - \errmessage{@group invalid in context where filling is enabled}% - \fi - % - % The \vtop we start below produces a box with normal height and large - % depth; thus, TeX puts \baselineskip glue before it, and (when the - % next line of text is done) \lineskip glue after it. (See p.82 of - % the TeXbook.) Thus, space below is not quite equal to space - % above. But it's pretty close. - \def\Egroup{% - \egroup % End the \vtop. - \endgroup % End the \group. - }% - % - \vtop\bgroup - % We have to put a strut on the last line in case the @group is in - % the midst of an example, rather than completely enclosing it. - % Otherwise, the interline space between the last line of the group - % and the first line afterwards is too small. But we can't put the - % strut in \Egroup, since there it would be on a line by itself. - % Hence this just inserts a strut at the beginning of each line. - \everypar = {\strut}% - % - % Since we have a strut on every line, we don't need any of TeX's - % normal interline spacing. - \offinterlineskip - % - % OK, but now we have to do something about blank - % lines in the input in @example-like environments, which normally - % just turn into \lisppar, which will insert no space now that we've - % turned off the interline space. Simplest is to make them be an - % empty paragraph. - \ifx\par\lisppar - \edef\par{\leavevmode \par}% - % - % Reset ^^M's definition to new definition of \par. - \obeylines - \fi - % - % Do @comment since we are called inside an environment such as - % @example, where each end-of-line in the input causes an - % end-of-line in the output. We don't want the end-of-line after - % the `@group' to put extra space in the output. Since @group - % should appear on a line by itself (according to the Texinfo - % manual), we don't worry about eating any user text. - \comment -} -% -% TeX puts in an \escapechar (i.e., `@') at the beginning of the help -% message, so this ends up printing `@group can only ...'. -% -\newhelp\groupinvalidhelp{% -group can only be used in environments such as @example,^^J% -where each line of input produces a line of output.} - -% @need space-in-mils -% forces a page break if there is not space-in-mils remaining. - -\newdimen\mil \mil=0.001in - -\def\need{\parsearg\needx} - -% Old definition--didn't work. -%\def\needx #1{\par % -%% This method tries to make TeX break the page naturally -%% if the depth of the box does not fit. -%{\baselineskip=0pt% -%\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak -%\prevdepth=-1000pt -%}} - -\def\needx#1{% - % Ensure vertical mode, so we don't make a big box in the middle of a - % paragraph. - \par - % - % If the @need value is less than one line space, it's useless. - \dimen0 = #1\mil - \dimen2 = \ht\strutbox - \advance\dimen2 by \dp\strutbox - \ifdim\dimen0 > \dimen2 - % - % Do a \strut just to make the height of this box be normal, so the - % normal leading is inserted relative to the preceding line. - % And a page break here is fine. - \vtop to #1\mil{\strut\vfil}% - % - % TeX does not even consider page breaks if a penalty added to the - % main vertical list is 10000 or more. But in order to see if the - % empty box we just added fits on the page, we must make it consider - % page breaks. On the other hand, we don't want to actually break the - % page after the empty box. So we use a penalty of 9999. - % - % There is an extremely small chance that TeX will actually break the - % page at this \penalty, if there are no other feasible breakpoints in - % sight. (If the user is using lots of big @group commands, which - % almost-but-not-quite fill up a page, TeX will have a hard time doing - % good page breaking, for example.) However, I could not construct an - % example where a page broke at this \penalty; if it happens in a real - % document, then we can reconsider our strategy. - \penalty9999 - % - % Back up by the size of the box, whether we did a page break or not. - \kern -#1\mil - % - % Do not allow a page break right after this kern. - \nobreak - \fi -} - -% @br forces paragraph break - -\let\br = \par - -% @dots{} output an ellipsis using the current font. -% We do .5em per period so that it has the same spacing in a typewriter -% font as three actual period characters. -% -\def\dots{% - \leavevmode - \hbox to 1.5em{% - \hskip 0pt plus 0.25fil minus 0.25fil - .\hss.\hss.% - \hskip 0pt plus 0.5fil minus 0.5fil - }% -} - -% @enddots{} is an end-of-sentence ellipsis. -% -\def\enddots{% - \leavevmode - \hbox to 2em{% - \hskip 0pt plus 0.25fil minus 0.25fil - .\hss.\hss.\hss.% - \hskip 0pt plus 0.5fil minus 0.5fil - }% - \spacefactor=3000 -} - - -% @page forces the start of a new page -% -\def\page{\par\vfill\supereject} - -% @exdent text.... -% outputs text on separate line in roman font, starting at standard page margin - -% This records the amount of indent in the innermost environment. -% That's how much \exdent should take out. -\newskip\exdentamount - -% This defn is used inside fill environments such as @defun. -\def\exdent{\parsearg\exdentyyy} -\def\exdentyyy #1{{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}} - -% This defn is used inside nofill environments such as @example. -\def\nofillexdent{\parsearg\nofillexdentyyy} -\def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount -\leftline{\hskip\leftskip{\rm#1}}}} - -% @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current -% paragraph. For more general purposes, use the \margin insertion -% class. WHICH is `l' or `r'. -% -\newskip\inmarginspacing \inmarginspacing=1cm -\def\strutdepth{\dp\strutbox} -% -\def\doinmargin#1#2{\strut\vadjust{% - \nobreak - \kern-\strutdepth - \vtop to \strutdepth{% - \baselineskip=\strutdepth - \vss - % if you have multiple lines of stuff to put here, you'll need to - % make the vbox yourself of the appropriate size. - \ifx#1l% - \llap{\ignorespaces #2\hskip\inmarginspacing}% - \else - \rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2}% - \fi - \null - }% -}} -\def\inleftmargin{\doinmargin l} -\def\inrightmargin{\doinmargin r} -% -% @inmargin{TEXT [, RIGHT-TEXT]} -% (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right; -% else use TEXT for both). -% -\def\inmargin#1{\parseinmargin #1,,\finish} -\def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing. - \setbox0 = \hbox{\ignorespaces #2}% - \ifdim\wd0 > 0pt - \def\lefttext{#1}% have both texts - \def\righttext{#2}% - \else - \def\lefttext{#1}% have only one text - \def\righttext{#1}% - \fi - % - \ifodd\pageno - \def\temp{\inrightmargin\righttext}% odd page -> outside is right margin - \else - \def\temp{\inleftmargin\lefttext}% - \fi - \temp -} - -% @include file insert text of that file as input. -% Allow normal characters that we make active in the argument (a file name). -\def\include{\begingroup - \catcode`\\=12 - \catcode`~=12 - \catcode`^=12 - \catcode`_=12 - \catcode`|=12 - \catcode`<=12 - \catcode`>=12 - \catcode`+=12 - \parsearg\includezzz} -% Restore active chars for included file. -\def\includezzz#1{\endgroup\begingroup - % Read the included file in a group so nested @include's work. - \def\thisfile{#1}% - \input\thisfile -\endgroup} - -\def\thisfile{} - -% @center line outputs that line, centered - -\def\center{\parsearg\centerzzz} -\def\centerzzz #1{{\advance\hsize by -\leftskip -\advance\hsize by -\rightskip -\centerline{#1}}} - -% @sp n outputs n lines of vertical space - -\def\sp{\parsearg\spxxx} -\def\spxxx #1{\vskip #1\baselineskip} - -% @comment ...line which is ignored... -% @c is the same as @comment -% @ignore ... @end ignore is another way to write a comment - -\def\comment{\begingroup \catcode`\^^M=\other% -\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other% -\commentxxx} -{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}} - -\let\c=\comment - -% @paragraphindent NCHARS -% We'll use ems for NCHARS, close enough. -% We cannot implement @paragraphindent asis, though. -% -\def\asisword{asis} % no translation, these are keywords -\def\noneword{none} -% -\def\paragraphindent{\parsearg\doparagraphindent} -\def\doparagraphindent#1{% - \def\temp{#1}% - \ifx\temp\asisword - \else - \ifx\temp\noneword - \defaultparindent = 0pt - \else - \defaultparindent = #1em - \fi - \fi - \parindent = \defaultparindent -} - -% @exampleindent NCHARS -% We'll use ems for NCHARS like @paragraphindent. -% It seems @exampleindent asis isn't necessary, but -% I preserve it to make it similar to @paragraphindent. -\def\exampleindent{\parsearg\doexampleindent} -\def\doexampleindent#1{% - \def\temp{#1}% - \ifx\temp\asisword - \else - \ifx\temp\noneword - \lispnarrowing = 0pt - \else - \lispnarrowing = #1em - \fi - \fi -} - -% @asis just yields its argument. Used with @table, for example. -% -\def\asis#1{#1} - -% @math outputs its argument in math mode. -% We don't use $'s directly in the definition of \math because we need -% to set catcodes according to plain TeX first, to allow for subscripts, -% superscripts, special math chars, etc. -% -% @math does not do math typesetting in section titles, index -% entries, and other such contexts where the catcodes are set before -% @math gets a chance to work. This could perhaps be fixed, but for now -% at least we can have real math in the main text, where it's needed most. -% -\let\implicitmath = $%$ font-lock fix -% -% One complication: _ usually means subscripts, but it could also mean -% an actual _ character, as in @math{@var{some_variable} + 1}. So make -% _ within @math be active (mathcode "8000), and distinguish by seeing -% if the current family is \slfam, which is what @var uses. -% -{\catcode95 = \active % 95 = _ -\gdef\mathunderscore{% - \catcode95=\active - \def_{\ifnum\fam=\slfam \_\else\sb\fi}% -}} -% -% Another complication: we want \\ (and @\) to output a \ character. -% FYI, plain.tex uses \\ as a temporary control sequence (why?), but -% this is not advertised and we don't care. Texinfo does not -% otherwise define @\. -% -% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. -\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} -% -\def\math{% - \tex - \mathcode`\_="8000 \mathunderscore - \let\\ = \mathbackslash - \implicitmath\finishmath} -\def\finishmath#1{#1\implicitmath\Etex} - -% @bullet and @minus need the same treatment as @math, just above. -\def\bullet{\implicitmath\ptexbullet\implicitmath} -\def\minus{\implicitmath-\implicitmath} - -% @refill is a no-op. -\let\refill=\relax - -% If working on a large document in chapters, it is convenient to -% be able to disable indexing, cross-referencing, and contents, for test runs. -% This is done with @novalidate (before @setfilename). -% -\newif\iflinks \linkstrue % by default we want the aux files. -\let\novalidate = \linksfalse - -% @setfilename is done at the beginning of every texinfo file. -% So open here the files we need to have open while reading the input. -% This makes it possible to make a .fmt file for texinfo. -\def\setfilename{% - \iflinks - \readauxfile - \fi % \openindices needs to do some work in any case. - \openindices - \fixbackslash % Turn off hack to swallow `\input texinfo'. - \global\let\setfilename=\comment % Ignore extra @setfilename cmds. - % - % If texinfo.cnf is present on the system, read it. - % Useful for site-wide @afourpaper, etc. - % Just to be on the safe side, close the input stream before the \input. - \openin 1 texinfo.cnf - \ifeof1 \let\temp=\relax \else \def\temp{\input texinfo.cnf }\fi - \closein1 - \temp - % - \comment % Ignore the actual filename. -} - -% Called from \setfilename. -% -\def\openindices{% - \newindex{cp}% - \newcodeindex{fn}% - \newcodeindex{vr}% - \newcodeindex{tp}% - \newcodeindex{ky}% - \newcodeindex{pg}% -} - -% @bye. -\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend} - - -\message{pdf,} -% adobe `portable' document format -\newcount\tempnum -\newcount\lnkcount -\newtoks\filename -\newcount\filenamelength -\newcount\pgn -\newtoks\toksA -\newtoks\toksB -\newtoks\toksC -\newtoks\toksD -\newbox\boxA -\newcount\countA -\newif\ifpdf -\newif\ifpdfmakepagedest - -\ifx\pdfoutput\undefined - \pdffalse - \let\pdfmkdest = \gobble - \let\pdfurl = \gobble - \let\endlink = \relax - \let\linkcolor = \relax - \let\pdfmakeoutlines = \relax -\else - \pdftrue - \pdfoutput = 1 - \input pdfcolor - \def\dopdfimage#1#2#3{% - \def\imagewidth{#2}% - \def\imageheight{#3}% - % without \immediate, pdftex seg faults when the same image is - % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) - \ifnum\pdftexversion < 14 - \immediate\pdfimage - \else - \immediate\pdfximage - \fi - \ifx\empty\imagewidth\else width \imagewidth \fi - \ifx\empty\imageheight\else height \imageheight \fi - \ifnum\pdftexversion<13 - #1.pdf% - \else - {#1.pdf}% - \fi - \ifnum\pdftexversion < 14 \else - \pdfrefximage \pdflastximage - \fi} - \def\pdfmkdest#1{{\normalturnoffactive \pdfdest name{#1} xyz}} - \def\pdfmkpgn#1{#1} - \let\linkcolor = \Blue % was Cyan, but that seems light? - \def\endlink{\Black\pdfendlink} - % Adding outlines to PDF; macros for calculating structure of outlines - % come from Petr Olsak - \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0% - \else \csname#1\endcsname \fi} - \def\advancenumber#1{\tempnum=\expnumber{#1}\relax - \advance\tempnum by1 - \expandafter\xdef\csname#1\endcsname{\the\tempnum}} - \def\pdfmakeoutlines{{% - \openin 1 \jobname.toc - \ifeof 1\else\begingroup - \closein 1 - \indexnofonts - \def\tt{} - \let\_ = \normalunderscore - % Thanh's hack / proper braces in bookmarks - \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace - \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace - % - \def\chapentry ##1##2##3{} - \let\appendixentry = \chapentry - \def\unnumbchapentry ##1##2{} - \def\secentry ##1##2##3##4{\advancenumber{chap##2}} - \def\unnumbsecentry ##1##2##3{\advancenumber{chap##2}} - \def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}} - \def\unnumbsubsecentry ##1##2##3##4{\advancenumber{sec##2.##3}} - \def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}} - \def\unnumbsubsubsecentry ##1##2##3##4##5{\advancenumber{subsec##2.##3.##4}} - \input \jobname.toc - \def\chapentry ##1##2##3{% - \pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}} - \let\appendixentry = \chapentry - \def\unnumbchapentry ##1##2{% - \pdfoutline goto name{\pdfmkpgn{##2}}{##1}} - \def\secentry ##1##2##3##4{% - \pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}} - \def\unnumbsecentry ##1##2##3{% - \pdfoutline goto name{\pdfmkpgn{##3}}{##1}} - \def\subsecentry ##1##2##3##4##5{% - \pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}} - \def\unnumbsubsecentry ##1##2##3##4{% - \pdfoutline goto name{\pdfmkpgn{##4}}{##1}} - \def\subsubsecentry ##1##2##3##4##5##6{% - \pdfoutline goto name{\pdfmkpgn{##6}}{##1}} - \def\unnumbsubsubsecentry ##1##2##3##4##5{% - \pdfoutline goto name{\pdfmkpgn{##5}}{##1}} - \input \jobname.toc - \endgroup\fi - }} - \def\makelinks #1,{% - \def\params{#1}\def\E{END}% - \ifx\params\E - \let\nextmakelinks=\relax - \else - \let\nextmakelinks=\makelinks - \ifnum\lnkcount>0,\fi - \picknum{#1}% - \startlink attr{/Border [0 0 0]} - goto name{\pdfmkpgn{\the\pgn}}% - \linkcolor #1% - \advance\lnkcount by 1% - \endlink - \fi - \nextmakelinks - } - \def\picknum#1{\expandafter\pn#1} - \def\pn#1{% - \def\p{#1}% - \ifx\p\lbrace - \let\nextpn=\ppn - \else - \let\nextpn=\ppnn - \def\first{#1} - \fi - \nextpn - } - \def\ppn#1{\pgn=#1\gobble} - \def\ppnn{\pgn=\first} - \def\pdfmklnk#1{\lnkcount=0\makelinks #1,END,} - \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} - \def\skipspaces#1{\def\PP{#1}\def\D{|}% - \ifx\PP\D\let\nextsp\relax - \else\let\nextsp\skipspaces - \ifx\p\space\else\addtokens{\filename}{\PP}% - \advance\filenamelength by 1 - \fi - \fi - \nextsp} - \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax} - \ifnum\pdftexversion < 14 - \let \startlink \pdfannotlink - \else - \let \startlink \pdfstartlink - \fi - \def\pdfurl#1{% - \begingroup - \normalturnoffactive\def\@{@}% - \let\value=\expandablevalue - \leavevmode\Red - \startlink attr{/Border [0 0 0]}% - user{/Subtype /Link /A << /S /URI /URI (#1) >>}% - % #1 - \endgroup} - \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}} - \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} - \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks} - \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}} - \def\maketoks{% - \expandafter\poptoks\the\toksA|ENDTOKS| - \ifx\first0\adn0 - \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3 - \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6 - \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 - \else - \ifnum0=\countA\else\makelink\fi - \ifx\first.\let\next=\done\else - \let\next=\maketoks - \addtokens{\toksB}{\the\toksD} - \ifx\first,\addtokens{\toksB}{\space}\fi - \fi - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi - \next} - \def\makelink{\addtokens{\toksB}% - {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} - \def\pdflink#1{% - \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} - \linkcolor #1\endlink} - \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} -\fi % \ifx\pdfoutput - - -\message{fonts,} -% Font-change commands. - -% Texinfo sort of supports the sans serif font style, which plain TeX does not. -% So we set up a \sf analogous to plain's \rm, etc. -\newfam\sffam -\def\sf{\fam=\sffam \tensf} -\let\li = \sf % Sometimes we call it \li, not \sf. - -% We don't need math for this one. -\def\ttsl{\tenttsl} - -% Default leading. -\newdimen\textleading \textleading = 13.2pt - -% Set the baselineskip to #1, and the lineskip and strut size -% correspondingly. There is no deep meaning behind these magic numbers -% used as factors; they just match (closely enough) what Knuth defined. -% -\def\lineskipfactor{.08333} -\def\strutheightpercent{.70833} -\def\strutdepthpercent {.29167} -% -\def\setleading#1{% - \normalbaselineskip = #1\relax - \normallineskip = \lineskipfactor\normalbaselineskip - \normalbaselines - \setbox\strutbox =\hbox{% - \vrule width0pt height\strutheightpercent\baselineskip - depth \strutdepthpercent \baselineskip - }% -} - -% Set the font macro #1 to the font named #2, adding on the -% specified font prefix (normally `cm'). -% #3 is the font's design size, #4 is a scale factor -\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4} - -% Use cm as the default font prefix. -% To specify the font prefix, you must define \fontprefix -% before you read in texinfo.tex. -\ifx\fontprefix\undefined -\def\fontprefix{cm} -\fi -% Support font families that don't use the same naming scheme as CM. -\def\rmshape{r} -\def\rmbshape{bx} %where the normal face is bold -\def\bfshape{b} -\def\bxshape{bx} -\def\ttshape{tt} -\def\ttbshape{tt} -\def\ttslshape{sltt} -\def\itshape{ti} -\def\itbshape{bxti} -\def\slshape{sl} -\def\slbshape{bxsl} -\def\sfshape{ss} -\def\sfbshape{ss} -\def\scshape{csc} -\def\scbshape{csc} - -\newcount\mainmagstep -\ifx\bigger\relax - % not really supported. - \let\mainmagstep=\magstep1 - \setfont\textrm\rmshape{12}{1000} - \setfont\texttt\ttshape{12}{1000} -\else - \mainmagstep=\magstephalf - \setfont\textrm\rmshape{10}{\mainmagstep} - \setfont\texttt\ttshape{10}{\mainmagstep} -\fi -% Instead of cmb10, you many want to use cmbx10. -% cmbx10 is a prettier font on its own, but cmb10 -% looks better when embedded in a line with cmr10. -\setfont\textbf\bfshape{10}{\mainmagstep} -\setfont\textit\itshape{10}{\mainmagstep} -\setfont\textsl\slshape{10}{\mainmagstep} -\setfont\textsf\sfshape{10}{\mainmagstep} -\setfont\textsc\scshape{10}{\mainmagstep} -\setfont\textttsl\ttslshape{10}{\mainmagstep} -\font\texti=cmmi10 scaled \mainmagstep -\font\textsy=cmsy10 scaled \mainmagstep - -% A few fonts for @defun, etc. -\setfont\defbf\bxshape{10}{\magstep1} %was 1314 -\setfont\deftt\ttshape{10}{\magstep1} -\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf} - -% Fonts for indices, footnotes, small examples (9pt). -\setfont\smallrm\rmshape{9}{1000} -\setfont\smalltt\ttshape{9}{1000} -\setfont\smallbf\bfshape{10}{900} -\setfont\smallit\itshape{9}{1000} -\setfont\smallsl\slshape{9}{1000} -\setfont\smallsf\sfshape{9}{1000} -\setfont\smallsc\scshape{10}{900} -\setfont\smallttsl\ttslshape{10}{900} -\font\smalli=cmmi9 -\font\smallsy=cmsy9 - -% Fonts for small examples (8pt). -\setfont\smallerrm\rmshape{8}{1000} -\setfont\smallertt\ttshape{8}{1000} -\setfont\smallerbf\bfshape{10}{800} -\setfont\smallerit\itshape{8}{1000} -\setfont\smallersl\slshape{8}{1000} -\setfont\smallersf\sfshape{8}{1000} -\setfont\smallersc\scshape{10}{800} -\setfont\smallerttsl\ttslshape{10}{800} -\font\smalleri=cmmi8 -\font\smallersy=cmsy8 - -% Fonts for title page: -\setfont\titlerm\rmbshape{12}{\magstep3} -\setfont\titleit\itbshape{10}{\magstep4} -\setfont\titlesl\slbshape{10}{\magstep4} -\setfont\titlett\ttbshape{12}{\magstep3} -\setfont\titlettsl\ttslshape{10}{\magstep4} -\setfont\titlesf\sfbshape{17}{\magstep1} -\let\titlebf=\titlerm -\setfont\titlesc\scbshape{10}{\magstep4} -\font\titlei=cmmi12 scaled \magstep3 -\font\titlesy=cmsy10 scaled \magstep4 -\def\authorrm{\secrm} - -% Chapter (and unnumbered) fonts (17.28pt). -\setfont\chaprm\rmbshape{12}{\magstep2} -\setfont\chapit\itbshape{10}{\magstep3} -\setfont\chapsl\slbshape{10}{\magstep3} -\setfont\chaptt\ttbshape{12}{\magstep2} -\setfont\chapttsl\ttslshape{10}{\magstep3} -\setfont\chapsf\sfbshape{17}{1000} -\let\chapbf=\chaprm -\setfont\chapsc\scbshape{10}{\magstep3} -\font\chapi=cmmi12 scaled \magstep2 -\font\chapsy=cmsy10 scaled \magstep3 - -% Section fonts (14.4pt). -\setfont\secrm\rmbshape{12}{\magstep1} -\setfont\secit\itbshape{10}{\magstep2} -\setfont\secsl\slbshape{10}{\magstep2} -\setfont\sectt\ttbshape{12}{\magstep1} -\setfont\secttsl\ttslshape{10}{\magstep2} -\setfont\secsf\sfbshape{12}{\magstep1} -\let\secbf\secrm -\setfont\secsc\scbshape{10}{\magstep2} -\font\seci=cmmi12 scaled \magstep1 -\font\secsy=cmsy10 scaled \magstep2 - -% Subsection fonts (13.15pt). -\setfont\ssecrm\rmbshape{12}{\magstephalf} -\setfont\ssecit\itbshape{10}{1315} -\setfont\ssecsl\slbshape{10}{1315} -\setfont\ssectt\ttbshape{12}{\magstephalf} -\setfont\ssecttsl\ttslshape{10}{1315} -\setfont\ssecsf\sfbshape{12}{\magstephalf} -\let\ssecbf\ssecrm -\setfont\ssecsc\scbshape{10}{\magstep1} -\font\sseci=cmmi12 scaled \magstephalf -\font\ssecsy=cmsy10 scaled 1315 -% The smallcaps and symbol fonts should actually be scaled \magstep1.5, -% but that is not a standard magnification. - -% In order for the font changes to affect most math symbols and letters, -% we have to define the \textfont of the standard families. Since -% texinfo doesn't allow for producing subscripts and superscripts except -% in the main text, we don't bother to reset \scriptfont and -% \scriptscriptfont (which would also require loading a lot more fonts). -% -\def\resetmathfonts{% - \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy - \textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf - \textfont\ttfam=\tentt \textfont\sffam=\tensf -} - -% The font-changing commands redefine the meanings of \tenSTYLE, instead -% of just \STYLE. We do this so that font changes will continue to work -% in math mode, where it is the current \fam that is relevant in most -% cases, not the current font. Plain TeX does \def\bf{\fam=\bffam -% \tenbf}, for example. By redefining \tenbf, we obviate the need to -% redefine \bf itself. -\def\textfonts{% - \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl - \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc - \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl - \resetmathfonts \setleading{\textleading}} -\def\titlefonts{% - \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl - \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc - \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy - \let\tenttsl=\titlettsl - \resetmathfonts \setleading{25pt}} -\def\titlefont#1{{\titlefonts\rm #1}} -\def\chapfonts{% - \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl - \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc - \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl - \resetmathfonts \setleading{19pt}} -\def\secfonts{% - \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl - \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc - \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl - \resetmathfonts \setleading{16pt}} -\def\subsecfonts{% - \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl - \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc - \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl - \resetmathfonts \setleading{15pt}} -\let\subsubsecfonts = \subsecfonts % Maybe make sssec fonts scaled magstephalf? -\def\smallfonts{% - \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl - \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc - \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy - \let\tenttsl=\smallttsl - \resetmathfonts \setleading{10.5pt}} -\def\smallerfonts{% - \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl - \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc - \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy - \let\tenttsl=\smallerttsl - \resetmathfonts \setleading{9.5pt}} -\let\smallexamplefonts = \smallerfonts - -% Set up the default fonts, so we can use them for creating boxes. -% -\textfonts - -% Define these so they can be easily changed for other fonts. -\def\angleleft{$\langle$} -\def\angleright{$\rangle$} - -% Count depth in font-changes, for error checks -\newcount\fontdepth \fontdepth=0 - -% Fonts for short table of contents. -\setfont\shortcontrm\rmshape{12}{1000} -\setfont\shortcontbf\bxshape{12}{1000} -\setfont\shortcontsl\slshape{12}{1000} - -%% Add scribe-like font environments, plus @l for inline lisp (usually sans -%% serif) and @ii for TeX italic - -% \smartitalic{ARG} outputs arg in italics, followed by an italic correction -% unless the following character is such as not to need one. -\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi} -\def\smartslanted#1{{\sl #1}\futurelet\next\smartitalicx} -\def\smartitalic#1{{\it #1}\futurelet\next\smartitalicx} - -\let\i=\smartitalic -\let\var=\smartslanted -\let\dfn=\smartslanted -\let\emph=\smartitalic -\let\cite=\smartslanted - -\def\b#1{{\bf #1}} -\let\strong=\b - -% We can't just use \exhyphenpenalty, because that only has effect at -% the end of a paragraph. Restore normal hyphenation at the end of the -% group within which \nohyphenation is presumably called. -% -\def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation} -\def\restorehyphenation{\hyphenchar\font = `- } - -\def\t#1{% - {\tt \rawbackslash \frenchspacing #1}% - \null -} -\let\ttfont=\t -\def\samp#1{`\tclose{#1}'\null} -\setfont\keyrm\rmshape{8}{1000} -\font\keysy=cmsy9 -\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% - \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% - \vbox{\hrule\kern-0.4pt - \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% - \kern-0.4pt\hrule}% - \kern-.06em\raise0.4pt\hbox{\angleright}}}} -% The old definition, with no lozenge: -%\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null} -\def\ctrl #1{{\tt \rawbackslash \hat}#1} - -% @file, @option are the same as @samp. -\let\file=\samp -\let\option=\samp - -% @code is a modification of @t, -% which makes spaces the same size as normal in the surrounding text. -\def\tclose#1{% - {% - % Change normal interword space to be same as for the current font. - \spaceskip = \fontdimen2\font - % - % Switch to typewriter. - \tt - % - % But `\ ' produces the large typewriter interword space. - \def\ {{\spaceskip = 0pt{} }}% - % - % Turn off hyphenation. - \nohyphenation - % - \rawbackslash - \frenchspacing - #1% - }% - \null -} - -% We *must* turn on hyphenation at `-' and `_' in \code. -% Otherwise, it is too hard to avoid overfull hboxes -% in the Emacs manual, the Library manual, etc. - -% Unfortunately, TeX uses one parameter (\hyphenchar) to control -% both hyphenation at - and hyphenation within words. -% We must therefore turn them both off (\tclose does that) -% and arrange explicitly to hyphenate at a dash. -% -- rms. -{ - \catcode`\-=\active - \catcode`\_=\active - % - \global\def\code{\begingroup - \catcode`\-=\active \let-\codedash - \catcode`\_=\active \let_\codeunder - \codex - } - % - % If we end up with any active - characters when handling the index, - % just treat them as a normal -. - \global\def\indexbreaks{\catcode`\-=\active \let-\realdash} -} - -\def\realdash{-} -\def\codedash{-\discretionary{}{}{}} -\def\codeunder{% - % this is all so @math{@code{var_name}+1} can work. In math mode, _ - % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.) - % will therefore expand the active definition of _, which is us - % (inside @code that is), therefore an endless loop. - \ifusingtt{\ifmmode - \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_. - \else\normalunderscore \fi - \discretionary{}{}{}}% - {\_}% -} -\def\codex #1{\tclose{#1}\endgroup} - -% @kbd is like @code, except that if the argument is just one @key command, -% then @kbd has no effect. - -% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always), -% `example' (@kbd uses ttsl only inside of @example and friends), -% or `code' (@kbd uses normal tty font always). -\def\kbdinputstyle{\parsearg\kbdinputstylexxx} -\def\kbdinputstylexxx#1{% - \def\arg{#1}% - \ifx\arg\worddistinct - \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}% - \else\ifx\arg\wordexample - \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}% - \else\ifx\arg\wordcode - \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% - \fi\fi\fi -} -\def\worddistinct{distinct} -\def\wordexample{example} -\def\wordcode{code} - -% Default is kbdinputdistinct. (Too much of a hassle to call the macro, -% the catcodes are wrong for parsearg to work.) -\gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl} - -\def\xkey{\key} -\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}% -\ifx\one\xkey\ifx\threex\three \key{#2}% -\else{\tclose{\kbdfont\look}}\fi -\else{\tclose{\kbdfont\look}}\fi} - -% For @url, @env, @command quotes seem unnecessary, so use \code. -\let\url=\code -\let\env=\code -\let\command=\code - -% @uref (abbreviation for `urlref') takes an optional (comma-separated) -% second argument specifying the text to display and an optional third -% arg as text to display instead of (rather than in addition to) the url -% itself. First (mandatory) arg is the url. Perhaps eventually put in -% a hypertex \special here. -% -\def\uref#1{\douref #1,,,\finish} -\def\douref#1,#2,#3,#4\finish{\begingroup - \unsepspaces - \pdfurl{#1}% - \setbox0 = \hbox{\ignorespaces #3}% - \ifdim\wd0 > 0pt - \unhbox0 % third arg given, show only that - \else - \setbox0 = \hbox{\ignorespaces #2}% - \ifdim\wd0 > 0pt - \ifpdf - \unhbox0 % PDF: 2nd arg given, show only it - \else - \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url - \fi - \else - \code{#1}% only url given, so show it - \fi - \fi - \endlink -\endgroup} - -% rms does not like angle brackets --karl, 17may97. -% So now @email is just like @uref, unless we are pdf. -% -%\def\email#1{\angleleft{\tt #1}\angleright} -\ifpdf - \def\email#1{\doemail#1,,\finish} - \def\doemail#1,#2,#3\finish{\begingroup - \unsepspaces - \pdfurl{mailto:#1}% - \setbox0 = \hbox{\ignorespaces #2}% - \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi - \endlink - \endgroup} -\else - \let\email=\uref -\fi - -% Check if we are currently using a typewriter font. Since all the -% Computer Modern typewriter fonts have zero interword stretch (and -% shrink), and it is reasonable to expect all typewriter fonts to have -% this property, we can check that font parameter. -% -\def\ifmonospace{\ifdim\fontdimen3\font=0pt } - -% Typeset a dimension, e.g., `in' or `pt'. The only reason for the -% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt. -% -\def\dmn#1{\thinspace #1} - -\def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par} - -% @l was never documented to mean ``switch to the Lisp font'', -% and it is not used as such in any manual I can find. We need it for -% Polish suppressed-l. --karl, 22sep96. -%\def\l#1{{\li #1}\null} - -% Explicit font changes: @r, @sc, undocumented @ii. -\def\r#1{{\rm #1}} % roman font -\def\sc#1{{\smallcaps#1}} % smallcaps font -\def\ii#1{{\it #1}} % italic font - -% @acronym downcases the argument and prints in smallcaps. -\def\acronym#1{{\smallcaps \lowercase{#1}}} - -% @pounds{} is a sterling sign. -\def\pounds{{\it\$}} - - -\message{page headings,} - -\newskip\titlepagetopglue \titlepagetopglue = 1.5in -\newskip\titlepagebottomglue \titlepagebottomglue = 2pc - -% First the title page. Must do @settitle before @titlepage. -\newif\ifseenauthor -\newif\iffinishedtitlepage - -% Do an implicit @contents or @shortcontents after @end titlepage if the -% user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage. -% -\newif\ifsetcontentsaftertitlepage - \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue -\newif\ifsetshortcontentsaftertitlepage - \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue - -\def\shorttitlepage{\parsearg\shorttitlepagezzz} -\def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}% - \endgroup\page\hbox{}\page} - -\def\titlepage{\begingroup \parindent=0pt \textfonts - \let\subtitlerm=\tenrm - \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}% - % - \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines}% - % - % Leave some space at the very top of the page. - \vglue\titlepagetopglue - % - % Now you can print the title using @title. - \def\title{\parsearg\titlezzz}% - \def\titlezzz##1{\leftline{\titlefonts\rm ##1} - % print a rule at the page bottom also. - \finishedtitlepagefalse - \vskip4pt \hrule height 4pt width \hsize \vskip4pt}% - % No rule at page bottom unless we print one at the top with @title. - \finishedtitlepagetrue - % - % Now you can put text using @subtitle. - \def\subtitle{\parsearg\subtitlezzz}% - \def\subtitlezzz##1{{\subtitlefont \rightline{##1}}}% - % - % @author should come last, but may come many times. - \def\author{\parsearg\authorzzz}% - \def\authorzzz##1{\ifseenauthor\else\vskip 0pt plus 1filll\seenauthortrue\fi - {\authorfont \leftline{##1}}}% - % - % Most title ``pages'' are actually two pages long, with space - % at the top of the second. We don't want the ragged left on the second. - \let\oldpage = \page - \def\page{% - \iffinishedtitlepage\else - \finishtitlepage - \fi - \oldpage - \let\page = \oldpage - \hbox{}}% -% \def\page{\oldpage \hbox{}} -} - -\def\Etitlepage{% - \iffinishedtitlepage\else - \finishtitlepage - \fi - % It is important to do the page break before ending the group, - % because the headline and footline are only empty inside the group. - % If we use the new definition of \page, we always get a blank page - % after the title page, which we certainly don't want. - \oldpage - \endgroup - % - % Need this before the \...aftertitlepage checks so that if they are - % in effect the toc pages will come out with page numbers. - \HEADINGSon - % - % If they want short, they certainly want long too. - \ifsetshortcontentsaftertitlepage - \shortcontents - \contents - \global\let\shortcontents = \relax - \global\let\contents = \relax - \fi - % - \ifsetcontentsaftertitlepage - \contents - \global\let\contents = \relax - \global\let\shortcontents = \relax - \fi -} - -\def\finishtitlepage{% - \vskip4pt \hrule height 2pt width \hsize - \vskip\titlepagebottomglue - \finishedtitlepagetrue -} - -%%% Set up page headings and footings. - -\let\thispage=\folio - -\newtoks\evenheadline % headline on even pages -\newtoks\oddheadline % headline on odd pages -\newtoks\evenfootline % footline on even pages -\newtoks\oddfootline % footline on odd pages - -% Now make Tex use those variables -\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline - \else \the\evenheadline \fi}} -\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline - \else \the\evenfootline \fi}\HEADINGShook} -\let\HEADINGShook=\relax - -% Commands to set those variables. -% For example, this is what @headings on does -% @evenheading @thistitle|@thispage|@thischapter -% @oddheading @thischapter|@thispage|@thistitle -% @evenfooting @thisfile|| -% @oddfooting ||@thisfile - -\def\evenheading{\parsearg\evenheadingxxx} -\def\oddheading{\parsearg\oddheadingxxx} -\def\everyheading{\parsearg\everyheadingxxx} - -\def\evenfooting{\parsearg\evenfootingxxx} -\def\oddfooting{\parsearg\oddfootingxxx} -\def\everyfooting{\parsearg\everyfootingxxx} - -{\catcode`\@=0 % - -\gdef\evenheadingxxx #1{\evenheadingyyy #1@|@|@|@|\finish} -\gdef\evenheadingyyy #1@|#2@|#3@|#4\finish{% -\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} - -\gdef\oddheadingxxx #1{\oddheadingyyy #1@|@|@|@|\finish} -\gdef\oddheadingyyy #1@|#2@|#3@|#4\finish{% -\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} - -\gdef\everyheadingxxx#1{\oddheadingxxx{#1}\evenheadingxxx{#1}}% - -\gdef\evenfootingxxx #1{\evenfootingyyy #1@|@|@|@|\finish} -\gdef\evenfootingyyy #1@|#2@|#3@|#4\finish{% -\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} - -\gdef\oddfootingxxx #1{\oddfootingyyy #1@|@|@|@|\finish} -\gdef\oddfootingyyy #1@|#2@|#3@|#4\finish{% - \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}% - % - % Leave some space for the footline. Hopefully ok to assume - % @evenfooting will not be used by itself. - \global\advance\pageheight by -\baselineskip - \global\advance\vsize by -\baselineskip -} - -\gdef\everyfootingxxx#1{\oddfootingxxx{#1}\evenfootingxxx{#1}} -% -}% unbind the catcode of @. - -% @headings double turns headings on for double-sided printing. -% @headings single turns headings on for single-sided printing. -% @headings off turns them off. -% @headings on same as @headings double, retained for compatibility. -% @headings after turns on double-sided headings after this page. -% @headings doubleafter turns on double-sided headings after this page. -% @headings singleafter turns on single-sided headings after this page. -% By default, they are off at the start of a document, -% and turned `on' after @end titlepage. - -\def\headings #1 {\csname HEADINGS#1\endcsname} - -\def\HEADINGSoff{ -\global\evenheadline={\hfil} \global\evenfootline={\hfil} -\global\oddheadline={\hfil} \global\oddfootline={\hfil}} -\HEADINGSoff -% When we turn headings on, set the page number to 1. -% For double-sided printing, put current file name in lower left corner, -% chapter name on inside top of right hand pages, document -% title on inside top of left hand pages, and page numbers on outside top -% edge of all pages. -\def\HEADINGSdouble{ -\global\pageno=1 -\global\evenfootline={\hfil} -\global\oddfootline={\hfil} -\global\evenheadline={\line{\folio\hfil\thistitle}} -\global\oddheadline={\line{\thischapter\hfil\folio}} -\global\let\contentsalignmacro = \chapoddpage -} -\let\contentsalignmacro = \chappager - -% For single-sided printing, chapter title goes across top left of page, -% page number on top right. -\def\HEADINGSsingle{ -\global\pageno=1 -\global\evenfootline={\hfil} -\global\oddfootline={\hfil} -\global\evenheadline={\line{\thischapter\hfil\folio}} -\global\oddheadline={\line{\thischapter\hfil\folio}} -\global\let\contentsalignmacro = \chappager -} -\def\HEADINGSon{\HEADINGSdouble} - -\def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex} -\let\HEADINGSdoubleafter=\HEADINGSafter -\def\HEADINGSdoublex{% -\global\evenfootline={\hfil} -\global\oddfootline={\hfil} -\global\evenheadline={\line{\folio\hfil\thistitle}} -\global\oddheadline={\line{\thischapter\hfil\folio}} -\global\let\contentsalignmacro = \chapoddpage -} - -\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex} -\def\HEADINGSsinglex{% -\global\evenfootline={\hfil} -\global\oddfootline={\hfil} -\global\evenheadline={\line{\thischapter\hfil\folio}} -\global\oddheadline={\line{\thischapter\hfil\folio}} -\global\let\contentsalignmacro = \chappager -} - -% Subroutines used in generating headings -% This produces Day Month Year style of output. -% Only define if not already defined, in case a txi-??.tex file has set -% up a different format (e.g., txi-cs.tex does this). -\ifx\today\undefined -\def\today{% - \number\day\space - \ifcase\month - \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr - \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug - \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec - \fi - \space\number\year} -\fi - -% @settitle line... specifies the title of the document, for headings. -% It generates no output of its own. -\def\thistitle{\putwordNoTitle} -\def\settitle{\parsearg\settitlezzz} -\def\settitlezzz #1{\gdef\thistitle{#1}} - - -\message{tables,} -% Tables -- @table, @ftable, @vtable, @item(x), @kitem(x), @xitem(x). - -% default indentation of table text -\newdimen\tableindent \tableindent=.8in -% default indentation of @itemize and @enumerate text -\newdimen\itemindent \itemindent=.3in -% margin between end of table item and start of table text. -\newdimen\itemmargin \itemmargin=.1in - -% used internally for \itemindent minus \itemmargin -\newdimen\itemmax - -% Note @table, @vtable, and @vtable define @item, @itemx, etc., with -% these defs. -% They also define \itemindex -% to index the item name in whatever manner is desired (perhaps none). - -\newif\ifitemxneedsnegativevskip - -\def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi} - -\def\internalBitem{\smallbreak \parsearg\itemzzz} -\def\internalBitemx{\itemxpar \parsearg\itemzzz} - -\def\internalBxitem "#1"{\def\xitemsubtopix{#1} \smallbreak \parsearg\xitemzzz} -\def\internalBxitemx "#1"{\def\xitemsubtopix{#1} \itemxpar \parsearg\xitemzzz} - -\def\internalBkitem{\smallbreak \parsearg\kitemzzz} -\def\internalBkitemx{\itemxpar \parsearg\kitemzzz} - -\def\kitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \lastfunction}}% - \itemzzz {#1}} - -\def\xitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \xitemsubtopic}}% - \itemzzz {#1}} - -\def\itemzzz #1{\begingroup % - \advance\hsize by -\rightskip - \advance\hsize by -\tableindent - \setbox0=\hbox{\itemfont{#1}}% - \itemindex{#1}% - \nobreak % This prevents a break before @itemx. - % - % If the item text does not fit in the space we have, put it on a line - % by itself, and do not allow a page break either before or after that - % line. We do not start a paragraph here because then if the next - % command is, e.g., @kindex, the whatsit would get put into the - % horizontal list on a line by itself, resulting in extra blank space. - \ifdim \wd0>\itemmax - % - % Make this a paragraph so we get the \parskip glue and wrapping, - % but leave it ragged-right. - \begingroup - \advance\leftskip by-\tableindent - \advance\hsize by\tableindent - \advance\rightskip by0pt plus1fil - \leavevmode\unhbox0\par - \endgroup - % - % We're going to be starting a paragraph, but we don't want the - % \parskip glue -- logically it's part of the @item we just started. - \nobreak \vskip-\parskip - % - % Stop a page break at the \parskip glue coming up. Unfortunately - % we can't prevent a possible page break at the following - % \baselineskip glue. - \nobreak - \endgroup - \itemxneedsnegativevskipfalse - \else - % The item text fits into the space. Start a paragraph, so that the - % following text (if any) will end up on the same line. - \noindent - % Do this with kerns and \unhbox so that if there is a footnote in - % the item text, it can migrate to the main vertical list and - % eventually be printed. - \nobreak\kern-\tableindent - \dimen0 = \itemmax \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0 - \unhbox0 - \nobreak\kern\dimen0 - \endgroup - \itemxneedsnegativevskiptrue - \fi -} - -\def\item{\errmessage{@item while not in a table}} -\def\itemx{\errmessage{@itemx while not in a table}} -\def\kitem{\errmessage{@kitem while not in a table}} -\def\kitemx{\errmessage{@kitemx while not in a table}} -\def\xitem{\errmessage{@xitem while not in a table}} -\def\xitemx{\errmessage{@xitemx while not in a table}} - -% Contains a kludge to get @end[description] to work. -\def\description{\tablez{\dontindex}{1}{}{}{}{}} - -% @table, @ftable, @vtable. -\def\table{\begingroup\inENV\obeylines\obeyspaces\tablex} -{\obeylines\obeyspaces% -\gdef\tablex #1^^M{% -\tabley\dontindex#1 \endtabley}} - -\def\ftable{\begingroup\inENV\obeylines\obeyspaces\ftablex} -{\obeylines\obeyspaces% -\gdef\ftablex #1^^M{% -\tabley\fnitemindex#1 \endtabley -\def\Eftable{\endgraf\afterenvbreak\endgroup}% -\let\Etable=\relax}} - -\def\vtable{\begingroup\inENV\obeylines\obeyspaces\vtablex} -{\obeylines\obeyspaces% -\gdef\vtablex #1^^M{% -\tabley\vritemindex#1 \endtabley -\def\Evtable{\endgraf\afterenvbreak\endgroup}% -\let\Etable=\relax}} - -\def\dontindex #1{} -\def\fnitemindex #1{\doind {fn}{\code{#1}}}% -\def\vritemindex #1{\doind {vr}{\code{#1}}}% - -{\obeyspaces % -\gdef\tabley#1#2 #3 #4 #5 #6 #7\endtabley{\endgroup% -\tablez{#1}{#2}{#3}{#4}{#5}{#6}}} - -\def\tablez #1#2#3#4#5#6{% -\aboveenvbreak % -\begingroup % -\def\Edescription{\Etable}% Necessary kludge. -\let\itemindex=#1% -\ifnum 0#3>0 \advance \leftskip by #3\mil \fi % -\ifnum 0#4>0 \tableindent=#4\mil \fi % -\ifnum 0#5>0 \advance \rightskip by #5\mil \fi % -\def\itemfont{#2}% -\itemmax=\tableindent % -\advance \itemmax by -\itemmargin % -\advance \leftskip by \tableindent % -\exdentamount=\tableindent -\parindent = 0pt -\parskip = \smallskipamount -\ifdim \parskip=0pt \parskip=2pt \fi% -\def\Etable{\endgraf\afterenvbreak\endgroup}% -\let\item = \internalBitem % -\let\itemx = \internalBitemx % -\let\kitem = \internalBkitem % -\let\kitemx = \internalBkitemx % -\let\xitem = \internalBxitem % -\let\xitemx = \internalBxitemx % -} - -% This is the counter used by @enumerate, which is really @itemize - -\newcount \itemno - -\def\itemize{\parsearg\itemizezzz} - -\def\itemizezzz #1{% - \begingroup % ended by the @end itemize - \itemizey {#1}{\Eitemize} -} - -\def\itemizey #1#2{% -\aboveenvbreak % -\itemmax=\itemindent % -\advance \itemmax by -\itemmargin % -\advance \leftskip by \itemindent % -\exdentamount=\itemindent -\parindent = 0pt % -\parskip = \smallskipamount % -\ifdim \parskip=0pt \parskip=2pt \fi% -\def#2{\endgraf\afterenvbreak\endgroup}% -\def\itemcontents{#1}% -\let\item=\itemizeitem} - -% Set sfcode to normal for the chars that usually have another value. -% These are `.?!:;,' -\def\frenchspacing{\sfcode46=1000 \sfcode63=1000 \sfcode33=1000 - \sfcode58=1000 \sfcode59=1000 \sfcode44=1000 } - -% \splitoff TOKENS\endmark defines \first to be the first token in -% TOKENS, and \rest to be the remainder. -% -\def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}% - -% Allow an optional argument of an uppercase letter, lowercase letter, -% or number, to specify the first label in the enumerated list. No -% argument is the same as `1'. -% -\def\enumerate{\parsearg\enumeratezzz} -\def\enumeratezzz #1{\enumeratey #1 \endenumeratey} -\def\enumeratey #1 #2\endenumeratey{% - \begingroup % ended by the @end enumerate - % - % If we were given no argument, pretend we were given `1'. - \def\thearg{#1}% - \ifx\thearg\empty \def\thearg{1}\fi - % - % Detect if the argument is a single token. If so, it might be a - % letter. Otherwise, the only valid thing it can be is a number. - % (We will always have one token, because of the test we just made. - % This is a good thing, since \splitoff doesn't work given nothing at - % all -- the first parameter is undelimited.) - \expandafter\splitoff\thearg\endmark - \ifx\rest\empty - % Only one token in the argument. It could still be anything. - % A ``lowercase letter'' is one whose \lccode is nonzero. - % An ``uppercase letter'' is one whose \lccode is both nonzero, and - % not equal to itself. - % Otherwise, we assume it's a number. - % - % We need the \relax at the end of the \ifnum lines to stop TeX from - % continuing to look for a . - % - \ifnum\lccode\expandafter`\thearg=0\relax - \numericenumerate % a number (we hope) - \else - % It's a letter. - \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax - \lowercaseenumerate % lowercase letter - \else - \uppercaseenumerate % uppercase letter - \fi - \fi - \else - % Multiple tokens in the argument. We hope it's a number. - \numericenumerate - \fi -} - -% An @enumerate whose labels are integers. The starting integer is -% given in \thearg. -% -\def\numericenumerate{% - \itemno = \thearg - \startenumeration{\the\itemno}% -} - -% The starting (lowercase) letter is in \thearg. -\def\lowercaseenumerate{% - \itemno = \expandafter`\thearg - \startenumeration{% - % Be sure we're not beyond the end of the alphabet. - \ifnum\itemno=0 - \errmessage{No more lowercase letters in @enumerate; get a bigger - alphabet}% - \fi - \char\lccode\itemno - }% -} - -% The starting (uppercase) letter is in \thearg. -\def\uppercaseenumerate{% - \itemno = \expandafter`\thearg - \startenumeration{% - % Be sure we're not beyond the end of the alphabet. - \ifnum\itemno=0 - \errmessage{No more uppercase letters in @enumerate; get a bigger - alphabet} - \fi - \char\uccode\itemno - }% -} - -% Call itemizey, adding a period to the first argument and supplying the -% common last two arguments. Also subtract one from the initial value in -% \itemno, since @item increments \itemno. -% -\def\startenumeration#1{% - \advance\itemno by -1 - \itemizey{#1.}\Eenumerate\flushcr -} - -% @alphaenumerate and @capsenumerate are abbreviations for giving an arg -% to @enumerate. -% -\def\alphaenumerate{\enumerate{a}} -\def\capsenumerate{\enumerate{A}} -\def\Ealphaenumerate{\Eenumerate} -\def\Ecapsenumerate{\Eenumerate} - -% Definition of @item while inside @itemize. - -\def\itemizeitem{% -\advance\itemno by 1 -{\let\par=\endgraf \smallbreak}% -\ifhmode \errmessage{In hmode at itemizeitem}\fi -{\parskip=0in \hskip 0pt -\hbox to 0pt{\hss \itemcontents\hskip \itemmargin}% -\vadjust{\penalty 1200}}% -\flushcr} - -% @multitable macros -% Amy Hendrickson, 8/18/94, 3/6/96 -% -% @multitable ... @end multitable will make as many columns as desired. -% Contents of each column will wrap at width given in preamble. Width -% can be specified either with sample text given in a template line, -% or in percent of \hsize, the current width of text on page. - -% Table can continue over pages but will only break between lines. - -% To make preamble: -% -% Either define widths of columns in terms of percent of \hsize: -% @multitable @columnfractions .25 .3 .45 -% @item ... -% -% Numbers following @columnfractions are the percent of the total -% current hsize to be used for each column. You may use as many -% columns as desired. - - -% Or use a template: -% @multitable {Column 1 template} {Column 2 template} {Column 3 template} -% @item ... -% using the widest term desired in each column. -% -% For those who want to use more than one line's worth of words in -% the preamble, break the line within one argument and it -% will parse correctly, i.e., -% -% @multitable {Column 1 template} {Column 2 template} {Column 3 -% template} -% Not: -% @multitable {Column 1 template} {Column 2 template} -% {Column 3 template} - -% Each new table line starts with @item, each subsequent new column -% starts with @tab. Empty columns may be produced by supplying @tab's -% with nothing between them for as many times as empty columns are needed, -% ie, @tab@tab@tab will produce two empty columns. - -% @item, @tab, @multitable or @end multitable do not need to be on their -% own lines, but it will not hurt if they are. - -% Sample multitable: - -% @multitable {Column 1 template} {Column 2 template} {Column 3 template} -% @item first col stuff @tab second col stuff @tab third col -% @item -% first col stuff -% @tab -% second col stuff -% @tab -% third col -% @item first col stuff @tab second col stuff -% @tab Many paragraphs of text may be used in any column. -% -% They will wrap at the width determined by the template. -% @item@tab@tab This will be in third column. -% @end multitable - -% Default dimensions may be reset by user. -% @multitableparskip is vertical space between paragraphs in table. -% @multitableparindent is paragraph indent in table. -% @multitablecolmargin is horizontal space to be left between columns. -% @multitablelinespace is space to leave between table items, baseline -% to baseline. -% 0pt means it depends on current normal line spacing. -% -\newskip\multitableparskip -\newskip\multitableparindent -\newdimen\multitablecolspace -\newskip\multitablelinespace -\multitableparskip=0pt -\multitableparindent=6pt -\multitablecolspace=12pt -\multitablelinespace=0pt - -% Macros used to set up halign preamble: -% -\let\endsetuptable\relax -\def\xendsetuptable{\endsetuptable} -\let\columnfractions\relax -\def\xcolumnfractions{\columnfractions} -\newif\ifsetpercent - -% #1 is the part of the @columnfraction before the decimal point, which -% is presumably either 0 or the empty string (but we don't check, we -% just throw it away). #2 is the decimal part, which we use as the -% percent of \hsize for this column. -\def\pickupwholefraction#1.#2 {% - \global\advance\colcount by 1 - \expandafter\xdef\csname col\the\colcount\endcsname{.#2\hsize}% - \setuptable -} - -\newcount\colcount -\def\setuptable#1{% - \def\firstarg{#1}% - \ifx\firstarg\xendsetuptable - \let\go = \relax - \else - \ifx\firstarg\xcolumnfractions - \global\setpercenttrue - \else - \ifsetpercent - \let\go\pickupwholefraction - \else - \global\advance\colcount by 1 - \setbox0=\hbox{#1\unskip }% Add a normal word space as a separator; - % typically that is always in the input, anyway. - \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}% - \fi - \fi - \ifx\go\pickupwholefraction - % Put the argument back for the \pickupwholefraction call, so - % we'll always have a period there to be parsed. - \def\go{\pickupwholefraction#1}% - \else - \let\go = \setuptable - \fi% - \fi - \go -} - -% This used to have \hskip1sp. But then the space in a template line is -% not enough. That is bad. So let's go back to just & until we -% encounter the problem it was intended to solve again. -% --karl, nathan@acm.org, 20apr99. -\def\tab{&} - -% @multitable ... @end multitable definitions: -% -\def\multitable{\parsearg\dotable} -\def\dotable#1{\bgroup - \vskip\parskip - \let\item\crcr - \tolerance=9500 - \hbadness=9500 - \setmultitablespacing - \parskip=\multitableparskip - \parindent=\multitableparindent - \overfullrule=0pt - \global\colcount=0 - \def\Emultitable{\global\setpercentfalse\cr\egroup\egroup}% - % - % To parse everything between @multitable and @item: - \setuptable#1 \endsetuptable - % - % \everycr will reset column counter, \colcount, at the end of - % each line. Every column entry will cause \colcount to advance by one. - % The table preamble - % looks at the current \colcount to find the correct column width. - \everycr{\noalign{% - % - % \filbreak%% keeps underfull box messages off when table breaks over pages. - % Maybe so, but it also creates really weird page breaks when the table - % breaks over pages. Wouldn't \vfil be better? Wait until the problem - % manifests itself, so it can be fixed for real --karl. - \global\colcount=0\relax}}% - % - % This preamble sets up a generic column definition, which will - % be used as many times as user calls for columns. - % \vtop will set a single line and will also let text wrap and - % continue for many paragraphs if desired. - \halign\bgroup&\global\advance\colcount by 1\relax - \multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname - % - % In order to keep entries from bumping into each other - % we will add a \leftskip of \multitablecolspace to all columns after - % the first one. - % - % If a template has been used, we will add \multitablecolspace - % to the width of each template entry. - % - % If the user has set preamble in terms of percent of \hsize we will - % use that dimension as the width of the column, and the \leftskip - % will keep entries from bumping into each other. Table will start at - % left margin and final column will justify at right margin. - % - % Make sure we don't inherit \rightskip from the outer environment. - \rightskip=0pt - \ifnum\colcount=1 - % The first column will be indented with the surrounding text. - \advance\hsize by\leftskip - \else - \ifsetpercent \else - % If user has not set preamble in terms of percent of \hsize - % we will advance \hsize by \multitablecolspace. - \advance\hsize by \multitablecolspace - \fi - % In either case we will make \leftskip=\multitablecolspace: - \leftskip=\multitablecolspace - \fi - % Ignoring space at the beginning and end avoids an occasional spurious - % blank line, when TeX decides to break the line at the space before the - % box from the multistrut, so the strut ends up on a line by itself. - % For example: - % @multitable @columnfractions .11 .89 - % @item @code{#} - % @tab Legal holiday which is valid in major parts of the whole country. - % Is automatically provided with highlighting sequences respectively marking - % characters. - \noindent\ignorespaces##\unskip\multistrut}\cr -} - -\def\setmultitablespacing{% test to see if user has set \multitablelinespace. -% If so, do nothing. If not, give it an appropriate dimension based on -% current baselineskip. -\ifdim\multitablelinespace=0pt -\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip -\global\advance\multitablelinespace by-\ht0 -%% strut to put in table in case some entry doesn't have descenders, -%% to keep lines equally spaced -\let\multistrut = \strut -\else -%% FIXME: what is \box0 supposed to be? -\gdef\multistrut{\vrule height\multitablelinespace depth\dp0 -width0pt\relax} \fi -%% Test to see if parskip is larger than space between lines of -%% table. If not, do nothing. -%% If so, set to same dimension as multitablelinespace. -\ifdim\multitableparskip>\multitablelinespace -\global\multitableparskip=\multitablelinespace -\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller - %% than skip between lines in the table. -\fi% -\ifdim\multitableparskip=0pt -\global\multitableparskip=\multitablelinespace -\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller - %% than skip between lines in the table. -\fi} - - -\message{conditionals,} -% Prevent errors for section commands. -% Used in @ignore and in failing conditionals. -\def\ignoresections{% - \let\chapter=\relax - \let\unnumbered=\relax - \let\top=\relax - \let\unnumberedsec=\relax - \let\unnumberedsection=\relax - \let\unnumberedsubsec=\relax - \let\unnumberedsubsection=\relax - \let\unnumberedsubsubsec=\relax - \let\unnumberedsubsubsection=\relax - \let\section=\relax - \let\subsec=\relax - \let\subsubsec=\relax - \let\subsection=\relax - \let\subsubsection=\relax - \let\appendix=\relax - \let\appendixsec=\relax - \let\appendixsection=\relax - \let\appendixsubsec=\relax - \let\appendixsubsection=\relax - \let\appendixsubsubsec=\relax - \let\appendixsubsubsection=\relax - \let\contents=\relax - \let\smallbook=\relax - \let\titlepage=\relax -} - -% Used in nested conditionals, where we have to parse the Texinfo source -% and so want to turn off most commands, in case they are used -% incorrectly. -% -\def\ignoremorecommands{% - \let\defcodeindex = \relax - \let\defcv = \relax - \let\deffn = \relax - \let\deffnx = \relax - \let\defindex = \relax - \let\defivar = \relax - \let\defmac = \relax - \let\defmethod = \relax - \let\defop = \relax - \let\defopt = \relax - \let\defspec = \relax - \let\deftp = \relax - \let\deftypefn = \relax - \let\deftypefun = \relax - \let\deftypeivar = \relax - \let\deftypeop = \relax - \let\deftypevar = \relax - \let\deftypevr = \relax - \let\defun = \relax - \let\defvar = \relax - \let\defvr = \relax - \let\ref = \relax - \let\xref = \relax - \let\printindex = \relax - \let\pxref = \relax - \let\settitle = \relax - \let\setchapternewpage = \relax - \let\setchapterstyle = \relax - \let\everyheading = \relax - \let\evenheading = \relax - \let\oddheading = \relax - \let\everyfooting = \relax - \let\evenfooting = \relax - \let\oddfooting = \relax - \let\headings = \relax - \let\include = \relax - \let\lowersections = \relax - \let\down = \relax - \let\raisesections = \relax - \let\up = \relax - \let\set = \relax - \let\clear = \relax - \let\item = \relax -} - -% Ignore @ignore, @ifhtml, @ifinfo, @ifplaintext, @ifnottex, @html, @menu, -% @direntry, and @documentdescription. -% -\def\ignore{\doignore{ignore}} -\def\ifhtml{\doignore{ifhtml}} -\def\ifinfo{\doignore{ifinfo}} -\def\ifplaintext{\doignore{ifplaintext}} -\def\ifnottex{\doignore{ifnottex}} -\def\html{\doignore{html}} -\def\menu{\doignore{menu}} -\def\direntry{\doignore{direntry}} -\def\documentdescription{\doignore{documentdescription}} -\def\documentdescriptionword{documentdescription} - -% @dircategory CATEGORY -- specify a category of the dir file -% which this file should belong to. Ignore this in TeX. -\let\dircategory = \comment - -% Ignore text until a line `@end #1'. -% -\def\doignore#1{\begingroup - % Don't complain about control sequences we have declared \outer. - \ignoresections - % - % Define a command to swallow text until we reach `@end #1'. - % This @ is a catcode 12 token (that is the normal catcode of @ in - % this texinfo.tex file). We change the catcode of @ below to match. - \long\def\doignoretext##1@end #1{\enddoignore}% - % - % Make sure that spaces turn into tokens that match what \doignoretext wants. - \catcode32 = 10 - % - % Ignore braces, too, so mismatched braces don't cause trouble. - \catcode`\{ = 9 - \catcode`\} = 9 - % - % We must not have @c interpreted as a control sequence. - \catcode`\@ = 12 - % - \def\ignoreword{#1}% - \ifx\ignoreword\documentdescriptionword - % The c kludge breaks documentdescription, since - % `documentdescription' contains a `c'. Means not everything will - % be ignored inside @documentdescription, but oh well... - \else - % Make the letter c a comment character so that the rest of the line - % will be ignored. This way, the document can have (for example) - % @c @end ifinfo - % and the @end ifinfo will be properly ignored. - % (We've just changed @ to catcode 12.) - \catcode`\c = 14 - \fi - % - % And now expand the command defined above. - \doignoretext -} - -% What we do to finish off ignored text. -% -\def\enddoignore{\endgroup\ignorespaces}% - -\newif\ifwarnedobs\warnedobsfalse -\def\obstexwarn{% - \ifwarnedobs\relax\else - % We need to warn folks that they may have trouble with TeX 3.0. - % This uses \immediate\write16 rather than \message to get newlines. - \immediate\write16{} - \immediate\write16{WARNING: for users of Unix TeX 3.0!} - \immediate\write16{This manual trips a bug in TeX version 3.0 (tex hangs).} - \immediate\write16{If you are running another version of TeX, relax.} - \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.} - \immediate\write16{ Then upgrade your TeX installation if you can.} - \immediate\write16{ (See ftp://ftp.gnu.org/pub/gnu/TeX.README.)} - \immediate\write16{If you are stuck with version 3.0, run the} - \immediate\write16{ script ``tex3patch'' from the Texinfo distribution} - \immediate\write16{ to use a workaround.} - \immediate\write16{} - \global\warnedobstrue - \fi -} - -% **In TeX 3.0, setting text in \nullfont hangs tex. For a -% workaround (which requires the file ``dummy.tfm'' to be installed), -% uncomment the following line: -%%%%%\font\nullfont=dummy\let\obstexwarn=\relax - -% Ignore text, except that we keep track of conditional commands for -% purposes of nesting, up to an `@end #1' command. -% -\def\nestedignore#1{% - \obstexwarn - % We must actually expand the ignored text to look for the @end - % command, so that nested ignore constructs work. Thus, we put the - % text into a \vbox and then do nothing with the result. To minimize - % the change of memory overflow, we follow the approach outlined on - % page 401 of the TeXbook: make the current font be a dummy font. - % - \setbox0 = \vbox\bgroup - % Don't complain about control sequences we have declared \outer. - \ignoresections - % - % Define `@end #1' to end the box, which will in turn undefine the - % @end command again. - \expandafter\def\csname E#1\endcsname{\egroup\ignorespaces}% - % - % We are going to be parsing Texinfo commands. Most cause no - % trouble when they are used incorrectly, but some commands do - % complicated argument parsing or otherwise get confused, so we - % undefine them. - % - % We can't do anything about stray @-signs, unfortunately; - % they'll produce `undefined control sequence' errors. - \ignoremorecommands - % - % Set the current font to be \nullfont, a TeX primitive, and define - % all the font commands to also use \nullfont. We don't use - % dummy.tfm, as suggested in the TeXbook, because not all sites - % might have that installed. Therefore, math mode will still - % produce output, but that should be an extremely small amount of - % stuff compared to the main input. - % - \nullfont - \let\tenrm=\nullfont \let\tenit=\nullfont \let\tensl=\nullfont - \let\tenbf=\nullfont \let\tentt=\nullfont \let\smallcaps=\nullfont - \let\tensf=\nullfont - % Similarly for index fonts. - \let\smallrm=\nullfont \let\smallit=\nullfont \let\smallsl=\nullfont - \let\smallbf=\nullfont \let\smalltt=\nullfont \let\smallsc=\nullfont - \let\smallsf=\nullfont - % Similarly for smallexample fonts. - \let\smallerrm=\nullfont \let\smallerit=\nullfont \let\smallersl=\nullfont - \let\smallerbf=\nullfont \let\smallertt=\nullfont \let\smallersc=\nullfont - \let\smallersf=\nullfont - % - % Don't complain when characters are missing from the fonts. - \tracinglostchars = 0 - % - % Don't bother to do space factor calculations. - \frenchspacing - % - % Don't report underfull hboxes. - \hbadness = 10000 - % - % Do minimal line-breaking. - \pretolerance = 10000 - % - % Do not execute instructions in @tex - \def\tex{\doignore{tex}}% - % Do not execute macro definitions. - % `c' is a comment character, so the word `macro' will get cut off. - \def\macro{\doignore{ma}}% -} - -% @set VAR sets the variable VAR to an empty value. -% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE. -% -% Since we want to separate VAR from REST-OF-LINE (which might be -% empty), we can't just use \parsearg; we have to insert a space of our -% own to delimit the rest of the line, and then take it out again if we -% didn't need it. Make sure the catcode of space is correct to avoid -% losing inside @example, for instance. -% -\def\set{\begingroup\catcode` =10 - \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR. - \parsearg\setxxx} -\def\setxxx#1{\setyyy#1 \endsetyyy} -\def\setyyy#1 #2\endsetyyy{% - \def\temp{#2}% - \ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty - \else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted. - \fi - \endgroup -} -% Can't use \xdef to pre-expand #2 and save some time, since \temp or -% \next or other control sequences that we've defined might get us into -% an infinite loop. Consider `@set foo @cite{bar}'. -\def\setzzz#1#2 \endsetzzz{\expandafter\gdef\csname SET#1\endcsname{#2}} - -% @clear VAR clears (i.e., unsets) the variable VAR. -% -\def\clear{\parsearg\clearxxx} -\def\clearxxx#1{\global\expandafter\let\csname SET#1\endcsname=\relax} - -% @value{foo} gets the text saved in variable foo. -{ - \catcode`\_ = \active - % - % We might end up with active _ or - characters in the argument if - % we're called from @code, as @code{@value{foo-bar_}}. So \let any - % such active characters to their normal equivalents. - \gdef\value{\begingroup - \catcode`\-=12 \catcode`\_=12 - \indexbreaks \let_\normalunderscore - \valuexxx} -} -\def\valuexxx#1{\expandablevalue{#1}\endgroup} - -% We have this subroutine so that we can handle at least some @value's -% properly in indexes (we \let\value to this in \indexdummies). Ones -% whose names contain - or _ still won't work, but we can't do anything -% about that. The command has to be fully expandable, since the result -% winds up in the index file. This means that if the variable's value -% contains other Texinfo commands, it's almost certain it will fail -% (although perhaps we could fix that with sufficient work to do a -% one-level expansion on the result, instead of complete). -% -\def\expandablevalue#1{% - \expandafter\ifx\csname SET#1\endcsname\relax - {[No value for ``#1'']}% - \else - \csname SET#1\endcsname - \fi -} - -% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined -% with @set. -% -\def\ifset{\parsearg\ifsetxxx} -\def\ifsetxxx #1{% - \expandafter\ifx\csname SET#1\endcsname\relax - \expandafter\ifsetfail - \else - \expandafter\ifsetsucceed - \fi -} -\def\ifsetsucceed{\conditionalsucceed{ifset}} -\def\ifsetfail{\nestedignore{ifset}} -\defineunmatchedend{ifset} - -% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been -% defined with @set, or has been undefined with @clear. -% -\def\ifclear{\parsearg\ifclearxxx} -\def\ifclearxxx #1{% - \expandafter\ifx\csname SET#1\endcsname\relax - \expandafter\ifclearsucceed - \else - \expandafter\ifclearfail - \fi -} -\def\ifclearsucceed{\conditionalsucceed{ifclear}} -\def\ifclearfail{\nestedignore{ifclear}} -\defineunmatchedend{ifclear} - -% @iftex, @ifnothtml, @ifnotinfo, @ifnotplaintext always succeed; we -% read the text following, through the first @end iftex (etc.). Make -% `@end iftex' (etc.) valid only after an @iftex. -% -\def\iftex{\conditionalsucceed{iftex}} -\def\ifnothtml{\conditionalsucceed{ifnothtml}} -\def\ifnotinfo{\conditionalsucceed{ifnotinfo}} -\def\ifnotplaintext{\conditionalsucceed{ifnotplaintext}} -\defineunmatchedend{iftex} -\defineunmatchedend{ifnothtml} -\defineunmatchedend{ifnotinfo} -\defineunmatchedend{ifnotplaintext} - -% We can't just want to start a group at @iftex (etc.) and end it at -% @end iftex, since then @set commands inside the conditional have no -% effect (they'd get reverted at the end of the group). So we must -% define \Eiftex to redefine itself to be its previous value. (We can't -% just define it to fail again with an ``unmatched end'' error, since -% the @ifset might be nested.) -% -\def\conditionalsucceed#1{% - \edef\temp{% - % Remember the current value of \E#1. - \let\nece{prevE#1} = \nece{E#1}% - % - % At the `@end #1', redefine \E#1 to be its previous value. - \def\nece{E#1}{\let\nece{E#1} = \nece{prevE#1}}% - }% - \temp -} - -% We need to expand lots of \csname's, but we don't want to expand the -% control sequences after we've constructed them. -% -\def\nece#1{\expandafter\noexpand\csname#1\endcsname} - -% @defininfoenclose. -\let\definfoenclose=\comment - - -\message{indexing,} -% Index generation facilities - -% Define \newwrite to be identical to plain tex's \newwrite -% except not \outer, so it can be used within \newindex. -{\catcode`\@=11 -\gdef\newwrite{\alloc@7\write\chardef\sixt@@n}} - -% \newindex {foo} defines an index named foo. -% It automatically defines \fooindex such that -% \fooindex ...rest of line... puts an entry in the index foo. -% It also defines \fooindfile to be the number of the output channel for -% the file that accumulates this index. The file's extension is foo. -% The name of an index should be no more than 2 characters long -% for the sake of vms. -% -\def\newindex#1{% - \iflinks - \expandafter\newwrite \csname#1indfile\endcsname - \openout \csname#1indfile\endcsname \jobname.#1 % Open the file - \fi - \expandafter\xdef\csname#1index\endcsname{% % Define @#1index - \noexpand\doindex{#1}} -} - -% @defindex foo == \newindex{foo} -% -\def\defindex{\parsearg\newindex} - -% Define @defcodeindex, like @defindex except put all entries in @code. -% -\def\defcodeindex{\parsearg\newcodeindex} -% -\def\newcodeindex#1{% - \iflinks - \expandafter\newwrite \csname#1indfile\endcsname - \openout \csname#1indfile\endcsname \jobname.#1 - \fi - \expandafter\xdef\csname#1index\endcsname{% - \noexpand\docodeindex{#1}}% -} - - -% @synindex foo bar makes index foo feed into index bar. -% Do this instead of @defindex foo if you don't want it as a separate index. -% -% @syncodeindex foo bar similar, but put all entries made for index foo -% inside @code. -% -\def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}} -\def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}} - -% #1 is \doindex or \docodeindex, #2 the index getting redefined (foo), -% #3 the target index (bar). -\def\dosynindex#1#2#3{% - % Only do \closeout if we haven't already done it, else we'll end up - % closing the target index. - \expandafter \ifx\csname donesynindex#2\endcsname \undefined - % The \closeout helps reduce unnecessary open files; the limit on the - % Acorn RISC OS is a mere 16 files. - \expandafter\closeout\csname#2indfile\endcsname - \expandafter\let\csname\donesynindex#2\endcsname = 1 - \fi - % redefine \fooindfile: - \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname - \expandafter\let\csname#2indfile\endcsname=\temp - % redefine \fooindex: - \expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}% -} - -% Define \doindex, the driver for all \fooindex macros. -% Argument #1 is generated by the calling \fooindex macro, -% and it is "foo", the name of the index. - -% \doindex just uses \parsearg; it calls \doind for the actual work. -% This is because \doind is more useful to call from other macros. - -% There is also \dosubind {index}{topic}{subtopic} -% which makes an entry in a two-level index such as the operation index. - -\def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer} -\def\singleindexer #1{\doind{\indexname}{#1}} - -% like the previous two, but they put @code around the argument. -\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer} -\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}} - -% Take care of texinfo commands likely to appear in an index entry. -% (Must be a way to avoid doing expansion at all, and thus not have to -% laboriously list every single command here.) -% -\def\indexdummies{% -\def\ { }% -\def\@{@}% change to @@ when we switch to @ as escape char in aux files. -% Need these in case \tex is in effect and \{ is a \delimiter again. -% But can't use \lbracecmd and \rbracecmd because texindex assumes -% braces and backslashes are used only as delimiters. -\let\{ = \mylbrace -\let\} = \myrbrace -\def\_{{\realbackslash _}}% -\normalturnoffactive -% -% Take care of the plain tex accent commands. -\def\,##1{\realbackslash ,{##1}}% -\def\"{\realbackslash "}% -\def\`{\realbackslash `}% -\def\'{\realbackslash '}% -\def\^{\realbackslash ^}% -\def\~{\realbackslash ~}% -\def\={\realbackslash =}% -\def\b{\realbackslash b}% -\def\c{\realbackslash c}% -\def\d{\realbackslash d}% -\def\u{\realbackslash u}% -\def\v{\realbackslash v}% -\def\H{\realbackslash H}% -\def\dotless##1{\realbackslash dotless {##1}}% -% Take care of the plain tex special European modified letters. -\def\AA{\realbackslash AA}% -\def\AE{\realbackslash AE}% -\def\L{\realbackslash L}% -\def\OE{\realbackslash OE}% -\def\O{\realbackslash O}% -\def\aa{\realbackslash aa}% -\def\ae{\realbackslash ae}% -\def\l{\realbackslash l}% -\def\oe{\realbackslash oe}% -\def\o{\realbackslash o}% -\def\ss{\realbackslash ss}% -% -% Although these internals commands shouldn't show up, sometimes they do. -\def\bf{\realbackslash bf }% -\def\gtr{\realbackslash gtr}% -\def\hat{\realbackslash hat}% -\def\less{\realbackslash less}% -%\def\rm{\realbackslash rm }% -\def\sf{\realbackslash sf}% -\def\sl{\realbackslash sl }% -\def\tclose##1{\realbackslash tclose {##1}}% -\def\tt{\realbackslash tt}% -% -\def\b##1{\realbackslash b {##1}}% -\def\i##1{\realbackslash i {##1}}% -\def\sc##1{\realbackslash sc {##1}}% -\def\t##1{\realbackslash t {##1}}% -\def\r##1{\realbackslash r {##1}}% -% -\def\TeX{\realbackslash TeX}% -\def\acronym##1{\realbackslash acronym {##1}}% -\def\cite##1{\realbackslash cite {##1}}% -\def\code##1{\realbackslash code {##1}}% -\def\command##1{\realbackslash command {##1}}% -\def\dfn##1{\realbackslash dfn {##1}}% -\def\dots{\realbackslash dots }% -\def\emph##1{\realbackslash emph {##1}}% -\def\env##1{\realbackslash env {##1}}% -\def\file##1{\realbackslash file {##1}}% -\def\kbd##1{\realbackslash kbd {##1}}% -\def\key##1{\realbackslash key {##1}}% -\def\math##1{\realbackslash math {##1}}% -\def\option##1{\realbackslash option {##1}}% -\def\samp##1{\realbackslash samp {##1}}% -\def\strong##1{\realbackslash strong {##1}}% -\def\uref##1{\realbackslash uref {##1}}% -\def\url##1{\realbackslash url {##1}}% -\def\var##1{\realbackslash var {##1}}% -\def\w{\realbackslash w }% -% -% These math commands don't seem likely to be used in index entries. -\def\copyright{\realbackslash copyright}% -\def\equiv{\realbackslash equiv}% -\def\error{\realbackslash error}% -\def\expansion{\realbackslash expansion}% -\def\point{\realbackslash point}% -\def\print{\realbackslash print}% -\def\result{\realbackslash result}% -% -% Handle some cases of @value -- where the variable name does not -% contain - or _, and the value does not contain any -% (non-fully-expandable) commands. -\let\value = \expandablevalue -% -\unsepspaces -% Turn off macro expansion -\turnoffmacros -} - -% If an index command is used in an @example environment, any spaces -% therein should become regular spaces in the raw index file, not the -% expansion of \tie (\leavevmode \penalty \@M \ ). -{\obeyspaces - \gdef\unsepspaces{\obeyspaces\let =\space}} - -% \indexnofonts no-ops all font-change commands. -% This is used when outputting the strings to sort the index by. -\def\indexdummyfont#1{#1} -\def\indexdummytex{TeX} -\def\indexdummydots{...} - -\def\indexnofonts{% -\def\@{@}% -% how to handle braces? -\def\_{\normalunderscore}% -% -\let\,=\indexdummyfont -\let\"=\indexdummyfont -\let\`=\indexdummyfont -\let\'=\indexdummyfont -\let\^=\indexdummyfont -\let\~=\indexdummyfont -\let\==\indexdummyfont -\let\b=\indexdummyfont -\let\c=\indexdummyfont -\let\d=\indexdummyfont -\let\u=\indexdummyfont -\let\v=\indexdummyfont -\let\H=\indexdummyfont -\let\dotless=\indexdummyfont -% Take care of the plain tex special European modified letters. -\def\AA{AA}% -\def\AE{AE}% -\def\L{L}% -\def\OE{OE}% -\def\O{O}% -\def\aa{aa}% -\def\ae{ae}% -\def\l{l}% -\def\oe{oe}% -\def\o{o}% -\def\ss{ss}% -% -% Don't no-op \tt, since it isn't a user-level command -% and is used in the definitions of the active chars like <, >, |, etc. -% Likewise with the other plain tex font commands. -%\let\tt=\indexdummyfont -% -\let\b=\indexdummyfont -\let\i=\indexdummyfont -\let\r=\indexdummyfont -\let\sc=\indexdummyfont -\let\t=\indexdummyfont -% -\let\TeX=\indexdummytex -\let\acronym=\indexdummyfont -\let\cite=\indexdummyfont -\let\code=\indexdummyfont -\let\command=\indexdummyfont -\let\dfn=\indexdummyfont -\let\dots=\indexdummydots -\let\emph=\indexdummyfont -\let\env=\indexdummyfont -\let\file=\indexdummyfont -\let\kbd=\indexdummyfont -\let\key=\indexdummyfont -\let\math=\indexdummyfont -\let\option=\indexdummyfont -\let\samp=\indexdummyfont -\let\strong=\indexdummyfont -\let\uref=\indexdummyfont -\let\url=\indexdummyfont -\let\var=\indexdummyfont -\let\w=\indexdummyfont -} - -% To define \realbackslash, we must make \ not be an escape. -% We must first make another character (@) an escape -% so we do not become unable to do a definition. - -{\catcode`\@=0 \catcode`\\=\other - @gdef@realbackslash{\}} - -\let\indexbackslash=0 %overridden during \printindex. -\let\SETmarginindex=\relax % put index entries in margin (undocumented)? - -% For \ifx comparisons. -\def\emptymacro{\empty} - -% Most index entries go through here, but \dosubind is the general case. -% -\def\doind#1#2{\dosubind{#1}{#2}\empty} - -% Workhorse for all \fooindexes. -% #1 is name of index, #2 is stuff to put there, #3 is subentry -- -% \empty if called from \doind, as we usually are. The main exception -% is with defuns, which call us directly. -% -\def\dosubind#1#2#3{% - % Put the index entry in the margin if desired. - \ifx\SETmarginindex\relax\else - \insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}% - \fi - {% - \count255=\lastpenalty - {% - \indexdummies % Must do this here, since \bf, etc expand at this stage - \escapechar=`\\ - {% - \let\folio = 0% We will expand all macros now EXCEPT \folio. - \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now - % so it will be output as is; and it will print as backslash. - % - \def\thirdarg{#3}% - % - % If third arg is present, precede it with space in sort key. - \ifx\thirdarg\emptymacro - \let\subentry = \empty - \else - \def\subentry{ #3}% - \fi - % - % First process the index entry with all font commands turned - % off to get the string to sort by. - {\indexnofonts \xdef\indexsorttmp{#2\subentry}}% - % - % Now the real index entry with the fonts. - \toks0 = {#2}% - % - % If the third (subentry) arg is present, add it to the index - % line to write. - \ifx\thirdarg\emptymacro \else - \toks0 = \expandafter{\the\toks0{#3}}% - \fi - % - % Set up the complete index entry, with both the sort key and - % the original text, including any font commands. We write - % three arguments to \entry to the .?? file (four in the - % subentry case), texindex reduces to two when writing the .??s - % sorted result. - \edef\temp{% - \write\csname#1indfile\endcsname{% - \realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}}% - }% - % - % If a skip is the last thing on the list now, preserve it - % by backing up by \lastskip, doing the \write, then inserting - % the skip again. Otherwise, the whatsit generated by the - % \write will make \lastskip zero. The result is that sequences - % like this: - % @end defun - % @tindex whatever - % @defun ... - % will have extra space inserted, because the \medbreak in the - % start of the @defun won't see the skip inserted by the @end of - % the previous defun. - % - % But don't do any of this if we're not in vertical mode. We - % don't want to do a \vskip and prematurely end a paragraph. - % - % Avoid page breaks due to these extra skips, too. - % - \iflinks - \ifvmode - \skip0 = \lastskip - \ifdim\lastskip = 0pt \else \nobreak\vskip-\lastskip \fi - \fi - % - \temp % do the write - % - % - \ifvmode \ifdim\skip0 = 0pt \else \nobreak\vskip\skip0 \fi \fi - \fi - }% - }% - \penalty\count255 - }% -} - -% The index entry written in the file actually looks like -% \entry {sortstring}{page}{topic} -% or -% \entry {sortstring}{page}{topic}{subtopic} -% The texindex program reads in these files and writes files -% containing these kinds of lines: -% \initial {c} -% before the first topic whose initial is c -% \entry {topic}{pagelist} -% for a topic that is used without subtopics -% \primary {topic} -% for the beginning of a topic that is used with subtopics -% \secondary {subtopic}{pagelist} -% for each subtopic. - -% Define the user-accessible indexing commands -% @findex, @vindex, @kindex, @cindex. - -\def\findex {\fnindex} -\def\kindex {\kyindex} -\def\cindex {\cpindex} -\def\vindex {\vrindex} -\def\tindex {\tpindex} -\def\pindex {\pgindex} - -\def\cindexsub {\begingroup\obeylines\cindexsub} -{\obeylines % -\gdef\cindexsub "#1" #2^^M{\endgroup % -\dosubind{cp}{#2}{#1}}} - -% Define the macros used in formatting output of the sorted index material. - -% @printindex causes a particular index (the ??s file) to get printed. -% It does not print any chapter heading (usually an @unnumbered). -% -\def\printindex{\parsearg\doprintindex} -\def\doprintindex#1{\begingroup - \dobreak \chapheadingskip{10000}% - % - \smallfonts \rm - \tolerance = 9500 - \indexbreaks - % - % See if the index file exists and is nonempty. - % Change catcode of @ here so that if the index file contains - % \initial {@} - % as its first line, TeX doesn't complain about mismatched braces - % (because it thinks @} is a control sequence). - \catcode`\@ = 11 - \openin 1 \jobname.#1s - \ifeof 1 - % \enddoublecolumns gets confused if there is no text in the index, - % and it loses the chapter title and the aux file entries for the - % index. The easiest way to prevent this problem is to make sure - % there is some text. - \putwordIndexNonexistent - \else - % - % If the index file exists but is empty, then \openin leaves \ifeof - % false. We have to make TeX try to read something from the file, so - % it can discover if there is anything in it. - \read 1 to \temp - \ifeof 1 - \putwordIndexIsEmpty - \else - % Index files are almost Texinfo source, but we use \ as the escape - % character. It would be better to use @, but that's too big a change - % to make right now. - \def\indexbackslash{\rawbackslashxx}% - \catcode`\\ = 0 - \escapechar = `\\ - \begindoublecolumns - \input \jobname.#1s - \enddoublecolumns - \fi - \fi - \closein 1 -\endgroup} - -% These macros are used by the sorted index file itself. -% Change them to control the appearance of the index. - -\def\initial#1{{% - % Some minor font changes for the special characters. - \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt - % - % Remove any glue we may have, we'll be inserting our own. - \removelastskip - % - % We like breaks before the index initials, so insert a bonus. - \penalty -300 - % - % Typeset the initial. Making this add up to a whole number of - % baselineskips increases the chance of the dots lining up from column - % to column. It still won't often be perfect, because of the stretch - % we need before each entry, but it's better. - % - % No shrink because it confuses \balancecolumns. - \vskip 1.67\baselineskip plus .5\baselineskip - \leftline{\secbf #1}% - \vskip .33\baselineskip plus .1\baselineskip - % - % Do our best not to break after the initial. - \nobreak -}} - -% This typesets a paragraph consisting of #1, dot leaders, and then #2 -% flush to the right margin. It is used for index and table of contents -% entries. The paragraph is indented by \leftskip. -% -\def\entry#1#2{\begingroup - % - % Start a new paragraph if necessary, so our assignments below can't - % affect previous text. - \par - % - % Do not fill out the last line with white space. - \parfillskip = 0in - % - % No extra space above this paragraph. - \parskip = 0in - % - % Do not prefer a separate line ending with a hyphen to fewer lines. - \finalhyphendemerits = 0 - % - % \hangindent is only relevant when the entry text and page number - % don't both fit on one line. In that case, bob suggests starting the - % dots pretty far over on the line. Unfortunately, a large - % indentation looks wrong when the entry text itself is broken across - % lines. So we use a small indentation and put up with long leaders. - % - % \hangafter is reset to 1 (which is the value we want) at the start - % of each paragraph, so we need not do anything with that. - \hangindent = 2em - % - % When the entry text needs to be broken, just fill out the first line - % with blank space. - \rightskip = 0pt plus1fil - % - % A bit of stretch before each entry for the benefit of balancing columns. - \vskip 0pt plus1pt - % - % Start a ``paragraph'' for the index entry so the line breaking - % parameters we've set above will have an effect. - \noindent - % - % Insert the text of the index entry. TeX will do line-breaking on it. - #1% - % The following is kludged to not output a line of dots in the index if - % there are no page numbers. The next person who breaks this will be - % cursed by a Unix daemon. - \def\tempa{{\rm }}% - \def\tempb{#2}% - \edef\tempc{\tempa}% - \edef\tempd{\tempb}% - \ifx\tempc\tempd\ \else% - % - % If we must, put the page number on a line of its own, and fill out - % this line with blank space. (The \hfil is overwhelmed with the - % fill leaders glue in \indexdotfill if the page number does fit.) - \hfil\penalty50 - \null\nobreak\indexdotfill % Have leaders before the page number. - % - % The `\ ' here is removed by the implicit \unskip that TeX does as - % part of (the primitive) \par. Without it, a spurious underfull - % \hbox ensues. - \ifpdf - \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph. - \else - \ #2% The page number ends the paragraph. - \fi - \fi% - \par -\endgroup} - -% Like \dotfill except takes at least 1 em. -\def\indexdotfill{\cleaders - \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill} - -\def\primary #1{\line{#1\hfil}} - -\newskip\secondaryindent \secondaryindent=0.5cm -\def\secondary#1#2{{% - \parfillskip=0in - \parskip=0in - \hangindent=1in - \hangafter=1 - \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill - \ifpdf - \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph. - \else - #2 - \fi - \par -}} - -% Define two-column mode, which we use to typeset indexes. -% Adapted from the TeXbook, page 416, which is to say, -% the manmac.tex format used to print the TeXbook itself. -\catcode`\@=11 - -\newbox\partialpage -\newdimen\doublecolumnhsize - -\def\begindoublecolumns{\begingroup % ended by \enddoublecolumns - % Grab any single-column material above us. - \output = {% - % - % Here is a possibility not foreseen in manmac: if we accumulate a - % whole lot of material, we might end up calling this \output - % routine twice in a row (see the doublecol-lose test, which is - % essentially a couple of indexes with @setchapternewpage off). In - % that case we just ship out what is in \partialpage with the normal - % output routine. Generally, \partialpage will be empty when this - % runs and this will be a no-op. See the indexspread.tex test case. - \ifvoid\partialpage \else - \onepageout{\pagecontents\partialpage}% - \fi - % - \global\setbox\partialpage = \vbox{% - % Unvbox the main output page. - \unvbox\PAGE - \kern-\topskip \kern\baselineskip - }% - }% - \eject % run that output routine to set \partialpage - % - % Use the double-column output routine for subsequent pages. - \output = {\doublecolumnout}% - % - % Change the page size parameters. We could do this once outside this - % routine, in each of @smallbook, @afourpaper, and the default 8.5x11 - % format, but then we repeat the same computation. Repeating a couple - % of assignments once per index is clearly meaningless for the - % execution time, so we may as well do it in one place. - % - % First we halve the line length, less a little for the gutter between - % the columns. We compute the gutter based on the line length, so it - % changes automatically with the paper format. The magic constant - % below is chosen so that the gutter has the same value (well, +-<1pt) - % as it did when we hard-coded it. - % - % We put the result in a separate register, \doublecolumhsize, so we - % can restore it in \pagesofar, after \hsize itself has (potentially) - % been clobbered. - % - \doublecolumnhsize = \hsize - \advance\doublecolumnhsize by -.04154\hsize - \divide\doublecolumnhsize by 2 - \hsize = \doublecolumnhsize - % - % Double the \vsize as well. (We don't need a separate register here, - % since nobody clobbers \vsize.) - \vsize = 2\vsize -} - -% The double-column output routine for all double-column pages except -% the last. -% -\def\doublecolumnout{% - \splittopskip=\topskip \splitmaxdepth=\maxdepth - % Get the available space for the double columns -- the normal - % (undoubled) page height minus any material left over from the - % previous page. - \dimen@ = \vsize - \divide\dimen@ by 2 - \advance\dimen@ by -\ht\partialpage - % - % box0 will be the left-hand column, box2 the right. - \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@ - \onepageout\pagesofar - \unvbox255 - \penalty\outputpenalty -} -% -% Re-output the contents of the output page -- any previous material, -% followed by the two boxes we just split, in box0 and box2. -\def\pagesofar{% - \unvbox\partialpage - % - \hsize = \doublecolumnhsize - \wd0=\hsize \wd2=\hsize - \hbox to\pagewidth{\box0\hfil\box2}% -} -% -% All done with double columns. -\def\enddoublecolumns{% - \output = {% - % Split the last of the double-column material. Leave it on the - % current page, no automatic page break. - \balancecolumns - % - % If we end up splitting too much material for the current page, - % though, there will be another page break right after this \output - % invocation ends. Having called \balancecolumns once, we do not - % want to call it again. Therefore, reset \output to its normal - % definition right away. (We hope \balancecolumns will never be - % called on to balance too much material, but if it is, this makes - % the output somewhat more palatable.) - \global\output = {\onepageout{\pagecontents\PAGE}}% - }% - \eject - \endgroup % started in \begindoublecolumns - % - % \pagegoal was set to the doubled \vsize above, since we restarted - % the current page. We're now back to normal single-column - % typesetting, so reset \pagegoal to the normal \vsize (after the - % \endgroup where \vsize got restored). - \pagegoal = \vsize -} -% -% Called at the end of the double column material. -\def\balancecolumns{% - \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120. - \dimen@ = \ht0 - \advance\dimen@ by \topskip - \advance\dimen@ by-\baselineskip - \divide\dimen@ by 2 % target to split to - %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}% - \splittopskip = \topskip - % Loop until we get a decent breakpoint. - {% - \vbadness = 10000 - \loop - \global\setbox3 = \copy0 - \global\setbox1 = \vsplit3 to \dimen@ - \ifdim\ht3>\dimen@ - \global\advance\dimen@ by 1pt - \repeat - }% - %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}% - \setbox0=\vbox to\dimen@{\unvbox1}% - \setbox2=\vbox to\dimen@{\unvbox3}% - % - \pagesofar -} -\catcode`\@ = \other - - -\message{sectioning,} -% Chapters, sections, etc. - -\newcount\chapno -\newcount\secno \secno=0 -\newcount\subsecno \subsecno=0 -\newcount\subsubsecno \subsubsecno=0 - -% This counter is funny since it counts through charcodes of letters A, B, ... -\newcount\appendixno \appendixno = `\@ -% \def\appendixletter{\char\the\appendixno} -% We do the following for the sake of pdftex, which needs the actual -% letter in the expansion, not just typeset. -\def\appendixletter{% - \ifnum\appendixno=`A A% - \else\ifnum\appendixno=`B B% - \else\ifnum\appendixno=`C C% - \else\ifnum\appendixno=`D D% - \else\ifnum\appendixno=`E E% - \else\ifnum\appendixno=`F F% - \else\ifnum\appendixno=`G G% - \else\ifnum\appendixno=`H H% - \else\ifnum\appendixno=`I I% - \else\ifnum\appendixno=`J J% - \else\ifnum\appendixno=`K K% - \else\ifnum\appendixno=`L L% - \else\ifnum\appendixno=`M M% - \else\ifnum\appendixno=`N N% - \else\ifnum\appendixno=`O O% - \else\ifnum\appendixno=`P P% - \else\ifnum\appendixno=`Q Q% - \else\ifnum\appendixno=`R R% - \else\ifnum\appendixno=`S S% - \else\ifnum\appendixno=`T T% - \else\ifnum\appendixno=`U U% - \else\ifnum\appendixno=`V V% - \else\ifnum\appendixno=`W W% - \else\ifnum\appendixno=`X X% - \else\ifnum\appendixno=`Y Y% - \else\ifnum\appendixno=`Z Z% - % The \the is necessary, despite appearances, because \appendixletter is - % expanded while writing the .toc file. \char\appendixno is not - % expandable, thus it is written literally, thus all appendixes come out - % with the same letter (or @) in the toc without it. - \else\char\the\appendixno - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi - \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} - -% Each @chapter defines this as the name of the chapter. -% page headings and footings can use it. @section does likewise. -\def\thischapter{} -\def\thissection{} - -\newcount\absseclevel % used to calculate proper heading level -\newcount\secbase\secbase=0 % @raise/lowersections modify this count - -% @raisesections: treat @section as chapter, @subsection as section, etc. -\def\raisesections{\global\advance\secbase by -1} -\let\up=\raisesections % original BFox name - -% @lowersections: treat @chapter as section, @section as subsection, etc. -\def\lowersections{\global\advance\secbase by 1} -\let\down=\lowersections % original BFox name - -% Choose a numbered-heading macro -% #1 is heading level if unmodified by @raisesections or @lowersections -% #2 is text for heading -\def\numhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 -\ifcase\absseclevel - \chapterzzz{#2} -\or - \seczzz{#2} -\or - \numberedsubseczzz{#2} -\or - \numberedsubsubseczzz{#2} -\else - \ifnum \absseclevel<0 - \chapterzzz{#2} - \else - \numberedsubsubseczzz{#2} - \fi -\fi -} - -% like \numhead, but chooses appendix heading levels -\def\apphead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 -\ifcase\absseclevel - \appendixzzz{#2} -\or - \appendixsectionzzz{#2} -\or - \appendixsubseczzz{#2} -\or - \appendixsubsubseczzz{#2} -\else - \ifnum \absseclevel<0 - \appendixzzz{#2} - \else - \appendixsubsubseczzz{#2} - \fi -\fi -} - -% like \numhead, but chooses numberless heading levels -\def\unnmhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1 -\ifcase\absseclevel - \unnumberedzzz{#2} -\or - \unnumberedseczzz{#2} -\or - \unnumberedsubseczzz{#2} -\or - \unnumberedsubsubseczzz{#2} -\else - \ifnum \absseclevel<0 - \unnumberedzzz{#2} - \else - \unnumberedsubsubseczzz{#2} - \fi -\fi -} - -% @chapter, @appendix, @unnumbered. -\def\thischaptername{No Chapter Title} -\outer\def\chapter{\parsearg\chapteryyy} -\def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz -\def\chapterzzz #1{% -\secno=0 \subsecno=0 \subsubsecno=0 -\global\advance \chapno by 1 \message{\putwordChapter\space \the\chapno}% -\chapmacro {#1}{\the\chapno}% -\gdef\thissection{#1}% -\gdef\thischaptername{#1}% -% We don't substitute the actual chapter name into \thischapter -% because we don't want its macros evaluated now. -\xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash chapentry{\the\toks0}% - {\the\chapno}}}% -\temp -\donoderef -\global\let\section = \numberedsec -\global\let\subsection = \numberedsubsec -\global\let\subsubsection = \numberedsubsubsec -} - -\outer\def\appendix{\parsearg\appendixyyy} -\def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz -\def\appendixzzz #1{% -\secno=0 \subsecno=0 \subsubsecno=0 -\global\advance \appendixno by 1 -\message{\putwordAppendix\space \appendixletter}% -\chapmacro {#1}{\putwordAppendix{} \appendixletter}% -\gdef\thissection{#1}% -\gdef\thischaptername{#1}% -\xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash appendixentry{\the\toks0}% - {\appendixletter}}}% -\temp -\appendixnoderef -\global\let\section = \appendixsec -\global\let\subsection = \appendixsubsec -\global\let\subsubsection = \appendixsubsubsec -} - -% @centerchap is like @unnumbered, but the heading is centered. -\outer\def\centerchap{\parsearg\centerchapyyy} -\def\centerchapyyy #1{{\let\unnumbchapmacro=\centerchapmacro \unnumberedyyy{#1}}} - -% @top is like @unnumbered. -\outer\def\top{\parsearg\unnumberedyyy} - -\outer\def\unnumbered{\parsearg\unnumberedyyy} -\def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz -\def\unnumberedzzz #1{% -\secno=0 \subsecno=0 \subsubsecno=0 -% -% This used to be simply \message{#1}, but TeX fully expands the -% argument to \message. Therefore, if #1 contained @-commands, TeX -% expanded them. For example, in `@unnumbered The @cite{Book}', TeX -% expanded @cite (which turns out to cause errors because \cite is meant -% to be executed, not expanded). -% -% Anyway, we don't want the fully-expanded definition of @cite to appear -% as a result of the \message, we just want `@cite' itself. We use -% \the to achieve this: TeX expands \the only once, -% simply yielding the contents of . (We also do this for -% the toc entries.) -\toks0 = {#1}\message{(\the\toks0)}% -% -\unnumbchapmacro {#1}% -\gdef\thischapter{#1}\gdef\thissection{#1}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash unnumbchapentry{\the\toks0}}}% -\temp -\unnumbnoderef -\global\let\section = \unnumberedsec -\global\let\subsection = \unnumberedsubsec -\global\let\subsubsection = \unnumberedsubsubsec -} - -% Sections. -\outer\def\numberedsec{\parsearg\secyyy} -\def\secyyy #1{\numhead1{#1}} % normally calls seczzz -\def\seczzz #1{% -\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % -\gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}% - {\the\chapno}{\the\secno}}}% -\temp -\donoderef -\nobreak -} - -\outer\def\appendixsection{\parsearg\appendixsecyyy} -\outer\def\appendixsec{\parsearg\appendixsecyyy} -\def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz -\def\appendixsectionzzz #1{% -\subsecno=0 \subsubsecno=0 \global\advance \secno by 1 % -\gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash secentry{\the\toks0}% - {\appendixletter}{\the\secno}}}% -\temp -\appendixnoderef -\nobreak -} - -\outer\def\unnumberedsec{\parsearg\unnumberedsecyyy} -\def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz -\def\unnumberedseczzz #1{% -\plainsecheading {#1}\gdef\thissection{#1}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsecentry% - {\the\toks0}{\the\chapno}}}% -\temp -\unnumbnoderef -\nobreak -} - -% Subsections. -\outer\def\numberedsubsec{\parsearg\numberedsubsecyyy} -\def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz -\def\numberedsubseczzz #1{% -\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % -\subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}% - {\the\chapno}{\the\secno}{\the\subsecno}}}% -\temp -\donoderef -\nobreak -} - -\outer\def\appendixsubsec{\parsearg\appendixsubsecyyy} -\def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz -\def\appendixsubseczzz #1{% -\gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 % -\subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash subsecentry{\the\toks0}% - {\appendixletter}{\the\secno}{\the\subsecno}}}% -\temp -\appendixnoderef -\nobreak -} - -\outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy} -\def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz -\def\unnumberedsubseczzz #1{% -\plainsubsecheading {#1}\gdef\thissection{#1}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsecentry% - {\the\toks0}{\the\chapno}{\the\secno}}}% -\temp -\unnumbnoderef -\nobreak -} - -% Subsubsections. -\outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy} -\def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz -\def\numberedsubsubseczzz #1{% -\gdef\thissection{#1}\global\advance \subsubsecno by 1 % -\subsubsecheading {#1} - {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}% - {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}% -\temp -\donoderef -\nobreak -} - -\outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy} -\def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz -\def\appendixsubsubseczzz #1{% -\gdef\thissection{#1}\global\advance \subsubsecno by 1 % -\subsubsecheading {#1} - {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash subsubsecentry{\the\toks0}% - {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}}}% -\temp -\appendixnoderef -\nobreak -} - -\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy} -\def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz -\def\unnumberedsubsubseczzz #1{% -\plainsubsubsecheading {#1}\gdef\thissection{#1}% -\toks0 = {#1}% -\edef\temp{\noexpand\writetocentry{\realbackslash unnumbsubsubsecentry% - {\the\toks0}{\the\chapno}{\the\secno}{\the\subsecno}}}% -\temp -\unnumbnoderef -\nobreak -} - -% These are variants which are not "outer", so they can appear in @ifinfo. -% Actually, they should now be obsolete; ordinary section commands should work. -\def\infotop{\parsearg\unnumberedzzz} -\def\infounnumbered{\parsearg\unnumberedzzz} -\def\infounnumberedsec{\parsearg\unnumberedseczzz} -\def\infounnumberedsubsec{\parsearg\unnumberedsubseczzz} -\def\infounnumberedsubsubsec{\parsearg\unnumberedsubsubseczzz} - -\def\infoappendix{\parsearg\appendixzzz} -\def\infoappendixsec{\parsearg\appendixseczzz} -\def\infoappendixsubsec{\parsearg\appendixsubseczzz} -\def\infoappendixsubsubsec{\parsearg\appendixsubsubseczzz} - -\def\infochapter{\parsearg\chapterzzz} -\def\infosection{\parsearg\sectionzzz} -\def\infosubsection{\parsearg\subsectionzzz} -\def\infosubsubsection{\parsearg\subsubsectionzzz} - -% These macros control what the section commands do, according -% to what kind of chapter we are in (ordinary, appendix, or unnumbered). -% Define them by default for a numbered chapter. -\global\let\section = \numberedsec -\global\let\subsection = \numberedsubsec -\global\let\subsubsection = \numberedsubsubsec - -% Define @majorheading, @heading and @subheading - -% NOTE on use of \vbox for chapter headings, section headings, and such: -% 1) We use \vbox rather than the earlier \line to permit -% overlong headings to fold. -% 2) \hyphenpenalty is set to 10000 because hyphenation in a -% heading is obnoxious; this forbids it. -% 3) Likewise, headings look best if no \parindent is used, and -% if justification is not attempted. Hence \raggedright. - - -\def\majorheading{\parsearg\majorheadingzzz} -\def\majorheadingzzz #1{% -{\advance\chapheadingskip by 10pt \chapbreak }% -{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}\bigskip \par\penalty 200} - -\def\chapheading{\parsearg\chapheadingzzz} -\def\chapheadingzzz #1{\chapbreak % -{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}\bigskip \par\penalty 200} - -% @heading, @subheading, @subsubheading. -\def\heading{\parsearg\plainsecheading} -\def\subheading{\parsearg\plainsubsecheading} -\def\subsubheading{\parsearg\plainsubsubsecheading} - -% These macros generate a chapter, section, etc. heading only -% (including whitespace, linebreaking, etc. around it), -% given all the information in convenient, parsed form. - -%%% Args are the skip and penalty (usually negative) -\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi} - -\def\setchapterstyle #1 {\csname CHAPF#1\endcsname} - -%%% Define plain chapter starts, and page on/off switching for it -% Parameter controlling skip before chapter headings (if needed) - -\newskip\chapheadingskip - -\def\chapbreak{\dobreak \chapheadingskip {-4000}} -\def\chappager{\par\vfill\supereject} -\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi} - -\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname} - -\def\CHAPPAGoff{% -\global\let\contentsalignmacro = \chappager -\global\let\pchapsepmacro=\chapbreak -\global\let\pagealignmacro=\chappager} - -\def\CHAPPAGon{% -\global\let\contentsalignmacro = \chappager -\global\let\pchapsepmacro=\chappager -\global\let\pagealignmacro=\chappager -\global\def\HEADINGSon{\HEADINGSsingle}} - -\def\CHAPPAGodd{ -\global\let\contentsalignmacro = \chapoddpage -\global\let\pchapsepmacro=\chapoddpage -\global\let\pagealignmacro=\chapoddpage -\global\def\HEADINGSon{\HEADINGSdouble}} - -\CHAPPAGon - -\def\CHAPFplain{ -\global\let\chapmacro=\chfplain -\global\let\unnumbchapmacro=\unnchfplain -\global\let\centerchapmacro=\centerchfplain} - -% Plain chapter opening. -% #1 is the text, #2 the chapter number or empty if unnumbered. -\def\chfplain#1#2{% - \pchapsepmacro - {% - \chapfonts \rm - \def\chapnum{#2}% - \setbox0 = \hbox{#2\ifx\chapnum\empty\else\enspace\fi}% - \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright - \hangindent = \wd0 \centerparametersmaybe - \unhbox0 #1\par}% - }% - \nobreak\bigskip % no page break after a chapter title - \nobreak -} - -% Plain opening for unnumbered. -\def\unnchfplain#1{\chfplain{#1}{}} - -% @centerchap -- centered and unnumbered. -\let\centerparametersmaybe = \relax -\def\centerchfplain#1{{% - \def\centerparametersmaybe{% - \advance\rightskip by 3\rightskip - \leftskip = \rightskip - \parfillskip = 0pt - }% - \chfplain{#1}{}% -}} - -\CHAPFplain % The default - -\def\unnchfopen #1{% -\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt\raggedright - \rm #1\hfill}}\bigskip \par\nobreak -} - -\def\chfopen #1#2{\chapoddpage {\chapfonts -\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% -\par\penalty 5000 % -} - -\def\centerchfopen #1{% -\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 - \parindent=0pt - \hfill {\rm #1}\hfill}}\bigskip \par\nobreak -} - -\def\CHAPFopen{ -\global\let\chapmacro=\chfopen -\global\let\unnumbchapmacro=\unnchfopen -\global\let\centerchapmacro=\centerchfopen} - - -% Section titles. -\newskip\secheadingskip -\def\secheadingbreak{\dobreak \secheadingskip {-1000}} -\def\secheading#1#2#3{\sectionheading{sec}{#2.#3}{#1}} -\def\plainsecheading#1{\sectionheading{sec}{}{#1}} - -% Subsection titles. -\newskip \subsecheadingskip -\def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}} -\def\subsecheading#1#2#3#4{\sectionheading{subsec}{#2.#3.#4}{#1}} -\def\plainsubsecheading#1{\sectionheading{subsec}{}{#1}} - -% Subsubsection titles. -\let\subsubsecheadingskip = \subsecheadingskip -\let\subsubsecheadingbreak = \subsecheadingbreak -\def\subsubsecheading#1#2#3#4#5{\sectionheading{subsubsec}{#2.#3.#4.#5}{#1}} -\def\plainsubsubsecheading#1{\sectionheading{subsubsec}{}{#1}} - - -% Print any size section title. -% -% #1 is the section type (sec/subsec/subsubsec), #2 is the section -% number (maybe empty), #3 the text. -\def\sectionheading#1#2#3{% - {% - \expandafter\advance\csname #1headingskip\endcsname by \parskip - \csname #1headingbreak\endcsname - }% - {% - % Switch to the right set of fonts. - \csname #1fonts\endcsname \rm - % - % Only insert the separating space if we have a section number. - \def\secnum{#2}% - \setbox0 = \hbox{#2\ifx\secnum\empty\else\enspace\fi}% - % - \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright - \hangindent = \wd0 % zero if no section number - \unhbox0 #3}% - }% - \ifdim\parskip<10pt \nobreak\kern10pt\nobreak\kern-\parskip\fi \nobreak -} - - -\message{toc,} -% Table of contents. -\newwrite\tocfile - -% Write an entry to the toc file, opening it if necessary. -% Called from @chapter, etc. We supply {\folio} at the end of the -% argument, which will end up as the last argument to the \...entry macro. -% -% We open the .toc file here instead of at @setfilename or any other -% fixed time so that @contents can be put in the document anywhere. -% -\newif\iftocfileopened -\def\writetocentry#1{% - \iftocfileopened\else - \immediate\openout\tocfile = \jobname.toc - \global\tocfileopenedtrue - \fi - \iflinks \write\tocfile{#1{\folio}}\fi - % - % Tell \shipout to create a page destination if we're doing pdf, which - % will be the target of the links in the table of contents. We can't - % just do it on every page because the title pages are numbered 1 and - % 2 (the page numbers aren't printed), and so are the first two pages - % of the document. Thus, we'd have two destinations named `1', and - % two named `2'. - \ifpdf \pdfmakepagedesttrue \fi -} - -\newskip\contentsrightmargin \contentsrightmargin=1in -\newcount\savepageno -\newcount\lastnegativepageno \lastnegativepageno = -1 - -% Finish up the main text and prepare to read what we've written -% to \tocfile. -% -\def\startcontents#1{% - % If @setchapternewpage on, and @headings double, the contents should - % start on an odd page, unlike chapters. Thus, we maintain - % \contentsalignmacro in parallel with \pagealignmacro. - % From: Torbjorn Granlund - \contentsalignmacro - \immediate\closeout\tocfile - % - % Don't need to put `Contents' or `Short Contents' in the headline. - % It is abundantly clear what they are. - \unnumbchapmacro{#1}\def\thischapter{}% - \savepageno = \pageno - \begingroup % Set up to handle contents files properly. - \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11 - % We can't do this, because then an actual ^ in a section - % title fails, e.g., @chapter ^ -- exponentiation. --karl, 9jul97. - %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi - \raggedbottom % Worry more about breakpoints than the bottom. - \advance\hsize by -\contentsrightmargin % Don't use the full line length. - % - % Roman numerals for page numbers. - \ifnum \pageno>0 \pageno = \lastnegativepageno \fi -} - - -% Normal (long) toc. -\def\contents{% - \startcontents{\putwordTOC}% - \openin 1 \jobname.toc - \ifeof 1 \else - \closein 1 - \input \jobname.toc - \fi - \vfill \eject - \contentsalignmacro % in case @setchapternewpage odd is in effect - \pdfmakeoutlines - \endgroup - \lastnegativepageno = \pageno - \pageno = \savepageno -} - -% And just the chapters. -\def\summarycontents{% - \startcontents{\putwordShortTOC}% - % - \let\chapentry = \shortchapentry - \let\appendixentry = \shortappendixentry - \let\unnumbchapentry = \shortunnumberedentry - % We want a true roman here for the page numbers. - \secfonts - \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl - \rm - \hyphenpenalty = 10000 - \advance\baselineskip by 1pt % Open it up a little. - \def\secentry ##1##2##3##4{} - \def\unnumbsecentry ##1##2##3{} - \def\subsecentry ##1##2##3##4##5{} - \def\unnumbsubsecentry ##1##2##3##4{} - \def\subsubsecentry ##1##2##3##4##5##6{} - \def\unnumbsubsubsecentry ##1##2##3##4##5{} - \openin 1 \jobname.toc - \ifeof 1 \else - \closein 1 - \input \jobname.toc - \fi - \vfill \eject - \contentsalignmacro % in case @setchapternewpage odd is in effect - \endgroup - \lastnegativepageno = \pageno - \pageno = \savepageno -} -\let\shortcontents = \summarycontents - -\ifpdf - \pdfcatalog{/PageMode /UseOutlines}% -\fi - -% These macros generate individual entries in the table of contents. -% The first argument is the chapter or section name. -% The last argument is the page number. -% The arguments in between are the chapter number, section number, ... - -% Chapters, in the main contents. -\def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}} -% -% Chapters, in the short toc. -% See comments in \dochapentry re vbox and related settings. -\def\shortchapentry#1#2#3{% - \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#3\egroup}% -} - -% Appendices, in the main contents. -\def\appendixentry#1#2#3{\dochapentry{\putwordAppendix{} #2\labelspace#1}{#3}} -% -% Appendices, in the short toc. -\let\shortappendixentry = \shortchapentry - -% Typeset the label for a chapter or appendix for the short contents. -% The arg is, e.g., `Appendix A' for an appendix, or `3' for a chapter. -% We could simplify the code here by writing out an \appendixentry -% command in the toc file for appendices, instead of using \chapentry -% for both, but it doesn't seem worth it. -% -\newdimen\shortappendixwidth -% -\def\shortchaplabel#1{% - % This space should be enough, since a single number is .5em, and the - % widest letter (M) is 1em, at least in the Computer Modern fonts. - % But use \hss just in case. - % (This space doesn't include the extra space that gets added after - % the label; that gets put in by \shortchapentry above.) - \dimen0 = 1em - \hbox to \dimen0{#1\hss}% -} - -% Unnumbered chapters. -\def\unnumbchapentry#1#2{\dochapentry{#1}{#2}} -\def\shortunnumberedentry#1#2{\tocentry{#1}{\doshortpageno\bgroup#2\egroup}} - -% Sections. -\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}} -\def\unnumbsecentry#1#2#3{\dosecentry{#1}{#3}} - -% Subsections. -\def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}} -\def\unnumbsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}} - -% And subsubsections. -\def\subsubsecentry#1#2#3#4#5#6{% - \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}} -\def\unnumbsubsubsecentry#1#2#3#4#5{\dosubsubsecentry{#1}{#5}} - -% This parameter controls the indentation of the various levels. -\newdimen\tocindent \tocindent = 3pc - -% Now for the actual typesetting. In all these, #1 is the text and #2 is the -% page number. -% -% If the toc has to be broken over pages, we want it to be at chapters -% if at all possible; hence the \penalty. -\def\dochapentry#1#2{% - \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip - \begingroup - \chapentryfonts - \tocentry{#1}{\dopageno\bgroup#2\egroup}% - \endgroup - \nobreak\vskip .25\baselineskip plus.1\baselineskip -} - -\def\dosecentry#1#2{\begingroup - \secentryfonts \leftskip=\tocindent - \tocentry{#1}{\dopageno\bgroup#2\egroup}% -\endgroup} - -\def\dosubsecentry#1#2{\begingroup - \subsecentryfonts \leftskip=2\tocindent - \tocentry{#1}{\dopageno\bgroup#2\egroup}% -\endgroup} - -\def\dosubsubsecentry#1#2{\begingroup - \subsubsecentryfonts \leftskip=3\tocindent - \tocentry{#1}{\dopageno\bgroup#2\egroup}% -\endgroup} - -% Final typesetting of a toc entry; we use the same \entry macro as for -% the index entries, but we want to suppress hyphenation here. (We -% can't do that in the \entry macro, since index entries might consist -% of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.) -\def\tocentry#1#2{\begingroup - \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks - % Do not use \turnoffactive in these arguments. Since the toc is - % typeset in cmr, characters such as _ would come out wrong; we - % have to do the usual translation tricks. - \entry{#1}{#2}% -\endgroup} - -% Space between chapter (or whatever) number and the title. -\def\labelspace{\hskip1em \relax} - -\def\dopageno#1{{\rm #1}} -\def\doshortpageno#1{{\rm #1}} - -\def\chapentryfonts{\secfonts \rm} -\def\secentryfonts{\textfonts} -\let\subsecentryfonts = \textfonts -\let\subsubsecentryfonts = \textfonts - - -\message{environments,} -% @foo ... @end foo. - -% @point{}, @result{}, @expansion{}, @print{}, @equiv{}. -% -% Since these characters are used in examples, it should be an even number of -% \tt widths. Each \tt character is 1en, so two makes it 1em. -% -\def\point{$\star$} -\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} -\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}} -\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} -\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}} - -% The @error{} command. -% Adapted from the TeXbook's \boxit. -% -\newbox\errorbox -% -{\tentt \global\dimen0 = 3em}% Width of the box. -\dimen2 = .55pt % Thickness of rules -% The text. (`r' is open on the right, `e' somewhat less so on the left.) -\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt} -% -\global\setbox\errorbox=\hbox to \dimen0{\hfil - \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. - \advance\hsize by -2\dimen2 % Rules. - \vbox{ - \hrule height\dimen2 - \hbox{\vrule width\dimen2 \kern3pt % Space to left of text. - \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below. - \kern3pt\vrule width\dimen2}% Space to right. - \hrule height\dimen2} - \hfil} -% -\def\error{\leavevmode\lower.7ex\copy\errorbox} - -% @tex ... @end tex escapes into raw Tex temporarily. -% One exception: @ is still an escape character, so that @end tex works. -% But \@ or @@ will get a plain tex @ character. - -\def\tex{\begingroup - \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 - \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 - \catcode `\^=7 \catcode `\_=8 \catcode `\~=13 \let~=\tie - \catcode `\%=14 - \catcode 43=12 % plus - \catcode`\"=12 - \catcode`\==12 - \catcode`\|=12 - \catcode`\<=12 - \catcode`\>=12 - \escapechar=`\\ - % - \let\b=\ptexb - \let\bullet=\ptexbullet - \let\c=\ptexc - \let\,=\ptexcomma - \let\.=\ptexdot - \let\dots=\ptexdots - \let\equiv=\ptexequiv - \let\!=\ptexexclam - \let\i=\ptexi - \let\{=\ptexlbrace - \let\+=\tabalign - \let\}=\ptexrbrace - \let\*=\ptexstar - \let\t=\ptext - % - \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}% - \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}% - \def\@{@}% -\let\Etex=\endgroup} - -% Define @lisp ... @end lisp. -% @lisp does a \begingroup so it can rebind things, -% including the definition of @end lisp (which normally is erroneous). - -% Amount to narrow the margins by for @lisp. -\newskip\lispnarrowing \lispnarrowing=0.4in - -% This is the definition that ^^M gets inside @lisp, @example, and other -% such environments. \null is better than a space, since it doesn't -% have any width. -\def\lisppar{\null\endgraf} - -% Make each space character in the input produce a normal interword -% space in the output. Don't allow a line break at this space, as this -% is used only in environments like @example, where each line of input -% should produce a line of output anyway. -% -{\obeyspaces % -\gdef\sepspaces{\obeyspaces\let =\tie}} - -% Define \obeyedspace to be our active space, whatever it is. This is -% for use in \parsearg. -{\sepspaces% -\global\let\obeyedspace= } - -% This space is always present above and below environments. -\newskip\envskipamount \envskipamount = 0pt - -% Make spacing and below environment symmetrical. We use \parskip here -% to help in doing that, since in @example-like environments \parskip -% is reset to zero; thus the \afterenvbreak inserts no space -- but the -% start of the next paragraph will insert \parskip -% -\def\aboveenvbreak{{% - \ifnum\lastpenalty < 10000 - \advance\envskipamount by \parskip - \endgraf - \ifdim\lastskip<\envskipamount - \removelastskip - \penalty-50 - \vskip\envskipamount - \fi - \fi -}} - -\let\afterenvbreak = \aboveenvbreak - -% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins. -\let\nonarrowing=\relax - -% @cartouche ... @end cartouche: draw rectangle w/rounded corners around -% environment contents. -\font\circle=lcircle10 -\newdimen\circthick -\newdimen\cartouter\newdimen\cartinner -\newskip\normbskip\newskip\normpskip\newskip\normlskip -\circthick=\fontdimen8\circle -% -\def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth -\def\ctr{{\hskip 6pt\circle\char'010}} -\def\cbl{{\circle\char'012\hskip -6pt}} -\def\cbr{{\hskip 6pt\circle\char'011}} -\def\carttop{\hbox to \cartouter{\hskip\lskip - \ctl\leaders\hrule height\circthick\hfil\ctr - \hskip\rskip}} -\def\cartbot{\hbox to \cartouter{\hskip\lskip - \cbl\leaders\hrule height\circthick\hfil\cbr - \hskip\rskip}} -% -\newskip\lskip\newskip\rskip - -\long\def\cartouche{% -\begingroup - \lskip=\leftskip \rskip=\rightskip - \leftskip=0pt\rightskip=0pt %we want these *outside*. - \cartinner=\hsize \advance\cartinner by-\lskip - \advance\cartinner by-\rskip - \cartouter=\hsize - \advance\cartouter by 18.4pt % allow for 3pt kerns on either -% side, and for 6pt waste from -% each corner char, and rule thickness - \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip - % Flag to tell @lisp, etc., not to narrow margin. - \let\nonarrowing=\comment - \vbox\bgroup - \baselineskip=0pt\parskip=0pt\lineskip=0pt - \carttop - \hbox\bgroup - \hskip\lskip - \vrule\kern3pt - \vbox\bgroup - \hsize=\cartinner - \kern3pt - \begingroup - \baselineskip=\normbskip - \lineskip=\normlskip - \parskip=\normpskip - \vskip -\parskip -\def\Ecartouche{% - \endgroup - \kern3pt - \egroup - \kern3pt\vrule - \hskip\rskip - \egroup - \cartbot - \egroup -\endgroup -}} - - -% This macro is called at the beginning of all the @example variants, -% inside a group. -\def\nonfillstart{% - \aboveenvbreak - \inENV % This group ends at the end of the body - \hfuzz = 12pt % Don't be fussy - \sepspaces % Make spaces be word-separators rather than space tokens. - \singlespace - \let\par = \lisppar % don't ignore blank lines - \obeylines % each line of input is a line of output - \parskip = 0pt - \parindent = 0pt - \emergencystretch = 0pt % don't try to avoid overfull boxes - % @cartouche defines \nonarrowing to inhibit narrowing - % at next level down. - \ifx\nonarrowing\relax - \advance \leftskip by \lispnarrowing - \exdentamount=\lispnarrowing - \let\exdent=\nofillexdent - \let\nonarrowing=\relax - \fi -} - -% Define the \E... control sequence only if we are inside the particular -% environment, so the error checking in \end will work. -% -% To end an @example-like environment, we first end the paragraph (via -% \afterenvbreak's vertical glue), and then the group. That way we keep -% the zero \parskip that the environments set -- \parskip glue will be -% inserted at the beginning of the next paragraph in the document, after -% the environment. -% -\def\nonfillfinish{\afterenvbreak\endgroup} - -% @lisp: indented, narrowed, typewriter font. -\def\lisp{\begingroup - \nonfillstart - \let\Elisp = \nonfillfinish - \tt - \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. - \gobble % eat return -} - -% @example: Same as @lisp. -\def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp} - -% @small... is usually equivalent to the non-small (@smallbook -% redefines). We must call \example (or whatever) last in the -% definition, since it reads the return following the @example (or -% whatever) command. -% -% This actually allows (for example) @end display inside an -% @smalldisplay. Too bad, but makeinfo will catch the error anyway. -% -\def\smalldisplay{\begingroup\def\Esmalldisplay{\nonfillfinish\endgroup}\display} -\def\smallexample{\begingroup\def\Esmallexample{\nonfillfinish\endgroup}\lisp} -\def\smallformat{\begingroup\def\Esmallformat{\nonfillfinish\endgroup}\format} -\def\smalllisp{\begingroup\def\Esmalllisp{\nonfillfinish\endgroup}\lisp} - -% Real @smallexample and @smalllisp (when @smallbook): use smaller fonts. -% Originally contributed by Pavel@xerox. -\def\smalllispx{\begingroup - \def\Esmalllisp{\nonfillfinish\endgroup}% - \def\Esmallexample{\nonfillfinish\endgroup}% - \smallexamplefonts - \lisp -} - -% @display: same as @lisp except keep current font. -% -\def\display{\begingroup - \nonfillstart - \let\Edisplay = \nonfillfinish - \gobble -} -% -% @smalldisplay (when @smallbook): @display plus smaller fonts. -% -\def\smalldisplayx{\begingroup - \def\Esmalldisplay{\nonfillfinish\endgroup}% - \smallexamplefonts \rm - \display -} - -% @format: same as @display except don't narrow margins. -% -\def\format{\begingroup - \let\nonarrowing = t - \nonfillstart - \let\Eformat = \nonfillfinish - \gobble -} -% -% @smallformat (when @smallbook): @format plus smaller fonts. -% -\def\smallformatx{\begingroup - \def\Esmallformat{\nonfillfinish\endgroup}% - \smallexamplefonts \rm - \format -} - -% @flushleft (same as @format). -% -\def\flushleft{\begingroup \def\Eflushleft{\nonfillfinish\endgroup}\format} - -% @flushright. -% -\def\flushright{\begingroup - \let\nonarrowing = t - \nonfillstart - \let\Eflushright = \nonfillfinish - \advance\leftskip by 0pt plus 1fill - \gobble -} - - -% @quotation does normal linebreaking (hence we can't use \nonfillstart) -% and narrows the margins. -% -\def\quotation{% - \begingroup\inENV %This group ends at the end of the @quotation body - {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip - \singlespace - \parindent=0pt - % We have retained a nonzero parskip for the environment, since we're - % doing normal filling. So to avoid extra space below the environment... - \def\Equotation{\parskip = 0pt \nonfillfinish}% - % - % @cartouche defines \nonarrowing to inhibit narrowing at next level down. - \ifx\nonarrowing\relax - \advance\leftskip by \lispnarrowing - \advance\rightskip by \lispnarrowing - \exdentamount = \lispnarrowing - \let\nonarrowing = \relax - \fi -} - - -% LaTeX-like @verbatim...@end verbatim and @verb{...} -% If we want to allow any as delimiter, -% we need the curly braces so that makeinfo sees the @verb command, eg: -% `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org -% -% [Knuth]: Donald Ervin Knuth, 1996. The TeXbook. -% -% [Knuth] p. 344; only we need to do '@' too -\def\dospecials{% - \do\ \do\\\do\@\do\{\do\}\do\$\do\&% - \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~} -% -% [Knuth] p. 380 -\def\uncatcodespecials{% - \def\do##1{\catcode`##1=12}\dospecials} -% -% [Knuth] pp. 380,381,391 -% Disable Spanish ligatures ?` and !` of \tt font -\begingroup - \catcode`\`=\active\gdef`{\relax\lq} -\endgroup -% -% Setup for the @verb command. -% -% Eight spaces for a tab -\begingroup - \catcode`\^^I=\active - \gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }} -\endgroup -% -\def\setupverb{% - \tt % easiest (and conventionally used) font for verbatim - \def\par{\leavevmode\endgraf}% - \catcode`\`=\active - \tabeightspaces - % Respect line breaks, - % print special symbols as themselves, and - % make each space count - % must do in this order: - \obeylines \uncatcodespecials \sepspaces -} - -% Setup for the @verbatim environment -% -% Real tab expansion -\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount -% -\def\starttabbox{\setbox0=\hbox\bgroup} -\begingroup - \catcode`\^^I=\active - \gdef\tabexpand{% - \catcode`\^^I=\active - \def^^I{\leavevmode\egroup - \dimen0=\wd0 % the width so far, or since the previous tab - \divide\dimen0 by\tabw - \multiply\dimen0 by\tabw % compute previous multiple of \tabw - \advance\dimen0 by\tabw % advance to next multiple of \tabw - \wd0=\dimen0 \box0 \starttabbox - }% - } -\endgroup -\def\setupverbatim{% - % Easiest (and conventionally used) font for verbatim - \tt - \def\par{\leavevmode\egroup\box0\endgraf}% - \catcode`\`=\active - \tabexpand - % Respect line breaks, - % print special symbols as themselves, and - % make each space count - % must do in this order: - \obeylines \uncatcodespecials \sepspaces - \everypar{\starttabbox}% -} - -% Do the @verb magic: verbatim text is quoted by unique -% delimiter characters. Before first delimiter expect a -% right brace, after last delimiter expect closing brace: -% -% \def\doverb'{'#1'}'{#1} -% -% [Knuth] p. 382; only eat outer {} -\begingroup - \catcode`[=1\catcode`]=2\catcode`\{=12\catcode`\}=12 - \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next] -\endgroup -% -\def\verb{\begingroup\setupverb\doverb} -% -% -% Do the @verbatim magic: define the macro \doverbatim so that -% the (first) argument ends when '@end verbatim' is reached, ie: -% -% \def\doverbatim#1@end verbatim{#1} -% -% For Texinfo it's a lot easier than for LaTeX, -% because texinfo's \verbatim doesn't stop at '\end{verbatim}': -% we need not redefine '\', '{' and '}' -% -% Inspired by LaTeX's verbatim command set [latex.ltx] -%% Include LaTeX hack for completeness -- never know -%% \begingroup -%% \catcode`|=0 \catcode`[=1 -%% \catcode`]=2\catcode`\{=12\catcode`\}=12\catcode`\ =\active -%% \catcode`\\=12|gdef|doverbatim#1@end verbatim[ -%% #1|endgroup|def|Everbatim[]|end[verbatim]] -%% |endgroup -\begingroup - \catcode`\ =\active - \gdef\doverbatim#1@end verbatim{#1\end{verbatim}} -\endgroup -% -\def\verbatim{% - \def\Everbatim{\nonfillfinish\endgroup}% - \begingroup - \nonfillstart - \advance\leftskip by -\defbodyindent - \begingroup\setupverbatim\doverbatim -} - -% @verbatiminclude FILE - insert text of file in verbatim environment. -% -% Allow normal characters that we make active in the argument (a file name). -\def\verbatiminclude{% - \begingroup - \catcode`\\=12 - \catcode`~=12 - \catcode`^=12 - \catcode`_=12 - \catcode`|=12 - \catcode`<=12 - \catcode`>=12 - \catcode`+=12 - \parsearg\doverbatiminclude -} -\def\setupverbatiminclude{% - \begingroup - \nonfillstart - \advance\leftskip by -\defbodyindent - \begingroup\setupverbatim -} -% -\def\doverbatiminclude#1{% - % Restore active chars for included file. - \endgroup - \begingroup - \def\thisfile{#1}% - \expandafter\expandafter\setupverbatiminclude\input\thisfile - \endgroup\nonfillfinish\endgroup -} - -% @copying ... @end copying. -% Save the text away for @insertcopying later. -% -\newbox\copyingbox -% -\def\copying{\begingroup - \parindent = 0pt % looks wrong on title page - \def\Ecopying{\egroup\endgroup}% - \global\setbox\copyingbox = \vbox\bgroup -} - -% @insertcopying. -% -\def\insertcopying{\unvcopy\copyingbox} - - -\message{defuns,} -% @defun etc. - -% Allow user to change definition object font (\df) internally -\def\setdeffont #1 {\csname DEF#1\endcsname} - -\newskip\defbodyindent \defbodyindent=.4in -\newskip\defargsindent \defargsindent=50pt -\newskip\deftypemargin \deftypemargin=12pt -\newskip\deflastargmargin \deflastargmargin=18pt - -\newcount\parencount -% define \functionparens, which makes ( and ) and & do special things. -% \functionparens affects the group it is contained in. -\def\activeparens{% -\catcode`\(=\active \catcode`\)=\active \catcode`\&=\active -\catcode`\[=\active \catcode`\]=\active} - -% Make control sequences which act like normal parenthesis chars. -\let\lparen = ( \let\rparen = ) - -{\activeparens % Now, smart parens don't turn on until &foo (see \amprm) - -% Be sure that we always have a definition for `(', etc. For example, -% if the fn name has parens in it, \boldbrax will not be in effect yet, -% so TeX would otherwise complain about undefined control sequence. -\global\let(=\lparen \global\let)=\rparen -\global\let[=\lbrack \global\let]=\rbrack - -\gdef\functionparens{\boldbrax\let&=\amprm\parencount=0 } -\gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} -% This is used to turn on special parens -% but make & act ordinary (given that it's active). -\gdef\boldbraxnoamp{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb\let&=\ampnr} - -% Definitions of (, ) and & used in args for functions. -% This is the definition of ( outside of all parentheses. -\gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested - \global\advance\parencount by 1 -} -% -% This is the definition of ( when already inside a level of parens. -\gdef\opnested{\char`\(\global\advance\parencount by 1 } -% -\gdef\clrm{% Print a paren in roman if it is taking us back to depth of 0. - % also in that case restore the outer-level definition of (. - \ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi - \global\advance \parencount by -1 } -% If we encounter &foo, then turn on ()-hacking afterwards -\gdef\amprm#1 {{\rm\}\let(=\oprm \let)=\clrm\ } -% -\gdef\normalparens{\boldbrax\let&=\ampnr} -} % End of definition inside \activeparens -%% These parens (in \boldbrax) actually are a little bolder than the -%% contained text. This is especially needed for [ and ] -\def\opnr{{\sf\char`\(}\global\advance\parencount by 1 } -\def\clnr{{\sf\char`\)}\global\advance\parencount by -1 } -\let\ampnr = \& -\def\lbrb{{\bf\char`\[}} -\def\rbrb{{\bf\char`\]}} - -% Active &'s sneak into the index arguments, so make sure it's defined. -{ - \catcode`& = 13 - \global\let& = \ampnr -} - -% First, defname, which formats the header line itself. -% #1 should be the function name. -% #2 should be the type of definition, such as "Function". - -\def\defname #1#2{% -% Get the values of \leftskip and \rightskip as they were -% outside the @def... -\dimen2=\leftskip -\advance\dimen2 by -\defbodyindent -\noindent -\setbox0=\hbox{\hskip \deflastargmargin{\rm #2}\hskip \deftypemargin}% -\dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line -\dimen1=\hsize \advance \dimen1 by -\defargsindent %size for continuations -\parshape 2 0in \dimen0 \defargsindent \dimen1 -% Now output arg 2 ("Function" or some such) -% ending at \deftypemargin from the right margin, -% but stuck inside a box of width 0 so it does not interfere with linebreaking -{% Adjust \hsize to exclude the ambient margins, -% so that \rightline will obey them. -\advance \hsize by -\dimen2 -\rlap{\rightline{{\rm #2}\hskip -1.25pc }}}% -% Make all lines underfull and no complaints: -\tolerance=10000 \hbadness=10000 -\advance\leftskip by -\defbodyindent -\exdentamount=\defbodyindent -{\df #1}\enskip % Generate function name -} - -% Actually process the body of a definition -% #1 should be the terminating control sequence, such as \Edefun. -% #2 should be the "another name" control sequence, such as \defunx. -% #3 should be the control sequence that actually processes the header, -% such as \defunheader. - -\def\defparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody -\medbreak % -% Define the end token that this defining construct specifies -% so that it will exit this group. -\def#1{\endgraf\endgroup\medbreak}% -\def#2{\begingroup\obeylines\activeparens\spacesplit#3}% -\parindent=0in -\advance\leftskip by \defbodyindent -\exdentamount=\defbodyindent -\begingroup % -\catcode 61=\active % 61 is `=' -\obeylines\activeparens\spacesplit#3} - -% #1 is the \E... control sequence to end the definition (which we define). -% #2 is the \...x control sequence for consecutive fns (which we define). -% #3 is the control sequence to call to resume processing. -% #4, delimited by the space, is the class name. -% -\def\defmethparsebody#1#2#3#4 {\begingroup\inENV % -\medbreak % -% Define the end token that this defining construct specifies -% so that it will exit this group. -\def#1{\endgraf\endgroup\medbreak}% -\def#2##1 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}}}% -\parindent=0in -\advance\leftskip by \defbodyindent -\exdentamount=\defbodyindent -\begingroup\obeylines\activeparens\spacesplit{#3{#4}}} - -% Used for @deftypemethod and @deftypeivar. -% #1 is the \E... control sequence to end the definition (which we define). -% #2 is the \...x control sequence for consecutive fns (which we define). -% #3 is the control sequence to call to resume processing. -% #4, delimited by a space, is the class name. -% #5 is the method's return type. -% -\def\deftypemethparsebody#1#2#3#4 #5 {\begingroup\inENV - \medbreak - \def#1{\endgraf\endgroup\medbreak}% - \def#2##1 ##2 {\begingroup\obeylines\activeparens\spacesplit{#3{##1}{##2}}}% - \parindent=0in - \advance\leftskip by \defbodyindent - \exdentamount=\defbodyindent - \begingroup\obeylines\activeparens\spacesplit{#3{#4}{#5}}} - -% Used for @deftypeop. The change from \deftypemethparsebody is an -% extra argument at the beginning which is the `category', instead of it -% being the hardwired string `Method' or `Instance Variable'. We have -% to account for this both in the \...x definition and in parsing the -% input at hand. Thus also need a control sequence (passed as #5) for -% the \E... definition to assign the category name to. -% -\def\deftypeopparsebody#1#2#3#4#5 #6 {\begingroup\inENV - \medbreak - \def#1{\endgraf\endgroup\medbreak}% - \def#2##1 ##2 ##3 {% - \def#4{##1}% - \begingroup\obeylines\activeparens\spacesplit{#3{##2}{##3}}}% - \parindent=0in - \advance\leftskip by \defbodyindent - \exdentamount=\defbodyindent - \begingroup\obeylines\activeparens\spacesplit{#3{#5}{#6}}} - -\def\defopparsebody #1#2#3#4#5 {\begingroup\inENV % -\medbreak % -% Define the end token that this defining construct specifies -% so that it will exit this group. -\def#1{\endgraf\endgroup\medbreak}% -\def#2##1 ##2 {\def#4{##1}% -\begingroup\obeylines\activeparens\spacesplit{#3{##2}}}% -\parindent=0in -\advance\leftskip by \defbodyindent -\exdentamount=\defbodyindent -\begingroup\obeylines\activeparens\spacesplit{#3{#5}}} - -% These parsing functions are similar to the preceding ones -% except that they do not make parens into active characters. -% These are used for "variables" since they have no arguments. - -\def\defvarparsebody #1#2#3{\begingroup\inENV% Environment for definitionbody -\medbreak % -% Define the end token that this defining construct specifies -% so that it will exit this group. -\def#1{\endgraf\endgroup\medbreak}% -\def#2{\begingroup\obeylines\spacesplit#3}% -\parindent=0in -\advance\leftskip by \defbodyindent -\exdentamount=\defbodyindent -\begingroup % -\catcode 61=\active % -\obeylines\spacesplit#3} - -% This is used for \def{tp,vr}parsebody. It could probably be used for -% some of the others, too, with some judicious conditionals. -% -\def\parsebodycommon#1#2#3{% - \begingroup\inENV % - \medbreak % - % Define the end token that this defining construct specifies - % so that it will exit this group. - \def#1{\endgraf\endgroup\medbreak}% - \def#2##1 {\begingroup\obeylines\spacesplit{#3{##1}}}% - \parindent=0in - \advance\leftskip by \defbodyindent - \exdentamount=\defbodyindent - \begingroup\obeylines -} - -\def\defvrparsebody#1#2#3#4 {% - \parsebodycommon{#1}{#2}{#3}% - \spacesplit{#3{#4}}% -} - -% This loses on `@deftp {Data Type} {struct termios}' -- it thinks the -% type is just `struct', because we lose the braces in `{struct -% termios}' when \spacesplit reads its undelimited argument. Sigh. -% \let\deftpparsebody=\defvrparsebody -% -% So, to get around this, we put \empty in with the type name. That -% way, TeX won't find exactly `{...}' as an undelimited argument, and -% won't strip off the braces. -% -\def\deftpparsebody #1#2#3#4 {% - \parsebodycommon{#1}{#2}{#3}% - \spacesplit{\parsetpheaderline{#3{#4}}}\empty -} - -% Fine, but then we have to eventually remove the \empty *and* the -% braces (if any). That's what this does. -% -\def\removeemptybraces\empty#1\relax{#1} - -% After \spacesplit has done its work, this is called -- #1 is the final -% thing to call, #2 the type name (which starts with \empty), and #3 -% (which might be empty) the arguments. -% -\def\parsetpheaderline#1#2#3{% - #1{\removeemptybraces#2\relax}{#3}% -}% - -\def\defopvarparsebody #1#2#3#4#5 {\begingroup\inENV % -\medbreak % -% Define the end token that this defining construct specifies -% so that it will exit this group. -\def#1{\endgraf\endgroup\medbreak}% -\def#2##1 ##2 {\def#4{##1}% -\begingroup\obeylines\spacesplit{#3{##2}}}% -\parindent=0in -\advance\leftskip by \defbodyindent -\exdentamount=\defbodyindent -\begingroup\obeylines\spacesplit{#3{#5}}} - -% Split up #2 at the first space token. -% call #1 with two arguments: -% the first is all of #2 before the space token, -% the second is all of #2 after that space token. -% If #2 contains no space token, all of it is passed as the first arg -% and the second is passed as empty. - -{\obeylines -\gdef\spacesplit#1#2^^M{\endgroup\spacesplitfoo{#1}#2 \relax\spacesplitfoo}% -\long\gdef\spacesplitfoo#1#2 #3#4\spacesplitfoo{% -\ifx\relax #3% -#1{#2}{}\else #1{#2}{#3#4}\fi}} - -% So much for the things common to all kinds of definitions. - -% Define @defun. - -% First, define the processing that is wanted for arguments of \defun -% Use this to expand the args and terminate the paragraph they make up - -\def\defunargs#1{\functionparens \sl -% Expand, preventing hyphenation at `-' chars. -% Note that groups don't affect changes in \hyphenchar. -% Set the font temporarily and use \font in case \setfont made \tensl a macro. -{\tensl\hyphenchar\font=0}% -#1% -{\tensl\hyphenchar\font=45}% -\ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi% -\interlinepenalty=10000 -\advance\rightskip by 0pt plus 1fil -\endgraf\nobreak\vskip -\parskip\nobreak -} - -\def\deftypefunargs #1{% -% Expand, preventing hyphenation at `-' chars. -% Note that groups don't affect changes in \hyphenchar. -% Use \boldbraxnoamp, not \functionparens, so that & is not special. -\boldbraxnoamp -\tclose{#1}% avoid \code because of side effects on active chars -\interlinepenalty=10000 -\advance\rightskip by 0pt plus 1fil -\endgraf\nobreak\vskip -\parskip\nobreak -} - -% Do complete processing of one @defun or @defunx line already parsed. - -% @deffn Command forward-char nchars - -\def\deffn{\defmethparsebody\Edeffn\deffnx\deffnheader} - -\def\deffnheader #1#2#3{\doind {fn}{\code{#2}}% -\begingroup\defname {#2}{#1}\defunargs{#3}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} - -% @defun == @deffn Function - -\def\defun{\defparsebody\Edefun\defunx\defunheader} - -\def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index -\begingroup\defname {#1}{\putwordDeffunc}% -\defunargs {#2}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} - -% @deftypefun int foobar (int @var{foo}, float @var{bar}) - -\def\deftypefun{\defparsebody\Edeftypefun\deftypefunx\deftypefunheader} - -% #1 is the data type. #2 is the name and args. -\def\deftypefunheader #1#2{\deftypefunheaderx{#1}#2 \relax} -% #1 is the data type, #2 the name, #3 the args. -\def\deftypefunheaderx #1#2 #3\relax{% -\doind {fn}{\code{#2}}% Make entry in function index -\begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypefun}% -\deftypefunargs {#3}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} - -% @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar}) - -\def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader} - -% \defheaderxcond#1\relax$.$ -% puts #1 in @code, followed by a space, but does nothing if #1 is null. -\def\defheaderxcond#1#2$.${\ifx#1\relax\else\code{#1#2} \fi} - -% #1 is the classification. #2 is the data type. #3 is the name and args. -\def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax} -% #1 is the classification, #2 the data type, #3 the name, #4 the args. -\def\deftypefnheaderx #1#2#3 #4\relax{% -\doind {fn}{\code{#3}}% Make entry in function index -\begingroup -\normalparens % notably, turn off `&' magic, which prevents -% at least some C++ text from working -\defname {\defheaderxcond#2\relax$.$#3}{#1}% -\deftypefunargs {#4}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} - -% @defmac == @deffn Macro - -\def\defmac{\defparsebody\Edefmac\defmacx\defmacheader} - -\def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index -\begingroup\defname {#1}{\putwordDefmac}% -\defunargs {#2}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} - -% @defspec == @deffn Special Form - -\def\defspec{\defparsebody\Edefspec\defspecx\defspecheader} - -\def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index -\begingroup\defname {#1}{\putwordDefspec}% -\defunargs {#2}\endgroup % -\catcode 61=\other % Turn off change made in \defparsebody -} - -% @defop CATEGORY CLASS OPERATION ARG... -% -\def\defop #1 {\def\defoptype{#1}% -\defopparsebody\Edefop\defopx\defopheader\defoptype} -% -\def\defopheader#1#2#3{% -\dosubind {fn}{\code{#2}}{\putwordon\ #1}% Make entry in function index -\begingroup\defname {#2}{\defoptype\ \putwordon\ #1}% -\defunargs {#3}\endgroup % -} - -% @deftypeop CATEGORY CLASS TYPE OPERATION ARG... -% -\def\deftypeop #1 {\def\deftypeopcategory{#1}% - \deftypeopparsebody\Edeftypeop\deftypeopx\deftypeopheader - \deftypeopcategory} -% -% #1 is the class name, #2 the data type, #3 the operation name, #4 the args. -\def\deftypeopheader#1#2#3#4{% - \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index - \begingroup - \defname{\defheaderxcond#2\relax$.$#3} - {\deftypeopcategory\ \putwordon\ \code{#1}}% - \deftypefunargs{#4}% - \endgroup -} - -% @deftypemethod CLASS TYPE METHOD ARG... -% -\def\deftypemethod{% - \deftypemethparsebody\Edeftypemethod\deftypemethodx\deftypemethodheader} -% -% #1 is the class name, #2 the data type, #3 the method name, #4 the args. -\def\deftypemethodheader#1#2#3#4{% - \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index - \begingroup - \defname{\defheaderxcond#2\relax$.$#3}{\putwordMethodon\ \code{#1}}% - \deftypefunargs{#4}% - \endgroup -} - -% @deftypeivar CLASS TYPE VARNAME -% -\def\deftypeivar{% - \deftypemethparsebody\Edeftypeivar\deftypeivarx\deftypeivarheader} -% -% #1 is the class name, #2 the data type, #3 the variable name. -\def\deftypeivarheader#1#2#3{% - \dosubind{vr}{\code{#3}}{\putwordof\ \code{#1}}% entry in variable index - \begingroup - \defname{\defheaderxcond#2\relax$.$#3} - {\putwordInstanceVariableof\ \code{#1}}% - \defvarargs{#3}% - \endgroup -} - -% @defmethod == @defop Method -% -\def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader} -% -% #1 is the class name, #2 the method name, #3 the args. -\def\defmethodheader#1#2#3{% - \dosubind{fn}{\code{#2}}{\putwordon\ \code{#1}}% entry in function index - \begingroup - \defname{#2}{\putwordMethodon\ \code{#1}}% - \defunargs{#3}% - \endgroup -} - -% @defcv {Class Option} foo-class foo-flag - -\def\defcv #1 {\def\defcvtype{#1}% -\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype} - -\def\defcvarheader #1#2#3{% -\dosubind {vr}{\code{#2}}{\putwordof\ #1}% Make entry in var index -\begingroup\defname {#2}{\defcvtype\ \putwordof\ #1}% -\defvarargs {#3}\endgroup % -} - -% @defivar CLASS VARNAME == @defcv {Instance Variable} CLASS VARNAME -% -\def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader} -% -\def\defivarheader#1#2#3{% - \dosubind {vr}{\code{#2}}{\putwordof\ #1}% entry in var index - \begingroup - \defname{#2}{\putwordInstanceVariableof\ #1}% - \defvarargs{#3}% - \endgroup -} - -% @defvar -% First, define the processing that is wanted for arguments of @defvar. -% This is actually simple: just print them in roman. -% This must expand the args and terminate the paragraph they make up -\def\defvarargs #1{\normalparens #1% -\interlinepenalty=10000 -\endgraf\nobreak\vskip -\parskip\nobreak} - -% @defvr Counter foo-count - -\def\defvr{\defvrparsebody\Edefvr\defvrx\defvrheader} - -\def\defvrheader #1#2#3{\doind {vr}{\code{#2}}% -\begingroup\defname {#2}{#1}\defvarargs{#3}\endgroup} - -% @defvar == @defvr Variable - -\def\defvar{\defvarparsebody\Edefvar\defvarx\defvarheader} - -\def\defvarheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index -\begingroup\defname {#1}{\putwordDefvar}% -\defvarargs {#2}\endgroup % -} - -% @defopt == @defvr {User Option} - -\def\defopt{\defvarparsebody\Edefopt\defoptx\defoptheader} - -\def\defoptheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index -\begingroup\defname {#1}{\putwordDefopt}% -\defvarargs {#2}\endgroup % -} - -% @deftypevar int foobar - -\def\deftypevar{\defvarparsebody\Edeftypevar\deftypevarx\deftypevarheader} - -% #1 is the data type. #2 is the name, perhaps followed by text that -% is actually part of the data type, which should not be put into the index. -\def\deftypevarheader #1#2{% -\dovarind#2 \relax% Make entry in variables index -\begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypevar}% -\interlinepenalty=10000 -\endgraf\nobreak\vskip -\parskip\nobreak -\endgroup} -\def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}} - -% @deftypevr {Global Flag} int enable - -\def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader} - -\def\deftypevrheader #1#2#3{\dovarind#3 \relax% -\begingroup\defname {\defheaderxcond#2\relax$.$#3}{#1} -\interlinepenalty=10000 -\endgraf\nobreak\vskip -\parskip\nobreak -\endgroup} - -% Now define @deftp -% Args are printed in bold, a slight difference from @defvar. - -\def\deftpargs #1{\bf \defvarargs{#1}} - -% @deftp Class window height width ... - -\def\deftp{\deftpparsebody\Edeftp\deftpx\deftpheader} - -\def\deftpheader #1#2#3{\doind {tp}{\code{#2}}% -\begingroup\defname {#2}{#1}\deftpargs{#3}\endgroup} - -% These definitions are used if you use @defunx (etc.) -% anywhere other than immediately after a @defun or @defunx. -% -\def\defcvx#1 {\errmessage{@defcvx in invalid context}} -\def\deffnx#1 {\errmessage{@deffnx in invalid context}} -\def\defivarx#1 {\errmessage{@defivarx in invalid context}} -\def\defmacx#1 {\errmessage{@defmacx in invalid context}} -\def\defmethodx#1 {\errmessage{@defmethodx in invalid context}} -\def\defoptx #1 {\errmessage{@defoptx in invalid context}} -\def\defopx#1 {\errmessage{@defopx in invalid context}} -\def\defspecx#1 {\errmessage{@defspecx in invalid context}} -\def\deftpx#1 {\errmessage{@deftpx in invalid context}} -\def\deftypefnx#1 {\errmessage{@deftypefnx in invalid context}} -\def\deftypefunx#1 {\errmessage{@deftypefunx in invalid context}} -\def\deftypeivarx#1 {\errmessage{@deftypeivarx in invalid context}} -\def\deftypemethodx#1 {\errmessage{@deftypemethodx in invalid context}} -\def\deftypeopx#1 {\errmessage{@deftypeopx in invalid context}} -\def\deftypevarx#1 {\errmessage{@deftypevarx in invalid context}} -\def\deftypevrx#1 {\errmessage{@deftypevrx in invalid context}} -\def\defunx#1 {\errmessage{@defunx in invalid context}} -\def\defvarx#1 {\errmessage{@defvarx in invalid context}} -\def\defvrx#1 {\errmessage{@defvrx in invalid context}} - - -\message{macros,} -% @macro. - -% To do this right we need a feature of e-TeX, \scantokens, -% which we arrange to emulate with a temporary file in ordinary TeX. -\ifx\eTeXversion\undefined - \newwrite\macscribble - \def\scanmacro#1{% - \begingroup \newlinechar`\^^M - % Undo catcode changes of \startcontents and \doprintindex - \catcode`\@=0 \catcode`\\=12 \escapechar=`\@ - % Append \endinput to make sure that TeX does not see the ending newline. - \toks0={#1\endinput}% - \immediate\openout\macscribble=\jobname.tmp - \immediate\write\macscribble{\the\toks0}% - \immediate\closeout\macscribble - \let\xeatspaces\eatspaces - \input \jobname.tmp - \endgroup -} -\else -\def\scanmacro#1{% -\begingroup \newlinechar`\^^M -% Undo catcode changes of \startcontents and \doprintindex -\catcode`\@=0 \catcode`\\=12 \escapechar=`\@ -\let\xeatspaces\eatspaces\scantokens{#1\endinput}\endgroup} -\fi - -\newcount\paramno % Count of parameters -\newtoks\macname % Macro name -\newif\ifrecursive % Is it recursive? -\def\macrolist{} % List of all defined macros in the form - % \do\macro1\do\macro2... - -% Utility routines. -% Thisdoes \let #1 = #2, except with \csnames. -\def\cslet#1#2{% -\expandafter\expandafter -\expandafter\let -\expandafter\expandafter -\csname#1\endcsname -\csname#2\endcsname} - -% Trim leading and trailing spaces off a string. -% Concepts from aro-bend problem 15 (see CTAN). -{\catcode`\@=11 -\gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }} -\gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@} -\gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @} -\def\unbrace#1{#1} -\unbrace{\gdef\trim@@@ #1 } #2@{#1} -} - -% Trim a single trailing ^^M off a string. -{\catcode`\^^M=12\catcode`\Q=3% -\gdef\eatcr #1{\eatcra #1Q^^MQ}% -\gdef\eatcra#1^^MQ{\eatcrb#1Q}% -\gdef\eatcrb#1Q#2Q{#1}% -} - -% Macro bodies are absorbed as an argument in a context where -% all characters are catcode 10, 11 or 12, except \ which is active -% (as in normal texinfo). It is necessary to change the definition of \. - -% It's necessary to have hard CRs when the macro is executed. This is -% done by making ^^M (\endlinechar) catcode 12 when reading the macro -% body, and then making it the \newlinechar in \scanmacro. - -\def\macrobodyctxt{% - \catcode`\~=12 - \catcode`\^=12 - \catcode`\_=12 - \catcode`\|=12 - \catcode`\<=12 - \catcode`\>=12 - \catcode`\+=12 - \catcode`\{=12 - \catcode`\}=12 - \catcode`\@=12 - \catcode`\^^M=12 - \usembodybackslash} - -\def\macroargctxt{% - \catcode`\~=12 - \catcode`\^=12 - \catcode`\_=12 - \catcode`\|=12 - \catcode`\<=12 - \catcode`\>=12 - \catcode`\+=12 - \catcode`\@=12 - \catcode`\\=12} - -% \mbodybackslash is the definition of \ in @macro bodies. -% It maps \foo\ => \csname macarg.foo\endcsname => #N -% where N is the macro parameter number. -% We define \csname macarg.\endcsname to be \realbackslash, so -% \\ in macro replacement text gets you a backslash. - -{\catcode`@=0 @catcode`@\=@active - @gdef@usembodybackslash{@let\=@mbodybackslash} - @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname} -} -\expandafter\def\csname macarg.\endcsname{\realbackslash} - -\def\macro{\recursivefalse\parsearg\macroxxx} -\def\rmacro{\recursivetrue\parsearg\macroxxx} - -\def\macroxxx#1{% - \getargs{#1}% now \macname is the macname and \argl the arglist - \ifx\argl\empty % no arguments - \paramno=0% - \else - \expandafter\parsemargdef \argl;% - \fi - \if1\csname ismacro.\the\macname\endcsname - \message{Warning: redefining \the\macname}% - \else - \expandafter\ifx\csname \the\macname\endcsname \relax - \else \errmessage{Macro name \the\macname\space already defined}\fi - \global\cslet{macsave.\the\macname}{\the\macname}% - \global\expandafter\let\csname ismacro.\the\macname\endcsname=1% - % Add the macroname to \macrolist - \toks0 = \expandafter{\macrolist\do}% - \xdef\macrolist{\the\toks0 - \expandafter\noexpand\csname\the\macname\endcsname}% - \fi - \begingroup \macrobodyctxt - \ifrecursive \expandafter\parsermacbody - \else \expandafter\parsemacbody - \fi} - -\def\unmacro{\parsearg\unmacroxxx} -\def\unmacroxxx#1{% - \if1\csname ismacro.#1\endcsname - \global\cslet{#1}{macsave.#1}% - \global\expandafter\let \csname ismacro.#1\endcsname=0% - % Remove the macro name from \macrolist - \begingroup - \edef\tempa{\expandafter\noexpand\csname#1\endcsname}% - \def\do##1{% - \def\tempb{##1}% - \ifx\tempa\tempb - % remove this - \else - \toks0 = \expandafter{\newmacrolist\do}% - \edef\newmacrolist{\the\toks0\expandafter\noexpand\tempa}% - \fi}% - \def\newmacrolist{}% - % Execute macro list to define \newmacrolist - \macrolist - \global\let\macrolist\newmacrolist - \endgroup - \else - \errmessage{Macro #1 not defined}% - \fi -} - -% This makes use of the obscure feature that if the last token of a -% is #, then the preceding argument is delimited by -% an opening brace, and that opening brace is not consumed. -\def\getargs#1{\getargsxxx#1{}} -\def\getargsxxx#1#{\getmacname #1 \relax\getmacargs} -\def\getmacname #1 #2\relax{\macname={#1}} -\def\getmacargs#1{\def\argl{#1}} - -% Parse the optional {params} list. Set up \paramno and \paramlist -% so \defmacro knows what to do. Define \macarg.blah for each blah -% in the params list, to be ##N where N is the position in that list. -% That gets used by \mbodybackslash (above). - -% We need to get `macro parameter char #' into several definitions. -% The technique used is stolen from LaTeX: let \hash be something -% unexpandable, insert that wherever you need a #, and then redefine -% it to # just before using the token list produced. -% -% The same technique is used to protect \eatspaces till just before -% the macro is used. - -\def\parsemargdef#1;{\paramno=0\def\paramlist{}% - \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,} -\def\parsemargdefxxx#1,{% - \if#1;\let\next=\relax - \else \let\next=\parsemargdefxxx - \advance\paramno by 1% - \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname - {\xeatspaces{\hash\the\paramno}}% - \edef\paramlist{\paramlist\hash\the\paramno,}% - \fi\next} - -% These two commands read recursive and nonrecursive macro bodies. -% (They're different since rec and nonrec macros end differently.) - -\long\def\parsemacbody#1@end macro% -{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% -\long\def\parsermacbody#1@end rmacro% -{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% - -% This defines the macro itself. There are six cases: recursive and -% nonrecursive macros of zero, one, and many arguments. -% Much magic with \expandafter here. -% \xdef is used so that macro definitions will survive the file -% they're defined in; @include reads the file inside a group. -\def\defmacro{% - \let\hash=##% convert placeholders to macro parameter chars - \ifrecursive - \ifcase\paramno - % 0 - \expandafter\xdef\csname\the\macname\endcsname{% - \noexpand\scanmacro{\temp}}% - \or % 1 - \expandafter\xdef\csname\the\macname\endcsname{% - \bgroup\noexpand\macroargctxt - \noexpand\braceorline - \expandafter\noexpand\csname\the\macname xxx\endcsname}% - \expandafter\xdef\csname\the\macname xxx\endcsname##1{% - \egroup\noexpand\scanmacro{\temp}}% - \else % many - \expandafter\xdef\csname\the\macname\endcsname{% - \bgroup\noexpand\macroargctxt - \noexpand\csname\the\macname xx\endcsname}% - \expandafter\xdef\csname\the\macname xx\endcsname##1{% - \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% - \expandafter\expandafter - \expandafter\xdef - \expandafter\expandafter - \csname\the\macname xxx\endcsname - \paramlist{\egroup\noexpand\scanmacro{\temp}}% - \fi - \else - \ifcase\paramno - % 0 - \expandafter\xdef\csname\the\macname\endcsname{% - \noexpand\norecurse{\the\macname}% - \noexpand\scanmacro{\temp}\egroup}% - \or % 1 - \expandafter\xdef\csname\the\macname\endcsname{% - \bgroup\noexpand\macroargctxt - \noexpand\braceorline - \expandafter\noexpand\csname\the\macname xxx\endcsname}% - \expandafter\xdef\csname\the\macname xxx\endcsname##1{% - \egroup - \noexpand\norecurse{\the\macname}% - \noexpand\scanmacro{\temp}\egroup}% - \else % many - \expandafter\xdef\csname\the\macname\endcsname{% - \bgroup\noexpand\macroargctxt - \expandafter\noexpand\csname\the\macname xx\endcsname}% - \expandafter\xdef\csname\the\macname xx\endcsname##1{% - \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% - \expandafter\expandafter - \expandafter\xdef - \expandafter\expandafter - \csname\the\macname xxx\endcsname - \paramlist{% - \egroup - \noexpand\norecurse{\the\macname}% - \noexpand\scanmacro{\temp}\egroup}% - \fi - \fi} - -\def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}} - -% \braceorline decides whether the next nonwhitespace character is a -% {. If so it reads up to the closing }, if not, it reads the whole -% line. Whatever was read is then fed to the next control sequence -% as an argument (by \parsebrace or \parsearg) -\def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx} -\def\braceorlinexxx{% - \ifx\nchar\bgroup\else - \expandafter\parsearg - \fi \next} - -% We mant to disable all macros during \shipout so that they are not -% expanded by \write. -\def\turnoffmacros{\begingroup \def\do##1{\let\noexpand##1=\relax}% - \edef\next{\macrolist}\expandafter\endgroup\next} - - -% @alias. -% We need some trickery to remove the optional spaces around the equal -% sign. Just make them active and then expand them all to nothing. -\def\alias{\begingroup\obeyspaces\parsearg\aliasxxx} -\def\aliasxxx #1{\aliasyyy#1\relax} -\def\aliasyyy #1=#2\relax{\ignoreactivespaces -\edef\next{\global\let\expandafter\noexpand\csname#1\endcsname=% - \expandafter\noexpand\csname#2\endcsname}% -\expandafter\endgroup\next} - - -\message{cross references,} -% @xref etc. - -\newwrite\auxfile - -\newif\ifhavexrefs % True if xref values are known. -\newif\ifwarnedxrefs % True if we warned once that they aren't known. - -% @inforef is relatively simple. -\def\inforef #1{\inforefzzz #1,,,,**} -\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, - node \samp{\ignorespaces#1{}}} - -% @node's job is to define \lastnode. -\def\node{\ENVcheck\parsearg\nodezzz} -\def\nodezzz#1{\nodexxx [#1,]} -\def\nodexxx[#1,#2]{\gdef\lastnode{#1}} -\let\nwnode=\node -\let\lastnode=\relax - -% The sectioning commands (@chapter, etc.) call these. -\def\donoderef{% - \ifx\lastnode\relax\else - \expandafter\expandafter\expandafter\setref{\lastnode}% - {Ysectionnumberandtype}% - \global\let\lastnode=\relax - \fi -} -\def\unnumbnoderef{% - \ifx\lastnode\relax\else - \expandafter\expandafter\expandafter\setref{\lastnode}{Ynothing}% - \global\let\lastnode=\relax - \fi -} -\def\appendixnoderef{% - \ifx\lastnode\relax\else - \expandafter\expandafter\expandafter\setref{\lastnode}% - {Yappendixletterandtype}% - \global\let\lastnode=\relax - \fi -} - - -% @anchor{NAME} -- define xref target at arbitrary point. -% -\newcount\savesfregister -\gdef\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi} -\gdef\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi} -\gdef\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces} - -% \setref{NAME}{SNT} defines a cross-reference point NAME, namely -% NAME-title, NAME-pg, and NAME-SNT. Called from \foonoderef. We have -% to set \indexdummies so commands such as @code in a section title -% aren't expanded. It would be nicer not to expand the titles in the -% first place, but there's so many layers that that is hard to do. -% -\def\setref#1#2{{% - \indexdummies - \pdfmkdest{#1}% - \dosetq{#1-title}{Ytitle}% - \dosetq{#1-pg}{Ypagenumber}% - \dosetq{#1-snt}{#2}% -}} - -% @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is -% the node name, #2 the name of the Info cross-reference, #3 the printed -% node name, #4 the name of the Info file, #5 the name of the printed -% manual. All but the node name can be omitted. -% -\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]} -\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]} -\def\ref#1{\xrefX[#1,,,,,,,]} -\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup - \unsepspaces - \def\printedmanual{\ignorespaces #5}% - \def\printednodename{\ignorespaces #3}% - \setbox1=\hbox{\printedmanual}% - \setbox0=\hbox{\printednodename}% - \ifdim \wd0 = 0pt - % No printed node name was explicitly given. - \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax - % Use the node name inside the square brackets. - \def\printednodename{\ignorespaces #1}% - \else - % Use the actual chapter/section title appear inside - % the square brackets. Use the real section title if we have it. - \ifdim \wd1 > 0pt - % It is in another manual, so we don't have it. - \def\printednodename{\ignorespaces #1}% - \else - \ifhavexrefs - % We know the real title if we have the xref values. - \def\printednodename{\refx{#1-title}{}}% - \else - % Otherwise just copy the Info node name. - \def\printednodename{\ignorespaces #1}% - \fi% - \fi - \fi - \fi - % - % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not - % insert empty discretionaries after hyphens, which means that it will - % not find a line break at a hyphen in a node names. Since some manuals - % are best written with fairly long node names, containing hyphens, this - % is a loss. Therefore, we give the text of the node name again, so it - % is as if TeX is seeing it for the first time. - \ifpdf - \leavevmode - \getfilename{#4}% - {\normalturnoffactive - \ifnum\filenamelength>0 - \startlink attr{/Border [0 0 0]}% - goto file{\the\filename.pdf} name{#1}% - \else - \startlink attr{/Border [0 0 0]}% - goto name{#1}% - \fi - }% - \linkcolor - \fi - % - \ifdim \wd1 > 0pt - \putwordsection{} ``\printednodename'' \putwordin{} \cite{\printedmanual}% - \else - % _ (for example) has to be the character _ for the purposes of the - % control sequence corresponding to the node, but it has to expand - % into the usual \leavevmode...\vrule stuff for purposes of - % printing. So we \turnoffactive for the \refx-snt, back on for the - % printing, back off for the \refx-pg. - {\normalturnoffactive - % Only output a following space if the -snt ref is nonempty; for - % @unnumbered and @anchor, it won't be. - \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% - \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi - }% - % [mynode], - [\printednodename],\space - % page 3 - \turnoffactive \putwordpage\tie\refx{#1-pg}{}% - \fi - \endlink -\endgroup} - -% \dosetq is the interface for calls from other macros - -% Use \normalturnoffactive so that punctuation chars such as underscore -% and backslash work in node names. (\turnoffactive doesn't do \.) -\def\dosetq#1#2{% - {\let\folio=0% - \normalturnoffactive - \edef\next{\write\auxfile{\internalsetq{#1}{#2}}}% - \iflinks - \next - \fi - }% -} - -% \internalsetq {foo}{page} expands into -% CHARACTERS 'xrdef {foo}{...expansion of \Ypage...} -% When the aux file is read, ' is the escape character - -\def\internalsetq #1#2{'xrdef {#1}{\csname #2\endcsname}} - -% Things to be expanded by \internalsetq - -\def\Ypagenumber{\folio} - -\def\Ytitle{\thissection} - -\def\Ynothing{} - -\def\Ysectionnumberandtype{% -\ifnum\secno=0 \putwordChapter\xreftie\the\chapno % -\else \ifnum \subsecno=0 \putwordSection\xreftie\the\chapno.\the\secno % -\else \ifnum \subsubsecno=0 % -\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno % -\else % -\putwordSection\xreftie\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno % -\fi \fi \fi } - -\def\Yappendixletterandtype{% -\ifnum\secno=0 \putwordAppendix\xreftie'char\the\appendixno{}% -\else \ifnum \subsecno=0 \putwordSection\xreftie'char\the\appendixno.\the\secno % -\else \ifnum \subsubsecno=0 % -\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno % -\else % -\putwordSection\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno % -\fi \fi \fi } - -\gdef\xreftie{'tie} - -% Use TeX 3.0's \inputlineno to get the line number, for better error -% messages, but if we're using an old version of TeX, don't do anything. -% -\ifx\inputlineno\thisisundefined - \let\linenumber = \empty % Non-3.0. -\else - \def\linenumber{\the\inputlineno:\space} -\fi - -% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME. -% If its value is nonempty, SUFFIX is output afterward. - -\def\refx#1#2{% - \expandafter\ifx\csname X#1\endcsname\relax - % If not defined, say something at least. - \angleleft un\-de\-fined\angleright - \iflinks - \ifhavexrefs - \message{\linenumber Undefined cross reference `#1'.}% - \else - \ifwarnedxrefs\else - \global\warnedxrefstrue - \message{Cross reference values unknown; you must run TeX again.}% - \fi - \fi - \fi - \else - % It's defined, so just use it. - \csname X#1\endcsname - \fi - #2% Output the suffix in any case. -} - -% This is the macro invoked by entries in the aux file. -% -\def\xrdef#1{\begingroup - % Reenable \ as an escape while reading the second argument. - \catcode`\\ = 0 - \afterassignment\endgroup - \expandafter\gdef\csname X#1\endcsname -} - -% Read the last existing aux file, if any. No error if none exists. -\def\readauxfile{\begingroup - \catcode`\^^@=\other - \catcode`\^^A=\other - \catcode`\^^B=\other - \catcode`\^^C=\other - \catcode`\^^D=\other - \catcode`\^^E=\other - \catcode`\^^F=\other - \catcode`\^^G=\other - \catcode`\^^H=\other - \catcode`\^^K=\other - \catcode`\^^L=\other - \catcode`\^^N=\other - \catcode`\^^P=\other - \catcode`\^^Q=\other - \catcode`\^^R=\other - \catcode`\^^S=\other - \catcode`\^^T=\other - \catcode`\^^U=\other - \catcode`\^^V=\other - \catcode`\^^W=\other - \catcode`\^^X=\other - \catcode`\^^Z=\other - \catcode`\^^[=\other - \catcode`\^^\=\other - \catcode`\^^]=\other - \catcode`\^^^=\other - \catcode`\^^_=\other - \catcode`\@=\other - \catcode`\^=\other - % It was suggested to define this as 7, which would allow ^^e4 etc. - % in xref tags, i.e., node names. But since ^^e4 notation isn't - % supported in the main text, it doesn't seem desirable. Furthermore, - % that is not enough: for node names that actually contain a ^ - % character, we would end up writing a line like this: 'xrdef {'hat - % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first - % argument, and \hat is not an expandable control sequence. It could - % all be worked out, but why? Either we support ^^ or we don't. - % - % The other change necessary for this was to define \auxhat: - % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter - % and then to call \auxhat in \setq. - % - \catcode`\~=\other - \catcode`\[=\other - \catcode`\]=\other - \catcode`\"=\other - \catcode`\_=\other - \catcode`\|=\other - \catcode`\<=\other - \catcode`\>=\other - \catcode`\$=\other - \catcode`\#=\other - \catcode`\&=\other - \catcode`+=\other % avoid \+ for paranoia even though we've turned it off - % Make the characters 128-255 be printing characters - {% - \count 1=128 - \def\loop{% - \catcode\count 1=\other - \advance\count 1 by 1 - \ifnum \count 1<256 \loop \fi - }% - }% - % The aux file uses ' as the escape (for now). - % Turn off \ as an escape so we do not lose on - % entries which were dumped with control sequences in their names. - % For example, 'xrdef {$\leq $-fun}{page ...} made by @defun ^^ - % Reference to such entries still does not work the way one would wish, - % but at least they do not bomb out when the aux file is read in. - \catcode`\{=1 - \catcode`\}=2 - \catcode`\%=\other - \catcode`\'=0 - \catcode`\\=\other - % - \openin 1 \jobname.aux - \ifeof 1 \else - \closein 1 - \input \jobname.aux - \global\havexrefstrue - \global\warnedobstrue - \fi - % Open the new aux file. TeX will close it automatically at exit. - \openout\auxfile=\jobname.aux -\endgroup} - - -% Footnotes. - -\newcount \footnoteno - -% The trailing space in the following definition for supereject is -% vital for proper filling; pages come out unaligned when you do a -% pagealignmacro call if that space before the closing brace is -% removed. (Generally, numeric constants should always be followed by a -% space to prevent strange expansion errors.) -\def\supereject{\par\penalty -20000\footnoteno =0 } - -% @footnotestyle is meaningful for info output only. -\let\footnotestyle=\comment - -\let\ptexfootnote=\footnote - -{\catcode `\@=11 -% -% Auto-number footnotes. Otherwise like plain. -\gdef\footnote{% - \global\advance\footnoteno by \@ne - \edef\thisfootno{$^{\the\footnoteno}$}% - % - % In case the footnote comes at the end of a sentence, preserve the - % extra spacing after we do the footnote number. - \let\@sf\empty - \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi - % - % Remove inadvertent blank space before typesetting the footnote number. - \unskip - \thisfootno\@sf - \footnotezzz -}% - -% Don't bother with the trickery in plain.tex to not require the -% footnote text as a parameter. Our footnotes don't need to be so general. -% -% Oh yes, they do; otherwise, @ifset and anything else that uses -% \parseargline fail inside footnotes because the tokens are fixed when -% the footnote is read. --karl, 16nov96. -% -\long\gdef\footnotezzz{\insert\footins\bgroup - % We want to typeset this text as a normal paragraph, even if the - % footnote reference occurs in (for example) a display environment. - % So reset some parameters. - \interlinepenalty\interfootnotelinepenalty - \splittopskip\ht\strutbox % top baseline for broken footnotes - \splitmaxdepth\dp\strutbox - \floatingpenalty\@MM - \leftskip\z@skip - \rightskip\z@skip - \spaceskip\z@skip - \xspaceskip\z@skip - \parindent\defaultparindent - % - \smallfonts \rm - % - % Because we use hanging indentation in footnotes, a @noindent appears - % to exdent this text, so make it be a no-op. makeinfo does not use - % hanging indentation so @noindent can still be needed within footnote - % text after an @example or the like (not that this is good style). - \let\noindent = \relax - % - % Hang the footnote text off the number. Use \everypar in case the - % footnote extends for more than one paragraph. - \everypar = {\hang}% - \textindent{\thisfootno}% - % - % Don't crash into the line above the footnote text. Since this - % expands into a box, it must come within the paragraph, lest it - % provide a place where TeX can split the footnote. - \footstrut - \futurelet\next\fo@t -} -\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t - \else\let\next\f@t\fi \next} -\def\f@@t{\bgroup\aftergroup\@foot\let\next} -\def\f@t#1{#1\@foot} -\def\@foot{\strut\par\egroup} - -}%end \catcode `\@=11 - -% @| inserts a changebar to the left of the current line. It should -% surround any changed text. This approach does *not* work if the -% change spans more than two lines of output. To handle that, we would -% have adopt a much more difficult approach (putting marks into the main -% vertical list for the beginning and end of each change). -% -\def\|{% - % \vadjust can only be used in horizontal mode. - \leavevmode - % - % Append this vertical mode material after the current line in the output. - \vadjust{% - % We want to insert a rule with the height and depth of the current - % leading; that is exactly what \strutbox is supposed to record. - \vskip-\baselineskip - % - % \vadjust-items are inserted at the left edge of the type. So - % the \llap here moves out into the left-hand margin. - \llap{% - % - % For a thicker or thinner bar, change the `1pt'. - \vrule height\baselineskip width1pt - % - % This is the space between the bar and the text. - \hskip 12pt - }% - }% -} - -% For a final copy, take out the rectangles -% that mark overfull boxes (in case you have decided -% that the text looks ok even though it passes the margin). -% -\def\finalout{\overfullrule=0pt} - -% @image. We use the macros from epsf.tex to support this. -% If epsf.tex is not installed and @image is used, we complain. -% -% Check for and read epsf.tex up front. If we read it only at @image -% time, we might be inside a group, and then its definitions would get -% undone and the next image would fail. -\openin 1 = epsf.tex -\ifeof 1 \else - \closein 1 - % Do not bother showing banner with post-v2.7 epsf.tex (available in - % doc/epsf.tex until it shows up on ctan). - \def\epsfannounce{\toks0 = }% - \input epsf.tex -\fi -% -% We will only complain once about lack of epsf.tex. -\newif\ifwarnednoepsf -\newhelp\noepsfhelp{epsf.tex must be installed for images to - work. It is also included in the Texinfo distribution, or you can get - it from ftp://tug.org/tex/epsf.tex.} -% -\def\image#1{% - \ifx\epsfbox\undefined - \ifwarnednoepsf \else - \errhelp = \noepsfhelp - \errmessage{epsf.tex not found, images will be ignored}% - \global\warnednoepsftrue - \fi - \else - \imagexxx #1,,,,,\finish - \fi -} -% -% Arguments to @image: -% #1 is (mandatory) image filename; we tack on .eps extension. -% #2 is (optional) width, #3 is (optional) height. -% #4 is (ignored optional) html alt text. -% #5 is (ignored optional) extension. -% #6 is just the usual extra ignored arg for parsing this stuff. -\newif\ifimagevmode -\def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup - \catcode`\^^M = 5 % in case we're inside an example - \normalturnoffactive % allow _ et al. in names - % If the image is by itself, center it. - \ifvmode - \imagevmodetrue - \nobreak\bigskip - % Usually we'll have text after the image which will insert - % \parskip glue, so insert it here too to equalize the space - % above and below. - \nobreak\vskip\parskip - \nobreak - \line\bgroup\hss - \fi - % - % Output the image. - \ifpdf - \dopdfimage{#1}{#2}{#3}% - \else - % \epsfbox itself resets \epsf?size at each figure. - \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi - \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi - \epsfbox{#1.eps}% - \fi - % - \ifimagevmode \hss \egroup \bigbreak \fi % space after the image -\endgroup} - - -\message{localization,} -% and i18n. - -% @documentlanguage is usually given very early, just after -% @setfilename. If done too late, it may not override everything -% properly. Single argument is the language abbreviation. -% It would be nice if we could set up a hyphenation file here. -% -\def\documentlanguage{\parsearg\dodocumentlanguage} -\def\dodocumentlanguage#1{% - \tex % read txi-??.tex file in plain TeX. - % Read the file if it exists. - \openin 1 txi-#1.tex - \ifeof1 - \errhelp = \nolanghelp - \errmessage{Cannot read language file txi-#1.tex}% - \let\temp = \relax - \else - \def\temp{\input txi-#1.tex }% - \fi - \temp - \endgroup -} -\newhelp\nolanghelp{The given language definition file cannot be found or -is empty. Maybe you need to install it? In the current directory -should work if nowhere else does.} - - -% @documentencoding should change something in TeX eventually, most -% likely, but for now just recognize it. -\let\documentencoding = \comment - - -% Page size parameters. -% -\newdimen\defaultparindent \defaultparindent = 15pt - -\chapheadingskip = 15pt plus 4pt minus 2pt -\secheadingskip = 12pt plus 3pt minus 2pt -\subsecheadingskip = 9pt plus 2pt minus 2pt - -% Prevent underfull vbox error messages. -\vbadness = 10000 - -% Don't be so finicky about underfull hboxes, either. -\hbadness = 2000 - -% Following George Bush, just get rid of widows and orphans. -\widowpenalty=10000 -\clubpenalty=10000 - -% Use TeX 3.0's \emergencystretch to help line breaking, but if we're -% using an old version of TeX, don't do anything. We want the amount of -% stretch added to depend on the line length, hence the dependence on -% \hsize. We call this whenever the paper size is set. -% -\def\setemergencystretch{% - \ifx\emergencystretch\thisisundefined - % Allow us to assign to \emergencystretch anyway. - \def\emergencystretch{\dimen0}% - \else - \emergencystretch = .15\hsize - \fi -} - -% Parameters in order: 1) textheight; 2) textwidth; 3) voffset; -% 4) hoffset; 5) binding offset; 6) topskip. We also call -% \setleading{\textleading}, so the caller should define \textleading. -% The caller should also set \parskip. -% -\def\internalpagesizes#1#2#3#4#5#6{% - \voffset = #3\relax - \topskip = #6\relax - \splittopskip = \topskip - % - \vsize = #1\relax - \advance\vsize by \topskip - \outervsize = \vsize - \advance\outervsize by 2\topandbottommargin - \pageheight = \vsize - % - \hsize = #2\relax - \outerhsize = \hsize - \advance\outerhsize by 0.5in - \pagewidth = \hsize - % - \normaloffset = #4\relax - \bindingoffset = #5\relax - % - \setleading{\textleading} - % - \parindent = \defaultparindent - \setemergencystretch -} - -% Use `small' versions. -% -\def\smallenvironments{% - \let\smalldisplay = \smalldisplayx - \let\smallexample = \smalllispx - \let\smallformat = \smallformatx - \let\smalllisp = \smalllispx -} - -% @letterpaper (the default). -\def\letterpaper{{\globaldefs = 1 - \parskip = 3pt plus 2pt minus 1pt - \textleading = 13.2pt - % - % If page is nothing but text, make it come out even. - \internalpagesizes{46\baselineskip}{6in}{\voffset}{.25in}{\bindingoffset}{36pt}% -}} - -% Use @smallbook to reset parameters for 7x9.5 (or so) format. -\def\smallbook{{\globaldefs = 1 - \parskip = 2pt plus 1pt - \textleading = 12pt - % - \internalpagesizes{7.5in}{5.in}{\voffset}{.25in}{\bindingoffset}{16pt}% - % - \lispnarrowing = 0.3in - \tolerance = 700 - \hfuzz = 1pt - \contentsrightmargin = 0pt - \deftypemargin = 0pt - \defbodyindent = .5cm - \smallenvironments -}} - -% Use @afourpaper to print on European A4 paper. -\def\afourpaper{{\globaldefs = 1 - \parskip = 3pt plus 2pt minus 1pt - \textleading = 12pt - % - \internalpagesizes{53\baselineskip}{160mm}{\voffset}{4mm}{\bindingoffset}{44pt}% - % - \tolerance = 700 - \hfuzz = 1pt -}} - -% Use @afivepaper to print on European A5 paper. -% From romildo@urano.iceb.ufop.br, 2 July 2000. -% He also recommends making @example and @lisp be small. -\def\afivepaper{{\globaldefs = 1 - \parskip = 2pt plus 1pt minus 0.1pt - \textleading = 12.5pt - % - \internalpagesizes{166mm}{120mm}{\voffset}{-8mm}{\bindingoffset}{8pt}% - % - \lispnarrowing = 0.2in - \tolerance = 800 - \hfuzz = 1.2pt - \contentsrightmargin = 0mm - \deftypemargin = 0pt - \defbodyindent = 2mm - \tableindent = 12mm - % - \smallenvironments -}} - -% A specific text layout, 24x15cm overall, intended for A4 paper. Top margin -% 29mm, hence bottom margin 28mm, nominal side margin 3cm. -\def\afourlatex{{\globaldefs = 1 - \textleading = 13.6pt - % - \afourpaper - \internalpagesizes{237mm}{150mm}{3.6mm}{3.6mm}{3mm}{7mm}% - % - % Must explicitly reset to 0 because we call \afourpaper, apparently, - % although this does not entirely make sense. - \globaldefs = 0 -}} - -% Use @afourwide to print on European A4 paper in wide format. -\def\afourwide{% - \afourpaper - \internalpagesizes{6.5in}{9.5in}{\hoffset}{\normaloffset}{\bindingoffset}{7mm}% -} - -% @pagesizes TEXTHEIGHT[,TEXTWIDTH] -% Perhaps we should allow setting the margins, \topskip, \parskip, -% and/or leading, also. Or perhaps we should compute them somehow. -% -\def\pagesizes{\parsearg\pagesizesxxx} -\def\pagesizesxxx#1{\pagesizesyyy #1,,\finish} -\def\pagesizesyyy#1,#2,#3\finish{{% - \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi - \globaldefs = 1 - % - \parskip = 3pt plus 2pt minus 1pt - \setleading{\textleading}% - % - \internalpagesizes{#1}{\hsize}{\voffset}{\normaloffset}{\bindingoffset}{44pt}% -}} - -% Set default to letter. -% -\letterpaper - - -\message{and turning on texinfo input format.} - -% Define macros to output various characters with catcode for normal text. -\catcode`\"=\other -\catcode`\~=\other -\catcode`\^=\other -\catcode`\_=\other -\catcode`\|=\other -\catcode`\<=\other -\catcode`\>=\other -\catcode`\+=\other -\catcode`\$=\other -\def\normaldoublequote{"} -\def\normaltilde{~} -\def\normalcaret{^} -\def\normalunderscore{_} -\def\normalverticalbar{|} -\def\normalless{<} -\def\normalgreater{>} -\def\normalplus{+} -\def\normaldollar{$}%$ font-lock fix - -% This macro is used to make a character print one way in ttfont -% where it can probably just be output, and another way in other fonts, -% where something hairier probably needs to be done. -% -% #1 is what to print if we are indeed using \tt; #2 is what to print -% otherwise. Since all the Computer Modern typewriter fonts have zero -% interword stretch (and shrink), and it is reasonable to expect all -% typewriter fonts to have this, we can check that font parameter. -% -\def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi} - -% Same as above, but check for italic font. Actually this also catches -% non-italic slanted fonts since it is impossible to distinguish them from -% italic fonts. But since this is only used by $ and it uses \sl anyway -% this is not a problem. -\def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi} - -% Turn off all special characters except @ -% (and those which the user can use as if they were ordinary). -% Most of these we simply print from the \tt font, but for some, we can -% use math or other variants that look better in normal text. - -\catcode`\"=\active -\def\activedoublequote{{\tt\char34}} -\let"=\activedoublequote -\catcode`\~=\active -\def~{{\tt\char126}} -\chardef\hat=`\^ -\catcode`\^=\active -\def^{{\tt \hat}} - -\catcode`\_=\active -\def_{\ifusingtt\normalunderscore\_} -% Subroutine for the previous macro. -\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em height.1ex}} - -\catcode`\|=\active -\def|{{\tt\char124}} -\chardef \less=`\< -\catcode`\<=\active -\def<{{\tt \less}} -\chardef \gtr=`\> -\catcode`\>=\active -\def>{{\tt \gtr}} -\catcode`\+=\active -\def+{{\tt \char 43}} -\catcode`\$=\active -\def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix -%\catcode 27=\active -%\def^^[{$\diamondsuit$} - -% Set up an active definition for =, but don't enable it most of the time. -{\catcode`\==\active -\global\def={{\tt \char 61}}} - -\catcode`+=\active -\catcode`\_=\active - -% If a .fmt file is being used, characters that might appear in a file -% name cannot be active until we have parsed the command line. -% So turn them off again, and have \everyjob (or @setfilename) turn them on. -% \otherifyactive is called near the end of this file. -\def\otherifyactive{\catcode`+=\other \catcode`\_=\other} - -\catcode`\@=0 - -% \rawbackslashxx output one backslash character in current font -\global\chardef\rawbackslashxx=`\\ -%{\catcode`\\=\other -%@gdef@rawbackslashxx{\}} - -% \rawbackslash redefines \ as input to do \rawbackslashxx. -{\catcode`\\=\active -@gdef@rawbackslash{@let\=@rawbackslashxx }} - -% \normalbackslash outputs one backslash in fixed width font. -\def\normalbackslash{{\tt\rawbackslashxx}} - -% \catcode 17=0 % Define control-q -\catcode`\\=\active - -% Used sometimes to turn off (effectively) the active characters -% even after parsing them. -@def@turnoffactive{@let"=@normaldoublequote -@let\=@realbackslash -@let~=@normaltilde -@let^=@normalcaret -@let_=@normalunderscore -@let|=@normalverticalbar -@let<=@normalless -@let>=@normalgreater -@let+=@normalplus -@let$=@normaldollar}%$ font-lock fix - -@def@normalturnoffactive{@let"=@normaldoublequote -@let\=@normalbackslash -@let~=@normaltilde -@let^=@normalcaret -@let_=@normalunderscore -@let|=@normalverticalbar -@let<=@normalless -@let>=@normalgreater -@let+=@normalplus -@let$=@normaldollar}%$ font-lock fix - -% Make _ and + \other characters, temporarily. -% This is canceled by @fixbackslash. -@otherifyactive - -% If a .fmt file is being used, we don't want the `\input texinfo' to show up. -% That is what \eatinput is for; after that, the `\' should revert to printing -% a backslash. -% -@gdef@eatinput input texinfo{@fixbackslash} -@global@let\ = @eatinput - -% On the other hand, perhaps the file did not have a `\input texinfo'. Then -% the first `\{ in the file would cause an error. This macro tries to fix -% that, assuming it is called before the first `\' could plausibly occur. -% Also back turn on active characters that might appear in the input -% file name, in case not using a pre-dumped format. -% -@gdef@fixbackslash{% - @ifx\@eatinput @let\ = @normalbackslash @fi - @catcode`+=@active - @catcode`@_=@active -} - -% Say @foo, not \foo, in error messages. -@escapechar = `@@ - -% These look ok in all fonts, so just make them not special. -@catcode`@& = @other -@catcode`@# = @other -@catcode`@% = @other - -@c Set initial fonts. -@textfonts -@rm - - -@c Local variables: -@c eval: (add-hook 'write-file-hooks 'time-stamp) -@c page-delimiter: "^\\\\message" -@c time-stamp-start: "def\\\\texinfoversion{" -@c time-stamp-format: "%:y-%02m-%02d.%02H" -@c time-stamp-end: "}" -@c End: diff --git a/gnu/dist/diffutils/configure b/gnu/dist/diffutils/configure deleted file mode 100755 index daa6efbf189..00000000000 --- a/gnu/dist/diffutils/configure +++ /dev/null @@ -1,15482 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.53 for GNU diffutils 2.8.1. -# -# Report bugs to . -# -# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 -# Free Software Foundation, Inc. -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - as_mkdir_p=false -fi - - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - - -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi - -# NLS nuisances. -# Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - -(set +x; test -n "`(LANG=C; export LANG) 2>&1`") && - { $as_unset LANG || test "${LANG+set}" != set; } || - { LANG=C; export LANG; } -(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") && - { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } || - { LC_ALL=C; export LC_ALL; } -(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") && - { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } || - { LC_TIME=C; export LC_TIME; } -(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") && - { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } || - { LC_CTYPE=C; export LC_CTYPE; } -(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") && - { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } || - { LANGUAGE=C; export LANGUAGE; } -(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") && - { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } || - { LC_COLLATE=C; export LC_COLLATE; } -(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") && - { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } || - { LC_NUMERIC=C; export LC_NUMERIC; } -(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") && - { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } || - { LC_MESSAGES=C; export LC_MESSAGES; } - - -# Name of the executable. -as_me=`(basename "$0") 2>/dev/null || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conftest.sh - echo "exit 0" >>conftest.sh - chmod +x conftest.sh - if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conftest.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; } - - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -exec 6>&1 - -# -# Initializations. -# -ac_default_prefix=/usr/local -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Maximum number of lines to put in a shell here document. -# This variable seems obsolete. It should probably be removed, and -# only ac_max_sed_lines should be used. -: ${ac_max_here_lines=38} - -# Identity of this package. -PACKAGE_NAME='GNU diffutils' -PACKAGE_TARNAME='diffutils' -PACKAGE_VERSION='2.8.1' -PACKAGE_STRING='GNU diffutils 2.8.1' -PACKAGE_BUGREPORT='bug-gnu-utils@gnu.org' - -ac_unique_file="src/diff.c" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#if HAVE_SYS_TYPES_H -# include -#endif -#if HAVE_SYS_STAT_H -# include -#endif -#if STDC_HEADERS -# include -# include -#else -# if HAVE_STDLIB_H -# include -# endif -#endif -#if HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H -# include -# endif -# include -#endif -#if HAVE_STRINGS_H -# include -#endif -#if HAVE_INTTYPES_H -# include -#else -# if HAVE_STDINT_H -# include -# endif -#endif -#if HAVE_UNISTD_H -# include -#endif" - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -ac_prev= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_option in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval "enable_$ac_feature=no" ;; - - -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "enable_$ac_feature='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package| sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "with_$ac_package='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/-/_/g'` - eval "with_$ac_package=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` - eval "$ac_envvar='$ac_optarg'" - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute paths. -for ac_var in exec_prefix prefix -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* | NONE | '' ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# Be sure to have absolute paths. -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ - localstatedir libdir includedir oldincludedir infodir mandir -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_confdir=`(dirname "$0") 2>/dev/null || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 - { (exit 1); exit 1; }; } - else - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } - fi -fi -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` -ac_env_build_alias_set=${build_alias+set} -ac_env_build_alias_value=$build_alias -ac_cv_env_build_alias_set=${build_alias+set} -ac_cv_env_build_alias_value=$build_alias -ac_env_host_alias_set=${host_alias+set} -ac_env_host_alias_value=$host_alias -ac_cv_env_host_alias_set=${host_alias+set} -ac_cv_env_host_alias_value=$host_alias -ac_env_target_alias_set=${target_alias+set} -ac_env_target_alias_value=$target_alias -ac_cv_env_target_alias_set=${target_alias+set} -ac_cv_env_target_alias_value=$target_alias -ac_env_CC_set=${CC+set} -ac_env_CC_value=$CC -ac_cv_env_CC_set=${CC+set} -ac_cv_env_CC_value=$CC -ac_env_CFLAGS_set=${CFLAGS+set} -ac_env_CFLAGS_value=$CFLAGS -ac_cv_env_CFLAGS_set=${CFLAGS+set} -ac_cv_env_CFLAGS_value=$CFLAGS -ac_env_LDFLAGS_set=${LDFLAGS+set} -ac_env_LDFLAGS_value=$LDFLAGS -ac_cv_env_LDFLAGS_set=${LDFLAGS+set} -ac_cv_env_LDFLAGS_value=$LDFLAGS -ac_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_env_CPPFLAGS_value=$CPPFLAGS -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_cv_env_CPPFLAGS_value=$CPPFLAGS -ac_env_CPP_set=${CPP+set} -ac_env_CPP_value=$CPP -ac_cv_env_CPP_set=${CPP+set} -ac_cv_env_CPP_value=$CPP - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures GNU diffutils 2.8.1 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -_ACEOF - - cat <<_ACEOF -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data [PREFIX/share] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --infodir=DIR info documentation [PREFIX/info] - --mandir=DIR man documentation [PREFIX/man] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of GNU diffutils 2.8.1:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --disable-dependency-tracking Speeds up one-time builds - --enable-dependency-tracking Do not reject slow dependency extractors - --disable-largefile omit support for large files - --disable-nls do not use Native Language Support - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-gnu-ld assume the C compiler uses GNU ld default=no - --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib - --without-libiconv-prefix don't search for libiconv in includedir and libdir - --with-libintl-prefix=DIR search for libintl in DIR/include and DIR/lib - --without-libintl-prefix don't search for libintl in includedir and libdir - --without-included-regex don't compile regex; this is the default on - systems with version 2 of the GNU C library - (use with caution on other system) - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have - headers in a nonstandard directory - CPP C preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to . -_ACEOF -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - ac_popdir=`pwd` - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d $ac_dir || continue - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd` -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` - - cd $ac_dir - # Check for guested configure; otherwise get Cygnus style configure. - if test -f $ac_srcdir/configure.gnu; then - echo - $SHELL $ac_srcdir/configure.gnu --help=recursive - elif test -f $ac_srcdir/configure; then - echo - $SHELL $ac_srcdir/configure --help=recursive - elif test -f $ac_srcdir/configure.ac || - test -f $ac_srcdir/configure.in; then - echo - $ac_configure --help - else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi - cd $ac_popdir - done -fi - -test -n "$ac_init_help" && exit 0 -if $ac_init_version; then - cat <<\_ACEOF -GNU diffutils configure 2.8.1 -generated by GNU Autoconf 2.53 - -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 -Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit 0 -fi -exec 5>config.log -cat >&5 <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by GNU diffutils $as_me 2.8.1, which was -generated by GNU Autoconf 2.53. Invocation command line was - - $ $0 $@ - -_ACEOF -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -hostinfo = `(hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" -done - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell meta-characters. -ac_configure_args= -ac_sep= -for ac_arg -do - case $ac_arg in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n ) continue ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - continue ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" - ac_sep=" " ;; - esac - # Get rid of the leading space. -done - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Be sure not to use single quotes in there, as some shells, -# such as our DU 5.0 friend, will then `close' the trap. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - cat <<\_ASBOX -## ---------------- ## -## Cache variables. ## -## ---------------- ## -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -{ - (set) 2>&1 | - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in - *ac_space=\ *) - sed -n \ - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" - ;; - *) - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} - echo - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - sed "/^$/d" confdefs.h - echo - fi - test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" - } >&5 - rm -f core core.* *.core && - rm -rf conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status - ' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo >confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . $cache_file;; - *) . ./$cache_file;; - esac - fi -else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in `(set) 2>&1 | - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val="\$ac_cv_env_${ac_var}_value" - eval ac_new_val="\$ac_env_${ac_var}_value" - case $ac_old_set,$ac_new_set in - set,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ac_aux_dir= -for ac_dir in config $srcdir/config; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f $ac_dir/shtool; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in config $srcdir/config" >&5 -echo "$as_me: error: cannot find install-sh or install.sh in config $srcdir/config" >&2;} - { (exit 1); exit 1; }; } -fi -ac_config_guess="$SHELL $ac_aux_dir/config.guess" -ac_config_sub="$SHELL $ac_aux_dir/config.sub" -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. - -# Add the stamp file to the list of files AC keeps track of, -# along with our hook. -ac_config_headers="$ac_config_headers config.h:config.hin" - - - -am__api_version="1.6" -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - done - done - ;; -esac -done - - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL=$ac_install_sh - fi -fi -echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -echo "$as_me:$LINENO: checking whether build environment is sane" >&5 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 -# Just in case -sleep 1 -echo timestamp > conftest.file -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftest.file` - fi - rm -f conftest.file - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&5 -echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&2;} - { (exit 1); exit 1; }; } - fi - - test "$2" = conftest.file - ) -then - # Ok. - : -else - { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! -Check your system clock" >&5 -echo "$as_me: error: newly created file is older than distributed files! -Check your system clock" >&2;} - { (exit 1); exit 1; }; } -fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -test "$program_prefix" != NONE && - program_transform_name="s,^,$program_prefix,;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s,\$,$program_suffix,;$program_transform_name" -# Double any \ or $. echo might interpret backslashes. -# By default was `s,x,x', remove it if useless. -cat <<\_ACEOF >conftest.sed -s/[\\$]/&&/g;s/;s,x,x,$// -_ACEOF -program_transform_name=`echo $program_transform_name | sed -f conftest.sed` -rm conftest.sed - - -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 -echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} -fi - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_AWK+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - echo "$as_me:$LINENO: result: $AWK" >&5 -echo "${ECHO_T}$AWK" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$AWK" && break -done - -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \${MAKE}" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.make <<\_ACEOF -all: - @echo 'ac_maketemp="${MAKE}"' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi -rm -f conftest.make -fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - SET_MAKE= -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - SET_MAKE="MAKE=${MAKE-make}" -fi - - # test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && - test -f $srcdir/config.status; then - { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 -echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} - { (exit 1); exit 1; }; } -fi - -# Define the identity of the package. - PACKAGE=diffutils - VERSION=2.8.1 - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}"aclocal-${am__api_version}""} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}"automake-${am__api_version}""} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - - -AMTAR=${AMTAR-"${am_missing_run}tar"} - -install_sh=${install_sh-"$am_aux_dir/install-sh"} - -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - STRIP=$ac_ct_STRIP -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" - -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. - - - - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_AWK+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - echo "$as_me:$LINENO: result: $AWK" >&5 -echo "${ECHO_T}$AWK" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$AWK" && break -done - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - set dummy "$as_dir/$ac_word" ${1+"$@"} - shift - ac_cv_prog_CC="$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_CC" && break -done - - CC=$ac_ct_CC -fi - -fi - - -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH" >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH" >&2;} - { (exit 1); exit 1; }; } - -# Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -echo "$as_me:$LINENO: checking for C compiler default output" >&5 -echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 - (eval $ac_link_default) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Find the output, starting from the most likely. This scheme is -# not robust to junk in `.', hence go to wildcards (a.*) only as a last -# resort. - -# Be careful to initialize this variable, since it used to be cached. -# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. -ac_cv_exeext= -for ac_file in `ls a_out.exe a.exe conftest.exe 2>/dev/null; - ls a.out conftest 2>/dev/null; - ls a.* conftest.* 2>/dev/null`; do - case $ac_file in - *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb | *.xSYM ) ;; - a.out ) # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - # FIXME: I believe we export ac_cv_exeext for Libtool --akim. - export ac_cv_exeext - break;; - * ) break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables" >&5 -echo "$as_me: error: C compiler cannot create executables" >&2;} - { (exit 77); exit 77; }; } -fi - -ac_exeext=$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6 - -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'." >&5 -echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -rm -f a.out a.exe conftest$ac_cv_exeext -ac_clean_files=$ac_clean_files_save -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6 - -echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do - case $ac_file in - *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - export ac_cv_exeext - break;; - * ) break;; - esac -done -else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link" >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link" >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6 - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 -if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile" >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot compile" >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6 -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 -if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_compiler_gnu=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 -GCC=`test $ac_compiler_gnu = yes && echo yes` -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -CFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_prog_cc_g=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -# Some people use a C++ compiler to compile C. Since we use `exit', -# in C++ we need to declare it. In case someone uses the same compiler -# for both compiling C and C++ we need to have the C++ compiler decide -# the declaration of exit, since it's the most demanding environment. -cat >conftest.$ac_ext <<_ACEOF -#ifndef __cplusplus - choke me -#endif -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - for ac_declaration in \ - ''\ - '#include ' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -$ac_declaration -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -continue -fi -rm -f conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_declaration -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest.$ac_ext -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h -fi - -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -rm -f .deps 2>/dev/null -mkdir .deps 2>/dev/null -if test -d .deps; then - DEPDIR=.deps -else - # MS-DOS does not allow filenames that begin with a dot. - DEPDIR=_deps -fi -rmdir .deps 2>/dev/null - - -ac_config_commands="$ac_config_commands depfiles" - - -am_make=${MAKE-make} -cat > confinc << 'END' -doit: - @echo done -END -# If we don't find an include directive, just comment out the code. -echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 -echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi -fi - - -echo "$as_me:$LINENO: result: $_am_result" >&5 -echo "${ECHO_T}$_am_result" >&6 -rm -f confinc confmf - -# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then - enableval="$enable_dependency_tracking" - -fi; -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi - - -if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - - - -depcc="$CC" am_compiler_list= - -echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - for depmode in $am_compiler_list; do - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - echo '#include "conftest.h"' > conftest.c - echo 'int i;' > conftest.h - echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf - - case $depmode in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. - if depmode=$depmode \ - source=conftest.c object=conftest.o \ - depfile=conftest.Po tmpdepfile=conftest.TPo \ - $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 && - grep conftest.h conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - - - - echo "$as_me:$LINENO: checking for strerror in -lcposix" >&5 -echo $ECHO_N "checking for strerror in -lcposix... $ECHO_C" >&6 -if test "${ac_cv_lib_cposix_strerror+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcposix $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char strerror (); -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -strerror (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_cposix_strerror=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_lib_cposix_strerror=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_cposix_strerror" >&5 -echo "${ECHO_T}$ac_cv_lib_cposix_strerror" >&6 -if test $ac_cv_lib_cposix_strerror = yes; then - LIBS="$LIBS -lcposix" -fi - - - - - - -echo "$as_me:$LINENO: checking for ${CC-cc} option to accept ANSI C" >&5 -echo $ECHO_N "checking for ${CC-cc} option to accept ANSI C... $ECHO_C" >&6 -if test "${am_cv_prog_cc_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - am_cv_prog_cc_stdc=no -ac_save_CC="$CC" -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ - -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - am_cv_prog_cc_stdc="$ac_arg"; break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest.$ac_ext -done -CC="$ac_save_CC" - -fi - -if test -z "$am_cv_prog_cc_stdc"; then - echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 -else - echo "$as_me:$LINENO: result: $am_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$am_cv_prog_cc_stdc" >&6 -fi -case "x$am_cv_prog_cc_stdc" in - x|xno) ;; - *) CC="$CC $am_cv_prog_cc_stdc" ;; -esac - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6 -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check" >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -HELP2MAN=${HELP2MAN-"${am_missing_run}help2man"} - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - done - done - ;; -esac -done - - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL=$ac_install_sh - fi -fi -echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - echo "$as_me:$LINENO: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - RANLIB=$ac_ct_RANLIB -else - RANLIB="$ac_cv_prog_RANLIB" -fi - - - - # Make sure that _GNU_SOURCE is defined for all subsequent - # configure-time compile tests. - # This definition must be emitted (into confdefs.h) before any - # test that involves compilation. - cat >>confdefs.h <<\EOF -#ifndef _GNU_SOURCE -# define _GNU_SOURCE -#endif -EOF - - # Emit this code into config.h.in. - # The ifndef is to avoid redefinition warnings. - - - - -cat >>confdefs.h <<\_ACEOF -#define __EXTENSIONS__ 1 -_ACEOF - -# Check whether --enable-largefile or --disable-largefile was given. -if test "${enable_largefile+set}" = set; then - enableval="$enable_largefile" - -fi; -if test "$enable_largefile" != no; then - - echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5 -echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6 -if test "${ac_cv_sys_largefile_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_sys_largefile_CC=no - if test "$GCC" != yes; then - ac_save_CC=$CC - while :; do - # IRIX 6.2 and later do not support large files by default, - # so use the C compiler's -n32 option if that helps. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ - - ; - return 0; -} -_ACEOF - rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext - CC="$CC -n32" - rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sys_largefile_CC=' -n32'; break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext - break - done - CC=$ac_save_CC - rm -f conftest.$ac_ext - fi -fi -echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5 -echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6 - if test "$ac_cv_sys_largefile_CC" != no; then - CC=$CC$ac_cv_sys_largefile_CC - fi - - echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6 -if test "${ac_cv_sys_file_offset_bits+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - while :; do - ac_cv_sys_file_offset_bits=no - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#define _FILE_OFFSET_BITS 64 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sys_file_offset_bits=64; break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest.$ac_ext - break -done -fi -echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5 -echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6 -if test "$ac_cv_sys_file_offset_bits" != no; then - -cat >>confdefs.h <<_ACEOF -#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits -_ACEOF - -fi -rm -f conftest* - echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5 -echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6 -if test "${ac_cv_sys_large_files+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - while :; do - ac_cv_sys_large_files=no - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#define _LARGE_FILES 1 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sys_large_files=1; break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest.$ac_ext - break -done -fi -echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5 -echo "${ECHO_T}$ac_cv_sys_large_files" >&6 -if test "$ac_cv_sys_large_files" != no; then - -cat >>confdefs.h <<_ACEOF -#define _LARGE_FILES $ac_cv_sys_large_files -_ACEOF - -fi -rm -f conftest* -fi - - -echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_prog_cc_stdc=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_stdc=$ac_arg -break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext -done -rm -f conftest.$ac_ext conftest.$ac_objext -CC=$ac_save_CC - -fi - -case "x$ac_cv_prog_cc_stdc" in - x|xno) - echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 ;; - *) - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 - CC="$CC $ac_cv_prog_cc_stdc" ;; -esac - -echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 -echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 -if test "${ac_cv_c_const+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -/* FIXME: Include the comments suggested by Paul. */ -#ifndef __cplusplus - /* Ultrix mips cc rejects this. */ - typedef int charset[2]; - const charset x; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *ccp; - char **p; - /* NEC SVR4.0.2 mips cc rejects this. */ - struct point {int x, y;}; - static struct point const zero = {0,0}; - /* AIX XL C 1.02.0.0 rejects this. - It does not let you subtract one const X* pointer from another in - an arm of an if-expression whose if-part is not a constant - expression */ - const char *g = "string"; - ccp = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++ccp; - p = (char**) ccp; - ccp = (char const *const *) p; - { /* SCO 3.2v4 cc rejects this. */ - char *t; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - } - { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ - int x[] = {25, 17}; - const int *foo = &x[0]; - ++foo; - } - { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ - typedef const int *iptr; - iptr p = 0; - ++p; - } - { /* AIX XL C 1.02.0.0 rejects this saying - "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ - struct s { int j; const int *ap[3]; }; - struct s *b; b->j = 5; - } - { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ - const int foo = 10; - } -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_const=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_c_const=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 -echo "${ECHO_T}$ac_cv_c_const" >&6 -if test $ac_cv_c_const = no; then - -cat >>confdefs.h <<\_ACEOF -#define const -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for inline" >&5 -echo $ECHO_N "checking for inline... $ECHO_C" >&6 -if test "${ac_cv_c_inline+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_c_inline=no -for ac_kw in inline __inline__ __inline; do - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#ifndef __cplusplus -static $ac_kw int static_foo () {return 0; } -$ac_kw int foo () {return 0; } -#endif - -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_inline=$ac_kw; break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest.$ac_ext -done - -fi -echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 -echo "${ECHO_T}$ac_cv_c_inline" >&6 -case $ac_cv_c_inline in - inline | yes) ;; - no) -cat >>confdefs.h <<\_ACEOF -#define inline -_ACEOF - ;; - *) cat >>confdefs.h <<_ACEOF -#define inline $ac_cv_c_inline -_ACEOF - ;; -esac - - - echo "$as_me:$LINENO: checking for variable-length arrays" >&5 -echo $ECHO_N "checking for variable-length arrays... $ECHO_C" >&6 -if test "${ac_cv_c_vararrays+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -static int x; char a[++x]; a[sizeof a - 1] = 0; return a[0]; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_vararrays=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_c_vararrays=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_c_vararrays" >&5 -echo "${ECHO_T}$ac_cv_c_vararrays" >&6 - if test $ac_cv_c_vararrays = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_C_VARARRAYS 1 -_ACEOF - - fi - - - -cat >>confdefs.h <<\_ACEOF -#define DEFAULT_DIFF_PROGRAM "diff" -_ACEOF - - - -cat >>confdefs.h <<\_ACEOF -#define DEFAULT_EDITOR_PROGRAM "ed" -_ACEOF - - -# Extract the first word of "pr", so it can be a program name with args. -set dummy pr; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_PR_PROGRAM+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $PR_PROGRAM in - [\\/]* | ?:[\\/]*) - ac_cv_path_PR_PROGRAM="$PR_PROGRAM" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PR_PROGRAM="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_path_PR_PROGRAM" && ac_cv_path_PR_PROGRAM="""" - ;; -esac -fi -PR_PROGRAM=$ac_cv_path_PR_PROGRAM - -if test -n "$PR_PROGRAM"; then - echo "$as_me:$LINENO: result: $PR_PROGRAM" >&5 -echo "${ECHO_T}$PR_PROGRAM" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - -cat >>confdefs.h <<_ACEOF -#define PR_PROGRAM "$PR_PROGRAM" -_ACEOF - - -echo "$as_me:$LINENO: checking for stdbool.h that conforms to C99" >&5 -echo $ECHO_N "checking for stdbool.h that conforms to C99... $ECHO_C" >&6 -if test "${ac_cv_header_stdbool_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" - - #include - #ifndef bool - "error: bool is not defined" - #endif - #ifndef false - "error: false is not defined" - #endif - #ifndef true - "error: false is not defined" - #endif - #ifndef __bool_true_false_are_defined - "error: __bool_true_false_are_defined is not defined" - #endif - - struct s { _Bool s: 1; _Bool t; } s; - - char a[true == 1 ? 1 : -1]; - char b[false == 0 ? 1 : -1]; - char c[__bool_true_false_are_defined == 1 ? 1 : -1]; - char d[(bool) -0.5 == true ? 1 : -1]; - char e[(bool) &s == true ? 1 : -1]; - char f[(_Bool) -0.0 == false ? 1 : -1]; - char g[true]; - char h[sizeof (_Bool)]; - char i[sizeof s.t]; - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ - return !a + !b + !c + !d + !e + !f + !g + !h + !i; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_stdbool_h=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_header_stdbool_h=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdbool_h" >&5 -echo "${ECHO_T}$ac_cv_header_stdbool_h" >&6 - if test $ac_cv_header_stdbool_h = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_STDBOOL_H 1 -_ACEOF - - fi - -echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#include -#include -#include - -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_cv_header_stdc=no -fi -rm -f conftest.err conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - exit(2); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. - - - - - - - - - -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default - -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_Header=no" -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - - - - - - - - -for ac_header in fcntl.h libintl.h limits.h locale.h \ - stdlib.h string.h sys/file.h time.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - -echo "$as_me:$LINENO: checking for struct stat.st_blksize" >&5 -echo $ECHO_N "checking for struct stat.st_blksize... $ECHO_C" >&6 -if test "${ac_cv_member_struct_stat_st_blksize+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -static struct stat ac_aggr; -if (ac_aggr.st_blksize) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_member_struct_stat_st_blksize=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_member_struct_stat_st_blksize=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_blksize" >&5 -echo "${ECHO_T}$ac_cv_member_struct_stat_st_blksize" >&6 -if test $ac_cv_member_struct_stat_st_blksize = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_BLKSIZE 1 -_ACEOF - - -fi - -echo "$as_me:$LINENO: checking for struct stat.st_rdev" >&5 -echo $ECHO_N "checking for struct stat.st_rdev... $ECHO_C" >&6 -if test "${ac_cv_member_struct_stat_st_rdev+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -static struct stat ac_aggr; -if (ac_aggr.st_rdev) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_member_struct_stat_st_rdev=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_member_struct_stat_st_rdev=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_rdev" >&5 -echo "${ECHO_T}$ac_cv_member_struct_stat_st_rdev" >&6 -if test $ac_cv_member_struct_stat_st_rdev = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_STAT_ST_RDEV 1 -_ACEOF - - -fi - -echo "$as_me:$LINENO: checking for ptrdiff_t" >&5 -echo $ECHO_N "checking for ptrdiff_t... $ECHO_C" >&6 -if test "${ac_cv_type_ptrdiff_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -if ((ptrdiff_t *) 0) - return 0; -if (sizeof (ptrdiff_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_ptrdiff_t=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_type_ptrdiff_t=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5 -echo "${ECHO_T}$ac_cv_type_ptrdiff_t" >&6 -if test $ac_cv_type_ptrdiff_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define ptrdiff_t int -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for ssize_t" >&5 -echo $ECHO_N "checking for ssize_t... $ECHO_C" >&6 -if test "${ac_cv_type_ssize_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -if ((ssize_t *) 0) - return 0; -if (sizeof (ssize_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_ssize_t=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_type_ssize_t=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_ssize_t" >&5 -echo "${ECHO_T}$ac_cv_type_ssize_t" >&6 -if test $ac_cv_type_ssize_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define ssize_t int -_ACEOF - -fi - - - echo "$as_me:$LINENO: checking for unsigned long long" >&5 -echo $ECHO_N "checking for unsigned long long... $ECHO_C" >&6 -if test "${ac_cv_type_unsigned_long_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -unsigned long long ull = 1; int i = 63; -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -unsigned long long ullmax = (unsigned long long) -1; - return ull << i | ull >> i | ullmax / ull | ullmax % ull; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_unsigned_long_long=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_type_unsigned_long_long=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_long_long" >&5 -echo "${ECHO_T}$ac_cv_type_unsigned_long_long" >&6 - if test $ac_cv_type_unsigned_long_long = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_UNSIGNED_LONG_LONG 1 -_ACEOF - - fi - - - - echo "$as_me:$LINENO: checking for uintmax_t" >&5 -echo $ECHO_N "checking for uintmax_t... $ECHO_C" >&6 -if test "${ac_cv_type_uintmax_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -if ((uintmax_t *) 0) - return 0; -if (sizeof (uintmax_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_uintmax_t=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_type_uintmax_t=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_uintmax_t" >&5 -echo "${ECHO_T}$ac_cv_type_uintmax_t" >&6 -if test $ac_cv_type_uintmax_t = yes; then - : -else - test $ac_cv_type_unsigned_long_long = yes \ - && ac_type='unsigned long long' \ - || ac_type='unsigned long' - -cat >>confdefs.h <<_ACEOF -#define uintmax_t $ac_type -_ACEOF - -fi - - - - MKINSTALLDIRS= - if test -n "$ac_aux_dir"; then - MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" - fi - if test -z "$MKINSTALLDIRS"; then - MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" - fi - - - - - - # Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_MSGFMT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case "$MSGFMT" in - /*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_MSGFMT="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" - ;; -esac -fi -MSGFMT="$ac_cv_path_MSGFMT" -if test "$MSGFMT" != ":"; then - echo "$as_me:$LINENO: result: $MSGFMT" >&5 -echo "${ECHO_T}$MSGFMT" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_GMSGFMT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT - -if test -n "$GMSGFMT"; then - echo "$as_me:$LINENO: result: $GMSGFMT" >&5 -echo "${ECHO_T}$GMSGFMT" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - - # Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_XGETTEXT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case "$XGETTEXT" in - /*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - ac_cv_path_XGETTEXT="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" - ;; -esac -fi -XGETTEXT="$ac_cv_path_XGETTEXT" -if test "$XGETTEXT" != ":"; then - echo "$as_me:$LINENO: result: $XGETTEXT" >&5 -echo "${ECHO_T}$XGETTEXT" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - rm -f messages.po - - # Extract the first word of "msgmerge", so it can be a program name with args. -set dummy msgmerge; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_MSGMERGE+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case "$MSGMERGE" in - /*) - ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if $ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1; then - ac_cv_path_MSGMERGE="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" - ;; -esac -fi -MSGMERGE="$ac_cv_path_MSGMERGE" -if test "$MSGMERGE" != ":"; then - echo "$as_me:$LINENO: result: $MSGMERGE" >&5 -echo "${ECHO_T}$MSGMERGE" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - - if test "$GMSGFMT" != ":"; then - if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && - (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` - echo "$as_me:$LINENO: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5 -echo "${ECHO_T}found $GMSGFMT program is not GNU msgfmt; ignore it" >&6 - GMSGFMT=":" - fi - fi - - if test "$XGETTEXT" != ":"; then - if $XGETTEXT --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 && - (if $XGETTEXT --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5 -echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6 - XGETTEXT=":" - fi - rm -f messages.po - fi - - ac_config_commands="$ac_config_commands default-1" - - - - if test "X$prefix" = "XNONE"; then - acl_final_prefix="$ac_default_prefix" - else - acl_final_prefix="$prefix" - fi - if test "X$exec_prefix" = "XNONE"; then - acl_final_exec_prefix='${prefix}' - else - acl_final_exec_prefix="$exec_prefix" - fi - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" - prefix="$acl_save_prefix" - -# Make sure we can run config.sub. -$ac_config_sub sun4 >/dev/null 2>&1 || - { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 -echo "$as_me: error: cannot run $ac_config_sub" >&2;} - { (exit 1); exit 1; }; } - -echo "$as_me:$LINENO: checking build system type" >&5 -echo $ECHO_N "checking build system type... $ECHO_C" >&6 -if test "${ac_cv_build+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_build_alias=$build_alias -test -z "$ac_cv_build_alias" && - ac_cv_build_alias=`$ac_config_guess` -test -z "$ac_cv_build_alias" && - { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -echo "$as_me: error: cannot guess build type; you must specify one" >&2;} - { (exit 1); exit 1; }; } -ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:$LINENO: result: $ac_cv_build" >&5 -echo "${ECHO_T}$ac_cv_build" >&6 -build=$ac_cv_build -build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - - -echo "$as_me:$LINENO: checking host system type" >&5 -echo $ECHO_N "checking host system type... $ECHO_C" >&6 -if test "${ac_cv_host+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_host_alias=$host_alias -test -z "$ac_cv_host_alias" && - ac_cv_host_alias=$ac_cv_build_alias -ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || - { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 -echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -echo "${ECHO_T}$ac_cv_host" >&6 -host=$ac_cv_host -host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - - - -# Check whether --with-gnu-ld or --without-gnu-ld was given. -if test "${with_gnu_ld+set}" = set; then - withval="$with_gnu_ld" - test "$withval" = no || with_gnu_ld=yes -else - with_gnu_ld=no -fi; -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - echo "$as_me:$LINENO: checking for ld used by GCC" >&5 -echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6 - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [\\/]* | [A-Za-z]:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the path of ld - ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - echo "$as_me:$LINENO: checking for GNU ld" >&5 -echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 -else - echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 -fi -if test "${acl_cv_path_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -z "$LD"; then - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - acl_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break - fi - fi - done - IFS="$ac_save_ifs" -else - acl_cv_path_LD="$LD" # Let the user override the test with a path. -fi -fi - -LD="$acl_cv_path_LD" -if test -n "$LD"; then - echo "$as_me:$LINENO: result: $LD" >&5 -echo "${ECHO_T}$LD" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi -test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 -if test "${acl_cv_prog_gnu_ld+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 &5; then - acl_cv_prog_gnu_ld=yes -else - acl_cv_prog_gnu_ld=no -fi -fi -echo "$as_me:$LINENO: result: $acl_cv_prog_gnu_ld" >&5 -echo "${ECHO_T}$acl_cv_prog_gnu_ld" >&6 -with_gnu_ld=$acl_cv_prog_gnu_ld - - - - echo "$as_me:$LINENO: checking for shared library run path origin" >&5 -echo $ECHO_N "checking for shared library run path origin... $ECHO_C" >&6 -if test "${acl_cv_rpath+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ - ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh - . ./conftest.sh - rm -f ./conftest.sh - acl_cv_rpath=done - -fi -echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5 -echo "${ECHO_T}$acl_cv_rpath" >&6 - wl="$acl_cv_wl" - libext="$acl_cv_libext" - shlibext="$acl_cv_shlibext" - hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" - hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" - hardcode_direct="$acl_cv_hardcode_direct" - hardcode_minus_L="$acl_cv_hardcode_minus_L" - sys_lib_search_path_spec="$acl_cv_sys_lib_search_path_spec" - sys_lib_dlsearch_path_spec="$acl_cv_sys_lib_dlsearch_path_spec" - - - - - - - - - - - - - echo "$as_me:$LINENO: checking whether NLS is requested" >&5 -echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6 - # Check whether --enable-nls or --disable-nls was given. -if test "${enable_nls+set}" = set; then - enableval="$enable_nls" - USE_NLS=$enableval -else - USE_NLS=yes -fi; - echo "$as_me:$LINENO: result: $USE_NLS" >&5 -echo "${ECHO_T}$USE_NLS" >&6 - - - - LIBINTL= - LTLIBINTL= - POSUB= - - if test "$USE_NLS" = "yes"; then - gt_use_preinstalled_gnugettext=no - - - - - - - echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5 -echo $ECHO_N "checking for GNU gettext in libc... $ECHO_C" >&6 -if test "${gt_cv_func_gnugettext1_libc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings; -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -bindtextdomain ("", ""); -return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - gt_cv_func_gnugettext1_libc=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -gt_cv_func_gnugettext1_libc=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libc" >&5 -echo "${ECHO_T}$gt_cv_func_gnugettext1_libc" >&6 - - if test "$gt_cv_func_gnugettext1_libc" != "yes"; then - - - - - - - - - use_additional=yes - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - -# Check whether --with-libiconv-prefix or --without-libiconv-prefix was given. -if test "${with_libiconv_prefix+set}" = set; then - withval="$with_libiconv_prefix" - - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - else - additional_includedir="$withval/include" - additional_libdir="$withval/lib" - fi - fi - -fi; - LIBICONV= - LTLIBICONV= - INCICONV= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='iconv ' - while test -n "$names_next_round"; do - names_this_round="$names_next_round" - names_next_round= - for name in $names_this_round; do - already_handled= - for n in $names_already_handled; do - if test "$n" = "$name"; then - already_handled=yes - break - fi - done - if test -z "$already_handled"; then - names_already_handled="$names_already_handled $name" - uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` - eval value=\"\$HAVE_LIB$uppername\" - if test -n "$value"; then - if test "$value" = yes; then - eval value=\"\$LIB$uppername\" - test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" - else - : - fi - else - found_dir= - found_la= - found_so= - found_a= - if test $use_additional = yes; then - if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then - found_dir="$additional_libdir" - found_so="$additional_libdir/lib$name.$shlibext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - else - if test -f "$additional_libdir/lib$name.$libext"; then - found_dir="$additional_libdir" - found_a="$additional_libdir/lib$name.$libext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - fi - fi - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then - found_dir="$dir" - found_so="$dir/lib$name.$shlibext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - else - if test -f "$dir/lib$name.$libext"; then - found_dir="$dir" - found_a="$dir/lib$name.$libext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - if test "X$found_dir" = "X/usr/lib"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - else - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $found_dir" - fi - if test "$hardcode_direct" = yes; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - else - if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $found_dir" - fi - else - haveit= - for x in $LDFLAGS $LIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" - fi - if test "$hardcode_minus_L" != no; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" - else - LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" - else - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" - fi - fi - additional_includedir= - case "$found_dir" in - */lib | */lib/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - for x in $CPPFLAGS $INCICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" - fi - fi - fi - fi - fi - if test -n "$found_la"; then - save_libdir="$libdir" - case "$found_la" in - */* | *\\*) . "$found_la" ;; - *) . "./$found_la" ;; - esac - libdir="$save_libdir" - for dep in $dependency_libs; do - case "$dep" in - -L*) - additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - if test "X$additional_libdir" != "X/usr/lib"; then - haveit= - if test "X$additional_libdir" = "X/usr/local/lib"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - haveit= - for x in $LDFLAGS $LIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" - fi - fi - haveit= - for x in $LDFLAGS $LTLIBICONV; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" - fi - fi - fi - fi - ;; - -l*) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` - ;; - *.la) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` - ;; - *) - LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" - ;; - esac - done - fi - else - LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" - fi - fi - fi - done - done - if test "X$rpathdirs" != "X"; then - if test -n "$hardcode_libdir_separator"; then - alldirs= - for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" - done - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" - else - for found_dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$found_dir" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" - done - fi - fi - if test "X$ltrpathdirs" != "X"; then - for found_dir in $ltrpathdirs; do - LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" - done - fi - - - am_save_CPPFLAGS="$CPPFLAGS" - - for element in $INCICONV; do - haveit= - for x in $CPPFLAGS; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" - fi - done - - - echo "$as_me:$LINENO: checking for iconv" >&5 -echo $ECHO_N "checking for iconv... $ECHO_C" >&6 -if test "${am_cv_func_iconv+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#include -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - am_cv_func_iconv=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - if test "$am_cv_func_iconv" != yes; then - am_save_LIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#include -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - am_cv_lib_iconv=yes - am_cv_func_iconv=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - LIBS="$am_save_LIBS" - fi - -fi -echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 -echo "${ECHO_T}$am_cv_func_iconv" >&6 - if test "$am_cv_func_iconv" = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_ICONV 1 -_ACEOF - - fi - if test "$am_cv_lib_iconv" = yes; then - echo "$as_me:$LINENO: checking how to link with libiconv" >&5 -echo $ECHO_N "checking how to link with libiconv... $ECHO_C" >&6 - echo "$as_me:$LINENO: result: $LIBICONV" >&5 -echo "${ECHO_T}$LIBICONV" >&6 - else - CPPFLAGS="$am_save_CPPFLAGS" - LIBICONV= - LTLIBICONV= - fi - - - - - - - use_additional=yes - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - -# Check whether --with-libintl-prefix or --without-libintl-prefix was given. -if test "${with_libintl_prefix+set}" = set; then - withval="$with_libintl_prefix" - - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - else - additional_includedir="$withval/include" - additional_libdir="$withval/lib" - fi - fi - -fi; - LIBINTL= - LTLIBINTL= - INCINTL= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='intl ' - while test -n "$names_next_round"; do - names_this_round="$names_next_round" - names_next_round= - for name in $names_this_round; do - already_handled= - for n in $names_already_handled; do - if test "$n" = "$name"; then - already_handled=yes - break - fi - done - if test -z "$already_handled"; then - names_already_handled="$names_already_handled $name" - uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` - eval value=\"\$HAVE_LIB$uppername\" - if test -n "$value"; then - if test "$value" = yes; then - eval value=\"\$LIB$uppername\" - test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" - else - : - fi - else - found_dir= - found_la= - found_so= - found_a= - if test $use_additional = yes; then - if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then - found_dir="$additional_libdir" - found_so="$additional_libdir/lib$name.$shlibext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - else - if test -f "$additional_libdir/lib$name.$libext"; then - found_dir="$additional_libdir" - found_a="$additional_libdir/lib$name.$libext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - fi - fi - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIBINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then - found_dir="$dir" - found_so="$dir/lib$name.$shlibext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - else - if test -f "$dir/lib$name.$libext"; then - found_dir="$dir" - found_a="$dir/lib$name.$libext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - if test "X$found_dir" = "X/usr/lib"; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" - else - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $found_dir" - fi - if test "$hardcode_direct" = yes; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" - else - if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $found_dir" - fi - else - haveit= - for x in $LDFLAGS $LIBINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" - fi - if test "$hardcode_minus_L" != no; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" - else - LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" - else - LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" - fi - fi - additional_includedir= - case "$found_dir" in - */lib | */lib/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - for x in $CPPFLAGS $INCINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" - fi - fi - fi - fi - fi - if test -n "$found_la"; then - save_libdir="$libdir" - case "$found_la" in - */* | *\\*) . "$found_la" ;; - *) . "./$found_la" ;; - esac - libdir="$save_libdir" - for dep in $dependency_libs; do - case "$dep" in - -L*) - additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - if test "X$additional_libdir" != "X/usr/lib"; then - haveit= - if test "X$additional_libdir" = "X/usr/local/lib"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - haveit= - for x in $LDFLAGS $LIBINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" - fi - fi - haveit= - for x in $LDFLAGS $LTLIBINTL; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" - fi - fi - fi - fi - ;; - -l*) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` - ;; - *.la) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` - ;; - *) - LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" - ;; - esac - done - fi - else - LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" - fi - fi - fi - done - done - if test "X$rpathdirs" != "X"; then - if test -n "$hardcode_libdir_separator"; then - alldirs= - for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" - done - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" - else - for found_dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$found_dir" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" - done - fi - fi - if test "X$ltrpathdirs" != "X"; then - for found_dir in $ltrpathdirs; do - LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" - done - fi - - echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5 -echo $ECHO_N "checking for GNU gettext in libintl... $ECHO_C" >&6 -if test "${gt_cv_func_gnugettext1_libintl+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - gt_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $INCINTL" - gt_save_LIBS="$LIBS" - LIBS="$LIBS $LIBINTL" - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias (); -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -bindtextdomain ("", ""); -return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings + *_nl_expand_alias (0) - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - gt_cv_func_gnugettext1_libintl=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -gt_cv_func_gnugettext1_libintl=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - if test "$gt_cv_func_gnugettext1_libintl" != yes && test -n "$LIBICONV"; then - LIBS="$LIBS $LIBICONV" - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias (); -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -bindtextdomain ("", ""); -return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings + *_nl_expand_alias (0) - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - LIBINTL="$LIBINTL $LIBICONV" - LTLIBINTL="$LTLIBINTL $LTLIBICONV" - gt_cv_func_gnugettext1_libintl=yes - -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - fi - CPPFLAGS="$gt_save_CPPFLAGS" - LIBS="$gt_save_LIBS" -fi -echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libintl" >&5 -echo "${ECHO_T}$gt_cv_func_gnugettext1_libintl" >&6 - fi - - if test "$gt_cv_func_gnugettext1_libc" = "yes" \ - || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \ - && test "$PACKAGE" != gettext; }; then - gt_use_preinstalled_gnugettext=yes - else - LIBINTL= - LTLIBINTL= - INCINTL= - fi - - - - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - -cat >>confdefs.h <<\_ACEOF -#define ENABLE_NLS 1 -_ACEOF - - else - USE_NLS=no - fi - fi - - if test "$USE_NLS" = "yes"; then - - if test "$gt_use_preinstalled_gnugettext" = "yes"; then - if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then - echo "$as_me:$LINENO: checking how to link with libintl" >&5 -echo $ECHO_N "checking how to link with libintl... $ECHO_C" >&6 - echo "$as_me:$LINENO: result: $LIBINTL" >&5 -echo "${ECHO_T}$LIBINTL" >&6 - - for element in $INCINTL; do - haveit= - for x in $CPPFLAGS; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" - fi - done - - fi - - -cat >>confdefs.h <<\_ACEOF -#define HAVE_GETTEXT 1 -_ACEOF - - -cat >>confdefs.h <<\_ACEOF -#define HAVE_DCGETTEXT 1 -_ACEOF - - fi - - POSUB=po - fi - - - - INTLLIBS="$LIBINTL" - - - - - - -XGETTEXT="AWK='$AWK' \$(SHELL) \$(top_srcdir)/exgettext $XGETTEXT" - - - - - -ac_header_dirent=no -for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do - as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5 -echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#include <$ac_hdr> - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -if ((DIR *) 0) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_Header=no" -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 -_ACEOF - -ac_header_dirent=$ac_hdr; break -fi - -done -# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. -if test $ac_header_dirent = dirent.h; then - echo "$as_me:$LINENO: checking for library containing opendir" >&5 -echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6 -if test "${ac_cv_search_opendir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_func_search_save_LIBS=$LIBS -ac_cv_search_opendir=no -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char opendir (); -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -opendir (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_opendir="none required" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -if test "$ac_cv_search_opendir" = no; then - for ac_lib in dir; do - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char opendir (); -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -opendir (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_opendir="-l$ac_lib" -break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - done -fi -LIBS=$ac_func_search_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 -echo "${ECHO_T}$ac_cv_search_opendir" >&6 -if test "$ac_cv_search_opendir" != no; then - test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS" - -fi - -else - echo "$as_me:$LINENO: checking for library containing opendir" >&5 -echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6 -if test "${ac_cv_search_opendir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_func_search_save_LIBS=$LIBS -ac_cv_search_opendir=no -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char opendir (); -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -opendir (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_opendir="none required" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -if test "$ac_cv_search_opendir" = no; then - for ac_lib in x; do - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char opendir (); -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -opendir (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_opendir="-l$ac_lib" -break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - done -fi -LIBS=$ac_func_search_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 -echo "${ECHO_T}$ac_cv_search_opendir" >&6 -if test "$ac_cv_search_opendir" != no; then - test "$ac_cv_search_opendir" = "none required" || LIBS="$ac_cv_search_opendir $LIBS" - -fi - -fi - -echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5 -echo $ECHO_N "checking whether stat file-mode macros are broken... $ECHO_C" >&6 -if test "${ac_cv_header_stat_broken+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#include - -#if defined(S_ISBLK) && defined(S_IFDIR) -# if S_ISBLK (S_IFDIR) -You lose. -# endif -#endif - -#if defined(S_ISBLK) && defined(S_IFCHR) -# if S_ISBLK (S_IFCHR) -You lose. -# endif -#endif - -#if defined(S_ISLNK) && defined(S_IFREG) -# if S_ISLNK (S_IFREG) -You lose. -# endif -#endif - -#if defined(S_ISSOCK) && defined(S_IFREG) -# if S_ISSOCK (S_IFREG) -You lose. -# endif -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "You lose" >/dev/null 2>&1; then - ac_cv_header_stat_broken=yes -else - ac_cv_header_stat_broken=no -fi -rm -f conftest* - -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5 -echo "${ECHO_T}$ac_cv_header_stat_broken" >&6 -if test $ac_cv_header_stat_broken = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STAT_MACROS_BROKEN 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5 -echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6 -if test "${ac_cv_header_sys_wait_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#include -#ifndef WEXITSTATUS -# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8) -#endif -#ifndef WIFEXITED -# define WIFEXITED(stat_val) (((stat_val) & 255) == 0) -#endif - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ - int s; - wait (&s); - s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_sys_wait_h=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_header_sys_wait_h=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5 -echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6 -if test $ac_cv_header_sys_wait_h = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_SYS_WAIT_H 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for nanoseconds member of struct stat.st_mtim" >&5 -echo $ECHO_N "checking for nanoseconds member of struct stat.st_mtim... $ECHO_C" >&6 -if test "${ac_cv_struct_st_mtim_nsec+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_save_CPPFLAGS="$CPPFLAGS" - ac_cv_struct_st_mtim_nsec=no - # tv_nsec -- the usual case - # _tv_nsec -- Solaris 2.6, if - # (defined _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED == 1 - # && !defined __EXTENSIONS__) - # st__tim.tv_nsec -- UnixWare 2.1.2 - for ac_val in tv_nsec _tv_nsec st__tim.tv_nsec; do - CPPFLAGS="$ac_save_CPPFLAGS -DST_MTIM_NSEC=$ac_val" - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#include -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -struct stat s; s.st_mtim.ST_MTIM_NSEC; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_struct_st_mtim_nsec=$ac_val; break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest.$ac_ext - done - CPPFLAGS="$ac_save_CPPFLAGS" -fi -echo "$as_me:$LINENO: result: $ac_cv_struct_st_mtim_nsec" >&5 -echo "${ECHO_T}$ac_cv_struct_st_mtim_nsec" >&6 - - if test $ac_cv_struct_st_mtim_nsec != no; then - -cat >>confdefs.h <<_ACEOF -#define ST_MTIM_NSEC $ac_cv_struct_st_mtim_nsec -_ACEOF - - fi - - -echo "$as_me:$LINENO: checking for pid_t" >&5 -echo $ECHO_N "checking for pid_t... $ECHO_C" >&6 -if test "${ac_cv_type_pid_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -if ((pid_t *) 0) - return 0; -if (sizeof (pid_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_pid_t=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_type_pid_t=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 -echo "${ECHO_T}$ac_cv_type_pid_t" >&6 -if test $ac_cv_type_pid_t = yes; then - : -else - -cat >>confdefs.h <<_ACEOF -#define pid_t int -_ACEOF - -fi - -echo "$as_me:$LINENO: checking return type of signal handlers" >&5 -echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 -if test "${ac_cv_type_signal+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#include -#ifdef signal -# undef signal -#endif -#ifdef __cplusplus -extern "C" void (*signal (int, void (*)(int)))(int); -#else -void (*signal ()) (); -#endif - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -int i; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_signal=void -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_type_signal=int -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 -echo "${ECHO_T}$ac_cv_type_signal" >&6 - -cat >>confdefs.h <<_ACEOF -#define RETSIGTYPE $ac_cv_type_signal -_ACEOF - - - - - - - - - - - -for ac_func in diraccess dup2 gettimeofday \ - sigaction sigprocmask strchr strerror tmpnam -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -char (*f) (); - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - - - -for ac_func in memchr mkstemp strcasecmp waitpid -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -char (*f) (); - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -else - LIBOBJS="$LIBOBJS $ac_func.$ac_objext" -fi -done - - -if test $ac_cv_func_mkstemp != yes; then - LIBOBJS="$LIBOBJS tempname.$ac_objext" -fi -echo "$as_me:$LINENO: checking whether closedir returns void" >&5 -echo $ECHO_N "checking whether closedir returns void... $ECHO_C" >&6 -if test "${ac_cv_func_closedir_void+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_func_closedir_void=yes -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#include <$ac_header_dirent> -#ifndef __cplusplus -int closedir (); -#endif - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -exit (closedir (opendir (".")) != 0); - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_closedir_void=no -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_func_closedir_void=yes -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_func_closedir_void" >&5 -echo "${ECHO_T}$ac_cv_func_closedir_void" >&6 -if test $ac_cv_func_closedir_void = yes; then - -cat >>confdefs.h <<\_ACEOF -#define CLOSEDIR_VOID 1 -_ACEOF - -fi - - - -for ac_header in unistd.h vfork.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - -for ac_func in fork vfork -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -char (*f) (); - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -ac_cv_func_fork_works=$ac_cv_func_fork -if test "x$ac_cv_func_fork" = xyes; then - echo "$as_me:$LINENO: checking for working fork" >&5 -echo $ECHO_N "checking for working fork... $ECHO_C" >&6 -if test "${ac_cv_func_fork_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_func_fork_works=cross -else - cat >conftest.$ac_ext <<_ACEOF -/* By Ruediger Kuhlmann. */ - #include - #if HAVE_UNISTD_H - # include - #endif - /* Some systems only have a dummy stub for fork() */ - int main () - { - if (fork() < 0) - exit (1); - exit (0); - } -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_fork_works=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_func_fork_works=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_func_fork_works" >&5 -echo "${ECHO_T}$ac_cv_func_fork_works" >&6 - -fi -if test "x$ac_cv_func_fork_works" = xcross; then - case $host in - *-*-amigaos* | *-*-msdosdjgpp*) - # Override, as these systems have only a dummy fork() stub - ac_cv_func_fork_works=no - ;; - *) - ac_cv_func_fork_works=yes - ;; - esac - { echo "$as_me:$LINENO: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5 -echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;} -fi -ac_cv_func_vfork_works=$ac_cv_func_vfork -if test "x$ac_cv_func_vfork" = xyes; then - echo "$as_me:$LINENO: checking for working vfork" >&5 -echo $ECHO_N "checking for working vfork... $ECHO_C" >&6 -if test "${ac_cv_func_vfork_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_func_vfork_works=cross -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -/* Thanks to Paul Eggert for this test. */ -#include -#include -#include -#if HAVE_UNISTD_H -# include -#endif -#if HAVE_VFORK_H -# include -#endif -/* On some sparc systems, changes by the child to local and incoming - argument registers are propagated back to the parent. The compiler - is told about this with #include , but some compilers - (e.g. gcc -O) don't grok . Test for this by using a - static variable whose address is put into a register that is - clobbered by the vfork. */ -static -#ifdef __cplusplus -sparc_address_test (int arg) -# else -sparc_address_test (arg) int arg; -#endif -{ - static pid_t child; - if (!child) { - child = vfork (); - if (child < 0) { - perror ("vfork"); - _exit(2); - } - if (!child) { - arg = getpid(); - write(-1, "", 0); - _exit (arg); - } - } -} - -int -main () -{ - pid_t parent = getpid (); - pid_t child; - - sparc_address_test (); - - child = vfork (); - - if (child == 0) { - /* Here is another test for sparc vfork register problems. This - test uses lots of local variables, at least as many local - variables as main has allocated so far including compiler - temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris - 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should - reuse the register of parent for one of the local variables, - since it will think that parent can't possibly be used any more - in this routine. Assigning to the local variable will thus - munge parent in the parent process. */ - pid_t - p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(), - p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid(); - /* Convince the compiler that p..p7 are live; otherwise, it might - use the same hardware register for all 8 local variables. */ - if (p != p1 || p != p2 || p != p3 || p != p4 - || p != p5 || p != p6 || p != p7) - _exit(1); - - /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent - from child file descriptors. If the child closes a descriptor - before it execs or exits, this munges the parent's descriptor - as well. Test for this by closing stdout in the child. */ - _exit(close(fileno(stdout)) != 0); - } else { - int status; - struct stat st; - - while (wait(&status) != child) - ; - exit( - /* Was there some problem with vforking? */ - child < 0 - - /* Did the child fail? (This shouldn't happen.) */ - || status - - /* Did the vfork/compiler bug occur? */ - || parent != getpid() - - /* Did the file descriptor bug occur? */ - || fstat(fileno(stdout), &st) != 0 - ); - } -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_vfork_works=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_func_vfork_works=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_func_vfork_works" >&5 -echo "${ECHO_T}$ac_cv_func_vfork_works" >&6 - -fi; -if test "x$ac_cv_func_fork_works" = xcross; then - ac_cv_func_vfork_works=ac_cv_func_vfork - { echo "$as_me:$LINENO: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5 -echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;} -fi - -if test "x$ac_cv_func_vfork_works" = xyes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_WORKING_VFORK 1 -_ACEOF - -else - -cat >>confdefs.h <<\_ACEOF -#define vfork fork -_ACEOF - -fi -if test "x$ac_cv_func_fork_works" = xyes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_WORKING_FORK 1 -_ACEOF - -fi - - -for ac_func in vprintf -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -char (*f) (); - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -echo "$as_me:$LINENO: checking for _doprnt" >&5 -echo $ECHO_N "checking for _doprnt... $ECHO_C" >&6 -if test "${ac_cv_func__doprnt+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char _doprnt (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char _doprnt (); -char (*f) (); - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub__doprnt) || defined (__stub____doprnt) -choke me -#else -f = _doprnt; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func__doprnt=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_func__doprnt=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5 -echo "${ECHO_T}$ac_cv_func__doprnt" >&6 -if test $ac_cv_func__doprnt = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_DOPRNT 1 -_ACEOF - -fi - -fi -done - - -echo "$as_me:$LINENO: checking whether clearerr_unlocked is declared" >&5 -echo $ECHO_N "checking whether clearerr_unlocked is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_clearerr_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef clearerr_unlocked - char *p = (char *) clearerr_unlocked; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_clearerr_unlocked=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_have_decl_clearerr_unlocked=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_clearerr_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_clearerr_unlocked" >&6 -if test $ac_cv_have_decl_clearerr_unlocked = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_CLEARERR_UNLOCKED 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_CLEARERR_UNLOCKED 0 -_ACEOF - - -fi -echo "$as_me:$LINENO: checking whether feof_unlocked is declared" >&5 -echo $ECHO_N "checking whether feof_unlocked is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_feof_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef feof_unlocked - char *p = (char *) feof_unlocked; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_feof_unlocked=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_have_decl_feof_unlocked=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_feof_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_feof_unlocked" >&6 -if test $ac_cv_have_decl_feof_unlocked = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_FEOF_UNLOCKED 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_FEOF_UNLOCKED 0 -_ACEOF - - -fi -echo "$as_me:$LINENO: checking whether ferror_unlocked is declared" >&5 -echo $ECHO_N "checking whether ferror_unlocked is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_ferror_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef ferror_unlocked - char *p = (char *) ferror_unlocked; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_ferror_unlocked=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_have_decl_ferror_unlocked=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_ferror_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_ferror_unlocked" >&6 -if test $ac_cv_have_decl_ferror_unlocked = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_FERROR_UNLOCKED 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_FERROR_UNLOCKED 0 -_ACEOF - - -fi -echo "$as_me:$LINENO: checking whether fflush_unlocked is declared" >&5 -echo $ECHO_N "checking whether fflush_unlocked is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_fflush_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef fflush_unlocked - char *p = (char *) fflush_unlocked; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_fflush_unlocked=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_have_decl_fflush_unlocked=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_fflush_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_fflush_unlocked" >&6 -if test $ac_cv_have_decl_fflush_unlocked = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_FFLUSH_UNLOCKED 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_FFLUSH_UNLOCKED 0 -_ACEOF - - -fi -echo "$as_me:$LINENO: checking whether fgets_unlocked is declared" >&5 -echo $ECHO_N "checking whether fgets_unlocked is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_fgets_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef fgets_unlocked - char *p = (char *) fgets_unlocked; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_fgets_unlocked=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_have_decl_fgets_unlocked=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_fgets_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_fgets_unlocked" >&6 -if test $ac_cv_have_decl_fgets_unlocked = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_FGETS_UNLOCKED 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_FGETS_UNLOCKED 0 -_ACEOF - - -fi -echo "$as_me:$LINENO: checking whether fputc_unlocked is declared" >&5 -echo $ECHO_N "checking whether fputc_unlocked is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_fputc_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef fputc_unlocked - char *p = (char *) fputc_unlocked; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_fputc_unlocked=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_have_decl_fputc_unlocked=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_fputc_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_fputc_unlocked" >&6 -if test $ac_cv_have_decl_fputc_unlocked = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_FPUTC_UNLOCKED 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_FPUTC_UNLOCKED 0 -_ACEOF - - -fi -echo "$as_me:$LINENO: checking whether fputs_unlocked is declared" >&5 -echo $ECHO_N "checking whether fputs_unlocked is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_fputs_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef fputs_unlocked - char *p = (char *) fputs_unlocked; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_fputs_unlocked=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_have_decl_fputs_unlocked=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_fputs_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_fputs_unlocked" >&6 -if test $ac_cv_have_decl_fputs_unlocked = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_FPUTS_UNLOCKED 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_FPUTS_UNLOCKED 0 -_ACEOF - - -fi -echo "$as_me:$LINENO: checking whether fread_unlocked is declared" >&5 -echo $ECHO_N "checking whether fread_unlocked is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_fread_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef fread_unlocked - char *p = (char *) fread_unlocked; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_fread_unlocked=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_have_decl_fread_unlocked=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_fread_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_fread_unlocked" >&6 -if test $ac_cv_have_decl_fread_unlocked = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_FREAD_UNLOCKED 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_FREAD_UNLOCKED 0 -_ACEOF - - -fi -echo "$as_me:$LINENO: checking whether fwrite_unlocked is declared" >&5 -echo $ECHO_N "checking whether fwrite_unlocked is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_fwrite_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef fwrite_unlocked - char *p = (char *) fwrite_unlocked; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_fwrite_unlocked=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_have_decl_fwrite_unlocked=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_fwrite_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_fwrite_unlocked" >&6 -if test $ac_cv_have_decl_fwrite_unlocked = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_FWRITE_UNLOCKED 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_FWRITE_UNLOCKED 0 -_ACEOF - - -fi -echo "$as_me:$LINENO: checking whether getc_unlocked is declared" >&5 -echo $ECHO_N "checking whether getc_unlocked is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_getc_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef getc_unlocked - char *p = (char *) getc_unlocked; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_getc_unlocked=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_have_decl_getc_unlocked=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_getc_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_getc_unlocked" >&6 -if test $ac_cv_have_decl_getc_unlocked = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_GETC_UNLOCKED 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_GETC_UNLOCKED 0 -_ACEOF - - -fi -echo "$as_me:$LINENO: checking whether getchar_unlocked is declared" >&5 -echo $ECHO_N "checking whether getchar_unlocked is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_getchar_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef getchar_unlocked - char *p = (char *) getchar_unlocked; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_getchar_unlocked=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_have_decl_getchar_unlocked=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_getchar_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_getchar_unlocked" >&6 -if test $ac_cv_have_decl_getchar_unlocked = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_GETCHAR_UNLOCKED 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_GETCHAR_UNLOCKED 0 -_ACEOF - - -fi -echo "$as_me:$LINENO: checking whether putc_unlocked is declared" >&5 -echo $ECHO_N "checking whether putc_unlocked is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_putc_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef putc_unlocked - char *p = (char *) putc_unlocked; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_putc_unlocked=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_have_decl_putc_unlocked=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_putc_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_putc_unlocked" >&6 -if test $ac_cv_have_decl_putc_unlocked = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_PUTC_UNLOCKED 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_PUTC_UNLOCKED 0 -_ACEOF - - -fi -echo "$as_me:$LINENO: checking whether putchar_unlocked is declared" >&5 -echo $ECHO_N "checking whether putchar_unlocked is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_putchar_unlocked+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef putchar_unlocked - char *p = (char *) putchar_unlocked; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_putchar_unlocked=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_have_decl_putchar_unlocked=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_putchar_unlocked" >&5 -echo "${ECHO_T}$ac_cv_have_decl_putchar_unlocked" >&6 -if test $ac_cv_have_decl_putchar_unlocked = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_PUTCHAR_UNLOCKED 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_PUTCHAR_UNLOCKED 0 -_ACEOF - - -fi - - -echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 -echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6 -if test "${ac_cv_header_time+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#include -#include - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_time=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_header_time=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 -echo "${ECHO_T}$ac_cv_header_time" >&6 -if test $ac_cv_header_time = yes; then - -cat >>confdefs.h <<\_ACEOF -#define TIME_WITH_SYS_TIME 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5 -echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6 -if test "${ac_cv_struct_tm+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#include - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -struct tm *tp; tp->tm_sec; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_struct_tm=time.h -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_struct_tm=sys/time.h -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 -echo "${ECHO_T}$ac_cv_struct_tm" >&6 -if test $ac_cv_struct_tm = sys/time.h; then - -cat >>confdefs.h <<\_ACEOF -#define TM_IN_SYS_TIME 1 -_ACEOF - -fi - - - - - -for ac_func in localtime_r strftime -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -char (*f) (); - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - -for ac_header in limits.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - - - -for ac_func in bcopy tzset mempcpy memcpy memset -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -char (*f) (); - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - # This defines (or not) HAVE_TZNAME and HAVE_TM_ZONE. - echo "$as_me:$LINENO: checking for struct tm.tm_zone" >&5 -echo $ECHO_N "checking for struct tm.tm_zone... $ECHO_C" >&6 -if test "${ac_cv_member_struct_tm_tm_zone+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#include <$ac_cv_struct_tm> - - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -static struct tm ac_aggr; -if (ac_aggr.tm_zone) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_member_struct_tm_tm_zone=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_member_struct_tm_tm_zone=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_zone" >&5 -echo "${ECHO_T}$ac_cv_member_struct_tm_tm_zone" >&6 -if test $ac_cv_member_struct_tm_tm_zone = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_STRUCT_TM_TM_ZONE 1 -_ACEOF - - -fi - -if test "$ac_cv_member_struct_tm_tm_zone" = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_TM_ZONE 1 -_ACEOF - -else - echo "$as_me:$LINENO: checking for tzname" >&5 -echo $ECHO_N "checking for tzname... $ECHO_C" >&6 -if test "${ac_cv_var_tzname+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#ifndef tzname /* For SGI. */ -extern char *tzname[]; /* RS6000 and others reject char **tzname. */ -#endif - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -atoi(*tzname); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_var_tzname=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_var_tzname=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_var_tzname" >&5 -echo "${ECHO_T}$ac_cv_var_tzname" >&6 - if test $ac_cv_var_tzname = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_TZNAME 1 -_ACEOF - - fi -fi - - - - -for ac_func in mblen mbrlen -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -char (*f) (); - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - echo "$as_me:$LINENO: checking for struct tm.tm_gmtoff" >&5 -echo $ECHO_N "checking for struct tm.tm_gmtoff... $ECHO_C" >&6 -if test "${ac_cv_member_struct_tm_tm_gmtoff+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -static struct tm ac_aggr; -if (ac_aggr.tm_gmtoff) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_member_struct_tm_tm_gmtoff=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_member_struct_tm_tm_gmtoff=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_gmtoff" >&5 -echo "${ECHO_T}$ac_cv_member_struct_tm_tm_gmtoff" >&6 -if test $ac_cv_member_struct_tm_tm_gmtoff = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_TM_GMTOFF 1 -_ACEOF - -fi - - - - -for ac_header in sys/time.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -cat >>confdefs.h <<\_ACEOF -#define my_strftime nstrftime -_ACEOF - - -# No need for AC_FUNC_MEMCMP, since memcmp is used only to test for equality. - - -cat >>confdefs.h <<\_ACEOF -#define HAVE_DONE_WORKING_MALLOC_CHECK 1 -_ACEOF - - - echo "$as_me:$LINENO: checking for working malloc" >&5 -echo $ECHO_N "checking for working malloc... $ECHO_C" >&6 -if test "${jm_cv_func_working_malloc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - jm_cv_func_working_malloc=no -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" - - char *malloc (); - int - main () - { - exit (malloc (0) ? 0 : 1); - } - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - jm_cv_func_working_malloc=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -( exit $ac_status ) -jm_cv_func_working_malloc=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - -fi -echo "$as_me:$LINENO: result: $jm_cv_func_working_malloc" >&5 -echo "${ECHO_T}$jm_cv_func_working_malloc" >&6 - if test $jm_cv_func_working_malloc = no; then - LIBOBJS="$LIBOBJS malloc.$ac_objext" - -cat >>confdefs.h <<\_ACEOF -#define malloc rpl_malloc -_ACEOF - - fi - - - -cat >>confdefs.h <<\_ACEOF -#define HAVE_DONE_WORKING_REALLOC_CHECK 1 -_ACEOF - - - echo "$as_me:$LINENO: checking for working realloc" >&5 -echo $ECHO_N "checking for working realloc... $ECHO_C" >&6 -if test "${jm_cv_func_working_realloc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - jm_cv_func_working_realloc=no -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" - - char *realloc (); - int - main () - { - exit (realloc (0, 0) ? 0 : 1); - } - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - jm_cv_func_working_realloc=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -( exit $ac_status ) -jm_cv_func_working_realloc=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - -fi -echo "$as_me:$LINENO: result: $jm_cv_func_working_realloc" >&5 -echo "${ECHO_T}$jm_cv_func_working_realloc" >&6 - if test $jm_cv_func_working_realloc = no; then - LIBOBJS="$LIBOBJS realloc.$ac_objext" - -cat >>confdefs.h <<\_ACEOF -#define realloc rpl_realloc -_ACEOF - - fi - -# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works -# for constant arguments. Useless! -echo "$as_me:$LINENO: checking for working alloca.h" >&5 -echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6 -if test "${ac_cv_working_alloca_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -char *p = (char *) alloca (2 * sizeof (int)); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_working_alloca_h=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_working_alloca_h=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 -echo "${ECHO_T}$ac_cv_working_alloca_h" >&6 -if test $ac_cv_working_alloca_h = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_ALLOCA_H 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for alloca" >&5 -echo $ECHO_N "checking for alloca... $ECHO_C" >&6 -if test "${ac_cv_func_alloca_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#ifdef __GNUC__ -# define alloca __builtin_alloca -#else -# ifdef _MSC_VER -# include -# define alloca _alloca -# else -# if HAVE_ALLOCA_H -# include -# else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -char *alloca (); -# endif -# endif -# endif -# endif -#endif - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -char *p = (char *) alloca (1); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_alloca_works=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_func_alloca_works=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 -echo "${ECHO_T}$ac_cv_func_alloca_works" >&6 - -if test $ac_cv_func_alloca_works = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_ALLOCA 1 -_ACEOF - -else - # The SVR3 libPW and SVR4 libucb both contain incompatible functions -# that cause trouble. Some versions do not even contain alloca or -# contain a buggy version. If you still want to use their alloca, -# use ar to extract alloca.o from them instead of compiling alloca.c. - -ALLOCA=alloca.$ac_objext - -cat >>confdefs.h <<\_ACEOF -#define C_ALLOCA 1 -_ACEOF - - -echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5 -echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6 -if test "${ac_cv_os_cray+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#if defined(CRAY) && ! defined(CRAY2) -webecray -#else -wenotbecray -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "webecray" >/dev/null 2>&1; then - ac_cv_os_cray=yes -else - ac_cv_os_cray=no -fi -rm -f conftest* - -fi -echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5 -echo "${ECHO_T}$ac_cv_os_cray" >&6 -if test $ac_cv_os_cray = yes; then - for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -char (*f) (); - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - -cat >>confdefs.h <<_ACEOF -#define CRAY_STACKSEG_END $ac_func -_ACEOF - - break -fi - - done -fi - -echo "$as_me:$LINENO: checking stack direction for C alloca" >&5 -echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6 -if test "${ac_cv_c_stack_direction+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_c_stack_direction=0 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -int -find_stack_direction () -{ - static char *addr = 0; - auto char dummy; - if (addr == 0) - { - addr = &dummy; - return find_stack_direction (); - } - else - return (&dummy > addr) ? 1 : -1; -} - -int -main () -{ - exit (find_stack_direction () < 0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_stack_direction=1 -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_c_stack_direction=-1 -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 -echo "${ECHO_T}$ac_cv_c_stack_direction" >&6 - -cat >>confdefs.h <<_ACEOF -#define STACK_DIRECTION $ac_cv_c_stack_direction -_ACEOF - - -fi - -# for STACK_DIRECTION - - - echo "$as_me:$LINENO: checking for working C stack overflow detection" >&5 -echo $ECHO_N "checking for working C stack overflow detection... $ECHO_C" >&6 -if test "${ac_cv_sys_xsi_stack_overflow_heuristic+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_sys_xsi_stack_overflow_heuristic=cross-compiling -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" - - #include - #include - - static union - { - char buffer[SIGSTKSZ]; - long double ld; - uintmax_t u; - void *p; - } alternate_signal_stack; - - #if STACK_DIRECTION - # define find_stack_direction(ptr) STACK_DIRECTION - #else - static int - find_stack_direction (char const *addr) - { - char dummy; - return (! addr ? find_stack_direction (&dummy) - : addr < &dummy ? 1 : -1); - } - #endif - - static void - segv_handler (int signo, siginfo_t *info, void *context) - { - if (0 < info->si_code) - { - ucontext_t const *user_context = context; - char const *stack_min = user_context->uc_stack.ss_sp; - size_t stack_size = user_context->uc_stack.ss_size; - char const *faulting_address = info->si_addr; - size_t s = faulting_address - stack_min; - size_t page_size = sysconf (_SC_PAGESIZE); - if (find_stack_direction (0) < 0) - s += page_size; - if (s < stack_size + page_size) - _exit (0); - } - - _exit (1); - } - - static int - c_stack_action (void) - { - stack_t st; - struct sigaction act; - int r; - - st.ss_flags = 0; - st.ss_sp = alternate_signal_stack.buffer; - st.ss_size = sizeof alternate_signal_stack.buffer; - r = sigaltstack (&st, 0); - if (r != 0) - return r; - - sigemptyset (&act.sa_mask); - act.sa_flags = SA_NODEFER | SA_ONSTACK | SA_RESETHAND | SA_SIGINFO; - act.sa_sigaction = segv_handler; - return sigaction (SIGSEGV, &act, 0); - } - - static int - recurse (char *p) - { - char array[500]; - array[0] = 1; - return *p + recurse (array); - } - - int - main (void) - { - c_stack_action (); - return recurse ("\1"); - } - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sys_xsi_stack_overflow_heuristic=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_sys_xsi_stack_overflow_heuristic=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_sys_xsi_stack_overflow_heuristic" >&5 -echo "${ECHO_T}$ac_cv_sys_xsi_stack_overflow_heuristic" >&6 - - if test $ac_cv_sys_xsi_stack_overflow_heuristic = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_XSI_STACK_OVERFLOW_HEURISTIC 1 -_ACEOF - - fi - - - - # for STACK_DIRECTION - - - -for ac_header in unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - echo "$as_me:$LINENO: checking for siginfo_t" >&5 -echo $ECHO_N "checking for siginfo_t... $ECHO_C" >&6 -if test "${ac_cv_type_siginfo_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -if ((siginfo_t *) 0) - return 0; -if (sizeof (siginfo_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_siginfo_t=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_type_siginfo_t=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_siginfo_t" >&5 -echo "${ECHO_T}$ac_cv_type_siginfo_t" >&6 -if test $ac_cv_type_siginfo_t = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_SIGINFO_T 1 -_ACEOF - - -fi -echo "$as_me:$LINENO: checking for stack_t" >&5 -echo $ECHO_N "checking for stack_t... $ECHO_C" >&6 -if test "${ac_cv_type_stack_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -if ((stack_t *) 0) - return 0; -if (sizeof (stack_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_stack_t=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_type_stack_t=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_stack_t" >&5 -echo "${ECHO_T}$ac_cv_type_stack_t" >&6 -if test $ac_cv_type_stack_t = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_STACK_T 1 -_ACEOF - - -fi - - - - - -for ac_func in strerror vprintf doprnt -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -char (*f) (); - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - echo "$as_me:$LINENO: checking whether strerror is declared" >&5 -echo $ECHO_N "checking whether strerror is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_strerror+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef strerror - char *p = (char *) strerror; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_strerror=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_have_decl_strerror=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_strerror" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strerror" >&6 -if test $ac_cv_have_decl_strerror = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRERROR 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRERROR 0 -_ACEOF - - -fi - - - echo "$as_me:$LINENO: checking whether strerror_r is declared" >&5 -echo $ECHO_N "checking whether strerror_r is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_strerror_r+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef strerror_r - char *p = (char *) strerror_r; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_strerror_r=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_have_decl_strerror_r=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_strerror_r" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strerror_r" >&6 -if test $ac_cv_have_decl_strerror_r = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRERROR_R 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRERROR_R 0 -_ACEOF - - -fi - - - -for ac_func in strerror_r -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -char (*f) (); - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -echo "$as_me:$LINENO: checking whether strerror_r returns char *" >&5 -echo $ECHO_N "checking whether strerror_r returns char *... $ECHO_C" >&6 -if test "${ac_cv_func_strerror_r_char_p+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - ac_cv_func_strerror_r_char_p=no - if test $ac_cv_have_decl_strerror_r = yes; then - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ - - char buf[100]; - char x = *strerror_r (0, buf, sizeof buf); - char *p = strerror_r (0, buf, sizeof buf); - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_strerror_r_char_p=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest.$ac_ext - else - # strerror_r is not declared. Choose between - # systems that have relatively inaccessible declarations for the - # function. BeOS and DEC UNIX 4.0 fall in this category, but the - # former has a strerror_r that returns char*, while the latter - # has a strerror_r that returns `int'. - # This test should segfault on the DEC system. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default - extern char *strerror_r (); -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -char buf[100]; - char x = *strerror_r (0, buf, sizeof buf); - exit (!isalpha (x)); - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_strerror_r_char_p=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - fi - -fi -echo "$as_me:$LINENO: result: $ac_cv_func_strerror_r_char_p" >&5 -echo "${ECHO_T}$ac_cv_func_strerror_r_char_p" >&6 -if test $ac_cv_func_strerror_r_char_p = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STRERROR_R_CHAR_P 1 -_ACEOF - -fi - - echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#include -#include -#include - -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_cv_header_stdc=no -fi -rm -f conftest.err conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - exit(2); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -fi - - - - echo "$as_me:$LINENO: checking for function prototypes" >&5 -echo $ECHO_N "checking for function prototypes... $ECHO_C" >&6 -if test "$ac_cv_prog_cc_stdc" != no; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -cat >>confdefs.h <<\_ACEOF -#define PROTOTYPES 1 -_ACEOF - - -cat >>confdefs.h <<\_ACEOF -#define __PROTOTYPES 1 -_ACEOF - -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - -for ac_func in setlocale -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -char (*f) (); - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - - -for ac_header in locale.h stdlib.h string.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - - -for ac_func in isascii iswprint -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -char (*f) (); - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - echo "$as_me:$LINENO: checking whether mbrtowc and mbstate_t are properly declared" >&5 -echo $ECHO_N "checking whether mbrtowc and mbstate_t are properly declared... $ECHO_C" >&6 -if test "${jm_cv_func_mbrtowc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -mbstate_t state; return ! (sizeof state && mbrtowc); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - jm_cv_func_mbrtowc=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -jm_cv_func_mbrtowc=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $jm_cv_func_mbrtowc" >&5 -echo "${ECHO_T}$jm_cv_func_mbrtowc" >&6 - if test $jm_cv_func_mbrtowc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_MBRTOWC 1 -_ACEOF - - fi - - - - - - - -for ac_header in limits.h stddef.h stdlib.h string.h wchar.h wctype.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#include -#include -#include - -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_cv_header_stdc=no -fi -rm -f conftest.err conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - exit(2); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -fi - - - echo "$as_me:$LINENO: checking whether backslash-a works in strings" >&5 -echo $ECHO_N "checking whether backslash-a works in strings... $ECHO_C" >&6 -if test "${ac_cv_c_backslash_a+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ - -#if '\a' == 'a' - syntax error; -#endif - char buf['\a' == 'a' ? -1 : 1]; - buf[0] = '\a'; - return buf[0] != "\a"[0]; - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_backslash_a=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_c_backslash_a=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_c_backslash_a" >&5 -echo "${ECHO_T}$ac_cv_c_backslash_a" >&6 - if test $ac_cv_c_backslash_a = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_C_BACKSLASH_A 1 -_ACEOF - - fi - - - -for ac_header in stdlib.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - echo "$as_me:$LINENO: checking for mbstate_t" >&5 -echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6 -if test "${ac_cv_type_mbstate_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" - -#if HAVE_STDLIB_H -# include -#endif -#include -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -mbstate_t x; return sizeof x; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_mbstate_t=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_type_mbstate_t=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_mbstate_t" >&5 -echo "${ECHO_T}$ac_cv_type_mbstate_t" >&6 - if test $ac_cv_type_mbstate_t = no; then - -cat >>confdefs.h <<\_ACEOF -#define mbstate_t int -_ACEOF - - fi - - -echo "$as_me:$LINENO: checking for function prototypes" >&5 -echo $ECHO_N "checking for function prototypes... $ECHO_C" >&6 -if test "$am_cv_prog_cc_stdc" != no; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -cat >>confdefs.h <<\_ACEOF -#define PROTOTYPES 1 -_ACEOF - - U= ANSI2KNR= -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - U=_ ANSI2KNR=./ansi2knr -fi -# Ensure some checks needed by ansi2knr itself. -echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#include -#include -#include - -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_cv_header_stdc=no -fi -rm -f conftest.err conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - exit(2); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -fi - - -for ac_header in string.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - - - - - -for ac_func in bzero bcopy isascii btowc -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -char (*f) (); - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - - - -for ac_header in alloca.h libintl.h wctype.h wchar.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#include -#include -#include - -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_cv_header_stdc=no -fi -rm -f conftest.err conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - exit(2); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -fi - - # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works -# for constant arguments. Useless! -echo "$as_me:$LINENO: checking for working alloca.h" >&5 -echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6 -if test "${ac_cv_working_alloca_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -char *p = (char *) alloca (2 * sizeof (int)); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_working_alloca_h=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_working_alloca_h=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 -echo "${ECHO_T}$ac_cv_working_alloca_h" >&6 -if test $ac_cv_working_alloca_h = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_ALLOCA_H 1 -_ACEOF - -fi - -echo "$as_me:$LINENO: checking for alloca" >&5 -echo $ECHO_N "checking for alloca... $ECHO_C" >&6 -if test "${ac_cv_func_alloca_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#ifdef __GNUC__ -# define alloca __builtin_alloca -#else -# ifdef _MSC_VER -# include -# define alloca _alloca -# else -# if HAVE_ALLOCA_H -# include -# else -# ifdef _AIX - #pragma alloca -# else -# ifndef alloca /* predefined by HP cc +Olibcalls */ -char *alloca (); -# endif -# endif -# endif -# endif -#endif - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -char *p = (char *) alloca (1); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_alloca_works=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_func_alloca_works=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 -echo "${ECHO_T}$ac_cv_func_alloca_works" >&6 - -if test $ac_cv_func_alloca_works = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_ALLOCA 1 -_ACEOF - -else - # The SVR3 libPW and SVR4 libucb both contain incompatible functions -# that cause trouble. Some versions do not even contain alloca or -# contain a buggy version. If you still want to use their alloca, -# use ar to extract alloca.o from them instead of compiling alloca.c. - -ALLOCA=alloca.$ac_objext - -cat >>confdefs.h <<\_ACEOF -#define C_ALLOCA 1 -_ACEOF - - -echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5 -echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6 -if test "${ac_cv_os_cray+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#if defined(CRAY) && ! defined(CRAY2) -webecray -#else -wenotbecray -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "webecray" >/dev/null 2>&1; then - ac_cv_os_cray=yes -else - ac_cv_os_cray=no -fi -rm -f conftest* - -fi -echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5 -echo "${ECHO_T}$ac_cv_os_cray" >&6 -if test $ac_cv_os_cray = yes; then - for ac_func in _getb67 GETB67 getb67; do - as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -char (*f) (); - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - -cat >>confdefs.h <<_ACEOF -#define CRAY_STACKSEG_END $ac_func -_ACEOF - - break -fi - - done -fi - -echo "$as_me:$LINENO: checking stack direction for C alloca" >&5 -echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6 -if test "${ac_cv_c_stack_direction+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - ac_cv_c_stack_direction=0 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -int -find_stack_direction () -{ - static char *addr = 0; - auto char dummy; - if (addr == 0) - { - addr = &dummy; - return find_stack_direction (); - } - else - return (&dummy > addr) ? 1 : -1; -} - -int -main () -{ - exit (find_stack_direction () < 0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_stack_direction=1 -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_c_stack_direction=-1 -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 -echo "${ECHO_T}$ac_cv_c_stack_direction" >&6 - -cat >>confdefs.h <<_ACEOF -#define STACK_DIRECTION $ac_cv_c_stack_direction -_ACEOF - - -fi - - - -cat >>confdefs.h <<\_ACEOF -#define REGEX_MALLOC 1 -_ACEOF - - - echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#include -#include -#include - -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_cv_header_stdc=no -fi -rm -f conftest.err conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - exit(2); - exit (0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -fi - - echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5 -echo $ECHO_N "checking whether stat file-mode macros are broken... $ECHO_C" >&6 -if test "${ac_cv_header_stat_broken+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#include - -#if defined(S_ISBLK) && defined(S_IFDIR) -# if S_ISBLK (S_IFDIR) -You lose. -# endif -#endif - -#if defined(S_ISBLK) && defined(S_IFCHR) -# if S_ISBLK (S_IFCHR) -You lose. -# endif -#endif - -#if defined(S_ISLNK) && defined(S_IFREG) -# if S_ISLNK (S_IFREG) -You lose. -# endif -#endif - -#if defined(S_ISSOCK) && defined(S_IFREG) -# if S_ISSOCK (S_IFREG) -You lose. -# endif -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "You lose" >/dev/null 2>&1; then - ac_cv_header_stat_broken=yes -else - ac_cv_header_stat_broken=no -fi -rm -f conftest* - -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5 -echo "${ECHO_T}$ac_cv_header_stat_broken" >&6 -if test $ac_cv_header_stat_broken = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STAT_MACROS_BROKEN 1 -_ACEOF - -fi - - - - - -for ac_header in fcntl.h sys/time.h stdint.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - -for ac_func in __secure_getenv gettimeofday -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -char (*f) (); - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - echo "$as_me:$LINENO: checking whether getenv is declared" >&5 -echo $ECHO_N "checking whether getenv is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_getenv+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef getenv - char *p = (char *) getenv; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_getenv=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_have_decl_getenv=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_getenv" >&5 -echo "${ECHO_T}$ac_cv_have_decl_getenv" >&6 -if test $ac_cv_have_decl_getenv = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_GETENV 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_GETENV 0 -_ACEOF - - -fi - - - - - echo "$as_me:$LINENO: checking for long long" >&5 -echo $ECHO_N "checking for long long... $ECHO_C" >&6 -if test "${ac_cv_type_long_long+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -long long ll = 1; int i = 63; -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -long long llmax = (long long) -1; - return ll << i | ll >> i | llmax / ll | llmax % ll; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_long_long=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_type_long_long=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_long_long" >&5 -echo "${ECHO_T}$ac_cv_type_long_long" >&6 - if test $ac_cv_type_long_long = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_LONG_LONG 1 -_ACEOF - - fi - - - - echo "$as_me:$LINENO: checking for intmax_t" >&5 -echo $ECHO_N "checking for intmax_t... $ECHO_C" >&6 -if test "${ac_cv_type_intmax_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -if ((intmax_t *) 0) - return 0; -if (sizeof (intmax_t)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_intmax_t=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_type_intmax_t=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_type_intmax_t" >&5 -echo "${ECHO_T}$ac_cv_type_intmax_t" >&6 -if test $ac_cv_type_intmax_t = yes; then - : -else - test $ac_cv_type_long_long = yes \ - && ac_type='long long' \ - || ac_type='long' - -cat >>confdefs.h <<_ACEOF -#define intmax_t $ac_type -_ACEOF - -fi - - - - - - - - echo "$as_me:$LINENO: checking whether strtol is declared" >&5 -echo $ECHO_N "checking whether strtol is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_strtol+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef strtol - char *p = (char *) strtol; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_strtol=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_have_decl_strtol=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtol" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strtol" >&6 -if test $ac_cv_have_decl_strtol = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRTOL 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRTOL 0 -_ACEOF - - -fi -echo "$as_me:$LINENO: checking whether strtoul is declared" >&5 -echo $ECHO_N "checking whether strtoul is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_strtoul+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef strtoul - char *p = (char *) strtoul; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_strtoul=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_have_decl_strtoul=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtoul" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strtoul" >&6 -if test $ac_cv_have_decl_strtoul = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRTOUL 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRTOUL 0 -_ACEOF - - -fi -echo "$as_me:$LINENO: checking whether strtoull is declared" >&5 -echo $ECHO_N "checking whether strtoull is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_strtoull+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef strtoull - char *p = (char *) strtoull; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_strtoull=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_have_decl_strtoull=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtoull" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strtoull" >&6 -if test $ac_cv_have_decl_strtoull = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRTOULL 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRTOULL 0 -_ACEOF - - -fi -echo "$as_me:$LINENO: checking whether strtoimax is declared" >&5 -echo $ECHO_N "checking whether strtoimax is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_strtoimax+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef strtoimax - char *p = (char *) strtoimax; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_strtoimax=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_have_decl_strtoimax=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtoimax" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strtoimax" >&6 -if test $ac_cv_have_decl_strtoimax = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRTOIMAX 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRTOIMAX 0 -_ACEOF - - -fi -echo "$as_me:$LINENO: checking whether strtoumax is declared" >&5 -echo $ECHO_N "checking whether strtoumax is declared... $ECHO_C" >&6 -if test "${ac_cv_have_decl_strtoumax+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#ifndef strtoumax - char *p = (char *) strtoumax; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_have_decl_strtoumax=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_have_decl_strtoumax=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_have_decl_strtoumax" >&5 -echo "${ECHO_T}$ac_cv_have_decl_strtoumax" >&6 -if test $ac_cv_have_decl_strtoumax = yes; then - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRTOUMAX 1 -_ACEOF - - -else - cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRTOUMAX 0 -_ACEOF - - -fi - - - - - -for ac_header in limits.h stdlib.h inttypes.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - echo "$as_me:$LINENO: checking whether defines strtoumax as a macro" >&5 -echo $ECHO_N "checking whether defines strtoumax as a macro... $ECHO_C" >&6 -if test "${jm_cv_func_strtoumax_macro+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#ifdef strtoumax - inttypes_h_defines_strtoumax -#endif -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "inttypes_h_defines_strtoumax" >/dev/null 2>&1; then - jm_cv_func_strtoumax_macro=yes -else - jm_cv_func_strtoumax_macro=no -fi -rm -f conftest* - -fi -echo "$as_me:$LINENO: result: $jm_cv_func_strtoumax_macro" >&5 -echo "${ECHO_T}$jm_cv_func_strtoumax_macro" >&6 - - if test "$jm_cv_func_strtoumax_macro" != yes; then - -for ac_func in strtoumax -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -char (*f) (); - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -else - LIBOBJS="$LIBOBJS $ac_func.$ac_objext" -fi -done - - - fi - - case "$jm_cv_func_strtoumax_macro,$ac_cv_func_strtoumax" in - no,no) - -for ac_func in strtoul -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -char (*f) (); - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -else - LIBOBJS="$LIBOBJS $ac_func.$ac_objext" -fi -done - - - - if test "$ac_cv_type_unsigned_long_long" = yes; then - -for ac_func in strtoull -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -char (*f) (); - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -else - LIBOBJS="$LIBOBJS $ac_func.$ac_objext" -fi -done - - - fi - ;; - esac - - -# Check for clock_gettime and its library. Solaris puts it in -lrt or -# -lposix4, but we don't want to link that library unless we have to. -diff_saved_libs=$LIBS -echo "$as_me:$LINENO: checking for library containing clock_gettime" >&5 -echo $ECHO_N "checking for library containing clock_gettime... $ECHO_C" >&6 -if test "${ac_cv_search_clock_gettime+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_func_search_save_LIBS=$LIBS -ac_cv_search_clock_gettime=no -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char clock_gettime (); -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -clock_gettime (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_clock_gettime="none required" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -if test "$ac_cv_search_clock_gettime" = no; then - for ac_lib in rt posix4; do - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char clock_gettime (); -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -clock_gettime (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_search_clock_gettime="-l$ac_lib" -break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - done -fi -LIBS=$ac_func_search_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_search_clock_gettime" >&5 -echo "${ECHO_T}$ac_cv_search_clock_gettime" >&6 -if test "$ac_cv_search_clock_gettime" != no; then - test "$ac_cv_search_clock_gettime" = "none required" || LIBS="$ac_cv_search_clock_gettime $LIBS" - -fi - -case $ac_cv_search_clock_gettime in -no | 'none required') - LIB_CLOCK_GETTIME=;; -*) - LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime;; -esac - - -for ac_func in clock_gettime -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func (); -char (*f) (); - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -LIBS=$diff_saved_libs - -# fnmatch -echo "$as_me:$LINENO: checking for working GNU-style fnmatch" >&5 -echo $ECHO_N "checking for working GNU-style fnmatch... $ECHO_C" >&6 -if test "${ac_cv_func_fnmatch_works+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Some versions of Solaris, SCO, and the GNU C Library -# have a broken or incompatible fnmatch. -# So we run a test program. If we are cross-compiling, take no chance. -# Thanks to John Oleynick, Franc,ois Pinard, and Paul Eggert for this test. -if test "$cross_compiling" = yes; then - ac_cv_func_fnmatch_works=no -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -exit (fnmatch ("a*", "abc", 0) != 0 - || fnmatch ("xxXX", "xXxX", FNM_CASEFOLD) != 0 - || fnmatch ("d*/*1", "d/s/1", FNM_FILE_NAME) != FNM_NOMATCH - || fnmatch ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR) != 0 - || fnmatch ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR) != 0 - || fnmatch ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR) != 0); - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_fnmatch_works=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -( exit $ac_status ) -ac_cv_func_fnmatch_works=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_func_fnmatch_works" >&5 -echo "${ECHO_T}$ac_cv_func_fnmatch_works" >&6 -if test $ac_cv_func_fnmatch_works = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_FNMATCH 1 -_ACEOF - -fi - -if test $ac_cv_func_fnmatch_works = yes; then - rm -f lib/fnmatch.h -else - LIBOBJS="$LIBOBJS fnmatch.$ac_objext" - ac_config_links="$ac_config_links lib/fnmatch.h:lib/fnmatch.hin" - -fi - -# regex - - - # Assume we'll default to using the included regex.c. - ac_use_included_regex=yes - - # However, if the system regex support is good enough that it passes the - # the following run test, then default to *not* using the included regex.c. - # If cross compiling, assume the test would fail and use the included - # regex.c. The first failing regular expression is from `Spencer ere - # test #75' in grep-2.3. - echo "$as_me:$LINENO: checking for working re_compile_pattern" >&5 -echo $ECHO_N "checking for working re_compile_pattern... $ECHO_C" >&6 -if test "${jm_cv_func_working_re_compile_pattern+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - jm_cv_func_working_re_compile_pattern=no -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include -#include - int - main () - { - static struct re_pattern_buffer regex; - const char *s; - struct re_registers regs; - re_set_syntax (RE_SYNTAX_POSIX_EGREP); - s = re_compile_pattern ("a[[:]:]]b\n", 9, ®ex); - /* This should fail with _Invalid character class name_ error. */ - if (!s) - exit (1); - - /* This should succeed, but doesn't for e.g. glibc-2.1.3. */ - s = re_compile_pattern ("{1", 2, ®ex); - - if (s) - exit (1); - - /* The following example is derived from a problem report - against gawk from Jorge Stolfi . */ - s = re_compile_pattern ("[anù]*n", 7, ®ex); - if (s) - exit (1); - - /* This should match, but doesn't for e.g. glibc-2.2.1. */ - if (re_match (®ex, "an", 2, 0, ®s) != 2) - exit (1); - - exit (0); - } - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - jm_cv_func_working_re_compile_pattern=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -( exit $ac_status ) -jm_cv_func_working_re_compile_pattern=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:$LINENO: result: $jm_cv_func_working_re_compile_pattern" >&5 -echo "${ECHO_T}$jm_cv_func_working_re_compile_pattern" >&6 - if test $jm_cv_func_working_re_compile_pattern = yes; then - ac_use_included_regex=no - fi - - test -n "lib/regex.c" || { { echo "$as_me:$LINENO: error: missing argument" >&5 -echo "$as_me: error: missing argument" >&2;} - { (exit 1); exit 1; }; } - - - -# Check whether --with-included-regex or --without-included-regex was given. -if test "${with_included_regex+set}" = set; then - withval="$with_included_regex" - jm_with_regex=$withval -else - jm_with_regex=$ac_use_included_regex -fi; - if test "$jm_with_regex" = yes; then - LIBOBJS="$LIBOBJS regex.$ac_objext" - fi - - - -if test "$jm_with_regex" = yes; then - ac_config_links="$ac_config_links lib/regex.h:lib/regex.hin" - -else - rm -f lib/regex.h -fi - - - echo "$as_me:$LINENO: checking whether system is Windows or MSDOS" >&5 -echo $ECHO_N "checking whether system is Windows or MSDOS... $ECHO_C" >&6 -if test "${ac_cv_win_or_dos+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ -neither MSDOS nor Windows -#endif - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_win_or_dos=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_win_or_dos=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext - -fi -echo "$as_me:$LINENO: result: $ac_cv_win_or_dos" >&5 -echo "${ECHO_T}$ac_cv_win_or_dos" >&6 - - if test x"$ac_cv_win_or_dos" = xyes; then - ac_fs_accepts_drive_letter_prefix=1 - ac_fs_backslash_is_file_name_separator=1 - else - ac_fs_accepts_drive_letter_prefix=0 - ac_fs_backslash_is_file_name_separator=0 - fi - - - - - -cat >>confdefs.h <<_ACEOF -#define FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX $ac_fs_accepts_drive_letter_prefix -_ACEOF - - - - - - -cat >>confdefs.h <<_ACEOF -#define FILESYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR $ac_fs_backslash_is_file_name_separator -_ACEOF - - - - -for ac_header in fcntl.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_header_compiler=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc in - yes:no ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; - no:yes ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;};; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - echo "$as_me:$LINENO: checking for DOS-style setmode" >&5 -echo $ECHO_N "checking for DOS-style setmode... $ECHO_C" >&6 -if test "${ac_cv_func_setmode_dos+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line $LINENO "configure" -#include "confdefs.h" -#include - #if HAVE_FCNTL_H - # include - #endif - #if HAVE_UNISTD_H - # include - #endif -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -int ret = setmode && setmode (1, O_BINARY); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_setmode_dos=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_func_setmode_dos=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_setmode_dos" >&5 -echo "${ECHO_T}$ac_cv_func_setmode_dos" >&6 - if test $ac_cv_func_setmode_dos = yes; then - -cat >>confdefs.h <<\_ACEOF -#define HAVE_SETMODE_DOS 1 -_ACEOF - - fi - -ac_config_files="$ac_config_files Makefile doc/Makefile lib/Makefile lib/posix/Makefile man/Makefile m4/Makefile ms/Makefile po/Makefile.in src/Makefile" - -ac_config_commands="$ac_config_commands default" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overriden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -{ - (set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} | - sed ' - t clear - : clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - : end' >>confcache -if cmp -s $cache_file confcache; then :; else - if test -w $cache_file; then - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" - cat confcache >$cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; -s/:*$//; -s/^[^=]*=[ ]*$//; -}' -fi - -DEFS=-DHAVE_CONFIG_H - -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi - -: ${CONFIG_STATUS=./config.status} -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi - -# NLS nuisances. -# Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - -(set +x; test -n "`(LANG=C; export LANG) 2>&1`") && - { $as_unset LANG || test "${LANG+set}" != set; } || - { LANG=C; export LANG; } -(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") && - { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } || - { LC_ALL=C; export LC_ALL; } -(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") && - { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } || - { LC_TIME=C; export LC_TIME; } -(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") && - { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } || - { LC_CTYPE=C; export LC_CTYPE; } -(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") && - { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } || - { LANGUAGE=C; export LANGUAGE; } -(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") && - { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } || - { LC_COLLATE=C; export LC_COLLATE; } -(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") && - { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } || - { LC_NUMERIC=C; export LC_NUMERIC; } -(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") && - { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } || - { LC_MESSAGES=C; export LC_MESSAGES; } - - -# Name of the executable. -as_me=`(basename "$0") 2>/dev/null || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conftest.sh - echo "exit 0" >>conftest.sh - chmod +x conftest.sh - if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conftest.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; } - -exec 6>&1 - -# Open the log real soon, to keep \$[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. Logging --version etc. is OK. -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX -} >&5 -cat >&5 <<_CSEOF - -This file was extended by GNU diffutils $as_me 2.8.1, which was -generated by GNU Autoconf 2.53. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -_CSEOF -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 -echo >&5 -_ACEOF - -# Files that config.status was made for. -if test -n "$ac_config_files"; then - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_headers"; then - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_links"; then - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_commands"; then - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS -fi - -cat >>$CONFIG_STATUS <<\_ACEOF - -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -h, --help print this help, then exit - -V, --version print version number, then exit - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration links: -$config_links - -Configuration commands: -$config_commands - -Report bugs to ." -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version="\\ -GNU diffutils config.status 2.8.1 -configured by $0, generated by GNU Autoconf 2.53, - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" - -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." -srcdir=$srcdir -INSTALL="$INSTALL" -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=*) - ac_option=`expr "x$1" : 'x\([^=]*\)='` - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` - shift - set dummy "$ac_option" "$ac_optarg" ${1+"$@"} - shift - ;; - -*);; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_need_defaults=false;; - esac - - case $1 in - # Handling of the options. -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion" - exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;; -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:$LINENO: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - shift - CONFIG_FILES="$CONFIG_FILES $1" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - shift - CONFIG_HEADERS="$CONFIG_HEADERS $1" - ac_need_defaults=false;; - - # This is an error. - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" ;; - - esac - shift -done - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -# -# INIT-COMMANDS section. -# - -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" -# Capture the value of obsolete $ALL_LINGUAS because we need it to compute - # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it - # from automake. - eval 'ALL_LINGUAS''="$ALL_LINGUAS"' - # Capture the value of LINGUAS because we need it to compute CATALOGS. - LINGUAS="${LINGUAS-%UNSET%}" - - -_ACEOF - - - -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_config_target in $ac_config_targets -do - case "$ac_config_target" in - # Handling of arguments. - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; - "lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; - "lib/posix/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/posix/Makefile" ;; - "man/Makefile" ) CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; - "m4/Makefile" ) CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;; - "ms/Makefile" ) CONFIG_FILES="$CONFIG_FILES ms/Makefile" ;; - "po/Makefile.in" ) CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; - "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - "lib/fnmatch.h" ) CONFIG_LINKS="$CONFIG_LINKS lib/fnmatch.h:lib/fnmatch.hin" ;; - "lib/regex.h" ) CONFIG_LINKS="$CONFIG_LINKS lib/regex.h:lib/regex.hin" ;; - "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; - "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; - "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h:config.hin" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - esac -done - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Create a temporary directory, and hook for its removal unless debugging. -$debug || -{ - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} - -# Create a (secure) tmp directory for tmp files. -: ${TMPDIR=/tmp} -{ - tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=$TMPDIR/cs$$-$RANDOM - (umask 077 && mkdir $tmp) -} || -{ - echo "$me: cannot create a temporary directory in $TMPDIR" >&2 - { (exit 1); exit 1; } -} - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF - -# -# CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "\$CONFIG_FILES"; then - # Protect against being on the right side of a sed subst in config.status. - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF -s,@SHELL@,$SHELL,;t t -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t -s,@exec_prefix@,$exec_prefix,;t t -s,@prefix@,$prefix,;t t -s,@program_transform_name@,$program_transform_name,;t t -s,@bindir@,$bindir,;t t -s,@sbindir@,$sbindir,;t t -s,@libexecdir@,$libexecdir,;t t -s,@datadir@,$datadir,;t t -s,@sysconfdir@,$sysconfdir,;t t -s,@sharedstatedir@,$sharedstatedir,;t t -s,@localstatedir@,$localstatedir,;t t -s,@libdir@,$libdir,;t t -s,@includedir@,$includedir,;t t -s,@oldincludedir@,$oldincludedir,;t t -s,@infodir@,$infodir,;t t -s,@mandir@,$mandir,;t t -s,@build_alias@,$build_alias,;t t -s,@host_alias@,$host_alias,;t t -s,@target_alias@,$target_alias,;t t -s,@DEFS@,$DEFS,;t t -s,@ECHO_C@,$ECHO_C,;t t -s,@ECHO_N@,$ECHO_N,;t t -s,@ECHO_T@,$ECHO_T,;t t -s,@LIBS@,$LIBS,;t t -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t -s,@INSTALL_DATA@,$INSTALL_DATA,;t t -s,@PACKAGE@,$PACKAGE,;t t -s,@VERSION@,$VERSION,;t t -s,@ACLOCAL@,$ACLOCAL,;t t -s,@AUTOCONF@,$AUTOCONF,;t t -s,@AUTOMAKE@,$AUTOMAKE,;t t -s,@AUTOHEADER@,$AUTOHEADER,;t t -s,@MAKEINFO@,$MAKEINFO,;t t -s,@AMTAR@,$AMTAR,;t t -s,@install_sh@,$install_sh,;t t -s,@STRIP@,$STRIP,;t t -s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t -s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t -s,@AWK@,$AWK,;t t -s,@SET_MAKE@,$SET_MAKE,;t t -s,@CC@,$CC,;t t -s,@CFLAGS@,$CFLAGS,;t t -s,@LDFLAGS@,$LDFLAGS,;t t -s,@CPPFLAGS@,$CPPFLAGS,;t t -s,@ac_ct_CC@,$ac_ct_CC,;t t -s,@EXEEXT@,$EXEEXT,;t t -s,@OBJEXT@,$OBJEXT,;t t -s,@DEPDIR@,$DEPDIR,;t t -s,@am__include@,$am__include,;t t -s,@am__quote@,$am__quote,;t t -s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t -s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t -s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t -s,@CCDEPMODE@,$CCDEPMODE,;t t -s,@CPP@,$CPP,;t t -s,@HELP2MAN@,$HELP2MAN,;t t -s,@RANLIB@,$RANLIB,;t t -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t -s,@PR_PROGRAM@,$PR_PROGRAM,;t t -s,@MKINSTALLDIRS@,$MKINSTALLDIRS,;t t -s,@MSGFMT@,$MSGFMT,;t t -s,@GMSGFMT@,$GMSGFMT,;t t -s,@XGETTEXT@,$XGETTEXT,;t t -s,@MSGMERGE@,$MSGMERGE,;t t -s,@build@,$build,;t t -s,@build_cpu@,$build_cpu,;t t -s,@build_vendor@,$build_vendor,;t t -s,@build_os@,$build_os,;t t -s,@host@,$host,;t t -s,@host_cpu@,$host_cpu,;t t -s,@host_vendor@,$host_vendor,;t t -s,@host_os@,$host_os,;t t -s,@USE_NLS@,$USE_NLS,;t t -s,@LIBICONV@,$LIBICONV,;t t -s,@LTLIBICONV@,$LTLIBICONV,;t t -s,@INTLLIBS@,$INTLLIBS,;t t -s,@LIBINTL@,$LIBINTL,;t t -s,@LTLIBINTL@,$LTLIBINTL,;t t -s,@POSUB@,$POSUB,;t t -s,@LIBOBJS@,$LIBOBJS,;t t -s,@ALLOCA@,$ALLOCA,;t t -s,@U@,$U,;t t -s,@ANSI2KNR@,$ANSI2KNR,;t t -s,@LIB_CLOCK_GETTIME@,$LIB_CLOCK_GETTIME,;t t -CEOF - -_ACEOF - - cat >>$CONFIG_STATUS <<\_ACEOF - # Split the substitutions into bite-sized pieces for seds with - # small command number limits, like on Digital OSF/1 and HP-UX. - ac_max_sed_lines=48 - ac_sed_frag=1 # Number of current file. - ac_beg=1 # First line for current file. - ac_end=$ac_max_sed_lines # Line after last line for current file. - ac_more_lines=: - ac_sed_cmds= - while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=false - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" - else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=`expr $ac_sed_frag + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_lines` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat - fi -fi # test -n "$CONFIG_FILES" - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd` -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` - - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_builddir$INSTALL ;; - esac - - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" = x-; then - configure_input= - else - configure_input="$ac_file. " - fi - configure_input=$configure_input"Generated from `echo $ac_file_in | - sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo $f;; - *) # Relative - if test -f "$f"; then - # Build tree - echo $f - elif test -f "$srcdir/$f"; then - # Source tree - echo $srcdir/$f - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;t t -s,@srcdir@,$ac_srcdir,;t t -s,@abs_srcdir@,$ac_abs_srcdir,;t t -s,@top_srcdir@,$ac_top_srcdir,;t t -s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t -s,@builddir@,$ac_builddir,;t t -s,@abs_builddir@,$ac_abs_builddir,;t t -s,@top_builddir@,$ac_top_builddir,;t t -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t -s,@INSTALL@,$ac_INSTALL,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" != x-; then - mv $tmp/out $ac_file - else - cat $tmp/out - rm -f $tmp/out - fi - -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_HEADER section. -# - -# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where -# NAME is the cpp macro being defined and VALUE is the value it is being given. -# -# ac_d sets the value in "#define NAME VALUE" lines. -ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' -ac_dB='[ ].*$,\1#\2' -ac_dC=' ' -ac_dD=',;t' -# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='$,\1#\2define\3' -ac_uC=' ' -ac_uD=',;t' - -for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo $f;; - *) # Relative - if test -f "$f"; then - # Build tree - echo $f - elif test -f "$srcdir/$f"; then - # Source tree - echo $srcdir/$f - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } - # Remove the trailing spaces. - sed 's/[ ]*$//' $ac_file_inputs >$tmp/in - -_ACEOF - -# Transform confdefs.h into two sed scripts, `conftest.defines' and -# `conftest.undefs', that substitutes the proper values into -# config.h.in to produce config.h. The first handles `#define' -# templates, and the second `#undef' templates. -# And first: Protect against being on the right side of a sed subst in -# config.status. Protect against being in an unquoted here document -# in config.status. -rm -f conftest.defines conftest.undefs -# Using a here document instead of a string reduces the quoting nightmare. -# Putting comments in sed scripts is not portable. -# -# `end' is used to avoid that the second main sed command (meant for -# 0-ary CPP macros) applies to n-ary macro definitions. -# See the Autoconf documentation for `clear'. -cat >confdef2sed.sed <<\_ACEOF -s/[\\&,]/\\&/g -s,[\\$`],\\&,g -t clear -: clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp -t end -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp -: end -_ACEOF -# If some macros were called several times there might be several times -# the same #defines, which is useless. Nevertheless, we may not want to -# sort them, since we want the *last* AC-DEFINE to be honored. -uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines -sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs -rm -f confdef2sed.sed - -# This sed command replaces #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -cat >>conftest.undefs <<\_ACEOF -s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, -_ACEOF - -# Break up conftest.defines because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS -echo ' if egrep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS -echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS -echo ' :' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.defines >/dev/null -do - # Write a limited-size here document to $tmp/defines.sed. - echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#define' lines. - echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/defines.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines -echo ' fi # egrep' >>$CONFIG_STATUS -echo >>$CONFIG_STATUS - -# Break up conftest.undefs because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #undef templates' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.undefs >/dev/null -do - # Write a limited-size here document to $tmp/undefs.sed. - echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#undef' - echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/undefs.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail - rm -f conftest.undefs - mv conftest.tail conftest.undefs -done -rm -f conftest.undefs - -cat >>$CONFIG_STATUS <<\_ACEOF - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" = x-; then - echo "/* Generated by configure. */" >$tmp/config.h - else - echo "/* $ac_file. Generated by configure. */" >$tmp/config.h - fi - cat $tmp/in >>$tmp/config.h - rm -f $tmp/in - if test x"$ac_file" != x-; then - if cmp -s $ac_file $tmp/config.h 2>/dev/null; then - { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} - else - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - rm -f $ac_file - mv $tmp/config.h $ac_file - fi - else - cat $tmp/config.h - rm -f $tmp/config.h - fi - # Run the commands associated with the file. - case $ac_file in - config.h ) # update the timestamp -echo 'timestamp for config.h:config.hin' >"./stamp-h1" - ;; - esac -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_LINKS section. -# - -for ac_file in : $CONFIG_LINKS; do test "x$ac_file" = x: && continue - ac_dest=`echo "$ac_file" | sed 's,:.*,,'` - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` - - { echo "$as_me:$LINENO: linking $srcdir/$ac_source to $ac_dest" >&5 -echo "$as_me: linking $srcdir/$ac_source to $ac_dest" >&6;} - - if test ! -r $srcdir/$ac_source; then - { { echo "$as_me:$LINENO: error: $srcdir/$ac_source: file not found" >&5 -echo "$as_me: error: $srcdir/$ac_source: file not found" >&2;} - { (exit 1); exit 1; }; } - fi - rm -f $ac_dest - - # Make relative symlinks. - ac_dest_dir=`(dirname "$ac_dest") 2>/dev/null || -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_dest" : 'X\(//\)[^/]' \| \ - X"$ac_dest" : 'X\(//\)$' \| \ - X"$ac_dest" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_dest" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dest_dir" - else - as_dir="$ac_dest_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dest_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dest_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dest_dir" != .; then - ac_dir_suffix=/`echo "$ac_dest_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac -# Don't blindly perform a `cd "$ac_dest_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dest_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dest_dir" && cd $ac_top_builddir && pwd` -ac_abs_srcdir=`cd "$ac_dest_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dest_dir" && cd $ac_top_srcdir && pwd` - - - case $srcdir in - [\\/$]* | ?:[\\/]* ) ac_rel_source=$srcdir/$ac_source ;; - *) ac_rel_source=$ac_top_builddir$srcdir/$ac_source ;; - esac - - # Make a symlink if possible; otherwise try a hard link. - ln -s $ac_rel_source $ac_dest 2>/dev/null || - ln $srcdir/$ac_source $ac_dest || - { { echo "$as_me:$LINENO: error: cannot link $ac_dest to $srcdir/$ac_source" >&5 -echo "$as_me: error: cannot link $ac_dest to $srcdir/$ac_source" >&2;} - { (exit 1); exit 1; }; } -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_COMMANDS section. -# -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue - ac_dest=`echo "$ac_file" | sed 's,:.*,,'` - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_dir=`(dirname "$ac_dest") 2>/dev/null || -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_dest" : 'X\(//\)[^/]' \| \ - X"$ac_dest" : 'X\(//\)$' \| \ - X"$ac_dest" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_dest" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd` -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` - - - { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 -echo "$as_me: executing $ac_dest commands" >&6;} - case $ac_dest in - depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - if (sed 1q $mf | fgrep 'generated by automake') > /dev/null 2>&1; then - dirpart=`(dirname "$mf") 2>/dev/null || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - else - continue - fi - grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue - # Extract the definition of DEP_FILES from the Makefile without - # running `make'. - DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` - test -z "$DEPDIR" && continue - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n -e '/^U = / s///p' < "$mf"` - test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" - # We invoke sed twice because it is the simplest approach to - # changing $(DEPDIR) to its actual value in the expansion. - for file in `sed -n -e ' - /^DEP_FILES = .*\\\\$/ { - s/^DEP_FILES = // - :loop - s/\\\\$// - p - n - /\\\\$/ b loop - p - } - /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`(dirname "$file") 2>/dev/null || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p $dirpart/$fdir - else - as_dir=$dirpart/$fdir - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 -echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} - { (exit 1); exit 1; }; }; } - - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done - ;; - default-1 ) - for ac_file in $CONFIG_FILES; do - # Support "outfile[:infile[:infile...]]" - case "$ac_file" in - *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - esac - # PO directories have a Makefile.in generated from Makefile.in.in. - case "$ac_file" in */Makefile.in) - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then - rm -f "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" - cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" - # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend - # on $ac_dir but don't depend on user-specified configuration - # parameters. - if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then - # The LINGUAS file contains the set of available languages. - if test -n "$ALL_LINGUAS"; then - test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" - fi - ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` - # Hide the ALL_LINGUAS assigment from automake. - eval 'ALL_LINGUAS''=$ALL_LINGUAS_' - fi - case "$ac_given_srcdir" in - .) srcdirpre= ;; - *) srcdirpre='$(srcdir)/' ;; - esac - POFILES= - GMOFILES= - UPDATEPOFILES= - DUMMYPOFILES= - for lang in $ALL_LINGUAS; do - POFILES="$POFILES $srcdirpre$lang.po" - GMOFILES="$GMOFILES $srcdirpre$lang.gmo" - UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" - DUMMYPOFILES="$DUMMYPOFILES $lang.nop" - done - # CATALOGS depends on both $ac_dir and the user's LINGUAS - # environment variable. - INST_LINGUAS= - if test -n "$ALL_LINGUAS"; then - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "$LINGUAS"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - INST_LINGUAS="$INST_LINGUAS $presentlang" - fi - done - fi - CATALOGS= - if test -n "$INST_LINGUAS"; then - for lang in $INST_LINGUAS; do - CATALOGS="$CATALOGS $lang.gmo" - done - fi - test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" - sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" - for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do - if test -f "$f"; then - case "$f" in - *.orig | *.bak | *~) ;; - *) cat "$f" >> "$ac_dir/Makefile" ;; - esac - fi - done - fi - ;; - esac - done ;; - default ) date > stamp-h ;; - esac -done -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -{ (exit 0); exit 0; } -_ACEOF -chmod +x $CONFIG_STATUS -ac_clean_files=$ac_clean_files_save - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - exec 5>/dev/null - $SHELL $CONFIG_STATUS || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } -fi - diff --git a/gnu/dist/diffutils/configure.ac b/gnu/dist/diffutils/configure.ac deleted file mode 100644 index 369257c4a01..00000000000 --- a/gnu/dist/diffutils/configure.ac +++ /dev/null @@ -1,135 +0,0 @@ -# Configure template for GNU Diffutils. - -# Copyright (C) 1994, 1995, 1998, 2001, 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -AC_PREREQ(2.53) - -AC_INIT(GNU diffutils, 2.8.1, bug-gnu-utils@gnu.org) -AC_CONFIG_SRCDIR(src/diff.c) - -AC_CONFIG_AUX_DIR(config) -AM_CONFIG_HEADER([config.h:config.hin]) -AM_INIT_AUTOMAKE([gnits]) - -AC_PROG_AWK -AC_PROG_CC -AC_ISC_POSIX -AM_PROG_CC_STDC -AC_PROG_CPP -AM_MISSING_PROG(HELP2MAN, help2man) -AC_PROG_INSTALL -AC_PROG_RANLIB - -AC__GNU_SOURCE -AC_DEFINE([__EXTENSIONS__], 1, [Enable Solaris extensions.]) -AC_SYS_LARGEFILE - -AC_C_CONST -AC_C_INLINE -AC_C_VARARRAYS - -AC_DEFINE(DEFAULT_DIFF_PROGRAM, "diff", - [Name of "diff" program, unless overridden.]) - -AC_DEFINE(DEFAULT_EDITOR_PROGRAM, "ed", - [Name of editor program, unless overridden.]) - -AC_PATH_PROG(PR_PROGRAM, pr, "") -AC_DEFINE_UNQUOTED(PR_PROGRAM, "$PR_PROGRAM", [Name of "pr" program.]) - -AC_HEADER_STDBOOL -AC_HEADER_STDC -AC_CHECK_HEADERS(fcntl.h libintl.h limits.h locale.h \ - stdlib.h string.h sys/file.h time.h unistd.h) -AC_CHECK_MEMBERS([struct stat.st_blksize]) -AC_CHECK_MEMBERS([struct stat.st_rdev]) -AC_CHECK_TYPE(ptrdiff_t, int) -AC_CHECK_TYPE(ssize_t, int) -jm_AC_TYPE_UINTMAX_T -AM_GNU_GETTEXT([external]) -XGETTEXT="AWK='$AWK' \$(SHELL) \$(top_srcdir)/exgettext $XGETTEXT" -AC_HEADER_DIRENT -AC_HEADER_STAT -AC_HEADER_SYS_WAIT -AC_STRUCT_ST_MTIM_NSEC -AC_TYPE_PID_T -AC_TYPE_SIGNAL - -AC_CHECK_FUNCS(diraccess dup2 gettimeofday \ - sigaction sigprocmask strchr strerror tmpnam) -AC_REPLACE_FUNCS(memchr mkstemp strcasecmp waitpid) -if test $ac_cv_func_mkstemp != yes; then - AC_LIBOBJ(tempname) -fi -AC_FUNC_CLOSEDIR_VOID -AC_FUNC_FORK -AC_FUNC_VPRINTF -jm_FUNC_GLIBC_UNLOCKED_IO -jm_FUNC_GNU_STRFTIME -# No need for AC_FUNC_MEMCMP, since memcmp is used only to test for equality. -jm_FUNC_MALLOC -jm_FUNC_REALLOC -jm_PREREQ_C_STACK -jm_PREREQ_ERROR -jm_PREREQ_HARD_LOCALE -jm_PREREQ_QUOTEARG -jm_PREREQ_REGEX -AC_DEFINE([REGEX_MALLOC], 1, - [Define to 1 to avoid alloca in the regular-expression implementation.]) -jm_PREREQ_TEMPNAME -jm_AC_PREREQ_XSTRTOUMAX - -# Check for clock_gettime and its library. Solaris puts it in -lrt or -# -lposix4, but we don't want to link that library unless we have to. -diff_saved_libs=$LIBS -AC_SEARCH_LIBS(clock_gettime, [rt posix4]) -case $ac_cv_search_clock_gettime in -no | 'none required') - LIB_CLOCK_GETTIME=;; -*) - LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime;; -esac -AC_SUBST([LIB_CLOCK_GETTIME]) -AC_CHECK_FUNCS(clock_gettime) -LIBS=$diff_saved_libs - -# fnmatch -AC_FUNC_FNMATCH -if test $ac_cv_func_fnmatch_works = yes; then - rm -f lib/fnmatch.h -else - AC_LIBOBJ(fnmatch) - AC_CONFIG_LINKS(lib/fnmatch.h:lib/fnmatch.hin) -fi - -# regex -jm_INCLUDED_REGEX([lib/regex.c]) -if test "$jm_with_regex" = yes; then - AC_CONFIG_LINKS(lib/regex.h:lib/regex.hin) -else - rm -f lib/regex.h -fi - -jm_AC_DOS -AC_FUNC_SETMODE_DOS - -AC_CONFIG_FILES([Makefile doc/Makefile \ - lib/Makefile lib/posix/Makefile man/Makefile \ - m4/Makefile ms/Makefile po/Makefile.in src/Makefile]) -AC_CONFIG_COMMANDS([default], [date > stamp-h]) -AC_OUTPUT diff --git a/gnu/dist/diffutils/diffutils2netbsd b/gnu/dist/diffutils/diffutils2netbsd deleted file mode 100755 index 6a9db84ea7a..00000000000 --- a/gnu/dist/diffutils/diffutils2netbsd +++ /dev/null @@ -1,83 +0,0 @@ -#! /bin/sh -# -# $NetBSD: diffutils2netbsd,v 1.2 2008/04/30 13:10:49 martin Exp $ -# -# Copyright (c) 2003 The NetBSD Foundation, Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS -# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED -# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS -# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -# diffutils2netbsd: convert an diffutils source tree into a -# format suitable for commit. Works on current dir. -# - -# delete some superfluous files -echo deleting some superfluous files -rm -rf ms - -echo done - -### Remove the $'s around RCS tags -find . -type f -print | xargs egrep -l '\$(Id|Created|Header|NetBSD|Revision)' | while read f; do - sed -e 's/\$\(Id.*\) \$/\1/' \ - -e 's/\$\(Created.*\) \$/\1/' \ - -e 's/\$\(Header.*\) \$/\1/' \ - -e 's/\$\(NetBSD.*\) \$/\1/' \ - -e 's/\$\(Revision.*\) \$/\1/' \ - $f > /tmp/diffutils2$$ && mv /tmp/diffutils2$$ $f && \ - echo removed RCS tag from $f -done - -### Add our NetBSD RCS Id -find . -type f -name '*.[chly]' -print | while read c; do - sed 1q < $c | grep -q '\$NetBSD' || ( -echo "/* \$NetBSD\$ */" >/tmp/diffutils3$$ -echo "" >>/tmp/diffutils3$$ -cat $c >> /tmp/diffutils3$$ -mv /tmp/diffutils3$$ $c && echo added NetBSD RCS tag to $c - ) -done - -find . -type f -name '*.[0-9]' -print | while read m; do - sed 1q < $m | grep -q '\$NetBSD' || ( -echo ".\\\" \$NetBSD\$" >/tmp/diffutils4$$ -echo ".\\\"" >>/tmp/diffutils4$$ -cat $m >> /tmp/diffutils4$$ -mv /tmp/diffutils4$$ $m && echo added NetBSD RCS tag to $m - ) -done - -find . -type f -name '*.texi' -print | while read t; do - sed "2 s/^/@c \$NetBSD\$\\ -/" < $t > /tmp/diffutils5$$ - mv /tmp/diffutils5$$ $t && echo added NetBSD RCS tag to $t -done - -echo done - -echo You can import now. - -echo Path: src/gnu/dist/diffutils -echo Vendor: FSF -echo Versiontag: diffutils-X-Y - -exit 0 diff --git a/gnu/dist/diffutils/doc/Makefile.am b/gnu/dist/diffutils/doc/Makefile.am deleted file mode 100644 index 574fdab8705..00000000000 --- a/gnu/dist/diffutils/doc/Makefile.am +++ /dev/null @@ -1,24 +0,0 @@ -# Makefile for GNU diffutils documentation. - -# Copyright (C) 2001, 2002 Free Software Foundation, Inc. - -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2, or (at your option) -## any later version. - -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. - -## You should have received a copy of the GNU General Public License -## along with this program; if not, write to the Free Software Foundation, -## Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -AM_MAKEINFOFLAGS = --no-split - -info_TEXINFOS = diff.texi -diff_TEXINFOS = fdl.texi - -EXTRA_DIST = diagmeet.note diff --git a/gnu/dist/diffutils/doc/Makefile.in b/gnu/dist/diffutils/doc/Makefile.in deleted file mode 100644 index 408013d8e2b..00000000000 --- a/gnu/dist/diffutils/doc/Makefile.in +++ /dev/null @@ -1,359 +0,0 @@ -# Makefile.in generated by automake 1.6 from Makefile.am. -# @configure_input@ - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 -# 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# Makefile for GNU diffutils documentation. - -# Copyright (C) 2001, 2002 Free Software Foundation, Inc. -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_HEADER = $(INSTALL_DATA) -transform = @program_transform_name@ -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ - -EXEEXT = @EXEEXT@ -OBJEXT = @OBJEXT@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -AMTAR = @AMTAR@ -AWK = @AWK@ -BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CPP = @CPP@ -DATADIRNAME = @DATADIRNAME@ -DEPDIR = @DEPDIR@ -GENCAT = @GENCAT@ -GLIBC21 = @GLIBC21@ -GMSGFMT = @GMSGFMT@ -HAVE_LIB = @HAVE_LIB@ -HELP2MAN = @HELP2MAN@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLBISON = @INTLBISON@ -INTLLIBS = @INTLLIBS@ -INTLOBJS = @INTLOBJS@ -INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ -LIB = @LIB@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ -LTLIB = @LTLIB@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -PACKAGE = @PACKAGE@ -POSUB = @POSUB@ -PR_PROGRAM = @PR_PROGRAM@ -RANLIB = @RANLIB@ -STRIP = @STRIP@ -U = @U@ -USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -am__include = @am__include@ -am__quote = @am__quote@ -install_sh = @install_sh@ - -AM_MAKEINFOFLAGS = --no-split - -info_TEXINFOS = diff.texi -diff_TEXINFOS = fdl.texi - -EXTRA_DIST = diagmeet.note -subdir = doc -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -DIST_SOURCES = -TEXINFO_TEX = $(top_srcdir)/config/texinfo.tex -INFO_DEPS = diff.info -DVIS = diff.dvi -TEXINFOS = diff.texi -DIST_COMMON = $(diff_TEXINFOS) Makefile.am Makefile.in stamp-vti \ - version.texi -all: all-am - -.SUFFIXES: -.SUFFIXES: .dvi .info .ps .texi -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnits doc/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) - -$(srcdir)/version.texi: $(srcdir)/stamp-vti - @: -$(srcdir)/stamp-vti: diff.texi $(top_srcdir)/configure.ac - @(set `$(SHELL) $(top_srcdir)/config/mdate-sh $(srcdir)/diff.texi`; \ - echo "@set UPDATED $$1 $$2 $$3"; \ - echo "@set UPDATED-MONTH $$2 $$3"; \ - echo "@set EDITION $(VERSION)"; \ - echo "@set VERSION $(VERSION)") > vti.tmp - @cmp -s vti.tmp $(srcdir)/version.texi \ - || (echo "Updating $(srcdir)/version.texi"; \ - cp vti.tmp $(srcdir)/version.texi) - -@rm -f vti.tmp - @cp $(srcdir)/version.texi $@ - -mostlyclean-vti: - -rm -f vti.tmp - -maintainer-clean-vti: - -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi - -diff.info: diff.texi $(srcdir)/version.texi $(diff_TEXINFOS) -diff.dvi: diff.texi $(srcdir)/version.texi $(diff_TEXINFOS) - -.texi.info: - @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9] - cd $(srcdir) \ - && $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \ - `echo $< | sed 's,.*/,,'` - -.texi.dvi: - TEXINPUTS="$(top_srcdir)/config$(PATH_SEPARATOR)$$TEXINPUTS" \ - MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ - $(TEXI2DVI) $< - -.texi: - @cd $(srcdir) && rm -f $@ $@-[0-9] $@-[0-9][0-9] - cd $(srcdir) \ - && $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) \ - `echo $< | sed 's,.*/,,'` - -MAKEINFO = @MAKEINFO@ -TEXI2DVI = texi2dvi -DVIPS = dvips -.dvi.ps: - $(DVIPS) $< -o $@ - -uninstall-info-am: - $(PRE_UNINSTALL) - @if (install-info --version && \ - install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then \ - list='$(INFO_DEPS)'; \ - for file in $$list; do \ - echo " install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file"; \ - install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$file; \ - done; \ - else :; fi - @$(NORMAL_UNINSTALL) - @list='$(INFO_DEPS)'; \ - for file in $$list; do \ - (if cd $(DESTDIR)$(infodir); then \ - echo " rm -f $$file $$file-[0-9] $$file-[0-9][0-9])"; \ - rm -f $$file $$file-[0-9] $$file-[0-9][0-9]; \ - else :; fi); \ - done - -dist-info: $(INFO_DEPS) - list='$(INFO_DEPS)'; \ - for base in $$list; do \ - d=$(srcdir); \ - for file in $$d/$$base*; do \ - relfile=`expr "$$file" : "$$d/\(.*\)"`; \ - test -f $(distdir)/$$relfile || \ - cp -p $$file $(distdir)/$$relfile; \ - done; \ - done - -mostlyclean-aminfo: - -rm -f diff.aux diff.cp diff.cps diff.dvi diff.fn diff.ky diff.log diff.pg \ - diff.ps diff.toc diff.tp diff.vr - -maintainer-clean-aminfo: - cd $(srcdir) && \ - for i in $(INFO_DEPS); do \ - rm -f $$i; \ - if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \ - rm -f $$i-[0-9]*; \ - fi; \ - done -tags: TAGS -TAGS: - -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = .. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkinstalldirs) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - cp -pR $$d/$$file $(distdir)$$dir \ - || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="${top_distdir}" distdir="$(distdir)" \ - dist-info -check-am: all-am -check: check-am -all-am: Makefile $(INFO_DEPS) - -installdirs: - $(mkinstalldirs) $(DESTDIR)$(infodir) - -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* - -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 - -distclean: distclean-am - -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: $(DVIS) - -info: info-am - -info-am: $(INFO_DEPS) - -install-data-am: install-info-am - -install-exec-am: - -install-info: install-info-am - -install-info-am: $(INFO_DEPS) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(infodir) - @list='$(INFO_DEPS)'; \ - for file in $$list; do \ - d=$(srcdir); \ - for ifile in echo $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9]; do \ - if test -f $$ifile; then \ - relfile=`expr "$$ifile" : "$$d/\(.*\)"`; \ - echo " $(INSTALL_DATA) $$ifile $(DESTDIR)$(infodir)/$$relfile"; \ - $(INSTALL_DATA) $$ifile $(DESTDIR)$(infodir)/$$relfile; \ - else : ; fi; \ - done; \ - done - @$(POST_INSTALL) - @if (install-info --version && \ - install-info --version | fgrep -i -v debian) >/dev/null 2>&1; then \ - list='$(INFO_DEPS)'; \ - for file in $$list; do \ - echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\ - install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\ - done; \ - else : ; fi -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -maintainer-clean-am: distclean-am maintainer-clean-aminfo \ - maintainer-clean-generic maintainer-clean-vti - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-aminfo mostlyclean-generic mostlyclean-vti - -uninstall-am: uninstall-info-am - -.PHONY: all all-am check check-am clean clean-generic dist-info \ - distclean distclean-generic distdir dvi dvi-am info info-am \ - install install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-aminfo \ - maintainer-clean-generic maintainer-clean-vti mostlyclean \ - mostlyclean-aminfo mostlyclean-generic mostlyclean-vti \ - uninstall uninstall-am uninstall-info-am - -# 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/gnu/dist/diffutils/doc/diagmeet.note b/gnu/dist/diffutils/doc/diagmeet.note deleted file mode 100644 index 8f7242c7356..00000000000 --- a/gnu/dist/diffutils/doc/diagmeet.note +++ /dev/null @@ -1,71 +0,0 @@ -Here is a comparison matrix which shows a case in which -it is possible for the forward and backward scan in `diag' -to meet along a nonzero length of diagonal simultaneous -(so that bdiag[d] and fdiag[d] are not equal) -even though there is no snake on that diagonal at the meeting point. - - - 85 1 1 1 159 1 1 17 - 1 2 3 4 -60 - 1 2 -1 - 2 2 3 4 -71 - 3 3 4 5 -85 - 4 3 4 5 -17 - 5 4 5 -1 - 6 4 5 6 -183 - 7 5 6 7 -10 - 8 6 7 -1 - 9 6 7 8 -12 - 7 8 9 10 -13 - 10 8 9 10 -14 - 10 9 10 -17 - 10 10 -1 - 10 9 10 -1 - 8 10 10 10 -183 - 8 7 9 9 9 -10 - 7 6 8 9 8 8 -1 - 6 5 7 7 -1 - 5 6 6 -1 - 5 5 5 -50 - 5 4 4 4 -1 - 4 3 3 -85 - 5 4 3 2 2 -1 - 2 1 -17 - 5 4 3 2 1 1 -1 - 1 0 - 85 1 1 1 159 1 1 17 - - - - - - - - - diff --git a/gnu/dist/diffutils/doc/diff.info b/gnu/dist/diffutils/doc/diff.info deleted file mode 100644 index d58accf7ea9..00000000000 --- a/gnu/dist/diffutils/doc/diff.info +++ /dev/null @@ -1,5084 +0,0 @@ -This is diff.info, produced by makeinfo version 4.2 from diff.texi. - -This manual is for GNU Diffutils (version 2.8.1, 5 April 2002), and -documents the GNU `diff', `diff3', `sdiff', and `cmp' commands for -showing the differences between files and the GNU `patch' command for -using their output to update files. - - Copyright (C) 1992, 1993, 1994, 1998, 2001, 2002 Free Software -Foundation, Inc. - - Permission is granted to copy, distribute and/or modify this - document under the terms of the GNU Free Documentation License, - Version 1.1 or any later version published by the Free Software - Foundation; with no Invariant Sections, with the Front-Cover texts - being "A GNU Manual," and with the Back-Cover Texts as in (a) - below. A copy of the license is included in the section entitled - "GNU Free Documentation License." - - (a) The FSF's Back-Cover Text is: "You have freedom to copy and - modify this GNU Manual, like GNU software. Copies published by - the Free Software Foundation raise funds for GNU development." - -INFO-DIR-SECTION Individual utilities -START-INFO-DIR-ENTRY -* cmp: (diff)Invoking cmp. Compare 2 files byte by byte. -* diff: (diff)Invoking diff. Compare 2 files line by line. -* diff3: (diff)Invoking diff3. Compare 3 files line by line. -* patch: (diff)Invoking patch. Apply a patch to a file. -* sdiff: (diff)Invoking sdiff. Merge 2 files side-by-side. -END-INFO-DIR-ENTRY - -INFO-DIR-SECTION GNU packages -START-INFO-DIR-ENTRY -* Diff: (diff). Comparing and merging files. -END-INFO-DIR-ENTRY - - -File: diff.info, Node: Top, Next: Overview, Up: (dir) - -Comparing and Merging Files -*************************** - -This manual is for GNU Diffutils (version 2.8.1, 5 April 2002), and -documents the GNU `diff', `diff3', `sdiff', and `cmp' commands for -showing the differences between files and the GNU `patch' command for -using their output to update files. - - Copyright (C) 1992, 1993, 1994, 1998, 2001, 2002 Free Software -Foundation, Inc. - - Permission is granted to copy, distribute and/or modify this - document under the terms of the GNU Free Documentation License, - Version 1.1 or any later version published by the Free Software - Foundation; with no Invariant Sections, with the Front-Cover texts - being "A GNU Manual," and with the Back-Cover Texts as in (a) - below. A copy of the license is included in the section entitled - "GNU Free Documentation License." - - (a) The FSF's Back-Cover Text is: "You have freedom to copy and - modify this GNU Manual, like GNU software. Copies published by - the Free Software Foundation raise funds for GNU development." - -* Menu: - -* Overview:: Preliminary information. -* Comparison:: What file comparison means. - -* Output Formats:: Formats for two-way difference reports. -* Incomplete Lines:: Lines that lack trailing newlines. -* Comparing Directories:: Comparing files and directories. -* Adjusting Output:: Making `diff' output prettier. -* diff Performance:: Making `diff' smarter or faster. - -* Comparing Three Files:: Formats for three-way difference reports. -* diff3 Merging:: Merging from a common ancestor. - -* Interactive Merging:: Interactive merging with `sdiff'. - -* Merging with patch:: Using `patch' to change old files into new ones. -* Making Patches:: Tips for making and using patch distributions. - -* Invoking cmp:: Compare two files byte by byte. -* Invoking diff:: Compare two files line by line. -* Invoking diff3:: Compare three files line by line. -* Invoking patch:: Apply a diff file to an original. -* Invoking sdiff:: Side-by-side merge of file differences. - -* Standards conformance:: Conformance to the POSIX standard. -* Projects:: If you've found a bug or other shortcoming. - -* Copying This Manual:: How to make copies of this manual. -* Index:: Index. - - -File: diff.info, Node: Overview, Next: Comparison, Prev: Top, Up: Top - -Overview -******** - - Computer users often find occasion to ask how two files differ. -Perhaps one file is a newer version of the other file. Or maybe the -two files started out as identical copies but were changed by different -people. - - You can use the `diff' command to show differences between two -files, or each corresponding file in two directories. `diff' outputs -differences between files line by line in any of several formats, -selectable by command line options. This set of differences is often -called a "diff" or "patch". For files that are identical, `diff' -normally produces no output; for binary (non-text) files, `diff' -normally reports only that they are different. - - You can use the `cmp' command to show the byte and line numbers -where two files differ. `cmp' can also show all the bytes that differ -between the two files, side by side. A way to compare two files -character by character is the Emacs command `M-x compare-windows'. -*Note Other Window: (emacs)Other Window, for more information on that -command. - - You can use the `diff3' command to show differences among three -files. When two people have made independent changes to a common -original, `diff3' can report the differences between the original and -the two changed versions, and can produce a merged file that contains -both persons' changes together with warnings about conflicts. - - You can use the `sdiff' command to merge two files interactively. - - You can use the set of differences produced by `diff' to distribute -updates to text files (such as program source code) to other people. -This method is especially useful when the differences are small compared -to the complete files. Given `diff' output, you can use the `patch' -program to update, or "patch", a copy of the file. If you think of -`diff' as subtracting one file from another to produce their -difference, you can think of `patch' as adding the difference to one -file to reproduce the other. - - This manual first concentrates on making diffs, and later shows how -to use diffs to update files. - - GNU `diff' was written by Paul Eggert, Mike Haertel, David Hayes, -Richard Stallman, and Len Tower. Wayne Davison designed and -implemented the unified output format. The basic algorithm is described -in "An O(ND) Difference Algorithm and its Variations", Eugene W. Myers, -`Algorithmica' Vol. 1 No. 2, 1986, pp. 251-266; and in "A File -Comparison Program", Webb Miller and Eugene W. Myers, -`Software--Practice and Experience' Vol. 15 No. 11, 1985, pp. 1025-1040. -The algorithm was independently discovered as described in "Algorithms -for Approximate String Matching", E. Ukkonen, `Information and Control' -Vol. 64, 1985, pp. 100-118. - - GNU `diff3' was written by Randy Smith. GNU `sdiff' was written by -Thomas Lord. GNU `cmp' was written by Torbjorn Granlund and David -MacKenzie. - - `patch' was written mainly by Larry Wall and Paul Eggert; several -GNU enhancements were contributed by Wayne Davison and David MacKenzie. -Parts of this manual are adapted from a manual page written by Larry -Wall, with his permission. - - -File: diff.info, Node: Comparison, Next: Output Formats, Prev: Overview, Up: Top - -What Comparison Means -********************* - - There are several ways to think about the differences between two -files. One way to think of the differences is as a series of lines -that were deleted from, inserted in, or changed in one file to produce -the other file. `diff' compares two files line by line, finds groups of -lines that differ, and reports each group of differing lines. It can -report the differing lines in several formats, which have different -purposes. - - GNU `diff' can show whether files are different without detailing -the differences. It also provides ways to suppress certain kinds of -differences that are not important to you. Most commonly, such -differences are changes in the amount of white space between words or -lines. `diff' also provides ways to suppress differences in alphabetic -case or in lines that match a regular expression that you provide. -These options can accumulate; for example, you can ignore changes in -both white space and alphabetic case. - - Another way to think of the differences between two files is as a -sequence of pairs of bytes that can be either identical or different. -`cmp' reports the differences between two files byte by byte, instead -of line by line. As a result, it is often more useful than `diff' for -comparing binary files. For text files, `cmp' is useful mainly when -you want to know only whether two files are identical, or whether one -file is a prefix of the other. - - To illustrate the effect that considering changes byte by byte can -have compared with considering them line by line, think of what happens -if a single newline character is added to the beginning of a file. If -that file is then compared with an otherwise identical file that lacks -the newline at the beginning, `diff' will report that a blank line has -been added to the file, while `cmp' will report that almost every byte -of the two files differs. - - `diff3' normally compares three input files line by line, finds -groups of lines that differ, and reports each group of differing lines. -Its output is designed to make it easy to inspect two different sets of -changes to the same file. - -* Menu: - -* Hunks:: Groups of differing lines. -* White Space:: Suppressing differences in white space. -* Blank Lines:: Suppressing differences in blank lines. -* Case Folding:: Suppressing differences in alphabetic case. -* Specified Folding:: Suppressing differences that match regular expressions. -* Brief:: Summarizing which files are different. -* Binary:: Comparing binary files or forcing text comparisons. - - -File: diff.info, Node: Hunks, Next: White Space, Up: Comparison - -Hunks -===== - - When comparing two files, `diff' finds sequences of lines common to -both files, interspersed with groups of differing lines called "hunks". -Comparing two identical files yields one sequence of common lines and -no hunks, because no lines differ. Comparing two entirely different -files yields no common lines and one large hunk that contains all lines -of both files. In general, there are many ways to match up lines -between two given files. `diff' tries to minimize the total hunk size -by finding large sequences of common lines interspersed with small -hunks of differing lines. - - For example, suppose the file `F' contains the three lines `a', `b', -`c', and the file `G' contains the same three lines in reverse order -`c', `b', `a'. If `diff' finds the line `c' as common, then the command -`diff F G' produces this output: - - 1,2d0 - < a - < b - 3a2,3 - > b - > a - -But if `diff' notices the common line `b' instead, it produces this -output: - - 1c1 - < a - --- - > c - 3c3 - < c - --- - > a - -It is also possible to find `a' as the common line. `diff' does not -always find an optimal matching between the files; it takes shortcuts -to run faster. But its output is usually close to the shortest -possible. You can adjust this tradeoff with the `--minimal' option -(*note diff Performance::). - - -File: diff.info, Node: White Space, Next: Blank Lines, Prev: Hunks, Up: Comparison - -Suppressing Differences in Blank and Tab Spacing -================================================ - - The `-E' and `--ignore-tab-expansion' options ignore the distinction -between tabs and spaces on input. A tab is considered to be equivalent -to the number of spaces to the next tab stop. `diff' assumes that tab -stops are set every 8 print columns. - - The `-b' and `--ignore-space-change' options are stronger. They -ignore white space at line end, and consider all other sequences of one -or more white space characters to be equivalent. With these options, -`diff' considers the following two lines to be equivalent, where `$' -denotes the line end: - - Here lyeth muche rychnesse in lytell space. -- John Heywood$ - Here lyeth muche rychnesse in lytell space. -- John Heywood $ - - The `-w' and `--ignore-all-space' options are stronger still. They -ignore difference even if one line has white space where the other line -has none. "White space" characters include tab, newline, vertical tab, -form feed, carriage return, and space; some locales may define -additional characters to be white space. With these options, `diff' -considers the following two lines to be equivalent, where `$' denotes -the line end and `^M' denotes a carriage return: - - Here lyeth muche rychnesse in lytell space.-- John Heywood$ - He relyeth much erychnes seinly tells pace. --John Heywood ^M$ - - -File: diff.info, Node: Blank Lines, Next: Case Folding, Prev: White Space, Up: Comparison - -Suppressing Differences in Blank Lines -====================================== - - The `-B' and `--ignore-blank-lines' options ignore insertions or -deletions of blank lines. These options affect only lines that are -completely empty; they do not affect lines that look empty but contain -space or tab characters. With these options, for example, a file -containing - 1. A point is that which has no part. - - 2. A line is breadthless length. - -- Euclid, The Elements, I - -is considered identical to a file containing - 1. A point is that which has no part. - 2. A line is breadthless length. - - - -- Euclid, The Elements, I - - -File: diff.info, Node: Case Folding, Next: Specified Folding, Prev: Blank Lines, Up: Comparison - -Suppressing Case Differences -============================ - - GNU `diff' can treat lower case letters as equivalent to their upper -case counterparts, so that, for example, it considers `Funky Stuff', -`funky STUFF', and `fUNKy stuFf' to all be the same. To request this, -use the `-i' or `--ignore-case' option. - - -File: diff.info, Node: Specified Folding, Next: Brief, Prev: Case Folding, Up: Comparison - -Suppressing Lines Matching a Regular Expression -=============================================== - - To ignore insertions and deletions of lines that match a -`grep'-style regular expression, use the `-I REGEXP' or -`--ignore-matching-lines=REGEXP' option. You should escape regular -expressions that contain shell metacharacters to prevent the shell from -expanding them. For example, `diff -I '^[[:digit:]]'' ignores all -changes to lines beginning with a digit. - - However, `-I' only ignores the insertion or deletion of lines that -contain the regular expression if every changed line in the hunk--every -insertion and every deletion--matches the regular expression. In other -words, for each nonignorable change, `diff' prints the complete set of -changes in its vicinity, including the ignorable ones. - - You can specify more than one regular expression for lines to ignore -by using more than one `-I' option. `diff' tries to match each line -against each regular expression. - - -File: diff.info, Node: Brief, Next: Binary, Prev: Specified Folding, Up: Comparison - -Summarizing Which Files Differ -============================== - - When you only want to find out whether files are different, and you -don't care what the differences are, you can use the summary output -format. In this format, instead of showing the differences between the -files, `diff' simply reports whether files differ. The `-q' and -`--brief' options select this output format. - - This format is especially useful when comparing the contents of two -directories. It is also much faster than doing the normal line by line -comparisons, because `diff' can stop analyzing the files as soon as it -knows that there are any differences. - - You can also get a brief indication of whether two files differ by -using `cmp'. For files that are identical, `cmp' produces no output. -When the files differ, by default, `cmp' outputs the byte and line -number where the first difference occurs. You can use the `-s' option -to suppress that information, so that `cmp' produces no output and -reports whether the files differ using only its exit status (*note -Invoking cmp::). - - Unlike `diff', `cmp' cannot compare directories; it can only compare -two files. - - -File: diff.info, Node: Binary, Prev: Brief, Up: Comparison - -Binary Files and Forcing Text Comparisons -========================================= - - If `diff' thinks that either of the two files it is comparing is -binary (a non-text file), it normally treats that pair of files much as -if the summary output format had been selected (*note Brief::), and -reports only that the binary files are different. This is because line -by line comparisons are usually not meaningful for binary files. - - `diff' determines whether a file is text or binary by checking the -first few bytes in the file; the exact number of bytes is system -dependent, but it is typically several thousand. If every byte in that -part of the file is non-null, `diff' considers the file to be text; -otherwise it considers the file to be binary. - - Sometimes you might want to force `diff' to consider files to be -text. For example, you might be comparing text files that contain null -characters; `diff' would erroneously decide that those are non-text -files. Or you might be comparing documents that are in a format used -by a word processing system that uses null characters to indicate -special formatting. You can force `diff' to consider all files to be -text files, and compare them line by line, by using the `-a' or -`--text' option. If the files you compare using this option do not in -fact contain text, they will probably contain few newline characters, -and the `diff' output will consist of hunks showing differences between -long lines of whatever characters the files contain. - - You can also force `diff' to consider all files to be binary files, -and report only whether they differ (but not how). Use the `-q' or -`--brief' option for this. - - Differing binary files are considered to cause trouble because the -resulting `diff' output does not capture all the differences. This -trouble causes `diff' to exit with status 2. However, this trouble -cannot occur with the `--a' or `--text' option, or with the `-q' or -`--brief' option, as these options both cause `diff' to treat binary -files like text files. - - In operating systems that distinguish between text and binary files, -`diff' normally reads and writes all data as text. Use the `--binary' -option to force `diff' to read and write binary data instead. This -option has no effect on a POSIX-compliant system like GNU or -traditional Unix. However, many personal computer operating systems -represent the end of a line with a carriage return followed by a -newline. On such systems, `diff' normally ignores these carriage -returns on input and generates them at the end of each output line, but -with the `--binary' option `diff' treats each carriage return as just -another input character, and does not generate a carriage return at the -end of each output line. This can be useful when dealing with non-text -files that are meant to be interchanged with POSIX-compliant systems. - - The `--strip-trailing-cr' causes `diff' to treat input lines that -end in carriage return followed by newline as if they end in plain -newline. This can be useful when comparing text that is imperfectly -imported from many personal computer operating systems. This option -affects how lines are read, which in turn affects how they are compared -and output. - - If you want to compare two files byte by byte, you can use the `cmp' -program with the `-l' option to show the values of each differing byte -in the two files. With GNU `cmp', you can also use the `-b' option to -show the ASCII representation of those bytes. *Note Invoking cmp::, -for more information. - - If `diff3' thinks that any of the files it is comparing is binary (a -non-text file), it normally reports an error, because such comparisons -are usually not useful. `diff3' uses the same test as `diff' to decide -whether a file is binary. As with `diff', if the input files contain a -few non-text bytes but otherwise are like text files, you can force -`diff3' to consider all files to be text files and compare them line by -line by using the `-a' or `--text' options. - - -File: diff.info, Node: Output Formats, Next: Incomplete Lines, Prev: Comparison, Up: Top - -`diff' Output Formats -********************* - - `diff' has several mutually exclusive options for output format. -The following sections describe each format, illustrating how `diff' -reports the differences between two sample input files. - -* Menu: - -* Sample diff Input:: Sample `diff' input files for examples. -* Normal:: Showing differences without surrounding text. -* Context:: Showing differences with the surrounding text. -* Side by Side:: Showing differences in two columns. -* Scripts:: Generating scripts for other programs. -* If-then-else:: Merging files with if-then-else. - - -File: diff.info, Node: Sample diff Input, Next: Normal, Up: Output Formats - -Two Sample Input Files -====================== - - Here are two sample files that we will use in numerous examples to -illustrate the output of `diff' and how various options can change it. - - This is the file `lao': - - The Way that can be told of is not the eternal Way; - The name that can be named is not the eternal name. - The Nameless is the origin of Heaven and Earth; - The Named is the mother of all things. - Therefore let there always be non-being, - so we may see their subtlety, - And let there always be being, - so we may see their outcome. - The two are the same, - But after they are produced, - they have different names. - - This is the file `tzu': - - The Nameless is the origin of Heaven and Earth; - The named is the mother of all things. - - Therefore let there always be non-being, - so we may see their subtlety, - And let there always be being, - so we may see their outcome. - The two are the same, - But after they are produced, - they have different names. - They both may be called deep and profound. - Deeper and more profound, - The door of all subtleties! - - In this example, the first hunk contains just the first two lines of -`lao', the second hunk contains the fourth line of `lao' opposing the -second and third lines of `tzu', and the last hunk contains just the -last three lines of `tzu'. - - -File: diff.info, Node: Normal, Next: Context, Prev: Sample diff Input, Up: Output Formats - -Showing Differences Without Context -=================================== - - The "normal" `diff' output format shows each hunk of differences -without any surrounding context. Sometimes such output is the clearest -way to see how lines have changed, without the clutter of nearby -unchanged lines (although you can get similar results with the context -or unified formats by using 0 lines of context). However, this format -is no longer widely used for sending out patches; for that purpose, the -context format (*note Context Format::) and the unified format (*note -Unified Format::) are superior. Normal format is the default for -compatibility with older versions of `diff' and the POSIX standard. -Use the `--normal' option to select this output format explicitly. - -* Menu: - -* Detailed Normal:: A detailed description of normal output format. -* Example Normal:: Sample output in the normal format. - - -File: diff.info, Node: Detailed Normal, Next: Example Normal, Up: Normal - -Detailed Description of Normal Format -------------------------------------- - - The normal output format consists of one or more hunks of -differences; each hunk shows one area where the files differ. Normal -format hunks look like this: - - CHANGE-COMMAND - < FROM-FILE-LINE - < FROM-FILE-LINE... - --- - > TO-FILE-LINE - > TO-FILE-LINE... - - There are three types of change commands. Each consists of a line -number or comma-separated range of lines in the first file, a single -character indicating the kind of change to make, and a line number or -comma-separated range of lines in the second file. All line numbers are -the original line numbers in each file. The types of change commands -are: - -`LaR' - Add the lines in range R of the second file after line L of the - first file. For example, `8a12,15' means append lines 12-15 of - file 2 after line 8 of file 1; or, if changing file 2 into file 1, - delete lines 12-15 of file 2. - -`FcT' - Replace the lines in range F of the first file with lines in range - T of the second file. This is like a combined add and delete, but - more compact. For example, `5,7c8,10' means change lines 5-7 of - file 1 to read as lines 8-10 of file 2; or, if changing file 2 into - file 1, change lines 8-10 of file 2 to read as lines 5-7 of file 1. - -`RdL' - Delete the lines in range R from the first file; line L is where - they would have appeared in the second file had they not been - deleted. For example, `5,7d3' means delete lines 5-7 of file 1; - or, if changing file 2 into file 1, append lines 5-7 of file 1 - after line 3 of file 2. - - -File: diff.info, Node: Example Normal, Prev: Detailed Normal, Up: Normal - -An Example of Normal Format ---------------------------- - - Here is the output of the command `diff lao tzu' (*note Sample diff -Input::, for the complete contents of the two files). Notice that it -shows only the lines that are different between the two files. - - 1,2d0 - < The Way that can be told of is not the eternal Way; - < The name that can be named is not the eternal name. - 4c2,3 - < The Named is the mother of all things. - --- - > The named is the mother of all things. - > - 11a11,13 - > They both may be called deep and profound. - > Deeper and more profound, - > The door of all subtleties! - - -File: diff.info, Node: Context, Next: Side by Side, Prev: Normal, Up: Output Formats - -Showing Differences in Their Context -==================================== - - Usually, when you are looking at the differences between files, you -will also want to see the parts of the files near the lines that -differ, to help you understand exactly what has changed. These nearby -parts of the files are called the "context". - - GNU `diff' provides two output formats that show context around the -differing lines: "context format" and "unified format". It can -optionally show in which function or section of the file the differing -lines are found. - - If you are distributing new versions of files to other people in the -form of `diff' output, you should use one of the output formats that -show context so that they can apply the diffs even if they have made -small changes of their own to the files. `patch' can apply the diffs -in this case by searching in the files for the lines of context around -the differing lines; if those lines are actually a few lines away from -where the diff says they are, `patch' can adjust the line numbers -accordingly and still apply the diff correctly. *Note Imperfect::, for -more information on using `patch' to apply imperfect diffs. - -* Menu: - -* Context Format:: An output format that shows surrounding lines. -* Unified Format:: A more compact output format that shows context. -* Sections:: Showing which sections of the files differences are in. -* Alternate Names:: Showing alternate file names in context headers. - - -File: diff.info, Node: Context Format, Next: Unified Format, Up: Context - -Context Format --------------- - - The context output format shows several lines of context around the -lines that differ. It is the standard format for distributing updates -to source code. - - To select this output format, use the `-C LINES', -`--context[=LINES]', or `-c' option. The argument LINES that some of -these options take is the number of lines of context to show. If you -do not specify LINES, it defaults to three. For proper operation, -`patch' typically needs at least two lines of context. - -* Menu: - -* Detailed Context:: A detailed description of the context output format. -* Example Context:: Sample output in context format. -* Less Context:: Another sample with less context. - - -File: diff.info, Node: Detailed Context, Next: Example Context, Up: Context Format - -Detailed Description of Context Format -...................................... - - The context output format starts with a two-line header, which looks -like this: - - *** FROM-FILE FROM-FILE-MODIFICATION-TIME - --- TO-FILE TO-FILE-MODIFICATION TIME - -The time stamp normally looks like `2002-02-21 23:30:39.942229878 --0800' to indicate the date, time with fractional seconds, and time -zone in Internet RFC 2822 format -(ftp://ftp.isi.edu/in-notes/rfc2822.txt). However, a traditional time -stamp like `Thu Feb 21 23:30:39 2002' is used if the `LC_TIME' locale -category is either `C' or `POSIX'. - - You can change the header's content with the `--label=LABEL' option; -see *Note Alternate Names::. - - Next come one or more hunks of differences; each hunk shows one area -where the files differ. Context format hunks look like this: - - *************** - *** FROM-FILE-LINE-RANGE **** - FROM-FILE-LINE - FROM-FILE-LINE... - --- TO-FILE-LINE-RANGE ---- - TO-FILE-LINE - TO-FILE-LINE... - - The lines of context around the lines that differ start with two -space characters. The lines that differ between the two files start -with one of the following indicator characters, followed by a space -character: - -`!' - A line that is part of a group of one or more lines that changed - between the two files. There is a corresponding group of lines - marked with `!' in the part of this hunk for the other file. - -`+' - An "inserted" line in the second file that corresponds to nothing - in the first file. - -`-' - A "deleted" line in the first file that corresponds to nothing in - the second file. - - If all of the changes in a hunk are insertions, the lines of -FROM-FILE are omitted. If all of the changes are deletions, the lines -of TO-FILE are omitted. - - -File: diff.info, Node: Example Context, Next: Less Context, Prev: Detailed Context, Up: Context Format - -An Example of Context Format -............................ - - Here is the output of `diff -c lao tzu' (*note Sample diff Input::, -for the complete contents of the two files). Notice that up to three -lines that are not different are shown around each line that is -different; they are the context lines. Also notice that the first two -hunks have run together, because their contents overlap. - - *** lao 2002-02-21 23:30:39.942229878 -0800 - --- tzu 2002-02-21 23:30:50.442260588 -0800 - *************** - *** 1,7 **** - - The Way that can be told of is not the eternal Way; - - The name that can be named is not the eternal name. - The Nameless is the origin of Heaven and Earth; - ! The Named is the mother of all things. - Therefore let there always be non-being, - so we may see their subtlety, - And let there always be being, - --- 1,6 ---- - The Nameless is the origin of Heaven and Earth; - ! The named is the mother of all things. - ! - Therefore let there always be non-being, - so we may see their subtlety, - And let there always be being, - *************** - *** 9,11 **** - --- 8,13 ---- - The two are the same, - But after they are produced, - they have different names. - + They both may be called deep and profound. - + Deeper and more profound, - + The door of all subtleties! - - -File: diff.info, Node: Less Context, Prev: Example Context, Up: Context Format - -An Example of Context Format with Less Context -.............................................. - - Here is the output of `diff -C 1 lao tzu' (*note Sample diff -Input::, for the complete contents of the two files). Notice that at -most one context line is reported here. - - *** lao 2002-02-21 23:30:39.942229878 -0800 - --- tzu 2002-02-21 23:30:50.442260588 -0800 - *************** - *** 1,5 **** - - The Way that can be told of is not the eternal Way; - - The name that can be named is not the eternal name. - The Nameless is the origin of Heaven and Earth; - ! The Named is the mother of all things. - Therefore let there always be non-being, - --- 1,4 ---- - The Nameless is the origin of Heaven and Earth; - ! The named is the mother of all things. - ! - Therefore let there always be non-being, - *************** - *** 11 **** - --- 10,13 ---- - they have different names. - + They both may be called deep and profound. - + Deeper and more profound, - + The door of all subtleties! - - -File: diff.info, Node: Unified Format, Next: Sections, Prev: Context Format, Up: Context - -Unified Format --------------- - - The unified output format is a variation on the context format that -is more compact because it omits redundant context lines. To select -this output format, use the `-U LINES', `--unified[=LINES]', or `-u' -option. The argument LINES is the number of lines of context to show. -When it is not given, it defaults to three. - - At present, only GNU `diff' can produce this format and only GNU -`patch' can automatically apply diffs in this format. For proper -operation, `patch' typically needs at least three lines of context. - -* Menu: - -* Detailed Unified:: A detailed description of unified format. -* Example Unified:: Sample output in unified format. - - -File: diff.info, Node: Detailed Unified, Next: Example Unified, Up: Unified Format - -Detailed Description of Unified Format -...................................... - - The unified output format starts with a two-line header, which looks -like this: - - --- FROM-FILE FROM-FILE-MODIFICATION-TIME - +++ TO-FILE TO-FILE-MODIFICATION-TIME - -The time stamp looks like `2002-02-21 23:30:39.942229878 -0800' to -indicate the date, time with fractional seconds, and time zone. - - You can change the header's content with the `--label=LABEL' option; -see *Note Alternate Names::. - - Next come one or more hunks of differences; each hunk shows one area -where the files differ. Unified format hunks look like this: - - @@ FROM-FILE-RANGE TO-FILE-RANGE @@ - LINE-FROM-EITHER-FILE - LINE-FROM-EITHER-FILE... - - The lines common to both files begin with a space character. The -lines that actually differ between the two files have one of the -following indicator characters in the left print column: - -`+' - A line was added here to the first file. - -`-' - A line was removed here from the first file. - - -File: diff.info, Node: Example Unified, Prev: Detailed Unified, Up: Unified Format - -An Example of Unified Format -............................ - - Here is the output of the command `diff -u lao tzu' (*note Sample -diff Input::, for the complete contents of the two files): - - --- lao 2002-02-21 23:30:39.942229878 -0800 - +++ tzu 2002-02-21 23:30:50.442260588 -0800 - @@ -1,7 +1,6 @@ - -The Way that can be told of is not the eternal Way; - -The name that can be named is not the eternal name. - The Nameless is the origin of Heaven and Earth; - -The Named is the mother of all things. - +The named is the mother of all things. - + - Therefore let there always be non-being, - so we may see their subtlety, - And let there always be being, - @@ -9,3 +8,6 @@ - The two are the same, - But after they are produced, - they have different names. - +They both may be called deep and profound. - +Deeper and more profound, - +The door of all subtleties! - - -File: diff.info, Node: Sections, Next: Alternate Names, Prev: Unified Format, Up: Context - -Showing Which Sections Differences Are in ------------------------------------------ - - Sometimes you might want to know which part of the files each change -falls in. If the files are source code, this could mean which function -was changed. If the files are documents, it could mean which chapter or -appendix was changed. GNU `diff' can show this by displaying the -nearest section heading line that precedes the differing lines. Which -lines are "section headings" is determined by a regular expression. - -* Menu: - -* Specified Headings:: Showing headings that match regular expressions. -* C Function Headings:: Showing headings of C functions. - - -File: diff.info, Node: Specified Headings, Next: C Function Headings, Up: Sections - -Showing Lines That Match Regular Expressions -............................................ - - To show in which sections differences occur for files that are not -source code for C or similar languages, use the `-F REGEXP' or -`--show-function-line=REGEXP' option. `diff' considers lines that -match the `grep'-style regular expression REGEXP to be the beginning of -a section of the file. Here are suggested regular expressions for some -common languages: - -`^[[:alpha:]$_]' - C, C++, Prolog - -`^(' - Lisp - -`^@node' - Texinfo - - This option does not automatically select an output format; in order -to use it, you must select the context format (*note Context Format::) -or unified format (*note Unified Format::). In other output formats it -has no effect. - - The `-F' and `--show-function-line' options find the nearest -unchanged line that precedes each hunk of differences and matches the -given regular expression. Then they add that line to the end of the -line of asterisks in the context format, or to the `@@' line in unified -format. If no matching line exists, they leave the output for that -hunk unchanged. If that line is more than 40 characters long, they -output only the first 40 characters. You can specify more than one -regular expression for such lines; `diff' tries to match each line -against each regular expression, starting with the last one given. This -means that you can use `-p' and `-F' together, if you wish. - - -File: diff.info, Node: C Function Headings, Prev: Specified Headings, Up: Sections - -Showing C Function Headings -........................... - - To show in which functions differences occur for C and similar -languages, you can use the `-p' or `--show-c-function' option. This -option automatically defaults to the context output format (*note -Context Format::), with the default number of lines of context. You -can override that number with `-C LINES' elsewhere in the command line. -You can override both the format and the number with `-U LINES' -elsewhere in the command line. - - The `-p' and `--show-c-function' options are equivalent to `-F -'^[[:alpha:]$_]'' if the unified format is specified, otherwise `-c -F -'^[[:alpha:]$_]'' (*note Specified Headings::). GNU `diff' provides -them for the sake of convenience. - - -File: diff.info, Node: Alternate Names, Prev: Sections, Up: Context - -Showing Alternate File Names ----------------------------- - - If you are comparing two files that have meaningless or uninformative -names, you might want `diff' to show alternate names in the header of -the context and unified output formats. To do this, use the -`--label=LABEL' option. The first time you give this option, its -argument replaces the name and date of the first file in the header; -the second time, its argument replaces the name and date of the second -file. If you give this option more than twice, `diff' reports an -error. The `--label' option does not affect the file names in the `pr' -header when the `-l' or `--paginate' option is used (*note -Pagination::). - - Here are the first two lines of the output from `diff -C 2 ---label=original --label=modified lao tzu': - - *** original - --- modified - - -File: diff.info, Node: Side by Side, Next: Scripts, Prev: Context, Up: Output Formats - -Showing Differences Side by Side -================================ - - `diff' can produce a side by side difference listing of two files. -The files are listed in two columns with a gutter between them. The -gutter contains one of the following markers: - -white space - The corresponding lines are in common. That is, either the lines - are identical, or the difference is ignored because of one of the - `--ignore' options (*note White Space::). - -`|' - The corresponding lines differ, and they are either both complete - or both incomplete. - -`<' - The files differ and only the first file contains the line. - -`>' - The files differ and only the second file contains the line. - -`(' - Only the first file contains the line, but the difference is - ignored. - -`)' - Only the second file contains the line, but the difference is - ignored. - -`\' - The corresponding lines differ, and only the first line is - incomplete. - -`/' - The corresponding lines differ, and only the second line is - incomplete. - - Normally, an output line is incomplete if and only if the lines that -it contains are incomplete; *Note Incomplete Lines::. However, when an -output line represents two differing lines, one might be incomplete -while the other is not. In this case, the output line is complete, but -its the gutter is marked `\' if the first line is incomplete, `/' if -the second line is. - - Side by side format is sometimes easiest to read, but it has -limitations. It generates much wider output than usual, and truncates -lines that are too long to fit. Also, it relies on lining up output -more heavily than usual, so its output looks particularly bad if you -use varying width fonts, nonstandard tab stops, or nonprinting -characters. - - You can use the `sdiff' command to interactively merge side by side -differences. *Note Interactive Merging::, for more information on -merging files. - -* Menu: - -* Side by Side Format:: Controlling side by side output format. -* Example Side by Side:: Sample side by side output. - - -File: diff.info, Node: Side by Side Format, Next: Example Side by Side, Up: Side by Side - -Controlling Side by Side Format -------------------------------- - - The `-y' or `--side-by-side' option selects side by side format. -Because side by side output lines contain two input lines, the output -is wider than usual: normally 130 print columns, which can fit onto a -traditional printer line. You can set the width of the output with the -`-W COLUMNS' or `--width=COLUMNS' option. The output is split into two -halves of equal width, separated by a small gutter to mark differences; -the right half is aligned to a tab stop so that tabs line up. Input -lines that are too long to fit in half of an output line are truncated -for output. - - The `--left-column' option prints only the left column of two common -lines. The `--suppress-common-lines' option suppresses common lines -entirely. - - -File: diff.info, Node: Example Side by Side, Prev: Side by Side Format, Up: Side by Side - -An Example of Side by Side Format ---------------------------------- - - Here is the output of the command `diff -y -W 72 lao tzu' (*note -Sample diff Input::, for the complete contents of the two files). - - The Way that can be told of is n < - The name that can be named is no < - The Nameless is the origin of He The Nameless is the origin of He - The Named is the mother of all t | The named is the mother of all t - > - Therefore let there always be no Therefore let there always be no - so we may see their subtlety, so we may see their subtlety, - And let there always be being, And let there always be being, - so we may see their outcome. so we may see their outcome. - The two are the same, The two are the same, - But after they are produced, But after they are produced, - they have different names. they have different names. - > They both may be called deep and - > Deeper and more profound, - > The door of all subtleties! - - -File: diff.info, Node: Scripts, Next: If-then-else, Prev: Side by Side, Up: Output Formats - -Making Edit Scripts -=================== - - Several output modes produce command scripts for editing FROM-FILE -to produce TO-FILE. - -* Menu: - -* ed Scripts:: Using `diff' to produce commands for `ed'. -* Forward ed:: Making forward `ed' scripts. -* RCS:: A special `diff' output format used by RCS. - - -File: diff.info, Node: ed Scripts, Next: Forward ed, Up: Scripts - -`ed' Scripts ------------- - - `diff' can produce commands that direct the `ed' text editor to -change the first file into the second file. Long ago, this was the -only output mode that was suitable for editing one file into another -automatically; today, with `patch', it is almost obsolete. Use the -`-e' or `--ed' option to select this output format. - - Like the normal format (*note Normal::), this output format does not -show any context; unlike the normal format, it does not include the -information necessary to apply the diff in reverse (to produce the first -file if all you have is the second file and the diff). - - If the file `d' contains the output of `diff -e old new', then the -command `(cat d && echo w) | ed - old' edits `old' to make it a copy of -`new'. More generally, if `d1', `d2', ..., `dN' contain the outputs of -`diff -e old new1', `diff -e new1 new2', ..., `diff -e newN-1 newN', -respectively, then the command `(cat d1 d2 ... dN && echo w) | ed - -old' edits `old' to make it a copy of `newN'. - -* Menu: - -* Detailed ed:: A detailed description of `ed' format. -* Example ed:: A sample `ed' script. - - -File: diff.info, Node: Detailed ed, Next: Example ed, Up: ed Scripts - -Detailed Description of `ed' Format -................................... - - The `ed' output format consists of one or more hunks of differences. -The changes closest to the ends of the files come first so that -commands that change the number of lines do not affect how `ed' -interprets line numbers in succeeding commands. `ed' format hunks look -like this: - - CHANGE-COMMAND - TO-FILE-LINE - TO-FILE-LINE... - . - - Because `ed' uses a single period on a line to indicate the end of -input, GNU `diff' protects lines of changes that contain a single -period on a line by writing two periods instead, then writing a -subsequent `ed' command to change the two periods into one. The `ed' -format cannot represent an incomplete line, so if the second file ends -in a changed incomplete line, `diff' reports an error and then pretends -that a newline was appended. - - There are three types of change commands. Each consists of a line -number or comma-separated range of lines in the first file and a single -character indicating the kind of change to make. All line numbers are -the original line numbers in the file. The types of change commands -are: - -`La' - Add text from the second file after line L in the first file. For - example, `8a' means to add the following lines after line 8 of file - 1. - -`Rc' - Replace the lines in range R in the first file with the following - lines. Like a combined add and delete, but more compact. For - example, `5,7c' means change lines 5-7 of file 1 to read as the - text file 2. - -`Rd' - Delete the lines in range R from the first file. For example, - `5,7d' means delete lines 5-7 of file 1. - - -File: diff.info, Node: Example ed, Prev: Detailed ed, Up: ed Scripts - -Example `ed' Script -................... - - Here is the output of `diff -e lao tzu' (*note Sample diff Input::, -for the complete contents of the two files): - - 11a - They both may be called deep and profound. - Deeper and more profound, - The door of all subtleties! - . - 4c - The named is the mother of all things. - - . - 1,2d - - -File: diff.info, Node: Forward ed, Next: RCS, Prev: ed Scripts, Up: Scripts - -Forward `ed' Scripts --------------------- - - `diff' can produce output that is like an `ed' script, but with -hunks in forward (front to back) order. The format of the commands is -also changed slightly: command characters precede the lines they -modify, spaces separate line numbers in ranges, and no attempt is made -to disambiguate hunk lines consisting of a single period. Like `ed' -format, forward `ed' format cannot represent incomplete lines. - - Forward `ed' format is not very useful, because neither `ed' nor -`patch' can apply diffs in this format. It exists mainly for -compatibility with older versions of `diff'. Use the `-f' or -`--forward-ed' option to select it. - - -File: diff.info, Node: RCS, Prev: Forward ed, Up: Scripts - -RCS Scripts ------------ - - The RCS output format is designed specifically for use by the -Revision Control System, which is a set of free programs used for -organizing different versions and systems of files. Use the `-n' or -`--rcs' option to select this output format. It is like the forward -`ed' format (*note Forward ed::), but it can represent arbitrary -changes to the contents of a file because it avoids the forward `ed' -format's problems with lines consisting of a single period and with -incomplete lines. Instead of ending text sections with a line -consisting of a single period, each command specifies the number of -lines it affects; a combination of the `a' and `d' commands are used -instead of `c'. Also, if the second file ends in a changed incomplete -line, then the output also ends in an incomplete line. - - Here is the output of `diff -n lao tzu' (*note Sample diff Input::, -for the complete contents of the two files): - - d1 2 - d4 1 - a4 2 - The named is the mother of all things. - - a11 3 - They both may be called deep and profound. - Deeper and more profound, - The door of all subtleties! - - -File: diff.info, Node: If-then-else, Prev: Scripts, Up: Output Formats - -Merging Files with If-then-else -=============================== - - You can use `diff' to merge two files of C source code. The output -of `diff' in this format contains all the lines of both files. Lines -common to both files are output just once; the differing parts are -separated by the C preprocessor directives `#ifdef NAME' or `#ifndef -NAME', `#else', and `#endif'. When compiling the output, you select -which version to use by either defining or leaving undefined the macro -NAME. - - To merge two files, use `diff' with the `-D NAME' or `--ifdef=NAME' -option. The argument NAME is the C preprocessor identifier to use in -the `#ifdef' and `#ifndef' directives. - - For example, if you change an instance of `wait (&s)' to `waitpid -(-1, &s, 0)' and then merge the old and new files with the -`--ifdef=HAVE_WAITPID' option, then the affected part of your code -might look like this: - - do { - #ifndef HAVE_WAITPID - if ((w = wait (&s)) < 0 && errno != EINTR) - #else /* HAVE_WAITPID */ - if ((w = waitpid (-1, &s, 0)) < 0 && errno != EINTR) - #endif /* HAVE_WAITPID */ - return w; - } while (w != child); - - You can specify formats for languages other than C by using line -group formats and line formats, as described in the next sections. - -* Menu: - -* Line Group Formats:: Formats for general if-then-else line groups. -* Line Formats:: Formats for each line in a line group. -* Detailed If-then-else:: A detailed description of if-then-else format. -* Example If-then-else:: Sample if-then-else format output. - - -File: diff.info, Node: Line Group Formats, Next: Line Formats, Up: If-then-else - -Line Group Formats ------------------- - - Line group formats let you specify formats suitable for many -applications that allow if-then-else input, including programming -languages and text formatting languages. A line group format specifies -the output format for a contiguous group of similar lines. - - For example, the following command compares the TeX files `old' and -`new', and outputs a merged file in which old regions are surrounded by -`\begin{em}'-`\end{em}' lines, and new regions are surrounded by -`\begin{bf}'-`\end{bf}' lines. - - diff \ - --old-group-format='\begin{em} - %<\end{em} - ' \ - --new-group-format='\begin{bf} - %>\end{bf} - ' \ - old new - - The following command is equivalent to the above example, but it is a -little more verbose, because it spells out the default line group -formats. - - diff \ - --old-group-format='\begin{em} - %<\end{em} - ' \ - --new-group-format='\begin{bf} - %>\end{bf} - ' \ - --unchanged-group-format='%=' \ - --changed-group-format='\begin{em} - %<\end{em} - \begin{bf} - %>\end{bf} - ' \ - old new - - Here is a more advanced example, which outputs a diff listing with -headers containing line numbers in a "plain English" style. - - diff \ - --unchanged-group-format='' \ - --old-group-format='-------- %dn line%(n=1?:s) deleted at %df: - %<' \ - --new-group-format='-------- %dN line%(N=1?:s) added after %de: - %>' \ - --changed-group-format='-------- %dn line%(n=1?:s) changed at %df: - %<-------- to: - %>' \ - old new - - To specify a line group format, use `diff' with one of the options -listed below. You can specify up to four line group formats, one for -each kind of line group. You should quote FORMAT, because it typically -contains shell metacharacters. - -`--old-group-format=FORMAT' - These line groups are hunks containing only lines from the first - file. The default old group format is the same as the changed - group format if it is specified; otherwise it is a format that - outputs the line group as-is. - -`--new-group-format=FORMAT' - These line groups are hunks containing only lines from the second - file. The default new group format is same as the changed group - format if it is specified; otherwise it is a format that outputs - the line group as-is. - -`--changed-group-format=FORMAT' - These line groups are hunks containing lines from both files. The - default changed group format is the concatenation of the old and - new group formats. - -`--unchanged-group-format=FORMAT' - These line groups contain lines common to both files. The default - unchanged group format is a format that outputs the line group - as-is. - - In a line group format, ordinary characters represent themselves; -conversion specifications start with `%' and have one of the following -forms. - -`%<' - stands for the lines from the first file, including the trailing - newline. Each line is formatted according to the old line format - (*note Line Formats::). - -`%>' - stands for the lines from the second file, including the trailing - newline. Each line is formatted according to the new line format. - -`%=' - stands for the lines common to both files, including the trailing - newline. Each line is formatted according to the unchanged line - format. - -`%%' - stands for `%'. - -`%c'C'' - where C is a single character, stands for C. C may not be a - backslash or an apostrophe. For example, `%c':'' stands for a - colon, even inside the then-part of an if-then-else format, which - a colon would normally terminate. - -`%c'\O'' - where O is a string of 1, 2, or 3 octal digits, stands for the - character with octal code O. For example, `%c'\0'' stands for a - null character. - -`FN' - where F is a `printf' conversion specification and N is one of the - following letters, stands for N's value formatted with F. - - `e' - The line number of the line just before the group in the old - file. - - `f' - The line number of the first line in the group in the old - file; equals E + 1. - - `l' - The line number of the last line in the group in the old file. - - `m' - The line number of the line just after the group in the old - file; equals L + 1. - - `n' - The number of lines in the group in the old file; equals L - - F + 1. - - `E, F, L, M, N' - Likewise, for lines in the new file. - - The `printf' conversion specification can be `%d', `%o', `%x', or - `%X', specifying decimal, octal, lower case hexadecimal, or upper - case hexadecimal output respectively. After the `%' the following - options can appear in sequence: a series of zero or more flags; an - integer specifying the minimum field width; and a period followed - by an optional integer specifying the minimum number of digits. - The flags are `-' for left-justification, `'' for separating the - digit into groups as specified by the `LC_NUMERIC' locale category, - and `0' for padding with zeros instead of spaces. For example, - `%5dN' prints the number of new lines in the group in a field of - width 5 characters, using the `printf' format `"%5d"'. - -`(A=B?T:E)' - If A equals B then T else E. A and B are each either a decimal - constant or a single letter interpreted as above. This format - spec is equivalent to T if A's value equals B's; otherwise it is - equivalent to E. - - For example, `%(N=0?no:%dN) line%(N=1?:s)' is equivalent to `no - lines' if N (the number of lines in the group in the the new file) - is 0, to `1 line' if N is 1, and to `%dN lines' otherwise. - - -File: diff.info, Node: Line Formats, Next: Detailed If-then-else, Prev: Line Group Formats, Up: If-then-else - -Line Formats ------------- - - Line formats control how each line taken from an input file is -output as part of a line group in if-then-else format. - - For example, the following command outputs text with a one-character -change indicator to the left of the text. The first character of output -is `-' for deleted lines, `|' for added lines, and a space for -unchanged lines. The formats contain newline characters where newlines -are desired on output. - - diff \ - --old-line-format='-%l - ' \ - --new-line-format='|%l - ' \ - --unchanged-line-format=' %l - ' \ - old new - - To specify a line format, use one of the following options. You -should quote FORMAT, since it often contains shell metacharacters. - -`--old-line-format=FORMAT' - formats lines just from the first file. - -`--new-line-format=FORMAT' - formats lines just from the second file. - -`--unchanged-line-format=FORMAT' - formats lines common to both files. - -`--line-format=FORMAT' - formats all lines; in effect, it sets all three above options - simultaneously. - - In a line format, ordinary characters represent themselves; -conversion specifications start with `%' and have one of the following -forms. - -`%l' - stands for the contents of the line, not counting its trailing - newline (if any). This format ignores whether the line is - incomplete; *Note Incomplete Lines::. - -`%L' - stands for the contents of the line, including its trailing newline - (if any). If a line is incomplete, this format preserves its - incompleteness. - -`%%' - stands for `%'. - -`%c'C'' - where C is a single character, stands for C. C may not be a - backslash or an apostrophe. For example, `%c':'' stands for a - colon. - -`%c'\O'' - where O is a string of 1, 2, or 3 octal digits, stands for the - character with octal code O. For example, `%c'\0'' stands for a - null character. - -`Fn' - where F is a `printf' conversion specification, stands for the - line number formatted with F. For example, `%.5dn' prints the - line number using the `printf' format `"%.5d"'. *Note Line Group - Formats::, for more about printf conversion specifications. - - The default line format is `%l' followed by a newline character. - - If the input contains tab characters and it is important that they -line up on output, you should ensure that `%l' or `%L' in a line format -is just after a tab stop (e.g. by preceding `%l' or `%L' with a tab -character), or you should use the `-t' or `--expand-tabs' option. - - Taken together, the line and line group formats let you specify many -different formats. For example, the following command uses a format -similar to normal `diff' format. You can tailor this command to get -fine control over `diff' output. - - diff \ - --old-line-format='< %l - ' \ - --new-line-format='> %l - ' \ - --old-group-format='%df%(f=l?:,%dl)d%dE - %<' \ - --new-group-format='%dea%dF%(F=L?:,%dL) - %>' \ - --changed-group-format='%df%(f=l?:,%dl)c%dF%(F=L?:,%dL) - %<--- - %>' \ - --unchanged-group-format='' \ - old new - - -File: diff.info, Node: Detailed If-then-else, Next: Example If-then-else, Prev: Line Formats, Up: If-then-else - -Detailed Description of If-then-else Format -------------------------------------------- - - For lines common to both files, `diff' uses the unchanged line group -format. For each hunk of differences in the merged output format, if -the hunk contains only lines from the first file, `diff' uses the old -line group format; if the hunk contains only lines from the second -file, `diff' uses the new group format; otherwise, `diff' uses the -changed group format. - - The old, new, and unchanged line formats specify the output format of -lines from the first file, lines from the second file, and lines common -to both files, respectively. - - The option `--ifdef=NAME' is equivalent to the following sequence of -options using shell syntax: - - --old-group-format='#ifndef NAME - %<#endif /* ! NAME */ - ' \ - --new-group-format='#ifdef NAME - %>#endif /* NAME */ - ' \ - --unchanged-group-format='%=' \ - --changed-group-format='#ifndef NAME - %<#else /* NAME */ - %>#endif /* NAME */ - ' - - You should carefully check the `diff' output for proper nesting. -For example, when using the `-D NAME' or `--ifdef=NAME' option, you -should check that if the differing lines contain any of the C -preprocessor directives `#ifdef', `#ifndef', `#else', `#elif', or -`#endif', they are nested properly and match. If they don't, you must -make corrections manually. It is a good idea to carefully check the -resulting code anyway to make sure that it really does what you want it -to; depending on how the input files were produced, the output might -contain duplicate or otherwise incorrect code. - - The `patch' `-D NAME' option behaves like the `diff' `-D NAME' -option, except it operates on a file and a diff to produce a merged -file; *Note patch Options::. - - -File: diff.info, Node: Example If-then-else, Prev: Detailed If-then-else, Up: If-then-else - -An Example of If-then-else Format ---------------------------------- - - Here is the output of `diff -DTWO lao tzu' (*note Sample diff -Input::, for the complete contents of the two files): - - #ifndef TWO - The Way that can be told of is not the eternal Way; - The name that can be named is not the eternal name. - #endif /* ! TWO */ - The Nameless is the origin of Heaven and Earth; - #ifndef TWO - The Named is the mother of all things. - #else /* TWO */ - The named is the mother of all things. - - #endif /* TWO */ - Therefore let there always be non-being, - so we may see their subtlety, - And let there always be being, - so we may see their outcome. - The two are the same, - But after they are produced, - they have different names. - #ifdef TWO - They both may be called deep and profound. - Deeper and more profound, - The door of all subtleties! - #endif /* TWO */ - - -File: diff.info, Node: Incomplete Lines, Next: Comparing Directories, Prev: Output Formats, Up: Top - -Incomplete Lines -**************** - - When an input file ends in a non-newline character, its last line is -called an "incomplete line" because its last character is not a -newline. All other lines are called "full lines" and end in a newline -character. Incomplete lines do not match full lines unless differences -in white space are ignored (*note White Space::). - - An incomplete line is normally distinguished on output from a full -line by a following line that starts with `\'. However, the RCS format -(*note RCS::) outputs the incomplete line as-is, without any trailing -newline or following line. The side by side format normally represents -incomplete lines as-is, but in some cases uses a `\' or `/' gutter -marker; *Note Side by Side::. The if-then-else line format preserves a -line's incompleteness with `%L', and discards the newline with `%l'; -*Note Line Formats::. Finally, with the `ed' and forward `ed' output -formats (*note Output Formats::) `diff' cannot represent an incomplete -line, so it pretends there was a newline and reports an error. - - For example, suppose `F' and `G' are one-byte files that contain -just `f' and `g', respectively. Then `diff F G' outputs - - 1c1 - < f - \ No newline at end of file - --- - > g - \ No newline at end of file - -(The exact message may differ in non-English locales.) `diff -n F G' -outputs the following without a trailing newline: - - d1 1 - a1 1 - g - -`diff -e F G' reports two errors and outputs the following: - - 1c - g - . - - -File: diff.info, Node: Comparing Directories, Next: Adjusting Output, Prev: Incomplete Lines, Up: Top - -Comparing Directories -********************* - - You can use `diff' to compare some or all of the files in two -directory trees. When both file name arguments to `diff' are -directories, it compares each file that is contained in both -directories, examining file names in alphabetical order as specified by -the `LC_COLLATE' locale category. Normally `diff' is silent about -pairs of files that contain no differences, but if you use the `-s' or -`--report-identical-files' option, it reports pairs of identical files. -Normally `diff' reports subdirectories common to both directories -without comparing subdirectories' files, but if you use the `-r' or -`--recursive' option, it compares every corresponding pair of files in -the directory trees, as many levels deep as they go. - - For file names that are in only one of the directories, `diff' -normally does not show the contents of the file that exists; it reports -only that the file exists in that directory and not in the other. You -can make `diff' act as though the file existed but was empty in the -other directory, so that it outputs the entire contents of the file that -actually exists. (It is output as either an insertion or a deletion, -depending on whether it is in the first or the second directory given.) -To do this, use the `-N' or `--new-file' option. - - If the older directory contains one or more large files that are not -in the newer directory, you can make the patch smaller by using the -`--unidirectional-new-file' option instead of `-N'. This option is -like `-N' except that it only inserts the contents of files that appear -in the second directory but not the first (that is, files that were -added). At the top of the patch, write instructions for the user -applying the patch to remove the files that were deleted before -applying the patch. *Note Making Patches::, for more discussion of -making patches for distribution. - - To ignore some files while comparing directories, use the `-x -PATTERN' or `--exclude=PATTERN' option. This option ignores any files -or subdirectories whose base names match the shell pattern PATTERN. -Unlike in the shell, a period at the start of the base of a file name -matches a wildcard at the start of a pattern. You should enclose -PATTERN in quotes so that the shell does not expand it. For example, -the option `-x '*.[ao]'' ignores any file whose name ends with `.a' or -`.o'. - - This option accumulates if you specify it more than once. For -example, using the options `-x 'RCS' -x '*,v'' ignores any file or -subdirectory whose base name is `RCS' or ends with `,v'. - - If you need to give this option many times, you can instead put the -patterns in a file, one pattern per line, and use the `-X FILE' or -`--exclude-from=FILE' option. - - If you have been comparing two directories and stopped partway -through, later you might want to continue where you left off. You can -do this by using the `-S FILE' or `--starting-file=FILE' option. This -compares only the file FILE and all alphabetically later files in the -topmost directory level. - - If two directories differ only in that file names are lower case in -one directory and upper case in the upper, `diff' normally reports many -differences because it compares file names in a case sensitive way. -With the `--ignore-file-name-case' option, `diff' ignores case -differences in file names, so that for example the contents of the file -`Tao' in one directory are compared to the contents of the file `TAO' -in the other. The `--no-ignore-file-name-case' option cancels the -effect of the `--ignore-file-name-case' option, reverting to the default -behavior. - - If an `-x PATTERN', `--exclude=PATTERN', `-X FILE', or -`--exclude-from=FILE' option is specified while the -`--ignore-file-name-case' option is in effect, case is ignored when -excluding file names matching the specified patterns. - - -File: diff.info, Node: Adjusting Output, Next: diff Performance, Prev: Comparing Directories, Up: Top - -Making `diff' Output Prettier -***************************** - - `diff' provides several ways to adjust the appearance of its output. -These adjustments can be applied to any output format. - -* Menu: - -* Tabs:: Preserving the alignment of tab stops. -* Pagination:: Page numbering and time-stamping `diff' output. - - -File: diff.info, Node: Tabs, Next: Pagination, Up: Adjusting Output - -Preserving Tab Stop Alignment -============================= - - The lines of text in some of the `diff' output formats are preceded -by one or two characters that indicate whether the text is inserted, -deleted, or changed. The addition of those characters can cause tabs to -move to the next tab stop, throwing off the alignment of columns in the -line. GNU `diff' provides two ways to make tab-aligned columns line up -correctly. - - The first way is to have `diff' convert all tabs into the correct -number of spaces before outputting them; select this method with the -`-t' or `--expand-tabs' option. `diff' assumes that tab stops are set -every 8 print columns. To use this form of output with `patch', you -must give `patch' the `-l' or `--ignore-white-space' option (*note -Changed White Space::, for more information). - - The other method for making tabs line up correctly is to add a tab -character instead of a space after the indicator character at the -beginning of the line. This ensures that all following tab characters -are in the same position relative to tab stops that they were in the -original files, so that the output is aligned correctly. Its -disadvantage is that it can make long lines too long to fit on one line -of the screen or the paper. It also does not work with the unified -output format, which does not have a space character after the change -type indicator character. Select this method with the `-T' or -`--initial-tab' option. - - -File: diff.info, Node: Pagination, Prev: Tabs, Up: Adjusting Output - -Paginating `diff' Output -======================== - - It can be convenient to have long output page-numbered and -time-stamped. The `-l' and `--paginate' options do this by sending the -`diff' output through the `pr' program. Here is what the page header -might look like for `diff -lc lao tzu': - - 2002-02-22 14:20 diff -lc lao tzu Page 1 - - -File: diff.info, Node: diff Performance, Next: Comparing Three Files, Prev: Adjusting Output, Up: Top - -`diff' Performance Tradeoffs -**************************** - - GNU `diff' runs quite efficiently; however, in some circumstances -you can cause it to run faster or produce a more compact set of changes. - - One way to improve `diff' performance is to use hard or symbolic -links to files instead of copies. This improves performance because -`diff' normally does not need to read two hard or symbolic links to the -same file, since their contents must be identical. For example, -suppose you copy a large directory hierarchy, make a few changes to the -copy, and then often use `diff -r' to compare the original to the copy. -If the original files are read-only, you can greatly improve -performance by creating the copy using hard or symbolic links (e.g., -with GNU `cp -lR' or `cp -sR'). Before editing a file in the copy for -the first time, you should break the link and replace it with a regular -copy. - - You can also affect the performance of GNU `diff' by giving it -options that change the way it compares files. Performance has more -than one dimension. These options improve one aspect of performance at -the cost of another, or they improve performance in some cases while -hurting it in others. - - The way that GNU `diff' determines which lines have changed always -comes up with a near-minimal set of differences. Usually it is good -enough for practical purposes. If the `diff' output is large, you -might want `diff' to use a modified algorithm that sometimes produces a -smaller set of differences. The `-d' or `--minimal' option does this; -however, it can also cause `diff' to run more slowly than usual, so it -is not the default behavior. - - When the files you are comparing are large and have small groups of -changes scattered throughout them, you can use the -`--speed-large-files' option to make a different modification to the -algorithm that `diff' uses. If the input files have a constant small -density of changes, this option speeds up the comparisons without -changing the output. If not, `diff' might produce a larger set of -differences; however, the output will still be correct. - - Normally `diff' discards the prefix and suffix that is common to -both files before it attempts to find a minimal set of differences. -This makes `diff' run faster, but occasionally it may produce -non-minimal output. The `--horizon-lines=LINES' option prevents `diff' -from discarding the last LINES lines of the prefix and the first LINES -lines of the suffix. This gives `diff' further opportunities to find a -minimal output. - - Suppose a run of changed lines includes a sequence of lines at one -end and there is an identical sequence of lines just outside the other -end. The `diff' command is free to choose which identical sequence is -included in the hunk. In this case, `diff' normally shifts the hunk's -boundaries when this merges adjacent hunks, or shifts a hunk's lines -towards the end of the file. Merging hunks can make the output look -nicer in some cases. - - -File: diff.info, Node: Comparing Three Files, Next: diff3 Merging, Prev: diff Performance, Up: Top - -Comparing Three Files -********************* - - Use the program `diff3' to compare three files and show any -differences among them. (`diff3' can also merge files; see *Note diff3 -Merging::). - - The "normal" `diff3' output format shows each hunk of differences -without surrounding context. Hunks are labeled depending on whether -they are two-way or three-way, and lines are annotated by their -location in the input files. - - *Note Invoking diff3::, for more information on how to run `diff3'. - -* Menu: - -* Sample diff3 Input:: Sample `diff3' input for examples. -* Detailed diff3 Normal:: A detailed description of normal output format. -* diff3 Hunks:: The format of normal output format. -* Example diff3 Normal:: Sample output in the normal format. - - -File: diff.info, Node: Sample diff3 Input, Next: Detailed diff3 Normal, Up: Comparing Three Files - -A Third Sample Input File -========================= - - Here is a third sample file that will be used in examples to -illustrate the output of `diff3' and how various options can change it. -The first two files are the same that we used for `diff' (*note Sample -diff Input::). This is the third sample file, called `tao': - - The Way that can be told of is not the eternal Way; - The name that can be named is not the eternal name. - The Nameless is the origin of Heaven and Earth; - The named is the mother of all things. - - Therefore let there always be non-being, - so we may see their subtlety, - And let there always be being, - so we may see their result. - The two are the same, - But after they are produced, - they have different names. - - -- The Way of Lao-Tzu, tr. Wing-tsit Chan - - -File: diff.info, Node: Detailed diff3 Normal, Next: diff3 Hunks, Prev: Sample diff3 Input, Up: Comparing Three Files - -Detailed Description of `diff3' Normal Format -============================================= - - Each hunk begins with a line marked `===='. Three-way hunks have -plain `====' lines, and two-way hunks have `1', `2', or `3' appended to -specify which of the three input files differ in that hunk. The hunks -contain copies of two or three sets of input lines each preceded by one -or two commands identifying where the lines came from. - - Normally, two spaces precede each copy of an input line to -distinguish it from the commands. But with the `-T' or `--initial-tab' -option, `diff3' uses a tab instead of two spaces; this lines up tabs -correctly. *Note Tabs::, for more information. - - Commands take the following forms: - -`FILE:La' - This hunk appears after line L of file FILE, and contains no lines - in that file. To edit this file to yield the other files, one - must append hunk lines taken from the other files. For example, - `1:11a' means that the hunk follows line 11 in the first file and - contains no lines from that file. - -`FILE:Rc' - This hunk contains the lines in the range R of file FILE. The - range R is a comma-separated pair of line numbers, or just one - number if the range is a singleton. To edit this file to yield the - other files, one must change the specified lines to be the lines - taken from the other files. For example, `2:11,13c' means that - the hunk contains lines 11 through 13 from the second file. - - If the last line in a set of input lines is incomplete (*note -Incomplete Lines::), it is distinguished on output from a full line by -a following line that starts with `\'. - - -File: diff.info, Node: diff3 Hunks, Next: Example diff3 Normal, Prev: Detailed diff3 Normal, Up: Comparing Three Files - -`diff3' Hunks -============= - - Groups of lines that differ in two or three of the input files are -called "diff3 hunks", by analogy with `diff' hunks (*note Hunks::). If -all three input files differ in a `diff3' hunk, the hunk is called a -"three-way hunk"; if just two input files differ, it is a "two-way -hunk". - - As with `diff', several solutions are possible. When comparing the -files `A', `B', and `C', `diff3' normally finds `diff3' hunks by -merging the two-way hunks output by the two commands `diff A B' and -`diff A C'. This does not necessarily minimize the size of the output, -but exceptions should be rare. - - For example, suppose `F' contains the three lines `a', `b', `f', `G' -contains the lines `g', `b', `g', and `H' contains the lines `a', `b', -`h'. `diff3 F G H' might output the following: - - ====2 - 1:1c - 3:1c - a - 2:1c - g - ==== - 1:3c - f - 2:3c - g - 3:3c - h - -because it found a two-way hunk containing `a' in the first and third -files and `g' in the second file, then the single line `b' common to -all three files, then a three-way hunk containing the last line of each -file. - - -File: diff.info, Node: Example diff3 Normal, Prev: diff3 Hunks, Up: Comparing Three Files - -An Example of `diff3' Normal Format -=================================== - - Here is the output of the command `diff3 lao tzu tao' (*note Sample -diff3 Input::, for the complete contents of the files). Notice that it -shows only the lines that are different among the three files. - - ====2 - 1:1,2c - 3:1,2c - The Way that can be told of is not the eternal Way; - The name that can be named is not the eternal name. - 2:0a - ====1 - 1:4c - The Named is the mother of all things. - 2:2,3c - 3:4,5c - The named is the mother of all things. - - ====3 - 1:8c - 2:7c - so we may see their outcome. - 3:9c - so we may see their result. - ==== - 1:11a - 2:11,13c - They both may be called deep and profound. - Deeper and more profound, - The door of all subtleties! - 3:13,14c - - -- The Way of Lao-Tzu, tr. Wing-tsit Chan - - -File: diff.info, Node: diff3 Merging, Next: Interactive Merging, Prev: Comparing Three Files, Up: Top - -Merging From a Common Ancestor -****************************** - - When two people have made changes to copies of the same file, -`diff3' can produce a merged output that contains both sets of changes -together with warnings about conflicts. - - One might imagine programs with names like `diff4' and `diff5' to -compare more than three files simultaneously, but in practice the need -rarely arises. You can use `diff3' to merge three or more sets of -changes to a file by merging two change sets at a time. - - `diff3' can incorporate changes from two modified versions into a -common preceding version. This lets you merge the sets of changes -represented by the two newer files. Specify the common ancestor version -as the second argument and the two newer versions as the first and third -arguments, like this: - - diff3 MINE OLDER YOURS - -You can remember the order of the arguments by noting that they are in -alphabetical order. - - You can think of this as subtracting OLDER from YOURS and adding the -result to MINE, or as merging into MINE the changes that would turn -OLDER into YOURS. This merging is well-defined as long as MINE and -OLDER match in the neighborhood of each such change. This fails to be -true when all three input files differ or when only OLDER differs; we -call this a "conflict". When all three input files differ, we call the -conflict an "overlap". - - `diff3' gives you several ways to handle overlaps and conflicts. -You can omit overlaps or conflicts, or select only overlaps, or mark -conflicts with special `<<<<<<<' and `>>>>>>>' lines. - - `diff3' can output the merge results as an `ed' script that that can -be applied to the first file to yield the merged output. However, it -is usually better to have `diff3' generate the merged output directly; -this bypasses some problems with `ed'. - -* Menu: - -* Which Changes:: Selecting changes to incorporate. -* Marking Conflicts:: Marking conflicts. -* Bypassing ed:: Generating merged output directly. -* Merging Incomplete Lines:: How `diff3' merges incomplete lines. -* Saving the Changed File:: Emulating System V behavior. - - -File: diff.info, Node: Which Changes, Next: Marking Conflicts, Up: diff3 Merging - -Selecting Which Changes to Incorporate -====================================== - - You can select all unmerged changes from OLDER to YOURS for merging -into MINE with the `-e' or `--ed' option. You can select only the -nonoverlapping unmerged changes with `-3' or `--easy-only', and you can -select only the overlapping changes with `-x' or `--overlap-only'. - - The `-e', `-3' and `-x' options select only "unmerged changes", i.e. -changes where MINE and YOURS differ; they ignore changes from OLDER to -YOURS where MINE and YOURS are identical, because they assume that such -changes have already been merged. If this assumption is not a safe -one, you can use the `-A' or `--show-all' option (*note Marking -Conflicts::). - - Here is the output of the command `diff3' with each of these three -options (*note Sample diff3 Input::, for the complete contents of the -files). Notice that `-e' outputs the union of the disjoint sets of -changes output by `-3' and `-x'. - - Output of `diff3 -e lao tzu tao': - 11a - - -- The Way of Lao-Tzu, tr. Wing-tsit Chan - . - 8c - so we may see their result. - . - - Output of `diff3 -3 lao tzu tao': - 8c - so we may see their result. - . - - Output of `diff3 -x lao tzu tao': - 11a - - -- The Way of Lao-Tzu, tr. Wing-tsit Chan - . - - -File: diff.info, Node: Marking Conflicts, Next: Bypassing ed, Prev: Which Changes, Up: diff3 Merging - -Marking Conflicts -================= - - `diff3' can mark conflicts in the merged output by bracketing them -with special marker lines. A conflict that comes from two files A and -B is marked as follows: - - <<<<<<< A - lines from A - ======= - lines from B - >>>>>>> B - - A conflict that comes from three files A, B and C is marked as -follows: - - <<<<<<< A - lines from A - ||||||| B - lines from B - ======= - lines from C - >>>>>>> C - - The `-A' or `--show-all' option acts like the `-e' option, except -that it brackets conflicts, and it outputs all changes from OLDER to -YOURS, not just the unmerged changes. Thus, given the sample input -files (*note Sample diff3 Input::), `diff3 -A lao tzu tao' puts -brackets around the conflict where only `tzu' differs: - - <<<<<<< tzu - ======= - The Way that can be told of is not the eternal Way; - The name that can be named is not the eternal name. - >>>>>>> tao - - And it outputs the three-way conflict as follows: - - <<<<<<< lao - ||||||| tzu - They both may be called deep and profound. - Deeper and more profound, - The door of all subtleties! - ======= - - -- The Way of Lao-Tzu, tr. Wing-tsit Chan - >>>>>>> tao - - The `-E' or `--show-overlap' option outputs less information than -the `-A' or `--show-all' option, because it outputs only unmerged -changes, and it never outputs the contents of the second file. Thus -the `-E' option acts like the `-e' option, except that it brackets the -first and third files from three-way overlapping changes. Similarly, -`-X' acts like `-x', except it brackets all its (necessarily -overlapping) changes. For example, for the three-way overlapping -change above, the `-E' and `-X' options output the following: - - <<<<<<< lao - ======= - - -- The Way of Lao-Tzu, tr. Wing-tsit Chan - >>>>>>> tao - - If you are comparing files that have meaningless or uninformative -names, you can use the `-L LABEL' or `--label=LABEL' option to show -alternate names in the `<<<<<<<', `|||||||' and `>>>>>>>' brackets. -This option can be given up to three times, once for each input file. -Thus `diff3 -A -L X -L Y -L Z A B C' acts like `diff3 -A A B C', except -that the output looks like it came from files named `X', `Y' and `Z' -rather than from files named `A', `B' and `C'. - - -File: diff.info, Node: Bypassing ed, Next: Merging Incomplete Lines, Prev: Marking Conflicts, Up: diff3 Merging - -Generating the Merged Output Directly -===================================== - - With the `-m' or `--merge' option, `diff3' outputs the merged file -directly. This is more efficient than using `ed' to generate it, and -works even with non-text files that `ed' would reject. If you specify -`-m' without an `ed' script option, `-A' (`--show-all') is assumed. - - For example, the command `diff3 -m lao tzu tao' (*note Sample diff3 -Input:: for a copy of the input files) would output the following: - - <<<<<<< tzu - ======= - The Way that can be told of is not the eternal Way; - The name that can be named is not the eternal name. - >>>>>>> tao - The Nameless is the origin of Heaven and Earth; - The Named is the mother of all things. - Therefore let there always be non-being, - so we may see their subtlety, - And let there always be being, - so we may see their result. - The two are the same, - But after they are produced, - they have different names. - <<<<<<< lao - ||||||| tzu - They both may be called deep and profound. - Deeper and more profound, - The door of all subtleties! - ======= - - -- The Way of Lao-Tzu, tr. Wing-tsit Chan - >>>>>>> tao - - -File: diff.info, Node: Merging Incomplete Lines, Next: Saving the Changed File, Prev: Bypassing ed, Up: diff3 Merging - -How `diff3' Merges Incomplete Lines -=================================== - - With `-m', incomplete lines (*note Incomplete Lines::) are simply -copied to the output as they are found; if the merged output ends in an -conflict and one of the input files ends in an incomplete line, -succeeding `|||||||', `=======' or `>>>>>>>' brackets appear somewhere -other than the start of a line because they are appended to the -incomplete line. - - Without `-m', if an `ed' script option is specified and an -incomplete line is found, `diff3' generates a warning and acts as if a -newline had been present. - - -File: diff.info, Node: Saving the Changed File, Prev: Merging Incomplete Lines, Up: diff3 Merging - -Saving the Changed File -======================= - - Traditional Unix `diff3' generates an `ed' script without the -trailing `w' and `q' commands that save the changes. System V `diff3' -generates these extra commands. GNU `diff3' normally behaves like -traditional Unix `diff3', but with the `-i' option it behaves like -System V `diff3' and appends the `w' and `q' commands. - - The `-i' option requires one of the `ed' script options `-AeExX3', -and is incompatible with the merged output option `-m'. - - -File: diff.info, Node: Interactive Merging, Next: Merging with patch, Prev: diff3 Merging, Up: Top - -Interactive Merging with `sdiff' -******************************** - - With `sdiff', you can merge two files interactively based on a -side-by-side `-y' format comparison (*note Side by Side::). Use `-o -FILE' or `--output=FILE' to specify where to put the merged text. -*Note Invoking sdiff::, for more details on the options to `sdiff'. - - Another way to merge files interactively is to use the Emacs Lisp -package `emerge'. *Note emerge: (emacs)emerge, for more information. - -* Menu: - -* sdiff Option Summary:: Summary of `sdiff' options. -* Merge Commands:: Merging two files interactively. - - -File: diff.info, Node: sdiff Option Summary, Next: Merge Commands, Up: Interactive Merging - -Specifying `diff' Options to `sdiff' -==================================== - - The following `sdiff' options have the same meaning as for `diff'. -*Note diff Options::, for the use of these options. - - -a -b -d -i -t -v - -B -E -I REGEXP - - --ignore-blank-lines --ignore-case - --ignore-matching-lines=REGEXP --ignore-space-change - --ignore-tab-expansion - --left-column --minimal --speed-large-files - --strip-trailing-cr --suppress-common-lines --expand-tabs - --text --version --width=COLUMNS - - For historical reasons, `sdiff' has alternate names for some -options. The `-l' option is equivalent to the `--left-column' option, -and similarly `-s' is equivalent to `--suppress-common-lines'. The -meaning of the `sdiff' `-w' and `-W' options is interchanged from that -of `diff': with `sdiff', `-w COLUMNS' is equivalent to -`--width=COLUMNS', and `-W' is equivalent to `--ignore-all-space'. -`sdiff' without the `-o' option is equivalent to `diff' with the `-y' -or `--side-by-side' option (*note Side by Side::). - - -File: diff.info, Node: Merge Commands, Prev: sdiff Option Summary, Up: Interactive Merging - -Merge Commands -============== - - Groups of common lines, with a blank gutter, are copied from the -first file to the output. After each group of differing lines, `sdiff' -prompts with `%' and pauses, waiting for one of the following commands. -Follow each command with . - -`e' - Discard both versions. Invoke a text editor on an empty temporary - file, then copy the resulting file to the output. - -`eb' - Concatenate the two versions, edit the result in a temporary file, - then copy the edited result to the output. - -`ed' - Like `eb', except precede each version with a header that shows - what file and lines the version came from. - -`el' - Edit a copy of the left version, then copy the result to the - output. - -`er' - Edit a copy of the right version, then copy the result to the - output. - -`l' - Copy the left version to the output. - -`q' - Quit. - -`r' - Copy the right version to the output. - -`s' - Silently copy common lines. - -`v' - Verbosely copy common lines. This is the default. - - The text editor invoked is specified by the `EDITOR' environment -variable if it is set. The default is system-dependent. - - -File: diff.info, Node: Merging with patch, Next: Making Patches, Prev: Interactive Merging, Up: Top - -Merging with `patch' -******************** - - `patch' takes comparison output produced by `diff' and applies the -differences to a copy of the original file, producing a patched -version. With `patch', you can distribute just the changes to a set of -files instead of distributing the entire file set; your correspondents -can apply `patch' to update their copy of the files with your changes. -`patch' automatically determines the diff format, skips any leading or -trailing headers, and uses the headers to determine which file to -patch. This lets your correspondents feed a mail message containing a -difference listing directly to `patch'. - - `patch' detects and warns about common problems like forward -patches. It saves any patches that it could not apply. It can also -maintain a `patchlevel.h' file to ensure that your correspondents apply -diffs in the proper order. - - `patch' accepts a series of diffs in its standard input, usually -separated by headers that specify which file to patch. It applies -`diff' hunks (*note Hunks::) one by one. If a hunk does not exactly -match the original file, `patch' uses heuristics to try to patch the -file as well as it can. If no approximate match can be found, `patch' -rejects the hunk and skips to the next hunk. `patch' normally replaces -each file F with its new version, putting reject hunks (if any) into -`F.rej'. - - *Note Invoking patch::, for detailed information on the options to -`patch'. - -* Menu: - -* patch Input:: Selecting the type of `patch' input. -* Revision Control:: Getting files from RCS, SCCS, etc. -* Imperfect:: Dealing with imperfect patches. -* Creating and Removing:: Creating and removing files with a patch. -* Patching Time Stamps:: Updating time stamps on patched files. -* Multiple Patches:: Handling multiple patches in a file. -* patch Directories:: Changing directory and stripping directories. -* Backups:: Whether backup files are made. -* Backup Names:: Backup file names. -* Reject Names:: Reject file names. -* patch Messages:: Messages and questions `patch' can produce. -* patch and POSIX:: Conformance to the POSIX standard. -* patch and Tradition:: GNU versus traditional `patch'. - - -File: diff.info, Node: patch Input, Next: Revision Control, Up: Merging with patch - -Selecting the `patch' Input Format -================================== - - `patch' normally determines which `diff' format the patch file uses -by examining its contents. For patch files that contain particularly -confusing leading text, you might need to use one of the following -options to force `patch' to interpret the patch file as a certain -format of diff. The output formats listed here are the only ones that -`patch' can understand. - -`-c' -`--context' - context diff. - -`-e' -`--ed' - `ed' script. - -`-n' -`--normal' - normal diff. - -`-u' -`--unified' - unified diff. - - -File: diff.info, Node: Revision Control, Next: Imperfect, Prev: patch Input, Up: Merging with patch - -Revision Control -================ - - If a nonexistent input file is under a revision control system -supported by `patch', `patch' normally asks the user whether to get (or -check out) the file from the revision control system. Patch currently -supports RCS, ClearCase and SCCS. Under RCS and SCCS, `patch' also -asks when the input file is read-only and matches the default version -in the revision control system. - - The `-g NUM' or `--get=NUM' affects access to files under supported -revision control systems. If NUM is positive, `patch' gets the file -without asking the user; if zero, `patch' neither asks the user nor -gets the file; and if negative, `patch' asks the user before getting -the file. The default value of NUM is given by the value of the -`PATCH_GET' environment variable if it is set; if not, the default -value is zero if `patch' is conforming to POSIX, negative otherwise. -*Note patch and POSIX::. - - The choice of revision control system is unaffected by the -`VERSION_CONTROL' environment variable (*note Backup Names::). - - -File: diff.info, Node: Imperfect, Next: Creating and Removing, Prev: Revision Control, Up: Merging with patch - -Applying Imperfect Patches -========================== - - `patch' tries to skip any leading text in the patch file, apply the -diff, and then skip any trailing text. Thus you can feed a mail -message directly to `patch', and it should work. If the entire diff is -indented by a constant amount of white space, `patch' automatically -ignores the indentation. If a context diff contains trailing carriage -return on each line, `patch' automatically ignores the carriage return. -If a context diff has been encapsulated by prepending `- ' to lines -beginning with `-' as per Internet RFC 934 -(ftp://ftp.isi.edu/in-notes/rfc934.txt), `patch' automatically -unencapsulates the input. - - However, certain other types of imperfect input require user -intervention or testing. - -* Menu: - -* Changed White Space:: When tabs and spaces don't match exactly. -* Reversed Patches:: Applying reversed patches correctly. -* Inexact:: Helping `patch' find close matches. -* Dry Runs:: Predicting what `patch' will do. - - -File: diff.info, Node: Changed White Space, Next: Reversed Patches, Up: Imperfect - -Applying Patches with Changed White Space ------------------------------------------ - - Sometimes mailers, editors, or other programs change spaces into -tabs, or vice versa. If this happens to a patch file or an input file, -the files might look the same, but `patch' will not be able to match -them properly. If this problem occurs, use the `-l' or -`--ignore-white-space' option, which makes `patch' compare blank -characters (i.e. spaces and tabs) loosely so that any nonempty sequence -of blanks in the patch file matches any nonempty sequence of blanks in -the input files. Non-blank characters must still match exactly. Each -line of the context must still match a line in the input file. - - -File: diff.info, Node: Reversed Patches, Next: Inexact, Prev: Changed White Space, Up: Imperfect - -Applying Reversed Patches -------------------------- - - Sometimes people run `diff' with the new file first instead of -second. This creates a diff that is "reversed". To apply such -patches, give `patch' the `-R' or `--reverse' option. `patch' then -attempts to swap each hunk around before applying it. Rejects come out -in the swapped format. - - Often `patch' can guess that the patch is reversed. If the first -hunk of a patch fails, `patch' reverses the hunk to see if it can apply -it that way. If it can, `patch' asks you if you want to have the `-R' -option set; if it can't, `patch' continues to apply the patch normally. -This method cannot detect a reversed patch if it is a normal diff and -the first command is an append (which should have been a delete) since -appends always succeed, because a null context matches anywhere. But -most patches add or change lines rather than delete them, so most -reversed normal diffs begin with a delete, which fails, and `patch' -notices. - - If you apply a patch that you have already applied, `patch' thinks -it is a reversed patch and offers to un-apply the patch. This could be -construed as a feature. If you did this inadvertently and you don't -want to un-apply the patch, just answer `n' to this offer and to the -subsequent "apply anyway" question--or type `C-c' to kill the `patch' -process. - - -File: diff.info, Node: Inexact, Next: Dry Runs, Prev: Reversed Patches, Up: Imperfect - -Helping `patch' Find Inexact Matches ------------------------------------- - - For context diffs, and to a lesser extent normal diffs, `patch' can -detect when the line numbers mentioned in the patch are incorrect, and -it attempts to find the correct place to apply each hunk of the patch. -As a first guess, it takes the line number mentioned in the hunk, plus -or minus any offset used in applying the previous hunk. If that is not -the correct place, `patch' scans both forward and backward for a set of -lines matching the context given in the hunk. - - First `patch' looks for a place where all lines of the context -match. If it cannot find such a place, and it is reading a context or -unified diff, and the maximum fuzz factor is set to 1 or more, then -`patch' makes another scan, ignoring the first and last line of -context. If that fails, and the maximum fuzz factor is set to 2 or -more, it makes another scan, ignoring the first two and last two lines -of context are ignored. It continues similarly if the maximum fuzz -factor is larger. - - The `-F LINES' or `--fuzz=LINES' option sets the maximum fuzz factor -to LINES. This option only applies to context and unified diffs; it -ignores up to LINES lines while looking for the place to install a -hunk. Note that a larger fuzz factor increases the odds of making a -faulty patch. The default fuzz factor is 2; there is no point to -setting it to more than the number of lines of context in the diff, -ordinarily 3. - - If `patch' cannot find a place to install a hunk of the patch, it -writes the hunk out to a reject file (*note Reject Names::, for -information on how reject files are named). It writes out rejected -hunks in context format no matter what form the input patch is in. If -the input is a normal or `ed' diff, many of the contexts are simply -null. The line numbers on the hunks in the reject file may be -different from those in the patch file: they show the approximate -location where `patch' thinks the failed hunks belong in the new file -rather than in the old one. - - If the `--verbose' option is given, then as it completes each hunk -`patch' tells you whether the hunk succeeded or failed, and if it -failed, on which line (in the new file) `patch' thinks the hunk should -go. If this is different from the line number specified in the diff, -it tells you the offset. A single large offset _may_ indicate that -`patch' installed a hunk in the wrong place. `patch' also tells you if -it used a fuzz factor to make the match, in which case you should also -be slightly suspicious. - - `patch' cannot tell if the line numbers are off in an `ed' script, -and can only detect wrong line numbers in a normal diff when it finds a -change or delete command. It may have the same problem with a context -diff using a fuzz factor equal to or greater than the number of lines -of context shown in the diff (typically 3). In these cases, you should -probably look at a context diff between your original and patched input -files to see if the changes make sense. Compiling without errors is a -pretty good indication that the patch worked, but not a guarantee. - - A patch against an empty file applies to a nonexistent file, and vice -versa. *Note Creating and Removing::. - - `patch' usually produces the correct results, even when it must make -many guesses. However, the results are guaranteed only when the patch -is applied to an exact copy of the file that the patch was generated -from. - - -File: diff.info, Node: Dry Runs, Prev: Inexact, Up: Imperfect - -Predicting what `patch' will do -------------------------------- - - It may not be obvious in advance what `patch' will do with a -complicated or poorly formatted patch. If you are concerned that the -input might cause `patch' to modify the wrong files, you can use the -`--dry-run' option, which causes `patch' to print the results of -applying patches without actually changing any files. You can then -inspect the diagnostics generated by the dry run to see whether `patch' -will modify the files that you expect. If the patch does not do what -you want, you can modify the patch (or the other options to `patch') -and try another dry run. Once you are satisfied with the proposed -patch you can apply it by invoking `patch' as before, but this time -without the `--dry-run' option. - - -File: diff.info, Node: Creating and Removing, Next: Patching Time Stamps, Prev: Imperfect, Up: Merging with patch - -Creating and Removing Files -=========================== - - Sometimes when comparing two directories, a file may exist in one -directory but not the other. If you give `diff' the `-N' or -`--new-file' option, or if you supply an old or new file that is named -`/dev/null' or is empty and is dated the Epoch (1970-01-01 00:00:00 -UTC), `diff' outputs a patch that adds or deletes the contents of this -file. When given such a patch, `patch' normally creates a new file or -removes the old file. However, when conforming to POSIX (*note patch -and POSIX::), `patch' does not remove the old file, but leaves it empty. -The `-E' or `--remove-empty-files' option causes `patch' to remove -output files that are empty after applying a patch, even if the patch -does not appear to be one that removed the file. - - If the patch appears to create a file that already exists, `patch' -asks for confirmation before applying the patch. - - -File: diff.info, Node: Patching Time Stamps, Next: Multiple Patches, Prev: Creating and Removing, Up: Merging with patch - -Updating Time Stamps on Patched Files -===================================== - - When `patch' updates a file, it normally sets the file's -last-modified time stamp to the current time of day. If you are using -`patch' to track a software distribution, this can cause `make' to -incorrectly conclude that a patched file is out of date. For example, -if `syntax.c' depends on `syntax.y', and `patch' updates `syntax.c' and -then `syntax.y', then `syntax.c' will normally appear to be out of date -with respect to `syntax.y' even though its contents are actually up to -date. - - The `-Z' or `--set-utc' option causes `patch' to set a patched -file's modification and access times to the time stamps given in -context diff headers. If the context diff headers do not specify a -time zone, they are assumed to use Coordinated Universal Time (UTC, -often known as GMT). - - The `-T' or `--set-time' option acts like `-Z' or `--set-utc', -except that it assumes that the context diff headers' time stamps use -local time instead of UTC. This option is not recommended, because -patches using local time cannot easily be used by people in other time -zones, and because local time stamps are ambiguous when local clocks -move backwards during daylight-saving time adjustments. If the context -diff headers specify a time zone, this option is equivalent to `-Z' or -`--set-utc'. - - `patch' normally refrains from setting a file's time stamps if the -file's original last-modified time stamp does not match the time given -in the diff header, of if the file's contents do not exactly match the -patch. However, if the `-f' or `--force' option is given, the file's -time stamps are set regardless. - - Due to the limitations of the current `diff' format, `patch' cannot -update the times of files whose contents have not changed. Also, if -you set file time stamps to values other than the current time of day, -you should also remove (e.g., with `make clean') all files that depend -on the patched files, so that later invocations of `make' do not get -confused by the patched files' times. - - -File: diff.info, Node: Multiple Patches, Next: patch Directories, Prev: Patching Time Stamps, Up: Merging with patch - -Multiple Patches in a File -========================== - - If the patch file contains more than one patch, and if you do not -specify an input file on the command line, `patch' tries to apply each -patch as if they came from separate patch files. This means that it -determines the name of the file to patch for each patch, and that it -examines the leading text before each patch for file names and -prerequisite revision level (*note Making Patches::, for more on that -topic). - - `patch' uses the following rules to intuit a file name from the -leading text before a patch. First, `patch' takes an ordered list of -candidate file names as follows: - - * If the header is that of a context diff, `patch' takes the old and - new file names in the header. A name is ignored if it does not - have enough slashes to satisfy the `-pNUM' or `--strip=NUM' - option. The name `/dev/null' is also ignored. - - * If there is an `Index:' line in the leading garbage and if either - the old and new names are both absent or if `patch' is conforming - to POSIX, `patch' takes the name in the `Index:' line. - - * For the purpose of the following rules, the candidate file names - are considered to be in the order (old, new, index), regardless of - the order that they appear in the header. - -Then `patch' selects a file name from the candidate list as follows: - - * If some of the named files exist, `patch' selects the first name - if conforming to POSIX, and the best name otherwise. - - * If `patch' is not ignoring RCS, ClearCase, and SCCS (*note - Revision Control::), and no named files exist but an RCS, - ClearCase, or SCCS master is found, `patch' selects the first - named file with an RCS, ClearCase, or SCCS master. - - * If no named files exist, no RCS, ClearCase, or SCCS master was - found, some names are given, `patch' is not conforming to POSIX, - and the patch appears to create a file, `patch' selects the best - name requiring the creation of the fewest directories. - - * If no file name results from the above heuristics, you are asked - for the name of the file to patch, and `patch' selects that name. - - To determine the "best" of a nonempty list of file names, `patch' -first takes all the names with the fewest path name components; of -those, it then takes all the names with the shortest basename; of -those, it then takes all the shortest names; finally, it takes the -first remaining name. - - *Note patch and POSIX::, to see whether `patch' is conforming to -POSIX. - - -File: diff.info, Node: patch Directories, Next: Backups, Prev: Multiple Patches, Up: Merging with patch - -Applying Patches in Other Directories -===================================== - - The `-d DIRECTORY' or `--directory=DIRECTORY' option to `patch' -makes directory DIRECTORY the current directory for interpreting both -file names in the patch file, and file names given as arguments to -other options (such as `-B' and `-o'). For example, while in a mail -reading program, you can patch a file in the `/usr/src/emacs' directory -directly from a message containing the patch like this: - - | patch -d /usr/src/emacs - - Sometimes the file names given in a patch contain leading -directories, but you keep your files in a directory different from the -one given in the patch. In those cases, you can use the `-pNUMBER' or -`--strip=NUMBER' option to set the file name strip count to NUMBER. -The strip count tells `patch' how many slashes, along with the directory -names between them, to strip from the front of file names. A sequence -of one or more adjacent slashes is counted as a single slash. By -default, `patch' strips off all leading directories, leaving just the -base file names. - - For example, suppose the file name in the patch file is -`/gnu/src/emacs/etc/NEWS'. Using `-p0' gives the entire file name -unmodified, `-p1' gives `gnu/src/emacs/etc/NEWS' (no leading slash), -`-p4' gives `etc/NEWS', and not specifying `-p' at all gives `NEWS'. - - `patch' looks for each file (after any slashes have been stripped) -in the current directory, or if you used the `-d DIRECTORY' option, in -that directory. - - -File: diff.info, Node: Backups, Next: Backup Names, Prev: patch Directories, Up: Merging with patch - -Backup Files -============ - - Normally, `patch' creates a backup file if the patch does not -exactly match the original input file, because in that case the -original data might not be recovered if you undo the patch with `patch --R' (*note Reversed Patches::). However, when conforming to POSIX, -`patch' does not create backup files by default. *Note patch and -POSIX::. - - The `-b' or `--backup' option causes `patch' to make a backup file -regardless of whether the patch matches the original input. The -`--backup-if-mismatch' option causes `patch' to create backup files for -mismatches files; this is the default when not conforming to POSIX. The -`--no-backup-if-mismatch' option causes `patch' to not create backup -files, even for mismatched patches; this is the default when conforming -to POSIX. - - When backing up a file that does not exist, an empty, unreadable -backup file is created as a placeholder to represent the nonexistent -file. - - -File: diff.info, Node: Backup Names, Next: Reject Names, Prev: Backups, Up: Merging with patch - -Backup File Names -================= - - Normally, `patch' renames an original input file into a backup file -by appending to its name the extension `.orig', or `~' if using `.orig' -would make the backup file name too long.(1) The `-z BACKUP-SUFFIX' or -`--suffix=BACKUP-SUFFIX' option causes `patch' to use BACKUP-SUFFIX as -the backup extension instead. - - Alternately, you can specify the extension for backup files with the -`SIMPLE_BACKUP_SUFFIX' environment variable, which the options override. - - `patch' can also create numbered backup files the way GNU Emacs -does. With this method, instead of having a single backup of each file, -`patch' makes a new backup file name each time it patches a file. For -example, the backups of a file named `sink' would be called, -successively, `sink.~1~', `sink.~2~', `sink.~3~', etc. - - The `-V BACKUP-STYLE' or `--version-control=BACKUP-STYLE' option -takes as an argument a method for creating backup file names. You can -alternately control the type of backups that `patch' makes with the -`PATCH_VERSION_CONTROL' environment variable, which the `-V' option -overrides. If `PATCH_VERSION_CONTROL' is not set, the -`VERSION_CONTROL' environment variable is used instead. Please note -that these options and variables control backup file names; they do not -affect the choice of revision control system (*note Revision Control::). - - The values of these environment variables and the argument to the -`-V' option are like the GNU Emacs `version-control' variable (*note -Backup Names: (emacs)Backup Names., for more information on backup -versions in Emacs). They also recognize synonyms that are more -descriptive. The valid values are listed below; unique abbreviations -are acceptable. - -`t' -`numbered' - Always make numbered backups. - -`nil' -`existing' - Make numbered backups of files that already have them, simple - backups of the others. This is the default. - -`never' -`simple' - Always make simple backups. - - You can also tell `patch' to prepend a prefix, such as a directory -name, to produce backup file names. The `-B PREFIX' or -`--prefix=PREFIX' option makes backup files by prepending PREFIX to -them. The `-Y PREFIX' or `--basename-prefix=PREFIX' prepends PREFIX to -the last file name component of backup file names instead; for example, -`-Y ~' causes the backup name for `dir/file.c' to be `dir/~file.c'. If -you use either of these prefix options, the suffix-based options are -ignored. - - If you specify the output file with the `-o' option, that file is -the one that is backed up, not the input file. - - Options that affect the names of backup files do not affect whether -backups are made. For example, if you specify the -`--no-backup-if-mismatch' option, none of the options described in this -section have any affect, because no backups are made. - - ---------- Footnotes ---------- - - (1) A coding error in GNU `patch' version 2.5.4 causes it to always -use `~', but this should be fixed in the next release. - - -File: diff.info, Node: Reject Names, Next: patch Messages, Prev: Backup Names, Up: Merging with patch - -Reject File Names -================= - - The names for reject files (files containing patches that `patch' -could not find a place to apply) are normally the name of the output -file with `.rej' appended (or `#' if if using `.rej' would make the -backup file name too long). - - Alternatively, you can tell `patch' to place all of the rejected -patches in a single file. The `-r REJECT-FILE' or -`--reject-file=REJECT-FILE' option uses REJECT-FILE as the reject file -name. - - -File: diff.info, Node: patch Messages, Next: patch and POSIX, Prev: Reject Names, Up: Merging with patch - -Messages and Questions from `patch' -=================================== - - `patch' can produce a variety of messages, especially if it has -trouble decoding its input. In a few situations where it's not sure -how to proceed, `patch' normally prompts you for more information from -the keyboard. There are options to produce more or fewer messages, to -have it not ask for keyboard input, and to affect the way that file -names are quoted in messages. - -* Menu: - -* More or Fewer Messages:: Controlling the verbosity of `patch'. -* patch and Keyboard Input:: Inhibiting keyboard input. -* patch Quoting Style:: Quoting file names in diagnostics. - - `patch' exits with status 0 if all hunks are applied successfully, 1 -if some hunks cannot be applied, and 2 if there is more serious trouble. -When applying a set of patches in a loop, you should check the exit -status, so you don't apply a later patch to a partially patched file. - - -File: diff.info, Node: More or Fewer Messages, Next: patch and Keyboard Input, Up: patch Messages - -Controlling the Verbosity of `patch' ------------------------------------- - - You can cause `patch' to produce more messages by using the -`--verbose' option. For example, when you give this option, the -message `Hmm...' indicates that `patch' is reading text in the patch -file, attempting to determine whether there is a patch in that text, -and if so, what kind of patch it is. - - You can inhibit all terminal output from `patch', unless an error -occurs, by using the `-s', `--quiet', or `--silent' option. - - -File: diff.info, Node: patch and Keyboard Input, Next: patch Quoting Style, Prev: More or Fewer Messages, Up: patch Messages - -Inhibiting Keyboard Input -------------------------- - - There are two ways you can prevent `patch' from asking you any -questions. The `-f' or `--force' option assumes that you know what you -are doing. It causes `patch' to do the following: - - * Skip patches that do not contain file names in their headers. - - * Patch files even though they have the wrong version for the - `Prereq:' line in the patch; - - * Assume that patches are not reversed even if they look like they - are. - -The `-t' or `--batch' option is similar to `-f', in that it suppresses -questions, but it makes somewhat different assumptions: - - * Skip patches that do not contain file names in their headers (the - same as `-f'). - - * Skip patches for which the file has the wrong version for the - `Prereq:' line in the patch; - - * Assume that patches are reversed if they look like they are. - - -File: diff.info, Node: patch Quoting Style, Prev: patch and Keyboard Input, Up: patch Messages - -`patch' Quoting Style ---------------------- - - When `patch' outputs a file name in a diagnostic message, it can -format the name in any of several ways. This can be useful to output -file names unambiguously, even if they contain punctuation or special -characters like newlines. The `--quoting-style=WORD' option controls -how names are output. The WORD should be one of the following: - -`literal' - Output names as-is. - -`shell' - Quote names for the shell if they contain shell metacharacters or - would cause ambiguous output. - -`shell-always' - Quote names for the shell, even if they would normally not require - quoting. - -`c' - Quote names as for a C language string. - -`escape' - Quote as with `c' except omit the surrounding double-quote - characters. - - You can specify the default value of the `--quoting-style' option -with the environment variable `QUOTING_STYLE'. If that environment -variable is not set, the default value is `shell', but this default may -change in a future version of `patch'. - - -File: diff.info, Node: patch and POSIX, Next: patch and Tradition, Prev: patch Messages, Up: Merging with patch - -`patch' and the POSIX Standard -============================== - - If you specify the `--posix' option, or set the `POSIXLY_CORRECT' -environment variable, `patch' conforms more strictly to the POSIX -standard, as follows: - - * Take the first existing file from the list (old, new, index) when - intuiting file names from diff headers. *Note Multiple Patches::. - - * Do not remove files that are removed by a diff. *Note Creating - and Removing::. - - * Do not ask whether to get files from RCS, ClearCase, or SCCS. - *Note Revision Control::. - - * Require that all options precede the files in the command line. - - * Do not backup files, even when there is a mismatch. *Note - Backups::. - - - -File: diff.info, Node: patch and Tradition, Prev: patch and POSIX, Up: Merging with patch - -GNU `patch' and Traditional `patch' -=================================== - - The current version of GNU `patch' normally follows the POSIX -standard. *Note patch and POSIX::, for the few exceptions to this -general rule. - - Unfortunately, POSIX redefined the behavior of `patch' in several -important ways. You should be aware of the following differences if -you must interoperate with traditional `patch', or with GNU `patch' -version 2.1 and earlier. - - * In traditional `patch', the `-p' option's operand was optional, - and a bare `-p' was equivalent to `-p0'. The `-p' option now - requires an operand, and `-p 0' is now equivalent to `-p0'. For - maximum compatibility, use options like `-p0' and `-p1'. - - Also, traditional `patch' simply counted slashes when stripping - path prefixes; `patch' now counts pathname components. That is, a - sequence of one or more adjacent slashes now counts as a single - slash. For maximum portability, avoid sending patches containing - `//' in file names. - - * In traditional `patch', backups were enabled by default. This - behavior is now enabled with the `-b' or `--backup' option. - - Conversely, in POSIX `patch', backups are never made, even when - there is a mismatch. In GNU `patch', this behavior is enabled - with the `--no-backup-if-mismatch' option, or by conforming to - POSIX. - - The `-b SUFFIX' option of traditional `patch' is equivalent to the - `-b -z SUFFIX' options of GNU `patch'. - - * Traditional `patch' used a complicated (and incompletely - documented) method to intuit the name of the file to be patched - from the patch header. This method did not conform to POSIX, and - had a few gotchas. Now `patch' uses a different, equally - complicated (but better documented) method that is optionally - POSIX-conforming; we hope it has fewer gotchas. The two methods - are compatible if the file names in the context diff header and the - `Index:' line are all identical after prefix-stripping. Your - patch is normally compatible if each header's file names all - contain the same number of slashes. - - * When traditional `patch' asked the user a question, it sent the - question to standard error and looked for an answer from the first - file in the following list that was a terminal: standard error, - standard output, `/dev/tty', and standard input. Now `patch' - sends questions to standard output and gets answers from - `/dev/tty'. Defaults for some answers have been changed so that - `patch' never goes into an infinite loop when using default - answers. - - * Traditional `patch' exited with a status value that counted the - number of bad hunks, or with status 1 if there was real trouble. - Now `patch' exits with status 1 if some hunks failed, or with 2 if - there was real trouble. - - * Limit yourself to the following options when sending instructions - meant to be executed by anyone running GNU `patch', traditional - `patch', or a `patch' that conforms to POSIX. Spaces are - significant in the following list, and operands are required. - - `-c' - `-d DIR' - `-D DEFINE' - `-e' - `-l' - `-n' - `-N' - `-o OUTFILE' - `-pNUM' - `-R' - `-r REJECTFILE' - - - -File: diff.info, Node: Making Patches, Next: Invoking cmp, Prev: Merging with patch, Up: Top - -Tips for Making and Using Patches -********************************* - - Use some common sense when making and using patches. For example, -when sending bug fixes to a program's maintainer, send several small -patches, one per independent subject, instead of one large, -harder-to-digest patch that covers all the subjects. - - Here are some other things you should keep in mind if you are going -to distribute patches for updating a software package. - -* Menu: - -* Tips for Patch Producers:: Advice for making patches. -* Tips for Patch Consumers:: Advice for using patches. -* Avoiding Common Mistakes:: Avoiding common mistakes when using `patch'. -* Generating Smaller Patches:: How to generate smaller patches. - - -File: diff.info, Node: Tips for Patch Producers, Next: Tips for Patch Consumers, Up: Making Patches - -Tips for Patch Producers -======================== - - To create a patch that changes an older version of a package into a -newer version, first make a copy of the older and newer versions in -adjacent subdirectories. It is common to do that by unpacking `tar' -archives of the two versions. - - To generate the patch, use the command `diff -Naur OLD NEW' where -OLD and NEW identify the old and new directories. The names OLD and -NEW should not contain any slashes. The `-N' option lets the patch -create and remove files; `-a' lets the patch update non-text files; `-u' -generates useful time stamps and enough context; and `-r' lets the -patch update subdirectories. Here is an example command, using Bourne -shell syntax: - - diff -Naur gcc-3.0.3 gcc-3.0.4 - - Tell your recipients how to apply the patches. This should include -which working directory to use, and which `patch' options to use; the -option `-p1' is recommended. Test your procedure by pretending to be a -recipient and applying your patches to a copy of the original files. - - *Note Avoiding Common Mistakes::, for how to avoid common mistakes -when generating a patch. - - -File: diff.info, Node: Tips for Patch Consumers, Next: Avoiding Common Mistakes, Prev: Tips for Patch Producers, Up: Making Patches - -Tips for Patch Consumers -======================== - - A patch producer should tell recipients how to apply the patches, so -the first rule of thumb for a patch consumer is to follow the -instructions supplied with the patch. - - GNU `diff' can analyze files with arbitrarily long lines and files -that end in incomplete lines. However, older versions of `patch' -cannot patch such files. If you are having trouble applying such -patches, try upgrading to a recent version of GNU `patch'. - - -File: diff.info, Node: Avoiding Common Mistakes, Next: Generating Smaller Patches, Prev: Tips for Patch Consumers, Up: Making Patches - -Avoiding Common Mistakes -======================== - - When producing a patch for multiple files, apply `diff' to -directories whose names do not have slashes. This reduces confusion -when the patch consumer specifies the `-pNUMBER' option, since this -option can have surprising results when the old and new file names have -different numbers of slashes. For example, do not send a patch with a -header that looks like this: - - diff -Naur v2.0.29/prog/README prog/README - --- v2.0.29/prog/README 2002-03-10 23:30:39.942229878 -0800 - +++ prog/README 2002-03-17 20:49:32.442260588 -0800 - -because the two file names have different numbers of slashes, and -different versions of `patch' interpret the file names differently. To -avoid confusion, send output that looks like this instead: - - diff -Naur v2.0.29/prog/README v2.0.30/prog/README - --- v2.0.29/prog/README 2002-03-10 23:30:39.942229878 -0800 - +++ v2.0.30/prog/README 2002-03-17 20:49:32.442260588 -0800 - - Make sure you have specified the file names correctly, either in a -context diff header or with an `Index:' line. Take care to not send out -reversed patches, since these make people wonder whether they have -already applied the patch. - - Avoid sending patches that compare backup file names like -`README.orig' or `README~', since this might confuse `patch' into -patching a backup file instead of the real file. Instead, send patches -that compare the same base file names in different directories, e.g. -`old/README' and `new/README'. - - To save people from partially applying a patch before other patches -that should have gone before it, you can make the first patch in the -patch file update a file with a name like `patchlevel.h' or -`version.c', which contains a patch level or version number. If the -input file contains the wrong version number, `patch' will complain -immediately. - - An even clearer way to prevent this problem is to put a `Prereq:' -line before the patch. If the leading text in the patch file contains a -line that starts with `Prereq:', `patch' takes the next word from that -line (normally a version number) and checks whether the next input file -contains that word, preceded and followed by either white space or a -newline. If not, `patch' prompts you for confirmation before -proceeding. This makes it difficult to accidentally apply patches in -the wrong order. - - -File: diff.info, Node: Generating Smaller Patches, Prev: Avoiding Common Mistakes, Up: Making Patches - -Generating Smaller Patches -========================== - - The simplest way to generate a patch is to use `diff -Naur' (*note -Tips for Patch Producers::), but you might be able to reduce the size -of the patch by renaming or removing some files before making the -patch. If the older version of the package contains any files that the -newer version does not, or if any files have been renamed between the -two versions, make a list of `rm' and `mv' commands for the user to -execute in the old version directory before applying the patch. Then -run those commands yourself in the scratch directory. - - If there are any files that you don't need to include in the patch -because they can easily be rebuilt from other files (for example, -`TAGS' and output from `yacc' and `makeinfo'), exclude them from the -patch by giving `diff' the `-x PATTERN' option (*note Comparing -Directories::). If you want your patch to modify a derived file -because your recipients lack tools to build it, make sure that the -patch for the derived file follows any patches for files that it -depends on, so that the recipients' time stamps will not confuse `make'. - - Now you can create the patch using `diff -Naur'. Make sure to -specify the scratch directory first and the newer directory second. - - Add to the top of the patch a note telling the user any `rm' and -`mv' commands to run before applying the patch. Then you can remove -the scratch directory. - - You can also shrink the patch size by using fewer lines of context, -but bear in mind that `patch' typically needs at least two lines for -proper operation when patches do not exactly match the input files. - - -File: diff.info, Node: Invoking cmp, Next: Invoking diff, Prev: Making Patches, Up: Top - -Invoking `cmp' -************** - - The `cmp' command compares two files, and if they differ, tells the -first byte and line number where they differ. Bytes and lines are -numbered starting with 1. The arguments of `cmp' are as follows: - - cmp OPTIONS... FROM-FILE [TO-FILE [FROM-SKIP [TO-SKIP]]] - - The file name `-' is always the standard input. `cmp' also uses the -standard input if one file name is omitted. The FROM-SKIP and TO-SKIP -operands specify how many bytes to ignore at the start of each file; -they are equivalent to the `--ignore-initial=FROM-SKIP:TO-SKIP' option. - - An exit status of 0 means no differences were found, 1 means some -differences were found, and 2 means trouble. - -* Menu: - -* cmp Options:: Summary of options to `cmp'. - - -File: diff.info, Node: cmp Options, Up: Invoking cmp - -Options to `cmp' -================ - - Below is a summary of all of the options that GNU `cmp' accepts. -Most options have two equivalent names, one of which is a single letter -preceded by `-', and the other of which is a long name preceded by -`--'. Multiple single letter options (unless they take an argument) -can be combined into a single command line word: `-bl' is equivalent to -`-b -l'. - -`-b' -`--print-bytes' - Print the differing bytes. Display control bytes as a `^' - followed by a letter of the alphabet and precede bytes that have - the high bit set with `M-' (which stands for "meta"). - -`--help' - Output a summary of usage and then exit. - -`-i SKIP' -`--ignore-initial=SKIP' - Ignore any differences in the first SKIP bytes of the input files. - Treat files with fewer than SKIP bytes as if they are empty. If - SKIP is of the form `FROM-SKIP:TO-SKIP', skip the first FROM-SKIP - bytes of the first input file and the first TO-SKIP bytes of the - second. - -`-l' -`--verbose' - Print the (decimal) byte numbers and (octal) values of all - differing bytes. - -`-n COUNT' -`--bytes=COUNT' - Compare at most COUNT input bytes. - -`-s' -`--quiet' -`--silent' - Do not print anything; only return an exit status indicating - whether the files differ. - -`-v' -`--version' - Output version information and then exit. - - In the above table, operands that are byte counts are normally -decimal, but may be preceded by `0' for octal and `0x' for hexadecimal. - - A byte count can be followed by a suffix to specify a multiple of -that count; in this case an omitted integer is understood to be 1. A -bare size letter, or one followed by `iB', specifies a multiple using -powers of 1024. A size letter followed by `B' specifies powers of 1000 -instead. For example, `-n 4M' and `-n 4MiB' are equivalent to `-n -4194304', whereas `-n 4MB' is equivalent to `-n 4000000'. This -notation is upward compatible with the SI prefixes -(http://www.bipm.fr/enus/3_SI/si-prefixes.html) for decimal multiples -and with the IEC 60027-2 prefixes for binary multiples -(http://physics.nist.gov/cuu/Units/binary.html). - - The following suffixes are defined. Large sizes like `1Y' may be -rejected by your computer due to limitations of its arithmetic. - -`kB' - kilobyte: 10^3 = 1000. - -`k' -`K' -`KiB' - kibibyte: 2^10 = 1024. `K' is special: the SI prefix is `k' and - the IEC 60027-2 prefix is `Ki', but tradition and POSIX use `k' to - mean `KiB'. - -`MB' - megabyte: 10^6 = 1,000,000. - -`M' -`MiB' - mebibyte: 2^20 = 1,048,576. - -`GB' - gigabyte: 10^9 = 1,000,000,000. - -`G' -`GiB' - gibibyte: 2^30 = 1,073,741,824. - -`TB' - terabyte: 10^12 = 1,000,000,000,000. - -`T' -`TiB' - tebibyte: 2^40 = 1,099,511,627,776. - -`PB' - petabyte: 10^15 = 1,000,000,000,000,000. - -`P' -`PiB' - pebibyte: 2^50 = 1,125,899,906,842,624. - -`EB' - exabyte: 10^18 = 1,000,000,000,000,000,000. - -`E' -`EiB' - exbibyte: 2^60 = 1,152,921,504,606,846,976. - -`ZB' - zettabyte: 10^21 = 1,000,000,000,000,000,000,000 - -`Z' -`ZiB' - 2^70 = 1,180,591,620,717,411,303,424. (`Zi' is a GNU extension to - IEC 60027-2.) - -`YB' - yottabyte: 10^24 = 1,000,000,000,000,000,000,000,000. - -`Y' -`YiB' - 2^80 = 1,208,925,819,614,629,174,706,176. (`Yi' is a GNU - extension to IEC 60027-2.) - - -File: diff.info, Node: Invoking diff, Next: Invoking diff3, Prev: Invoking cmp, Up: Top - -Invoking `diff' -*************** - - The format for running the `diff' command is: - - diff OPTIONS... FILES... - - In the simplest case, two file names FROM-FILE and TO-FILE are -given, and `diff' compares the contents of FROM-FILE and TO-FILE. A -file name of `-' stands for text read from the standard input. As a -special case, `diff - -' compares a copy of standard input to itself. - - If one file is a directory and the other is not, `diff' compares the -file in the directory whose name is that of the non-directory. The -non-directory file must not be `-'. - - If two file names are given and both are directories, `diff' -compares corresponding files in both directories, in alphabetical -order; this comparison is not recursive unless the `-r' or -`--recursive' option is given. `diff' never compares the actual -contents of a directory as if it were a file. The file that is fully -specified may not be standard input, because standard input is nameless -and the notion of "file with the same name" does not apply. - - If the `--from-file=FILE' option is given, the number of file names -is arbitrary, and FILE is compared to each named file. Similarly, if -the `--to-file=FILE' option is given, each named file is compared to -FILE. - - `diff' options begin with `-', so normally file names may not begin -with `-'. However, `--' as an argument by itself treats the remaining -arguments as file names even if they begin with `-'. - - An exit status of 0 means no differences were found, 1 means some -differences were found, and 2 means trouble. - -* Menu: - -* diff Options:: Summary of options to `diff'. - - -File: diff.info, Node: diff Options, Up: Invoking diff - -Options to `diff' -================= - - Below is a summary of all of the options that GNU `diff' accepts. -Most options have two equivalent names, one of which is a single letter -preceded by `-', and the other of which is a long name preceded by -`--'. Multiple single letter options (unless they take an argument) -can be combined into a single command line word: `-ac' is equivalent to -`-a -c'. Long named options can be abbreviated to any unique prefix of -their name. Brackets ([ and ]) indicate that an option takes an -optional argument. - -`-a' -`--text' - Treat all files as text and compare them line-by-line, even if they - do not seem to be text. *Note Binary::. - -`-b' -`--ignore-space-change' - Ignore changes in amount of white space. *Note White Space::. - -`-B' -`--ignore-blank-lines' - Ignore changes that just insert or delete blank lines. *Note - Blank Lines::. - -`--binary' - Read and write data in binary mode. *Note Binary::. - -`-c' - Use the context output format, showing three lines of context. - *Note Context Format::. - -`-C LINES' -`--context[=LINES]' - Use the context output format, showing LINES (an integer) lines of - context, or three if LINES is not given. *Note Context Format::. - For proper operation, `patch' typically needs at least two lines of - context. - - On older systems, `diff' supports an obsolete option `-LINES' that - has effect when combined with `-c' or `-p'. POSIX 1003.1-2001 - (*note Standards conformance::) does not allow this; use `-C LINES' - instead. - -`--changed-group-format=FORMAT' - Use FORMAT to output a line group containing differing lines from - both files in if-then-else format. *Note Line Group Formats::. - -`-d' -`--minimal' - Change the algorithm perhaps find a smaller set of changes. This - makes `diff' slower (sometimes much slower). *Note diff - Performance::. - -`-D NAME' -`--ifdef=NAME' - Make merged `#ifdef' format output, conditional on the preprocessor - macro NAME. *Note If-then-else::. - -`-e' -`--ed' - Make output that is a valid `ed' script. *Note ed Scripts::. - -`-E' -`--ignore-tab-expansion' - Ignore changes due to tab expansion. *Note White Space::. - -`-f' -`--forward-ed' - Make output that looks vaguely like an `ed' script but has changes - in the order they appear in the file. *Note Forward ed::. - -`-F REGEXP' -`--show-function-line=REGEXP' - In context and unified format, for each hunk of differences, show - some of the last preceding line that matches REGEXP. *Note - Specified Headings::. - -`--from-file=FILE' - Compare FILE to each operand; FILE may be a directory. - -`--help' - Output a summary of usage and then exit. - -`--horizon-lines=LINES' - Do not discard the last LINES lines of the common prefix and the - first LINES lines of the common suffix. *Note diff Performance::. - -`-i' -`--ignore-case' - Ignore changes in case; consider upper- and lower-case letters - equivalent. *Note Case Folding::. - -`-I REGEXP' -`--ignore-matching-lines=REGEXP' - Ignore changes that just insert or delete lines that match REGEXP. - *Note Specified Folding::. - -`--ignore-file-name-case' - Ignore case when comparing file names during recursive comparison. - *Note Comparing Directories::. - -`-l' -`--paginate' - Pass the output through `pr' to paginate it. *Note Pagination::. - -`--label=LABEL' - Use LABEL instead of the file name in the context format (*note - Context Format::) and unified format (*note Unified Format::) - headers. *Note RCS::. - -`--left-column' - Print only the left column of two common lines in side by side - format. *Note Side by Side Format::. - -`--line-format=FORMAT' - Use FORMAT to output all input lines in if-then-else format. - *Note Line Formats::. - -`-n' -`--rcs' - Output RCS-format diffs; like `-f' except that each command - specifies the number of lines affected. *Note RCS::. - -`-N' -`--new-file' - In directory comparison, if a file is found in only one directory, - treat it as present but empty in the other directory. *Note - Comparing Directories::. - -`--new-group-format=FORMAT' - Use FORMAT to output a group of lines taken from just the second - file in if-then-else format. *Note Line Group Formats::. - -`--new-line-format=FORMAT' - Use FORMAT to output a line taken from just the second file in - if-then-else format. *Note Line Formats::. - -`--old-group-format=FORMAT' - Use FORMAT to output a group of lines taken from just the first - file in if-then-else format. *Note Line Group Formats::. - -`--old-line-format=FORMAT' - Use FORMAT to output a line taken from just the first file in - if-then-else format. *Note Line Formats::. - -`-p' -`--show-c-function' - Show which C function each change is in. *Note C Function - Headings::. - -`-q' -`--brief' - Report only whether the files differ, not the details of the - differences. *Note Brief::. - -`-r' -`--recursive' - When comparing directories, recursively compare any subdirectories - found. *Note Comparing Directories::. - -`-s' -`--report-identical-files' - Report when two files are the same. *Note Comparing Directories::. - -`-S FILE' -`--starting-file=FILE' - When comparing directories, start with the file FILE. This is - used for resuming an aborted comparison. *Note Comparing - Directories::. - -`--speed-large-files' - Use heuristics to speed handling of large files that have numerous - scattered small changes. *Note diff Performance::. - -`--strip-trailing-cr' - Strip any trailing carriage return at the end of an input line. - *Note Binary::. - -`--suppress-common-lines' - Do not print common lines in side by side format. *Note Side by - Side Format::. - -`-t' -`--expand-tabs' - Expand tabs to spaces in the output, to preserve the alignment of - tabs in the input files. *Note Tabs::. - -`-T' -`--initial-tab' - Output a tab rather than a space before the text of a line in - normal or context format. This causes the alignment of tabs in - the line to look normal. *Note Tabs::. - -`--to-file=FILE' - Compare each operand to FILE; FILE may be a directory. - -`-u' - Use the unified output format, showing three lines of context. - *Note Unified Format::. - -`--unchanged-group-format=FORMAT' - Use FORMAT to output a group of common lines taken from both files - in if-then-else format. *Note Line Group Formats::. - -`--unchanged-line-format=FORMAT' - Use FORMAT to output a line common to both files in if-then-else - format. *Note Line Formats::. - -`--unidirectional-new-file' - When comparing directories, if a file appears only in the second - directory of the two, treat it as present but empty in the other. - *Note Comparing Directories::. - -`-U LINES' -`--unified[=LINES]' - Use the unified output format, showing LINES (an integer) lines of - context, or three if LINES is not given. *Note Unified Format::. - For proper operation, `patch' typically needs at least two lines of - context. - - On older systems, `diff' supports an obsolete option `-LINES' that - has effect when combined with `-u'. POSIX 1003.1-2001 (*note - Standards conformance::) does not allow this; use `-U LINES' - instead. - -`-v' -`--version' - Output version information and then exit. - -`-w' -`--ignore-all-space' - Ignore white space when comparing lines. *Note White Space::. - -`-W COLUMNS' -`--width=COLUMNS' - Output at most COLUMNS (default 130) print columns per line in - side by side format. *Note Side by Side Format::. - -`-x PATTERN' -`--exclude=PATTERN' - When comparing directories, ignore files and subdirectories whose - basenames match PATTERN. *Note Comparing Directories::. - -`-X FILE' -`--exclude-from=FILE' - When comparing directories, ignore files and subdirectories whose - basenames match any pattern contained in FILE. *Note Comparing - Directories::. - -`-y' -`--side-by-side' - Use the side by side output format. *Note Side by Side Format::. - - -File: diff.info, Node: Invoking diff3, Next: Invoking patch, Prev: Invoking diff, Up: Top - -Invoking `diff3' -**************** - - The `diff3' command compares three files and outputs descriptions of -their differences. Its arguments are as follows: - - diff3 OPTIONS... MINE OLDER YOURS - - The files to compare are MINE, OLDER, and YOURS. At most one of -these three file names may be `-', which tells `diff3' to read the -standard input for that file. - - An exit status of 0 means `diff3' was successful, 1 means some -conflicts were found, and 2 means trouble. - -* Menu: - -* diff3 Options:: Summary of options to `diff3'. - - -File: diff.info, Node: diff3 Options, Up: Invoking diff3 - -Options to `diff3' -================== - - Below is a summary of all of the options that GNU `diff3' accepts. -Multiple single letter options (unless they take an argument) can be -combined into a single command line argument. - -`-a' -`--text' - Treat all files as text and compare them line-by-line, even if they - do not appear to be text. *Note Binary::. - -`-A' -`--show-all' - Incorporate all unmerged changes from OLDER to YOURS into MINE, - surrounding conflicts with bracket lines. *Note Marking - Conflicts::. - -`--diff-program=PROGRAM' - Use the compatible comparison program PROGRAM to compare files - instead of `diff'. - -`-e' -`--ed' - Generate an `ed' script that incorporates all the changes from - OLDER to YOURS into MINE. *Note Which Changes::. - -`-E' -`--show-overlap' - Like `-e', except bracket lines from overlapping changes' first - and third files. *Note Marking Conflicts::. With `-E', an - overlapping change looks like this: - - <<<<<<< MINE - lines from MINE - ======= - lines from YOURS - >>>>>>> YOURS - -`--help' - Output a summary of usage and then exit. - -`-i' - Generate `w' and `q' commands at the end of the `ed' script for - System V compatibility. This option must be combined with one of - the `-AeExX3' options, and may not be combined with `-m'. *Note - Saving the Changed File::. - -`-L LABEL' -`--label=LABEL' - Use the label LABEL for the brackets output by the `-A', `-E' and - `-X' options. This option may be given up to three times, one for - each input file. The default labels are the names of the input - files. Thus `diff3 -L X -L Y -L Z -m A B C' acts like `diff3 -m A - B C', except that the output looks like it came from files named - `X', `Y' and `Z' rather than from files named `A', `B' and `C'. - *Note Marking Conflicts::. - -`-m' -`--merge' - Apply the edit script to the first file and send the result to - standard output. Unlike piping the output from `diff3' to `ed', - this works even for binary files and incomplete lines. `-A' is - assumed if no edit script option is specified. *Note Bypassing - ed::. - -`-T' -`--initial-tab' - Output a tab rather than two spaces before the text of a line in - normal format. This causes the alignment of tabs in the line to - look normal. *Note Tabs::. - -`-v' -`--version' - Output version information and then exit. - -`-x' -`--overlap-only' - Like `-e', except output only the overlapping changes. *Note - Which Changes::. - -`-X' - Like `-E', except output only the overlapping changes. In other - words, like `-x', except bracket changes as in `-E'. *Note - Marking Conflicts::. - -`-3' -`--easy-only' - Like `-e', except output only the nonoverlapping changes. *Note - Which Changes::. - - -File: diff.info, Node: Invoking patch, Next: Invoking sdiff, Prev: Invoking diff3, Up: Top - -Invoking `patch' -**************** - - Normally `patch' is invoked like this: - - patch -to coordinate with other volunteers. - -* Menu: - -* Shortcomings:: Suggested projects for improvements. -* Bugs:: Reporting bugs. - - -File: diff.info, Node: Shortcomings, Next: Bugs, Up: Projects - -Suggested Projects for Improving GNU `diff' and `patch' -======================================================= - - One should be able to use GNU `diff' to generate a patch from any -pair of directory trees, and given the patch and a copy of one such -tree, use `patch' to generate a faithful copy of the other. -Unfortunately, some changes to directory trees cannot be expressed using -current patch formats; also, `patch' does not handle some of the -existing formats. These shortcomings motivate the following suggested -projects. - -* Menu: - -* Internationalization:: Handling multibyte and varying-width characters. -* Changing Structure:: Handling changes to the directory structure. -* Special Files:: Handling symbolic links, device special files, etc. -* Unusual File Names:: Handling file names that contain unusual characters. -* Time Stamp Order:: Outputting diffs in time stamp order. -* Ignoring Changes:: Ignoring certain changes while showing others. -* Speedups:: Improving performance. - - -File: diff.info, Node: Internationalization, Next: Changing Structure, Up: Shortcomings - -Handling Multibyte and Varying-Width Characters ------------------------------------------------ - - `diff', `diff3' and `sdiff' treat each line of input as a string of -unibyte characters. This can mishandle multibyte characters in some -cases. For example, when asked to ignore spaces, `diff' does not -properly ignore a multibyte space character. - - Also, `diff' currently assumes that each byte is one column wide, -and this assumption is incorrect in some locales, e.g., locales that -use UTF-8 encoding. This causes problems with the `-y' or -`--side-by-side' option of `diff'. - - These problems need to be fixed without unduly affecting the -performance of the utilities in unibyte environments. - - The IBM GNU/Linux Technology Center Internationalization Team has -proposed some patches to support internationalized `diff' -`http://oss.software.ibm.com/developer/opensource/linux/patches/i18n/diffutils-2.7.2-i18n-0.1.patch.gz'. -Unfortunately, these patches are incomplete and are to an older version -of `diff', so more work needs to be done in this area. - - -File: diff.info, Node: Changing Structure, Next: Special Files, Prev: Internationalization, Up: Shortcomings - -Handling Changes to the Directory Structure -------------------------------------------- - - `diff' and `patch' do not handle some changes to directory -structure. For example, suppose one directory tree contains a directory -named `D' with some subsidiary files, and another contains a file with -the same name `D'. `diff -r' does not output enough information for -`patch' to transform the directory subtree into the file. - - There should be a way to specify that a file has been removed without -having to include its entire contents in the patch file. There should -also be a way to tell `patch' that a file was renamed, even if there is -no way for `diff' to generate such information. There should be a way -to tell `patch' that a file's time stamp has changed, even if its -contents have not changed. - - These problems can be fixed by extending the `diff' output format to -represent changes in directory structure, and extending `patch' to -understand these extensions. - - -File: diff.info, Node: Special Files, Next: Unusual File Names, Prev: Changing Structure, Up: Shortcomings - -Files that are Neither Directories Nor Regular Files ----------------------------------------------------- - - Some files are neither directories nor regular files: they are -unusual files like symbolic links, device special files, named pipes, -and sockets. Currently, `diff' treats symbolic links like regular -files; it treats other special files like regular files if they are -specified at the top level, but simply reports their presence when -comparing directories. This means that `patch' cannot represent changes -to such files. For example, if you change which file a symbolic link -points to, `diff' outputs the difference between the two files, instead -of the change to the symbolic link. - - `diff' should optionally report changes to special files specially, -and `patch' should be extended to understand these extensions. - - -File: diff.info, Node: Unusual File Names, Next: Time Stamp Order, Prev: Special Files, Up: Shortcomings - -File Names that Contain Unusual Characters ------------------------------------------- - - When a file name contains an unusual character like a newline or -white space, `diff -r' generates a patch that `patch' cannot parse. -The problem is with format of `diff' output, not just with `patch', -because with odd enough file names one can cause `diff' to generate a -patch that is syntactically correct but patches the wrong files. The -format of `diff' output should be extended to handle all possible file -names. - - -File: diff.info, Node: Time Stamp Order, Next: Ignoring Changes, Prev: Unusual File Names, Up: Shortcomings - -Outputting Diffs in Time Stamp Order ------------------------------------- - - Applying `patch' to a multiple-file diff can result in files whose -time stamps are out of order. GNU `patch' has options to restore the -time stamps of the updated files (*note Patching Time Stamps::), but -sometimes it is useful to generate a patch that works even if the -recipient does not have GNU patch, or does not use these options. One -way to do this would be to implement a `diff' option to output diffs in -time stamp order. - - -File: diff.info, Node: Ignoring Changes, Next: Speedups, Prev: Time Stamp Order, Up: Shortcomings - -Ignoring Certain Changes ------------------------- - - It would be nice to have a feature for specifying two strings, one in -FROM-FILE and one in TO-FILE, which should be considered to match. -Thus, if the two strings are `foo' and `bar', then if two lines differ -only in that `foo' in file 1 corresponds to `bar' in file 2, the lines -are treated as identical. - - It is not clear how general this feature can or should be, or what -syntax should be used for it. - - A partial substitute is to filter one or both files before comparing, -e.g.: - - sed 's/foo/bar/g' file1 | diff - file2 - - However, this outputs the filtered text, not the original. - - -File: diff.info, Node: Speedups, Prev: Ignoring Changes, Up: Shortcomings - -Improving Performance ---------------------- - - When comparing two large directory structures, one of which was -originally copied from the other with time stamps preserved (e.g., with -`cp -pR'), it would greatly improve performance if an option told -`diff' to assume that two files with the same size and time stamps have -the same content. *Note diff Performance::. - - -File: diff.info, Node: Bugs, Prev: Shortcomings, Up: Projects - -Reporting Bugs -============== - - If you think you have found a bug in GNU `cmp', `diff', `diff3', or -`sdiff', please report it by electronic mail to the GNU utilities bug -report mailing list -(http://mail.gnu.org/mailman/listinfo/bug-gnu-utils) -. Please send bug reports for GNU `patch' to -. Send as precise a description of the problem as -you can, including the output of the `--version' option and sample -input files that produce the bug, if applicable. If you have a -nontrivial fix for the bug, please send it as well. If you have a -patch, please send it too. It may simplify the maintainer's job if the -patch is relative to a recent test release, which you can find in the -directory `ftp://alpha.gnu.org/gnu/diffutils/'. - - -File: diff.info, Node: Copying This Manual, Next: Index, Prev: Projects, Up: Top - -Copying This Manual -******************* - -* Menu: - -* GNU Free Documentation License:: License for copying this manual. - - -File: diff.info, Node: GNU Free Documentation License, Up: Copying This Manual - -GNU Free Documentation License -============================== - - Version 1.1, March 2000 - Copyright (C) 2000 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - 0. PREAMBLE - - The purpose of this License is to make a manual, textbook, or other - written document "free" in the sense of freedom: to assure everyone - the effective freedom to copy and redistribute it, with or without - modifying it, either commercially or noncommercially. Secondarily, - this License preserves for the author and publisher a way to get - credit for their work, while not being considered responsible for - modifications made by others. - - This License is a kind of "copyleft", which means that derivative - works of the document must themselves be free in the same sense. - It complements the GNU General Public License, which is a copyleft - license designed for free software. - - We have designed this License in order to use it for manuals for - free software, because free software needs free documentation: a - free program should come with manuals providing the same freedoms - that the software does. But this License is not limited to - software manuals; it can be used for any textual work, regardless - of subject matter or whether it is published as a printed book. - We recommend this License principally for works whose purpose is - instruction or reference. - - 1. APPLICABILITY AND DEFINITIONS - - This License applies to any manual or other work that contains a - notice placed by the copyright holder saying it can be distributed - under the terms of this License. The "Document", below, refers to - any such manual or work. Any member of the public is a licensee, - and is addressed as "you". - - A "Modified Version" of the Document means any work containing the - Document or a portion of it, either copied verbatim, or with - modifications and/or translated into another language. - - A "Secondary Section" is a named appendix or a front-matter - section of the Document that deals exclusively with the - relationship of the publishers or authors of the Document to the - Document's overall subject (or to related matters) and contains - nothing that could fall directly within that overall subject. - (For example, if the Document is in part a textbook of - mathematics, a Secondary Section may not explain any mathematics.) - The relationship could be a matter of historical connection with - the subject or with related matters, or of legal, commercial, - philosophical, ethical or political position regarding them. - - The "Invariant Sections" are certain Secondary Sections whose - titles are designated, as being those of Invariant Sections, in - the notice that says that the Document is released under this - License. - - The "Cover Texts" are certain short passages of text that are - listed, as Front-Cover Texts or Back-Cover Texts, in the notice - that says that the Document is released under this License. - - A "Transparent" copy of the Document means a machine-readable copy, - represented in a format whose specification is available to the - general public, whose contents can be viewed and edited directly - and straightforwardly with generic text editors or (for images - composed of pixels) generic paint programs or (for drawings) some - widely available drawing editor, and that is suitable for input to - text formatters or for automatic translation to a variety of - formats suitable for input to text formatters. A copy made in an - otherwise Transparent file format whose markup has been designed - to thwart or discourage subsequent modification by readers is not - Transparent. A copy that is not "Transparent" is called "Opaque". - - Examples of suitable formats for Transparent copies include plain - ASCII without markup, Texinfo input format, LaTeX input format, - SGML or XML using a publicly available DTD, and - standard-conforming simple HTML designed for human modification. - Opaque formats include PostScript, PDF, proprietary formats that - can be read and edited only by proprietary word processors, SGML - or XML for which the DTD and/or processing tools are not generally - available, and the machine-generated HTML produced by some word - processors for output purposes only. - - The "Title Page" means, for a printed book, the title page itself, - plus such following pages as are needed to hold, legibly, the - material this License requires to appear in the title page. For - works in formats which do not have any title page as such, "Title - Page" means the text near the most prominent appearance of the - work's title, preceding the beginning of the body of the text. - - 2. VERBATIM COPYING - - You may copy and distribute the Document in any medium, either - commercially or noncommercially, provided that this License, the - copyright notices, and the license notice saying this License - applies to the Document are reproduced in all copies, and that you - add no other conditions whatsoever to those of this License. You - may not use technical measures to obstruct or control the reading - or further copying of the copies you make or distribute. However, - you may accept compensation in exchange for copies. If you - distribute a large enough number of copies you must also follow - the conditions in section 3. - - You may also lend copies, under the same conditions stated above, - and you may publicly display copies. - - 3. COPYING IN QUANTITY - - If you publish printed copies of the Document numbering more than - 100, and the Document's license notice requires Cover Texts, you - must enclose the copies in covers that carry, clearly and legibly, - all these Cover Texts: Front-Cover Texts on the front cover, and - Back-Cover Texts on the back cover. Both covers must also clearly - and legibly identify you as the publisher of these copies. The - front cover must present the full title with all words of the - title equally prominent and visible. You may add other material - on the covers in addition. Copying with changes limited to the - covers, as long as they preserve the title of the Document and - satisfy these conditions, can be treated as verbatim copying in - other respects. - - If the required texts for either cover are too voluminous to fit - legibly, you should put the first ones listed (as many as fit - reasonably) on the actual cover, and continue the rest onto - adjacent pages. - - If you publish or distribute Opaque copies of the Document - numbering more than 100, you must either include a - machine-readable Transparent copy along with each Opaque copy, or - state in or with each Opaque copy a publicly-accessible - computer-network location containing a complete Transparent copy - of the Document, free of added material, which the general - network-using public has access to download anonymously at no - charge using public-standard network protocols. If you use the - latter option, you must take reasonably prudent steps, when you - begin distribution of Opaque copies in quantity, to ensure that - this Transparent copy will remain thus accessible at the stated - location until at least one year after the last time you - distribute an Opaque copy (directly or through your agents or - retailers) of that edition to the public. - - It is requested, but not required, that you contact the authors of - the Document well before redistributing any large number of - copies, to give them a chance to provide you with an updated - version of the Document. - - 4. MODIFICATIONS - - You may copy and distribute a Modified Version of the Document - under the conditions of sections 2 and 3 above, provided that you - release the Modified Version under precisely this License, with - the Modified Version filling the role of the Document, thus - licensing distribution and modification of the Modified Version to - whoever possesses a copy of it. In addition, you must do these - things in the Modified Version: - - A. Use in the Title Page (and on the covers, if any) a title - distinct from that of the Document, and from those of - previous versions (which should, if there were any, be listed - in the History section of the Document). You may use the - same title as a previous version if the original publisher of - that version gives permission. - - B. List on the Title Page, as authors, one or more persons or - entities responsible for authorship of the modifications in - the Modified Version, together with at least five of the - principal authors of the Document (all of its principal - authors, if it has less than five). - - C. State on the Title page the name of the publisher of the - Modified Version, as the publisher. - - D. Preserve all the copyright notices of the Document. - - E. Add an appropriate copyright notice for your modifications - adjacent to the other copyright notices. - - F. Include, immediately after the copyright notices, a license - notice giving the public permission to use the Modified - Version under the terms of this License, in the form shown in - the Addendum below. - - G. Preserve in that license notice the full lists of Invariant - Sections and required Cover Texts given in the Document's - license notice. - - H. Include an unaltered copy of this License. - - I. Preserve the section entitled "History", and its title, and - add to it an item stating at least the title, year, new - authors, and publisher of the Modified Version as given on - the Title Page. If there is no section entitled "History" in - the Document, create one stating the title, year, authors, - and publisher of the Document as given on its Title Page, - then add an item describing the Modified Version as stated in - the previous sentence. - - J. Preserve the network location, if any, given in the Document - for public access to a Transparent copy of the Document, and - likewise the network locations given in the Document for - previous versions it was based on. These may be placed in - the "History" section. You may omit a network location for a - work that was published at least four years before the - Document itself, or if the original publisher of the version - it refers to gives permission. - - K. In any section entitled "Acknowledgments" or "Dedications", - preserve the section's title, and preserve in the section all - the substance and tone of each of the contributor - acknowledgments and/or dedications given therein. - - L. Preserve all the Invariant Sections of the Document, - unaltered in their text and in their titles. Section numbers - or the equivalent are not considered part of the section - titles. - - M. Delete any section entitled "Endorsements". Such a section - may not be included in the Modified Version. - - N. Do not retitle any existing section as "Endorsements" or to - conflict in title with any Invariant Section. - - If the Modified Version includes new front-matter sections or - appendices that qualify as Secondary Sections and contain no - material copied from the Document, you may at your option - designate some or all of these sections as invariant. To do this, - add their titles to the list of Invariant Sections in the Modified - Version's license notice. These titles must be distinct from any - other section titles. - - You may add a section entitled "Endorsements", provided it contains - nothing but endorsements of your Modified Version by various - parties--for example, statements of peer review or that the text - has been approved by an organization as the authoritative - definition of a standard. - - You may add a passage of up to five words as a Front-Cover Text, - and a passage of up to 25 words as a Back-Cover Text, to the end - of the list of Cover Texts in the Modified Version. Only one - passage of Front-Cover Text and one of Back-Cover Text may be - added by (or through arrangements made by) any one entity. If the - Document already includes a cover text for the same cover, - previously added by you or by arrangement made by the same entity - you are acting on behalf of, you may not add another; but you may - replace the old one, on explicit permission from the previous - publisher that added the old one. - - The author(s) and publisher(s) of the Document do not by this - License give permission to use their names for publicity for or to - assert or imply endorsement of any Modified Version. - - 5. COMBINING DOCUMENTS - - You may combine the Document with other documents released under - this License, under the terms defined in section 4 above for - modified versions, provided that you include in the combination - all of the Invariant Sections of all of the original documents, - unmodified, and list them all as Invariant Sections of your - combined work in its license notice. - - The combined work need only contain one copy of this License, and - multiple identical Invariant Sections may be replaced with a single - copy. If there are multiple Invariant Sections with the same name - but different contents, make the title of each such section unique - by adding at the end of it, in parentheses, the name of the - original author or publisher of that section if known, or else a - unique number. Make the same adjustment to the section titles in - the list of Invariant Sections in the license notice of the - combined work. - - In the combination, you must combine any sections entitled - "History" in the various original documents, forming one section - entitled "History"; likewise combine any sections entitled - "Acknowledgments", and any sections entitled "Dedications". You - must delete all sections entitled "Endorsements." - - 6. COLLECTIONS OF DOCUMENTS - - You may make a collection consisting of the Document and other - documents released under this License, and replace the individual - copies of this License in the various documents with a single copy - that is included in the collection, provided that you follow the - rules of this License for verbatim copying of each of the - documents in all other respects. - - You may extract a single document from such a collection, and - distribute it individually under this License, provided you insert - a copy of this License into the extracted document, and follow - this License in all other respects regarding verbatim copying of - that document. - - 7. AGGREGATION WITH INDEPENDENT WORKS - - A compilation of the Document or its derivatives with other - separate and independent documents or works, in or on a volume of - a storage or distribution medium, does not as a whole count as a - Modified Version of the Document, provided no compilation - copyright is claimed for the compilation. Such a compilation is - called an "aggregate", and this License does not apply to the - other self-contained works thus compiled with the Document, on - account of their being thus compiled, if they are not themselves - derivative works of the Document. - - If the Cover Text requirement of section 3 is applicable to these - copies of the Document, then if the Document is less than one - quarter of the entire aggregate, the Document's Cover Texts may be - placed on covers that surround only the Document within the - aggregate. Otherwise they must appear on covers around the whole - aggregate. - - 8. TRANSLATION - - Translation is considered a kind of modification, so you may - distribute translations of the Document under the terms of section - 4. Replacing Invariant Sections with translations requires special - permission from their copyright holders, but you may include - translations of some or all Invariant Sections in addition to the - original versions of these Invariant Sections. You may include a - translation of this License provided that you also include the - original English version of this License. In case of a - disagreement between the translation and the original English - version of this License, the original English version will prevail. - - 9. TERMINATION - - You may not copy, modify, sublicense, or distribute the Document - except as expressly provided for under this License. Any other - attempt to copy, modify, sublicense or distribute the Document is - void, and will automatically terminate your rights under this - License. However, parties who have received copies, or rights, - from you under this License will not have their licenses - terminated so long as such parties remain in full compliance. - - 10. FUTURE REVISIONS OF THIS LICENSE - - The Free Software Foundation may publish new, revised versions of - the GNU Free Documentation License from time to time. Such new - versions will be similar in spirit to the present version, but may - differ in detail to address new problems or concerns. See - `http://www.gnu.org/copyleft/'. - - Each version of the License is given a distinguishing version - number. If the Document specifies that a particular numbered - version of this License "or any later version" applies to it, you - have the option of following the terms and conditions either of - that specified version or of any later version that has been - published (not as a draft) by the Free Software Foundation. If - the Document does not specify a version number of this License, - you may choose any version ever published (not as a draft) by the - Free Software Foundation. - -ADDENDUM: How to use this License for your documents ----------------------------------------------------- - - To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and license -notices just after the title page: - - Copyright (C) YEAR YOUR NAME. - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 - or any later version published by the Free Software Foundation; - with the Invariant Sections being LIST THEIR TITLES, with the - Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. - A copy of the license is included in the section entitled ``GNU - Free Documentation License''. - - If you have no Invariant Sections, write "with no Invariant Sections" -instead of saying which ones are invariant. If you have no Front-Cover -Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being -LIST"; likewise for Back-Cover Texts. - - If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, to -permit their use in free software. - - -File: diff.info, Node: Index, Prev: Copying This Manual, Up: Top - -Index -***** - -* Menu: - -* ! output format: Context. -* +- output format: Unified Format. -* < output format: Normal. -* <<<<<<< for marking conflicts: Marking Conflicts. -* _POSIX2_VERSION: Standards conformance. -* aligning tab stops: Tabs. -* alternate file names: Alternate Names. -* backup file names: Backup Names. -* backup file strategy: Backups. -* binary file diff: Binary. -* blank and tab difference suppression: White Space. -* blank line difference suppression: Blank Lines. -* brief difference reports: Brief. -* bug reports: Bugs. -* C function headings: C Function Headings. -* C if-then-else output format: If-then-else. -* case difference suppression: Case Folding. -* ClearCase: Revision Control. -* cmp invocation: Invoking cmp. -* cmp options: cmp Options. -* columnar output: Side by Side. -* common mistakes with patches: Avoiding Common Mistakes. -* comparing three files: Comparing Three Files. -* conflict: diff3 Merging. -* conflict marking: Marking Conflicts. -* context output format: Context. -* creating files: Creating and Removing. -* diagnostics from patch: patch Messages. -* diff invocation: Invoking diff. -* diff merging: Interactive Merging. -* diff options: diff Options. -* diff sample input: Sample diff Input. -* diff3 hunks: diff3 Hunks. -* diff3 invocation: Invoking diff3. -* diff3 options: diff3 Options. -* diff3 sample input: Sample diff3 Input. -* directories and patch: patch Directories. -* directory structure changes: Changing Structure. -* dry runs for patch: Dry Runs. -* ed script output format: ed Scripts. -* EDITOR: Merge Commands. -* empty files, removing: Creating and Removing. -* exabyte, definition of: cmp Options. -* exbibyte, definition of: cmp Options. -* FDL, GNU Free Documentation License: GNU Free Documentation License. -* file name alternates: Alternate Names. -* file names with unusual characters: Unusual File Names. -* format of diff output: Output Formats. -* format of diff3 output: Comparing Three Files. -* formats for if-then-else line groups: Line Group Formats. -* forward ed script output format: Forward ed. -* full lines: Incomplete Lines. -* function headings, C: C Function Headings. -* fuzz factor when patching: Inexact. -* gibibyte, definition of: cmp Options. -* gigabyte, definition of: cmp Options. -* headings: Sections. -* hunks: Hunks. -* hunks for diff3: diff3 Hunks. -* if-then-else output format: If-then-else. -* ifdef output format: If-then-else. -* imperfect patch application: Imperfect. -* incomplete line merging: Merging Incomplete Lines. -* incomplete lines: Incomplete Lines. -* inexact patches: Inexact. -* inhibit messages from patch: More or Fewer Messages. -* interactive merging: Interactive Merging. -* introduction: Comparison. -* intuiting file names from patches: Multiple Patches. -* invoking cmp: Invoking cmp. -* invoking diff: Invoking diff. -* invoking diff3: Invoking diff3. -* invoking patch: Invoking patch. -* invoking sdiff: Invoking sdiff. -* keyboard input to patch: patch and Keyboard Input. -* kibibyte, definition of: cmp Options. -* kilobyte, definition of: cmp Options. -* LC_COLLATE: Comparing Directories. -* LC_NUMERIC: Line Group Formats. -* LC_TIME: Detailed Context. -* line formats: Line Formats. -* line group formats: Line Group Formats. -* mebibyte, definition of: cmp Options. -* megabyte, definition of: cmp Options. -* merge commands: Merge Commands. -* merged diff3 format: Bypassing ed. -* merged output format: If-then-else. -* merging from a common ancestor: diff3 Merging. -* merging interactively: Merge Commands. -* messages from patch: patch Messages. -* multibyte characters: Internationalization. -* multiple patches: Multiple Patches. -* newline treatment by diff: Incomplete Lines. -* normal output format: Normal. -* options for cmp: cmp Options. -* options for diff: diff Options. -* options for diff3: diff3 Options. -* options for patch: patch Options. -* options for sdiff: sdiff Options. -* output formats: Output Formats. -* overlap: diff3 Merging. -* overlapping change, selection of: Which Changes. -* overview of diff and patch: Overview. -* paginating diff output: Pagination. -* patch consumer tips: Tips for Patch Consumers. -* patch input format: patch Input. -* patch invocation: Invoking patch. -* patch messages and questions: patch Messages. -* patch options: patch Options. -* patch producer tips: Tips for Patch Producers. -* patch, common mistakes: Avoiding Common Mistakes. -* PATCH_GET: Revision Control. -* PATCH_VERSION_CONTROL: Backup Names. -* patches, shrinking: Generating Smaller Patches. -* patching directories: patch Directories. -* pebibyte, definition of: cmp Options. -* performance of diff: diff Performance. -* petabyte, definition of: cmp Options. -* POSIX <1>: Standards conformance. -* POSIX: patch and POSIX. -* POSIXLY_CORRECT <1>: patch and POSIX. -* POSIXLY_CORRECT: Standards conformance. -* projects for directories: Shortcomings. -* quoting style: patch Quoting Style. -* QUOTING_STYLE: patch Quoting Style. -* RCS: Revision Control. -* RCS script output format: RCS. -* regular expression matching headings: Specified Headings. -* regular expression suppression: Specified Folding. -* reject file names: Reject Names. -* removing empty files: Creating and Removing. -* reporting bugs: Bugs. -* reversed patches: Reversed Patches. -* revision control: Revision Control. -* sample input for diff: Sample diff Input. -* sample input for diff3: Sample diff3 Input. -* SCCS: Revision Control. -* script output formats: Scripts. -* sdiff invocation: Invoking sdiff. -* sdiff options: sdiff Options. -* sdiff output format: sdiff Option Summary. -* section headings: Sections. -* side by side: Side by Side. -* side by side format: Side by Side Format. -* SIMPLE_BACKUP_SUFFIX: Backup Names. -* special files: Special Files. -* specified headings: Specified Headings. -* summarizing which files differ: Brief. -* System V diff3 compatibility: Saving the Changed File. -* tab and blank difference suppression: White Space. -* tab stop alignment: Tabs. -* tebibyte, definition of: cmp Options. -* terabyte, definition of: cmp Options. -* testing patch: Dry Runs. -* text versus binary diff: Binary. -* time stamp format, context diffs: Detailed Context. -* time stamp format, unified diffs: Detailed Unified. -* time stamps on patched files: Patching Time Stamps. -* traditional patch: patch and Tradition. -* two-column output: Side by Side. -* unified output format: Unified Format. -* unmerged change: Which Changes. -* varying-width characters: Internationalization. -* verbose messages from patch: More or Fewer Messages. -* version control: Revision Control. -* VERSION_CONTROL <1>: Backup Names. -* VERSION_CONTROL: Revision Control. -* white space in patches: Changed White Space. -* yottabyte, definition of: cmp Options. -* zettabyte, definition of: cmp Options. - - - -Tag Table: -Node: Top1653 -Node: Overview4045 -Node: Comparison7202 -Node: Hunks9888 -Node: White Space11313 -Node: Blank Lines12807 -Node: Case Folding13562 -Node: Specified Folding13977 -Node: Brief15052 -Node: Binary16295 -Node: Output Formats20358 -Node: Sample diff Input21076 -Node: Normal22569 -Node: Detailed Normal23564 -Node: Example Normal25289 -Node: Context26011 -Node: Context Format27567 -Node: Detailed Context28345 -Node: Example Context30234 -Node: Less Context31748 -Node: Unified Format32894 -Node: Detailed Unified33676 -Node: Example Unified34787 -Node: Sections35807 -Node: Specified Headings36552 -Node: C Function Headings38083 -Node: Alternate Names38908 -Node: Side by Side39808 -Node: Side by Side Format41947 -Node: Example Side by Side42836 -Node: Scripts44162 -Node: ed Scripts44563 -Node: Detailed ed45756 -Node: Example ed47497 -Node: Forward ed47934 -Node: RCS48696 -Node: If-then-else49904 -Node: Line Group Formats51572 -Node: Line Formats57437 -Node: Detailed If-then-else60693 -Node: Example If-then-else62583 -Node: Incomplete Lines63632 -Node: Comparing Directories65263 -Node: Adjusting Output69220 -Node: Tabs69645 -Node: Pagination71177 -Node: diff Performance71626 -Node: Comparing Three Files74708 -Node: Sample diff3 Input75580 -Node: Detailed diff3 Normal76528 -Node: diff3 Hunks78307 -Node: Example diff3 Normal79593 -Node: diff3 Merging80616 -Node: Which Changes82854 -Node: Marking Conflicts84258 -Node: Bypassing ed86714 -Node: Merging Incomplete Lines88068 -Node: Saving the Changed File88784 -Node: Interactive Merging89390 -Node: sdiff Option Summary90094 -Node: Merge Commands91242 -Node: Merging with patch92503 -Node: patch Input94867 -Node: Revision Control95537 -Node: Imperfect96689 -Node: Changed White Space97825 -Node: Reversed Patches98606 -Node: Inexact100056 -Node: Dry Runs103599 -Node: Creating and Removing104447 -Node: Patching Time Stamps105486 -Node: Multiple Patches107677 -Node: patch Directories110328 -Node: Backups111942 -Node: Backup Names112996 -Ref: Backup Names-Footnote-1115955 -Node: Reject Names116082 -Node: patch Messages116660 -Node: More or Fewer Messages117706 -Node: patch and Keyboard Input118319 -Node: patch Quoting Style119332 -Node: patch and POSIX120464 -Node: patch and Tradition121290 -Node: Making Patches124734 -Node: Tips for Patch Producers125552 -Node: Tips for Patch Consumers126796 -Node: Avoiding Common Mistakes127421 -Node: Generating Smaller Patches129934 -Node: Invoking cmp131683 -Node: cmp Options132532 -Node: Invoking diff135896 -Node: diff Options137599 -Node: Invoking diff3145722 -Node: diff3 Options146352 -Node: Invoking patch149255 -Node: patch Options150455 -Node: Invoking sdiff155669 -Node: sdiff Options156808 -Node: Standards conformance159561 -Node: Projects161299 -Node: Shortcomings162002 -Node: Internationalization163092 -Node: Changing Structure164247 -Node: Special Files165336 -Node: Unusual File Names166282 -Node: Time Stamp Order166904 -Node: Ignoring Changes167531 -Node: Speedups168285 -Node: Bugs168733 -Node: Copying This Manual169574 -Node: GNU Free Documentation License169782 -Node: Index189646 - -End Tag Table diff --git a/gnu/dist/diffutils/doc/diff.texi b/gnu/dist/diffutils/doc/diff.texi deleted file mode 100644 index d4e952a4923..00000000000 --- a/gnu/dist/diffutils/doc/diff.texi +++ /dev/null @@ -1,4557 +0,0 @@ -\input texinfo @c -*-texinfo-*- -@c $NetBSD: diff.texi,v 1.2 2003/01/26 00:48:01 wiz Exp $ -@comment $Id: diff.texi,v 1.2 2003/01/26 00:48:01 wiz Exp $ -@comment %**start of header -@setfilename diff.info -@include version.texi -@settitle Comparing and Merging Files -@syncodeindex vr cp -@setchapternewpage odd -@comment %**end of header -@copying -This manual is for GNU Diffutils -(version @value{VERSION}, @value{UPDATED}), -and documents the @sc{gnu} @command{diff}, @command{diff3}, -@command{sdiff}, and @command{cmp} commands for showing the -differences between files and the @sc{gnu} @command{patch} command for -using their output to update files. - -Copyright @copyright{} 1992, 1993, 1994, 1998, 2001, 2002 Free -Software Foundation, Inc. - -@quotation -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.1 or -any later version published by the Free Software Foundation; with no -Invariant Sections, with the Front-Cover texts being ``A GNU Manual,'' -and with the Back-Cover Texts as in (a) below. A copy of the -license is included in the section entitled ``GNU Free Documentation -License.'' - -(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify -this GNU Manual, like GNU software. Copies published by the Free -Software Foundation raise funds for GNU development.'' -@end quotation -@end copying - -@c Debian install-info (up through at least version 1.9.20) uses only the -@c first dircategory. Put this one first, as it is more useful in practice. -@dircategory Individual utilities -@direntry -* cmp: (diff)Invoking cmp. Compare 2 files byte by byte. -* diff: (diff)Invoking diff. Compare 2 files line by line. -* diff3: (diff)Invoking diff3. Compare 3 files line by line. -* patch: (diff)Invoking patch. Apply a patch to a file. -* sdiff: (diff)Invoking sdiff. Merge 2 files side-by-side. -@end direntry - -@dircategory GNU packages -@direntry -* Diff: (diff). Comparing and merging files. -@end direntry - -@titlepage -@title Comparing and Merging Files -@subtitle for Diffutils @value{VERSION} and @code{patch} 2.5.4 -@subtitle @value{UPDATED} -@author David MacKenzie, Paul Eggert, and Richard Stallman -@page -@vskip 0pt plus 1filll -@insertcopying -@end titlepage - -@shortcontents -@contents - -@ifnottex -@node Top -@top Comparing and Merging Files - -@insertcopying -@end ifnottex - -@menu -* Overview:: Preliminary information. -* Comparison:: What file comparison means. - -* Output Formats:: Formats for two-way difference reports. -* Incomplete Lines:: Lines that lack trailing newlines. -* Comparing Directories:: Comparing files and directories. -* Adjusting Output:: Making @command{diff} output prettier. -* diff Performance:: Making @command{diff} smarter or faster. - -* Comparing Three Files:: Formats for three-way difference reports. -* diff3 Merging:: Merging from a common ancestor. - -* Interactive Merging:: Interactive merging with @command{sdiff}. - -* Merging with patch:: Using @command{patch} to change old files into new ones. -* Making Patches:: Tips for making and using patch distributions. - -* Invoking cmp:: Compare two files byte by byte. -* Invoking diff:: Compare two files line by line. -* Invoking diff3:: Compare three files line by line. -* Invoking patch:: Apply a diff file to an original. -* Invoking sdiff:: Side-by-side merge of file differences. - -* Standards conformance:: Conformance to the @sc{posix} standard. -* Projects:: If you've found a bug or other shortcoming. - -* Copying This Manual:: How to make copies of this manual. -* Index:: Index. -@end menu - -@node Overview -@unnumbered Overview -@cindex overview of @command{diff} and @command{patch} - -Computer users often find occasion to ask how two files differ. Perhaps -one file is a newer version of the other file. Or maybe the two files -started out as identical copies but were changed by different people. - -You can use the @command{diff} command to show differences between two -files, or each corresponding file in two directories. @command{diff} -outputs differences between files line by line in any of several -formats, selectable by command line options. This set of differences is -often called a @dfn{diff} or @dfn{patch}. For files that are identical, -@command{diff} normally produces no output; for binary (non-text) files, -@command{diff} normally reports only that they are different. - -You can use the @command{cmp} command to show the byte and line numbers -where two files differ. @command{cmp} can also show all the bytes -that differ between the two files, side by side. A way to compare -two files character by character is the Emacs command @kbd{M-x -compare-windows}. @xref{Other Window, , Other Window, emacs, The @sc{gnu} -Emacs Manual}, for more information on that command. - -You can use the @command{diff3} command to show differences among three -files. When two people have made independent changes to a common -original, @command{diff3} can report the differences between the original -and the two changed versions, and can produce a merged file that -contains both persons' changes together with warnings about conflicts. - -You can use the @command{sdiff} command to merge two files interactively. - -You can use the set of differences produced by @command{diff} to distribute -updates to text files (such as program source code) to other people. -This method is especially useful when the differences are small compared -to the complete files. Given @command{diff} output, you can use the -@command{patch} program to update, or @dfn{patch}, a copy of the file. If you -think of @command{diff} as subtracting one file from another to produce -their difference, you can think of @command{patch} as adding the difference -to one file to reproduce the other. - -This manual first concentrates on making diffs, and later shows how to -use diffs to update files. - -@sc{gnu} @command{diff} was written by Paul Eggert, Mike Haertel, -David Hayes, Richard Stallman, and Len Tower. Wayne Davison designed and -implemented the unified output format. The basic algorithm is described -in ``An O(ND) Difference Algorithm and its Variations'', Eugene W. Myers, -@cite{Algorithmica} Vol.@: 1 No.@: 2, 1986, pp.@: 251--266; and in ``A File -Comparison Program'', Webb Miller and Eugene W. Myers, -@cite{Software---Practice and Experience} Vol.@: 15 No.@: 11, 1985, -pp.@: 1025--1040. -@c From: "Gene Myers" -@c They are about the same basic algorithm; the Algorithmica -@c paper gives a rigorous treatment and the sub-algorithm for -@c delivering scripts and should be the primary reference, but -@c both should be mentioned. -The algorithm was independently discovered as described in -``Algorithms for Approximate String Matching'', -E. Ukkonen, @cite{Information and Control} Vol.@: 64, 1985, pp.@: 100--118. -@c From: "Gene Myers" -@c Date: Wed, 29 Sep 1993 08:27:55 MST -@c Ukkonen should be given credit for also discovering the algorithm used -@c in GNU diff. - -@sc{gnu} @command{diff3} was written by Randy Smith. @sc{gnu} -@command{sdiff} was written by Thomas Lord. @sc{gnu} @command{cmp} -was written by Torbjorn Granlund and David MacKenzie. - -@command{patch} was written mainly by Larry Wall and Paul Eggert; -several @sc{gnu} enhancements were contributed by Wayne Davison and -David MacKenzie. Parts of this manual are adapted from a manual page -written by Larry Wall, with his permission. - -@node Comparison -@chapter What Comparison Means -@cindex introduction - -There are several ways to think about the differences between two files. -One way to think of the differences is as a series of lines that were -deleted from, inserted in, or changed in one file to produce the other -file. @command{diff} compares two files line by line, finds groups of -lines that differ, and reports each group of differing lines. It can -report the differing lines in several formats, which have different -purposes. - -@sc{gnu} @command{diff} can show whether files are different without detailing -the differences. It also provides ways to suppress certain kinds of -differences that are not important to you. Most commonly, such -differences are changes in the amount of white space between words or -lines. @command{diff} also provides ways to suppress differences in -alphabetic case or in lines that match a regular expression that you -provide. These options can accumulate; for example, you can ignore -changes in both white space and alphabetic case. - -Another way to think of the differences between two files is as a -sequence of pairs of bytes that can be either identical or -different. @command{cmp} reports the differences between two files -byte by byte, instead of line by line. As a result, it is often -more useful than @command{diff} for comparing binary files. For text -files, @command{cmp} is useful mainly when you want to know only whether -two files are identical, or whether one file is a prefix of the other. - -To illustrate the effect that considering changes byte by byte -can have compared with considering them line by line, think of what -happens if a single newline character is added to the beginning of a -file. If that file is then compared with an otherwise identical file -that lacks the newline at the beginning, @command{diff} will report that a -blank line has been added to the file, while @command{cmp} will report that -almost every byte of the two files differs. - -@command{diff3} normally compares three input files line by line, finds -groups of lines that differ, and reports each group of differing lines. -Its output is designed to make it easy to inspect two different sets of -changes to the same file. - -@menu -* Hunks:: Groups of differing lines. -* White Space:: Suppressing differences in white space. -* Blank Lines:: Suppressing differences in blank lines. -* Case Folding:: Suppressing differences in alphabetic case. -* Specified Folding:: Suppressing differences that match regular expressions. -* Brief:: Summarizing which files are different. -* Binary:: Comparing binary files or forcing text comparisons. -@end menu - -@node Hunks -@section Hunks -@cindex hunks - -When comparing two files, @command{diff} finds sequences of lines common to -both files, interspersed with groups of differing lines called -@dfn{hunks}. Comparing two identical files yields one sequence of -common lines and no hunks, because no lines differ. Comparing two -entirely different files yields no common lines and one large hunk that -contains all lines of both files. In general, there are many ways to -match up lines between two given files. @command{diff} tries to minimize -the total hunk size by finding large sequences of common lines -interspersed with small hunks of differing lines. - -For example, suppose the file @file{F} contains the three lines -@samp{a}, @samp{b}, @samp{c}, and the file @file{G} contains the same -three lines in reverse order @samp{c}, @samp{b}, @samp{a}. If -@command{diff} finds the line @samp{c} as common, then the command -@samp{diff F G} produces this output: - -@example -1,2d0 -< a -< b -3a2,3 -> b -> a -@end example - -@noindent -But if @command{diff} notices the common line @samp{b} instead, it produces -this output: - -@example -1c1 -< a ---- -> c -3c3 -< c ---- -> a -@end example - -@noindent -It is also possible to find @samp{a} as the common line. @command{diff} -does not always find an optimal matching between the files; it takes -shortcuts to run faster. But its output is usually close to the -shortest possible. You can adjust this tradeoff with the -@option{--minimal} option (@pxref{diff Performance}). - -@node White Space -@section Suppressing Differences in Blank and Tab Spacing -@cindex blank and tab difference suppression -@cindex tab and blank difference suppression - -The @option{-E} and @option{--ignore-tab-expansion} options ignore the -distinction between tabs and spaces on input. A tab is considered to be -equivalent to the number of spaces to the next tab stop. @command{diff} -assumes that tab stops are set every 8 print columns. - -The @option{-b} and @option{--ignore-space-change} options are stronger. -They ignore white space at line end, and consider all other sequences of -one or more white space characters to be equivalent. With these -options, @command{diff} considers the following two lines to be equivalent, -where @samp{$} denotes the line end: - -@example -Here lyeth muche rychnesse in lytell space. -- John Heywood$ -Here lyeth muche rychnesse in lytell space. -- John Heywood $ -@end example - -The @option{-w} and @option{--ignore-all-space} options are stronger still. -They ignore difference even if one line has white space where -the other line has none. @dfn{White space} characters include -tab, newline, vertical tab, form feed, carriage return, and space; -some locales may define additional characters to be white space. -With these options, @command{diff} considers the -following two lines to be equivalent, where @samp{$} denotes the line -end and @samp{^M} denotes a carriage return: - -@example -Here lyeth muche rychnesse in lytell space.-- John Heywood$ - He relyeth much erychnes seinly tells pace. --John Heywood ^M$ -@end example - -@node Blank Lines -@section Suppressing Differences in Blank Lines -@cindex blank line difference suppression - -The @option{-B} and @option{--ignore-blank-lines} options ignore insertions -or deletions of blank lines. These options affect only lines -that are completely empty; they do not affect lines that look empty but -contain space or tab characters. With these options, for example, a -file containing -@example -1. A point is that which has no part. - -2. A line is breadthless length. --- Euclid, The Elements, I -@end example -@noindent -is considered identical to a file containing -@example -1. A point is that which has no part. -2. A line is breadthless length. - - --- Euclid, The Elements, I -@end example - -@node Case Folding -@section Suppressing Case Differences -@cindex case difference suppression - -@sc{gnu} @command{diff} can treat lower case letters as equivalent to their -upper case counterparts, so that, for example, it considers @samp{Funky -Stuff}, @samp{funky STUFF}, and @samp{fUNKy stuFf} to all be the same. -To request this, use the @option{-i} or @option{--ignore-case} option. - -@node Specified Folding -@section Suppressing Lines Matching a Regular Expression -@cindex regular expression suppression - -To ignore insertions and deletions of lines that match a -@command{grep}-style regular expression, use the @option{-I -@var{regexp}} or @option{--ignore-matching-lines=@var{regexp}} option. -You should escape -regular expressions that contain shell metacharacters to prevent the -shell from expanding them. For example, @samp{diff -I '^[[:digit:]]'} ignores -all changes to lines beginning with a digit. - -However, @option{-I} only ignores the insertion or deletion of lines that -contain the regular expression if every changed line in the hunk---every -insertion and every deletion---matches the regular expression. In other -words, for each nonignorable change, @command{diff} prints the complete set -of changes in its vicinity, including the ignorable ones. - -You can specify more than one regular expression for lines to ignore by -using more than one @option{-I} option. @command{diff} tries to match each -line against each regular expression. - -@node Brief -@section Summarizing Which Files Differ -@cindex summarizing which files differ -@cindex brief difference reports - -When you only want to find out whether files are different, and you -don't care what the differences are, you can use the summary output -format. In this format, instead of showing the differences between the -files, @command{diff} simply reports whether files differ. The @option{-q} -and @option{--brief} options select this output format. - -This format is especially useful when comparing the contents of two -directories. It is also much faster than doing the normal line by line -comparisons, because @command{diff} can stop analyzing the files as soon as -it knows that there are any differences. - -You can also get a brief indication of whether two files differ by using -@command{cmp}. For files that are identical, @command{cmp} produces no -output. When the files differ, by default, @command{cmp} outputs the byte -and line number where the first difference occurs. You can use -the @option{-s} option to suppress that information, so that @command{cmp} -produces no output and reports whether the files differ using only its -exit status (@pxref{Invoking cmp}). - -@c Fix this. -Unlike @command{diff}, @command{cmp} cannot compare directories; it can only -compare two files. - -@node Binary -@section Binary Files and Forcing Text Comparisons -@cindex binary file diff -@cindex text versus binary diff - -If @command{diff} thinks that either of the two files it is comparing is -binary (a non-text file), it normally treats that pair of files much as -if the summary output format had been selected (@pxref{Brief}), and -reports only that the binary files are different. This is because line -by line comparisons are usually not meaningful for binary files. - -@command{diff} determines whether a file is text or binary by checking the -first few bytes in the file; the exact number of bytes is system -dependent, but it is typically several thousand. If every byte in -that part of the file is non-null, @command{diff} considers the file to be -text; otherwise it considers the file to be binary. - -Sometimes you might want to force @command{diff} to consider files to be -text. For example, you might be comparing text files that contain -null characters; @command{diff} would erroneously decide that those are -non-text files. Or you might be comparing documents that are in a -format used by a word processing system that uses null characters to -indicate special formatting. You can force @command{diff} to consider all -files to be text files, and compare them line by line, by using the -@option{-a} or @option{--text} option. If the files you compare using this -option do not in fact contain text, they will probably contain few -newline characters, and the @command{diff} output will consist of hunks -showing differences between long lines of whatever characters the files -contain. - -You can also force @command{diff} to consider all files to be binary files, -and report only whether they differ (but not how). Use the -@option{-q} or @option{--brief} option for this. - -Differing binary files are considered to cause trouble because the -resulting @command{diff} output does not capture all the differences. -This trouble causes @command{diff} to exit with status 2. However, -this trouble cannot occur with the @option{--a} or @option{--text} -option, or with the @option{-q} or @option{--brief} option, as these -options both cause @command{diff} to treat binary files like text -files. - -In operating systems that distinguish between text and binary files, -@command{diff} normally reads and writes all data as text. Use the -@option{--binary} option to force @command{diff} to read and write binary -data instead. This option has no effect on a @sc{posix}-compliant system -like @sc{gnu} or traditional Unix. However, many personal computer -operating systems represent the end of a line with a carriage return -followed by a newline. On such systems, @command{diff} normally ignores -these carriage returns on input and generates them at the end of each -output line, but with the @option{--binary} option @command{diff} treats -each carriage return as just another input character, and does not -generate a carriage return at the end of each output line. This can be -useful when dealing with non-text files that are meant to be -interchanged with @sc{posix}-compliant systems. - -The @option{--strip-trailing-cr} causes @command{diff} to treat input -lines that end in carriage return followed by newline as if they end -in plain newline. This can be useful when comparing text that is -imperfectly imported from many personal computer operating systems. -This option affects how lines are read, which in turn affects how they -are compared and output. - -If you want to compare two files byte by byte, you can use the -@command{cmp} program with the @option{-l} option to show the values -of each differing byte in the two files. With @sc{gnu} @command{cmp}, -you can also use the @option{-b} option to show the @sc{ascii} -representation of those bytes. @xref{Invoking cmp}, for more -information. - -If @command{diff3} thinks that any of the files it is comparing is binary -(a non-text file), it normally reports an error, because such -comparisons are usually not useful. @command{diff3} uses the same test as -@command{diff} to decide whether a file is binary. As with @command{diff}, if -the input files contain a few non-text bytes but otherwise are like -text files, you can force @command{diff3} to consider all files to be text -files and compare them line by line by using the @option{-a} or -@option{--text} options. - -@node Output Formats -@chapter @command{diff} Output Formats -@cindex output formats -@cindex format of @command{diff} output - -@command{diff} has several mutually exclusive options for output format. -The following sections describe each format, illustrating how -@command{diff} reports the differences between two sample input files. - -@menu -* Sample diff Input:: Sample @command{diff} input files for examples. -* Normal:: Showing differences without surrounding text. -* Context:: Showing differences with the surrounding text. -* Side by Side:: Showing differences in two columns. -* Scripts:: Generating scripts for other programs. -* If-then-else:: Merging files with if-then-else. -@end menu - -@node Sample diff Input -@section Two Sample Input Files -@cindex @command{diff} sample input -@cindex sample input for @command{diff} - -Here are two sample files that we will use in numerous examples to -illustrate the output of @command{diff} and how various options can change -it. - -This is the file @file{lao}: - -@example -The Way that can be told of is not the eternal Way; -The name that can be named is not the eternal name. -The Nameless is the origin of Heaven and Earth; -The Named is the mother of all things. -Therefore let there always be non-being, - so we may see their subtlety, -And let there always be being, - so we may see their outcome. -The two are the same, -But after they are produced, - they have different names. -@end example - -This is the file @file{tzu}: - -@example -The Nameless is the origin of Heaven and Earth; -The named is the mother of all things. - -Therefore let there always be non-being, - so we may see their subtlety, -And let there always be being, - so we may see their outcome. -The two are the same, -But after they are produced, - they have different names. -They both may be called deep and profound. -Deeper and more profound, -The door of all subtleties! -@end example - -In this example, the first hunk contains just the first two lines of -@file{lao}, the second hunk contains the fourth line of @file{lao} -opposing the second and third lines of @file{tzu}, and the last hunk -contains just the last three lines of @file{tzu}. - -@node Normal -@section Showing Differences Without Context -@cindex normal output format -@cindex @samp{<} output format - -The ``normal'' @command{diff} output format shows each hunk of differences -without any surrounding context. Sometimes such output is the clearest -way to see how lines have changed, without the clutter of nearby -unchanged lines (although you can get similar results with the context -or unified formats by using 0 lines of context). However, this format -is no longer widely used for sending out patches; for that purpose, the -context format (@pxref{Context Format}) and the unified format -(@pxref{Unified Format}) are superior. Normal format is the default for -compatibility with older versions of @command{diff} and the @sc{posix} -standard. Use the @option{--normal} option to select this output -format explicitly. - -@menu -* Detailed Normal:: A detailed description of normal output format. -* Example Normal:: Sample output in the normal format. -@end menu - -@node Detailed Normal -@subsection Detailed Description of Normal Format - -The normal output format consists of one or more hunks of differences; -each hunk shows one area where the files differ. Normal format hunks -look like this: - -@example -@var{change-command} -< @var{from-file-line} -< @var{from-file-line}@dots{} ---- -> @var{to-file-line} -> @var{to-file-line}@dots{} -@end example - -There are three types of change commands. Each consists of a line -number or comma-separated range of lines in the first file, a single -character indicating the kind of change to make, and a line number or -comma-separated range of lines in the second file. All line numbers are -the original line numbers in each file. The types of change commands -are: - -@table @samp -@item @var{l}a@var{r} -Add the lines in range @var{r} of the second file after line @var{l} of -the first file. For example, @samp{8a12,15} means append lines 12--15 -of file 2 after line 8 of file 1; or, if changing file 2 into file 1, -delete lines 12--15 of file 2. - -@item @var{f}c@var{t} -Replace the lines in range @var{f} of the first file with lines in range -@var{t} of the second file. This is like a combined add and delete, but -more compact. For example, @samp{5,7c8,10} means change lines 5--7 of -file 1 to read as lines 8--10 of file 2; or, if changing file 2 into -file 1, change lines 8--10 of file 2 to read as lines 5--7 of file 1. - -@item @var{r}d@var{l} -Delete the lines in range @var{r} from the first file; line @var{l} is where -they would have appeared in the second file had they not been deleted. -For example, @samp{5,7d3} means delete lines 5--7 of file 1; or, if -changing file 2 into file 1, append lines 5--7 of file 1 after line 3 of -file 2. -@end table - -@node Example Normal -@subsection An Example of Normal Format - -Here is the output of the command @samp{diff lao tzu} -(@pxref{Sample diff Input}, for the complete contents of the two files). -Notice that it shows only the lines that are different between the two -files. - -@example -1,2d0 -< The Way that can be told of is not the eternal Way; -< The name that can be named is not the eternal name. -4c2,3 -< The Named is the mother of all things. ---- -> The named is the mother of all things. -> -11a11,13 -> They both may be called deep and profound. -> Deeper and more profound, -> The door of all subtleties! -@end example - -@node Context -@section Showing Differences in Their Context -@cindex context output format -@cindex @samp{!} output format - -Usually, when you are looking at the differences between files, you will -also want to see the parts of the files near the lines that differ, to -help you understand exactly what has changed. These nearby parts of the -files are called the @dfn{context}. - -@sc{gnu} @command{diff} provides two output formats that show context -around the differing lines: @dfn{context format} and @dfn{unified -format}. It can optionally show in which function or section of the -file the differing lines are found. - -If you are distributing new versions of files to other people in the -form of @command{diff} output, you should use one of the output formats -that show context so that they can apply the diffs even if they have -made small changes of their own to the files. @command{patch} can apply -the diffs in this case by searching in the files for the lines of -context around the differing lines; if those lines are actually a few -lines away from where the diff says they are, @command{patch} can adjust -the line numbers accordingly and still apply the diff correctly. -@xref{Imperfect}, for more information on using @command{patch} to apply -imperfect diffs. - -@menu -* Context Format:: An output format that shows surrounding lines. -* Unified Format:: A more compact output format that shows context. -* Sections:: Showing which sections of the files differences are in. -* Alternate Names:: Showing alternate file names in context headers. -@end menu - -@node Context Format -@subsection Context Format - -The context output format shows several lines of context around the -lines that differ. It is the standard format for distributing updates -to source code. - -To select this output format, use the @option{-C @var{lines}}, -@option{--context@r{[}=@var{lines}@r{]}}, or @option{-c} option. The -argument @var{lines} that some of these options take is the number of -lines of context to show. If you do not specify @var{lines}, it -defaults to three. For proper operation, @command{patch} typically needs -at least two lines of context. - -@menu -* Detailed Context:: A detailed description of the context output format. -* Example Context:: Sample output in context format. -* Less Context:: Another sample with less context. -@end menu - -@node Detailed Context -@subsubsection Detailed Description of Context Format - -The context output format starts with a two-line header, which looks -like this: - -@example -*** @var{from-file} @var{from-file-modification-time} ---- @var{to-file} @var{to-file-modification time} -@end example - -@noindent -@vindex LC_TIME -@cindex time stamp format, context diffs -The time stamp normally looks like @samp{2002-02-21 23:30:39.942229878 --0800} to indicate the date, time with fractional seconds, and time -zone in @uref{ftp://ftp.isi.edu/in-notes/rfc2822.txt, Internet RFC -2822 format}. However, a traditional time stamp like @samp{Thu Feb 21 -23:30:39 2002} is used if the @env{LC_TIME} locale category is either -@samp{C} or @samp{POSIX}. - -You can change the header's content with the -@option{--label=@var{label}} option; see @ref{Alternate Names}. - -Next come one or more hunks of differences; each hunk shows one area -where the files differ. Context format hunks look like this: - -@example -*************** -*** @var{from-file-line-range} **** - @var{from-file-line} - @var{from-file-line}@dots{} ---- @var{to-file-line-range} ---- - @var{to-file-line} - @var{to-file-line}@dots{} -@end example - -The lines of context around the lines that differ start with two space -characters. The lines that differ between the two files start with one -of the following indicator characters, followed by a space character: - -@table @samp -@item ! -A line that is part of a group of one or more lines that changed between -the two files. There is a corresponding group of lines marked with -@samp{!} in the part of this hunk for the other file. - -@item + -An ``inserted'' line in the second file that corresponds to nothing in -the first file. - -@item - -A ``deleted'' line in the first file that corresponds to nothing in the -second file. -@end table - -If all of the changes in a hunk are insertions, the lines of -@var{from-file} are omitted. If all of the changes are deletions, the -lines of @var{to-file} are omitted. - -@node Example Context -@subsubsection An Example of Context Format - -Here is the output of @samp{diff -c lao tzu} (@pxref{Sample diff Input}, -for the complete contents of the two files). Notice that up to three -lines that are not different are shown around each line that is -different; they are the context lines. Also notice that the first two -hunks have run together, because their contents overlap. - -@example -*** lao 2002-02-21 23:30:39.942229878 -0800 ---- tzu 2002-02-21 23:30:50.442260588 -0800 -*************** -*** 1,7 **** -- The Way that can be told of is not the eternal Way; -- The name that can be named is not the eternal name. - The Nameless is the origin of Heaven and Earth; -! The Named is the mother of all things. - Therefore let there always be non-being, - so we may see their subtlety, - And let there always be being, ---- 1,6 ---- - The Nameless is the origin of Heaven and Earth; -! The named is the mother of all things. -! - Therefore let there always be non-being, - so we may see their subtlety, - And let there always be being, -*************** -*** 9,11 **** ---- 8,13 ---- - The two are the same, - But after they are produced, - they have different names. -+ They both may be called deep and profound. -+ Deeper and more profound, -+ The door of all subtleties! -@end example - -@node Less Context -@subsubsection An Example of Context Format with Less Context - -Here is the output of @samp{diff -C 1 lao tzu} (@pxref{Sample diff -Input}, for the complete contents of the two files). Notice that at -most one context line is reported here. - -@example -*** lao 2002-02-21 23:30:39.942229878 -0800 ---- tzu 2002-02-21 23:30:50.442260588 -0800 -*************** -*** 1,5 **** -- The Way that can be told of is not the eternal Way; -- The name that can be named is not the eternal name. - The Nameless is the origin of Heaven and Earth; -! The Named is the mother of all things. - Therefore let there always be non-being, ---- 1,4 ---- - The Nameless is the origin of Heaven and Earth; -! The named is the mother of all things. -! - Therefore let there always be non-being, -*************** -*** 11 **** ---- 10,13 ---- - they have different names. -+ They both may be called deep and profound. -+ Deeper and more profound, -+ The door of all subtleties! -@end example - -@node Unified Format -@subsection Unified Format -@cindex unified output format -@cindex @samp{+-} output format - -The unified output format is a variation on the context format that is -more compact because it omits redundant context lines. To select this -output format, use the @option{-U @var{lines}}, -@option{--unified@r{[}=@var{lines}@r{]}}, or @option{-u} -option. The argument @var{lines} is the number of lines of context to -show. When it is not given, it defaults to three. - -At present, only @sc{gnu} @command{diff} can produce this format and -only @sc{gnu} @command{patch} can automatically apply diffs in this -format. For proper operation, @command{patch} typically needs at -least three lines of context. - -@menu -* Detailed Unified:: A detailed description of unified format. -* Example Unified:: Sample output in unified format. -@end menu - -@node Detailed Unified -@subsubsection Detailed Description of Unified Format - -The unified output format starts with a two-line header, which looks -like this: - -@example ---- @var{from-file} @var{from-file-modification-time} -+++ @var{to-file} @var{to-file-modification-time} -@end example - -@noindent -@cindex time stamp format, unified diffs -The time stamp looks like @samp{2002-02-21 23:30:39.942229878 -0800} -to indicate the date, time with fractional seconds, and time zone. - -You can change the header's content with the -@option{--label=@var{label}} option; see @xref{Alternate Names}. - -Next come one or more hunks of differences; each hunk shows one area -where the files differ. Unified format hunks look like this: - -@example -@@@@ @var{from-file-range} @var{to-file-range} @@@@ - @var{line-from-either-file} - @var{line-from-either-file}@dots{} -@end example - -The lines common to both files begin with a space character. The lines -that actually differ between the two files have one of the following -indicator characters in the left print column: - -@table @samp -@item + -A line was added here to the first file. - -@item - -A line was removed here from the first file. -@end table - -@node Example Unified -@subsubsection An Example of Unified Format - -Here is the output of the command @samp{diff -u lao tzu} -(@pxref{Sample diff Input}, for the complete contents of the two files): - -@example ---- lao 2002-02-21 23:30:39.942229878 -0800 -+++ tzu 2002-02-21 23:30:50.442260588 -0800 -@@@@ -1,7 +1,6 @@@@ --The Way that can be told of is not the eternal Way; --The name that can be named is not the eternal name. - The Nameless is the origin of Heaven and Earth; --The Named is the mother of all things. -+The named is the mother of all things. -+ - Therefore let there always be non-being, - so we may see their subtlety, - And let there always be being, -@@@@ -9,3 +8,6 @@@@ - The two are the same, - But after they are produced, - they have different names. -+They both may be called deep and profound. -+Deeper and more profound, -+The door of all subtleties! -@end example - -@node Sections -@subsection Showing Which Sections Differences Are in -@cindex headings -@cindex section headings - -Sometimes you might want to know which part of the files each change -falls in. If the files are source code, this could mean which function -was changed. If the files are documents, it could mean which chapter or -appendix was changed. @sc{gnu} @command{diff} can show this by displaying the -nearest section heading line that precedes the differing lines. Which -lines are ``section headings'' is determined by a regular expression. - -@menu -* Specified Headings:: Showing headings that match regular expressions. -* C Function Headings:: Showing headings of C functions. -@end menu - -@node Specified Headings -@subsubsection Showing Lines That Match Regular Expressions -@cindex specified headings -@cindex regular expression matching headings - -To show in which sections differences occur for files that are not -source code for C or similar languages, use the @option{-F @var{regexp}} -or @option{--show-function-line=@var{regexp}} option. @command{diff} -considers lines that match the @command{grep}-style regular expression -@var{regexp} to be the beginning -of a section of the file. Here are suggested regular expressions for -some common languages: - -@c Please add to this list, e.g. Fortran, Pascal, Perl, Python. -@table @samp -@item ^[[:alpha:]$_] -C, C++, Prolog -@item ^( -Lisp -@item ^@@node -Texinfo -@end table - -This option does not automatically select an output format; in order to -use it, you must select the context format (@pxref{Context Format}) or -unified format (@pxref{Unified Format}). In other output formats it -has no effect. - -The @option{-F} and @option{--show-function-line} options find the nearest -unchanged line that precedes each hunk of differences and matches the -given regular expression. Then they add that line to the end of the -line of asterisks in the context format, or to the @samp{@@@@} line in -unified format. If no matching line exists, they leave the output for -that hunk unchanged. If that line is more than 40 characters long, they -output only the first 40 characters. You can specify more than one -regular expression for such lines; @command{diff} tries to match each line -against each regular expression, starting with the last one given. This -means that you can use @option{-p} and @option{-F} together, if you wish. - -@node C Function Headings -@subsubsection Showing C Function Headings -@cindex C function headings -@cindex function headings, C - -To show in which functions differences occur for C and similar -languages, you can use the @option{-p} or @option{--show-c-function} option. -This option automatically defaults to the context output format -(@pxref{Context Format}), with the default number of lines of context. -You can override that number with @option{-C @var{lines}} elsewhere in the -command line. You can override both the format and the number with -@option{-U @var{lines}} elsewhere in the command line. - -The @option{-p} and @option{--show-c-function} options are equivalent to -@option{-F '^[[:alpha:]$_]'} if the unified format is specified, otherwise -@option{-c -F '^[[:alpha:]$_]'} (@pxref{Specified Headings}). @sc{gnu} -@command{diff} provides them for the sake of convenience. - -@node Alternate Names -@subsection Showing Alternate File Names -@cindex alternate file names -@cindex file name alternates - -If you are comparing two files that have meaningless or uninformative -names, you might want @command{diff} to show alternate names in the header -of the context and unified output formats. To do this, use the -@option{--label=@var{label}} option. The first time -you give this option, its argument replaces the name and date of the -first file in the header; the second time, its argument replaces the -name and date of the second file. If you give this option more than -twice, @command{diff} reports an error. The @option{--label} option does not -affect the file names in the @command{pr} header when the @option{-l} or -@option{--paginate} option is used (@pxref{Pagination}). - -Here are the first two lines of the output from @samp{diff -C 2 ---label=original --label=modified lao tzu}: - -@example -*** original ---- modified -@end example - -@node Side by Side -@section Showing Differences Side by Side -@cindex side by side -@cindex two-column output -@cindex columnar output - -@command{diff} can produce a side by side difference listing of two files. -The files are listed in two columns with a gutter between them. The -gutter contains one of the following markers: - -@table @asis -@item white space -The corresponding lines are in common. That is, either the lines are -identical, or the difference is ignored because of one of the -@option{--ignore} options (@pxref{White Space}). - -@item @samp{|} -The corresponding lines differ, and they are either both complete -or both incomplete. - -@item @samp{<} -The files differ and only the first file contains the line. - -@item @samp{>} -The files differ and only the second file contains the line. - -@item @samp{(} -Only the first file contains the line, but the difference is ignored. - -@item @samp{)} -Only the second file contains the line, but the difference is ignored. - -@item @samp{\} -The corresponding lines differ, and only the first line is incomplete. - -@item @samp{/} -The corresponding lines differ, and only the second line is incomplete. -@end table - -Normally, an output line is incomplete if and only if the lines that it -contains are incomplete; @xref{Incomplete Lines}. However, when an -output line represents two differing lines, one might be incomplete -while the other is not. In this case, the output line is complete, -but its the gutter is marked @samp{\} if the first line is incomplete, -@samp{/} if the second line is. - -Side by side format is sometimes easiest to read, but it has limitations. -It generates much wider output than usual, and truncates lines that are -too long to fit. Also, it relies on lining up output more heavily than -usual, so its output looks particularly bad if you use varying -width fonts, nonstandard tab stops, or nonprinting characters. - -You can use the @command{sdiff} command to interactively merge side by side -differences. @xref{Interactive Merging}, for more information on merging files. - -@menu -* Side by Side Format:: Controlling side by side output format. -* Example Side by Side:: Sample side by side output. -@end menu - -@node Side by Side Format -@subsection Controlling Side by Side Format -@cindex side by side format - -The @option{-y} or @option{--side-by-side} option selects side by side -format. Because side by side output lines contain two input lines, the -output is wider than usual: normally 130 print columns, which can fit -onto a traditional printer line. You can set the width of the output -with the @option{-W @var{columns}} or @option{--width=@var{columns}} -option. The output is split into two halves of equal width, separated by a -small gutter to mark differences; the right half is aligned to a tab -stop so that tabs line up. Input lines that are too long to fit in half -of an output line are truncated for output. - -The @option{--left-column} option prints only the left column of two -common lines. The @option{--suppress-common-lines} option suppresses -common lines entirely. - -@node Example Side by Side -@subsection An Example of Side by Side Format - -Here is the output of the command @samp{diff -y -W 72 lao tzu} -(@pxref{Sample diff Input}, for the complete contents of the two files). - -@example -The Way that can be told of is n < -The name that can be named is no < -The Nameless is the origin of He The Nameless is the origin of He -The Named is the mother of all t | The named is the mother of all t - > -Therefore let there always be no Therefore let there always be no - so we may see their subtlety, so we may see their subtlety, -And let there always be being, And let there always be being, - so we may see their outcome. so we may see their outcome. -The two are the same, The two are the same, -But after they are produced, But after they are produced, - they have different names. they have different names. - > They both may be called deep and - > Deeper and more profound, - > The door of all subtleties! -@end example - -@node Scripts -@section Making Edit Scripts -@cindex script output formats - -Several output modes produce command scripts for editing @var{from-file} -to produce @var{to-file}. - -@menu -* ed Scripts:: Using @command{diff} to produce commands for @command{ed}. -* Forward ed:: Making forward @command{ed} scripts. -* RCS:: A special @command{diff} output format used by @sc{rcs}. -@end menu - -@node ed Scripts -@subsection @command{ed} Scripts -@cindex @command{ed} script output format - -@command{diff} can produce commands that direct the @command{ed} text editor -to change the first file into the second file. Long ago, this was the -only output mode that was suitable for editing one file into another -automatically; today, with @command{patch}, it is almost obsolete. Use the -@option{-e} or @option{--ed} option to select this output format. - -Like the normal format (@pxref{Normal}), this output format does not -show any context; unlike the normal format, it does not include the -information necessary to apply the diff in reverse (to produce the first -file if all you have is the second file and the diff). - -If the file @file{d} contains the output of @samp{diff -e old new}, then -the command @samp{(cat d && echo w) | ed - old} edits @file{old} to make -it a copy of @file{new}. More generally, if @file{d1}, @file{d2}, -@dots{}, @file{dN} contain the outputs of @samp{diff -e old new1}, -@samp{diff -e new1 new2}, @dots{}, @samp{diff -e newN-1 newN}, -respectively, then the command @samp{(cat d1 d2 @dots{} dN && echo w) | -ed - old} edits @file{old} to make it a copy of @file{newN}. - -@menu -* Detailed ed:: A detailed description of @command{ed} format. -* Example ed:: A sample @command{ed} script. -@end menu - -@node Detailed ed -@subsubsection Detailed Description of @command{ed} Format - -The @command{ed} output format consists of one or more hunks of -differences. The changes closest to the ends of the files come first so -that commands that change the number of lines do not affect how -@command{ed} interprets line numbers in succeeding commands. @command{ed} -format hunks look like this: - -@example -@var{change-command} -@var{to-file-line} -@var{to-file-line}@dots{} -. -@end example - -Because @command{ed} uses a single period on a line to indicate the end of -input, @sc{gnu} @command{diff} protects lines of changes that contain a single -period on a line by writing two periods instead, then writing a -subsequent @command{ed} command to change the two periods into one. The -@command{ed} format cannot represent an incomplete line, so if the second -file ends in a changed incomplete line, @command{diff} reports an error and -then pretends that a newline was appended. - -There are three types of change commands. Each consists of a line -number or comma-separated range of lines in the first file and a single -character indicating the kind of change to make. All line numbers are -the original line numbers in the file. The types of change commands -are: - -@table @samp -@item @var{l}a -Add text from the second file after line @var{l} in the first file. For -example, @samp{8a} means to add the following lines after line 8 of file -1. - -@item @var{r}c -Replace the lines in range @var{r} in the first file with the following -lines. Like a combined add and delete, but more compact. For example, -@samp{5,7c} means change lines 5--7 of file 1 to read as the text file -2. - -@item @var{r}d -Delete the lines in range @var{r} from the first file. For example, -@samp{5,7d} means delete lines 5--7 of file 1. -@end table - -@node Example ed -@subsubsection Example @command{ed} Script - -Here is the output of @samp{diff -e lao tzu} (@pxref{Sample -diff Input}, for the complete contents of the two files): - -@example -11a -They both may be called deep and profound. -Deeper and more profound, -The door of all subtleties! -. -4c -The named is the mother of all things. - -. -1,2d -@end example - -@node Forward ed -@subsection Forward @command{ed} Scripts -@cindex forward @command{ed} script output format - -@command{diff} can produce output that is like an @command{ed} script, but -with hunks in forward (front to back) order. The format of the commands -is also changed slightly: command characters precede the lines they -modify, spaces separate line numbers in ranges, and no attempt is made -to disambiguate hunk lines consisting of a single period. Like -@command{ed} format, forward @command{ed} format cannot represent incomplete -lines. - -Forward @command{ed} format is not very useful, because neither @command{ed} -nor @command{patch} can apply diffs in this format. It exists mainly for -compatibility with older versions of @command{diff}. Use the @option{-f} or -@option{--forward-ed} option to select it. - -@node RCS -@subsection @sc{rcs} Scripts -@cindex @sc{rcs} script output format - -The @sc{rcs} output format is designed specifically for use by the Revision -Control System, which is a set of free programs used for organizing -different versions and systems of files. Use the @option{-n} or -@option{--rcs} option to select this output format. It is like the -forward @command{ed} format (@pxref{Forward ed}), but it can represent -arbitrary changes to the contents of a file because it avoids the -forward @command{ed} format's problems with lines consisting of a single -period and with incomplete lines. Instead of ending text sections with -a line consisting of a single period, each command specifies the number -of lines it affects; a combination of the @samp{a} and @samp{d} -commands are used instead of @samp{c}. Also, if the second file ends -in a changed incomplete line, then the output also ends in an -incomplete line. - -Here is the output of @samp{diff -n lao tzu} (@pxref{Sample -diff Input}, for the complete contents of the two files): - -@example -d1 2 -d4 1 -a4 2 -The named is the mother of all things. - -a11 3 -They both may be called deep and profound. -Deeper and more profound, -The door of all subtleties! -@end example - -@node If-then-else -@section Merging Files with If-then-else -@cindex merged output format -@cindex if-then-else output format -@cindex C if-then-else output format -@cindex @command{ifdef} output format - -You can use @command{diff} to merge two files of C source code. The output -of @command{diff} in this format contains all the lines of both files. -Lines common to both files are output just once; the differing parts are -separated by the C preprocessor directives @code{#ifdef @var{name}} or -@code{#ifndef @var{name}}, @code{#else}, and @code{#endif}. When -compiling the output, you select which version to use by either defining -or leaving undefined the macro @var{name}. - -To merge two files, use @command{diff} with the @option{-D @var{name}} or -@option{--ifdef=@var{name}} option. The argument @var{name} is the C -preprocessor identifier to use in the @code{#ifdef} and @code{#ifndef} -directives. - -For example, if you change an instance of @code{wait (&s)} to -@code{waitpid (-1, &s, 0)} and then merge the old and new files with -the @option{--ifdef=HAVE_WAITPID} option, then the affected part of your code -might look like this: - -@example - do @{ -#ifndef HAVE_WAITPID - if ((w = wait (&s)) < 0 && errno != EINTR) -#else /* HAVE_WAITPID */ - if ((w = waitpid (-1, &s, 0)) < 0 && errno != EINTR) -#endif /* HAVE_WAITPID */ - return w; - @} while (w != child); -@end example - -You can specify formats for languages other than C by using line group -formats and line formats, as described in the next sections. - -@menu -* Line Group Formats:: Formats for general if-then-else line groups. -* Line Formats:: Formats for each line in a line group. -* Detailed If-then-else:: A detailed description of if-then-else format. -* Example If-then-else:: Sample if-then-else format output. -@end menu - -@node Line Group Formats -@subsection Line Group Formats -@cindex line group formats -@cindex formats for if-then-else line groups - -Line group formats let you specify formats suitable for many -applications that allow if-then-else input, including programming -languages and text formatting languages. A line group format specifies -the output format for a contiguous group of similar lines. - -For example, the following command compares the TeX files @file{old} -and @file{new}, and outputs a merged file in which old regions are -surrounded by @samp{\begin@{em@}}-@samp{\end@{em@}} lines, and new -regions are surrounded by @samp{\begin@{bf@}}-@samp{\end@{bf@}} lines. - -@example -diff \ - --old-group-format='\begin@{em@} -%<\end@{em@} -' \ - --new-group-format='\begin@{bf@} -%>\end@{bf@} -' \ - old new -@end example - -The following command is equivalent to the above example, but it is a -little more verbose, because it spells out the default line group formats. - -@example -diff \ - --old-group-format='\begin@{em@} -%<\end@{em@} -' \ - --new-group-format='\begin@{bf@} -%>\end@{bf@} -' \ - --unchanged-group-format='%=' \ - --changed-group-format='\begin@{em@} -%<\end@{em@} -\begin@{bf@} -%>\end@{bf@} -' \ - old new -@end example - -Here is a more advanced example, which outputs a diff listing with -headers containing line numbers in a ``plain English'' style. - -@example -diff \ - --unchanged-group-format='' \ - --old-group-format='-------- %dn line%(n=1?:s) deleted at %df: -%<' \ - --new-group-format='-------- %dN line%(N=1?:s) added after %de: -%>' \ - --changed-group-format='-------- %dn line%(n=1?:s) changed at %df: -%<-------- to: -%>' \ - old new -@end example - -To specify a line group format, use @command{diff} with one of the options -listed below. You can specify up to four line group formats, one for -each kind of line group. You should quote @var{format}, because it -typically contains shell metacharacters. - -@table @option -@item --old-group-format=@var{format} -These line groups are hunks containing only lines from the first file. -The default old group format is the same as the changed group format if -it is specified; otherwise it is a format that outputs the line group as-is. - -@item --new-group-format=@var{format} -These line groups are hunks containing only lines from the second -file. The default new group format is same as the changed group -format if it is specified; otherwise it is a format that outputs the -line group as-is. - -@item --changed-group-format=@var{format} -These line groups are hunks containing lines from both files. The -default changed group format is the concatenation of the old and new -group formats. - -@item --unchanged-group-format=@var{format} -These line groups contain lines common to both files. The default -unchanged group format is a format that outputs the line group as-is. -@end table - -In a line group format, ordinary characters represent themselves; -conversion specifications start with @samp{%} and have one of the -following forms. - -@table @samp -@item %< -stands for the lines from the first file, including the trailing newline. -Each line is formatted according to the old line format (@pxref{Line Formats}). - -@item %> -stands for the lines from the second file, including the trailing newline. -Each line is formatted according to the new line format. - -@item %= -stands for the lines common to both files, including the trailing newline. -Each line is formatted according to the unchanged line format. - -@item %% -stands for @samp{%}. - -@item %c'@var{C}' -where @var{C} is a single character, stands for @var{C}. -@var{C} may not be a backslash or an apostrophe. -For example, @samp{%c':'} stands for a colon, even inside -the then-part of an if-then-else format, which a colon would -normally terminate. - -@item %c'\@var{O}' -where @var{O} is a string of 1, 2, or 3 octal digits, -stands for the character with octal code @var{O}. -For example, @samp{%c'\0'} stands for a null character. - -@item @var{F}@var{n} -where @var{F} is a @code{printf} conversion specification and @var{n} is one -of the following letters, stands for @var{n}'s value formatted with @var{F}. - -@table @samp -@item e -The line number of the line just before the group in the old file. - -@item f -The line number of the first line in the group in the old file; -equals @var{e} + 1. - -@item l -The line number of the last line in the group in the old file. - -@item m -The line number of the line just after the group in the old file; -equals @var{l} + 1. - -@item n -The number of lines in the group in the old file; equals @var{l} - @var{f} + 1. - -@item E, F, L, M, N -Likewise, for lines in the new file. - -@end table - -@vindex LC_NUMERIC -The @code{printf} conversion specification can be @samp{%d}, -@samp{%o}, @samp{%x}, or @samp{%X}, specifying decimal, octal, -lower case hexadecimal, or upper case hexadecimal output -respectively. After the @samp{%} the following options can appear in -sequence: a series of zero or more flags; an integer -specifying the minimum field width; and a period followed by an -optional integer specifying the minimum number of digits. -The flags are @samp{-} for left-justification, @samp{'} for separating -the digit into groups as specified by the @env{LC_NUMERIC} locale category, -and @samp{0} for padding with zeros instead of spaces. -For example, @samp{%5dN} prints the number of new lines in the group -in a field of width 5 characters, using the @code{printf} format @code{"%5d"}. - -@item (@var{A}=@var{B}?@var{T}:@var{E}) -If @var{A} equals @var{B} then @var{T} else @var{E}. -@var{A} and @var{B} are each either a decimal constant -or a single letter interpreted as above. -This format spec is equivalent to @var{T} if -@var{A}'s value equals @var{B}'s; otherwise it is equivalent to @var{E}. - -For example, @samp{%(N=0?no:%dN) line%(N=1?:s)} is equivalent to -@samp{no lines} if @var{N} (the number of lines in the group in the the -new file) is 0, to @samp{1 line} if @var{N} is 1, and to @samp{%dN lines} -otherwise. -@end table - -@node Line Formats -@subsection Line Formats -@cindex line formats - -Line formats control how each line taken from an input file is -output as part of a line group in if-then-else format. - -For example, the following command outputs text with a one-character -change indicator to the left of the text. The first character of output -is @samp{-} for deleted lines, @samp{|} for added lines, and a space for -unchanged lines. The formats contain newline characters where newlines -are desired on output. - -@example -diff \ - --old-line-format='-%l -' \ - --new-line-format='|%l -' \ - --unchanged-line-format=' %l -' \ - old new -@end example - -To specify a line format, use one of the following options. You should -quote @var{format}, since it often contains shell metacharacters. - -@table @option -@item --old-line-format=@var{format} -formats lines just from the first file. - -@item --new-line-format=@var{format} -formats lines just from the second file. - -@item --unchanged-line-format=@var{format} -formats lines common to both files. - -@item --line-format=@var{format} -formats all lines; in effect, it sets all three above options simultaneously. -@end table - -In a line format, ordinary characters represent themselves; -conversion specifications start with @samp{%} and have one of the -following forms. - -@table @samp -@item %l -stands for the contents of the line, not counting its trailing -newline (if any). This format ignores whether the line is incomplete; -@xref{Incomplete Lines}. - -@item %L -stands for the contents of the line, including its trailing newline -(if any). If a line is incomplete, this format preserves its -incompleteness. - -@item %% -stands for @samp{%}. - -@item %c'@var{C}' -where @var{C} is a single character, stands for @var{C}. -@var{C} may not be a backslash or an apostrophe. -For example, @samp{%c':'} stands for a colon. - -@item %c'\@var{O}' -where @var{O} is a string of 1, 2, or 3 octal digits, -stands for the character with octal code @var{O}. -For example, @samp{%c'\0'} stands for a null character. - -@item @var{F}n -where @var{F} is a @code{printf} conversion specification, -stands for the line number formatted with @var{F}. -For example, @samp{%.5dn} prints the line number using the -@code{printf} format @code{"%.5d"}. @xref{Line Group Formats}, for -more about printf conversion specifications. - -@end table - -The default line format is @samp{%l} followed by a newline character. - -If the input contains tab characters and it is important that they line -up on output, you should ensure that @samp{%l} or @samp{%L} in a line -format is just after a tab stop (e.g.@: by preceding @samp{%l} or -@samp{%L} with a tab character), or you should use the @option{-t} or -@option{--expand-tabs} option. - -Taken together, the line and line group formats let you specify many -different formats. For example, the following command uses a format -similar to normal @command{diff} format. You can tailor this command -to get fine control over @command{diff} output. - -@example -diff \ - --old-line-format='< %l -' \ - --new-line-format='> %l -' \ - --old-group-format='%df%(f=l?:,%dl)d%dE -%<' \ - --new-group-format='%dea%dF%(F=L?:,%dL) -%>' \ - --changed-group-format='%df%(f=l?:,%dl)c%dF%(F=L?:,%dL) -%<--- -%>' \ - --unchanged-group-format='' \ - old new -@end example - -@node Detailed If-then-else -@subsection Detailed Description of If-then-else Format - -For lines common to both files, @command{diff} uses the unchanged line -group format. For each hunk of differences in the merged output -format, if the hunk contains only lines from the first file, -@command{diff} uses the old line group format; if the hunk contains only -lines from the second file, @command{diff} uses the new group format; -otherwise, @command{diff} uses the changed group format. - -The old, new, and unchanged line formats specify the output format of -lines from the first file, lines from the second file, and lines common -to both files, respectively. - -The option @option{--ifdef=@var{name}} is equivalent to -the following sequence of options using shell syntax: - -@example ---old-group-format='#ifndef @var{name} -%<#endif /* ! @var{name} */ -' \ ---new-group-format='#ifdef @var{name} -%>#endif /* @var{name} */ -' \ ---unchanged-group-format='%=' \ ---changed-group-format='#ifndef @var{name} -%<#else /* @var{name} */ -%>#endif /* @var{name} */ -' -@end example - -You should carefully check the @command{diff} output for proper nesting. -For example, when using the @option{-D @var{name}} or -@option{--ifdef=@var{name}} option, you should check that if the -differing lines contain any of the C preprocessor directives -@samp{#ifdef}, @samp{#ifndef}, @samp{#else}, @samp{#elif}, or -@samp{#endif}, they are nested properly and match. If they don't, you -must make corrections manually. It is a good idea to carefully check -the resulting code anyway to make sure that it really does what you -want it to; depending on how the input files were produced, the output -might contain duplicate or otherwise incorrect code. - -The @command{patch} @option{-D @var{name}} option behaves like -the @command{diff} @option{-D @var{name}} option, except it operates on -a file and a diff to produce a merged file; @xref{patch Options}. - -@node Example If-then-else -@subsection An Example of If-then-else Format - -Here is the output of @samp{diff -DTWO lao tzu} (@pxref{Sample -diff Input}, for the complete contents of the two files): - -@example -#ifndef TWO -The Way that can be told of is not the eternal Way; -The name that can be named is not the eternal name. -#endif /* ! TWO */ -The Nameless is the origin of Heaven and Earth; -#ifndef TWO -The Named is the mother of all things. -#else /* TWO */ -The named is the mother of all things. - -#endif /* TWO */ -Therefore let there always be non-being, - so we may see their subtlety, -And let there always be being, - so we may see their outcome. -The two are the same, -But after they are produced, - they have different names. -#ifdef TWO -They both may be called deep and profound. -Deeper and more profound, -The door of all subtleties! -#endif /* TWO */ -@end example - -@node Incomplete Lines -@chapter Incomplete Lines -@cindex incomplete lines -@cindex full lines -@cindex newline treatment by @command{diff} - -When an input file ends in a non-newline character, its last line is -called an @dfn{incomplete line} because its last character is not a -newline. All other lines are called @dfn{full lines} and end in a -newline character. Incomplete lines do not match full lines unless -differences in white space are ignored (@pxref{White Space}). - -An incomplete line is normally distinguished on output from a full line -by a following line that starts with @samp{\}. However, the @sc{rcs} format -(@pxref{RCS}) outputs the incomplete line as-is, without any trailing -newline or following line. The side by side format normally represents -incomplete lines as-is, but in some cases uses a @samp{\} or @samp{/} -gutter marker; @xref{Side by Side}. The if-then-else line format -preserves a line's incompleteness with @samp{%L}, and discards the -newline with @samp{%l}; @xref{Line Formats}. Finally, with the -@command{ed} and forward @command{ed} output formats (@pxref{Output Formats}) -@command{diff} cannot represent an incomplete line, so it pretends there -was a newline and reports an error. - -For example, suppose @file{F} and @file{G} are one-byte files that -contain just @samp{f} and @samp{g}, respectively. Then @samp{diff F G} -outputs - -@example -1c1 -< f -\ No newline at end of file ---- -> g -\ No newline at end of file -@end example - -@noindent -(The exact message may differ in non-English locales.) -@samp{diff -n F G} outputs the following without a trailing newline: - -@example -d1 1 -a1 1 -g -@end example - -@noindent -@samp{diff -e F G} reports two errors and outputs the following: - -@example -1c -g -. -@end example - -@node Comparing Directories -@chapter Comparing Directories - -@vindex LC_COLLATE -You can use @command{diff} to compare some or all of the files in two -directory trees. When both file name arguments to @command{diff} are -directories, it compares each file that is contained in both -directories, examining file names in alphabetical order as specified by -the @env{LC_COLLATE} locale category. Normally -@command{diff} is silent about pairs of files that contain no differences, -but if you use the @option{-s} or @option{--report-identical-files} option, -it reports pairs of identical files. Normally @command{diff} reports -subdirectories common to both directories without comparing -subdirectories' files, but if you use the @option{-r} or -@option{--recursive} option, it compares every corresponding pair of files -in the directory trees, as many levels deep as they go. - -For file names that are in only one of the directories, @command{diff} -normally does not show the contents of the file that exists; it reports -only that the file exists in that directory and not in the other. You -can make @command{diff} act as though the file existed but was empty in the -other directory, so that it outputs the entire contents of the file that -actually exists. (It is output as either an insertion or a -deletion, depending on whether it is in the first or the second -directory given.) To do this, use the @option{-N} or @option{--new-file} -option. - -If the older directory contains one or more large files that are not in -the newer directory, you can make the patch smaller by using the -@option{--unidirectional-new-file} option instead of @option{-N}. -This option is like @option{-N} except that it only inserts the contents -of files that appear in the second directory but not the first (that is, -files that were added). At the top of the patch, write instructions for -the user applying the patch to remove the files that were deleted before -applying the patch. @xref{Making Patches}, for more discussion of -making patches for distribution. - -To ignore some files while comparing directories, use the @option{-x -@var{pattern}} or @option{--exclude=@var{pattern}} option. This option -ignores any files or subdirectories whose base names match the shell -pattern @var{pattern}. Unlike in the shell, a period at the start of -the base of a file name matches a wildcard at the start of a pattern. -You should enclose @var{pattern} in quotes so that the shell does not -expand it. For example, the option @option{-x '*.[ao]'} ignores any file -whose name ends with @samp{.a} or @samp{.o}. - -This option accumulates if you specify it more than once. For example, -using the options @option{-x 'RCS' -x '*,v'} ignores any file or -subdirectory whose base name is @samp{RCS} or ends with @samp{,v}. - -If you need to give this option many times, you can instead put the -patterns in a file, one pattern per line, and use the @option{-X -@var{file}} or @option{--exclude-from=@var{file}} option. - -If you have been comparing two directories and stopped partway through, -later you might want to continue where you left off. You can do this by -using the @option{-S @var{file}} or @option{--starting-file=@var{file}} -option. This compares only the file @var{file} and all alphabetically -later files in the topmost directory level. - -If two directories differ only in that file names are lower case in -one directory and upper case in the upper, @command{diff} normally -reports many differences because it compares file names in a -case sensitive way. With the @option{--ignore-file-name-case} option, -@command{diff} ignores case differences in file names, so that for example -the contents of the file @file{Tao} in one directory are compared to -the contents of the file @file{TAO} in the other. The -@option{--no-ignore-file-name-case} option cancels the effect of the -@option{--ignore-file-name-case} option, reverting to the default -behavior. - -If an @option{-x @var{pattern}}, @option{--exclude=@var{pattern}}, -@option{-X @var{file}}, or @option{--exclude-from=@var{file}} option -is specified while the @option{--ignore-file-name-case} option is in -effect, case is ignored when excluding file names matching the -specified patterns. - -@node Adjusting Output -@chapter Making @command{diff} Output Prettier - -@command{diff} provides several ways to adjust the appearance of its output. -These adjustments can be applied to any output format. - -@menu -* Tabs:: Preserving the alignment of tab stops. -* Pagination:: Page numbering and time-stamping @command{diff} output. -@end menu - -@node Tabs -@section Preserving Tab Stop Alignment -@cindex tab stop alignment -@cindex aligning tab stops - -The lines of text in some of the @command{diff} output formats are preceded -by one or two characters that indicate whether the text is inserted, -deleted, or changed. The addition of those characters can cause tabs to -move to the next tab stop, throwing off the alignment of columns in the -line. @sc{gnu} @command{diff} provides two ways to make tab-aligned columns -line up correctly. - -The first way is to have @command{diff} convert all tabs into the correct -number of spaces before outputting them; select this method with the -@option{-t} or @option{--expand-tabs} option. @command{diff} assumes that -tab stops are set every 8 print columns. To use this form of output with -@command{patch}, you must give @command{patch} the @option{-l} or -@option{--ignore-white-space} option (@pxref{Changed White Space}, for more -information). - -The other method for making tabs line up correctly is to add a tab -character instead of a space after the indicator character at the -beginning of the line. This ensures that all following tab characters -are in the same position relative to tab stops that they were in the -original files, so that the output is aligned correctly. Its -disadvantage is that it can make long lines too long to fit on one line -of the screen or the paper. It also does not work with the unified -output format, which does not have a space character after the change -type indicator character. Select this method with the @option{-T} or -@option{--initial-tab} option. - -@node Pagination -@section Paginating @command{diff} Output -@cindex paginating @command{diff} output - -It can be convenient to have long output page-numbered and time-stamped. -The @option{-l} and @option{--paginate} options do this by sending the -@command{diff} output through the @command{pr} program. Here is what the page -header might look like for @samp{diff -lc lao tzu}: - -@example -2002-02-22 14:20 diff -lc lao tzu Page 1 -@end example - -@node diff Performance -@chapter @command{diff} Performance Tradeoffs -@cindex performance of @command{diff} - -@sc{gnu} @command{diff} runs quite efficiently; however, in some circumstances -you can cause it to run faster or produce a more compact set of changes. - -One way to improve @command{diff} performance is to use hard or -symbolic links to files instead of copies. This improves performance -because @command{diff} normally does not need to read two hard or -symbolic links to the same file, since their contents must be -identical. For example, suppose you copy a large directory hierarchy, -make a few changes to the copy, and then often use @samp{diff -r} to -compare the original to the copy. If the original files are -read-only, you can greatly improve performance by creating the copy -using hard or symbolic links (e.g., with @sc{gnu} @samp{cp -lR} or -@samp{cp -sR}). Before editing a file in the copy for the first time, -you should break the link and replace it with a regular copy. - -You can also affect the performance of @sc{gnu} @command{diff} by -giving it options that change the way it compares files. -Performance has more than one dimension. These options improve one -aspect of performance at the cost of another, or they improve -performance in some cases while hurting it in others. - -The way that @sc{gnu} @command{diff} determines which lines have changed always -comes up with a near-minimal set of differences. Usually it is good -enough for practical purposes. If the @command{diff} output is large, you -might want @command{diff} to use a modified algorithm that sometimes -produces a smaller set of differences. The @option{-d} or -@option{--minimal} option does this; however, it can also cause -@command{diff} to run more slowly than usual, so it is not the default -behavior. - -When the files you are comparing are large and have small groups of -changes scattered throughout them, you can use the -@option{--speed-large-files} option to make a different modification to -the algorithm that @command{diff} uses. If the input files have a constant -small density of changes, this option speeds up the comparisons without -changing the output. If not, @command{diff} might produce a larger set of -differences; however, the output will still be correct. - -Normally @command{diff} discards the prefix and suffix that is common to -both files before it attempts to find a minimal set of differences. -This makes @command{diff} run faster, but occasionally it may produce -non-minimal output. The @option{--horizon-lines=@var{lines}} option -prevents @command{diff} from discarding the last @var{lines} lines of the -prefix and the first @var{lines} lines of the suffix. This gives -@command{diff} further opportunities to find a minimal output. - -Suppose a run of changed lines includes a sequence of lines at one end -and there is an identical sequence of lines just outside the other end. -The @command{diff} command is free to choose which identical sequence is -included in the hunk. In this case, @command{diff} normally shifts the -hunk's boundaries when this merges adjacent hunks, or shifts a hunk's -lines towards the end of the file. Merging hunks can make the output -look nicer in some cases. - -@node Comparing Three Files -@chapter Comparing Three Files -@cindex comparing three files -@cindex format of @command{diff3} output - -Use the program @command{diff3} to compare three files and show any -differences among them. (@command{diff3} can also merge files; see -@ref{diff3 Merging}). - -The ``normal'' @command{diff3} output format shows each hunk of -differences without surrounding context. Hunks are labeled depending -on whether they are two-way or three-way, and lines are annotated by -their location in the input files. - -@xref{Invoking diff3}, for more information on how to run @command{diff3}. - -@menu -* Sample diff3 Input:: Sample @command{diff3} input for examples. -* Detailed diff3 Normal:: A detailed description of normal output format. -* diff3 Hunks:: The format of normal output format. -* Example diff3 Normal:: Sample output in the normal format. -@end menu - -@node Sample diff3 Input -@section A Third Sample Input File -@cindex @command{diff3} sample input -@cindex sample input for @command{diff3} - -Here is a third sample file that will be used in examples to illustrate -the output of @command{diff3} and how various options can change it. The -first two files are the same that we used for @command{diff} (@pxref{Sample -diff Input}). This is the third sample file, called @file{tao}: - -@example -The Way that can be told of is not the eternal Way; -The name that can be named is not the eternal name. -The Nameless is the origin of Heaven and Earth; -The named is the mother of all things. - -Therefore let there always be non-being, - so we may see their subtlety, -And let there always be being, - so we may see their result. -The two are the same, -But after they are produced, - they have different names. - - -- The Way of Lao-Tzu, tr. Wing-tsit Chan -@end example - -@node Detailed diff3 Normal -@section Detailed Description of @command{diff3} Normal Format - -Each hunk begins with a line marked @samp{====}. Three-way hunks have -plain @samp{====} lines, and two-way hunks have @samp{1}, @samp{2}, or -@samp{3} appended to specify which of the three input files differ in -that hunk. The hunks contain copies of two or three sets of input -lines each preceded by one or two commands identifying where the lines -came from. - -Normally, two spaces precede each copy of an input line to distinguish -it from the commands. But with the @option{-T} or @option{--initial-tab} -option, @command{diff3} uses a tab instead of two spaces; this lines up -tabs correctly. @xref{Tabs}, for more information. - -Commands take the following forms: - -@table @samp -@item @var{file}:@var{l}a -This hunk appears after line @var{l} of file @var{file}, and -contains no lines in that file. To edit this file to yield the other -files, one must append hunk lines taken from the other files. For -example, @samp{1:11a} means that the hunk follows line 11 in the first -file and contains no lines from that file. - -@item @var{file}:@var{r}c -This hunk contains the lines in the range @var{r} of file @var{file}. -The range @var{r} is a comma-separated pair of line numbers, or just one -number if the range is a singleton. To edit this file to yield the -other files, one must change the specified lines to be the lines taken -from the other files. For example, @samp{2:11,13c} means that the hunk -contains lines 11 through 13 from the second file. -@end table - -If the last line in a set of input lines is incomplete -(@pxref{Incomplete Lines}), it is distinguished on output from a full -line by a following line that starts with @samp{\}. - -@node diff3 Hunks -@section @command{diff3} Hunks -@cindex hunks for @command{diff3} -@cindex @command{diff3} hunks - -Groups of lines that differ in two or three of the input files are -called @dfn{diff3 hunks}, by analogy with @command{diff} hunks -(@pxref{Hunks}). If all three input files differ in a @command{diff3} -hunk, the hunk is called a @dfn{three-way hunk}; if just two input files -differ, it is a @dfn{two-way hunk}. - -As with @command{diff}, several solutions are possible. When comparing the -files @samp{A}, @samp{B}, and @samp{C}, @command{diff3} normally finds -@command{diff3} hunks by merging the two-way hunks output by the two -commands @samp{diff A B} and @samp{diff A C}. This does not necessarily -minimize the size of the output, but exceptions should be rare. - -For example, suppose @file{F} contains the three lines @samp{a}, -@samp{b}, @samp{f}, @file{G} contains the lines @samp{g}, @samp{b}, -@samp{g}, and @file{H} contains the lines @samp{a}, @samp{b}, -@samp{h}. @samp{diff3 F G H} might output the following: - -@example -====2 -1:1c -3:1c - a -2:1c - g -==== -1:3c - f -2:3c - g -3:3c - h -@end example - -@noindent -because it found a two-way hunk containing @samp{a} in the first and -third files and @samp{g} in the second file, then the single line -@samp{b} common to all three files, then a three-way hunk containing -the last line of each file. - -@node Example diff3 Normal -@section An Example of @command{diff3} Normal Format - -Here is the output of the command @samp{diff3 lao tzu tao} -(@pxref{Sample diff3 Input}, for the complete contents of the files). -Notice that it shows only the lines that are different among the three -files. - -@example -====2 -1:1,2c -3:1,2c - The Way that can be told of is not the eternal Way; - The name that can be named is not the eternal name. -2:0a -====1 -1:4c - The Named is the mother of all things. -2:2,3c -3:4,5c - The named is the mother of all things. - -====3 -1:8c -2:7c - so we may see their outcome. -3:9c - so we may see their result. -==== -1:11a -2:11,13c - They both may be called deep and profound. - Deeper and more profound, - The door of all subtleties! -3:13,14c - - -- The Way of Lao-Tzu, tr. Wing-tsit Chan -@end example - -@node diff3 Merging -@chapter Merging From a Common Ancestor -@cindex merging from a common ancestor - -When two people have made changes to copies of the same file, -@command{diff3} can produce a merged output that contains both sets of -changes together with warnings about conflicts. - -One might imagine programs with names like @command{diff4} and @command{diff5} -to compare more than three files simultaneously, but in practice the -need rarely arises. You can use @command{diff3} to merge three or more -sets of changes to a file by merging two change sets at a time. - -@command{diff3} can incorporate changes from two modified versions into a -common preceding version. This lets you merge the sets of changes -represented by the two newer files. Specify the common ancestor version -as the second argument and the two newer versions as the first and third -arguments, like this: - -@example -diff3 @var{mine} @var{older} @var{yours} -@end example - -@noindent -You can remember the order of the arguments by noting that they are in -alphabetical order. - -@cindex conflict -@cindex overlap -You can think of this as subtracting @var{older} from @var{yours} and -adding the result to @var{mine}, or as merging into @var{mine} the -changes that would turn @var{older} into @var{yours}. This merging is -well-defined as long as @var{mine} and @var{older} match in the -neighborhood of each such change. This fails to be true when all three -input files differ or when only @var{older} differs; we call this -a @dfn{conflict}. When all three input files differ, we call the -conflict an @dfn{overlap}. - -@command{diff3} gives you several ways to handle overlaps and conflicts. -You can omit overlaps or conflicts, or select only overlaps, -or mark conflicts with special @samp{<<<<<<<} and @samp{>>>>>>>} lines. - -@command{diff3} can output the merge results as an @command{ed} script that -that can be applied to the first file to yield the merged output. -However, it is usually better to have @command{diff3} generate the merged -output directly; this bypasses some problems with @command{ed}. - -@menu -* Which Changes:: Selecting changes to incorporate. -* Marking Conflicts:: Marking conflicts. -* Bypassing ed:: Generating merged output directly. -* Merging Incomplete Lines:: How @command{diff3} merges incomplete lines. -* Saving the Changed File:: Emulating System V behavior. -@end menu - -@node Which Changes -@section Selecting Which Changes to Incorporate -@cindex overlapping change, selection of -@cindex unmerged change - -You can select all unmerged changes from @var{older} to @var{yours} for merging -into @var{mine} with the @option{-e} or @option{--ed} option. You can -select only the nonoverlapping unmerged changes with @option{-3} or -@option{--easy-only}, and you can select only the overlapping changes with -@option{-x} or @option{--overlap-only}. - -The @option{-e}, @option{-3} and @option{-x} options select only -@dfn{unmerged changes}, i.e.@: changes where @var{mine} and @var{yours} -differ; they ignore changes from @var{older} to @var{yours} where -@var{mine} and @var{yours} are identical, because they assume that such -changes have already been merged. If this assumption is not a safe -one, you can use the @option{-A} or @option{--show-all} option -(@pxref{Marking Conflicts}). - -Here is the output of the command @command{diff3} with each of these three -options (@pxref{Sample diff3 Input}, for the complete contents of the files). -Notice that @option{-e} outputs the union of the disjoint sets of changes -output by @option{-3} and @option{-x}. - -Output of @samp{diff3 -e lao tzu tao}: -@example -11a - - -- The Way of Lao-Tzu, tr. Wing-tsit Chan -. -8c - so we may see their result. -. -@end example - -Output of @samp{diff3 -3 lao tzu tao}: -@example -8c - so we may see their result. -. -@end example - -Output of @samp{diff3 -x lao tzu tao}: -@example -11a - - -- The Way of Lao-Tzu, tr. Wing-tsit Chan -. -@end example - -@node Marking Conflicts -@section Marking Conflicts -@cindex conflict marking -@cindex @samp{<<<<<<<} for marking conflicts - -@command{diff3} can mark conflicts in the merged output by -bracketing them with special marker lines. A conflict -that comes from two files @var{A} and @var{B} is marked as follows: - -@example -<<<<<<< @var{A} -@r{lines from @var{A}} -======= -@r{lines from @var{B}} ->>>>>>> @var{B} -@end example - -A conflict that comes from three files @var{A}, @var{B} and @var{C} is -marked as follows: - -@example -<<<<<<< @var{A} -@r{lines from @var{A}} -||||||| @var{B} -@r{lines from @var{B}} -======= -@r{lines from @var{C}} ->>>>>>> @var{C} -@end example - -The @option{-A} or @option{--show-all} option acts like the @option{-e} -option, except that it brackets conflicts, and it outputs all changes -from @var{older} to @var{yours}, not just the unmerged changes. Thus, -given the sample input files (@pxref{Sample diff3 Input}), @samp{diff3 --A lao tzu tao} puts brackets around the conflict where only @file{tzu} -differs: - -@example -<<<<<<< tzu -======= -The Way that can be told of is not the eternal Way; -The name that can be named is not the eternal name. ->>>>>>> tao -@end example - -And it outputs the three-way conflict as follows: - -@example -<<<<<<< lao -||||||| tzu -They both may be called deep and profound. -Deeper and more profound, -The door of all subtleties! -======= - - -- The Way of Lao-Tzu, tr. Wing-tsit Chan ->>>>>>> tao -@end example - -The @option{-E} or @option{--show-overlap} option outputs less information -than the @option{-A} or @option{--show-all} option, because it outputs only -unmerged changes, and it never outputs the contents of the second -file. Thus the @option{-E} option acts like the @option{-e} option, -except that it brackets the first and third files from three-way -overlapping changes. Similarly, @option{-X} acts like @option{-x}, except -it brackets all its (necessarily overlapping) changes. For example, -for the three-way overlapping change above, the @option{-E} and @option{-X} -options output the following: - -@example -<<<<<<< lao -======= - - -- The Way of Lao-Tzu, tr. Wing-tsit Chan ->>>>>>> tao -@end example - -If you are comparing files that have meaningless or uninformative names, -you can use the @option{-L @var{label}} or @option{--label=@var{label}} -option to show alternate names in the @samp{<<<<<<<}, @samp{|||||||} -and @samp{>>>>>>>} brackets. This option can be given up to three -times, once for each input file. Thus @samp{diff3 -A -L X -L Y -L Z A -B C} acts like @samp{diff3 -A A B C}, except that the output looks like -it came from files named @samp{X}, @samp{Y} and @samp{Z} rather than -from files named @samp{A}, @samp{B} and @samp{C}. - -@node Bypassing ed -@section Generating the Merged Output Directly -@cindex merged @command{diff3} format - -With the @option{-m} or @option{--merge} option, @command{diff3} outputs the -merged file directly. This is more efficient than using @command{ed} to -generate it, and works even with non-text files that @command{ed} would -reject. If you specify @option{-m} without an @command{ed} script option, -@option{-A} (@option{--show-all}) is assumed. - -For example, the command @samp{diff3 -m lao tzu tao} -(@pxref{Sample diff3 Input} for a copy of the input files) would output -the following: - -@example -<<<<<<< tzu -======= -The Way that can be told of is not the eternal Way; -The name that can be named is not the eternal name. ->>>>>>> tao -The Nameless is the origin of Heaven and Earth; -The Named is the mother of all things. -Therefore let there always be non-being, - so we may see their subtlety, -And let there always be being, - so we may see their result. -The two are the same, -But after they are produced, - they have different names. -<<<<<<< lao -||||||| tzu -They both may be called deep and profound. -Deeper and more profound, -The door of all subtleties! -======= - - -- The Way of Lao-Tzu, tr. Wing-tsit Chan ->>>>>>> tao -@end example - -@node Merging Incomplete Lines -@section How @command{diff3} Merges Incomplete Lines -@cindex incomplete line merging - -With @option{-m}, incomplete lines (@pxref{Incomplete Lines}) are simply -copied to the output as they are found; if the merged output ends in an -conflict and one of the input files ends in an incomplete -line, succeeding @samp{|||||||}, @samp{=======} or @samp{>>>>>>>} -brackets appear somewhere other than the start of a line because -they are appended to the incomplete line. - -Without @option{-m}, if an @command{ed} script option is specified and an -incomplete line is found, @command{diff3} generates a warning and acts as -if a newline had been present. - -@node Saving the Changed File -@section Saving the Changed File -@cindex System V @command{diff3} compatibility - -Traditional Unix @command{diff3} generates an @command{ed} script without the -trailing @samp{w} and @samp{q} commands that save the changes. -System V @command{diff3} generates these extra commands. @sc{gnu} -@command{diff3} normally behaves like traditional Unix -@command{diff3}, but with the @option{-i} option it behaves like -System V @command{diff3} and appends the @samp{w} and @samp{q} -commands. - -The @option{-i} option requires one of the @command{ed} script options -@option{-AeExX3}, and is incompatible with the merged output option -@option{-m}. - -@node Interactive Merging -@chapter Interactive Merging with @command{sdiff} -@cindex diff merging -@cindex interactive merging - -With @command{sdiff}, you can merge two files interactively based on a -side-by-side @option{-y} format comparison (@pxref{Side by Side}). Use -@option{-o @var{file}} or @option{--output=@var{file}} to specify where to -put the merged text. @xref{Invoking sdiff}, for more details on the -options to @command{sdiff}. - -Another way to merge files interactively is to use the Emacs Lisp -package @command{emerge}. @xref{emerge, , emerge, emacs, The @sc{gnu} Emacs -Manual}, for more information. - -@menu -* sdiff Option Summary:: Summary of @command{sdiff} options. -* Merge Commands:: Merging two files interactively. -@end menu - -@node sdiff Option Summary -@section Specifying @command{diff} Options to @command{sdiff} -@cindex @command{sdiff} output format - -The following @command{sdiff} options have the same meaning as for -@command{diff}. @xref{diff Options}, for the use of these options. - -@example --a -b -d -i -t -v --B -E -I @var{regexp} - ---ignore-blank-lines --ignore-case ---ignore-matching-lines=@var{regexp} --ignore-space-change ---ignore-tab-expansion ---left-column --minimal --speed-large-files ---strip-trailing-cr --suppress-common-lines --expand-tabs ---text --version --width=@var{columns} -@end example - -For historical reasons, @command{sdiff} has alternate names for some -options. The @option{-l} option is equivalent to the -@option{--left-column} option, and similarly @option{-s} is equivalent -to @option{--suppress-common-lines}. The meaning of the @command{sdiff} -@option{-w} and @option{-W} options is interchanged from that of -@command{diff}: with @command{sdiff}, @option{-w @var{columns}} is -equivalent to @option{--width=@var{columns}}, and @option{-W} is -equivalent to @option{--ignore-all-space}. @command{sdiff} without the -@option{-o} option is equivalent to @command{diff} with the @option{-y} -or @option{--side-by-side} option (@pxref{Side by Side}). - -@node Merge Commands -@section Merge Commands -@cindex merge commands -@cindex merging interactively - -Groups of common lines, with a blank gutter, are copied from the first -file to the output. After each group of differing lines, @command{sdiff} -prompts with @samp{%} and pauses, waiting for one of the following -commands. Follow each command with @key{RET}. - -@table @samp -@item e -Discard both versions. -Invoke a text editor on an empty temporary file, -then copy the resulting file to the output. - -@item eb -Concatenate the two versions, edit the result in a temporary file, -then copy the edited result to the output. - -@item ed -Like @samp{eb}, except precede each version with a header that -shows what file and lines the version came from. - -@item el -Edit a copy of the left version, then copy the result to the output. - -@item er -Edit a copy of the right version, then copy the result to the output. - -@item l -Copy the left version to the output. - -@item q -Quit. - -@item r -Copy the right version to the output. - -@item s -Silently copy common lines. - -@item v -Verbosely copy common lines. This is the default. -@end table - -@vindex EDITOR -The text editor invoked is specified by the @env{EDITOR} environment -variable if it is set. The default is system-dependent. - -@node Merging with patch -@chapter Merging with @command{patch} - -@command{patch} takes comparison output produced by @command{diff} and applies -the differences to a copy of the original file, producing a patched -version. With @command{patch}, you can distribute just the changes to a -set of files instead of distributing the entire file set; your -correspondents can apply @command{patch} to update their copy of the files -with your changes. @command{patch} automatically determines the diff -format, skips any leading or trailing headers, and uses the headers to -determine which file to patch. This lets your correspondents feed a -mail message containing a difference listing directly to -@command{patch}. - -@command{patch} detects and warns about common problems like forward -patches. It saves any patches that it could not apply. It can also maintain a -@code{patchlevel.h} file to ensure that your correspondents apply -diffs in the proper order. - -@command{patch} accepts a series of diffs in its standard input, usually -separated by headers that specify which file to patch. It applies -@command{diff} hunks (@pxref{Hunks}) one by one. If a hunk does not -exactly match the original file, @command{patch} uses heuristics to try to -patch the file as well as it can. If no approximate match can be found, -@command{patch} rejects the hunk and skips to the next hunk. @command{patch} -normally replaces each file @var{f} with its new version, putting reject -hunks (if any) into @samp{@var{f}.rej}. - -@xref{Invoking patch}, for detailed information on the options to -@command{patch}. - -@menu -* patch Input:: Selecting the type of @command{patch} input. -* Revision Control:: Getting files from @sc{rcs}, @sc{sccs}, etc. -* Imperfect:: Dealing with imperfect patches. -* Creating and Removing:: Creating and removing files with a patch. -* Patching Time Stamps:: Updating time stamps on patched files. -* Multiple Patches:: Handling multiple patches in a file. -* patch Directories:: Changing directory and stripping directories. -* Backups:: Whether backup files are made. -* Backup Names:: Backup file names. -* Reject Names:: Reject file names. -* patch Messages:: Messages and questions @command{patch} can produce. -* patch and POSIX:: Conformance to the @sc{posix} standard. -* patch and Tradition:: @sc{gnu} versus traditional @command{patch}. -@end menu - -@node patch Input -@section Selecting the @command{patch} Input Format -@cindex @command{patch} input format - -@command{patch} normally determines which @command{diff} format the patch -file uses by examining its contents. For patch files that contain -particularly confusing leading text, you might need to use one of the -following options to force @command{patch} to interpret the patch file as a -certain format of diff. The output formats listed here are the only -ones that @command{patch} can understand. - -@table @option -@item -c -@itemx --context -context diff. - -@item -e -@itemx --ed -@command{ed} script. - -@item -n -@itemx --normal -normal diff. - -@item -u -@itemx --unified -unified diff. -@end table - -@node Revision Control -@section Revision Control -@cindex revision control -@cindex version control -@cindex @sc{rcs} -@cindex ClearCase -@cindex @sc{sccs} - -If a nonexistent input file is under a revision control system -supported by @command{patch}, @command{patch} normally asks the user -whether to get (or check out) the file from the revision control -system. Patch currently supports @sc{rcs}, ClearCase and @sc{sccs}. -Under @sc{rcs} and @sc{sccs}, @command{patch} also asks when the input -file is read-only and matches the default version in the revision -control system. - -@vindex PATCH_GET -The @option{-g @var{num}} or @option{--get=@var{num}} affects access -to files under supported revision control systems. If @var{num} is -positive, @command{patch} gets the file without asking the user; if -zero, @command{patch} neither asks the user nor gets the file; and if -negative, @command{patch} asks the user before getting the file. The -default value of @var{num} is given by the value of the -@env{PATCH_GET} environment variable if it is set; if not, the default -value is zero if @command{patch} is conforming to @sc{posix}, negative -otherwise. @xref{patch and POSIX}. - -@vindex VERSION_CONTROL -The choice of revision control system is unaffected by the -@env{VERSION_CONTROL} environment variable (@pxref{Backup Names}). - -@node Imperfect -@section Applying Imperfect Patches -@cindex imperfect patch application - -@command{patch} tries to skip any leading text in the patch file, -apply the diff, and then skip any trailing text. Thus you can feed a -mail message directly to @command{patch}, and it should work. If the -entire diff is indented by a constant amount of white space, -@command{patch} automatically ignores the indentation. If a context -diff contains trailing carriage return on each line, @command{patch} -automatically ignores the carriage return. If a context diff has been -encapsulated by prepending @w{@samp{- }} to lines beginning with @samp{-} -as per @uref{ftp://ftp.isi.edu/in-notes/rfc934.txt, Internet RFC 934}, -@command{patch} automatically unencapsulates the input. - -However, certain other types of imperfect input require user -intervention or testing. - -@menu -* Changed White Space:: When tabs and spaces don't match exactly. -* Reversed Patches:: Applying reversed patches correctly. -* Inexact:: Helping @command{patch} find close matches. -* Dry Runs:: Predicting what @command{patch} will do. -@end menu - -@node Changed White Space -@subsection Applying Patches with Changed White Space -@cindex white space in patches - -Sometimes mailers, editors, or other programs change spaces into tabs, -or vice versa. If this happens to a patch file or an input file, the -files might look the same, but @command{patch} will not be able to match -them properly. If this problem occurs, use the @option{-l} or -@option{--ignore-white-space} option, which makes @command{patch} compare -blank characters (i.e.@: spaces and tabs) loosely so that any nonempty -sequence of blanks in the patch file matches any nonempty sequence of -blanks in the input files. Non-blank -characters must still match exactly. Each line of the context must -still match a line in the input file. - -@node Reversed Patches -@subsection Applying Reversed Patches -@cindex reversed patches - -Sometimes people run @command{diff} with the new file first instead of -second. This creates a diff that is ``reversed''. To apply such -patches, give @command{patch} the @option{-R} or @option{--reverse} option. -@command{patch} then attempts to swap each hunk around before applying it. -Rejects come out in the swapped format. - -Often @command{patch} can guess that the patch is reversed. If the first -hunk of a patch fails, @command{patch} reverses the hunk to see if it can -apply it that way. If it can, @command{patch} asks you if you want to have -the @option{-R} option set; if it can't, @command{patch} continues to apply -the patch normally. This method cannot detect a reversed patch if it is -a normal diff and the first command is an append (which should have been -a delete) since appends always succeed, because a null context matches -anywhere. But most patches add or change lines rather than delete them, -so most reversed normal diffs begin with a delete, which fails, and -@command{patch} notices. - -If you apply a patch that you have already applied, @command{patch} thinks -it is a reversed patch and offers to un-apply the patch. This could be -construed as a feature. If you did this inadvertently and you don't -want to un-apply the patch, just answer @samp{n} to this offer and to -the subsequent ``apply anyway'' question---or type @kbd{C-c} to kill the -@command{patch} process. - -@node Inexact -@subsection Helping @command{patch} Find Inexact Matches -@cindex inexact patches -@cindex fuzz factor when patching - -For context diffs, and to a lesser extent normal diffs, @command{patch} can -detect when the line numbers mentioned in the patch are incorrect, and -it attempts to find the correct place to apply each hunk of the patch. -As a first guess, it takes the line number mentioned in the hunk, plus -or minus any offset used in applying the previous hunk. If that is not -the correct place, @command{patch} scans both forward and backward for a -set of lines matching the context given in the hunk. - -First @command{patch} looks for a place where all lines of the context -match. If it cannot find such a place, and it is reading a context or -unified diff, and the maximum fuzz factor is set to 1 or more, then -@command{patch} makes another scan, ignoring the first and last line of -context. If that fails, and the maximum fuzz factor is set to 2 or -more, it makes another scan, ignoring the first two and last two lines -of context are ignored. It continues similarly if the maximum fuzz -factor is larger. - -The @option{-F @var{lines}} or @option{--fuzz=@var{lines}} option sets the -maximum fuzz factor to @var{lines}. This option only applies to context -and unified diffs; it ignores up to @var{lines} lines while looking for -the place to install a hunk. Note that a larger fuzz factor increases -the odds of making a faulty patch. The default fuzz factor is 2; there -is no point to setting it to more than the number of lines of context -in the diff, ordinarily 3. - -If @command{patch} cannot find a place to install a hunk of the patch, it -writes the hunk out to a reject file (@pxref{Reject Names}, for information -on how reject files are named). It writes out rejected hunks in context -format no matter what form the input patch is in. If the input is a -normal or @command{ed} diff, many of the contexts are simply null. The -line numbers on the hunks in the reject file may be different from those -in the patch file: they show the approximate location where @command{patch} -thinks the failed hunks belong in the new file rather than in the old -one. - -If the @option{--verbose} option is given, then -as it completes each hunk @command{patch} tells you whether the hunk -succeeded or failed, and if it failed, on which line (in the new file) -@command{patch} thinks the hunk should go. If this is different from the -line number specified in the diff, it tells you the offset. A single -large offset @emph{may} indicate that @command{patch} installed a hunk in -the wrong place. @command{patch} also tells you if it used a fuzz factor -to make the match, in which case you should also be slightly suspicious. - -@command{patch} cannot tell if the line numbers are off in an @command{ed} -script, and can only detect wrong line numbers in a normal diff when it -finds a change or delete command. It may have the same problem with a -context diff using a fuzz factor equal to or greater than the number of -lines of context shown in the diff (typically 3). In these cases, you -should probably look at a context diff between your original and patched -input files to see if the changes make sense. Compiling without errors -is a pretty good indication that the patch worked, but not a guarantee. - -A patch against an empty file applies to a nonexistent file, and vice -versa. @xref{Creating and Removing}. - -@command{patch} usually produces the correct results, even when it must -make many guesses. However, the results are guaranteed only when -the patch is applied to an exact copy of the file that the patch was -generated from. - -@node Dry Runs -@subsection Predicting what @command{patch} will do -@cindex testing @command{patch} -@cindex dry runs for @command{patch} - -It may not be obvious in advance what @command{patch} will do with a -complicated or poorly formatted patch. If you are concerned that the -input might cause @command{patch} to modify the wrong files, you can -use the @option{--dry-run} option, which causes @command{patch} to -print the results of applying patches without actually changing any -files. You can then inspect the diagnostics generated by the dry run -to see whether @command{patch} will modify the files that you expect. -If the patch does not do what you want, you can modify the patch (or -the other options to @command{patch}) and try another dry run. Once -you are satisfied with the proposed patch you can apply it by invoking -@command{patch} as before, but this time without the -@option{--dry-run} option. - -@node Creating and Removing -@section Creating and Removing Files -@cindex creating files -@cindex empty files, removing -@cindex removing empty files - -Sometimes when comparing two directories, a file may exist in one -directory but not the other. If you give @command{diff} the -@option{-N} or @option{--new-file} option, or if you supply an old or -new file that is named @file{/dev/null} or is empty and is dated the -Epoch (1970-01-01 00:00:00 UTC), @command{diff} outputs a patch that -adds or deletes the contents of this file. When given such a patch, -@command{patch} normally creates a new file or removes the old file. -However, when conforming to @sc{posix} (@pxref{patch and POSIX}), -@command{patch} does not remove the old file, but leaves it empty. -The @option{-E} or @option{--remove-empty-files} option causes -@command{patch} to remove output files that are empty after applying a -patch, even if the patch does not appear to be one that removed the -file. - -If the patch appears to create a file that already exists, -@command{patch} asks for confirmation before applying the patch. - -@node Patching Time Stamps -@section Updating Time Stamps on Patched Files -@cindex time stamps on patched files - -When @command{patch} updates a file, it normally sets the file's -last-modified time stamp to the current time of day. If you are using -@command{patch} to track a software distribution, this can cause -@command{make} to incorrectly conclude that a patched file is out of -date. For example, if @file{syntax.c} depends on @file{syntax.y}, and -@command{patch} updates @file{syntax.c} and then @file{syntax.y}, then -@file{syntax.c} will normally appear to be out of date with respect to -@file{syntax.y} even though its contents are actually up to date. - -The @option{-Z} or @option{--set-utc} option causes @command{patch} to -set a patched file's modification and access times to the time stamps -given in context diff headers. If the context diff headers do not -specify a time zone, they are assumed to use Coordinated Universal -Time (@sc{utc}, often known as @sc{gmt}). - -The @option{-T} or @option{--set-time} option acts like @option{-Z} or -@option{--set-utc}, except that it assumes that the context diff -headers' time stamps use local time instead of @sc{utc}. This option -is not recommended, because patches using local time cannot easily be -used by people in other time zones, and because local time stamps are -ambiguous when local clocks move backwards during daylight-saving time -adjustments. If the context diff headers specify a time zone, this -option is equivalent to @option{-Z} or @option{--set-utc}. - -@command{patch} normally refrains from setting a file's time stamps if -the file's original last-modified time stamp does not match the time -given in the diff header, of if the file's contents do not exactly -match the patch. However, if the @option{-f} or @option{--force} -option is given, the file's time stamps are set regardless. - -Due to the limitations of the current @command{diff} format, -@command{patch} cannot update the times of files whose contents have -not changed. Also, if you set file time stamps to values other than -the current time of day, you should also remove (e.g., with @samp{make -clean}) all files that depend on the patched files, so that later -invocations of @command{make} do not get confused by the patched -files' times. - -@node Multiple Patches -@section Multiple Patches in a File -@cindex multiple patches -@cindex intuiting file names from patches - -If the patch file contains more than one patch, and if you do not -specify an input file on the command line, @command{patch} tries to -apply each patch as if they came from separate patch files. This -means that it determines the name of the file to patch for each patch, -and that it examines the leading text before each patch for file names -and prerequisite revision level (@pxref{Making Patches}, for more on -that topic). - -@command{patch} uses the following rules to intuit a file name from -the leading text before a patch. First, @command{patch} takes an -ordered list of candidate file names as follows: - -@itemize @bullet -@item -If the header is that of a context diff, @command{patch} takes the old -and new file names in the header. A name is ignored if it does not -have enough slashes to satisfy the @option{-p@var{num}} or -@option{--strip=@var{num}} option. The name @file{/dev/null} is also -ignored. - -@item -If there is an @samp{Index:} line in the leading garbage and if either -the old and new names are both absent or if @command{patch} is -conforming to @sc{posix}, @command{patch} takes the name in the -@samp{Index:} line. - -@item -For the purpose of the following rules, the candidate file names are -considered to be in the order (old, new, index), regardless of the -order that they appear in the header. -@end itemize - -@noindent -Then @command{patch} selects a file name from the candidate list as -follows: - -@itemize @bullet -@item -If some of the named files exist, @command{patch} selects the first -name if conforming to @sc{posix}, and the best name otherwise. - -@item -If @command{patch} is not ignoring @sc{rcs}, ClearCase, and @sc{sccs} -(@pxref{Revision Control}), and no named files exist but an @sc{rcs}, -ClearCase, or @sc{sccs} master is found, @command{patch} selects the -first named file with an @sc{rcs}, ClearCase, or @sc{sccs} master. - -@item -If no named files exist, no @sc{rcs}, ClearCase, or @sc{sccs} master -was found, some names are given, @command{patch} is not conforming to -@sc{posix}, and the patch appears to create a file, @command{patch} -selects the best name requiring the creation of the fewest -directories. - -@item -If no file name results from the above heuristics, you are asked for -the name of the file to patch, and @command{patch} selects that name. -@end itemize - -To determine the @dfn{best} of a nonempty list of file names, -@command{patch} first takes all the names with the fewest path name -components; of those, it then takes all the names with the shortest -basename; of those, it then takes all the shortest names; finally, it -takes the first remaining name. - -@xref{patch and POSIX}, to see whether @command{patch} is conforming -to @sc{posix}. - -@node patch Directories -@section Applying Patches in Other Directories -@cindex directories and patch -@cindex patching directories - -The @option{-d @var{directory}} or @option{--directory=@var{directory}} -option to @command{patch} makes directory @var{directory} the current -directory for interpreting both file names in the patch file, and file -names given as arguments to other options (such as @option{-B} and -@option{-o}). For example, while in a mail reading program, you can patch -a file in the @file{/usr/src/emacs} directory directly from a message -containing the patch like this: - -@example -| patch -d /usr/src/emacs -@end example - -Sometimes the file names given in a patch contain leading directories, -but you keep your files in a directory different from the one given in -the patch. In those cases, you can use the -@option{-p@var{number}} or @option{--strip=@var{number}} -option to set the file name strip count to @var{number}. The strip -count tells @command{patch} how many slashes, along with the directory -names between them, to strip from the front of file names. A sequence -of one or more adjacent slashes is counted as a single slash. By -default, @command{patch} strips off all leading directories, leaving -just the base file names. - -For example, suppose the file name in the patch file is -@file{/gnu/src/emacs/etc/NEWS}. Using @option{-p0} gives the -entire file name unmodified, @option{-p1} gives -@file{gnu/src/emacs/etc/NEWS} (no leading slash), @option{-p4} gives -@file{etc/NEWS}, and not specifying @option{-p} at all gives @file{NEWS}. - -@command{patch} looks for each file (after any slashes have been stripped) -in the current directory, or if you used the @option{-d @var{directory}} -option, in that directory. - -@node Backups -@section Backup Files -@cindex backup file strategy - -Normally, @command{patch} creates a backup file if the patch does not -exactly match the original input file, because in that case the -original data might not be recovered if you undo the patch with -@samp{patch -R} (@pxref{Reversed Patches}). However, when conforming -to @sc{posix}, @command{patch} does not create backup files by -default. @xref{patch and POSIX}. - -The @option{-b} or @option{--backup} option causes @command{patch} to -make a backup file regardless of whether the patch matches the -original input. The @option{--backup-if-mismatch} option causes -@command{patch} to create backup files for mismatches files; this is -the default when not conforming to @sc{posix}. The -@option{--no-backup-if-mismatch} option causes @command{patch} to not -create backup files, even for mismatched patches; this is the default -when conforming to @sc{posix}. - -When backing up a file that does not exist, an empty, unreadable -backup file is created as a placeholder to represent the nonexistent -file. - -@node Backup Names -@section Backup File Names -@cindex backup file names - -Normally, @command{patch} renames an original input file into a backup -file by appending to its name the extension @samp{.orig}, or @samp{~} -if using @samp{.orig} would make the backup file name too -long.@footnote{A coding error in @sc{gnu} @command{patch} version -2.5.4 causes it to always use @samp{~}, but this should be fixed in -the next release.} The @option{-z @var{backup-suffix}} or -@option{--suffix=@var{backup-suffix}} option causes @command{patch} to -use @var{backup-suffix} as the backup extension instead. - -@vindex SIMPLE_BACKUP_SUFFIX -Alternately, you can specify the extension for backup files with the -@env{SIMPLE_BACKUP_SUFFIX} environment variable, which the options -override. - -@command{patch} can also create numbered backup files the way @sc{gnu} Emacs -does. With this method, instead of having a single backup of each file, -@command{patch} makes a new backup file name each time it patches a file. -For example, the backups of a file named @file{sink} would be called, -successively, @file{sink.~1~}, @file{sink.~2~}, @file{sink.~3~}, etc. - -@vindex PATCH_VERSION_CONTROL -@vindex VERSION_CONTROL -The @option{-V @var{backup-style}} or -@option{--version-control=@var{backup-style}} option takes as an -argument a method for creating backup file names. You can alternately -control the type of backups that @command{patch} makes with the -@env{PATCH_VERSION_CONTROL} environment variable, which the -@option{-V} option overrides. If @env{PATCH_VERSION_CONTROL} is not -set, the @env{VERSION_CONTROL} environment variable is used instead. -Please note that these options and variables control backup file -names; they do not affect the choice of revision control system -(@pxref{Revision Control}). - -The values of these environment variables and the argument to the -@option{-V} option are like the @sc{gnu} Emacs @code{version-control} -variable (@pxref{Backup Names, , , emacs, The @sc{gnu} Emacs Manual}, -for more information on backup versions in Emacs). They also -recognize synonyms that are more descriptive. The valid values are -listed below; unique abbreviations are acceptable. - -@table @option -@item t -@itemx numbered -Always make numbered backups. - -@item nil -@itemx existing -Make numbered backups of files that already have them, simple backups of -the others. This is the default. - -@item never -@itemx simple -Always make simple backups. -@end table - -You can also tell @command{patch} to prepend a prefix, such as a -directory name, to produce backup file names. The @option{-B -@var{prefix}} or @option{--prefix=@var{prefix}} option makes backup -files by prepending @var{prefix} to them. The @option{-Y -@var{prefix}} or @option{--basename-prefix=@var{prefix}} prepends -@var{prefix} to the last file name component of backup file names -instead; for example, @option{-Y ~} causes the backup name for -@file{dir/file.c} to be @file{dir/~file.c}. If you use either of -these prefix options, the suffix-based options are ignored. - -If you specify the output file with the @option{-o} option, that file is -the one that is backed up, not the input file. - -Options that affect the names of backup files do not affect whether -backups are made. For example, if you specify the -@option{--no-backup-if-mismatch} option, none of the options described -in this section have any affect, because no backups are made. - -@node Reject Names -@section Reject File Names -@cindex reject file names - -The names for reject files (files containing patches that -@command{patch} could not find a place to apply) are normally the name -of the output file with @samp{.rej} appended (or @samp{#} if if using -@samp{.rej} would make the backup file name too long). - -Alternatively, you can tell @command{patch} to place all of the rejected -patches in a single file. The @option{-r @var{reject-file}} or -@option{--reject-file=@var{reject-file}} option uses @var{reject-file} as -the reject file name. - -@node patch Messages -@section Messages and Questions from @command{patch} -@cindex @command{patch} messages and questions -@cindex diagnostics from @command{patch} -@cindex messages from @command{patch} - -@command{patch} can produce a variety of messages, especially if it -has trouble decoding its input. In a few situations where it's not -sure how to proceed, @command{patch} normally prompts you for more -information from the keyboard. There are options to produce more or -fewer messages, to have it not ask for keyboard input, and to -affect the way that file names are quoted in messages. - -@menu -* More or Fewer Messages:: Controlling the verbosity of @command{patch}. -* patch and Keyboard Input:: Inhibiting keyboard input. -* patch Quoting Style:: Quoting file names in diagnostics. -@end menu - -@command{patch} exits with status 0 if all hunks are applied successfully, -1 if some hunks cannot be applied, and 2 if there is more serious trouble. -When applying a set of patches in a loop, you should check the -exit status, so you don't apply a later patch to a partially patched -file. - -@node More or Fewer Messages -@subsection Controlling the Verbosity of @command{patch} -@cindex verbose messages from @command{patch} -@cindex inhibit messages from @command{patch} - -You can cause @command{patch} to produce more messages by using the -@option{--verbose} option. For example, when you give this option, -the message @samp{Hmm...} indicates that @command{patch} is reading text in -the patch file, attempting to determine whether there is a patch in that -text, and if so, what kind of patch it is. - -You can inhibit all terminal output from @command{patch}, unless an error -occurs, by using the @option{-s}, @option{--quiet}, or @option{--silent} -option. - -@node patch and Keyboard Input -@subsection Inhibiting Keyboard Input -@cindex keyboard input to @command{patch} - -There are two ways you can prevent @command{patch} from asking you any -questions. The @option{-f} or @option{--force} option assumes that you know -what you are doing. It causes @command{patch} to do the following: - -@itemize @bullet -@item -Skip patches that do not contain file names in their headers. - -@item -Patch files even though they have the wrong version for the -@samp{Prereq:} line in the patch; - -@item -Assume that patches are not reversed even if they look like they are. -@end itemize - -@noindent -The @option{-t} or @option{--batch} option is similar to @option{-f}, in that -it suppresses questions, but it makes somewhat different assumptions: - -@itemize @bullet -@item -Skip patches that do not contain file names in their headers -(the same as @option{-f}). - -@item -Skip patches for which the file has the wrong version for the -@samp{Prereq:} line in the patch; - -@item -Assume that patches are reversed if they look like they are. -@end itemize - -@node patch Quoting Style -@subsection @command{patch} Quoting Style -@cindex quoting style - -When @command{patch} outputs a file name in a diagnostic message, it -can format the name in any of several ways. This can be useful to -output file names unambiguously, even if they contain punctuation or -special characters like newlines. The -@option{--quoting-style=@var{word}} option controls how names are -output. The @var{word} should be one of the following: - -@table @samp -@item literal -Output names as-is. -@item shell -Quote names for the shell if they contain shell metacharacters or would -cause ambiguous output. -@item shell-always -Quote names for the shell, even if they would normally not require quoting. -@item c -Quote names as for a C language string. -@item escape -Quote as with @samp{c} except omit the surrounding double-quote -characters. -@c The following are not yet implemented in patch 2.5.4. -@c @item clocale -@c Quote as with @samp{c} except use quotation marks appropriate for the -@c locale. -@c @item locale -@c @c Use @t instead of @samp to avoid duplicate quoting in some output styles. -@c Like @samp{clocale}, but quote @t{`like this'} instead of @t{"like -@c this"} in the default C locale. This looks nicer on many displays. -@end table - -@vindex QUOTING_STYLE -You can specify the default value of the @option{--quoting-style} -option with the environment variable @env{QUOTING_STYLE}. If that -environment variable is not set, the default value is @samp{shell}, -but this default may change in a future version of @command{patch}. - -@node patch and POSIX -@section @command{patch} and the @sc{posix} Standard -@cindex @sc{posix} - -@vindex POSIXLY_CORRECT -If you specify the @option{--posix} option, or set the -@env{POSIXLY_CORRECT} environment variable, @command{patch} conforms -more strictly to the @sc{posix} standard, as follows: - -@itemize @bullet -@item -Take the first existing file from the list (old, new, index) -when intuiting file names from diff headers. @xref{Multiple Patches}. - -@item -Do not remove files that are removed by a diff. -@xref{Creating and Removing}. - -@item -Do not ask whether to get files from @sc{rcs}, ClearCase, or -@sc{sccs}. @xref{Revision Control}. - -@item -Require that all options precede the files in the command line. - -@item -Do not backup files, even when there is a mismatch. @xref{Backups}. - -@end itemize - -@node patch and Tradition -@section @sc{gnu} @command{patch} and Traditional @command{patch} -@cindex traditional @command{patch} - -The current version of @sc{gnu} @command{patch} normally follows the -@sc{posix} standard. @xref{patch and POSIX}, for the few exceptions -to this general rule. - -Unfortunately, @sc{posix} redefined the behavior of @command{patch} in -several important ways. You should be aware of the following -differences if you must interoperate with traditional @command{patch}, -or with @sc{gnu} @command{patch} version 2.1 and earlier. - -@itemize @bullet -@item -In traditional @command{patch}, the @option{-p} option's operand was -optional, and a bare @option{-p} was equivalent to @option{-p0}. The -@option{-p} option now requires an operand, and @option{-p@ 0} is now -equivalent to @option{-p0}. For maximum compatibility, use options -like @option{-p0} and @option{-p1}. - -Also, traditional @command{patch} simply counted slashes when -stripping path prefixes; @command{patch} now counts pathname -components. That is, a sequence of one or more adjacent slashes now -counts as a single slash. For maximum portability, avoid sending -patches containing @file{//} in file names. - -@item -In traditional @command{patch}, backups were enabled by default. This -behavior is now enabled with the @option{-b} or @option{--backup} -option. - -Conversely, in @sc{posix} @command{patch}, backups are never made, -even when there is a mismatch. In @sc{gnu} @command{patch}, this -behavior is enabled with the @option{--no-backup-if-mismatch} option, -or by conforming to @sc{posix}. - -The @option{-b@ @var{suffix}} option of traditional @command{patch} is -equivalent to the @samp{-b -z@ @var{suffix}} options of @sc{gnu} -@command{patch}. - -@item -Traditional @command{patch} used a complicated (and incompletely -documented) method to intuit the name of the file to be patched from -the patch header. This method did not conform to @sc{posix}, and had -a few gotchas. Now @command{patch} uses a different, equally -complicated (but better documented) method that is optionally -@sc{posix}-conforming; we hope it has fewer gotchas. The two methods -are compatible if the file names in the context diff header and the -@samp{Index:} line are all identical after prefix-stripping. Your -patch is normally compatible if each header's file names all contain -the same number of slashes. - -@item -When traditional @command{patch} asked the user a question, it sent -the question to standard error and looked for an answer from the first -file in the following list that was a terminal: standard error, -standard output, @file{/dev/tty}, and standard input. Now -@command{patch} sends questions to standard output and gets answers -from @file{/dev/tty}. Defaults for some answers have been changed so -that @command{patch} never goes into an infinite loop when using -default answers. - -@item -Traditional @command{patch} exited with a status value that counted -the number of bad hunks, or with status 1 if there was real trouble. -Now @command{patch} exits with status 1 if some hunks failed, or with -2 if there was real trouble. - -@item -Limit yourself to the following options when sending instructions -meant to be executed by anyone running @sc{gnu} @command{patch}, -traditional @command{patch}, or a @command{patch} that conforms to -@sc{posix}. Spaces are significant in the following list, and -operands are required. - -@example -@option{-c} -@option{-d @var{dir}} -@option{-D @var{define}} -@option{-e} -@option{-l} -@option{-n} -@option{-N} -@option{-o @var{outfile}} -@option{-p@var{num}} -@option{-R} -@option{-r @var{rejectfile}} -@end example - -@end itemize - -@node Making Patches -@chapter Tips for Making and Using Patches - -Use some common sense when making and using patches. For example, -when sending bug fixes to a program's maintainer, send several small -patches, one per independent subject, instead of one large, -harder-to-digest patch that covers all the subjects. - -Here are some other things you should keep in mind if you are going to -distribute patches for updating a software package. - -@menu -* Tips for Patch Producers:: Advice for making patches. -* Tips for Patch Consumers:: Advice for using patches. -* Avoiding Common Mistakes:: Avoiding common mistakes when using @command{patch}. -* Generating Smaller Patches:: How to generate smaller patches. -@end menu - -@node Tips for Patch Producers -@section Tips for Patch Producers -@cindex patch producer tips - -To create a patch that changes an older version of a package into a -newer version, first make a copy of the older and newer versions in -adjacent subdirectories. It is common to do that by unpacking -@command{tar} archives of the two versions. - -To generate the patch, use the command @samp{diff -Naur @var{old} -@var{new}} where @var{old} and @var{new} identify the old and new -directories. The names @var{old} and @var{new} should not contain any -slashes. The @option{-N} option lets the patch create and remove -files; @option{-a} lets the patch update non-text files; @option{-u} -generates useful time stamps and enough context; and @option{-r} lets -the patch update subdirectories. Here is an example command, using -Bourne shell syntax: - -@example -diff -Naur gcc-3.0.3 gcc-3.0.4 -@end example - -Tell your recipients how to apply the patches. This should include -which working directory to use, and which @command{patch} options to -use; the option @samp{-p1} is recommended. Test your procedure by -pretending to be a recipient and applying your patches to a copy of -the original files. - -@xref{Avoiding Common Mistakes}, for how to avoid common mistakes when -generating a patch. - -@node Tips for Patch Consumers -@section Tips for Patch Consumers -@cindex patch consumer tips - -A patch producer should tell recipients how to apply the patches, so -the first rule of thumb for a patch consumer is to follow the -instructions supplied with the patch. - -@sc{gnu} @command{diff} can analyze files with arbitrarily long lines -and files that end in incomplete lines. However, older versions of -@command{patch} cannot patch such files. If you are having trouble -applying such patches, try upgrading to a recent version of @sc{gnu} -@command{patch}. - -@node Avoiding Common Mistakes -@section Avoiding Common Mistakes -@cindex common mistakes with patches -@cindex patch, common mistakes - -When producing a patch for multiple files, apply @command{diff} to -directories whose names do not have slashes. This reduces confusion -when the patch consumer specifies the @option{-p@var{number}} option, -since this option can have surprising results when the old and new -file names have different numbers of slashes. For example, do not -send a patch with a header that looks like this: - -@example -diff -Naur v2.0.29/prog/README prog/README ---- v2.0.29/prog/README 2002-03-10 23:30:39.942229878 -0800 -+++ prog/README 2002-03-17 20:49:32.442260588 -0800 -@end example - -@noindent -because the two file names have different numbers of slashes, and -different versions of @command{patch} interpret the file names -differently. To avoid confusion, send output that looks like this -instead: - -@example -diff -Naur v2.0.29/prog/README v2.0.30/prog/README ---- v2.0.29/prog/README 2002-03-10 23:30:39.942229878 -0800 -+++ v2.0.30/prog/README 2002-03-17 20:49:32.442260588 -0800 -@end example - -Make sure you have specified the file names correctly, either in a -context diff header or with an @samp{Index:} line. Take care to not send out -reversed patches, since these make people wonder whether they have -already applied the patch. - -Avoid sending patches that compare backup file names like -@file{README.orig} or @file{README~}, since this might confuse -@command{patch} into patching a backup file instead of the real file. -Instead, send patches that compare the same base file names in -different directories, e.g.@: @file{old/README} and @file{new/README}. - -To save people from partially applying a patch before other patches that -should have gone before it, you can make the first patch in the patch -file update a file with a name like @file{patchlevel.h} or -@file{version.c}, which contains a patch level or version number. If -the input file contains the wrong version number, @command{patch} will -complain immediately. - -An even clearer way to prevent this problem is to put a @samp{Prereq:} -line before the patch. If the leading text in the patch file contains a -line that starts with @samp{Prereq:}, @command{patch} takes the next word -from that line (normally a version number) and checks whether the next -input file contains that word, preceded and followed by either -white space or a newline. If not, @command{patch} prompts you for -confirmation before proceeding. This makes it difficult to accidentally -apply patches in the wrong order. - -@node Generating Smaller Patches -@section Generating Smaller Patches -@cindex patches, shrinking - -The simplest way to generate a patch is to use @samp{diff -Naur} -(@pxref{Tips for Patch Producers}), but you might be able to reduce -the size of the patch by renaming or removing some files before making -the patch. If the older version of the package contains any files -that the newer version does not, or if any files have been renamed -between the two versions, make a list of @command{rm} and @command{mv} -commands for the user to execute in the old version directory before -applying the patch. Then run those commands yourself in the scratch -directory. - -If there are any files that you don't need to include in the patch -because they can easily be rebuilt from other files (for example, -@file{TAGS} and output from @command{yacc} and @command{makeinfo}), -exclude them from the patch by giving @command{diff} the @option{-x -@var{pattern}} option (@pxref{Comparing Directories}). If you want -your patch to modify a derived file because your recipients lack tools -to build it, make sure that the patch for the derived file follows any -patches for files that it depends on, so that the recipients' time -stamps will not confuse @command{make}. - -Now you can create the patch using @samp{diff -Naur}. Make sure to -specify the scratch directory first and the newer directory second. - -Add to the top of the patch a note telling the user any @command{rm} and -@command{mv} commands to run before applying the patch. Then you can -remove the scratch directory. - -You can also shrink the patch size by using fewer lines of context, -but bear in mind that @command{patch} typically needs at least two -lines for proper operation when patches do not exactly match the input -files. - -@node Invoking cmp -@chapter Invoking @command{cmp} -@cindex invoking @command{cmp} -@cindex @command{cmp} invocation - -The @command{cmp} command compares two files, and if they differ, -tells the first byte and line number where they differ. Bytes and -lines are numbered starting with 1. The arguments of @command{cmp} -are as follows: - -@example -cmp @var{options}@dots{} @var{from-file} @r{[}@var{to-file} @r{[}@var{from-skip} @r{[}@var{to-skip}@r{]}@r{]}@r{]} -@end example - -The file name @file{-} is always the standard input. @command{cmp} -also uses the standard input if one file name is omitted. The -@var{from-skip} and @var{to-skip} operands specify how many bytes to -ignore at the start of each file; they are equivalent to the -@option{--ignore-initial=@var{from-skip}:@var{to-skip}} option. - -An exit status of 0 means no differences were found, 1 means some -differences were found, and 2 means trouble. - -@menu -* cmp Options:: Summary of options to @command{cmp}. -@end menu - -@node cmp Options -@section Options to @command{cmp} -@cindex @command{cmp} options -@cindex options for @command{cmp} - -Below is a summary of all of the options that @sc{gnu} @command{cmp} accepts. -Most options have two equivalent names, one of which is a single letter -preceded by @samp{-}, and the other of which is a long name preceded by -@samp{--}. Multiple single letter options (unless they take an -argument) can be combined into a single command line word: @option{-bl} is -equivalent to @option{-b -l}. - -@table @option -@item -b -@itemx --print-bytes -Print the differing bytes. Display control bytes as a -@samp{^} followed by a letter of the alphabet and precede bytes -that have the high bit set with @samp{M-} (which stands for ``meta''). - -@item --help -Output a summary of usage and then exit. - -@item -i @var{skip} -@itemx --ignore-initial=@var{skip} -Ignore any differences in the first @var{skip} bytes of the input -files. Treat files with fewer than @var{skip} bytes as if they are -empty. If @var{skip} is of the form -@option{@var{from-skip}:@var{to-skip}}, skip the first @var{from-skip} -bytes of the first input file and the first @var{to-skip} bytes of the -second. - -@item -l -@itemx --verbose -Print the (decimal) byte numbers and (octal) values of all differing bytes. - -@item -n @var{count} -@itemx --bytes=@var{count} -Compare at most @var{count} input bytes. - -@item -s -@itemx --quiet -@itemx --silent -Do not print anything; only return an exit status indicating whether -the files differ. - -@item -v -@itemx --version -Output version information and then exit. -@end table - -In the above table, operands that are byte counts are normally -decimal, but may be preceded by @samp{0} for octal and @samp{0x} for -hexadecimal. - -A byte count can be followed by a suffix to specify a multiple of that -count; in this case an omitted integer is understood to be 1. A bare -size letter, or one followed by @samp{iB}, specifies a multiple using -powers of 1024. A size letter followed by @samp{B} specifies powers -of 1000 instead. For example, @option{-n 4M} and @option{-n 4MiB} are -equivalent to @option{-n 4194304}, whereas @option{-n 4MB} is -equivalent to @option{-n 4000000}. This notation is upward compatible -with the @uref{http://www.bipm.fr/enus/3_SI/si-prefixes.html, SI -prefixes} for decimal multiples and with the -@uref{http://physics.nist.gov/cuu/Units/binary.html, IEC 60027-2 -prefixes for binary multiples}. - -The following suffixes are defined. Large sizes like @code{1Y} may be -rejected by your computer due to limitations of its arithmetic. - -@table @samp -@item kB -@cindex kilobyte, definition of -kilobyte: @math{10^3 = 1000}. -@item k -@itemx K -@itemx KiB -@cindex kibibyte, definition of -kibibyte: @math{2^10 = 1024}. @samp{K} is special: the SI prefix is -@samp{k} and the IEC 60027-2 prefix is @samp{Ki}, but tradition and -@sc{posix} use @samp{k} to mean @samp{KiB}. -@item MB -@cindex megabyte, definition of -megabyte: @math{10^6 = 1,000,000}. -@item M -@itemx MiB -@cindex mebibyte, definition of -mebibyte: @math{2^20 = 1,048,576}. -@item GB -@cindex gigabyte, definition of -gigabyte: @math{10^9 = 1,000,000,000}. -@item G -@itemx GiB -@cindex gibibyte, definition of -gibibyte: @math{2^30 = 1,073,741,824}. -@item TB -@cindex terabyte, definition of -terabyte: @math{10^12 = 1,000,000,000,000}. -@item T -@itemx TiB -@cindex tebibyte, definition of -tebibyte: @math{2^40 = 1,099,511,627,776}. -@item PB -@cindex petabyte, definition of -petabyte: @math{10^15 = 1,000,000,000,000,000}. -@item P -@itemx PiB -@cindex pebibyte, definition of -pebibyte: @math{2^50 = 1,125,899,906,842,624}. -@item EB -@cindex exabyte, definition of -exabyte: @math{10^18 = 1,000,000,000,000,000,000}. -@item E -@itemx EiB -@cindex exbibyte, definition of -exbibyte: @math{2^60 = 1,152,921,504,606,846,976}. -@item ZB -@cindex zettabyte, definition of -zettabyte: @math{10^21 = 1,000,000,000,000,000,000,000} -@item Z -@itemx ZiB -@math{2^70 = 1,180,591,620,717,411,303,424}. -(@samp{Zi} is a GNU extension to IEC 60027-2.) -@item YB -@cindex yottabyte, definition of -yottabyte: @math{10^24 = 1,000,000,000,000,000,000,000,000}. -@item Y -@itemx YiB -@math{2^80 = 1,208,925,819,614,629,174,706,176}. -(@samp{Yi} is a GNU extension to IEC 60027-2.) -@end table - -@node Invoking diff -@chapter Invoking @command{diff} -@cindex invoking @command{diff} -@cindex @command{diff} invocation - -The format for running the @command{diff} command is: - -@example -diff @var{options}@dots{} @var{files}@dots{} -@end example - -In the simplest case, two file names @var{from-file} and -@var{to-file} are given, and @command{diff} compares the contents of -@var{from-file} and @var{to-file}. A file name of @file{-} stands for -text read from the standard input. As a special case, @samp{diff - -} -compares a copy of standard input to itself. - -If one file is a directory and the other is not, @command{diff} compares -the file in the directory whose name is that of the non-directory. -The non-directory file must not be @file{-}. - -If two file names are given and both are directories, -@command{diff} compares corresponding files in both directories, in -alphabetical order; this comparison is not recursive unless the -@option{-r} or @option{--recursive} option is given. @command{diff} never -compares the actual contents of a directory as if it were a file. The -file that is fully specified may not be standard input, because standard -input is nameless and the notion of ``file with the same name'' does not -apply. - -If the @option{--from-file=@var{file}} option is given, the number of -file names is arbitrary, and @var{file} is compared to each named file. -Similarly, if the @option{--to-file=@var{file}} option is given, each -named file is compared to @var{file}. - -@command{diff} options begin with @samp{-}, so normally file names -may not begin with @samp{-}. However, @option{--} as an -argument by itself treats the remaining arguments as file names even if -they begin with @samp{-}. - -An exit status of 0 means no differences were found, 1 means some -differences were found, and 2 means trouble. - -@menu -* diff Options:: Summary of options to @command{diff}. -@end menu - -@node diff Options -@section Options to @command{diff} -@cindex @command{diff} options -@cindex options for @command{diff} - -Below is a summary of all of the options that @sc{gnu} @command{diff} accepts. -Most options have two equivalent names, one of which is a single letter -preceded by @samp{-}, and the other of which is a long name preceded by -@samp{--}. Multiple single letter options (unless they take an -argument) can be combined into a single command line word: @option{-ac} is -equivalent to @option{-a -c}. Long named options can be abbreviated to -any unique prefix of their name. Brackets ([ and ]) indicate that an -option takes an optional argument. - -@table @option -@item -a -@itemx --text -Treat all files as text and compare them line-by-line, even if they -do not seem to be text. @xref{Binary}. - -@item -b -@itemx --ignore-space-change -Ignore changes in amount of white space. @xref{White Space}. - -@item -B -@itemx --ignore-blank-lines -Ignore changes that just insert or delete blank lines. @xref{Blank -Lines}. - -@item --binary -Read and write data in binary mode. @xref{Binary}. - -@item -c -Use the context output format, showing three lines of context. -@xref{Context Format}. - -@item -C @var{lines} -@itemx --context@r{[}=@var{lines}@r{]} -Use the context output format, showing @var{lines} (an integer) lines of -context, or three if @var{lines} is not given. @xref{Context Format}. -For proper operation, @command{patch} typically needs at least two lines of -context. - -On older systems, @command{diff} supports an obsolete option -@option{-@var{lines}} that has effect when combined with @option{-c} -or @option{-p}. @sc{posix} 1003.1-2001 (@pxref{Standards -conformance}) does not allow this; use @option{-C @var{lines}} -instead. - -@item --changed-group-format=@var{format} -Use @var{format} to output a line group containing differing lines from -both files in if-then-else format. @xref{Line Group Formats}. - -@item -d -@itemx --minimal -Change the algorithm perhaps find a smaller set of changes. This makes -@command{diff} slower (sometimes much slower). @xref{diff Performance}. - -@item -D @var{name} -@itemx --ifdef=@var{name} -Make merged @samp{#ifdef} format output, conditional on the preprocessor -macro @var{name}. @xref{If-then-else}. - -@item -e -@itemx --ed -Make output that is a valid @command{ed} script. @xref{ed Scripts}. - -@item -E -@itemx --ignore-tab-expansion -Ignore changes due to tab expansion. -@xref{White Space}. - -@item -f -@itemx --forward-ed -Make output that looks vaguely like an @command{ed} script but has changes -in the order they appear in the file. @xref{Forward ed}. - -@item -F @var{regexp} -@itemx --show-function-line=@var{regexp} -In context and unified format, for each hunk of differences, show some -of the last preceding line that matches @var{regexp}. @xref{Specified -Headings}. - -@item --from-file=@var{file} -Compare @var{file} to each operand; @var{file} may be a directory. - -@item --help -Output a summary of usage and then exit. - -@item --horizon-lines=@var{lines} -Do not discard the last @var{lines} lines of the common prefix -and the first @var{lines} lines of the common suffix. -@xref{diff Performance}. - -@item -i -@itemx --ignore-case -Ignore changes in case; consider upper- and lower-case letters -equivalent. @xref{Case Folding}. - -@item -I @var{regexp} -@itemx --ignore-matching-lines=@var{regexp} -Ignore changes that just insert or delete lines that match @var{regexp}. -@xref{Specified Folding}. - -@item --ignore-file-name-case -Ignore case when comparing file names during recursive comparison. -@xref{Comparing Directories}. - -@item -l -@itemx --paginate -Pass the output through @command{pr} to paginate it. @xref{Pagination}. - -@item --label=@var{label} -Use @var{label} instead of the file name in the context format -(@pxref{Context Format}) and unified format (@pxref{Unified Format}) -headers. @xref{RCS}. - -@item --left-column -Print only the left column of two common lines in side by side format. -@xref{Side by Side Format}. - -@item --line-format=@var{format} -Use @var{format} to output all input lines in if-then-else format. -@xref{Line Formats}. - -@item -n -@itemx --rcs -Output @sc{rcs}-format diffs; like @option{-f} except that each command -specifies the number of lines affected. @xref{RCS}. - -@item -N -@itemx --new-file -In directory comparison, if a file is found in only one directory, -treat it as present but empty in the other directory. @xref{Comparing -Directories}. - -@item --new-group-format=@var{format} -Use @var{format} to output a group of lines taken from just the second -file in if-then-else format. @xref{Line Group Formats}. - -@item --new-line-format=@var{format} -Use @var{format} to output a line taken from just the second file in -if-then-else format. @xref{Line Formats}. - -@item --old-group-format=@var{format} -Use @var{format} to output a group of lines taken from just the first -file in if-then-else format. @xref{Line Group Formats}. - -@item --old-line-format=@var{format} -Use @var{format} to output a line taken from just the first file in -if-then-else format. @xref{Line Formats}. - -@item -p -@itemx --show-c-function -Show which C function each change is in. @xref{C Function Headings}. - -@item -q -@itemx --brief -Report only whether the files differ, not the details of the -differences. @xref{Brief}. - -@item -r -@itemx --recursive -When comparing directories, recursively compare any subdirectories -found. @xref{Comparing Directories}. - -@item -s -@itemx --report-identical-files -Report when two files are the same. @xref{Comparing Directories}. - -@item -S @var{file} -@itemx --starting-file=@var{file} -When comparing directories, start with the file @var{file}. This is -used for resuming an aborted comparison. @xref{Comparing Directories}. - -@item --speed-large-files -Use heuristics to speed handling of large files that have numerous -scattered small changes. @xref{diff Performance}. - -@item --strip-trailing-cr -Strip any trailing carriage return at the end of an input line. -@xref{Binary}. - -@item --suppress-common-lines -Do not print common lines in side by side format. -@xref{Side by Side Format}. - -@item -t -@itemx --expand-tabs -Expand tabs to spaces in the output, to preserve the alignment of tabs -in the input files. @xref{Tabs}. - -@item -T -@itemx --initial-tab -Output a tab rather than a space before the text of a line in normal or -context format. This causes the alignment of tabs in the line to look -normal. @xref{Tabs}. - -@item --to-file=@var{file} -Compare each operand to @var{file}; @var{file} may be a directory. - -@item -u -Use the unified output format, showing three lines of context. -@xref{Unified Format}. - -@item --unchanged-group-format=@var{format} -Use @var{format} to output a group of common lines taken from both files -in if-then-else format. @xref{Line Group Formats}. - -@item --unchanged-line-format=@var{format} -Use @var{format} to output a line common to both files in if-then-else -format. @xref{Line Formats}. - -@item --unidirectional-new-file -When comparing directories, if a file appears only in the second -directory of the two, treat it as present but empty in the other. -@xref{Comparing Directories}. - -@item -U @var{lines} -@itemx --unified@r{[}=@var{lines}@r{]} -Use the unified output format, showing @var{lines} (an integer) lines of -context, or three if @var{lines} is not given. @xref{Unified Format}. -For proper operation, @command{patch} typically needs at least two lines of -context. - -On older systems, @command{diff} supports an obsolete option -@option{-@var{lines}} that has effect when combined with @option{-u}. -@sc{posix} 1003.1-2001 (@pxref{Standards conformance}) does not allow -this; use @option{-U @var{lines}} instead. - -@item -v -@itemx --version -Output version information and then exit. - -@item -w -@itemx --ignore-all-space -Ignore white space when comparing lines. @xref{White Space}. - -@item -W @var{columns} -@itemx --width=@var{columns} -Output at most @var{columns} (default 130) print columns per line in -side by side format. @xref{Side by Side Format}. - -@item -x @var{pattern} -@itemx --exclude=@var{pattern} -When comparing directories, ignore files and subdirectories whose basenames -match @var{pattern}. @xref{Comparing Directories}. - -@item -X @var{file} -@itemx --exclude-from=@var{file} -When comparing directories, ignore files and subdirectories whose basenames -match any pattern contained in @var{file}. @xref{Comparing Directories}. - -@item -y -@itemx --side-by-side -Use the side by side output format. @xref{Side by Side Format}. -@end table - -@node Invoking diff3 -@chapter Invoking @command{diff3} -@cindex invoking @command{diff3} -@cindex @command{diff3} invocation - -The @command{diff3} command compares three files and outputs descriptions -of their differences. Its arguments are as follows: - -@example -diff3 @var{options}@dots{} @var{mine} @var{older} @var{yours} -@end example - -The files to compare are @var{mine}, @var{older}, and @var{yours}. -At most one of these three file names may be @file{-}, -which tells @command{diff3} to read the standard input for that file. - -An exit status of 0 means @command{diff3} was successful, 1 means some -conflicts were found, and 2 means trouble. - -@menu -* diff3 Options:: Summary of options to @command{diff3}. -@end menu - -@node diff3 Options -@section Options to @command{diff3} -@cindex @command{diff3} options -@cindex options for @command{diff3} - -Below is a summary of all of the options that @sc{gnu} @command{diff3} -accepts. Multiple single letter options (unless they take an argument) -can be combined into a single command line argument. - -@table @option -@item -a -@itemx --text -Treat all files as text and compare them line-by-line, even if they -do not appear to be text. @xref{Binary}. - -@item -A -@itemx --show-all -Incorporate all unmerged changes from @var{older} to @var{yours} into -@var{mine}, surrounding conflicts with bracket lines. -@xref{Marking Conflicts}. - -@item --diff-program=@var{program} -Use the compatible comparison program @var{program} to compare files -instead of @command{diff}. - -@item -e -@itemx --ed -Generate an @command{ed} script that incorporates all the changes from -@var{older} to @var{yours} into @var{mine}. @xref{Which Changes}. - -@item -E -@itemx --show-overlap -Like @option{-e}, except bracket lines from overlapping changes' first -and third files. -@xref{Marking Conflicts}. -With @option{-E}, an overlapping change looks like this: - -@example -<<<<<<< @var{mine} -@r{lines from @var{mine}} -======= -@r{lines from @var{yours}} ->>>>>>> @var{yours} -@end example - -@item --help -Output a summary of usage and then exit. - -@item -i -Generate @samp{w} and @samp{q} commands at the end of the @command{ed} -script for System V compatibility. This option must be combined with -one of the @option{-AeExX3} options, and may not be combined with @option{-m}. -@xref{Saving the Changed File}. - -@item -L @var{label} -@itemx --label=@var{label} -Use the label @var{label} for the brackets output by the @option{-A}, -@option{-E} and @option{-X} options. This option may be given up to three -times, one for each input file. The default labels are the names of -the input files. Thus @samp{diff3 -L X -L Y -L Z -m A B C} acts like -@samp{diff3 -m A B C}, except that the output looks like it came from -files named @samp{X}, @samp{Y} and @samp{Z} rather than from files -named @samp{A}, @samp{B} and @samp{C}. @xref{Marking Conflicts}. - -@item -m -@itemx --merge -Apply the edit script to the first file and send the result to standard -output. Unlike piping the output from @command{diff3} to @command{ed}, this -works even for binary files and incomplete lines. @option{-A} is assumed -if no edit script option is specified. @xref{Bypassing ed}. - -@item -T -@itemx --initial-tab -Output a tab rather than two spaces before the text of a line in normal format. -This causes the alignment of tabs in the line to look normal. @xref{Tabs}. - -@item -v -@itemx --version -Output version information and then exit. - -@item -x -@itemx --overlap-only -Like @option{-e}, except output only the overlapping changes. -@xref{Which Changes}. - -@item -X -Like @option{-E}, except output only the overlapping changes. -In other words, like @option{-x}, except bracket changes as in @option{-E}. -@xref{Marking Conflicts}. - -@item -3 -@itemx --easy-only -Like @option{-e}, except output only the nonoverlapping changes. -@xref{Which Changes}. -@end table - -@node Invoking patch -@chapter Invoking @command{patch} -@cindex invoking @command{patch} -@cindex @command{patch} invocation - -Normally @command{patch} is invoked like this: - -@example -patch <@var{patchfile} -@end example - -The full format for invoking @command{patch} is: - -@example -patch @var{options}@dots{} @r{[}@var{origfile} @r{[}@var{patchfile}@r{]}@r{]} -@end example - -You can also specify where to read the patch from with the @option{-i -@var{patchfile}} or @option{--input=@var{patchfile}} option. -If you do not specify @var{patchfile}, or if @var{patchfile} is -@file{-}, @command{patch} reads the patch (that is, the @command{diff} output) -from the standard input. - -If you do not specify an input file on the command line, @command{patch} -tries to intuit from the @dfn{leading text} (any text in the patch -that comes before the @command{diff} output) which file to edit. -@xref{Multiple Patches}. - -By default, @command{patch} replaces the original input file with the -patched version, possibly after renaming the original file into a -backup file (@pxref{Backup Names}, for a description of how -@command{patch} names backup files). You can also specify where to -put the output with the @option{-o @var{file}} or -@option{--output=@var{file}} option; however, do not use this option -if @var{file} is one of the input files. - -@menu -* patch Options:: Summary table of options to @command{patch}. -@end menu - -@node patch Options -@section Options to @command{patch} -@cindex @command{patch} options -@cindex options for @command{patch} - -Here is a summary of all of the options that @sc{gnu} @command{patch} -accepts. @xref{patch and Tradition}, for which of these options are -safe to use in older versions of @command{patch}. - -Multiple single-letter options that do not take an argument can be -combined into a single command line argument with only one dash. - -@table @option -@item -b -@itemx --backup -Back up the original contents of each file, even if backups would -normally not be made. @xref{Backups}. - -@item -B @var{prefix} -@itemx --prefix=@var{prefix} -Prepend @var{prefix} to backup file names. @xref{Backup Names}. - -@item --backup-if-mismatch -Back up the original contents of each file if the patch does not -exactly match the file. This is the default behavior when not -conforming to @sc{posix}. @xref{Backups}. - -@item --binary -Read and write all files in binary mode, except for standard output -and @file{/dev/tty}. This option has no effect on -@sc{posix}-conforming systems like @sc{gnu}/Linux. On systems where -this option makes a difference, the patch should be generated by -@samp{diff -a --binary}. @xref{Binary}. - -@item -c -@itemx --context -Interpret the patch file as a context diff. @xref{patch Input}. - -@item -d @var{directory} -@itemx --directory=@var{directory} -Make directory @var{directory} the current directory for interpreting -both file names in the patch file, and file names given as arguments to -other options. @xref{patch Directories}. - -@item -D @var{name} -@itemx --ifdef=@var{name} -Make merged if-then-else output using @var{name}. @xref{If-then-else}. - -@item --dry-run -Print the results of applying the patches without actually changing -any files. @xref{Dry Runs}. - -@item -e -@itemx --ed -Interpret the patch file as an @command{ed} script. @xref{patch Input}. - -@item -E -@itemx --remove-empty-files -Remove output files that are empty after the patches have been applied. -@xref{Creating and Removing}. - -@item -f -@itemx --force -Assume that the user knows exactly what he or she is doing, and do not -ask any questions. @xref{patch Messages}. - -@item -F @var{lines} -@itemx --fuzz=@var{lines} -Set the maximum fuzz factor to @var{lines}. @xref{Inexact}. - -@item -g @var{num} -@itemx --get=@var{num} -If @var{num} is positive, get input files from a revision control -system as necessary; if zero, do not get the files; if negative, ask -the user whether to get the files. @xref{Revision Control}. - -@item --help -Output a summary of usage and then exit. - -@item -i @var{patchfile} -@itemx --input=@var{patchfile} -Read the patch from @var{patchfile} rather than from standard input. -@xref{patch Options}. - -@item -l -@itemx --ignore-white-space -Let any sequence of blanks (spaces or tabs) in the patch file match -any sequence of blanks in the input file. @xref{Changed White Space}. - -@item -n -@itemx --normal -Interpret the patch file as a normal diff. @xref{patch Input}. - -@item -N -@itemx --forward -Ignore patches that @command{patch} thinks are reversed or already applied. -See also @option{-R}. @xref{Reversed Patches}. - -@item --no-backup-if-mismatch -Do not back up the original contents of files. This is the default -behavior when conforming to @sc{posix}. @xref{Backups}. - -@item -o @var{file} -@itemx --output=@var{file} -Use @var{file} as the output file name. @xref{patch Options}. - -@item -p@var{number} -@itemx --strip=@var{number} -Set the file name strip count to @var{number}. @xref{patch Directories}. - -@item --posix -Conform to @sc{posix}, as if the @env{POSIXLY_CORRECT} environment -variable had been set. @xref{patch and POSIX}. - -@item --quoting-style=@var{word} -Use style @var{word} to quote names in diagnostics, as if the -@env{QUOTING_STYLE} environment variable had been set to @var{word}. -@xref{patch Quoting Style}. - -@item -r @var{reject-file} -@itemx --reject-file=@var{reject-file} -Use @var{reject-file} as the reject file name. @xref{Reject Names}. - -@item -R -@itemx --reverse -Assume that this patch was created with the old and new files swapped. -@xref{Reversed Patches}. - -@item -s -@itemx --quiet -@itemx --silent -Work silently unless an error occurs. @xref{patch Messages}. - -@item -t -@itemx --batch -Do not ask any questions. @xref{patch Messages}. - -@item -T -@itemx --set-time -Set the modification and access times of patched files from time -stamps given in context diff headers, assuming that the context diff -headers use local time. @xref{Patching Time Stamps}. - -@item -u -@itemx --unified -Interpret the patch file as a unified diff. @xref{patch Input}. - -@item -v -@itemx --version -Output version information and then exit. - -@item -V @var{backup-style} -@itemx --version=control=@var{backup-style} -Select the naming convention for backup file names. @xref{Backup Names}. - -@item --verbose -Print more diagnostics than usual. @xref{patch Messages}. - -@item -x @var{number} -@itemx --debug=@var{number} -Set internal debugging flags. Of interest only to @command{patch} -patchers. - -@item -Y @var{prefix} -@itemx --basename-prefix=@var{prefix} -Prepend @var{prefix} to base names of backup files. @xref{Backup Names}. - -@item -z @var{suffix} -@itemx --suffix=@var{suffix} -Use @var{suffix} as the backup extension instead of @samp{.orig} or -@samp{~}. @xref{Backup Names}. - -@item -Z -@itemx --set-utc -Set the modification and access times of patched files from time -stamps given in context diff headers, assuming that the context diff -headers use @sc{utc}. @xref{Patching Time Stamps}. - -@end table - -@node Invoking sdiff -@chapter Invoking @command{sdiff} -@cindex invoking @command{sdiff} -@cindex @command{sdiff} invocation - -The @command{sdiff} command merges two files and interactively outputs the -results. Its arguments are as follows: - -@example -sdiff -o @var{outfile} @var{options}@dots{} @var{from-file} @var{to-file} -@end example - -This merges @var{from-file} with @var{to-file}, with output to @var{outfile}. -If @var{from-file} is a directory and @var{to-file} is not, @command{sdiff} -compares the file in @var{from-file} whose file name is that of @var{to-file}, -and vice versa. @var{from-file} and @var{to-file} may not both be -directories. - -@command{sdiff} options begin with @samp{-}, so normally @var{from-file} -and @var{to-file} may not begin with @samp{-}. However, @option{--} as an -argument by itself treats the remaining arguments as file names even if -they begin with @samp{-}. You may not use @file{-} as an input file. - -@command{sdiff} without @option{-o} (or @option{--output}) produces a -side-by-side difference. This usage is obsolete; use the @option{-y} -or @option{--side-by-side} option of @command{diff} instead. - -An exit status of 0 means no differences were found, 1 means some -differences were found, and 2 means trouble. - -@menu -* sdiff Options:: Summary of options to @command{diff}. -@end menu - -@node sdiff Options -@section Options to @command{sdiff} -@cindex @command{sdiff} options -@cindex options for @command{sdiff} - -Below is a summary of all of the options that @sc{gnu} @command{sdiff} accepts. -Each option has two equivalent names, one of which is a single -letter preceded by @samp{-}, and the other of which is a long name -preceded by @samp{--}. Multiple single letter options (unless they take -an argument) can be combined into a single command line argument. Long -named options can be abbreviated to any unique prefix of their name. - -@table @option -@item -a -@itemx --text -Treat all files as text and compare them line-by-line, even if they -do not appear to be text. @xref{Binary}. - -@item -b -@itemx --ignore-space-change -Ignore changes in amount of white space. @xref{White Space}. - -@item -B -@itemx --ignore-blank-lines -Ignore changes that just insert or delete blank lines. @xref{Blank -Lines}. - -@item -d -@itemx --minimal -Change the algorithm to perhaps find a smaller set of changes. This -makes @command{sdiff} slower (sometimes much slower). @xref{diff -Performance}. - -@item --diff-program=@var{program} -Use the compatible comparison program @var{program} to compare files -instead of @command{diff}. - -@item -E -@itemx --ignore-tab-expansion -Ignore changes due to tab expansion. -@xref{White Space}. - -@item --help -Output a summary of usage and then exit. - -@item -i -@itemx --ignore-case -Ignore changes in case; consider upper- and lower-case to be the same. -@xref{Case Folding}. - -@item -I @var{regexp} -@itemx --ignore-matching-lines=@var{regexp} -Ignore changes that just insert or delete lines that match @var{regexp}. -@xref{Specified Folding}. - -@item -l -@itemx --left-column -Print only the left column of two common lines. -@xref{Side by Side Format}. - -@item -o @var{file} -@itemx --output=@var{file} -Put merged output into @var{file}. This option is required for merging. - -@item -s -@itemx --suppress-common-lines -Do not print common lines. @xref{Side by Side Format}. - -@item --speed-large-files -Use heuristics to speed handling of large files that have numerous -scattered small changes. @xref{diff Performance}. - -@item --strip-trailing-cr -Strip any trailing carriage return at the end of an input line. -@xref{Binary}. - -@item -t -@itemx --expand-tabs -Expand tabs to spaces in the output, to preserve the alignment of tabs -in the input files. @xref{Tabs}. - -@item -v -@itemx --version -Output version information and then exit. - -@item -w @var{columns} -@itemx --width=@var{columns} -Output at most @var{columns} (default 130) print columns per line. -@xref{Side by Side Format}. Note that for historical reasons, this -option is @option{-W} in @command{diff}, @option{-w} in @command{sdiff}. - -@item -W -@itemx --ignore-all-space -Ignore white space when comparing lines. @xref{White Space}. -Note that for historical reasons, this option is @option{-w} in @command{diff}, -@option{-W} in @command{sdiff}. -@end table - -@node Standards conformance -@chapter Standards conformance -@cindex @sc{posix} - -@vindex POSIXLY_CORRECT -In a few cases, the @sc{gnu} utilities' default behavior is -incompatible with the @sc{posix} standard. To suppress these -incompatibilities, define the @env{POSIXLY_CORRECT} environment -variable. Unless you are checking for @sc{posix} conformance, you -probably do not need to define @env{POSIXLY_CORRECT}. - -Normally options and operands can appear in any order, and programs act -as if all the options appear before any operands. For example, -@samp{diff lao tzu -C 2} acts like @samp{diff -C 2 lao tzu}, since -@samp{2} is an option-argument of @option{-C}. However, if the -@env{POSIXLY_CORRECT} environment variable is set, options must appear -before operands, unless otherwise specified for a particular command. - -Newer versions of @sc{posix} are occasionally incompatible with older -versions. For example, older versions of @sc{posix} allowed the -command @samp{diff -c -10} to have the same meaning as @samp{diff -C -10}, but @sc{posix} 1003.1-2001 @samp{diff} no longer allows -digit-string options like @option{-10}. - -@vindex _POSIX2_VERSION -The @sc{gnu} utilities normally conform to the version of @sc{posix} -that is standard for your system. To cause them to conform to a -different version of @sc{posix}, define the @env{_POSIX2_VERSION} -environment variable to a value of the form @var{yyyymm} specifying -the year and month the standard was adopted. Two values are currently -supported for @env{_POSIX2_VERSION}: @samp{199209} stands for -@sc{posix} 1003.2-1992, and @samp{200112} stands for @sc{posix} -1003.1-2001. For example, if you are running older software that -assumes an older version of @sc{posix} and uses @samp{diff -c -10}, -you can work around the compatibility problems by setting -@samp{_POSIX2_VERSION=199209} in your environment. - -@node Projects -@chapter Future Projects - -Here are some ideas for improving @sc{gnu} @command{diff} and -@command{patch}. The @sc{gnu} project has identified some -improvements as potential programming projects for volunteers. You -can also help by reporting any bugs that you find. - -If you are a programmer and would like to contribute something to the -@sc{gnu} project, please consider volunteering for one of these -projects. If you are seriously contemplating work, please write to -@email{gnu@@gnu.org} to coordinate with other volunteers. - -@menu -* Shortcomings:: Suggested projects for improvements. -* Bugs:: Reporting bugs. -@end menu - -@node Shortcomings -@section Suggested Projects for Improving @sc{gnu} @command{diff} and @command{patch} -@cindex projects for directories - -One should be able to use @sc{gnu} @command{diff} to generate a patch from any -pair of directory trees, and given the patch and a copy of one such -tree, use @command{patch} to generate a faithful copy of the other. -Unfortunately, some changes to directory trees cannot be expressed using -current patch formats; also, @command{patch} does not handle some of the -existing formats. These shortcomings motivate the following suggested -projects. - -@menu -* Internationalization:: Handling multibyte and varying-width characters. -* Changing Structure:: Handling changes to the directory structure. -* Special Files:: Handling symbolic links, device special files, etc. -* Unusual File Names:: Handling file names that contain unusual characters. -* Time Stamp Order:: Outputting diffs in time stamp order. -* Ignoring Changes:: Ignoring certain changes while showing others. -* Speedups:: Improving performance. -@end menu - -@node Internationalization -@subsection Handling Multibyte and Varying-Width Characters -@cindex multibyte characters -@cindex varying-width characters - -@command{diff}, @command{diff3} and @command{sdiff} treat each line of -input as a string of unibyte characters. This can mishandle multibyte -characters in some cases. For example, when asked to ignore spaces, -@command{diff} does not properly ignore a multibyte space character. - -Also, @command{diff} currently assumes that each byte is one column -wide, and this assumption is incorrect in some locales, e.g., locales -that use UTF-8 encoding. This causes problems with the @option{-y} or -@option{--side-by-side} option of @command{diff}. - -These problems need to be fixed without unduly affecting the -performance of the utilities in unibyte environments. - -The IBM GNU/Linux Technology Center Internationalization Team has -proposed some patches to support internationalized @command{diff} -@uref{http://oss.software.ibm.com/developer/opensource/linux/patches/i18n/diffutils-2.7.2-i18n-0.1.patch.gz}. -Unfortunately, these patches are incomplete and are to an older -version of @command{diff}, so more work needs to be done in this area. - -@node Changing Structure -@subsection Handling Changes to the Directory Structure -@cindex directory structure changes - -@command{diff} and @command{patch} do not handle some changes to directory -structure. For example, suppose one directory tree contains a directory -named @samp{D} with some subsidiary files, and another contains a file -with the same name @samp{D}. @samp{diff -r} does not output enough -information for @command{patch} to transform the directory subtree into -the file. - -There should be a way to specify that a file has been removed without -having to include its entire contents in the patch file. There should -also be a way to tell @command{patch} that a file was renamed, even if -there is no way for @command{diff} to generate such information. -There should be a way to tell @command{patch} that a file's time stamp -has changed, even if its contents have not changed. - -These problems can be fixed by extending the @command{diff} output format -to represent changes in directory structure, and extending @command{patch} -to understand these extensions. - -@node Special Files -@subsection Files that are Neither Directories Nor Regular Files -@cindex special files - -Some files are neither directories nor regular files: they are unusual -files like symbolic links, device special files, named pipes, and -sockets. Currently, @command{diff} treats symbolic links like regular files; -it treats other special files like regular files if they are specified -at the top level, but simply reports their presence when comparing -directories. This means that @command{patch} cannot represent changes -to such files. For example, if you change which file a symbolic link -points to, @command{diff} outputs the difference between the two files, -instead of the change to the symbolic link. - -@c This might not be a good idea; is it wise for root to install devices -@c this way? -@command{diff} should optionally report changes to special files specially, -and @command{patch} should be extended to understand these extensions. - -@node Unusual File Names -@subsection File Names that Contain Unusual Characters -@cindex file names with unusual characters - -When a file name contains an unusual character like a newline or -white space, @samp{diff -r} generates a patch that @command{patch} cannot -parse. The problem is with format of @command{diff} output, not just with -@command{patch}, because with odd enough file names one can cause -@command{diff} to generate a patch that is syntactically correct but -patches the wrong files. The format of @command{diff} output should be -extended to handle all possible file names. - -@node Time Stamp Order -@subsection Outputting Diffs in Time Stamp Order - -Applying @command{patch} to a multiple-file diff can result in files -whose time stamps are out of order. @sc{gnu} @command{patch} has -options to restore the time stamps of the updated files -(@pxref{Patching Time Stamps}), but sometimes it is useful to generate -a patch that works even if the recipient does not have @sc{gnu} patch, -or does not use these options. One way to do this would be to -implement a @command{diff} option to output diffs in time stamp order. - -@node Ignoring Changes -@subsection Ignoring Certain Changes - -It would be nice to have a feature for specifying two strings, one in -@var{from-file} and one in @var{to-file}, which should be considered to -match. Thus, if the two strings are @samp{foo} and @samp{bar}, then if -two lines differ only in that @samp{foo} in file 1 corresponds to -@samp{bar} in file 2, the lines are treated as identical. - -It is not clear how general this feature can or should be, or -what syntax should be used for it. - -A partial substitute is to filter one or both files before comparing, -e.g.: - -@example -sed 's/foo/bar/g' file1 | diff - file2 -@end example - -However, this outputs the filtered text, not the original. - -@node Speedups -@subsection Improving Performance - -When comparing two large directory structures, one of which was -originally copied from the other with time stamps preserved (e.g., -with @samp{cp -pR}), it would greatly improve performance if an option -told @command{diff} to assume that two files with the same size and -time stamps have the same content. @xref{diff Performance}. - -@node Bugs -@section Reporting Bugs -@cindex bug reports -@cindex reporting bugs - -If you think you have found a bug in @sc{gnu} @command{cmp}, -@command{diff}, @command{diff3}, or @command{sdiff}, please report it -by electronic mail to the -@uref{http://mail.gnu.org/mailman/listinfo/bug-gnu-utils,GNU utilities -bug report mailing list} @email{bug-gnu-utils@@gnu.org}. Please send -bug reports for @sc{gnu} @command{patch} to -@email{bug-patch@@gnu.org}. Send as precise a description of the -problem as you can, including the output of the @option{--version} -option and sample input files that produce the bug, if applicable. If -you have a nontrivial fix for the bug, please send it as well. If you -have a patch, please send it too. It may simplify the maintainer's -job if the patch is relative to a recent test release, which you can -find in the directory @uref{ftp://alpha.gnu.org/gnu/diffutils/}. - -@node Copying This Manual -@appendix Copying This Manual - -@menu -* GNU Free Documentation License:: License for copying this manual. -@end menu - -@include fdl.texi - -@node Index -@appendix Index - -@printindex cp - -@bye diff --git a/gnu/dist/diffutils/doc/fdl.texi b/gnu/dist/diffutils/doc/fdl.texi deleted file mode 100644 index d61c8e3c421..00000000000 --- a/gnu/dist/diffutils/doc/fdl.texi +++ /dev/null @@ -1,404 +0,0 @@ - -@c $NetBSD: fdl.texi,v 1.1.1.1 2003/01/26 00:43:12 wiz Exp $ -@node GNU Free Documentation License -@appendixsec GNU Free Documentation License - -@cindex FDL, GNU Free Documentation License -@center Version 1.1, March 2000 - -@display -Copyright @copyright{} 2000 Free Software Foundation, Inc. -59 Temple Place, Suite 330, Boston, MA 02111-1307, USA - -Everyone is permitted to copy and distribute verbatim copies -of this license document, but changing it is not allowed. -@end display - -@enumerate 0 -@item -PREAMBLE - -The purpose of this License is to make a manual, textbook, or other -written document @dfn{free} in the sense of freedom: to assure everyone -the effective freedom to copy and redistribute it, with or without -modifying it, either commercially or noncommercially. Secondarily, -this License preserves for the author and publisher a way to get -credit for their work, while not being considered responsible for -modifications made by others. - -This License is a kind of ``copyleft'', which means that derivative -works of the document must themselves be free in the same sense. It -complements the GNU General Public License, which is a copyleft -license designed for free software. - -We have designed this License in order to use it for manuals for free -software, because free software needs free documentation: a free -program should come with manuals providing the same freedoms that the -software does. But this License is not limited to software manuals; -it can be used for any textual work, regardless of subject matter or -whether it is published as a printed book. We recommend this License -principally for works whose purpose is instruction or reference. - -@item -APPLICABILITY AND DEFINITIONS - -This License applies to any manual or other work that contains a -notice placed by the copyright holder saying it can be distributed -under the terms of this License. The ``Document'', below, refers to any -such manual or work. Any member of the public is a licensee, and is -addressed as ``you''. - -A ``Modified Version'' of the Document means any work containing the -Document or a portion of it, either copied verbatim, or with -modifications and/or translated into another language. - -A ``Secondary Section'' is a named appendix or a front-matter section of -the Document that deals exclusively with the relationship of the -publishers or authors of the Document to the Document's overall subject -(or to related matters) and contains nothing that could fall directly -within that overall subject. (For example, if the Document is in part a -textbook of mathematics, a Secondary Section may not explain any -mathematics.) The relationship could be a matter of historical -connection with the subject or with related matters, or of legal, -commercial, philosophical, ethical or political position regarding -them. - -The ``Invariant Sections'' are certain Secondary Sections whose titles -are designated, as being those of Invariant Sections, in the notice -that says that the Document is released under this License. - -The ``Cover Texts'' are certain short passages of text that are listed, -as Front-Cover Texts or Back-Cover Texts, in the notice that says that -the Document is released under this License. - -A ``Transparent'' copy of the Document means a machine-readable copy, -represented in a format whose specification is available to the -general public, whose contents can be viewed and edited directly and -straightforwardly with generic text editors or (for images composed of -pixels) generic paint programs or (for drawings) some widely available -drawing editor, and that is suitable for input to text formatters or -for automatic translation to a variety of formats suitable for input -to text formatters. A copy made in an otherwise Transparent file -format whose markup has been designed to thwart or discourage -subsequent modification by readers is not Transparent. A copy that is -not ``Transparent'' is called ``Opaque''. - -Examples of suitable formats for Transparent copies include plain -@sc{ascii} without markup, Texinfo input format, La@TeX{} input format, -@acronym{SGML} or @acronym{XML} using a publicly available -@acronym{DTD}, and standard-conforming simple @acronym{HTML} designed -for human modification. Opaque formats include PostScript, -@acronym{PDF}, proprietary formats that can be read and edited only by -proprietary word processors, @acronym{SGML} or @acronym{XML} for which -the @acronym{DTD} and/or processing tools are not generally available, -and the machine-generated @acronym{HTML} produced by some word -processors for output purposes only. - -The ``Title Page'' means, for a printed book, the title page itself, -plus such following pages as are needed to hold, legibly, the material -this License requires to appear in the title page. For works in -formats which do not have any title page as such, ``Title Page'' means -the text near the most prominent appearance of the work's title, -preceding the beginning of the body of the text. - -@item -VERBATIM COPYING - -You may copy and distribute the Document in any medium, either -commercially or noncommercially, provided that this License, the -copyright notices, and the license notice saying this License applies -to the Document are reproduced in all copies, and that you add no other -conditions whatsoever to those of this License. You may not use -technical measures to obstruct or control the reading or further -copying of the copies you make or distribute. However, you may accept -compensation in exchange for copies. If you distribute a large enough -number of copies you must also follow the conditions in section 3. - -You may also lend copies, under the same conditions stated above, and -you may publicly display copies. - -@item -COPYING IN QUANTITY - -If you publish printed copies of the Document numbering more than 100, -and the Document's license notice requires Cover Texts, you must enclose -the copies in covers that carry, clearly and legibly, all these Cover -Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on -the back cover. Both covers must also clearly and legibly identify -you as the publisher of these copies. The front cover must present -the full title with all words of the title equally prominent and -visible. You may add other material on the covers in addition. -Copying with changes limited to the covers, as long as they preserve -the title of the Document and satisfy these conditions, can be treated -as verbatim copying in other respects. - -If the required texts for either cover are too voluminous to fit -legibly, you should put the first ones listed (as many as fit -reasonably) on the actual cover, and continue the rest onto adjacent -pages. - -If you publish or distribute Opaque copies of the Document numbering -more than 100, you must either include a machine-readable Transparent -copy along with each Opaque copy, or state in or with each Opaque copy -a publicly-accessible computer-network location containing a complete -Transparent copy of the Document, free of added material, which the -general network-using public has access to download anonymously at no -charge using public-standard network protocols. If you use the latter -option, you must take reasonably prudent steps, when you begin -distribution of Opaque copies in quantity, to ensure that this -Transparent copy will remain thus accessible at the stated location -until at least one year after the last time you distribute an Opaque -copy (directly or through your agents or retailers) of that edition to -the public. - -It is requested, but not required, that you contact the authors of the -Document well before redistributing any large number of copies, to give -them a chance to provide you with an updated version of the Document. - -@item -MODIFICATIONS - -You may copy and distribute a Modified Version of the Document under -the conditions of sections 2 and 3 above, provided that you release -the Modified Version under precisely this License, with the Modified -Version filling the role of the Document, thus licensing distribution -and modification of the Modified Version to whoever possesses a copy -of it. In addition, you must do these things in the Modified Version: - -@enumerate A -@item -Use in the Title Page (and on the covers, if any) a title distinct -from that of the Document, and from those of previous versions -(which should, if there were any, be listed in the History section -of the Document). You may use the same title as a previous version -if the original publisher of that version gives permission. - -@item -List on the Title Page, as authors, one or more persons or entities -responsible for authorship of the modifications in the Modified -Version, together with at least five of the principal authors of the -Document (all of its principal authors, if it has less than five). - -@item -State on the Title page the name of the publisher of the -Modified Version, as the publisher. - -@item -Preserve all the copyright notices of the Document. - -@item -Add an appropriate copyright notice for your modifications -adjacent to the other copyright notices. - -@item -Include, immediately after the copyright notices, a license notice -giving the public permission to use the Modified Version under the -terms of this License, in the form shown in the Addendum below. - -@item -Preserve in that license notice the full lists of Invariant Sections -and required Cover Texts given in the Document's license notice. - -@item -Include an unaltered copy of this License. - -@item -Preserve the section entitled ``History'', and its title, and add to -it an item stating at least the title, year, new authors, and -publisher of the Modified Version as given on the Title Page. If -there is no section entitled ``History'' in the Document, create one -stating the title, year, authors, and publisher of the Document as -given on its Title Page, then add an item describing the Modified -Version as stated in the previous sentence. - -@item -Preserve the network location, if any, given in the Document for -public access to a Transparent copy of the Document, and likewise -the network locations given in the Document for previous versions -it was based on. These may be placed in the ``History'' section. -You may omit a network location for a work that was published at -least four years before the Document itself, or if the original -publisher of the version it refers to gives permission. - -@item -In any section entitled ``Acknowledgments'' or ``Dedications'', -preserve the section's title, and preserve in the section all the -substance and tone of each of the contributor acknowledgments -and/or dedications given therein. - -@item -Preserve all the Invariant Sections of the Document, -unaltered in their text and in their titles. Section numbers -or the equivalent are not considered part of the section titles. - -@item -Delete any section entitled ``Endorsements''. Such a section -may not be included in the Modified Version. - -@item -Do not retitle any existing section as ``Endorsements'' -or to conflict in title with any Invariant Section. -@end enumerate - -If the Modified Version includes new front-matter sections or -appendices that qualify as Secondary Sections and contain no material -copied from the Document, you may at your option designate some or all -of these sections as invariant. To do this, add their titles to the -list of Invariant Sections in the Modified Version's license notice. -These titles must be distinct from any other section titles. - -You may add a section entitled ``Endorsements'', provided it contains -nothing but endorsements of your Modified Version by various -parties---for example, statements of peer review or that the text has -been approved by an organization as the authoritative definition of a -standard. - -You may add a passage of up to five words as a Front-Cover Text, and a -passage of up to 25 words as a Back-Cover Text, to the end of the list -of Cover Texts in the Modified Version. Only one passage of -Front-Cover Text and one of Back-Cover Text may be added by (or -through arrangements made by) any one entity. If the Document already -includes a cover text for the same cover, previously added by you or -by arrangement made by the same entity you are acting on behalf of, -you may not add another; but you may replace the old one, on explicit -permission from the previous publisher that added the old one. - -The author(s) and publisher(s) of the Document do not by this License -give permission to use their names for publicity for or to assert or -imply endorsement of any Modified Version. - -@item -COMBINING DOCUMENTS - -You may combine the Document with other documents released under this -License, under the terms defined in section 4 above for modified -versions, provided that you include in the combination all of the -Invariant Sections of all of the original documents, unmodified, and -list them all as Invariant Sections of your combined work in its -license notice. - -The combined work need only contain one copy of this License, and -multiple identical Invariant Sections may be replaced with a single -copy. If there are multiple Invariant Sections with the same name but -different contents, make the title of each such section unique by -adding at the end of it, in parentheses, the name of the original -author or publisher of that section if known, or else a unique number. -Make the same adjustment to the section titles in the list of -Invariant Sections in the license notice of the combined work. - -In the combination, you must combine any sections entitled ``History'' -in the various original documents, forming one section entitled -``History''; likewise combine any sections entitled ``Acknowledgments'', -and any sections entitled ``Dedications''. You must delete all sections -entitled ``Endorsements.'' - -@item -COLLECTIONS OF DOCUMENTS - -You may make a collection consisting of the Document and other documents -released under this License, and replace the individual copies of this -License in the various documents with a single copy that is included in -the collection, provided that you follow the rules of this License for -verbatim copying of each of the documents in all other respects. - -You may extract a single document from such a collection, and distribute -it individually under this License, provided you insert a copy of this -License into the extracted document, and follow this License in all -other respects regarding verbatim copying of that document. - -@item -AGGREGATION WITH INDEPENDENT WORKS - -A compilation of the Document or its derivatives with other separate -and independent documents or works, in or on a volume of a storage or -distribution medium, does not as a whole count as a Modified Version -of the Document, provided no compilation copyright is claimed for the -compilation. Such a compilation is called an ``aggregate'', and this -License does not apply to the other self-contained works thus compiled -with the Document, on account of their being thus compiled, if they -are not themselves derivative works of the Document. - -If the Cover Text requirement of section 3 is applicable to these -copies of the Document, then if the Document is less than one quarter -of the entire aggregate, the Document's Cover Texts may be placed on -covers that surround only the Document within the aggregate. -Otherwise they must appear on covers around the whole aggregate. - -@item -TRANSLATION - -Translation is considered a kind of modification, so you may -distribute translations of the Document under the terms of section 4. -Replacing Invariant Sections with translations requires special -permission from their copyright holders, but you may include -translations of some or all Invariant Sections in addition to the -original versions of these Invariant Sections. You may include a -translation of this License provided that you also include the -original English version of this License. In case of a disagreement -between the translation and the original English version of this -License, the original English version will prevail. - -@item -TERMINATION - -You may not copy, modify, sublicense, or distribute the Document except -as expressly provided for under this License. Any other attempt to -copy, modify, sublicense or distribute the Document is void, and will -automatically terminate your rights under this License. However, -parties who have received copies, or rights, from you under this -License will not have their licenses terminated so long as such -parties remain in full compliance. - -@item -FUTURE REVISIONS OF THIS LICENSE - -The Free Software Foundation may publish new, revised versions -of the GNU Free Documentation License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. See -@uref{http://www.gnu.org/copyleft/}. - -Each version of the License is given a distinguishing version number. -If the Document specifies that a particular numbered version of this -License ``or any later version'' applies to it, you have the option of -following the terms and conditions either of that specified version or -of any later version that has been published (not as a draft) by the -Free Software Foundation. If the Document does not specify a version -number of this License, you may choose any version ever published (not -as a draft) by the Free Software Foundation. -@end enumerate - -@page -@appendixsubsec ADDENDUM: How to use this License for your documents - -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and -license notices just after the title page: - -@smallexample -@group - Copyright (C) @var{year} @var{your name}. - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 - or any later version published by the Free Software Foundation; - with the Invariant Sections being @var{list their titles}, with the - Front-Cover Texts being @var{list}, and with the Back-Cover Texts being @var{list}. - A copy of the license is included in the section entitled ``GNU - Free Documentation License''. -@end group -@end smallexample - -If you have no Invariant Sections, write ``with no Invariant Sections'' -instead of saying which ones are invariant. If you have no -Front-Cover Texts, write ``no Front-Cover Texts'' instead of -``Front-Cover Texts being @var{list}''; likewise for Back-Cover Texts. - -If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, -to permit their use in free software. - -@c Local Variables: -@c ispell-local-pdict: "ispell-dict" -@c End: - diff --git a/gnu/dist/diffutils/doc/stamp-vti b/gnu/dist/diffutils/doc/stamp-vti deleted file mode 100644 index 5e7a10cf720..00000000000 --- a/gnu/dist/diffutils/doc/stamp-vti +++ /dev/null @@ -1,4 +0,0 @@ -@set UPDATED 5 April 2002 -@set UPDATED-MONTH April 2002 -@set EDITION 2.8.1 -@set VERSION 2.8.1 diff --git a/gnu/dist/diffutils/doc/version.texi b/gnu/dist/diffutils/doc/version.texi deleted file mode 100644 index 932d050a976..00000000000 --- a/gnu/dist/diffutils/doc/version.texi +++ /dev/null @@ -1,5 +0,0 @@ -@set UPDATED 5 April 2002 -@c $NetBSD: version.texi,v 1.1.1.1 2003/01/26 00:43:12 wiz Exp $ -@set UPDATED-MONTH April 2002 -@set EDITION 2.8.1 -@set VERSION 2.8.1 diff --git a/gnu/dist/diffutils/exgettext b/gnu/dist/diffutils/exgettext deleted file mode 100755 index c2a83466fe1..00000000000 --- a/gnu/dist/diffutils/exgettext +++ /dev/null @@ -1,123 +0,0 @@ -#! /bin/sh -# Wrapper around gettext for programs using the msgid convention. - -# Copyright (C) 1998, 2001 Free Software Foundation, Inc. - -# Written by Paul Eggert . - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with GNU CC; see the file COPYING. If not, write to -# the Free Software Foundation, 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - -# Always operate in the C locale. -LANG=C -LANGUAGE=C -LC_ALL=C -export LANG LANGUAGE LC_ALL - -# Set AWK if environment has not already set it. -AWK=${AWK-awk} - -# The argument to this wrapper is the xgettext command to be executed. -# Extract the xgettext program name from the rest of the command. -xgettext=${1?} -shift - -# Save work if we're just wrapping a no-op. -case $xgettext in -:) exit;; -esac - -# Find the files to be scanned, and the directory to scan them from. -directory=. -files= -for i -do - case $i in - --directory=*) - directory=`expr " $i" : ' --directory=\(.*\)'`;; - --files-from=*) - files_from=`expr " $i" : ' --files-from=\(.*\)'` - files=`$AWK '/^[^#]/ { print }' $files_from`;; - esac -done - -# Generate keyword options for xgettext, -# by scanning for declarations of functions -# whose parameter names end in "msgid". -generate_keyword_options=' - /^[A-Z_a-z].*\(.*msgid[,)]/ { - - paren_index = index($0, "(") - - name = substr($0, 1, paren_index - 1) - sub(/[^0-9A-Z_a-z]*$/, "", name) - sub(/[ ]+PARAMS/, "", name) - sub(/[ ]+VPARAMS/, "", name) - sub(/.*[^0-9A-Z_a-z]/, "", name) - - args = substr($0, paren_index) - sub(/msgid[,)].*/, "", args) - for (n = 1; sub(/^[^,]*,/, "", args); n++) { - continue; - } - - if (n == 1) { - keyword = name - } else { - keyword = name ":" n - } - - if (! keyword_seen[keyword]++) { - print "--keyword=" keyword - } - } -' -keyword_options=`( - cd $directory && - $AWK "$generate_keyword_options" $files < /dev/null -)` || exit - -# Generate temporary file reflecting the %e strings in the scanned files. -tmp=tmp-emsgids.c - -generate_emsgids=' - /%e.*}/ { - line = $0 - while ((percent_index = index(line, "%e")) != 0) { - line = substr(line, percent_index + 2) - bracket_index = index(line, "}") - if (bracket_index == 0) { - continue - } - msgid = substr(line, 1, bracket_index - 1) - if (index(msgid, "%") != 0) { - continue - } - printf "#line %d \"%s\"\n", FNR, FILENAME - printf "_(\"%s\")\n", msgid - line = substr(line, bracket_index + 1) - } - } -' -(cd $directory && - $AWK "$generate_emsgids" $files < /dev/null -) > $directory/$tmp || exit - -# Run the xgettext command, with temporary added as a file to scan. -"$xgettext" $keyword_options ${1+"$@"} $tmp || exit - -# Clean up. -# If we don't get here, `make clean' will remove this file later. -rm -f $directory/$tmp diff --git a/gnu/dist/diffutils/lib/Makefile.am b/gnu/dist/diffutils/lib/Makefile.am deleted file mode 100644 index dd3ae13dfff..00000000000 --- a/gnu/dist/diffutils/lib/Makefile.am +++ /dev/null @@ -1,42 +0,0 @@ -# Automakefile for GNU Diffutils library. - -# Copyright (C) 2001, 2002 Free Software Foundation, Inc. - -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2, or (at your option) -## any later version. - -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. - -## You should have received a copy of the GNU General Public License -## along with this program; if not, write to the Free Software -## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -## 02111-1307, USA. - -noinst_LIBRARIES = libdiffutils.a - -EXTRA_DIST = alloca.c fnmatch.c inttostr.c malloc.c memchr.c mkstemp.c \ - realloc.c regex.c strcasecmp.c strtoimax.c strtol.c tempname.c waitpid.c \ - xstrtol.c -SUBDIRS = posix - -noinst_HEADERS = \ - c-stack.h cmpbuf.h dirname.h error.h exclude.h exitfail.h \ - fnmatch.hin freesoft.h getopt.h \ - gettext.h hard-locale.h inttostr.h prepargs.h posixver.h quotesys.h \ - regex.hin setmode.h unlocked-io.h xalloc.h xstrtol.h - -libdiffutils_a_SOURCES = \ - basename.c c-stack.c cmpbuf.c error.c exclude.c exitfail.c \ - freesoft.c getopt.c getopt1.c \ - hard-locale.c imaxtostr.c offtostr.c prepargs.c posixver.c quotesys.c \ - setmode.c strftime.c umaxtostr.c xmalloc.c xstrtoumax.c - -libdiffutils_a_LIBADD = @ALLOCA@ @LIBOBJS@ -libdiffutils_a_DEPENDENCIES = $(libdiffutils_a_LIBADD) - -DISTCLEANFILES = fnmatch.h fnmatch.hno regex.h regex.hno diff --git a/gnu/dist/diffutils/lib/Makefile.in b/gnu/dist/diffutils/lib/Makefile.in deleted file mode 100644 index d0fbd2ff89b..00000000000 --- a/gnu/dist/diffutils/lib/Makefile.in +++ /dev/null @@ -1,493 +0,0 @@ -# Makefile.in generated by automake 1.6 from Makefile.am. -# @configure_input@ - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 -# 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# Automakefile for GNU Diffutils library. - -# Copyright (C) 2001, 2002 Free Software Foundation, Inc. -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_HEADER = $(INSTALL_DATA) -transform = @program_transform_name@ -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ - -EXEEXT = @EXEEXT@ -OBJEXT = @OBJEXT@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -AMTAR = @AMTAR@ -AWK = @AWK@ -BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CPP = @CPP@ -DATADIRNAME = @DATADIRNAME@ -DEPDIR = @DEPDIR@ -GENCAT = @GENCAT@ -GLIBC21 = @GLIBC21@ -GMSGFMT = @GMSGFMT@ -HAVE_LIB = @HAVE_LIB@ -HELP2MAN = @HELP2MAN@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLBISON = @INTLBISON@ -INTLLIBS = @INTLLIBS@ -INTLOBJS = @INTLOBJS@ -INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ -LIB = @LIB@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ -LTLIB = @LTLIB@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -PACKAGE = @PACKAGE@ -POSUB = @POSUB@ -PR_PROGRAM = @PR_PROGRAM@ -RANLIB = @RANLIB@ -STRIP = @STRIP@ -U = @U@ -USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -am__include = @am__include@ -am__quote = @am__quote@ -install_sh = @install_sh@ - -noinst_LIBRARIES = libdiffutils.a - -EXTRA_DIST = alloca.c fnmatch.c inttostr.c malloc.c memchr.c mkstemp.c \ - realloc.c regex.c strcasecmp.c strtoimax.c strtol.c tempname.c waitpid.c \ - xstrtol.c - -SUBDIRS = posix - -noinst_HEADERS = \ - c-stack.h cmpbuf.h dirname.h error.h exclude.h exitfail.h \ - fnmatch.hin freesoft.h getopt.h \ - gettext.h hard-locale.h inttostr.h prepargs.h posixver.h quotesys.h \ - regex.hin setmode.h unlocked-io.h xalloc.h xstrtol.h - - -libdiffutils_a_SOURCES = \ - basename.c c-stack.c cmpbuf.c error.c exclude.c exitfail.c \ - freesoft.c getopt.c getopt1.c \ - hard-locale.c imaxtostr.c offtostr.c prepargs.c posixver.c quotesys.c \ - setmode.c strftime.c umaxtostr.c xmalloc.c xstrtoumax.c - - -libdiffutils_a_LIBADD = @ALLOCA@ @LIBOBJS@ -libdiffutils_a_DEPENDENCIES = $(libdiffutils_a_LIBADD) - -DISTCLEANFILES = fnmatch.h fnmatch.hno regex.h regex.hno -subdir = lib -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -LIBRARIES = $(noinst_LIBRARIES) - -libdiffutils_a_AR = $(AR) cru -am_libdiffutils_a_OBJECTS = basename.$(OBJEXT) c-stack.$(OBJEXT) \ - cmpbuf.$(OBJEXT) error.$(OBJEXT) exclude.$(OBJEXT) \ - exitfail.$(OBJEXT) freesoft.$(OBJEXT) getopt.$(OBJEXT) \ - getopt1.$(OBJEXT) hard-locale.$(OBJEXT) imaxtostr.$(OBJEXT) \ - offtostr.$(OBJEXT) prepargs.$(OBJEXT) posixver.$(OBJEXT) \ - quotesys.$(OBJEXT) setmode.$(OBJEXT) strftime.$(OBJEXT) \ - umaxtostr.$(OBJEXT) xmalloc.$(OBJEXT) xstrtoumax.$(OBJEXT) -libdiffutils_a_OBJECTS = $(am_libdiffutils_a_OBJECTS) - -DEFS = @DEFS@ -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -CPPFLAGS = @CPPFLAGS@ -LDFLAGS = @LDFLAGS@ -LIBS = @LIBS@ -depcomp = $(SHELL) $(top_srcdir)/config/depcomp -am__depfiles_maybe = depfiles -@AMDEP_TRUE@DEP_FILES = $(DEPDIR)/alloca.Po $(DEPDIR)/fnmatch.Po \ -@AMDEP_TRUE@ $(DEPDIR)/malloc.Po $(DEPDIR)/memchr.Po \ -@AMDEP_TRUE@ $(DEPDIR)/mkstemp.Po $(DEPDIR)/realloc.Po \ -@AMDEP_TRUE@ $(DEPDIR)/regex.Po $(DEPDIR)/strcasecmp.Po \ -@AMDEP_TRUE@ $(DEPDIR)/strtoul.Po $(DEPDIR)/strtoull.Po \ -@AMDEP_TRUE@ $(DEPDIR)/strtoumax.Po $(DEPDIR)/tempname.Po \ -@AMDEP_TRUE@ $(DEPDIR)/waitpid.Po ./$(DEPDIR)/basename.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/c-stack.Po ./$(DEPDIR)/cmpbuf.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/error.Po ./$(DEPDIR)/exclude.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/exitfail.Po ./$(DEPDIR)/freesoft.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/getopt.Po ./$(DEPDIR)/getopt1.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/hard-locale.Po ./$(DEPDIR)/imaxtostr.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/offtostr.Po ./$(DEPDIR)/posixver.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/prepargs.Po ./$(DEPDIR)/quotesys.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/setmode.Po ./$(DEPDIR)/strftime.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/umaxtostr.Po ./$(DEPDIR)/xmalloc.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/xstrtoumax.Po -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -CFLAGS = @CFLAGS@ -DIST_SOURCES = $(libdiffutils_a_SOURCES) -HEADERS = $(noinst_HEADERS) - - -RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \ - uninstall-info-recursive all-recursive install-data-recursive \ - install-exec-recursive installdirs-recursive install-recursive \ - uninstall-recursive check-recursive installcheck-recursive -DIST_COMMON = $(noinst_HEADERS) Makefile.am Makefile.in alloca.c \ - fnmatch.c malloc.c memchr.c mkstemp.c realloc.c regex.c \ - strcasecmp.c strtoul.c strtoull.c strtoumax.c tempname.c \ - waitpid.c -DIST_SUBDIRS = $(SUBDIRS) -SOURCES = $(libdiffutils_a_SOURCES) - -all: all-recursive - -.SUFFIXES: -.SUFFIXES: .c .o .obj -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnits lib/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) - -AR = ar - -clean-noinstLIBRARIES: - -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) -libdiffutils.a: $(libdiffutils_a_OBJECTS) $(libdiffutils_a_DEPENDENCIES) - -rm -f libdiffutils.a - $(libdiffutils_a_AR) libdiffutils.a $(libdiffutils_a_OBJECTS) $(libdiffutils_a_LIBADD) - $(RANLIB) libdiffutils.a - -mostlyclean-compile: - -rm -f *.$(OBJEXT) core *.core - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/alloca.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/fnmatch.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/malloc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/memchr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/mkstemp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/realloc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/regex.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strcasecmp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strtoul.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strtoull.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strtoumax.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/tempname.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/waitpid.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-stack.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmpbuf.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exclude.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exitfail.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/freesoft.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hard-locale.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imaxtostr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/offtostr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/posixver.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prepargs.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quotesys.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setmode.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strftime.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umaxtostr.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtoumax.Po@am__quote@ - -distclean-depend: - -rm -rf $(DEPDIR) ./$(DEPDIR) - -.c.o: -@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - $(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$< - -.c.obj: -@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - $(COMPILE) -c `cygpath -w $<` -CCDEPMODE = @CCDEPMODE@ -uninstall-info-am: - -# This directory's subdirectories are mostly independent; you can cd -# into them and run `make' without going through this Makefile. -# To change the values of `make' variables: instead of editing Makefiles, -# (1) if the variable is set in `config.status', edit `config.status' -# (which will cause the Makefiles to be regenerated when you run `make'); -# (2) otherwise, pass the desired values on the `make' command line. -$(RECURSIVE_TARGETS): - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - target=`echo $@ | sed s/-recursive//`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - dot_seen=yes; \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done; \ - if test "$$dot_seen" = "no"; then \ - $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ - fi; test -z "$$fail" - -mostlyclean-recursive clean-recursive distclean-recursive \ -maintainer-clean-recursive: - @set fnord $(MAKEFLAGS); amf=$$2; \ - dot_seen=no; \ - case "$@" in \ - distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ - *) list='$(SUBDIRS)' ;; \ - esac; \ - rev=''; for subdir in $$list; do \ - if test "$$subdir" = "."; then :; else \ - rev="$$subdir $$rev"; \ - fi; \ - done; \ - rev="$$rev ."; \ - target=`echo $@ | sed s/-recursive//`; \ - for subdir in $$rev; do \ - echo "Making $$target in $$subdir"; \ - if test "$$subdir" = "."; then \ - local_target="$$target-am"; \ - else \ - local_target="$$target"; \ - fi; \ - (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ - || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ - done && test -z "$$fail" -tags-recursive: - list='$(SUBDIRS)'; for subdir in $$list; do \ - test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ - done - -ETAGS = etags -ETAGSFLAGS = - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique - -TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ - fi; \ - done; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$tags$$unique" \ - || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = .. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkinstalldirs) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - cp -pR $$d/$$file $(distdir)$$dir \ - || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - list='$(SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ - test -d $(distdir)/$$subdir \ - || mkdir $(distdir)/$$subdir \ - || exit 1; \ - (cd $$subdir && \ - $(MAKE) $(AM_MAKEFLAGS) \ - top_distdir="$(top_distdir)" \ - distdir=../$(distdir)/$$subdir \ - distdir) \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-recursive -all-am: Makefile $(LIBRARIES) $(HEADERS) -installdirs: installdirs-recursive -installdirs-am: - -install: install-recursive -install-exec: install-exec-recursive -install-data: install-data-recursive -uninstall: uninstall-recursive - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-recursive -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* - -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) - -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-recursive - -clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am - -distclean: distclean-recursive - -distclean-am: clean-am distclean-compile distclean-depend \ - distclean-generic distclean-tags - -dvi: dvi-recursive - -dvi-am: - -info: info-recursive - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-recursive - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-recursive - -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-recursive - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -uninstall-am: uninstall-info-am - -uninstall-info: uninstall-info-recursive - -.PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \ - clean-generic clean-noinstLIBRARIES clean-recursive distclean \ - distclean-compile distclean-depend distclean-generic \ - distclean-recursive distclean-tags distdir dvi dvi-am \ - dvi-recursive info info-am info-recursive install install-am \ - install-data install-data-am install-data-recursive \ - install-exec install-exec-am install-exec-recursive \ - install-info install-info-am install-info-recursive install-man \ - install-recursive install-strip installcheck installcheck-am \ - installdirs installdirs-am installdirs-recursive \ - maintainer-clean maintainer-clean-generic \ - maintainer-clean-recursive mostlyclean mostlyclean-compile \ - mostlyclean-generic mostlyclean-recursive tags tags-recursive \ - uninstall uninstall-am uninstall-info-am \ - uninstall-info-recursive uninstall-recursive - -# 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/gnu/dist/diffutils/lib/alloca.c b/gnu/dist/diffutils/lib/alloca.c deleted file mode 100644 index 506331d27bb..00000000000 --- a/gnu/dist/diffutils/lib/alloca.c +++ /dev/null @@ -1,506 +0,0 @@ -/* $NetBSD: alloca.c,v 1.1.1.1 2003/01/26 00:43:14 wiz Exp $ */ - -/* alloca.c -- allocate automatically reclaimed memory - (Mostly) portable public-domain implementation -- D A Gwyn - - This implementation of the PWB library alloca function, - which is used to allocate space off the run-time stack so - that it is automatically reclaimed upon procedure exit, - was inspired by discussions with J. Q. Johnson of Cornell. - J.Otto Tennant contributed the Cray support. - - There are some preprocessor constants that can - be defined when compiling for your specific system, for - improved efficiency; however, the defaults should be okay. - - The general concept of this implementation is to keep - track of all alloca-allocated blocks, and reclaim any - that are found to be deeper in the stack than the current - invocation. This heuristic does not reclaim storage as - soon as it becomes invalid, but it will do so eventually. - - As a special case, alloca(0) reclaims storage without - allocating any. It is a good idea to use alloca(0) in - your main control loop, etc. to force garbage collection. */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#if HAVE_STRING_H -# include -#endif -#if HAVE_STDLIB_H -# include -#endif - -#ifdef emacs -# include "blockinput.h" -#endif - -/* If compiling with GCC 2, this file's not needed. */ -#if !defined (__GNUC__) || __GNUC__ < 2 - -/* If someone has defined alloca as a macro, - there must be some other way alloca is supposed to work. */ -# ifndef alloca - -# ifdef emacs -# ifdef static -/* actually, only want this if static is defined as "" - -- this is for usg, in which emacs must undefine static - in order to make unexec workable - */ -# ifndef STACK_DIRECTION -you -lose --- must know STACK_DIRECTION at compile-time -# endif /* STACK_DIRECTION undefined */ -# endif /* static */ -# endif /* emacs */ - -/* If your stack is a linked list of frames, you have to - provide an "address metric" ADDRESS_FUNCTION macro. */ - -# if defined (CRAY) && defined (CRAY_STACKSEG_END) -long i00afunc (); -# define ADDRESS_FUNCTION(arg) (char *) i00afunc (&(arg)) -# else -# define ADDRESS_FUNCTION(arg) &(arg) -# endif - -# if __STDC__ -typedef void *pointer; -# else -typedef char *pointer; -# endif - -# ifndef NULL -# define NULL 0 -# endif - -/* Different portions of Emacs need to call different versions of - malloc. The Emacs executable needs alloca to call xmalloc, because - ordinary malloc isn't protected from input signals. On the other - hand, the utilities in lib-src need alloca to call malloc; some of - them are very simple, and don't have an xmalloc routine. - - Non-Emacs programs expect this to call xmalloc. - - Callers below should use malloc. */ - -# ifndef emacs -# undef malloc -# define malloc xmalloc -# endif -extern pointer malloc (); - -/* Define STACK_DIRECTION if you know the direction of stack - growth for your system; otherwise it will be automatically - deduced at run-time. - - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown */ - -# ifndef STACK_DIRECTION -# define STACK_DIRECTION 0 /* Direction unknown. */ -# endif - -# if STACK_DIRECTION != 0 - -# define STACK_DIR STACK_DIRECTION /* Known at compile-time. */ - -# else /* STACK_DIRECTION == 0; need run-time code. */ - -static int stack_dir; /* 1 or -1 once known. */ -# define STACK_DIR stack_dir - -static void -find_stack_direction () -{ - static char *addr = NULL; /* Address of first `dummy', once known. */ - auto char dummy; /* To get stack address. */ - - if (addr == NULL) - { /* Initial entry. */ - addr = ADDRESS_FUNCTION (dummy); - - find_stack_direction (); /* Recurse once. */ - } - else - { - /* Second entry. */ - if (ADDRESS_FUNCTION (dummy) > addr) - stack_dir = 1; /* Stack grew upward. */ - else - stack_dir = -1; /* Stack grew downward. */ - } -} - -# endif /* STACK_DIRECTION == 0 */ - -/* An "alloca header" is used to: - (a) chain together all alloca'ed blocks; - (b) keep track of stack depth. - - It is very important that sizeof(header) agree with malloc - alignment chunk size. The following default should work okay. */ - -# ifndef ALIGN_SIZE -# define ALIGN_SIZE sizeof(double) -# endif - -typedef union hdr -{ - char align[ALIGN_SIZE]; /* To force sizeof(header). */ - struct - { - union hdr *next; /* For chaining headers. */ - char *deep; /* For stack depth measure. */ - } h; -} header; - -static header *last_alloca_header = NULL; /* -> last alloca header. */ - -/* Return a pointer to at least SIZE bytes of storage, - which will be automatically reclaimed upon exit from - the procedure that called alloca. Originally, this space - was supposed to be taken from the current stack frame of the - caller, but that method cannot be made to work for some - implementations of C, for example under Gould's UTX/32. */ - -pointer -alloca (size_t size) -{ - auto char probe; /* Probes stack depth: */ - register char *depth = ADDRESS_FUNCTION (probe); - -# if STACK_DIRECTION == 0 - if (STACK_DIR == 0) /* Unknown growth direction. */ - find_stack_direction (); -# endif - - /* Reclaim garbage, defined as all alloca'd storage that - was allocated from deeper in the stack than currently. */ - - { - register header *hp; /* Traverses linked list. */ - -# ifdef emacs - BLOCK_INPUT; -# endif - - for (hp = last_alloca_header; hp != NULL;) - if ((STACK_DIR > 0 && hp->h.deep > depth) - || (STACK_DIR < 0 && hp->h.deep < depth)) - { - register header *np = hp->h.next; - - free ((pointer) hp); /* Collect garbage. */ - - hp = np; /* -> next header. */ - } - else - break; /* Rest are not deeper. */ - - last_alloca_header = hp; /* -> last valid storage. */ - -# ifdef emacs - UNBLOCK_INPUT; -# endif - } - - if (size == 0) - return NULL; /* No allocation required. */ - - /* Allocate combined header + user data storage. */ - - { - register pointer new = malloc (sizeof (header) + size); - /* Address of header. */ - - if (new == 0) - abort(); - - ((header *) new)->h.next = last_alloca_header; - ((header *) new)->h.deep = depth; - - last_alloca_header = (header *) new; - - /* User storage begins just after header. */ - - return (pointer) ((char *) new + sizeof (header)); - } -} - -# if defined (CRAY) && defined (CRAY_STACKSEG_END) - -# ifdef DEBUG_I00AFUNC -# include -# endif - -# ifndef CRAY_STACK -# define CRAY_STACK -# ifndef CRAY2 -/* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */ -struct stack_control_header - { - long shgrow:32; /* Number of times stack has grown. */ - long shaseg:32; /* Size of increments to stack. */ - long shhwm:32; /* High water mark of stack. */ - long shsize:32; /* Current size of stack (all segments). */ - }; - -/* The stack segment linkage control information occurs at - the high-address end of a stack segment. (The stack - grows from low addresses to high addresses.) The initial - part of the stack segment linkage control information is - 0200 (octal) words. This provides for register storage - for the routine which overflows the stack. */ - -struct stack_segment_linkage - { - long ss[0200]; /* 0200 overflow words. */ - long sssize:32; /* Number of words in this segment. */ - long ssbase:32; /* Offset to stack base. */ - long:32; - long sspseg:32; /* Offset to linkage control of previous - segment of stack. */ - long:32; - long sstcpt:32; /* Pointer to task common address block. */ - long sscsnm; /* Private control structure number for - microtasking. */ - long ssusr1; /* Reserved for user. */ - long ssusr2; /* Reserved for user. */ - long sstpid; /* Process ID for pid based multi-tasking. */ - long ssgvup; /* Pointer to multitasking thread giveup. */ - long sscray[7]; /* Reserved for Cray Research. */ - long ssa0; - long ssa1; - long ssa2; - long ssa3; - long ssa4; - long ssa5; - long ssa6; - long ssa7; - long sss0; - long sss1; - long sss2; - long sss3; - long sss4; - long sss5; - long sss6; - long sss7; - }; - -# else /* CRAY2 */ -/* The following structure defines the vector of words - returned by the STKSTAT library routine. */ -struct stk_stat - { - long now; /* Current total stack size. */ - long maxc; /* Amount of contiguous space which would - be required to satisfy the maximum - stack demand to date. */ - long high_water; /* Stack high-water mark. */ - long overflows; /* Number of stack overflow ($STKOFEN) calls. */ - long hits; /* Number of internal buffer hits. */ - long extends; /* Number of block extensions. */ - long stko_mallocs; /* Block allocations by $STKOFEN. */ - long underflows; /* Number of stack underflow calls ($STKRETN). */ - long stko_free; /* Number of deallocations by $STKRETN. */ - long stkm_free; /* Number of deallocations by $STKMRET. */ - long segments; /* Current number of stack segments. */ - long maxs; /* Maximum number of stack segments so far. */ - long pad_size; /* Stack pad size. */ - long current_address; /* Current stack segment address. */ - long current_size; /* Current stack segment size. This - number is actually corrupted by STKSTAT to - include the fifteen word trailer area. */ - long initial_address; /* Address of initial segment. */ - long initial_size; /* Size of initial segment. */ - }; - -/* The following structure describes the data structure which trails - any stack segment. I think that the description in 'asdef' is - out of date. I only describe the parts that I am sure about. */ - -struct stk_trailer - { - long this_address; /* Address of this block. */ - long this_size; /* Size of this block (does not include - this trailer). */ - long unknown2; - long unknown3; - long link; /* Address of trailer block of previous - segment. */ - long unknown5; - long unknown6; - long unknown7; - long unknown8; - long unknown9; - long unknown10; - long unknown11; - long unknown12; - long unknown13; - long unknown14; - }; - -# endif /* CRAY2 */ -# endif /* not CRAY_STACK */ - -# ifdef CRAY2 -/* Determine a "stack measure" for an arbitrary ADDRESS. - I doubt that "lint" will like this much. */ - -static long -i00afunc (long *address) -{ - struct stk_stat status; - struct stk_trailer *trailer; - long *block, size; - long result = 0; - - /* We want to iterate through all of the segments. The first - step is to get the stack status structure. We could do this - more quickly and more directly, perhaps, by referencing the - $LM00 common block, but I know that this works. */ - - STKSTAT (&status); - - /* Set up the iteration. */ - - trailer = (struct stk_trailer *) (status.current_address - + status.current_size - - 15); - - /* There must be at least one stack segment. Therefore it is - a fatal error if "trailer" is null. */ - - if (trailer == 0) - abort (); - - /* Discard segments that do not contain our argument address. */ - - while (trailer != 0) - { - block = (long *) trailer->this_address; - size = trailer->this_size; - if (block == 0 || size == 0) - abort (); - trailer = (struct stk_trailer *) trailer->link; - if ((block <= address) && (address < (block + size))) - break; - } - - /* Set the result to the offset in this segment and add the sizes - of all predecessor segments. */ - - result = address - block; - - if (trailer == 0) - { - return result; - } - - do - { - if (trailer->this_size <= 0) - abort (); - result += trailer->this_size; - trailer = (struct stk_trailer *) trailer->link; - } - while (trailer != 0); - - /* We are done. Note that if you present a bogus address (one - not in any segment), you will get a different number back, formed - from subtracting the address of the first block. This is probably - not what you want. */ - - return (result); -} - -# else /* not CRAY2 */ -/* Stack address function for a CRAY-1, CRAY X-MP, or CRAY Y-MP. - Determine the number of the cell within the stack, - given the address of the cell. The purpose of this - routine is to linearize, in some sense, stack addresses - for alloca. */ - -static long -i00afunc (long address) -{ - long stkl = 0; - - long size, pseg, this_segment, stack; - long result = 0; - - struct stack_segment_linkage *ssptr; - - /* Register B67 contains the address of the end of the - current stack segment. If you (as a subprogram) store - your registers on the stack and find that you are past - the contents of B67, you have overflowed the segment. - - B67 also points to the stack segment linkage control - area, which is what we are really interested in. */ - - stkl = CRAY_STACKSEG_END (); - ssptr = (struct stack_segment_linkage *) stkl; - - /* If one subtracts 'size' from the end of the segment, - one has the address of the first word of the segment. - - If this is not the first segment, 'pseg' will be - nonzero. */ - - pseg = ssptr->sspseg; - size = ssptr->sssize; - - this_segment = stkl - size; - - /* It is possible that calling this routine itself caused - a stack overflow. Discard stack segments which do not - contain the target address. */ - - while (!(this_segment <= address && address <= stkl)) - { -# ifdef DEBUG_I00AFUNC - fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl); -# endif - if (pseg == 0) - break; - stkl = stkl - pseg; - ssptr = (struct stack_segment_linkage *) stkl; - size = ssptr->sssize; - pseg = ssptr->sspseg; - this_segment = stkl - size; - } - - result = address - this_segment; - - /* If you subtract pseg from the current end of the stack, - you get the address of the previous stack segment's end. - This seems a little convoluted to me, but I'll bet you save - a cycle somewhere. */ - - while (pseg != 0) - { -# ifdef DEBUG_I00AFUNC - fprintf (stderr, "%011o %011o\n", pseg, size); -# endif - stkl = stkl - pseg; - ssptr = (struct stack_segment_linkage *) stkl; - size = ssptr->sssize; - pseg = ssptr->sspseg; - result += size; - } - return (result); -} - -# endif /* not CRAY2 */ -# endif /* CRAY */ - -# endif /* no alloca */ -#endif /* not GCC version 2 */ diff --git a/gnu/dist/diffutils/lib/basename.c b/gnu/dist/diffutils/lib/basename.c deleted file mode 100644 index ac50b6a1bd7..00000000000 --- a/gnu/dist/diffutils/lib/basename.c +++ /dev/null @@ -1,81 +0,0 @@ -/* $NetBSD: basename.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* basename.c -- return the last element in a path - Copyright (C) 1990, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#if HAVE_CONFIG_H -# include -#endif - -#if STDC_HEADERS || HAVE_STRING_H -# include -#endif -#include "dirname.h" - -/* In general, we can't use the builtin `basename' function if available, - since it has different meanings in different environments. - In some environments the builtin `basename' modifies its argument. - - Return the address of the last file name component of NAME. If - NAME has no file name components because it is all slashes, return - NAME if it is empty, the address of its last slash otherwise. */ - -char * -base_name (char const *name) -{ - char const *base = name + FILESYSTEM_PREFIX_LEN (name); - char const *p; - - for (p = base; *p; p++) - { - if (ISSLASH (*p)) - { - /* Treat multiple adjacent slashes like a single slash. */ - do p++; - while (ISSLASH (*p)); - - /* If the file name ends in slash, use the trailing slash as - the basename if no non-slashes have been found. */ - if (! *p) - { - if (ISSLASH (*base)) - base = p - 1; - break; - } - - /* *P is a non-slash preceded by a slash. */ - base = p; - } - } - - return (char *) base; -} - -/* Return the length of of the basename NAME. Typically NAME is the - value returned by base_name. Act like strlen (NAME), except omit - redundant trailing slashes. */ - -size_t -base_len (char const *name) -{ - size_t len; - - for (len = strlen (name); 1 < len && ISSLASH (name[len - 1]); len--) - continue; - - return len; -} diff --git a/gnu/dist/diffutils/lib/c-stack.c b/gnu/dist/diffutils/lib/c-stack.c deleted file mode 100644 index 7826573b0c4..00000000000 --- a/gnu/dist/diffutils/lib/c-stack.c +++ /dev/null @@ -1,239 +0,0 @@ -/* $NetBSD: c-stack.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* Stack overflow handling. - - Copyright (C) 2002 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* Written by Paul Eggert. */ - -/* This module assumes that each stack frame is smaller than a page. - If you use alloca, dynamic arrays, or large local variables, your - program may extend the stack by more than a page at a time. If so, - the code below may incorrectly report a program error, or worse - yet, may not detect the overflow at all. To avoid this problem, - don't use large local arrays. */ - -#if HAVE_CONFIG_H -# include -#endif - -#include "gettext.h" -#define _(msgid) gettext (msgid) - -#include -#ifndef ENOTSUP -# define ENOTSUP EINVAL -#endif - -#if HAVE_INTTYPES_H -# include -#else -# if HAVE_STDINT_H -# include -# endif -#endif - -#include -#include -#include - -#if HAVE_UNISTD_H -# include -#endif -#ifndef STDERR_FILENO -# define STDERR_FILENO 2 -#endif - -#include "c-stack.h" -#include "exitfail.h" - -extern char *program_name; - -#if HAVE_XSI_STACK_OVERFLOW_HEURISTIC - -# include - - -/* Storage for the alternate signal stack. */ -static union -{ - char buffer[SIGSTKSZ]; - - /* These other members are for proper alignment. There's no - standard way to guarantee stack alignment, but this seems enough - in practice. */ - long double ld; - uintmax_t u; - void *p; -} alternate_signal_stack; - - -/* Direction of the C runtime stack. This function is - async-signal-safe. */ - -# if STACK_DIRECTION -# define find_stack_direction(ptr) STACK_DIRECTION -# else -static int -find_stack_direction (char const *addr) -{ - char dummy; - return ! addr ? find_stack_direction (&dummy) : addr < &dummy ? 1 : -1; -} -# endif - -/* The SIGSEGV handler. */ -static void (* volatile segv_action) (int, siginfo_t *, void *); - -/* Handle a segmentation violation and exit. This function is - async-signal-safe. */ - -static void -segv_handler (int signo, siginfo_t *info, void *context) -{ - /* Clear SIGNO if it seems to have been a stack overflow. */ - if (0 < info->si_code) - { - /* If the faulting address is within the stack, or within one - page of the stack end, assume that it is a stack - overflow. */ - ucontext_t const *user_context = context; - char const *stack_min = user_context->uc_stack.ss_sp; - size_t stack_size = user_context->uc_stack.ss_size; - char const *faulting_address = info->si_addr; - size_t s = faulting_address - stack_min; - size_t page_size = sysconf (_SC_PAGESIZE); - if (find_stack_direction (0) < 0) - s += page_size; - if (s < stack_size + page_size) - signo = 0; - } - - segv_action (signo, info, context); -} - -#endif /* HAVE_XSI_STACK_OVERFLOW_HEURISTIC */ - - -/* Translated messages for program errors and stack overflow. Do not - translate them in the signal handler, since gettext is not - async-signal-safe. */ -static char const * volatile program_error_message; -static char const * volatile stack_overflow_message; - -/* Output an error message, then exit with status EXIT_FAILURE if it - appears to have been a stack overflow, or with a core dump - otherwise. This function is async-signal-safe. */ - -void -c_stack_die (int signo, siginfo_t *info, void *context) -{ - char const *message = - signo ? program_error_message : stack_overflow_message; - write (STDERR_FILENO, program_name, strlen (program_name)); - write (STDERR_FILENO, ": ", 2); - write (STDERR_FILENO, message, strlen (message)); - write (STDERR_FILENO, "\n", 1); - if (! signo) - _exit (exit_failure); -#if HAVE_SIGINFO_T - if (context && info && 0 <= info->si_code) - { - /* Re-raise the exception at the same address. */ - char *addr = info->si_addr; - *addr = 0; - } -#endif - kill (getpid (), signo); -} - - -/* Set up ACTION so that it is invoked on C stack overflow. Return -1 - (setting errno) if this cannot be done. - - ACTION must invoke only async-signal-safe functions. ACTION - together with its callees must not require more than SIGSTKSZ bytes - of stack space. */ - -int -c_stack_action (void (*action) (int, siginfo_t *, void *)) -{ -#if ! HAVE_XSI_STACK_OVERFLOW_HEURISTIC - errno = ENOTSUP; - return -1; -#else - struct sigaction act; - stack_t st; - int r; - - st.ss_flags = 0; - st.ss_sp = alternate_signal_stack.buffer; - st.ss_size = sizeof alternate_signal_stack.buffer; - r = sigaltstack (&st, 0); - if (r != 0) - return r; - - program_error_message = _("program error"); - stack_overflow_message = _("stack overflow"); - segv_action = action; - - sigemptyset (&act.sa_mask); - - /* POSIX 1003.1-2001 says SA_RESETHAND implies SA_NODEFER, but this - is not true on Solaris 8 at least. It doesn't hurt to use - SA_NODEFER here, so leave it in. */ - act.sa_flags = SA_NODEFER | SA_ONSTACK | SA_RESETHAND | SA_SIGINFO; - - act.sa_sigaction = segv_handler; - return sigaction (SIGSEGV, &act, 0); -#endif -} - -#if DEBUG - -#include - -int volatile exit_failure; - -static long -recurse (char *p) -{ - char array[500]; - array[0] = 1; - return *p + recurse (array); -} - -char *program_name; - -int -main (int argc, char **argv) -{ - program_name = argv[0]; - c_stack_action (c_stack_die); - return recurse ("\1"); -} - -#endif /* DEBUG */ - -/* -Local Variables: -compile-command: "gcc -D_GNU_SOURCE -DDEBUG \ - -DHAVE_INTTYPES_H -DHAVE_SIGINFO_T \ - -DHAVE_XSI_STACK_OVERFLOW_HEURISTIC -DHAVE_UNISTD_H \ - -Wall -W -g c-stack.c -o c-stack" -End: -*/ diff --git a/gnu/dist/diffutils/lib/c-stack.h b/gnu/dist/diffutils/lib/c-stack.h deleted file mode 100644 index 7ca81b48fb0..00000000000 --- a/gnu/dist/diffutils/lib/c-stack.h +++ /dev/null @@ -1,26 +0,0 @@ -/* $NetBSD: c-stack.h,v 1.1.1.1 2003/01/26 00:43:13 wiz Exp $ */ - -/* Stack overflow handling. - - Copyright (C) 2002 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#if ! HAVE_SIGINFO_T -# define siginfo_t void -#endif - -int c_stack_action (void (*) (int, siginfo_t *, void *)); -void c_stack_die (int, siginfo_t *, void *); diff --git a/gnu/dist/diffutils/lib/cmpbuf.c b/gnu/dist/diffutils/lib/cmpbuf.c deleted file mode 100644 index 95c21b8cef5..00000000000 --- a/gnu/dist/diffutils/lib/cmpbuf.c +++ /dev/null @@ -1,149 +0,0 @@ -/* $NetBSD: cmpbuf.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* Buffer primitives for comparison operations. - - Copyright (C) 1993, 1995, 1998, 2001, 2002 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#if HAVE_CONFIG_H -# include -#endif - -#include -#include - -#include -#ifndef SA_RESTART -# ifdef SA_INTERRUPT /* e.g. SunOS 4.1.x */ -# define SA_RESTART SA_INTERRUPT -# else -# define SA_RESTART 0 -# endif -#endif - -#if HAVE_UNISTD_H -# include -#endif - -#if HAVE_INTTYPES_H -# include -#endif - -#include -#include "cmpbuf.h" - -/* Determine whether an integer type is signed, and its bounds. - This code assumes two's (or one's!) complement with no holes. */ - -/* The extra casts work around common compiler bugs, - e.g. Cray C 5.0.3.0 when t == time_t. */ -#ifndef TYPE_SIGNED -# define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) -#endif -#ifndef TYPE_MINIMUM -# define TYPE_MINIMUM(t) ((t) (TYPE_SIGNED (t) \ - ? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) \ - : (t) 0)) -#endif -#ifndef TYPE_MAXIMUM -# define TYPE_MAXIMUM(t) ((t) (~ (t) 0 - TYPE_MINIMUM (t))) -#endif - -#ifndef PTRDIFF_MAX -# define PTRDIFF_MAX TYPE_MAXIMUM (ptrdiff_t) -#endif -#ifndef SIZE_MAX -# define SIZE_MAX TYPE_MAXIMUM (size_t) -#endif -#ifndef SSIZE_MAX -# define SSIZE_MAX TYPE_MAXIMUM (ssize_t) -#endif - -#undef MIN -#define MIN(a, b) ((a) <= (b) ? (a) : (b)) - -/* Read NBYTES bytes from descriptor FD into BUF. - NBYTES must not be SIZE_MAX. - Return the number of characters successfully read. - On error, return SIZE_MAX, setting errno. - The number returned is always NBYTES unless end-of-file or error. */ - -size_t -block_read (int fd, char *buf, size_t nbytes) -{ - char *bp = buf; - char const *buflim = buf + nbytes; - size_t readlim = SSIZE_MAX; - - do - { - size_t bytes_to_read = MIN (buflim - bp, readlim); - ssize_t nread = read (fd, bp, bytes_to_read); - if (nread <= 0) - { - if (nread == 0) - break; - - /* Accommodate Tru64 5.1, which can't read more than INT_MAX - bytes at a time. They call that a 64-bit OS? */ - if (errno == EINVAL && INT_MAX < bytes_to_read) - { - readlim = INT_MAX; - continue; - } - - /* This is needed for programs that have signal handlers on - older hosts without SA_RESTART. It also accommodates - ancient AIX hosts that set errno to EINTR after uncaught - SIGCONT. See - (1993-04-22). */ - if (! SA_RESTART && errno == EINTR) - continue; - - return SIZE_MAX; - } - bp += nread; - } - while (bp < buflim); - - return bp - buf; -} - -/* Least common multiple of two buffer sizes A and B. However, if - either A or B is zero, or if the multiple is greater than LCM_MAX, - return a reasonable buffer size. */ - -size_t -buffer_lcm (size_t a, size_t b, size_t lcm_max) -{ - size_t lcm, m, n, q, r; - - /* Yield reasonable values if buffer sizes are zero. */ - if (!a) - return b ? b : 8 * 1024; - if (!b) - return a; - - /* n = gcd (a, b) */ - for (m = a, n = b; (r = m % n) != 0; m = n, n = r) - continue; - - /* Yield a if there is an overflow. */ - q = a / n; - lcm = q * b; - return lcm <= lcm_max && lcm / b == q ? lcm : a; -} diff --git a/gnu/dist/diffutils/lib/cmpbuf.h b/gnu/dist/diffutils/lib/cmpbuf.h deleted file mode 100644 index 49229804a44..00000000000 --- a/gnu/dist/diffutils/lib/cmpbuf.h +++ /dev/null @@ -1,23 +0,0 @@ -/* $NetBSD: cmpbuf.h,v 1.1.1.1 2003/01/26 00:43:13 wiz Exp $ */ - -/* Buffer primitives for comparison operations. - - Copyright (C) 2002 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -size_t block_read (int, char *, size_t); -size_t buffer_lcm (size_t, size_t, size_t); diff --git a/gnu/dist/diffutils/lib/dirname.h b/gnu/dist/diffutils/lib/dirname.h deleted file mode 100644 index 4791e44df22..00000000000 --- a/gnu/dist/diffutils/lib/dirname.h +++ /dev/null @@ -1,49 +0,0 @@ -/* $NetBSD: dirname.h,v 1.1.1.1 2003/01/26 00:43:13 wiz Exp $ */ - -/* Copyright (C) 1998, 2001 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#ifndef DIRNAME_H_ -# define DIRNAME_H_ 1 - -# ifndef PARAMS -# if defined PROTOTYPES || (defined __STDC__ && __STDC__) -# define PARAMS(Args) Args -# else -# define PARAMS(Args) () -# endif -# endif - -# ifndef DIRECTORY_SEPARATOR -# define DIRECTORY_SEPARATOR '/' -# endif - -# ifndef ISSLASH -# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR) -# endif - -# ifndef FILESYSTEM_PREFIX_LEN -# define FILESYSTEM_PREFIX_LEN(Filename) 0 -# endif - -char *base_name PARAMS ((char const *path)); -char *dir_name PARAMS ((char const *path)); -size_t base_len PARAMS ((char const *path)); -size_t dir_len PARAMS ((char const *path)); - -int strip_trailing_slashes PARAMS ((char *path)); - -#endif /* not DIRNAME_H_ */ diff --git a/gnu/dist/diffutils/lib/error.c b/gnu/dist/diffutils/lib/error.c deleted file mode 100644 index 6f5f7bd2fbb..00000000000 --- a/gnu/dist/diffutils/lib/error.c +++ /dev/null @@ -1,402 +0,0 @@ -/* $NetBSD: error.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* Error handler for noninteractive utilities - Copyright (C) 1990-1998, 2000, 2001 Free Software Foundation, Inc. - This file is part of the GNU C Library. Its master source is NOT part of - the C library, however. The master source lives in /gd/gnu/lib. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* Written by David MacKenzie . */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#if HAVE_LIBINTL_H -# include -#endif -#ifdef _LIBC -# include -# define mbsrtowcs __mbsrtowcs -#endif - -#if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC -# if __STDC__ -# include -# define VA_START(args, lastarg) va_start(args, lastarg) -# else -# include -# define VA_START(args, lastarg) va_start(args) -# endif -#else -# define va_alist a1, a2, a3, a4, a5, a6, a7, a8 -# define va_dcl char *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8; -#endif - -#if STDC_HEADERS || _LIBC -# include -# include -#else -void exit (); -#endif - -#include "error.h" -#include "unlocked-io.h" - -#ifndef _ -# define _(String) String -#endif - -/* If NULL, error will flush stdout, then print on stderr the program - name, a colon and a space. Otherwise, error will call this - function without parameters instead. */ -void (*error_print_progname) ( -#if __STDC__ - 0 - void -#endif - ); - -/* This variable is incremented each time `error' is called. */ -unsigned int error_message_count; - -#ifdef _LIBC -/* In the GNU C library, there is a predefined variable for this. */ - -# define program_name program_invocation_name -# include - -/* In GNU libc we want do not want to use the common name `error' directly. - Instead make it a weak alias. */ -extern void __error (int status, int errnum, const char *message, ...) - __attribute__ ((__format__ (__printf__, 3, 4))); -extern void __error_at_line (int status, int errnum, const char *file_name, - unsigned int line_number, const char *message, - ...) - __attribute__ ((__format__ (__printf__, 5, 6)));; -# define error __error -# define error_at_line __error_at_line - -# ifdef USE_IN_LIBIO -# include -# define fflush(s) _IO_fflush (s) -# endif - -#else /* not _LIBC */ - -# if !HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P -# ifndef HAVE_DECL_STRERROR_R -"this configure-time declaration test was not run" -# endif -char *strerror_r (); -# endif - -/* The calling program should define program_name and set it to the - name of the executing program. */ -extern char *program_name; - -# if HAVE_STRERROR_R || defined strerror_r -# define __strerror_r strerror_r -# else -# if HAVE_STRERROR -# ifndef HAVE_DECL_STRERROR -"this configure-time declaration test was not run" -# endif -# if !HAVE_DECL_STRERROR -char *strerror (); -# endif -# else -static char * -private_strerror (int errnum) -{ - extern char *sys_errlist[]; - extern int sys_nerr; - - if (errnum > 0 && errnum <= sys_nerr) - return _(sys_errlist[errnum]); - return _("Unknown system error"); -} -# define strerror private_strerror -# endif /* HAVE_STRERROR */ -# endif /* HAVE_STRERROR_R || defined strerror_r */ -#endif /* not _LIBC */ - -static void -print_errno_message (int errnum) -{ - char const *s; - -#if defined HAVE_STRERROR_R || _LIBC - char errbuf[1024]; -# if STRERROR_R_CHAR_P || _LIBC - s = __strerror_r (errnum, errbuf, sizeof errbuf); -# else - if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0) - s = errbuf; - else - s = 0; -# endif -#else - s = strerror (errnum); -#endif - -#if !_LIBC - if (! s) - s = _("Unknown system error"); -#endif - -#if _LIBC && USE_IN_LIBIO - if (_IO_fwide (stderr, 0) > 0) - { - __fwprintf (stderr, L": %s", s); - return; - } -#endif - - fprintf (stderr, ": %s", s); -} - -#ifdef VA_START -static void -error_tail (int status, int errnum, const char *message, va_list args) -{ -# if HAVE_VPRINTF || _LIBC -# if _LIBC && USE_IN_LIBIO - if (_IO_fwide (stderr, 0) > 0) - { -# define ALLOCA_LIMIT 2000 - size_t len = strlen (message) + 1; - wchar_t *wmessage = NULL; - mbstate_t st; - size_t res; - const char *tmp; - - do - { - if (len < ALLOCA_LIMIT) - wmessage = (wchar_t *) alloca (len * sizeof (wchar_t)); - else - { - if (wmessage != NULL && len / 2 < ALLOCA_LIMIT) - wmessage = NULL; - - wmessage = (wchar_t *) realloc (wmessage, - len * sizeof (wchar_t)); - - if (wmessage == NULL) - { - fputws_unlocked (L"out of memory\n", stderr); - return; - } - } - - memset (&st, '\0', sizeof (st)); - tmp =message; - } - while ((res = mbsrtowcs (wmessage, &tmp, len, &st)) == len); - - if (res == (size_t) -1) - /* The string cannot be converted. */ - wmessage = (wchar_t *) L"???"; - - __vfwprintf (stderr, wmessage, args); - } - else -# endif - vfprintf (stderr, message, args); -# else - _doprnt (message, args, stderr); -# endif - va_end (args); - - ++error_message_count; - if (errnum) - print_errno_message (errnum); -# if _LIBC && USE_IN_LIBIO - if (_IO_fwide (stderr, 0) > 0) - putwc (L'\n', stderr); - else -# endif - putc ('\n', stderr); - fflush (stderr); - if (status) - exit (status); -} -#endif - - -/* Print the program name and error message MESSAGE, which is a printf-style - format string with optional args. - If ERRNUM is nonzero, print its corresponding system error message. - Exit with status STATUS if it is nonzero. */ -/* VARARGS */ -void -#if defined VA_START && __STDC__ -error (int status, int errnum, const char *message, ...) -#else -error (status, errnum, message, va_alist) - int status; - int errnum; - char *message; - va_dcl -#endif -{ -#ifdef VA_START - va_list args; -#endif - - fflush (stdout); -#ifdef _LIBC -# ifdef USE_IN_LIBIO - _IO_flockfile (stderr); -# else - __flockfile (stderr); -# endif -#endif - if (error_print_progname) - (*error_print_progname) (); - else - { -#if _LIBC && USE_IN_LIBIO - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s: ", program_name); - else -#endif - fprintf (stderr, "%s: ", program_name); - } - -#ifdef VA_START - VA_START (args, message); - error_tail (status, errnum, message, args); -#else - fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8); - - ++error_message_count; - if (errnum) - print_errno_message (errnum); - putc ('\n', stderr); - fflush (stderr); - if (status) - exit (status); -#endif - -#ifdef _LIBC -# ifdef USE_IN_LIBIO - _IO_funlockfile (stderr); -# else - __funlockfile (stderr); -# endif -#endif -} - -/* Sometimes we want to have at most one error per line. This - variable controls whether this mode is selected or not. */ -int error_one_per_line; - -void -#if defined VA_START && __STDC__ -error_at_line (int status, int errnum, const char *file_name, - unsigned int line_number, const char *message, ...) -#else -error_at_line (status, errnum, file_name, line_number, message, va_alist) - int status; - int errnum; - const char *file_name; - unsigned int line_number; - char *message; - va_dcl -#endif -{ -#ifdef VA_START - va_list args; -#endif - - if (error_one_per_line) - { - static const char *old_file_name; - static unsigned int old_line_number; - - if (old_line_number == line_number - && (file_name == old_file_name - || strcmp (old_file_name, file_name) == 0)) - /* Simply return and print nothing. */ - return; - - old_file_name = file_name; - old_line_number = line_number; - } - - fflush (stdout); -#ifdef _LIBC -# ifdef USE_IN_LIBIO - _IO_flockfile (stderr); -# else - __flockfile (stderr); -# endif -#endif - if (error_print_progname) - (*error_print_progname) (); - else - { -#if _LIBC && USE_IN_LIBIO - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s: ", program_name); - else -#endif - fprintf (stderr, "%s:", program_name); - } - - if (file_name != NULL) - { -#if _LIBC && USE_IN_LIBIO - if (_IO_fwide (stderr, 0) > 0) - __fwprintf (stderr, L"%s:%d: ", file_name, line_number); - else -#endif - fprintf (stderr, "%s:%d: ", file_name, line_number); - } - -#ifdef VA_START - VA_START (args, message); - error_tail (status, errnum, message, args); -#else - fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8); - - ++error_message_count; - if (errnum) - print_errno_message (errnum); - putc ('\n', stderr); - fflush (stderr); - if (status) - exit (status); -#endif - -#ifdef _LIBC -# ifdef USE_IN_LIBIO - _IO_funlockfile (stderr); -# else - __funlockfile (stderr); -# endif -#endif -} - -#ifdef _LIBC -/* Make the weak alias. */ -# undef error -# undef error_at_line -weak_alias (__error, error) -weak_alias (__error_at_line, error_at_line) -#endif diff --git a/gnu/dist/diffutils/lib/error.h b/gnu/dist/diffutils/lib/error.h deleted file mode 100644 index bfc76781545..00000000000 --- a/gnu/dist/diffutils/lib/error.h +++ /dev/null @@ -1,80 +0,0 @@ -/* $NetBSD: error.h,v 1.1.1.1 2003/01/26 00:43:13 wiz Exp $ */ - -/* Declaration for error-reporting function - Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. - - - NOTE: The canonical source of this file is maintained with the GNU C Library. - Bugs can be reported to bug-glibc@prep.ai.mit.edu. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) any - later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. */ - -#ifndef _ERROR_H -#define _ERROR_H 1 - -#ifndef __attribute__ -/* This feature is available in gcc versions 2.5 and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) -# define __attribute__(Spec) /* empty */ -# endif -/* The __-protected variants of `format' and `printf' attributes - are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) -# define __format__ format -# define __printf__ printf -# endif -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined (__STDC__) && __STDC__ - -/* Print a message with `fprintf (stderr, FORMAT, ...)'; - if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM). - If STATUS is nonzero, terminate the program with `exit (STATUS)'. */ - -extern void error (int status, int errnum, const char *format, ...) - __attribute__ ((__format__ (__printf__, 3, 4))); - -extern void error_at_line (int status, int errnum, const char *fname, - unsigned int lineno, const char *format, ...) - __attribute__ ((__format__ (__printf__, 5, 6))); - -/* If NULL, error will flush stdout, then print on stderr the program - name, a colon and a space. Otherwise, error will call this - function without parameters instead. */ -extern void (*error_print_progname) (void); - -#else -void error (); -void error_at_line (); -extern void (*error_print_progname) (); -#endif - -/* This variable is incremented each time `error' is called. */ -extern unsigned int error_message_count; - -/* Sometimes we want to have at most one error per line. This - variable controls whether this mode is selected or not. */ -extern int error_one_per_line; - -#ifdef __cplusplus -} -#endif - -#endif /* error.h */ diff --git a/gnu/dist/diffutils/lib/exclude.c b/gnu/dist/diffutils/lib/exclude.c deleted file mode 100644 index 415c3f51a29..00000000000 --- a/gnu/dist/diffutils/lib/exclude.c +++ /dev/null @@ -1,270 +0,0 @@ -/* $NetBSD: exclude.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* exclude.c -- exclude file names - - Copyright 1992, 1993, 1994, 1997, 1999, 2000, 2001 Free Software - Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* Written by Paul Eggert */ - -#if HAVE_CONFIG_H -# include -#endif - -#if HAVE_STDBOOL_H -# include -#else -typedef enum {false = 0, true = 1} bool; -#endif - -#include -#ifndef errno -extern int errno; -#endif -#include -#if HAVE_SYS_TYPES_H -# include -#endif -#if HAVE_STDLIB_H -# include -#endif -#if HAVE_STRING_H -# include -#endif -#if HAVE_STRINGS_H -# include -#endif -#if HAVE_INTTYPES_H -# include -#else -# if HAVE_STDINT_H -# include -# endif -#endif - -#include "exclude.h" -#include "fnmatch.h" -#include "unlocked-io.h" -#include "xalloc.h" - -#ifndef SIZE_MAX -# define SIZE_MAX ((size_t) -1) -#endif - -/* Verify a requirement at compile-time (unlike assert, which is runtime). */ -#define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; } - -verify (EXCLUDE_macros_do_not_collide_with_FNM_macros, - (((EXCLUDE_ANCHORED | EXCLUDE_INCLUDE | EXCLUDE_WILDCARDS) - & (FNM_FILE_NAME | FNM_NOESCAPE | FNM_PERIOD | FNM_LEADING_DIR - | FNM_CASEFOLD)) - == 0)); - -/* An exclude pattern-options pair. The options are fnmatch options - ORed with EXCLUDE_* options. */ - -struct patopts - { - char const *pattern; - int options; - }; - -/* An exclude list, of pattern-options pairs. */ - -struct exclude - { - struct patopts *exclude; - size_t exclude_alloc; - size_t exclude_count; - }; - -/* Return a newly allocated and empty exclude list. */ - -struct exclude * -new_exclude (void) -{ - struct exclude *ex = (struct exclude *) xmalloc (sizeof *ex); - ex->exclude_count = 0; - ex->exclude_alloc = (1 << 6); /* This must be a power of 2. */ - ex->exclude = (struct patopts *) xmalloc (ex->exclude_alloc - * sizeof ex->exclude[0]); - return ex; -} - -/* Free the storage associated with an exclude list. */ - -void -free_exclude (struct exclude *ex) -{ - free (ex->exclude); - free (ex); -} - -/* Return zero if PATTERN matches F, obeying OPTIONS, except that - (unlike fnmatch) wildcards are disabled in PATTERN. */ - -static int -fnmatch_no_wildcards (char const *pattern, char const *f, int options) -{ - if (! (options & FNM_LEADING_DIR)) - return ((options & FNM_CASEFOLD) - ? strcasecmp (pattern, f) - : strcmp (pattern, f)); - else - { - size_t patlen = strlen (pattern); - int r = ((options & FNM_CASEFOLD) - ? strncasecmp (pattern, f, patlen) - : strncmp (pattern, f, patlen)); - if (! r) - { - r = f[patlen]; - if (r == '/') - r = 0; - } - return r; - } -} - -/* Return true if EX excludes F. */ - -bool -excluded_filename (struct exclude const *ex, char const *f) -{ - size_t exclude_count = ex->exclude_count; - - /* If no options are given, the default is to include. */ - if (exclude_count == 0) - return false; - else - { - struct patopts const *exclude = ex->exclude; - size_t i; - - /* Otherwise, the default is the opposite of the first option. */ - bool excluded = !! (exclude[0].options & EXCLUDE_INCLUDE); - - /* Scan through the options, seeing whether they change F from - excluded to included or vice versa. */ - for (i = 0; i < exclude_count; i++) - { - char const *pattern = exclude[i].pattern; - int options = exclude[i].options; - if (excluded == !! (options & EXCLUDE_INCLUDE)) - { - int (*matcher) PARAMS ((char const *, char const *, int)) = - (options & EXCLUDE_WILDCARDS - ? fnmatch - : fnmatch_no_wildcards); - bool matched = ((*matcher) (pattern, f, options) == 0); - char const *p; - - if (! (options & EXCLUDE_ANCHORED)) - for (p = f; *p && ! matched; p++) - if (*p == '/' && p[1] != '/') - matched = ((*matcher) (pattern, p + 1, options) == 0); - - excluded ^= matched; - } - } - - return excluded; - } -} - -/* Append to EX the exclusion PATTERN with OPTIONS. */ - -void -add_exclude (struct exclude *ex, char const *pattern, int options) -{ - struct patopts *patopts; - - if (ex->exclude_alloc <= ex->exclude_count) - { - size_t s = 2 * ex->exclude_alloc; - if (! (0 < s && s <= SIZE_MAX / sizeof ex->exclude[0])) - xalloc_die (); - ex->exclude_alloc = s; - ex->exclude = (struct patopts *) xrealloc (ex->exclude, - s * sizeof ex->exclude[0]); - } - - patopts = &ex->exclude[ex->exclude_count++]; - patopts->pattern = pattern; - patopts->options = options; -} - -/* Use ADD_FUNC to append to EX the patterns in FILENAME, each with - OPTIONS. LINE_END terminates each pattern in the file. Return -1 - on failure, 0 on success. */ - -int -add_exclude_file (void (*add_func) PARAMS ((struct exclude *, - char const *, int)), - struct exclude *ex, char const *filename, int options, - char line_end) -{ - bool use_stdin = filename[0] == '-' && !filename[1]; - FILE *in; - char *buf; - char *p; - char const *pattern; - char const *lim; - size_t buf_alloc = (1 << 10); /* This must be a power of two. */ - size_t buf_count = 0; - int c; - int e = 0; - - if (use_stdin) - in = stdin; - else if (! (in = fopen (filename, "r"))) - return -1; - - buf = xmalloc (buf_alloc); - - while ((c = getc (in)) != EOF) - { - buf[buf_count++] = c; - if (buf_count == buf_alloc) - { - buf_alloc *= 2; - if (! buf_alloc) - xalloc_die (); - buf = xrealloc (buf, buf_alloc); - } - } - - if (ferror (in)) - e = errno; - - if (!use_stdin && fclose (in) != 0) - e = errno; - - buf = xrealloc (buf, buf_count + 1); - - for (pattern = p = buf, lim = buf + buf_count; p <= lim; p++) - if (p < lim ? *p == line_end : buf < p && p[-1]) - { - *p = '\0'; - (*add_func) (ex, pattern, options); - pattern = p + 1; - } - - errno = e; - return e ? -1 : 0; -} diff --git a/gnu/dist/diffutils/lib/exclude.h b/gnu/dist/diffutils/lib/exclude.h deleted file mode 100644 index 712089ae392..00000000000 --- a/gnu/dist/diffutils/lib/exclude.h +++ /dev/null @@ -1,51 +0,0 @@ -/* $NetBSD: exclude.h,v 1.1.1.1 2003/01/26 00:43:13 wiz Exp $ */ - -/* exclude.h -- declarations for excluding file names - Copyright 1992, 1993, 1994, 1997, 1999, 2001 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* Written by Paul Eggert */ - -#ifndef PARAMS -# if defined PROTOTYPES || (defined __STDC__ && __STDC__) -# define PARAMS(Args) Args -# else -# define PARAMS(Args) () -# endif -#endif - -/* Exclude options, which can be ORed with fnmatch options. */ - -/* Patterns must match the start of file names, instead of matching - anywhere after a '/'. */ -#define EXCLUDE_ANCHORED (1 << 5) - -/* Include instead of exclude. */ -#define EXCLUDE_INCLUDE (1 << 6) - -/* '?', '*', '[', and '\\' are special in patterns. Without this - option, these characters are ordinary and fnmatch is not used. */ -#define EXCLUDE_WILDCARDS (1 << 7) - -struct exclude; - -struct exclude *new_exclude PARAMS ((void)); -void free_exclude PARAMS ((struct exclude *)); -void add_exclude PARAMS ((struct exclude *, char const *, int)); -int add_exclude_file PARAMS ((void (*) (struct exclude *, char const *, int), - struct exclude *, char const *, int, char)); -bool excluded_filename PARAMS ((struct exclude const *, char const *)); diff --git a/gnu/dist/diffutils/lib/exitfail.c b/gnu/dist/diffutils/lib/exitfail.c deleted file mode 100644 index d23c0fc5e70..00000000000 --- a/gnu/dist/diffutils/lib/exitfail.c +++ /dev/null @@ -1,33 +0,0 @@ -/* $NetBSD: exitfail.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* Failure exit status - - Copyright (C) 2002 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#if HAVE_CONFIG_H -# include -#endif - -#if HAVE_STDLIB_H -# include -#endif -#ifndef EXIT_FAILURE -# define EXIT_FAILURE 1 -#endif - -int volatile exit_failure = EXIT_FAILURE; diff --git a/gnu/dist/diffutils/lib/exitfail.h b/gnu/dist/diffutils/lib/exitfail.h deleted file mode 100644 index 0436439c6b4..00000000000 --- a/gnu/dist/diffutils/lib/exitfail.h +++ /dev/null @@ -1,22 +0,0 @@ -/* $NetBSD: exitfail.h,v 1.1.1.1 2003/01/26 00:43:14 wiz Exp $ */ - -/* Failure exit status - - Copyright (C) 2002 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -extern int volatile exit_failure; diff --git a/gnu/dist/diffutils/lib/fnmatch.c b/gnu/dist/diffutils/lib/fnmatch.c deleted file mode 100644 index 6bce0fbf269..00000000000 --- a/gnu/dist/diffutils/lib/fnmatch.c +++ /dev/null @@ -1,232 +0,0 @@ -/* $NetBSD: fnmatch.c,v 1.1.1.1 2003/01/26 00:43:14 wiz Exp $ */ - -/* Copyright 1991, 1992, 1993, 1996, 1997, 2000 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#if HAVE_CONFIG_H -# include -#endif - -/* Enable GNU extensions in fnmatch.h. */ -#ifndef _GNU_SOURCE -# define _GNU_SOURCE 1 -#endif - -#include -#include -#include - -#if defined STDC_HEADERS || !defined isascii -# define IN_CTYPE_DOMAIN(c) 1 -#else -# define IN_CTYPE_DOMAIN(c) isascii (c) -#endif - -#define ISUPPER(c) (IN_CTYPE_DOMAIN (c) && isupper (c)) - - -#ifndef errno -extern int errno; -#endif - -/* Match STRING against the filename pattern PATTERN, returning zero if - it matches, nonzero if not. */ -int -fnmatch (const char *pattern, const char *string, int flags) -{ - register const char *p = pattern, *n = string; - register char c; - -/* Note that this evaluates C many times. */ -#define FOLD(c) ((flags & FNM_CASEFOLD) && ISUPPER ((unsigned char) (c)) \ - ? tolower ((unsigned char) (c)) \ - : (c)) - - while ((c = *p++) != '\0') - { - c = FOLD (c); - - switch (c) - { - case '?': - if (*n == '\0') - return FNM_NOMATCH; - else if ((flags & FNM_FILE_NAME) && *n == '/') - return FNM_NOMATCH; - else if ((flags & FNM_PERIOD) && *n == '.' && - (n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/'))) - return FNM_NOMATCH; - break; - - case '\\': - if (!(flags & FNM_NOESCAPE)) - { - c = *p++; - if (c == '\0') - /* Trailing \ loses. */ - return FNM_NOMATCH; - c = FOLD (c); - } - if (FOLD (*n) != c) - return FNM_NOMATCH; - break; - - case '*': - if ((flags & FNM_PERIOD) && *n == '.' && - (n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/'))) - return FNM_NOMATCH; - - for (c = *p++; c == '?' || c == '*'; c = *p++) - { - if (c == '?') - { - /* A ? needs to match one character. */ - if (*n == '\0' || (*n == '/' && (flags & FNM_FILE_NAME))) - /* There isn't another character; no match. */ - return FNM_NOMATCH; - else - /* One character of the string is consumed in matching - this ? wildcard, so *??? won't match if there are - less than three characters. */ - ++n; - } - } - - if (c == '\0') - { - if ((flags & (FNM_FILE_NAME | FNM_LEADING_DIR)) == FNM_FILE_NAME) - for (; *n != '\0'; n++) - if (*n == '/') - return FNM_NOMATCH; - return 0; - } - - { - char c1 = (!(flags & FNM_NOESCAPE) && c == '\\') ? *p : c; - c1 = FOLD (c1); - for (--p; *n != '\0'; ++n) - if ((c == '[' || FOLD (*n) == c1) && - fnmatch (p, n, flags & ~FNM_PERIOD) == 0) - return 0; - else if (*n == '/' && (flags & FNM_FILE_NAME)) - break; - return FNM_NOMATCH; - } - - case '[': - { - /* Nonzero if the sense of the character class is inverted. */ - register int not; - - if (*n == '\0') - return FNM_NOMATCH; - - if ((flags & FNM_PERIOD) && *n == '.' && - (n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/'))) - return FNM_NOMATCH; - - not = (*p == '!' || *p == '^'); - if (not) - ++p; - - c = *p++; - for (;;) - { - register char cstart = c, cend = c; - - if (!(flags & FNM_NOESCAPE) && c == '\\') - { - if (*p == '\0') - return FNM_NOMATCH; - cstart = cend = *p++; - } - - cstart = cend = FOLD (cstart); - - if (c == '\0') - /* [ (unterminated) loses. */ - return FNM_NOMATCH; - - c = *p++; - c = FOLD (c); - - if ((flags & FNM_FILE_NAME) && c == '/') - /* [/] can never match. */ - return FNM_NOMATCH; - - if (c == '-' && *p != ']') - { - cend = *p++; - if (!(flags & FNM_NOESCAPE) && cend == '\\') - cend = *p++; - if (cend == '\0') - return FNM_NOMATCH; - cend = FOLD (cend); - - c = *p++; - } - - if (FOLD (*n) >= cstart && FOLD (*n) <= cend) - goto matched; - - if (c == ']') - break; - } - if (!not) - return FNM_NOMATCH; - break; - - matched:; - /* Skip the rest of the [...] that already matched. */ - while (c != ']') - { - if (c == '\0') - /* [... (unterminated) loses. */ - return FNM_NOMATCH; - - c = *p++; - if (!(flags & FNM_NOESCAPE) && c == '\\') - { - if (*p == '\0') - return FNM_NOMATCH; - /* XXX 1003.2d11 is unclear if this is right. */ - ++p; - } - } - if (not) - return FNM_NOMATCH; - } - break; - - default: - if (c != FOLD (*n)) - return FNM_NOMATCH; - } - - ++n; - } - - if (*n == '\0') - return 0; - - if ((flags & FNM_LEADING_DIR) && *n == '/') - /* The FNM_LEADING_DIR flag says that "foo*" matches "foobar/frobozz". */ - return 0; - - return FNM_NOMATCH; - -#undef FOLD -} diff --git a/gnu/dist/diffutils/lib/fnmatch.hin b/gnu/dist/diffutils/lib/fnmatch.hin deleted file mode 100644 index af1dcf523bf..00000000000 --- a/gnu/dist/diffutils/lib/fnmatch.hin +++ /dev/null @@ -1,69 +0,0 @@ -/* Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc. - -NOTE: The canonical source of this file is maintained with the GNU C Library. -Bugs can be reported to bug-glibc@prep.ai.mit.edu. - -This program is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2, or (at your option) any -later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software Foundation, -Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#ifndef _FNMATCH_H - -#define _FNMATCH_H 1 - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined (__cplusplus) || (defined (__STDC__) && __STDC__) -#undef __P -#define __P(protos) protos -#else /* Not C++ or ANSI C. */ -#undef __P -#define __P(protos) () -/* We can get away without defining `const' here only because in this file - it is used only inside the prototype for `fnmatch', which is elided in - non-ANSI C where `const' is problematical. */ -#endif /* C++ or ANSI C. */ - - -/* We #undef these before defining them because some losing systems - (HP-UX A.08.07 for example) define these in . */ -#undef FNM_PATHNAME -#undef FNM_NOESCAPE -#undef FNM_PERIOD - -/* Bits set in the FLAGS argument to `fnmatch'. */ -#define FNM_PATHNAME (1 << 0) /* No wildcard can ever match `/'. */ -#define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */ -#define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */ - -#if !defined (_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 2 || defined (_GNU_SOURCE) -#define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */ -#define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */ -#define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */ -#endif - -/* Value returned by `fnmatch' if STRING does not match PATTERN. */ -#define FNM_NOMATCH 1 - -/* Match STRING against the filename pattern PATTERN, - returning zero if it matches, FNM_NOMATCH if not. */ -extern int fnmatch __P ((const char *__pattern, const char *__string, - int __flags)); - -#ifdef __cplusplus -} -#endif - -#endif /* fnmatch.h */ diff --git a/gnu/dist/diffutils/lib/freesoft.c b/gnu/dist/diffutils/lib/freesoft.c deleted file mode 100644 index 7bcedc30b42..00000000000 --- a/gnu/dist/diffutils/lib/freesoft.c +++ /dev/null @@ -1,33 +0,0 @@ -/* $NetBSD: freesoft.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* Free software message ID. - - Copyright (C) 2001 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#if HAVE_CONFIG_H -# include -#endif - -#include "freesoft.h" - -#define N_(Text) Text - -char const free_software_msgid[] = N_("\ -This program comes with NO WARRANTY, to the extent permitted by law.\n\ -You may redistribute copies of this program\n\ -under the terms of the GNU General Public License.\n\ -For more information about these matters, see the file named COPYING."); diff --git a/gnu/dist/diffutils/lib/freesoft.h b/gnu/dist/diffutils/lib/freesoft.h deleted file mode 100644 index 908840f0cac..00000000000 --- a/gnu/dist/diffutils/lib/freesoft.h +++ /dev/null @@ -1,3 +0,0 @@ -/* $NetBSD: freesoft.h,v 1.1.1.1 2003/01/26 00:43:14 wiz Exp $ */ - -extern char const free_software_msgid[]; diff --git a/gnu/dist/diffutils/lib/getopt.c b/gnu/dist/diffutils/lib/getopt.c deleted file mode 100644 index 3fc70f08067..00000000000 --- a/gnu/dist/diffutils/lib/getopt.c +++ /dev/null @@ -1,1069 +0,0 @@ -/* $NetBSD: getopt.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* Getopt for GNU. - NOTE: getopt is now part of the C library, so if you don't know what - "Keep this file name-space clean" means, talk to drepper@gnu.org - before changing it! - Copyright (C) 1987,88,89,90,91,92,93,94,95,96,98,99,2000,2001 - Free Software Foundation, Inc. - This file is part of the GNU C Library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* This tells Alpha OSF/1 not to define a getopt prototype in . - Ditto for AIX 3.2 and . */ -#ifndef _NO_PROTO -# define _NO_PROTO -#endif - -#ifdef HAVE_CONFIG_H -# include -#endif - -#if !defined __STDC__ || !__STDC__ -/* This is a separate conditional since some stdc systems - reject `defined (const)'. */ -# ifndef const -# define const -# endif -#endif - -#include - -/* Comment out all this code if we are using the GNU C Library, and are not - actually compiling the library itself. This code is part of the GNU C - Library, but also included in many other GNU distributions. Compiling - and linking in this code is a waste when using the GNU C library - (especially if it is a shared library). Rather than having every GNU - program understand `configure --with-gnu-libc' and omit the object files, - it is simpler to just do this in the source for each such file. */ - -#define GETOPT_INTERFACE_VERSION 2 -#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2 -# include -# if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION -# define ELIDE_CODE -# endif -#endif - -#ifndef ELIDE_CODE - - -/* This needs to come after some library #include - to get __GNU_LIBRARY__ defined. */ -#ifdef __GNU_LIBRARY__ -/* Don't include stdlib.h for non-GNU C libraries because some of them - contain conflicting prototypes for getopt. */ -# include -# include -#endif /* GNU C library. */ - -#ifdef VMS -# include -# if HAVE_STRING_H - 0 -# include -# endif -#endif - -#ifndef _ -/* This is for other GNU distributions with internationalized messages. */ -# if (HAVE_LIBINTL_H && ENABLE_NLS) || defined _LIBC -# include -# ifndef _ -# define _(msgid) gettext (msgid) -# endif -# else -# define _(msgid) (msgid) -# endif -#endif - -/* This version of `getopt' appears to the caller like standard Unix `getopt' - but it behaves differently for the user, since it allows the user - to intersperse the options with the other arguments. - - As `getopt' works, it permutes the elements of ARGV so that, - when it is done, all the options precede everything else. Thus - all application programs are extended to handle flexible argument order. - - Setting the environment variable POSIXLY_CORRECT disables permutation. - Then the behavior is completely standard. - - GNU application programs can use a third alternative mode in which - they can distinguish the relative order of options and other arguments. */ - -#include "getopt.h" - -/* For communication from `getopt' to the caller. - When `getopt' finds an option that takes an argument, - the argument value is returned here. - Also, when `ordering' is RETURN_IN_ORDER, - each non-option ARGV-element is returned here. */ - -char *optarg; - -/* Index in ARGV of the next element to be scanned. - This is used for communication to and from the caller - and for communication between successive calls to `getopt'. - - On entry to `getopt', zero means this is the first call; initialize. - - When `getopt' returns -1, this is the index of the first of the - non-option elements that the caller should itself scan. - - Otherwise, `optind' communicates from one call to the next - how much of ARGV has been scanned so far. */ - -/* 1003.2 says this must be 1 before any call. */ -int optind = 1; - -/* Formerly, initialization of getopt depended on optind==0, which - causes problems with re-calling getopt as programs generally don't - know that. */ - -int __getopt_initialized; - -/* The next char to be scanned in the option-element - in which the last option character we returned was found. - This allows us to pick up the scan where we left off. - - If this is zero, or a null string, it means resume the scan - by advancing to the next ARGV-element. */ - -static char *nextchar; - -/* Callers store zero here to inhibit the error message - for unrecognized options. */ - -int opterr = 1; - -/* Set to an option character which was unrecognized. - This must be initialized on some systems to avoid linking in the - system's own getopt implementation. */ - -int optopt = '?'; - -/* Describe how to deal with options that follow non-option ARGV-elements. - - If the caller did not specify anything, - the default is REQUIRE_ORDER if the environment variable - POSIXLY_CORRECT is defined, PERMUTE otherwise. - - REQUIRE_ORDER means don't recognize them as options; - stop option processing when the first non-option is seen. - This is what Unix does. - This mode of operation is selected by either setting the environment - variable POSIXLY_CORRECT, or using `+' as the first character - of the list of option characters. - - PERMUTE is the default. We permute the contents of ARGV as we scan, - so that eventually all the non-options are at the end. This allows options - to be given in any order, even with programs that were not written to - expect this. - - RETURN_IN_ORDER is an option available to programs that were written - to expect options and other ARGV-elements in any order and that care about - the ordering of the two. We describe each non-option ARGV-element - as if it were the argument of an option with character code 1. - Using `-' as the first character of the list of option characters - selects this mode of operation. - - The special argument `--' forces an end of option-scanning regardless - of the value of `ordering'. In the case of RETURN_IN_ORDER, only - `--' can cause `getopt' to return -1 with `optind' != ARGC. */ - -static enum -{ - REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER -} ordering; - -/* Value of POSIXLY_CORRECT environment variable. */ -static char *posixly_correct; - -#ifdef __GNU_LIBRARY__ -/* We want to avoid inclusion of string.h with non-GNU libraries - because there are many ways it can cause trouble. - On some systems, it contains special magic macros that don't work - in GCC. */ -# include -# define my_index strchr -#else - -# if HAVE_STRING_H -# include -# else -# include -# endif - -/* Avoid depending on library functions or files - whose names are inconsistent. */ - -#ifndef getenv -extern char *getenv (); -#endif - -static char * -my_index (str, chr) - const char *str; - int chr; -{ - while (*str) - { - if (*str == chr) - return (char *) str; - str++; - } - return 0; -} - -/* If using GCC, we can safely declare strlen this way. - If not using GCC, it is ok not to declare it. */ -#ifdef __GNUC__ -/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h. - That was relevant to code that was here before. */ -# if (!defined __STDC__ || !__STDC__) && !defined strlen -/* gcc with -traditional declares the built-in strlen to return int, - and has done so at least since version 2.4.5. -- rms. */ -extern int strlen (const char *); -# endif /* not __STDC__ */ -#endif /* __GNUC__ */ - -#endif /* not __GNU_LIBRARY__ */ - -/* Handle permutation of arguments. */ - -/* Describe the part of ARGV that contains non-options that have - been skipped. `first_nonopt' is the index in ARGV of the first of them; - `last_nonopt' is the index after the last of them. */ - -static int first_nonopt; -static int last_nonopt; - -#ifdef _LIBC -/* Bash 2.0 gives us an environment variable containing flags - indicating ARGV elements that should not be considered arguments. */ - -#ifdef USE_NONOPTION_FLAGS -/* Defined in getopt_init.c */ -extern char *__getopt_nonoption_flags; - -static int nonoption_flags_max_len; -static int nonoption_flags_len; -#endif - -static int original_argc; -static char *const *original_argv; - -/* Make sure the environment variable bash 2.0 puts in the environment - is valid for the getopt call we must make sure that the ARGV passed - to getopt is that one passed to the process. */ -static void -__attribute__ ((unused)) -store_args_and_env (int argc, char *const *argv) -{ - /* XXX This is no good solution. We should rather copy the args so - that we can compare them later. But we must not use malloc(3). */ - original_argc = argc; - original_argv = argv; -} -# ifdef text_set_element -text_set_element (__libc_subinit, store_args_and_env); -# endif /* text_set_element */ - -# ifdef USE_NONOPTION_FLAGS -# define SWAP_FLAGS(ch1, ch2) \ - if (nonoption_flags_len > 0) \ - { \ - char __tmp = __getopt_nonoption_flags[ch1]; \ - __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \ - __getopt_nonoption_flags[ch2] = __tmp; \ - } -# else -# define SWAP_FLAGS(ch1, ch2) -# endif -#else /* !_LIBC */ -# define SWAP_FLAGS(ch1, ch2) -#endif /* _LIBC */ - -/* Exchange two adjacent subsequences of ARGV. - One subsequence is elements [first_nonopt,last_nonopt) - which contains all the non-options that have been skipped so far. - The other is elements [last_nonopt,optind), which contains all - the options processed since those non-options were skipped. - - `first_nonopt' and `last_nonopt' are relocated so that they describe - the new indices of the non-options in ARGV after they are moved. */ - -#if defined __STDC__ && __STDC__ -static void exchange (char **); -#endif - -static void -exchange (argv) - char **argv; -{ - int bottom = first_nonopt; - int middle = last_nonopt; - int top = optind; - char *tem; - - /* Exchange the shorter segment with the far end of the longer segment. - That puts the shorter segment into the right place. - It leaves the longer segment in the right place overall, - but it consists of two parts that need to be swapped next. */ - -#if defined _LIBC && defined USE_NONOPTION_FLAGS - /* First make sure the handling of the `__getopt_nonoption_flags' - string can work normally. Our top argument must be in the range - of the string. */ - if (nonoption_flags_len > 0 && top >= nonoption_flags_max_len) - { - /* We must extend the array. The user plays games with us and - presents new arguments. */ - char *new_str = malloc (top + 1); - if (new_str == NULL) - nonoption_flags_len = nonoption_flags_max_len = 0; - else - { - memset (__mempcpy (new_str, __getopt_nonoption_flags, - nonoption_flags_max_len), - '\0', top + 1 - nonoption_flags_max_len); - nonoption_flags_max_len = top + 1; - __getopt_nonoption_flags = new_str; - } - } -#endif - - while (top > middle && middle > bottom) - { - if (top - middle > middle - bottom) - { - /* Bottom segment is the short one. */ - int len = middle - bottom; - register int i; - - /* Swap it with the top part of the top segment. */ - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[top - (middle - bottom) + i]; - argv[top - (middle - bottom) + i] = tem; - SWAP_FLAGS (bottom + i, top - (middle - bottom) + i); - } - /* Exclude the moved bottom segment from further swapping. */ - top -= len; - } - else - { - /* Top segment is the short one. */ - int len = top - middle; - register int i; - - /* Swap it with the bottom part of the bottom segment. */ - for (i = 0; i < len; i++) - { - tem = argv[bottom + i]; - argv[bottom + i] = argv[middle + i]; - argv[middle + i] = tem; - SWAP_FLAGS (bottom + i, middle + i); - } - /* Exclude the moved top segment from further swapping. */ - bottom += len; - } - } - - /* Update records for the slots the non-options now occupy. */ - - first_nonopt += (optind - last_nonopt); - last_nonopt = optind; -} - -/* Initialize the internal data when the first call is made. */ - -#if defined __STDC__ && __STDC__ -static const char *_getopt_initialize (int, char *const *, const char *); -#endif -static const char * -_getopt_initialize (argc, argv, optstring) - int argc; - char *const *argv; - const char *optstring; -{ - /* Start processing options with ARGV-element 1 (since ARGV-element 0 - is the program name); the sequence of previously skipped - non-option ARGV-elements is empty. */ - - first_nonopt = last_nonopt = optind; - - nextchar = NULL; - - posixly_correct = getenv ("POSIXLY_CORRECT"); - - /* Determine how to handle the ordering of options and nonoptions. */ - - if (optstring[0] == '-') - { - ordering = RETURN_IN_ORDER; - ++optstring; - } - else if (optstring[0] == '+') - { - ordering = REQUIRE_ORDER; - ++optstring; - } - else if (posixly_correct != NULL) - ordering = REQUIRE_ORDER; - else - ordering = PERMUTE; - -#if defined _LIBC && defined USE_NONOPTION_FLAGS - if (posixly_correct == NULL - && argc == original_argc && argv == original_argv) - { - if (nonoption_flags_max_len == 0) - { - if (__getopt_nonoption_flags == NULL - || __getopt_nonoption_flags[0] == '\0') - nonoption_flags_max_len = -1; - else - { - const char *orig_str = __getopt_nonoption_flags; - int len = nonoption_flags_max_len = strlen (orig_str); - if (nonoption_flags_max_len < argc) - nonoption_flags_max_len = argc; - __getopt_nonoption_flags = - (char *) malloc (nonoption_flags_max_len); - if (__getopt_nonoption_flags == NULL) - nonoption_flags_max_len = -1; - else - memset (__mempcpy (__getopt_nonoption_flags, orig_str, len), - '\0', nonoption_flags_max_len - len); - } - } - nonoption_flags_len = nonoption_flags_max_len; - } - else - nonoption_flags_len = 0; -#endif - - return optstring; -} - -/* Scan elements of ARGV (whose length is ARGC) for option characters - given in OPTSTRING. - - If an element of ARGV starts with '-', and is not exactly "-" or "--", - then it is an option element. The characters of this element - (aside from the initial '-') are option characters. If `getopt' - is called repeatedly, it returns successively each of the option characters - from each of the option elements. - - If `getopt' finds another option character, it returns that character, - updating `optind' and `nextchar' so that the next call to `getopt' can - resume the scan with the following option character or ARGV-element. - - If there are no more option characters, `getopt' returns -1. - Then `optind' is the index in ARGV of the first ARGV-element - that is not an option. (The ARGV-elements have been permuted - so that those that are not options now come last.) - - OPTSTRING is a string containing the legitimate option characters. - If an option character is seen that is not listed in OPTSTRING, - return '?' after printing an error message. If you set `opterr' to - zero, the error message is suppressed but we still return '?'. - - If a char in OPTSTRING is followed by a colon, that means it wants an arg, - so the following text in the same ARGV-element, or the text of the following - ARGV-element, is returned in `optarg'. Two colons mean an option that - wants an optional arg; if there is text in the current ARGV-element, - it is returned in `optarg', otherwise `optarg' is set to zero. - - If OPTSTRING starts with `-' or `+', it requests different methods of - handling the non-option ARGV-elements. - See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. - - Long-named options begin with `--' instead of `-'. - Their names may be abbreviated as long as the abbreviation is unique - or is an exact match for some defined option. If they have an - argument, it follows the option name in the same ARGV-element, separated - from the option name by a `=', or else the in next ARGV-element. - When `getopt' finds a long-named option, it returns 0 if that option's - `flag' field is nonzero, the value of the option's `val' field - if the `flag' field is zero. - - The elements of ARGV aren't really const, because we permute them. - But we pretend they're const in the prototype to be compatible - with other systems. - - LONGOPTS is a vector of `struct option' terminated by an - element containing a name which is zero. - - LONGIND returns the index in LONGOPT of the long-named option found. - It is only valid when a long-named option has been found by the most - recent call. - - If LONG_ONLY is nonzero, '-' as well as '--' can introduce - long-named options. */ - -int -_getopt_internal (argc, argv, optstring, longopts, longind, long_only) - int argc; - char *const *argv; - const char *optstring; - const struct option *longopts; - int *longind; - int long_only; -{ - int print_errors = opterr; - if (optstring[0] == ':') - print_errors = 0; - - if (argc < 1) - return -1; - - optarg = NULL; - - if (optind == 0 || !__getopt_initialized) - { - if (optind == 0) - optind = 1; /* Don't scan ARGV[0], the program name. */ - optstring = _getopt_initialize (argc, argv, optstring); - __getopt_initialized = 1; - } - - /* Test whether ARGV[optind] points to a non-option argument. - Either it does not have option syntax, or there is an environment flag - from the shell indicating it is not an option. The later information - is only used when the used in the GNU libc. */ -#if defined _LIBC && defined USE_NONOPTION_FLAGS -# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \ - || (optind < nonoption_flags_len \ - && __getopt_nonoption_flags[optind] == '1')) -#else -# define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0') -#endif - - if (nextchar == NULL || *nextchar == '\0') - { - /* Advance to the next ARGV-element. */ - - /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been - moved back by the user (who may also have changed the arguments). */ - if (last_nonopt > optind) - last_nonopt = optind; - if (first_nonopt > optind) - first_nonopt = optind; - - if (ordering == PERMUTE) - { - /* If we have just processed some options following some non-options, - exchange them so that the options come first. */ - - if (first_nonopt != last_nonopt && last_nonopt != optind) - exchange ((char **) argv); - else if (last_nonopt != optind) - first_nonopt = optind; - - /* Skip any additional non-options - and extend the range of non-options previously skipped. */ - - while (optind < argc && NONOPTION_P) - optind++; - last_nonopt = optind; - } - - /* The special ARGV-element `--' means premature end of options. - Skip it like a null option, - then exchange with previous non-options as if it were an option, - then skip everything else like a non-option. */ - - if (optind != argc && !strcmp (argv[optind], "--")) - { - optind++; - - if (first_nonopt != last_nonopt && last_nonopt != optind) - exchange ((char **) argv); - else if (first_nonopt == last_nonopt) - first_nonopt = optind; - last_nonopt = argc; - - optind = argc; - } - - /* If we have done all the ARGV-elements, stop the scan - and back over any non-options that we skipped and permuted. */ - - if (optind == argc) - { - /* Set the next-arg-index to point at the non-options - that we previously skipped, so the caller will digest them. */ - if (first_nonopt != last_nonopt) - optind = first_nonopt; - return -1; - } - - /* If we have come to a non-option and did not permute it, - either stop the scan or describe it to the caller and pass it by. */ - - if (NONOPTION_P) - { - if (ordering == REQUIRE_ORDER) - return -1; - optarg = argv[optind++]; - return 1; - } - - /* We have found another option-ARGV-element. - Skip the initial punctuation. */ - - nextchar = (argv[optind] + 1 - + (longopts != NULL && argv[optind][1] == '-')); - } - - /* Decode the current option-ARGV-element. */ - - /* Check whether the ARGV-element is a long option. - - If long_only and the ARGV-element has the form "-f", where f is - a valid short option, don't consider it an abbreviated form of - a long option that starts with f. Otherwise there would be no - way to give the -f short option. - - On the other hand, if there's a long option "fubar" and - the ARGV-element is "-fu", do consider that an abbreviation of - the long option, just like "--fu", and not "-f" with arg "u". - - This distinction seems to be the most useful approach. */ - - if (longopts != NULL - && (argv[optind][1] == '-' - || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1]))))) - { - char *nameend; - const struct option *p; - const struct option *pfound = NULL; - int exact = 0; - int ambig = 0; - int indfound = -1; - int option_index; - - for (nameend = nextchar; *nameend && *nameend != '='; nameend++) - /* Do nothing. */ ; - - /* Test all long options for either exact match - or abbreviated matches. */ - for (p = longopts, option_index = 0; p->name; p++, option_index++) - if (!strncmp (p->name, nextchar, nameend - nextchar)) - { - if ((unsigned int) (nameend - nextchar) - == (unsigned int) strlen (p->name)) - { - /* Exact match found. */ - pfound = p; - indfound = option_index; - exact = 1; - break; - } - else if (pfound == NULL) - { - /* First nonexact match found. */ - pfound = p; - indfound = option_index; - } - else if (long_only - || pfound->has_arg != p->has_arg - || pfound->flag != p->flag - || pfound->val != p->val) - /* Second or later nonexact match found. */ - ambig = 1; - } - - if (ambig && !exact) - { - if (print_errors) - fprintf (stderr, _("%s: option `%s' is ambiguous\n"), - argv[0], argv[optind]); - nextchar += strlen (nextchar); - optind++; - optopt = 0; - return '?'; - } - - if (pfound != NULL) - { - option_index = indfound; - optind++; - if (*nameend) - { - /* Don't test has_arg with >, because some C compilers don't - allow it to be used on enums. */ - if (pfound->has_arg) - optarg = nameend + 1; - else - { - if (print_errors) - { - if (argv[optind - 1][1] == '-') - /* --option */ - fprintf (stderr, - _("%s: option `--%s' doesn't allow an argument\n"), - argv[0], pfound->name); - else - /* +option or -option */ - fprintf (stderr, - _("%s: option `%c%s' doesn't allow an argument\n"), - argv[0], argv[optind - 1][0], pfound->name); - } - - nextchar += strlen (nextchar); - - optopt = pfound->val; - return '?'; - } - } - else if (pfound->has_arg == 1) - { - if (optind < argc) - optarg = argv[optind++]; - else - { - if (print_errors) - fprintf (stderr, - _("%s: option `%s' requires an argument\n"), - argv[0], argv[optind - 1]); - nextchar += strlen (nextchar); - optopt = pfound->val; - return optstring[0] == ':' ? ':' : '?'; - } - } - nextchar += strlen (nextchar); - if (longind != NULL) - *longind = option_index; - if (pfound->flag) - { - *(pfound->flag) = pfound->val; - return 0; - } - return pfound->val; - } - - /* Can't find it as a long option. If this is not getopt_long_only, - or the option starts with '--' or is not a valid short - option, then it's an error. - Otherwise interpret it as a short option. */ - if (!long_only || argv[optind][1] == '-' - || my_index (optstring, *nextchar) == NULL) - { - if (print_errors) - { - if (argv[optind][1] == '-') - /* --option */ - fprintf (stderr, _("%s: unrecognized option `--%s'\n"), - argv[0], nextchar); - else - /* +option or -option */ - fprintf (stderr, _("%s: unrecognized option `%c%s'\n"), - argv[0], argv[optind][0], nextchar); - } - nextchar = (char *) ""; - optind++; - optopt = 0; - return '?'; - } - } - - /* Look at and handle the next short option-character. */ - - { - char c = *nextchar++; - char *temp = my_index (optstring, c); - - /* Increment `optind' when we start to process its last character. */ - if (*nextchar == '\0') - ++optind; - - if (temp == NULL || c == ':') - { - if (print_errors) - { - if (posixly_correct) - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, _("%s: illegal option -- %c\n"), - argv[0], c); - else - fprintf (stderr, _("%s: invalid option -- %c\n"), - argv[0], c); - } - optopt = c; - return '?'; - } - /* Convenience. Treat POSIX -W foo same as long option --foo */ - if (temp[0] == 'W' && temp[1] == ';') - { - char *nameend; - const struct option *p; - const struct option *pfound = NULL; - int exact = 0; - int ambig = 0; - int indfound = 0; - int option_index; - - /* This is an option that requires an argument. */ - if (*nextchar != '\0') - { - optarg = nextchar; - /* If we end this ARGV-element by taking the rest as an arg, - we must advance to the next element now. */ - optind++; - } - else if (optind == argc) - { - if (print_errors) - { - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, _("%s: option requires an argument -- %c\n"), - argv[0], c); - } - optopt = c; - if (optstring[0] == ':') - c = ':'; - else - c = '?'; - return c; - } - else - /* We already incremented `optind' once; - increment it again when taking next ARGV-elt as argument. */ - optarg = argv[optind++]; - - /* optarg is now the argument, see if it's in the - table of longopts. */ - - for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++) - /* Do nothing. */ ; - - /* Test all long options for either exact match - or abbreviated matches. */ - for (p = longopts, option_index = 0; p->name; p++, option_index++) - if (!strncmp (p->name, nextchar, nameend - nextchar)) - { - if ((unsigned int) (nameend - nextchar) == strlen (p->name)) - { - /* Exact match found. */ - pfound = p; - indfound = option_index; - exact = 1; - break; - } - else if (pfound == NULL) - { - /* First nonexact match found. */ - pfound = p; - indfound = option_index; - } - else - /* Second or later nonexact match found. */ - ambig = 1; - } - if (ambig && !exact) - { - if (print_errors) - fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"), - argv[0], argv[optind]); - nextchar += strlen (nextchar); - optind++; - return '?'; - } - if (pfound != NULL) - { - option_index = indfound; - if (*nameend) - { - /* Don't test has_arg with >, because some C compilers don't - allow it to be used on enums. */ - if (pfound->has_arg) - optarg = nameend + 1; - else - { - if (print_errors) - fprintf (stderr, _("\ -%s: option `-W %s' doesn't allow an argument\n"), - argv[0], pfound->name); - - nextchar += strlen (nextchar); - return '?'; - } - } - else if (pfound->has_arg == 1) - { - if (optind < argc) - optarg = argv[optind++]; - else - { - if (print_errors) - fprintf (stderr, - _("%s: option `%s' requires an argument\n"), - argv[0], argv[optind - 1]); - nextchar += strlen (nextchar); - return optstring[0] == ':' ? ':' : '?'; - } - } - nextchar += strlen (nextchar); - if (longind != NULL) - *longind = option_index; - if (pfound->flag) - { - *(pfound->flag) = pfound->val; - return 0; - } - return pfound->val; - } - nextchar = NULL; - return 'W'; /* Let the application handle it. */ - } - if (temp[1] == ':') - { - if (temp[2] == ':') - { - /* This is an option that accepts an argument optionally. */ - if (*nextchar != '\0') - { - optarg = nextchar; - optind++; - } - else - optarg = NULL; - nextchar = NULL; - } - else - { - /* This is an option that requires an argument. */ - if (*nextchar != '\0') - { - optarg = nextchar; - /* If we end this ARGV-element by taking the rest as an arg, - we must advance to the next element now. */ - optind++; - } - else if (optind == argc) - { - if (print_errors) - { - /* 1003.2 specifies the format of this message. */ - fprintf (stderr, - _("%s: option requires an argument -- %c\n"), - argv[0], c); - } - optopt = c; - if (optstring[0] == ':') - c = ':'; - else - c = '?'; - } - else - /* We already incremented `optind' once; - increment it again when taking next ARGV-elt as argument. */ - optarg = argv[optind++]; - nextchar = NULL; - } - } - return c; - } -} - -int -getopt (argc, argv, optstring) - int argc; - char *const *argv; - const char *optstring; -{ - return _getopt_internal (argc, argv, optstring, - (const struct option *) 0, - (int *) 0, - 0); -} - -#endif /* Not ELIDE_CODE. */ - -#ifdef TEST - -/* Compile with -DTEST to make an executable for use in testing - the above definition of `getopt'. */ - -int -main (argc, argv) - int argc; - char **argv; -{ - int c; - int digit_optind = 0; - - while (1) - { - int this_option_optind = optind ? optind : 1; - - c = getopt (argc, argv, "abc:d:0123456789"); - if (c == -1) - break; - - switch (c) - { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (digit_optind != 0 && digit_optind != this_option_optind) - printf ("digits occur in two different argv-elements.\n"); - digit_optind = this_option_optind; - printf ("option %c\n", c); - break; - - case 'a': - printf ("option a\n"); - break; - - case 'b': - printf ("option b\n"); - break; - - case 'c': - printf ("option c with value `%s'\n", optarg); - break; - - case '?': - break; - - default: - printf ("?? getopt returned character code 0%o ??\n", c); - } - } - - if (optind < argc) - { - printf ("non-option ARGV-elements: "); - while (optind < argc) - printf ("%s ", argv[optind++]); - printf ("\n"); - } - - exit (0); -} - -#endif /* TEST */ diff --git a/gnu/dist/diffutils/lib/getopt.h b/gnu/dist/diffutils/lib/getopt.h deleted file mode 100644 index d7b8c526393..00000000000 --- a/gnu/dist/diffutils/lib/getopt.h +++ /dev/null @@ -1,181 +0,0 @@ -/* $NetBSD: getopt.h,v 1.1.1.1 2003/01/26 00:43:14 wiz Exp $ */ - -/* Declarations for getopt. - Copyright (C) 1989-1994, 1996-1999, 2001 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#ifndef _GETOPT_H - -#ifndef __need_getopt -# define _GETOPT_H 1 -#endif - -/* If __GNU_LIBRARY__ is not already defined, either we are being used - standalone, or this is the first header included in the source file. - If we are being used with glibc, we need to include , but - that does not exist if we are standalone. So: if __GNU_LIBRARY__ is - not defined, include , which will pull in for us - if it's from glibc. (Why ctype.h? It's guaranteed to exist and it - doesn't flood the namespace with stuff the way some other headers do.) */ -#if !defined __GNU_LIBRARY__ -# include -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* For communication from `getopt' to the caller. - When `getopt' finds an option that takes an argument, - the argument value is returned here. - Also, when `ordering' is RETURN_IN_ORDER, - each non-option ARGV-element is returned here. */ - -extern char *optarg; - -/* Index in ARGV of the next element to be scanned. - This is used for communication to and from the caller - and for communication between successive calls to `getopt'. - - On entry to `getopt', zero means this is the first call; initialize. - - When `getopt' returns -1, this is the index of the first of the - non-option elements that the caller should itself scan. - - Otherwise, `optind' communicates from one call to the next - how much of ARGV has been scanned so far. */ - -extern int optind; - -/* Callers store zero here to inhibit the error message `getopt' prints - for unrecognized options. */ - -extern int opterr; - -/* Set to an option character which was unrecognized. */ - -extern int optopt; - -#ifndef __need_getopt -/* Describe the long-named options requested by the application. - The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector - of `struct option' terminated by an element containing a name which is - zero. - - The field `has_arg' is: - no_argument (or 0) if the option does not take an argument, - required_argument (or 1) if the option requires an argument, - optional_argument (or 2) if the option takes an optional argument. - - If the field `flag' is not NULL, it points to a variable that is set - to the value given in the field `val' when the option is found, but - left unchanged if the option is not found. - - To have a long-named option do something other than set an `int' to - a compiled-in constant, such as set a value from `optarg', set the - option's `flag' field to zero and its `val' field to a nonzero - value (the equivalent single-letter option character, if there is - one). For long options that have a zero `flag' field, `getopt' - returns the contents of the `val' field. */ - -struct option -{ -# if (defined __STDC__ && __STDC__) || defined __cplusplus - const char *name; -# else - char *name; -# endif - /* has_arg can't be an enum because some compilers complain about - type mismatches in all the code that assumes it is an int. */ - int has_arg; - int *flag; - int val; -}; - -/* Names for the values of the `has_arg' field of `struct option'. */ - -# define no_argument 0 -# define required_argument 1 -# define optional_argument 2 -#endif /* need getopt */ - - -/* Get definitions and prototypes for functions to process the - arguments in ARGV (ARGC of them, minus the program name) for - options given in OPTS. - - Return the option character from OPTS just read. Return -1 when - there are no more options. For unrecognized options, or options - missing arguments, `optopt' is set to the option letter, and '?' is - returned. - - The OPTS string is a list of characters which are recognized option - letters, optionally followed by colons, specifying that that letter - takes an argument, to be placed in `optarg'. - - If a letter in OPTS is followed by two colons, its argument is - optional. This behavior is specific to the GNU `getopt'. - - The argument `--' causes premature termination of argument - scanning, explicitly telling `getopt' that there are no more - options. - - If OPTS begins with `--', then non-option arguments are treated as - arguments to the option '\0'. This behavior is specific to the GNU - `getopt'. */ - -#if (defined __STDC__ && __STDC__) || defined __cplusplus -# ifdef __GNU_LIBRARY__ -/* Many other libraries have conflicting prototypes for getopt, with - differences in the consts, in stdlib.h. To avoid compilation - errors, only prototype getopt for the GNU C library. */ -extern int getopt (int __argc, char *const *__argv, const char *__shortopts); -# else /* not __GNU_LIBRARY__ */ -extern int getopt (); -# endif /* __GNU_LIBRARY__ */ - -# ifndef __need_getopt -extern int getopt_long (int __argc, char *const *__argv, const char *__shortopts, - const struct option *__longopts, int *__longind); -extern int getopt_long_only (int __argc, char *const *__argv, - const char *__shortopts, - const struct option *__longopts, int *__longind); - -/* Internal only. Users should not call this directly. */ -extern int _getopt_internal (int __argc, char *const *__argv, - const char *__shortopts, - const struct option *__longopts, int *__longind, - int __long_only); -# endif -#else /* not __STDC__ */ -extern int getopt (); -# ifndef __need_getopt -extern int getopt_long (); -extern int getopt_long_only (); - -extern int _getopt_internal (); -# endif -#endif /* __STDC__ */ - -#ifdef __cplusplus -} -#endif - -/* Make sure we later can get all the definitions and declarations. */ -#undef __need_getopt - -#endif /* getopt.h */ diff --git a/gnu/dist/diffutils/lib/getopt1.c b/gnu/dist/diffutils/lib/getopt1.c deleted file mode 100644 index 7d89bbe3337..00000000000 --- a/gnu/dist/diffutils/lib/getopt1.c +++ /dev/null @@ -1,189 +0,0 @@ -/* $NetBSD: getopt1.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* getopt_long and getopt_long_only entry points for GNU getopt. - Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98 - Free Software Foundation, Inc. - This file is part of the GNU C Library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "getopt.h" - -#if !defined __STDC__ || !__STDC__ -/* This is a separate conditional since some stdc systems - reject `defined (const)'. */ -#ifndef const -#define const -#endif -#endif - -#include - -/* Comment out all this code if we are using the GNU C Library, and are not - actually compiling the library itself. This code is part of the GNU C - Library, but also included in many other GNU distributions. Compiling - and linking in this code is a waste when using the GNU C library - (especially if it is a shared library). Rather than having every GNU - program understand `configure --with-gnu-libc' and omit the object files, - it is simpler to just do this in the source for each such file. */ - -#define GETOPT_INTERFACE_VERSION 2 -#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2 -#include -#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION -#define ELIDE_CODE -#endif -#endif - -#ifndef ELIDE_CODE - - -/* This needs to come after some library #include - to get __GNU_LIBRARY__ defined. */ -#ifdef __GNU_LIBRARY__ -#include -#endif - -#ifndef NULL -#define NULL 0 -#endif - -int -getopt_long (argc, argv, options, long_options, opt_index) - int argc; - char *const *argv; - const char *options; - const struct option *long_options; - int *opt_index; -{ - return _getopt_internal (argc, argv, options, long_options, opt_index, 0); -} - -/* Like getopt_long, but '-' as well as '--' can indicate a long option. - If an option that starts with '-' (not '--') doesn't match a long option, - but does match a short option, it is parsed as a short option - instead. */ - -int -getopt_long_only (argc, argv, options, long_options, opt_index) - int argc; - char *const *argv; - const char *options; - const struct option *long_options; - int *opt_index; -{ - return _getopt_internal (argc, argv, options, long_options, opt_index, 1); -} - - -#endif /* Not ELIDE_CODE. */ - -#ifdef TEST - -#include - -int -main (argc, argv) - int argc; - char **argv; -{ - int c; - int digit_optind = 0; - - while (1) - { - int this_option_optind = optind ? optind : 1; - int option_index = 0; - static struct option long_options[] = - { - {"add", 1, 0, 0}, - {"append", 0, 0, 0}, - {"delete", 1, 0, 0}, - {"verbose", 0, 0, 0}, - {"create", 0, 0, 0}, - {"file", 1, 0, 0}, - {0, 0, 0, 0} - }; - - c = getopt_long (argc, argv, "abc:d:0123456789", - long_options, &option_index); - if (c == -1) - break; - - switch (c) - { - case 0: - printf ("option %s", long_options[option_index].name); - if (optarg) - printf (" with arg %s", optarg); - printf ("\n"); - break; - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (digit_optind != 0 && digit_optind != this_option_optind) - printf ("digits occur in two different argv-elements.\n"); - digit_optind = this_option_optind; - printf ("option %c\n", c); - break; - - case 'a': - printf ("option a\n"); - break; - - case 'b': - printf ("option b\n"); - break; - - case 'c': - printf ("option c with value `%s'\n", optarg); - break; - - case 'd': - printf ("option d with value `%s'\n", optarg); - break; - - case '?': - break; - - default: - printf ("?? getopt returned character code 0%o ??\n", c); - } - } - - if (optind < argc) - { - printf ("non-option ARGV-elements: "); - while (optind < argc) - printf ("%s ", argv[optind++]); - printf ("\n"); - } - - exit (0); -} - -#endif /* TEST */ diff --git a/gnu/dist/diffutils/lib/gettext.h b/gnu/dist/diffutils/lib/gettext.h deleted file mode 100644 index 9965fc62afd..00000000000 --- a/gnu/dist/diffutils/lib/gettext.h +++ /dev/null @@ -1,61 +0,0 @@ -/* $NetBSD: gettext.h,v 1.1.1.1 2003/01/26 00:43:14 wiz Exp $ */ - -/* Convenience header for conditional use of GNU . - Copyright (C) 1995-1998, 2000-2002 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. */ - -#ifndef _LIBGETTEXT_H -#define _LIBGETTEXT_H 1 - -/* NLS can be disabled through the configure --disable-nls option. */ -#if ENABLE_NLS - -/* Get declarations of GNU message catalog functions. */ -# include - -#else - -/* Disabled NLS. - The casts to 'const char *' serve the purpose of producing warnings - for invalid uses of the value returned from these functions. - On pre-ANSI systems without 'const', the config.h file is supposed to - contain "#define const". */ -# define gettext(Msgid) ((const char *) (Msgid)) -# define dgettext(Domainname, Msgid) ((const char *) (Msgid)) -# define dcgettext(Domainname, Msgid, Category) ((const char *) (Msgid)) -# define ngettext(Msgid1, Msgid2, N) \ - ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2)) -# define dngettext(Domainname, Msgid1, Msgid2, N) \ - ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2)) -# define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ - ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2)) -# define textdomain(Domainname) ((const char *) (Domainname)) -# define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname)) -# define bind_textdomain_codeset(Domainname, Codeset) ((const char *) (Codeset)) - -#endif - -/* A pseudo function call that serves as a marker for the automated - extraction of messages, but does not call gettext(). The run-time - translation is done at a different place in the code. - The argument, String, should be a literal string. Concatenated strings - and other string expressions won't work. - The macro's expansion is not parenthesized, so that it is suitable as - initializer for static 'char[]' or 'const char[]' variables. */ -#define gettext_noop(String) String - -#endif /* _LIBGETTEXT_H */ diff --git a/gnu/dist/diffutils/lib/hard-locale.c b/gnu/dist/diffutils/lib/hard-locale.c deleted file mode 100644 index a2bfd68157f..00000000000 --- a/gnu/dist/diffutils/lib/hard-locale.c +++ /dev/null @@ -1,81 +0,0 @@ -/* $NetBSD: hard-locale.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* hard-locale.c -- Determine whether a locale is hard. - - Copyright (C) 1997, 1998, 1999, 2002 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#if HAVE_CONFIG_H -# include -#endif - -#if HAVE_LOCALE_H -# include -#endif - -#if HAVE_STDLIB_H -# include -#endif - -#if HAVE_STRING_H -# include -#endif - -#include "hard-locale.h" - -/* Return nonzero if the current CATEGORY locale is hard, i.e. if you - can't get away with assuming traditional C or POSIX behavior. */ -int -hard_locale (int category) -{ -#if ! HAVE_SETLOCALE - return 0; -#else - - int hard = 1; - char const *p = setlocale (category, 0); - - if (p) - { -# if defined __GLIBC__ && 2 <= __GLIBC__ - if (strcmp (p, "C") == 0 || strcmp (p, "POSIX") == 0) - hard = 0; -# else - char *locale = malloc (strlen (p) + 1); - if (locale) - { - strcpy (locale, p); - - /* Temporarily set the locale to the "C" and "POSIX" locales - to find their names, so that we can determine whether one - or the other is the caller's locale. */ - if (((p = setlocale (category, "C")) - && strcmp (p, locale) == 0) - || ((p = setlocale (category, "POSIX")) - && strcmp (p, locale) == 0)) - hard = 0; - - /* Restore the caller's locale. */ - setlocale (category, locale); - free (locale); - } -# endif - } - - return hard; - -#endif -} diff --git a/gnu/dist/diffutils/lib/hard-locale.h b/gnu/dist/diffutils/lib/hard-locale.h deleted file mode 100644 index f535c45a4b2..00000000000 --- a/gnu/dist/diffutils/lib/hard-locale.h +++ /dev/null @@ -1,20 +0,0 @@ -/* $NetBSD: hard-locale.h,v 1.1.1.1 2003/01/26 00:43:14 wiz Exp $ */ - -#ifndef HARD_LOCALE_H_ -# define HARD_LOCALE_H_ 1 - -# if HAVE_CONFIG_H -# include -# endif - -# ifndef PARAMS -# if defined PROTOTYPES || (defined __STDC__ && __STDC__) -# define PARAMS(Args) Args -# else -# define PARAMS(Args) () -# endif -# endif - -int hard_locale PARAMS ((int)); - -#endif /* HARD_LOCALE_H_ */ diff --git a/gnu/dist/diffutils/lib/imaxtostr.c b/gnu/dist/diffutils/lib/imaxtostr.c deleted file mode 100644 index b1aa99d8e70..00000000000 --- a/gnu/dist/diffutils/lib/imaxtostr.c +++ /dev/null @@ -1,5 +0,0 @@ -/* $NetBSD: imaxtostr.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -#define inttostr imaxtostr -#define inttype intmax_t -#include "inttostr.c" diff --git a/gnu/dist/diffutils/lib/inttostr.c b/gnu/dist/diffutils/lib/inttostr.c deleted file mode 100644 index 35a99f88f24..00000000000 --- a/gnu/dist/diffutils/lib/inttostr.c +++ /dev/null @@ -1,51 +0,0 @@ -/* $NetBSD: inttostr.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* inttostr.c -- convert integers to printable strings - - Copyright (C) 2001 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* Written by Paul Eggert */ - -#include "inttostr.h" - -/* Convert I to a printable string in BUF, which must be at least - INT_BUFSIZE_BOUND (INTTYPE) bytes long. Return the address of the - printable string, which need not start at BUF. */ - -char * -inttostr (inttype i, char *buf) -{ - char *p = buf + INT_STRLEN_BOUND (inttype); - *p = 0; - - if (i < 0) - { - do - *--p = '0' - i % 10; - while ((i /= 10) != 0); - - *--p = '-'; - } - else - { - do - *--p = '0' + i % 10; - while ((i /= 10) != 0); - } - - return p; -} diff --git a/gnu/dist/diffutils/lib/inttostr.h b/gnu/dist/diffutils/lib/inttostr.h deleted file mode 100644 index 2372cd5ee52..00000000000 --- a/gnu/dist/diffutils/lib/inttostr.h +++ /dev/null @@ -1,62 +0,0 @@ -/* $NetBSD: inttostr.h,v 1.1.1.1 2003/01/26 00:43:14 wiz Exp $ */ - -/* inttostr.h -- convert integers to printable strings - - Copyright (C) 2001 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* Written by Paul Eggert */ - -#if HAVE_CONFIG_H -# include -#endif - -#if HAVE_INTTYPES_H -# include -#endif - -#if HAVE_LIMITS_H -# include -#endif -#ifndef CHAR_BIT -# define CHAR_BIT 8 -#endif - -#if HAVE_SYS_TYPES_H -# include -#endif - -#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) - -/* Upper bound on the string length of an integer converted to string. - 302 / 1000 is ceil (log10 (2.0)). Subtract 1 for the sign bit; - add 1 for integer division truncation; add 1 more for a minus sign. */ -#define INT_STRLEN_BOUND(t) \ - ((sizeof (t) * CHAR_BIT - TYPE_SIGNED (t)) * 302 / 1000 + 1 + TYPE_SIGNED (t)) - -#define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1) - -#ifndef PARAMS -# if defined PROTOTYPES || defined __STDC__ -# define PARAMS(Args) Args -# else -# define PARAMS(Args) () -# endif -#endif - -char *offtostr PARAMS ((off_t, char *)); -char *imaxtostr PARAMS ((intmax_t, char *)); -char *umaxtostr PARAMS ((uintmax_t, char *)); diff --git a/gnu/dist/diffutils/lib/malloc.c b/gnu/dist/diffutils/lib/malloc.c deleted file mode 100644 index 677c9fa4017..00000000000 --- a/gnu/dist/diffutils/lib/malloc.c +++ /dev/null @@ -1,40 +0,0 @@ -/* $NetBSD: malloc.c,v 1.1.1.1 2003/01/26 00:43:14 wiz Exp $ */ - -/* Work around bug on some systems where malloc (0) fails. - Copyright (C) 1997, 1998 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* written by Jim Meyering */ - -#if HAVE_CONFIG_H -# include -#endif -#undef malloc - -#include - -char *malloc (); - -/* Allocate an N-byte block of memory from the heap. - If N is zero, allocate a 1-byte block. */ - -char * -rpl_malloc (size_t n) -{ - if (n == 0) - n = 1; - return malloc (n); -} diff --git a/gnu/dist/diffutils/lib/memchr.c b/gnu/dist/diffutils/lib/memchr.c deleted file mode 100644 index 9262a6f22cd..00000000000 --- a/gnu/dist/diffutils/lib/memchr.c +++ /dev/null @@ -1,218 +0,0 @@ -/* $NetBSD: memchr.c,v 1.1.1.1 2003/01/26 00:43:14 wiz Exp $ */ - -/* Copyright (C) 1991,93,96,97,99,2000 Free Software Foundation, Inc. - Based on strlen implementation by Torbjorn Granlund (tege@sics.se), - with help from Dan Sahlin (dan@sics.se) and - commentary by Jim Blandy (jimb@ai.mit.edu); - adaptation to memchr suggested by Dick Karpinski (dick@cca.ucsf.edu), - and implemented by Roland McGrath (roland@ai.mit.edu). - -NOTE: The canonical source of this file is maintained with the GNU C Library. -Bugs can be reported to bug-glibc@prep.ai.mit.edu. - -This program is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2, or (at your option) any -later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, -USA. */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#undef __ptr_t -#if defined (__cplusplus) || (defined (__STDC__) && __STDC__) -# define __ptr_t void * -#else /* Not C++ or ANSI C. */ -# define __ptr_t char * -#endif /* C++ or ANSI C. */ - -#if defined _LIBC -# include -# include -#else -# define reg_char char -#endif - -#if HAVE_STDLIB_H || defined _LIBC -# include -#endif - -#if HAVE_LIMITS_H || defined _LIBC -# include -#endif - -#define LONG_MAX_32_BITS 2147483647 - -#ifndef LONG_MAX -# define LONG_MAX LONG_MAX_32_BITS -#endif - -#include -#if HAVE_BP_SYM_H || defined _LIBC -# include -#else -# define BP_SYM(sym) sym -#endif - -#undef memchr -#undef __memchr - -/* Search no more than N bytes of S for C. */ -__ptr_t -__memchr (s, c_in, n) - const __ptr_t s; - int c_in; - size_t n; -{ - const unsigned char *char_ptr; - const unsigned long int *longword_ptr; - unsigned long int longword, magic_bits, charmask; - unsigned reg_char c; - - c = (unsigned char) c_in; - - /* Handle the first few characters by reading one character at a time. - Do this until CHAR_PTR is aligned on a longword boundary. */ - for (char_ptr = (const unsigned char *) s; - n > 0 && ((unsigned long int) char_ptr - & (sizeof (longword) - 1)) != 0; - --n, ++char_ptr) - if (*char_ptr == c) - return (__ptr_t) char_ptr; - - /* All these elucidatory comments refer to 4-byte longwords, - but the theory applies equally well to 8-byte longwords. */ - - longword_ptr = (unsigned long int *) char_ptr; - - /* Bits 31, 24, 16, and 8 of this number are zero. Call these bits - the "holes." Note that there is a hole just to the left of - each byte, with an extra at the end: - - bits: 01111110 11111110 11111110 11111111 - bytes: AAAAAAAA BBBBBBBB CCCCCCCC DDDDDDDD - - The 1-bits make sure that carries propagate to the next 0-bit. - The 0-bits provide holes for carries to fall into. */ - - if (sizeof (longword) != 4 && sizeof (longword) != 8) - abort (); - -#if LONG_MAX <= LONG_MAX_32_BITS - magic_bits = 0x7efefeff; -#else - magic_bits = ((unsigned long int) 0x7efefefe << 32) | 0xfefefeff; -#endif - - /* Set up a longword, each of whose bytes is C. */ - charmask = c | (c << 8); - charmask |= charmask << 16; -#if LONG_MAX > LONG_MAX_32_BITS - charmask |= charmask << 32; -#endif - - /* Instead of the traditional loop which tests each character, - we will test a longword at a time. The tricky part is testing - if *any of the four* bytes in the longword in question are zero. */ - while (n >= sizeof (longword)) - { - /* We tentatively exit the loop if adding MAGIC_BITS to - LONGWORD fails to change any of the hole bits of LONGWORD. - - 1) Is this safe? Will it catch all the zero bytes? - Suppose there is a byte with all zeros. Any carry bits - propagating from its left will fall into the hole at its - least significant bit and stop. Since there will be no - carry from its most significant bit, the LSB of the - byte to the left will be unchanged, and the zero will be - detected. - - 2) Is this worthwhile? Will it ignore everything except - zero bytes? Suppose every byte of LONGWORD has a bit set - somewhere. There will be a carry into bit 8. If bit 8 - is set, this will carry into bit 16. If bit 8 is clear, - one of bits 9-15 must be set, so there will be a carry - into bit 16. Similarly, there will be a carry into bit - 24. If one of bits 24-30 is set, there will be a carry - into bit 31, so all of the hole bits will be changed. - - The one misfire occurs when bits 24-30 are clear and bit - 31 is set; in this case, the hole at bit 31 is not - changed. If we had access to the processor carry flag, - we could close this loophole by putting the fourth hole - at bit 32! - - So it ignores everything except 128's, when they're aligned - properly. - - 3) But wait! Aren't we looking for C, not zero? - Good point. So what we do is XOR LONGWORD with a longword, - each of whose bytes is C. This turns each byte that is C - into a zero. */ - - longword = *longword_ptr++ ^ charmask; - - /* Add MAGIC_BITS to LONGWORD. */ - if ((((longword + magic_bits) - - /* Set those bits that were unchanged by the addition. */ - ^ ~longword) - - /* Look at only the hole bits. If any of the hole bits - are unchanged, most likely one of the bytes was a - zero. */ - & ~magic_bits) != 0) - { - /* Which of the bytes was C? If none of them were, it was - a misfire; continue the search. */ - - const unsigned char *cp = (const unsigned char *) (longword_ptr - 1); - - if (cp[0] == c) - return (__ptr_t) cp; - if (cp[1] == c) - return (__ptr_t) &cp[1]; - if (cp[2] == c) - return (__ptr_t) &cp[2]; - if (cp[3] == c) - return (__ptr_t) &cp[3]; -#if LONG_MAX > 2147483647 - if (cp[4] == c) - return (__ptr_t) &cp[4]; - if (cp[5] == c) - return (__ptr_t) &cp[5]; - if (cp[6] == c) - return (__ptr_t) &cp[6]; - if (cp[7] == c) - return (__ptr_t) &cp[7]; -#endif - } - - n -= sizeof (longword); - } - - char_ptr = (const unsigned char *) longword_ptr; - - while (n-- > 0) - { - if (*char_ptr == c) - return (__ptr_t) char_ptr; - else - ++char_ptr; - } - - return 0; -} -#ifdef weak_alias -weak_alias (__memchr, BP_SYM (memchr)) -#endif diff --git a/gnu/dist/diffutils/lib/mkstemp.c b/gnu/dist/diffutils/lib/mkstemp.c deleted file mode 100644 index e4650ac748c..00000000000 --- a/gnu/dist/diffutils/lib/mkstemp.c +++ /dev/null @@ -1,44 +0,0 @@ -/* $NetBSD: mkstemp.c,v 1.1.1.1 2003/01/26 00:43:14 wiz Exp $ */ - -/* Copyright (C) 1998, 1999, 2001 Free Software Foundation, Inc. - This file is derived from the one in the GNU C Library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#include - -/* Disable the definition of mkstemp to rpl_mkstemp (from config.h) in this - file. Otherwise, we'd get conflicting prototypes for rpl_mkstemp on - most systems. */ -#undef mkstemp - -#include -#include - -#ifndef __GT_FILE -# define __GT_FILE 0 -#endif - -int __gen_tempname (); - -/* Generate a unique temporary file name from TEMPLATE. - The last six characters of TEMPLATE must be "XXXXXX"; - they are replaced with a string that makes the filename unique. - Then open the file and return a fd. */ -int -rpl_mkstemp (char *template) -{ - return __gen_tempname (template, __GT_FILE); -} diff --git a/gnu/dist/diffutils/lib/offtostr.c b/gnu/dist/diffutils/lib/offtostr.c deleted file mode 100644 index b267f7deb55..00000000000 --- a/gnu/dist/diffutils/lib/offtostr.c +++ /dev/null @@ -1,5 +0,0 @@ -/* $NetBSD: offtostr.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -#define inttostr offtostr -#define inttype off_t -#include "inttostr.c" diff --git a/gnu/dist/diffutils/lib/posix/Makefile.am b/gnu/dist/diffutils/lib/posix/Makefile.am deleted file mode 100644 index 610ef229ddf..00000000000 --- a/gnu/dist/diffutils/lib/posix/Makefile.am +++ /dev/null @@ -1,4 +0,0 @@ -## Process this file with automake to create Makefile.in -AUTOMAKE_OPTIONS=no-dependencies - -EXTRA_DIST = regex.h diff --git a/gnu/dist/diffutils/lib/posix/Makefile.in b/gnu/dist/diffutils/lib/posix/Makefile.in deleted file mode 100644 index 47d8ee89350..00000000000 --- a/gnu/dist/diffutils/lib/posix/Makefile.in +++ /dev/null @@ -1,229 +0,0 @@ -# Makefile.in generated by automake 1.6 from Makefile.am. -# @configure_input@ - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 -# 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = ../.. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_HEADER = $(INSTALL_DATA) -transform = @program_transform_name@ -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ - -EXEEXT = @EXEEXT@ -OBJEXT = @OBJEXT@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -AMTAR = @AMTAR@ -AWK = @AWK@ -BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CPP = @CPP@ -DATADIRNAME = @DATADIRNAME@ -DEPDIR = @DEPDIR@ -GENCAT = @GENCAT@ -GLIBC21 = @GLIBC21@ -GMSGFMT = @GMSGFMT@ -HAVE_LIB = @HAVE_LIB@ -HELP2MAN = @HELP2MAN@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLBISON = @INTLBISON@ -INTLLIBS = @INTLLIBS@ -INTLOBJS = @INTLOBJS@ -INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ -LIB = @LIB@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ -LTLIB = @LTLIB@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -PACKAGE = @PACKAGE@ -POSUB = @POSUB@ -PR_PROGRAM = @PR_PROGRAM@ -RANLIB = @RANLIB@ -STRIP = @STRIP@ -U = @U@ -USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -am__include = @am__include@ -am__quote = @am__quote@ -install_sh = @install_sh@ -AUTOMAKE_OPTIONS = no-dependencies - -EXTRA_DIST = regex.h -subdir = lib/posix -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -depcomp = -am__depfiles_maybe = -DIST_SOURCES = -DIST_COMMON = Makefile.am Makefile.in -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnits lib/posix/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) -uninstall-info-am: -tags: TAGS -TAGS: - -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = ../.. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkinstalldirs) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - cp -pR $$d/$$file $(distdir)$$dir \ - || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile - -installdirs: - -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* - -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 - -distclean: distclean-am - -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -uninstall-am: uninstall-info-am - -.PHONY: all all-am check check-am clean clean-generic distclean \ - distclean-generic distdir dvi dvi-am info info-am install \ - install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic uninstall uninstall-am uninstall-info-am - -# 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/gnu/dist/diffutils/lib/posix/regex.h b/gnu/dist/diffutils/lib/posix/regex.h deleted file mode 100644 index 3a4f6768ed5..00000000000 --- a/gnu/dist/diffutils/lib/posix/regex.h +++ /dev/null @@ -1,564 +0,0 @@ -/* $NetBSD: regex.h,v 1.1.1.1 2003/01/26 00:43:16 wiz Exp $ */ - -/* Definitions for data structures and routines for the regular - expression library, version 0.12. - Copyright (C) 1985,1989-1993,1995-1998, 2000 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#ifndef _REGEX_H -#define _REGEX_H 1 - -/* Allow the use in C++ code. */ -#ifdef __cplusplus -extern "C" { -#endif - -/* POSIX says that must be included (by the caller) before - . */ - -#if !defined _POSIX_C_SOURCE && !defined _POSIX_SOURCE && defined VMS -/* VMS doesn't have `size_t' in , even though POSIX says it - should be there. */ -# include -#endif - -/* The following two types have to be signed and unsigned integer type - wide enough to hold a value of a pointer. For most ANSI compilers - ptrdiff_t and size_t should be likely OK. Still size of these two - types is 2 for Microsoft C. Ugh... */ -typedef long int s_reg_t; -typedef unsigned long int active_reg_t; - -/* The following bits are used to determine the regexp syntax we - recognize. The set/not-set meanings are chosen so that Emacs syntax - remains the value 0. The bits are given in alphabetical order, and - the definitions shifted by one from the previous bit; thus, when we - add or remove a bit, only one other definition need change. */ -typedef unsigned long int reg_syntax_t; - -/* If this bit is not set, then \ inside a bracket expression is literal. - If set, then such a \ quotes the following character. */ -#define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1) - -/* If this bit is not set, then + and ? are operators, and \+ and \? are - literals. - If set, then \+ and \? are operators and + and ? are literals. */ -#define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1) - -/* If this bit is set, then character classes are supported. They are: - [:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:], - [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:]. - If not set, then character classes are not supported. */ -#define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1) - -/* If this bit is set, then ^ and $ are always anchors (outside bracket - expressions, of course). - If this bit is not set, then it depends: - ^ is an anchor if it is at the beginning of a regular - expression or after an open-group or an alternation operator; - $ is an anchor if it is at the end of a regular expression, or - before a close-group or an alternation operator. - - This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because - POSIX draft 11.2 says that * etc. in leading positions is undefined. - We already implemented a previous draft which made those constructs - invalid, though, so we haven't changed the code back. */ -#define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1) - -/* If this bit is set, then special characters are always special - regardless of where they are in the pattern. - If this bit is not set, then special characters are special only in - some contexts; otherwise they are ordinary. Specifically, - * + ? and intervals are only special when not after the beginning, - open-group, or alternation operator. */ -#define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1) - -/* If this bit is set, then *, +, ?, and { cannot be first in an re or - immediately after an alternation or begin-group operator. */ -#define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1) - -/* If this bit is set, then . matches newline. - If not set, then it doesn't. */ -#define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1) - -/* If this bit is set, then . doesn't match NUL. - If not set, then it does. */ -#define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1) - -/* If this bit is set, nonmatching lists [^...] do not match newline. - If not set, they do. */ -#define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1) - -/* If this bit is set, either \{...\} or {...} defines an - interval, depending on RE_NO_BK_BRACES. - If not set, \{, \}, {, and } are literals. */ -#define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1) - -/* If this bit is set, +, ? and | aren't recognized as operators. - If not set, they are. */ -#define RE_LIMITED_OPS (RE_INTERVALS << 1) - -/* If this bit is set, newline is an alternation operator. - If not set, newline is literal. */ -#define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1) - -/* If this bit is set, then `{...}' defines an interval, and \{ and \} - are literals. - If not set, then `\{...\}' defines an interval. */ -#define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1) - -/* If this bit is set, (...) defines a group, and \( and \) are literals. - If not set, \(...\) defines a group, and ( and ) are literals. */ -#define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1) - -/* If this bit is set, then \ matches . - If not set, then \ is a back-reference. */ -#define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1) - -/* If this bit is set, then | is an alternation operator, and \| is literal. - If not set, then \| is an alternation operator, and | is literal. */ -#define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1) - -/* If this bit is set, then an ending range point collating higher - than the starting range point, as in [z-a], is invalid. - If not set, then when ending range point collates higher than the - starting range point, the range is ignored. */ -#define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1) - -/* If this bit is set, then an unmatched ) is ordinary. - If not set, then an unmatched ) is invalid. */ -#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1) - -/* If this bit is set, succeed as soon as we match the whole pattern, - without further backtracking. */ -#define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1) - -/* If this bit is set, do not process the GNU regex operators. - If not set, then the GNU regex operators are recognized. */ -#define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1) - -/* If this bit is set, turn on internal regex debugging. - If not set, and debugging was on, turn it off. - This only works if regex.c is compiled -DDEBUG. - We define this bit always, so that all that's needed to turn on - debugging is to recompile regex.c; the calling code can always have - this bit set, and it won't affect anything in the normal case. */ -#define RE_DEBUG (RE_NO_GNU_OPS << 1) - -/* If this bit is set, a syntactically invalid interval is treated as - a string of ordinary characters. For example, the ERE 'a{1' is - treated as 'a\{1'. */ -#define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1) - -/* This global variable defines the particular regexp syntax to use (for - some interfaces). When a regexp is compiled, the syntax used is - stored in the pattern buffer, so changing this does not affect - already-compiled regexps. */ -extern reg_syntax_t re_syntax_options; - -/* Define combinations of the above bits for the standard possibilities. - (The [[[ comments delimit what gets put into the Texinfo file, so - don't delete them!) */ -/* [[[begin syntaxes]]] */ -#define RE_SYNTAX_EMACS 0 - -#define RE_SYNTAX_AWK \ - (RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \ - | RE_NO_BK_PARENS | RE_NO_BK_REFS \ - | RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \ - | RE_DOT_NEWLINE | RE_CONTEXT_INDEP_ANCHORS \ - | RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS) - -#define RE_SYNTAX_GNU_AWK \ - ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DEBUG) \ - & ~(RE_DOT_NOT_NULL | RE_INTERVALS | RE_CONTEXT_INDEP_OPS)) - -#define RE_SYNTAX_POSIX_AWK \ - (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS \ - | RE_INTERVALS | RE_NO_GNU_OPS) - -#define RE_SYNTAX_GREP \ - (RE_BK_PLUS_QM | RE_CHAR_CLASSES \ - | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \ - | RE_NEWLINE_ALT) - -#define RE_SYNTAX_EGREP \ - (RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \ - | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \ - | RE_NEWLINE_ALT | RE_NO_BK_PARENS \ - | RE_NO_BK_VBAR) - -#define RE_SYNTAX_POSIX_EGREP \ - (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES \ - | RE_INVALID_INTERVAL_ORD) - -/* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */ -#define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC - -#define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC - -/* Syntax bits common to both basic and extended POSIX regex syntax. */ -#define _RE_SYNTAX_POSIX_COMMON \ - (RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \ - | RE_INTERVALS | RE_NO_EMPTY_RANGES) - -#define RE_SYNTAX_POSIX_BASIC \ - (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM) - -/* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes - RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this - isn't minimal, since other operators, such as \`, aren't disabled. */ -#define RE_SYNTAX_POSIX_MINIMAL_BASIC \ - (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS) - -#define RE_SYNTAX_POSIX_EXTENDED \ - (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ - | RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \ - | RE_NO_BK_PARENS | RE_NO_BK_VBAR \ - | RE_CONTEXT_INVALID_OPS | RE_UNMATCHED_RIGHT_PAREN_ORD) - -/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INDEP_OPS is - removed and RE_NO_BK_REFS is added. */ -#define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \ - (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \ - | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \ - | RE_NO_BK_PARENS | RE_NO_BK_REFS \ - | RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD) -/* [[[end syntaxes]]] */ - -/* Maximum number of duplicates an interval can allow. Some systems - (erroneously) define this in other header files, but we want our - value, so remove any previous define. */ -#ifdef RE_DUP_MAX -# undef RE_DUP_MAX -#endif -/* If sizeof(int) == 2, then ((1 << 15) - 1) overflows. */ -#define RE_DUP_MAX (0x7fff) - - -/* POSIX `cflags' bits (i.e., information for `regcomp'). */ - -/* If this bit is set, then use extended regular expression syntax. - If not set, then use basic regular expression syntax. */ -#define REG_EXTENDED 1 - -/* If this bit is set, then ignore case when matching. - If not set, then case is significant. */ -#define REG_ICASE (REG_EXTENDED << 1) - -/* If this bit is set, then anchors do not match at newline - characters in the string. - If not set, then anchors do match at newlines. */ -#define REG_NEWLINE (REG_ICASE << 1) - -/* If this bit is set, then report only success or fail in regexec. - If not set, then returns differ between not matching and errors. */ -#define REG_NOSUB (REG_NEWLINE << 1) - - -/* POSIX `eflags' bits (i.e., information for regexec). */ - -/* If this bit is set, then the beginning-of-line operator doesn't match - the beginning of the string (presumably because it's not the - beginning of a line). - If not set, then the beginning-of-line operator does match the - beginning of the string. */ -#define REG_NOTBOL 1 - -/* Like REG_NOTBOL, except for the end-of-line. */ -#define REG_NOTEOL (1 << 1) - - -/* If any error codes are removed, changed, or added, update the - `re_error_msg' table in regex.c. */ -typedef enum -{ -#ifdef _XOPEN_SOURCE - REG_ENOSYS = -1, /* This will never happen for this implementation. */ -#endif - - REG_NOERROR = 0, /* Success. */ - REG_NOMATCH, /* Didn't find a match (for regexec). */ - - /* POSIX regcomp return error codes. (In the order listed in the - standard.) */ - REG_BADPAT, /* Invalid pattern. */ - REG_ECOLLATE, /* Not implemented. */ - REG_ECTYPE, /* Invalid character class name. */ - REG_EESCAPE, /* Trailing backslash. */ - REG_ESUBREG, /* Invalid back reference. */ - REG_EBRACK, /* Unmatched left bracket. */ - REG_EPAREN, /* Parenthesis imbalance. */ - REG_EBRACE, /* Unmatched \{. */ - REG_BADBR, /* Invalid contents of \{\}. */ - REG_ERANGE, /* Invalid range end. */ - REG_ESPACE, /* Ran out of memory. */ - REG_BADRPT, /* No preceding re for repetition op. */ - - /* Error codes we've added. */ - REG_EEND, /* Premature end. */ - REG_ESIZE, /* Compiled pattern bigger than 2^16 bytes. */ - REG_ERPAREN /* Unmatched ) or \); not returned from regcomp. */ -} reg_errcode_t; - -/* This data structure represents a compiled pattern. Before calling - the pattern compiler, the fields `buffer', `allocated', `fastmap', - `translate', and `no_sub' can be set. After the pattern has been - compiled, the `re_nsub' field is available. All other fields are - private to the regex routines. */ - -#ifndef RE_TRANSLATE_TYPE -# define RE_TRANSLATE_TYPE char * -#endif - -struct re_pattern_buffer -{ -/* [[[begin pattern_buffer]]] */ - /* Space that holds the compiled pattern. It is declared as - `unsigned char *' because its elements are - sometimes used as array indexes. */ - unsigned char *buffer; - - /* Number of bytes to which `buffer' points. */ - unsigned long int allocated; - - /* Number of bytes actually used in `buffer'. */ - unsigned long int used; - - /* Syntax setting with which the pattern was compiled. */ - reg_syntax_t syntax; - - /* Pointer to a fastmap, if any, otherwise zero. re_search uses - the fastmap, if there is one, to skip over impossible - starting points for matches. */ - char *fastmap; - - /* Either a translate table to apply to all characters before - comparing them, or zero for no translation. The translation - is applied to a pattern when it is compiled and to a string - when it is matched. */ - RE_TRANSLATE_TYPE translate; - - /* Number of subexpressions found by the compiler. */ - size_t re_nsub; - - /* Zero if this pattern cannot match the empty string, one else. - Well, in truth it's used only in `re_search_2', to see - whether or not we should use the fastmap, so we don't set - this absolutely perfectly; see `re_compile_fastmap' (the - `duplicate' case). */ - unsigned can_be_null : 1; - - /* If REGS_UNALLOCATED, allocate space in the `regs' structure - for `max (RE_NREGS, re_nsub + 1)' groups. - If REGS_REALLOCATE, reallocate space if necessary. - If REGS_FIXED, use what's there. */ -#define REGS_UNALLOCATED 0 -#define REGS_REALLOCATE 1 -#define REGS_FIXED 2 - unsigned regs_allocated : 2; - - /* Set to zero when `regex_compile' compiles a pattern; set to one - by `re_compile_fastmap' if it updates the fastmap. */ - unsigned fastmap_accurate : 1; - - /* If set, `re_match_2' does not return information about - subexpressions. */ - unsigned no_sub : 1; - - /* If set, a beginning-of-line anchor doesn't match at the - beginning of the string. */ - unsigned not_bol : 1; - - /* Similarly for an end-of-line anchor. */ - unsigned not_eol : 1; - - /* If true, an anchor at a newline matches. */ - unsigned newline_anchor : 1; - -/* [[[end pattern_buffer]]] */ -}; - -typedef struct re_pattern_buffer regex_t; - -/* Type for byte offsets within the string. POSIX mandates this. */ -typedef int regoff_t; - - -/* This is the structure we store register match data in. See - regex.texinfo for a full description of what registers match. */ -struct re_registers -{ - unsigned num_regs; - regoff_t *start; - regoff_t *end; -}; - - -/* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer, - `re_match_2' returns information about at least this many registers - the first time a `regs' structure is passed. */ -#ifndef RE_NREGS -# define RE_NREGS 30 -#endif - - -/* POSIX specification for registers. Aside from the different names than - `re_registers', POSIX uses an array of structures, instead of a - structure of arrays. */ -typedef struct -{ - regoff_t rm_so; /* Byte offset from string's start to substring's start. */ - regoff_t rm_eo; /* Byte offset from string's start to substring's end. */ -} regmatch_t; - -/* Declarations for routines. */ - -/* To avoid duplicating every routine declaration -- once with a - prototype (if we are ANSI), and once without (if we aren't) -- we - use the following macro to declare argument types. This - unfortunately clutters up the declarations a bit, but I think it's - worth it. */ - -#if __STDC__ - -# define _RE_ARGS(args) args - -#else /* not __STDC__ */ - -# define _RE_ARGS(args) () - -#endif /* not __STDC__ */ - -/* Sets the current default syntax to SYNTAX, and return the old syntax. - You can also simply assign to the `re_syntax_options' variable. */ -extern reg_syntax_t re_set_syntax _RE_ARGS ((reg_syntax_t syntax)); - -/* Compile the regular expression PATTERN, with length LENGTH - and syntax given by the global `re_syntax_options', into the buffer - BUFFER. Return NULL if successful, and an error string if not. */ -extern const char *re_compile_pattern - _RE_ARGS ((const char *pattern, size_t length, - struct re_pattern_buffer *buffer)); - - -/* Compile a fastmap for the compiled pattern in BUFFER; used to - accelerate searches. Return 0 if successful and -2 if was an - internal error. */ -extern int re_compile_fastmap _RE_ARGS ((struct re_pattern_buffer *buffer)); - - -/* Search in the string STRING (with length LENGTH) for the pattern - compiled into BUFFER. Start searching at position START, for RANGE - characters. Return the starting position of the match, -1 for no - match, or -2 for an internal error. Also return register - information in REGS (if REGS and BUFFER->no_sub are nonzero). */ -extern int re_search - _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string, - int length, int start, int range, struct re_registers *regs)); - - -/* Like `re_search', but search in the concatenation of STRING1 and - STRING2. Also, stop searching at index START + STOP. */ -extern int re_search_2 - _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1, - int length1, const char *string2, int length2, - int start, int range, struct re_registers *regs, int stop)); - - -/* Like `re_search', but return how many characters in STRING the regexp - in BUFFER matched, starting at position START. */ -extern int re_match - _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string, - int length, int start, struct re_registers *regs)); - - -/* Relates to `re_match' as `re_search_2' relates to `re_search'. */ -extern int re_match_2 - _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1, - int length1, const char *string2, int length2, - int start, struct re_registers *regs, int stop)); - - -/* Set REGS to hold NUM_REGS registers, storing them in STARTS and - ENDS. Subsequent matches using BUFFER and REGS will use this memory - for recording register information. STARTS and ENDS must be - allocated with malloc, and must each be at least `NUM_REGS * sizeof - (regoff_t)' bytes long. - - If NUM_REGS == 0, then subsequent matches should allocate their own - register data. - - Unless this function is called, the first search or match using - PATTERN_BUFFER will allocate its own register data, without - freeing the old data. */ -extern void re_set_registers - _RE_ARGS ((struct re_pattern_buffer *buffer, struct re_registers *regs, - unsigned num_regs, regoff_t *starts, regoff_t *ends)); - -#if defined _REGEX_RE_COMP || defined _LIBC -# ifndef _CRAY -/* 4.2 bsd compatibility. */ -extern char *re_comp _RE_ARGS ((const char *)); -extern int re_exec _RE_ARGS ((const char *)); -# endif -#endif - -/* GCC 2.95 and later have "__restrict"; C99 compilers have - "restrict", and "configure" may have defined "restrict". */ -#ifndef __restrict -# if ! (2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__)) -# if defined restrict || 199901L <= __STDC_VERSION__ -# define __restrict restrict -# else -# define __restrict -# endif -# endif -#endif -/* For now unconditionally define __restrict_arr to expand to nothing. - Ideally we would have a test for the compiler which allows defining - it to restrict. */ -#define __restrict_arr - -/* POSIX compatibility. */ -extern int regcomp _RE_ARGS ((regex_t *__restrict __preg, - const char *__restrict __pattern, - int __cflags)); - -extern int regexec _RE_ARGS ((const regex_t *__restrict __preg, - const char *__restrict __string, size_t __nmatch, - regmatch_t __pmatch[__restrict_arr], - int __eflags)); - -extern size_t regerror _RE_ARGS ((int __errcode, const regex_t *__preg, - char *__errbuf, size_t __errbuf_size)); - -extern void regfree _RE_ARGS ((regex_t *__preg)); - - -#ifdef __cplusplus -} -#endif /* C++ */ - -#endif /* regex.h */ - -/* -Local variables: -make-backup-files: t -version-control: t -trim-versions-without-asking: nil -End: -*/ diff --git a/gnu/dist/diffutils/lib/posixver.c b/gnu/dist/diffutils/lib/posixver.c deleted file mode 100644 index 8449a44a547..00000000000 --- a/gnu/dist/diffutils/lib/posixver.c +++ /dev/null @@ -1,60 +0,0 @@ -/* $NetBSD: posixver.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* Which POSIX version to conform to, for utilities. - - Copyright (C) 2002 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU Library General Public License as published - by the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public - License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. */ - -/* Written by Paul Eggert. */ - -#if HAVE_CONFIG_H -# include -#endif - -#include - -#include -#if !HAVE_DECL_GETENV && !defined getenv -char *getenv (); -#endif - -#if HAVE_UNISTD_H -# include -#endif -#ifndef _POSIX2_VERSION -# define _POSIX2_VERSION 0 -#endif - -/* The POSIX version that utilities should conform to. The default is - specified by the system. */ - -int -posix2_version (void) -{ - long int v = _POSIX2_VERSION; - char const *s = getenv ("_POSIX2_VERSION"); - - if (s && *s) - { - char *e; - long int i = strtol (s, &e, 10); - if (! *e) - v = i; - } - - return v < INT_MIN ? INT_MIN : v < INT_MAX ? v : INT_MAX; -} diff --git a/gnu/dist/diffutils/lib/posixver.h b/gnu/dist/diffutils/lib/posixver.h deleted file mode 100644 index 9379a204faa..00000000000 --- a/gnu/dist/diffutils/lib/posixver.h +++ /dev/null @@ -1,3 +0,0 @@ -/* $NetBSD: posixver.h,v 1.1.1.1 2003/01/26 00:43:14 wiz Exp $ */ - -int posix2_version (void); diff --git a/gnu/dist/diffutils/lib/prepargs.c b/gnu/dist/diffutils/lib/prepargs.c deleted file mode 100644 index 817af35280e..00000000000 --- a/gnu/dist/diffutils/lib/prepargs.c +++ /dev/null @@ -1,95 +0,0 @@ -/* $NetBSD: prepargs.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* Parse arguments from a string and prepend them to an argv. - - Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ - -/* Written by Paul Eggert . */ - -#ifdef HAVE_CONFIG_H -# include -#endif -#include "prepargs.h" -#include -#include -#include - -#include - -/* IN_CTYPE_DOMAIN (C) is nonzero if the unsigned char C can safely be given - as an argument to macros like "isspace". */ -#ifdef STDC_HEADERS -# define IN_CTYPE_DOMAIN(c) 1 -#else -# define IN_CTYPE_DOMAIN(c) ((c) <= 0177) -#endif - -#define ISSPACE(c) (IN_CTYPE_DOMAIN (c) && isspace (c)) - -/* Find the white-space-separated options specified by OPTIONS, and - using BUF to store copies of these options, set ARGV[0], ARGV[1], - etc. to the option copies. Return the number N of options found. - Do not set ARGV[N]. If ARGV is zero, do not store ARGV[0] etc. - Backslash can be used to escape whitespace (and backslashes). */ -static int -prepend_args (char const *options, char *buf, char **argv) -{ - char const *o = options; - char *b = buf; - int n = 0; - - for (;;) - { - while (ISSPACE ((unsigned char) *o)) - o++; - if (!*o) - return n; - if (argv) - argv[n] = b; - n++; - - do - if ((*b++ = *o++) == '\\' && *o) - b[-1] = *o++; - while (*o && ! ISSPACE ((unsigned char) *o)); - - *b++ = '\0'; - } -} - -/* Prepend the whitespace-separated options in OPTIONS to the argument - vector of a main program with argument count *PARGC and argument - vector *PARGV. */ -void -prepend_default_options (char const *options, int *pargc, char ***pargv) -{ - if (options) - { - char *buf = xmalloc (strlen (options) + 1); - int prepended = prepend_args (options, buf, (char **) 0); - int argc = *pargc; - char * const *argv = *pargv; - char **pp = (char **) xmalloc ((prepended + argc + 1) * sizeof *pp); - *pargc = prepended + argc; - *pargv = pp; - *pp++ = *argv++; - pp += prepend_args (options, buf, pp); - while ((*pp++ = *argv++)) - continue; - } -} diff --git a/gnu/dist/diffutils/lib/prepargs.h b/gnu/dist/diffutils/lib/prepargs.h deleted file mode 100644 index 6fa90ae439a..00000000000 --- a/gnu/dist/diffutils/lib/prepargs.h +++ /dev/null @@ -1,5 +0,0 @@ -/* $NetBSD: prepargs.h,v 1.1.1.1 2003/01/26 00:43:14 wiz Exp $ */ - -/* Parse arguments from a string and prepend them to an argv. */ - -void prepend_default_options (char const *, int *, char ***); diff --git a/gnu/dist/diffutils/lib/quotesys.c b/gnu/dist/diffutils/lib/quotesys.c deleted file mode 100644 index 49d4c523944..00000000000 --- a/gnu/dist/diffutils/lib/quotesys.c +++ /dev/null @@ -1,127 +0,0 @@ -/* $NetBSD: quotesys.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* Shell command argument quoting. - Copyright (C) 1994, 1995, 1997 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* Written by Paul Eggert */ - -#if HAVE_CONFIG_H -# include -#endif - -#include -#include - -/* Place into QUOTED a quoted version of ARG suitable for `system'. - Return the length of the resulting string (which is not null-terminated). - If QUOTED is null, return the length without any side effects. */ - -size_t -quote_system_arg (quoted, arg) - char *quoted; - char const *arg; -{ - char const *a; - size_t len = 0; - - /* Scan ARG, copying it to QUOTED if QUOTED is not null, - looking for shell metacharacters. */ - - for (a = arg; ; a++) - { - char c = *a; - switch (c) - { - case 0: - /* ARG has no shell metacharacters. */ - return len; - - case '=': - if (*arg == '-') - break; - /* Fall through. */ - case '\t': case '\n': case ' ': - case '!': case '"': case '#': case '$': case '%': case '&': case '\'': - case '(': case ')': case '*': case ';': - case '<': case '>': case '?': case '[': case '\\': - case '^': case '`': case '|': case '~': - { - /* ARG has a shell metacharacter. - Start over, quoting it this time. */ - - len = 0; - c = *arg++; - - /* If ARG is an option, quote just its argument. - This is not necessary, but it looks nicer. */ - if (c == '-' && arg < a) - { - c = *arg++; - - if (quoted) - { - quoted[len] = '-'; - quoted[len + 1] = c; - } - len += 2; - - if (c == '-') - while (arg < a) - { - c = *arg++; - if (quoted) - quoted[len] = c; - len++; - if (c == '=') - break; - } - c = *arg++; - } - - if (quoted) - quoted[len] = '\''; - len++; - - for (; c; c = *arg++) - { - if (c == '\'') - { - if (quoted) - { - quoted[len] = '\''; - quoted[len + 1] = '\\'; - quoted[len + 2] = '\''; - } - len += 3; - } - if (quoted) - quoted[len] = c; - len++; - } - - if (quoted) - quoted[len] = '\''; - return len + 1; - } - } - - if (quoted) - quoted[len] = c; - len++; - } -} diff --git a/gnu/dist/diffutils/lib/quotesys.h b/gnu/dist/diffutils/lib/quotesys.h deleted file mode 100644 index 207fb805251..00000000000 --- a/gnu/dist/diffutils/lib/quotesys.h +++ /dev/null @@ -1,11 +0,0 @@ -/* $NetBSD: quotesys.h,v 1.1.1.1 2003/01/26 00:43:14 wiz Exp $ */ - -/* quotesys.h -- declarations for quoting system arguments */ - -#if defined __STDC__ || __GNUC__ -# define __QUOTESYS_P(args) args -#else -# define __QUOTESYS_P(args) () -#endif - -size_t quote_system_arg __QUOTESYS_P ((char *, char const *)); diff --git a/gnu/dist/diffutils/lib/realloc.c b/gnu/dist/diffutils/lib/realloc.c deleted file mode 100644 index 3ec2520b554..00000000000 --- a/gnu/dist/diffutils/lib/realloc.c +++ /dev/null @@ -1,46 +0,0 @@ -/* $NetBSD: realloc.c,v 1.1.1.1 2003/01/26 00:43:14 wiz Exp $ */ - -/* Work around bug on some systems where realloc (NULL, 0) fails. - Copyright (C) 1997 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* written by Jim Meyering */ - -#if HAVE_CONFIG_H -# include -#endif -#undef realloc - -#include - -char *malloc (); -char *realloc (); - -/* Change the size of an allocated block of memory P to N bytes, - with error checking. If N is zero, change it to 1. If P is NULL, - use malloc. */ - -char * -rpl_realloc (p, n) - char *p; - size_t n; -{ - if (n == 0) - n = 1; - if (p == 0) - return malloc (n); - return realloc (p, n); -} diff --git a/gnu/dist/diffutils/lib/regex.c b/gnu/dist/diffutils/lib/regex.c deleted file mode 100644 index 48a912ea46a..00000000000 --- a/gnu/dist/diffutils/lib/regex.c +++ /dev/null @@ -1,8433 +0,0 @@ -/* $NetBSD: regex.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* Extended regular expression matching and search library, - version 0.12. - (Implements POSIX draft P1003.2/D11.2, except for some of the - internationalization features.) - Copyright (C) 1993-1999, 2000, 2001 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* AIX requires this to be the first thing in the file. */ -#if defined _AIX && !defined REGEX_MALLOC - #pragma alloca -#endif - -#undef _GNU_SOURCE -#define _GNU_SOURCE - -#ifdef HAVE_CONFIG_H -# include -#endif - -#ifndef PARAMS -# if defined __GNUC__ || (defined __STDC__ && __STDC__) -# define PARAMS(args) args -# else -# define PARAMS(args) () -# endif /* GCC. */ -#endif /* Not PARAMS. */ - -#ifndef INSIDE_RECURSION - -# if defined STDC_HEADERS && !defined emacs -# include -# else -/* We need this for `regex.h', and perhaps for the Emacs include files. */ -# include -# endif - -# define WIDE_CHAR_SUPPORT (HAVE_WCTYPE_H && HAVE_WCHAR_H && HAVE_BTOWC) - -/* For platform which support the ISO C amendement 1 functionality we - support user defined character classes. */ -# if defined _LIBC || WIDE_CHAR_SUPPORT -/* Solaris 2.5 has a bug: must be included before . */ -# include -# include -# endif - -# ifdef _LIBC -/* We have to keep the namespace clean. */ -# define regfree(preg) __regfree (preg) -# define regexec(pr, st, nm, pm, ef) __regexec (pr, st, nm, pm, ef) -# define regcomp(preg, pattern, cflags) __regcomp (preg, pattern, cflags) -# define regerror(errcode, preg, errbuf, errbuf_size) \ - __regerror(errcode, preg, errbuf, errbuf_size) -# define re_set_registers(bu, re, nu, st, en) \ - __re_set_registers (bu, re, nu, st, en) -# define re_match_2(bufp, string1, size1, string2, size2, pos, regs, stop) \ - __re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop) -# define re_match(bufp, string, size, pos, regs) \ - __re_match (bufp, string, size, pos, regs) -# define re_search(bufp, string, size, startpos, range, regs) \ - __re_search (bufp, string, size, startpos, range, regs) -# define re_compile_pattern(pattern, length, bufp) \ - __re_compile_pattern (pattern, length, bufp) -# define re_set_syntax(syntax) __re_set_syntax (syntax) -# define re_search_2(bufp, st1, s1, st2, s2, startpos, range, regs, stop) \ - __re_search_2 (bufp, st1, s1, st2, s2, startpos, range, regs, stop) -# define re_compile_fastmap(bufp) __re_compile_fastmap (bufp) - -# define btowc __btowc -# define iswctype __iswctype -# define mbrtowc __mbrtowc -# define wcslen __wcslen -# define wcscoll __wcscoll -# define wcrtomb __wcrtomb - -/* We are also using some library internals. */ -# include -# include -# include -# include -# endif - -/* This is for other GNU distributions with internationalized messages. */ -# if (HAVE_LIBINTL_H && ENABLE_NLS) || defined _LIBC -# include -# ifdef _LIBC -# undef gettext -# define gettext(msgid) __dcgettext ("libc", msgid, LC_MESSAGES) -# endif -# else -# define gettext(msgid) (msgid) -# endif - -# ifndef gettext_noop -/* This define is so xgettext can find the internationalizable - strings. */ -# define gettext_noop(String) String -# endif - -/* Support for bounded pointers. */ -# if !defined _LIBC && !defined __BOUNDED_POINTERS__ -# define __bounded /* nothing */ -# define __unbounded /* nothing */ -# define __ptrvalue /* nothing */ -# endif - -/* The `emacs' switch turns on certain matching commands - that make sense only in Emacs. */ -# ifdef emacs - -# include "lisp.h" -# include "buffer.h" -# include "syntax.h" - -# else /* not emacs */ - -/* If we are not linking with Emacs proper, - we can't use the relocating allocator - even if config.h says that we can. */ -# undef REL_ALLOC - -# if defined STDC_HEADERS || defined _LIBC -# include -# else -char *malloc (); -char *realloc (); -# endif - -/* When used in Emacs's lib-src, we need to get bzero and bcopy somehow. - If nothing else has been done, use the method below. */ -# ifdef INHIBIT_STRING_HEADER -# if !(defined HAVE_BZERO && defined HAVE_BCOPY) -# if !defined bzero && !defined bcopy -# undef INHIBIT_STRING_HEADER -# endif -# endif -# endif - -/* This is the normal way of making sure we have a bcopy and a bzero. - This is used in most programs--a few other programs avoid this - by defining INHIBIT_STRING_HEADER. */ -# ifndef INHIBIT_STRING_HEADER -# if defined HAVE_STRING_H || defined STDC_HEADERS || defined _LIBC -# include -# ifndef bzero -# ifndef _LIBC -# define bzero(s, n) (memset (s, '\0', n), (s)) -# else -# define bzero(s, n) __bzero (s, n) -# endif -# endif -# else -# include -# ifndef memcmp -# define memcmp(s1, s2, n) bcmp (s1, s2, n) -# endif -# ifndef memcpy -# define memcpy(d, s, n) (bcopy (s, d, n), (d)) -# endif -# endif -# endif - -/* Define the syntax stuff for \<, \>, etc. */ - -/* This must be nonzero for the wordchar and notwordchar pattern - commands in re_match_2. */ -# ifndef Sword -# define Sword 1 -# endif - -# ifdef SWITCH_ENUM_BUG -# define SWITCH_ENUM_CAST(x) ((int)(x)) -# else -# define SWITCH_ENUM_CAST(x) (x) -# endif - -# endif /* not emacs */ - -# if defined _LIBC || HAVE_LIMITS_H -# include -# endif - -# ifndef MB_LEN_MAX -# define MB_LEN_MAX 1 -# endif - -/* Get the interface, including the syntax bits. */ -# include - -/* isalpha etc. are used for the character classes. */ -# include - -/* Jim Meyering writes: - - "... Some ctype macros are valid only for character codes that - isascii says are ASCII (SGI's IRIX-4.0.5 is one such system --when - using /bin/cc or gcc but without giving an ansi option). So, all - ctype uses should be through macros like ISPRINT... If - STDC_HEADERS is defined, then autoconf has verified that the ctype - macros don't need to be guarded with references to isascii. ... - Defining isascii to 1 should let any compiler worth its salt - eliminate the && through constant folding." - Solaris defines some of these symbols so we must undefine them first. */ - -# if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII) -# define IN_CTYPE_DOMAIN(c) 1 -# else -# define IN_CTYPE_DOMAIN(c) isascii(c) -# endif - -# ifdef isblank -# define ISBLANK(c) (IN_CTYPE_DOMAIN (c) && isblank (c)) -# else -# define ISBLANK(c) ((c) == ' ' || (c) == '\t') -# endif -# ifdef isgraph -# define ISGRAPH(c) (IN_CTYPE_DOMAIN (c) && isgraph (c)) -# else -# define ISGRAPH(c) (IN_CTYPE_DOMAIN (c) && isprint (c) && !isspace (c)) -# endif - -# undef ISPRINT -# define ISPRINT(c) (IN_CTYPE_DOMAIN (c) && isprint (c)) -# define ISDIGIT(c) (IN_CTYPE_DOMAIN (c) && isdigit (c)) -# define ISALNUM(c) (IN_CTYPE_DOMAIN (c) && isalnum (c)) -# define ISALPHA(c) (IN_CTYPE_DOMAIN (c) && isalpha (c)) -# define ISCNTRL(c) (IN_CTYPE_DOMAIN (c) && iscntrl (c)) -# define ISLOWER(c) (IN_CTYPE_DOMAIN (c) && islower (c)) -# define ISPUNCT(c) (IN_CTYPE_DOMAIN (c) && ispunct (c)) -# define ISSPACE(c) (IN_CTYPE_DOMAIN (c) && isspace (c)) -# define ISUPPER(c) (IN_CTYPE_DOMAIN (c) && isupper (c)) -# define ISXDIGIT(c) (IN_CTYPE_DOMAIN (c) && isxdigit (c)) - -# ifdef _tolower -# define TOLOWER(c) _tolower(c) -# else -# define TOLOWER(c) tolower(c) -# endif - -# ifndef NULL -# define NULL (void *)0 -# endif - -/* We remove any previous definition of `SIGN_EXTEND_CHAR', - since ours (we hope) works properly with all combinations of - machines, compilers, `char' and `unsigned char' argument types. - (Per Bothner suggested the basic approach.) */ -# undef SIGN_EXTEND_CHAR -# if __STDC__ -# define SIGN_EXTEND_CHAR(c) ((signed char) (c)) -# else /* not __STDC__ */ -/* As in Harbison and Steele. */ -# define SIGN_EXTEND_CHAR(c) ((((unsigned char) (c)) ^ 128) - 128) -# endif - -# ifndef emacs -/* How many characters in the character set. */ -# define CHAR_SET_SIZE 256 - -# ifdef SYNTAX_TABLE - -extern char *re_syntax_table; - -# else /* not SYNTAX_TABLE */ - -static char re_syntax_table[CHAR_SET_SIZE]; - -static void init_syntax_once PARAMS ((void)); - -static void -init_syntax_once () -{ - register int c; - static int done = 0; - - if (done) - return; - bzero (re_syntax_table, sizeof re_syntax_table); - - for (c = 0; c < CHAR_SET_SIZE; ++c) - if (ISALNUM (c)) - re_syntax_table[c] = Sword; - - re_syntax_table['_'] = Sword; - - done = 1; -} - -# endif /* not SYNTAX_TABLE */ - -# define SYNTAX(c) re_syntax_table[(unsigned char) (c)] - -# endif /* emacs */ - -/* Should we use malloc or alloca? If REGEX_MALLOC is not defined, we - use `alloca' instead of `malloc'. This is because using malloc in - re_search* or re_match* could cause memory leaks when C-g is used in - Emacs; also, malloc is slower and causes storage fragmentation. On - the other hand, malloc is more portable, and easier to debug. - - Because we sometimes use alloca, some routines have to be macros, - not functions -- `alloca'-allocated space disappears at the end of the - function it is called in. */ - -# ifdef REGEX_MALLOC - -# define REGEX_ALLOCATE malloc -# define REGEX_REALLOCATE(source, osize, nsize) realloc (source, nsize) -# define REGEX_FREE free - -# else /* not REGEX_MALLOC */ - -/* Emacs already defines alloca, sometimes. */ -# ifndef alloca - -/* Make alloca work the best possible way. */ -# ifdef __GNUC__ -# define alloca __builtin_alloca -# else /* not __GNUC__ */ -# if HAVE_ALLOCA_H -# include -# endif /* HAVE_ALLOCA_H */ -# endif /* not __GNUC__ */ - -# endif /* not alloca */ - -# define REGEX_ALLOCATE alloca - -/* Assumes a `char *destination' variable. */ -# define REGEX_REALLOCATE(source, osize, nsize) \ - (destination = (char *) alloca (nsize), \ - memcpy (destination, source, osize)) - -/* No need to do anything to free, after alloca. */ -# define REGEX_FREE(arg) ((void)0) /* Do nothing! But inhibit gcc warning. */ - -# endif /* not REGEX_MALLOC */ - -/* Define how to allocate the failure stack. */ - -# if defined REL_ALLOC && defined REGEX_MALLOC - -# define REGEX_ALLOCATE_STACK(size) \ - r_alloc (&failure_stack_ptr, (size)) -# define REGEX_REALLOCATE_STACK(source, osize, nsize) \ - r_re_alloc (&failure_stack_ptr, (nsize)) -# define REGEX_FREE_STACK(ptr) \ - r_alloc_free (&failure_stack_ptr) - -# else /* not using relocating allocator */ - -# ifdef REGEX_MALLOC - -# define REGEX_ALLOCATE_STACK malloc -# define REGEX_REALLOCATE_STACK(source, osize, nsize) realloc (source, nsize) -# define REGEX_FREE_STACK free - -# else /* not REGEX_MALLOC */ - -# define REGEX_ALLOCATE_STACK alloca - -# define REGEX_REALLOCATE_STACK(source, osize, nsize) \ - REGEX_REALLOCATE (source, osize, nsize) -/* No need to explicitly free anything. */ -# define REGEX_FREE_STACK(arg) - -# endif /* not REGEX_MALLOC */ -# endif /* not using relocating allocator */ - - -/* True if `size1' is non-NULL and PTR is pointing anywhere inside - `string1' or just past its end. This works if PTR is NULL, which is - a good thing. */ -# define FIRST_STRING_P(ptr) \ - (size1 && string1 <= (ptr) && (ptr) <= string1 + size1) - -/* (Re)Allocate N items of type T using malloc, or fail. */ -# define TALLOC(n, t) ((t *) malloc ((n) * sizeof (t))) -# define RETALLOC(addr, n, t) ((addr) = (t *) realloc (addr, (n) * sizeof (t))) -# define RETALLOC_IF(addr, n, t) \ - if (addr) RETALLOC((addr), (n), t); else (addr) = TALLOC ((n), t) -# define REGEX_TALLOC(n, t) ((t *) REGEX_ALLOCATE ((n) * sizeof (t))) - -# define BYTEWIDTH 8 /* In bits. */ - -# define STREQ(s1, s2) ((strcmp (s1, s2) == 0)) - -# undef MAX -# undef MIN -# define MAX(a, b) ((a) > (b) ? (a) : (b)) -# define MIN(a, b) ((a) < (b) ? (a) : (b)) - -typedef char boolean; -# define false 0 -# define true 1 - -static reg_errcode_t byte_regex_compile _RE_ARGS ((const char *pattern, size_t size, - reg_syntax_t syntax, - struct re_pattern_buffer *bufp)); - -static int byte_re_match_2_internal PARAMS ((struct re_pattern_buffer *bufp, - const char *string1, int size1, - const char *string2, int size2, - int pos, - struct re_registers *regs, - int stop)); -static int byte_re_search_2 PARAMS ((struct re_pattern_buffer *bufp, - const char *string1, int size1, - const char *string2, int size2, - int startpos, int range, - struct re_registers *regs, int stop)); -static int byte_re_compile_fastmap PARAMS ((struct re_pattern_buffer *bufp)); - -#ifdef MBS_SUPPORT -static reg_errcode_t wcs_regex_compile _RE_ARGS ((const char *pattern, size_t size, - reg_syntax_t syntax, - struct re_pattern_buffer *bufp)); - - -static int wcs_re_match_2_internal PARAMS ((struct re_pattern_buffer *bufp, - const char *cstring1, int csize1, - const char *cstring2, int csize2, - int pos, - struct re_registers *regs, - int stop, - wchar_t *string1, int size1, - wchar_t *string2, int size2, - int *mbs_offset1, int *mbs_offset2)); -static int wcs_re_search_2 PARAMS ((struct re_pattern_buffer *bufp, - const char *string1, int size1, - const char *string2, int size2, - int startpos, int range, - struct re_registers *regs, int stop)); -static int wcs_re_compile_fastmap PARAMS ((struct re_pattern_buffer *bufp)); -#endif - -/* These are the command codes that appear in compiled regular - expressions. Some opcodes are followed by argument bytes. A - command code can specify any interpretation whatsoever for its - arguments. Zero bytes may appear in the compiled regular expression. */ - -typedef enum -{ - no_op = 0, - - /* Succeed right away--no more backtracking. */ - succeed, - - /* Followed by one byte giving n, then by n literal bytes. */ - exactn, - -# ifdef MBS_SUPPORT - /* Same as exactn, but contains binary data. */ - exactn_bin, -# endif - - /* Matches any (more or less) character. */ - anychar, - - /* Matches any one char belonging to specified set. First - following byte is number of bitmap bytes. Then come bytes - for a bitmap saying which chars are in. Bits in each byte - are ordered low-bit-first. A character is in the set if its - bit is 1. A character too large to have a bit in the map is - automatically not in the set. */ - /* ifdef MBS_SUPPORT, following element is length of character - classes, length of collating symbols, length of equivalence - classes, length of character ranges, and length of characters. - Next, character class element, collating symbols elements, - equivalence class elements, range elements, and character - elements follow. - See regex_compile function. */ - charset, - - /* Same parameters as charset, but match any character that is - not one of those specified. */ - charset_not, - - /* Start remembering the text that is matched, for storing in a - register. Followed by one byte with the register number, in - the range 0 to one less than the pattern buffer's re_nsub - field. Then followed by one byte with the number of groups - inner to this one. (This last has to be part of the - start_memory only because we need it in the on_failure_jump - of re_match_2.) */ - start_memory, - - /* Stop remembering the text that is matched and store it in a - memory register. Followed by one byte with the register - number, in the range 0 to one less than `re_nsub' in the - pattern buffer, and one byte with the number of inner groups, - just like `start_memory'. (We need the number of inner - groups here because we don't have any easy way of finding the - corresponding start_memory when we're at a stop_memory.) */ - stop_memory, - - /* Match a duplicate of something remembered. Followed by one - byte containing the register number. */ - duplicate, - - /* Fail unless at beginning of line. */ - begline, - - /* Fail unless at end of line. */ - endline, - - /* Succeeds if at beginning of buffer (if emacs) or at beginning - of string to be matched (if not). */ - begbuf, - - /* Analogously, for end of buffer/string. */ - endbuf, - - /* Followed by two byte relative address to which to jump. */ - jump, - - /* Same as jump, but marks the end of an alternative. */ - jump_past_alt, - - /* Followed by two-byte relative address of place to resume at - in case of failure. */ - /* ifdef MBS_SUPPORT, the size of address is 1. */ - on_failure_jump, - - /* Like on_failure_jump, but pushes a placeholder instead of the - current string position when executed. */ - on_failure_keep_string_jump, - - /* Throw away latest failure point and then jump to following - two-byte relative address. */ - /* ifdef MBS_SUPPORT, the size of address is 1. */ - pop_failure_jump, - - /* Change to pop_failure_jump if know won't have to backtrack to - match; otherwise change to jump. This is used to jump - back to the beginning of a repeat. If what follows this jump - clearly won't match what the repeat does, such that we can be - sure that there is no use backtracking out of repetitions - already matched, then we change it to a pop_failure_jump. - Followed by two-byte address. */ - /* ifdef MBS_SUPPORT, the size of address is 1. */ - maybe_pop_jump, - - /* Jump to following two-byte address, and push a dummy failure - point. This failure point will be thrown away if an attempt - is made to use it for a failure. A `+' construct makes this - before the first repeat. Also used as an intermediary kind - of jump when compiling an alternative. */ - /* ifdef MBS_SUPPORT, the size of address is 1. */ - dummy_failure_jump, - - /* Push a dummy failure point and continue. Used at the end of - alternatives. */ - push_dummy_failure, - - /* Followed by two-byte relative address and two-byte number n. - After matching N times, jump to the address upon failure. */ - /* ifdef MBS_SUPPORT, the size of address is 1. */ - succeed_n, - - /* Followed by two-byte relative address, and two-byte number n. - Jump to the address N times, then fail. */ - /* ifdef MBS_SUPPORT, the size of address is 1. */ - jump_n, - - /* Set the following two-byte relative address to the - subsequent two-byte number. The address *includes* the two - bytes of number. */ - /* ifdef MBS_SUPPORT, the size of address is 1. */ - set_number_at, - - wordchar, /* Matches any word-constituent character. */ - notwordchar, /* Matches any char that is not a word-constituent. */ - - wordbeg, /* Succeeds if at word beginning. */ - wordend, /* Succeeds if at word end. */ - - wordbound, /* Succeeds if at a word boundary. */ - notwordbound /* Succeeds if not at a word boundary. */ - -# ifdef emacs - ,before_dot, /* Succeeds if before point. */ - at_dot, /* Succeeds if at point. */ - after_dot, /* Succeeds if after point. */ - - /* Matches any character whose syntax is specified. Followed by - a byte which contains a syntax code, e.g., Sword. */ - syntaxspec, - - /* Matches any character whose syntax is not that specified. */ - notsyntaxspec -# endif /* emacs */ -} re_opcode_t; -#endif /* not INSIDE_RECURSION */ - - -#ifdef BYTE -# define CHAR_T char -# define UCHAR_T unsigned char -# define COMPILED_BUFFER_VAR bufp->buffer -# define OFFSET_ADDRESS_SIZE 2 -# define PREFIX(name) byte_##name -# define ARG_PREFIX(name) name -# define PUT_CHAR(c) putchar (c) -#else -# ifdef WCHAR -# define CHAR_T wchar_t -# define UCHAR_T wchar_t -# define COMPILED_BUFFER_VAR wc_buffer -# define OFFSET_ADDRESS_SIZE 1 /* the size which STORE_NUMBER macro use */ -# define CHAR_CLASS_SIZE ((__alignof__(wctype_t)+sizeof(wctype_t))/sizeof(CHAR_T)+1) -# define PREFIX(name) wcs_##name -# define ARG_PREFIX(name) c##name -/* Should we use wide stream?? */ -# define PUT_CHAR(c) printf ("%C", c); -# define TRUE 1 -# define FALSE 0 -# else -# ifdef MBS_SUPPORT -# define WCHAR -# define INSIDE_RECURSION -# include "regex.c" -# undef INSIDE_RECURSION -# endif -# define BYTE -# define INSIDE_RECURSION -# include "regex.c" -# undef INSIDE_RECURSION -# endif -#endif -#include "unlocked-io.h" - -#ifdef INSIDE_RECURSION -/* Common operations on the compiled pattern. */ - -/* Store NUMBER in two contiguous bytes starting at DESTINATION. */ -/* ifdef MBS_SUPPORT, we store NUMBER in 1 element. */ - -# ifdef WCHAR -# define STORE_NUMBER(destination, number) \ - do { \ - *(destination) = (UCHAR_T)(number); \ - } while (0) -# else /* BYTE */ -# define STORE_NUMBER(destination, number) \ - do { \ - (destination)[0] = (number) & 0377; \ - (destination)[1] = (number) >> 8; \ - } while (0) -# endif /* WCHAR */ - -/* Same as STORE_NUMBER, except increment DESTINATION to - the byte after where the number is stored. Therefore, DESTINATION - must be an lvalue. */ -/* ifdef MBS_SUPPORT, we store NUMBER in 1 element. */ - -# define STORE_NUMBER_AND_INCR(destination, number) \ - do { \ - STORE_NUMBER (destination, number); \ - (destination) += OFFSET_ADDRESS_SIZE; \ - } while (0) - -/* Put into DESTINATION a number stored in two contiguous bytes starting - at SOURCE. */ -/* ifdef MBS_SUPPORT, we store NUMBER in 1 element. */ - -# ifdef WCHAR -# define EXTRACT_NUMBER(destination, source) \ - do { \ - (destination) = *(source); \ - } while (0) -# else /* BYTE */ -# define EXTRACT_NUMBER(destination, source) \ - do { \ - (destination) = *(source) & 0377; \ - (destination) += SIGN_EXTEND_CHAR (*((source) + 1)) << 8; \ - } while (0) -# endif - -# ifdef DEBUG -static void PREFIX(extract_number) _RE_ARGS ((int *dest, UCHAR_T *source)); -static void -PREFIX(extract_number) (dest, source) - int *dest; - UCHAR_T *source; -{ -# ifdef WCHAR - *dest = *source; -# else /* BYTE */ - int temp = SIGN_EXTEND_CHAR (*(source + 1)); - *dest = *source & 0377; - *dest += temp << 8; -# endif -} - -# ifndef EXTRACT_MACROS /* To debug the macros. */ -# undef EXTRACT_NUMBER -# define EXTRACT_NUMBER(dest, src) PREFIX(extract_number) (&dest, src) -# endif /* not EXTRACT_MACROS */ - -# endif /* DEBUG */ - -/* Same as EXTRACT_NUMBER, except increment SOURCE to after the number. - SOURCE must be an lvalue. */ - -# define EXTRACT_NUMBER_AND_INCR(destination, source) \ - do { \ - EXTRACT_NUMBER (destination, source); \ - (source) += OFFSET_ADDRESS_SIZE; \ - } while (0) - -# ifdef DEBUG -static void PREFIX(extract_number_and_incr) _RE_ARGS ((int *destination, - UCHAR_T **source)); -static void -PREFIX(extract_number_and_incr) (destination, source) - int *destination; - UCHAR_T **source; -{ - PREFIX(extract_number) (destination, *source); - *source += OFFSET_ADDRESS_SIZE; -} - -# ifndef EXTRACT_MACROS -# undef EXTRACT_NUMBER_AND_INCR -# define EXTRACT_NUMBER_AND_INCR(dest, src) \ - PREFIX(extract_number_and_incr) (&dest, &src) -# endif /* not EXTRACT_MACROS */ - -# endif /* DEBUG */ - - - -/* If DEBUG is defined, Regex prints many voluminous messages about what - it is doing (if the variable `debug' is nonzero). If linked with the - main program in `iregex.c', you can enter patterns and strings - interactively. And if linked with the main program in `main.c' and - the other test files, you can run the already-written tests. */ - -# ifdef DEBUG - -# ifndef DEFINED_ONCE - -/* We use standard I/O for debugging. */ -# include - -/* It is useful to test things that ``must'' be true when debugging. */ -# include - -static int debug; - -# define DEBUG_STATEMENT(e) e -# define DEBUG_PRINT1(x) if (debug) printf (x) -# define DEBUG_PRINT2(x1, x2) if (debug) printf (x1, x2) -# define DEBUG_PRINT3(x1, x2, x3) if (debug) printf (x1, x2, x3) -# define DEBUG_PRINT4(x1, x2, x3, x4) if (debug) printf (x1, x2, x3, x4) -# endif /* not DEFINED_ONCE */ - -# define DEBUG_PRINT_COMPILED_PATTERN(p, s, e) \ - if (debug) PREFIX(print_partial_compiled_pattern) (s, e) -# define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2) \ - if (debug) PREFIX(print_double_string) (w, s1, sz1, s2, sz2) - - -/* Print the fastmap in human-readable form. */ - -# ifndef DEFINED_ONCE -void -print_fastmap (fastmap) - char *fastmap; -{ - unsigned was_a_range = 0; - unsigned i = 0; - - while (i < (1 << BYTEWIDTH)) - { - if (fastmap[i++]) - { - was_a_range = 0; - putchar (i - 1); - while (i < (1 << BYTEWIDTH) && fastmap[i]) - { - was_a_range = 1; - i++; - } - if (was_a_range) - { - printf ("-"); - putchar (i - 1); - } - } - } - putchar ('\n'); -} -# endif /* not DEFINED_ONCE */ - - -/* Print a compiled pattern string in human-readable form, starting at - the START pointer into it and ending just before the pointer END. */ - -void -PREFIX(print_partial_compiled_pattern) (start, end) - UCHAR_T *start; - UCHAR_T *end; -{ - int mcnt, mcnt2; - UCHAR_T *p1; - UCHAR_T *p = start; - UCHAR_T *pend = end; - - if (start == NULL) - { - printf ("(null)\n"); - return; - } - - /* Loop over pattern commands. */ - while (p < pend) - { -# ifdef _LIBC - printf ("%td:\t", p - start); -# else - printf ("%ld:\t", (long int) (p - start)); -# endif - - switch ((re_opcode_t) *p++) - { - case no_op: - printf ("/no_op"); - break; - - case exactn: - mcnt = *p++; - printf ("/exactn/%d", mcnt); - do - { - putchar ('/'); - PUT_CHAR (*p++); - } - while (--mcnt); - break; - -# ifdef MBS_SUPPORT - case exactn_bin: - mcnt = *p++; - printf ("/exactn_bin/%d", mcnt); - do - { - printf("/%lx", (long int) *p++); - } - while (--mcnt); - break; -# endif /* MBS_SUPPORT */ - - case start_memory: - mcnt = *p++; - printf ("/start_memory/%d/%ld", mcnt, (long int) *p++); - break; - - case stop_memory: - mcnt = *p++; - printf ("/stop_memory/%d/%ld", mcnt, (long int) *p++); - break; - - case duplicate: - printf ("/duplicate/%ld", (long int) *p++); - break; - - case anychar: - printf ("/anychar"); - break; - - case charset: - case charset_not: - { -# ifdef WCHAR - int i, length; - wchar_t *workp = p; - printf ("/charset [%s", - (re_opcode_t) *(workp - 1) == charset_not ? "^" : ""); - p += 5; - length = *workp++; /* the length of char_classes */ - for (i=0 ; ibuffer; - - PREFIX(print_partial_compiled_pattern) (buffer, buffer - + bufp->used / sizeof(UCHAR_T)); - printf ("%ld bytes used/%ld bytes allocated.\n", - bufp->used, bufp->allocated); - - if (bufp->fastmap_accurate && bufp->fastmap) - { - printf ("fastmap: "); - print_fastmap (bufp->fastmap); - } - -# ifdef _LIBC - printf ("re_nsub: %Zd\t", bufp->re_nsub); -# else - printf ("re_nsub: %ld\t", (long int) bufp->re_nsub); -# endif - printf ("regs_alloc: %d\t", bufp->regs_allocated); - printf ("can_be_null: %d\t", bufp->can_be_null); - printf ("newline_anchor: %d\n", bufp->newline_anchor); - printf ("no_sub: %d\t", bufp->no_sub); - printf ("not_bol: %d\t", bufp->not_bol); - printf ("not_eol: %d\t", bufp->not_eol); - printf ("syntax: %lx\n", bufp->syntax); - /* Perhaps we should print the translate table? */ -} - - -void -PREFIX(print_double_string) (where, string1, size1, string2, size2) - const CHAR_T *where; - const CHAR_T *string1; - const CHAR_T *string2; - int size1; - int size2; -{ - int this_char; - - if (where == NULL) - printf ("(null)"); - else - { - int cnt; - - if (FIRST_STRING_P (where)) - { - for (this_char = where - string1; this_char < size1; this_char++) - PUT_CHAR (string1[this_char]); - - where = string2; - } - - cnt = 0; - for (this_char = where - string2; this_char < size2; this_char++) - { - PUT_CHAR (string2[this_char]); - if (++cnt > 100) - { - fputs ("...", stdout); - break; - } - } - } -} - -# ifndef DEFINED_ONCE -void -printchar (c) - int c; -{ - putc (c, stderr); -} -# endif - -# else /* not DEBUG */ - -# ifndef DEFINED_ONCE -# undef assert -# define assert(e) - -# define DEBUG_STATEMENT(e) -# define DEBUG_PRINT1(x) -# define DEBUG_PRINT2(x1, x2) -# define DEBUG_PRINT3(x1, x2, x3) -# define DEBUG_PRINT4(x1, x2, x3, x4) -# endif /* not DEFINED_ONCE */ -# define DEBUG_PRINT_COMPILED_PATTERN(p, s, e) -# define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2) - -# endif /* not DEBUG */ - - - -# ifdef WCHAR -/* This convert a multibyte string to a wide character string. - And write their correspondances to offset_buffer(see below) - and write whether each wchar_t is binary data to is_binary. - This assume invalid multibyte sequences as binary data. - We assume offset_buffer and is_binary is already allocated - enough space. */ - -static size_t convert_mbs_to_wcs (CHAR_T *dest, const unsigned char* src, - size_t len, int *offset_buffer, - char *is_binary); -static size_t -convert_mbs_to_wcs (dest, src, len, offset_buffer, is_binary) - CHAR_T *dest; - const unsigned char* src; - size_t len; /* the length of multibyte string. */ - - /* It hold correspondances between src(char string) and - dest(wchar_t string) for optimization. - e.g. src = "xxxyzz" - dest = {'X', 'Y', 'Z'} - (each "xxx", "y" and "zz" represent one multibyte character - corresponding to 'X', 'Y' and 'Z'.) - offset_buffer = {0, 0+3("xxx"), 0+3+1("y"), 0+3+1+2("zz")} - = {0, 3, 4, 6} - */ - int *offset_buffer; - char *is_binary; -{ - wchar_t *pdest = dest; - const unsigned char *psrc = src; - size_t wc_count = 0; - - mbstate_t mbs; - int i, consumed; - size_t mb_remain = len; - size_t mb_count = 0; - - /* Initialize the conversion state. */ - memset (&mbs, 0, sizeof (mbstate_t)); - - offset_buffer[0] = 0; - for( ; mb_remain > 0 ; ++wc_count, ++pdest, mb_remain -= consumed, - psrc += consumed) - { - consumed = mbrtowc (pdest, psrc, mb_remain, &mbs); - - if (consumed <= 0) - /* failed to convert. maybe src contains binary data. - So we consume 1 byte manualy. */ - { - *pdest = *psrc; - consumed = 1; - is_binary[wc_count] = TRUE; - } - else - is_binary[wc_count] = FALSE; - /* In sjis encoding, we use yen sign as escape character in - place of reverse solidus. So we convert 0x5c(yen sign in - sjis) to not 0xa5(yen sign in UCS2) but 0x5c(reverse - solidus in UCS2). */ - if (consumed == 1 && (int) *psrc == 0x5c && (int) *pdest == 0xa5) - *pdest = (wchar_t) *psrc; - - offset_buffer[wc_count + 1] = mb_count += consumed; - } - - /* Fill remain of the buffer with sentinel. */ - for (i = wc_count + 1 ; i <= len ; i++) - offset_buffer[i] = mb_count + 1; - - return wc_count; -} - -# endif /* WCHAR */ - -#else /* not INSIDE_RECURSION */ - -/* Set by `re_set_syntax' to the current regexp syntax to recognize. Can - also be assigned to arbitrarily: each pattern buffer stores its own - syntax, so it can be changed between regex compilations. */ -/* This has no initializer because initialized variables in Emacs - become read-only after dumping. */ -reg_syntax_t re_syntax_options; - - -/* Specify the precise syntax of regexps for compilation. This provides - for compatibility for various utilities which historically have - different, incompatible syntaxes. - - The argument SYNTAX is a bit mask comprised of the various bits - defined in regex.h. We return the old syntax. */ - -reg_syntax_t -re_set_syntax (syntax) - reg_syntax_t syntax; -{ - reg_syntax_t ret = re_syntax_options; - - re_syntax_options = syntax; -# ifdef DEBUG - if (syntax & RE_DEBUG) - debug = 1; - else if (debug) /* was on but now is not */ - debug = 0; -# endif /* DEBUG */ - return ret; -} -# ifdef _LIBC -weak_alias (__re_set_syntax, re_set_syntax) -# endif - -/* This table gives an error message for each of the error codes listed - in regex.h. Obviously the order here has to be same as there. - POSIX doesn't require that we do anything for REG_NOERROR, - but why not be nice? */ - -static const char re_error_msgid[] = - { -# define REG_NOERROR_IDX 0 - gettext_noop ("Success") /* REG_NOERROR */ - "\0" -# define REG_NOMATCH_IDX (REG_NOERROR_IDX + sizeof "Success") - gettext_noop ("No match") /* REG_NOMATCH */ - "\0" -# define REG_BADPAT_IDX (REG_NOMATCH_IDX + sizeof "No match") - gettext_noop ("Invalid regular expression") /* REG_BADPAT */ - "\0" -# define REG_ECOLLATE_IDX (REG_BADPAT_IDX + sizeof "Invalid regular expression") - gettext_noop ("Invalid collation character") /* REG_ECOLLATE */ - "\0" -# define REG_ECTYPE_IDX (REG_ECOLLATE_IDX + sizeof "Invalid collation character") - gettext_noop ("Invalid character class name") /* REG_ECTYPE */ - "\0" -# define REG_EESCAPE_IDX (REG_ECTYPE_IDX + sizeof "Invalid character class name") - gettext_noop ("Trailing backslash") /* REG_EESCAPE */ - "\0" -# define REG_ESUBREG_IDX (REG_EESCAPE_IDX + sizeof "Trailing backslash") - gettext_noop ("Invalid back reference") /* REG_ESUBREG */ - "\0" -# define REG_EBRACK_IDX (REG_ESUBREG_IDX + sizeof "Invalid back reference") - gettext_noop ("Unmatched [ or [^") /* REG_EBRACK */ - "\0" -# define REG_EPAREN_IDX (REG_EBRACK_IDX + sizeof "Unmatched [ or [^") - gettext_noop ("Unmatched ( or \\(") /* REG_EPAREN */ - "\0" -# define REG_EBRACE_IDX (REG_EPAREN_IDX + sizeof "Unmatched ( or \\(") - gettext_noop ("Unmatched \\{") /* REG_EBRACE */ - "\0" -# define REG_BADBR_IDX (REG_EBRACE_IDX + sizeof "Unmatched \\{") - gettext_noop ("Invalid content of \\{\\}") /* REG_BADBR */ - "\0" -# define REG_ERANGE_IDX (REG_BADBR_IDX + sizeof "Invalid content of \\{\\}") - gettext_noop ("Invalid range end") /* REG_ERANGE */ - "\0" -# define REG_ESPACE_IDX (REG_ERANGE_IDX + sizeof "Invalid range end") - gettext_noop ("Memory exhausted") /* REG_ESPACE */ - "\0" -# define REG_BADRPT_IDX (REG_ESPACE_IDX + sizeof "Memory exhausted") - gettext_noop ("Invalid preceding regular expression") /* REG_BADRPT */ - "\0" -# define REG_EEND_IDX (REG_BADRPT_IDX + sizeof "Invalid preceding regular expression") - gettext_noop ("Premature end of regular expression") /* REG_EEND */ - "\0" -# define REG_ESIZE_IDX (REG_EEND_IDX + sizeof "Premature end of regular expression") - gettext_noop ("Regular expression too big") /* REG_ESIZE */ - "\0" -# define REG_ERPAREN_IDX (REG_ESIZE_IDX + sizeof "Regular expression too big") - gettext_noop ("Unmatched ) or \\)") /* REG_ERPAREN */ - }; - -static const size_t re_error_msgid_idx[] = - { - REG_NOERROR_IDX, - REG_NOMATCH_IDX, - REG_BADPAT_IDX, - REG_ECOLLATE_IDX, - REG_ECTYPE_IDX, - REG_EESCAPE_IDX, - REG_ESUBREG_IDX, - REG_EBRACK_IDX, - REG_EPAREN_IDX, - REG_EBRACE_IDX, - REG_BADBR_IDX, - REG_ERANGE_IDX, - REG_ESPACE_IDX, - REG_BADRPT_IDX, - REG_EEND_IDX, - REG_ESIZE_IDX, - REG_ERPAREN_IDX - }; - -#endif /* INSIDE_RECURSION */ - -#ifndef DEFINED_ONCE -/* Avoiding alloca during matching, to placate r_alloc. */ - -/* Define MATCH_MAY_ALLOCATE unless we need to make sure that the - searching and matching functions should not call alloca. On some - systems, alloca is implemented in terms of malloc, and if we're - using the relocating allocator routines, then malloc could cause a - relocation, which might (if the strings being searched are in the - ralloc heap) shift the data out from underneath the regexp - routines. - - Here's another reason to avoid allocation: Emacs - processes input from X in a signal handler; processing X input may - call malloc; if input arrives while a matching routine is calling - malloc, then we're scrod. But Emacs can't just block input while - calling matching routines; then we don't notice interrupts when - they come in. So, Emacs blocks input around all regexp calls - except the matching calls, which it leaves unprotected, in the - faith that they will not malloc. */ - -/* Normally, this is fine. */ -# define MATCH_MAY_ALLOCATE - -/* When using GNU C, we are not REALLY using the C alloca, no matter - what config.h may say. So don't take precautions for it. */ -# ifdef __GNUC__ -# undef C_ALLOCA -# endif - -/* The match routines may not allocate if (1) they would do it with malloc - and (2) it's not safe for them to use malloc. - Note that if REL_ALLOC is defined, matching would not use malloc for the - failure stack, but we would still use it for the register vectors; - so REL_ALLOC should not affect this. */ -# if (defined C_ALLOCA || defined REGEX_MALLOC) && defined emacs -# undef MATCH_MAY_ALLOCATE -# endif -#endif /* not DEFINED_ONCE */ - -#ifdef INSIDE_RECURSION -/* Failure stack declarations and macros; both re_compile_fastmap and - re_match_2 use a failure stack. These have to be macros because of - REGEX_ALLOCATE_STACK. */ - - -/* Number of failure points for which to initially allocate space - when matching. If this number is exceeded, we allocate more - space, so it is not a hard limit. */ -# ifndef INIT_FAILURE_ALLOC -# define INIT_FAILURE_ALLOC 5 -# endif - -/* Roughly the maximum number of failure points on the stack. Would be - exactly that if always used MAX_FAILURE_ITEMS items each time we failed. - This is a variable only so users of regex can assign to it; we never - change it ourselves. */ - -# ifdef INT_IS_16BIT - -# ifndef DEFINED_ONCE -# if defined MATCH_MAY_ALLOCATE -/* 4400 was enough to cause a crash on Alpha OSF/1, - whose default stack limit is 2mb. */ -long int re_max_failures = 4000; -# else -long int re_max_failures = 2000; -# endif -# endif - -union PREFIX(fail_stack_elt) -{ - UCHAR_T *pointer; - long int integer; -}; - -typedef union PREFIX(fail_stack_elt) PREFIX(fail_stack_elt_t); - -typedef struct -{ - PREFIX(fail_stack_elt_t) *stack; - unsigned long int size; - unsigned long int avail; /* Offset of next open position. */ -} PREFIX(fail_stack_type); - -# else /* not INT_IS_16BIT */ - -# ifndef DEFINED_ONCE -# if defined MATCH_MAY_ALLOCATE -/* 4400 was enough to cause a crash on Alpha OSF/1, - whose default stack limit is 2mb. */ -int re_max_failures = 4000; -# else -int re_max_failures = 2000; -# endif -# endif - -union PREFIX(fail_stack_elt) -{ - UCHAR_T *pointer; - int integer; -}; - -typedef union PREFIX(fail_stack_elt) PREFIX(fail_stack_elt_t); - -typedef struct -{ - PREFIX(fail_stack_elt_t) *stack; - unsigned size; - unsigned avail; /* Offset of next open position. */ -} PREFIX(fail_stack_type); - -# endif /* INT_IS_16BIT */ - -# ifndef DEFINED_ONCE -# define FAIL_STACK_EMPTY() (fail_stack.avail == 0) -# define FAIL_STACK_PTR_EMPTY() (fail_stack_ptr->avail == 0) -# define FAIL_STACK_FULL() (fail_stack.avail == fail_stack.size) -# endif - - -/* Define macros to initialize and free the failure stack. - Do `return -2' if the alloc fails. */ - -# ifdef MATCH_MAY_ALLOCATE -# define INIT_FAIL_STACK() \ - do { \ - fail_stack.stack = (PREFIX(fail_stack_elt_t) *) \ - REGEX_ALLOCATE_STACK (INIT_FAILURE_ALLOC * sizeof (PREFIX(fail_stack_elt_t))); \ - \ - if (fail_stack.stack == NULL) \ - return -2; \ - \ - fail_stack.size = INIT_FAILURE_ALLOC; \ - fail_stack.avail = 0; \ - } while (0) - -# define RESET_FAIL_STACK() REGEX_FREE_STACK (fail_stack.stack) -# else -# define INIT_FAIL_STACK() \ - do { \ - fail_stack.avail = 0; \ - } while (0) - -# define RESET_FAIL_STACK() -# endif - - -/* Double the size of FAIL_STACK, up to approximately `re_max_failures' items. - - Return 1 if succeeds, and 0 if either ran out of memory - allocating space for it or it was already too large. - - REGEX_REALLOCATE_STACK requires `destination' be declared. */ - -# define DOUBLE_FAIL_STACK(fail_stack) \ - ((fail_stack).size > (unsigned) (re_max_failures * MAX_FAILURE_ITEMS) \ - ? 0 \ - : ((fail_stack).stack = (PREFIX(fail_stack_elt_t) *) \ - REGEX_REALLOCATE_STACK ((fail_stack).stack, \ - (fail_stack).size * sizeof (PREFIX(fail_stack_elt_t)), \ - ((fail_stack).size << 1) * sizeof (PREFIX(fail_stack_elt_t))),\ - \ - (fail_stack).stack == NULL \ - ? 0 \ - : ((fail_stack).size <<= 1, \ - 1))) - - -/* Push pointer POINTER on FAIL_STACK. - Return 1 if was able to do so and 0 if ran out of memory allocating - space to do so. */ -# define PUSH_PATTERN_OP(POINTER, FAIL_STACK) \ - ((FAIL_STACK_FULL () \ - && !DOUBLE_FAIL_STACK (FAIL_STACK)) \ - ? 0 \ - : ((FAIL_STACK).stack[(FAIL_STACK).avail++].pointer = POINTER, \ - 1)) - -/* Push a pointer value onto the failure stack. - Assumes the variable `fail_stack'. Probably should only - be called from within `PUSH_FAILURE_POINT'. */ -# define PUSH_FAILURE_POINTER(item) \ - fail_stack.stack[fail_stack.avail++].pointer = (UCHAR_T *) (item) - -/* This pushes an integer-valued item onto the failure stack. - Assumes the variable `fail_stack'. Probably should only - be called from within `PUSH_FAILURE_POINT'. */ -# define PUSH_FAILURE_INT(item) \ - fail_stack.stack[fail_stack.avail++].integer = (item) - -/* Push a fail_stack_elt_t value onto the failure stack. - Assumes the variable `fail_stack'. Probably should only - be called from within `PUSH_FAILURE_POINT'. */ -# define PUSH_FAILURE_ELT(item) \ - fail_stack.stack[fail_stack.avail++] = (item) - -/* These three POP... operations complement the three PUSH... operations. - All assume that `fail_stack' is nonempty. */ -# define POP_FAILURE_POINTER() fail_stack.stack[--fail_stack.avail].pointer -# define POP_FAILURE_INT() fail_stack.stack[--fail_stack.avail].integer -# define POP_FAILURE_ELT() fail_stack.stack[--fail_stack.avail] - -/* Used to omit pushing failure point id's when we're not debugging. */ -# ifdef DEBUG -# define DEBUG_PUSH PUSH_FAILURE_INT -# define DEBUG_POP(item_addr) *(item_addr) = POP_FAILURE_INT () -# else -# define DEBUG_PUSH(item) -# define DEBUG_POP(item_addr) -# endif - - -/* Push the information about the state we will need - if we ever fail back to it. - - Requires variables fail_stack, regstart, regend, reg_info, and - num_regs_pushed be declared. DOUBLE_FAIL_STACK requires `destination' - be declared. - - Does `return FAILURE_CODE' if runs out of memory. */ - -# define PUSH_FAILURE_POINT(pattern_place, string_place, failure_code) \ - do { \ - char *destination; \ - /* Must be int, so when we don't save any registers, the arithmetic \ - of 0 + -1 isn't done as unsigned. */ \ - /* Can't be int, since there is not a shred of a guarantee that int \ - is wide enough to hold a value of something to which pointer can \ - be assigned */ \ - active_reg_t this_reg; \ - \ - DEBUG_STATEMENT (failure_id++); \ - DEBUG_STATEMENT (nfailure_points_pushed++); \ - DEBUG_PRINT2 ("\nPUSH_FAILURE_POINT #%u:\n", failure_id); \ - DEBUG_PRINT2 (" Before push, next avail: %d\n", (fail_stack).avail);\ - DEBUG_PRINT2 (" size: %d\n", (fail_stack).size);\ - \ - DEBUG_PRINT2 (" slots needed: %ld\n", NUM_FAILURE_ITEMS); \ - DEBUG_PRINT2 (" available: %d\n", REMAINING_AVAIL_SLOTS); \ - \ - /* Ensure we have enough space allocated for what we will push. */ \ - while (REMAINING_AVAIL_SLOTS < NUM_FAILURE_ITEMS) \ - { \ - if (!DOUBLE_FAIL_STACK (fail_stack)) \ - return failure_code; \ - \ - DEBUG_PRINT2 ("\n Doubled stack; size now: %d\n", \ - (fail_stack).size); \ - DEBUG_PRINT2 (" slots available: %d\n", REMAINING_AVAIL_SLOTS);\ - } \ - \ - /* Push the info, starting with the registers. */ \ - DEBUG_PRINT1 ("\n"); \ - \ - if (1) \ - for (this_reg = lowest_active_reg; this_reg <= highest_active_reg; \ - this_reg++) \ - { \ - DEBUG_PRINT2 (" Pushing reg: %lu\n", this_reg); \ - DEBUG_STATEMENT (num_regs_pushed++); \ - \ - DEBUG_PRINT2 (" start: %p\n", regstart[this_reg]); \ - PUSH_FAILURE_POINTER (regstart[this_reg]); \ - \ - DEBUG_PRINT2 (" end: %p\n", regend[this_reg]); \ - PUSH_FAILURE_POINTER (regend[this_reg]); \ - \ - DEBUG_PRINT2 (" info: %p\n ", \ - reg_info[this_reg].word.pointer); \ - DEBUG_PRINT2 (" match_null=%d", \ - REG_MATCH_NULL_STRING_P (reg_info[this_reg])); \ - DEBUG_PRINT2 (" active=%d", IS_ACTIVE (reg_info[this_reg])); \ - DEBUG_PRINT2 (" matched_something=%d", \ - MATCHED_SOMETHING (reg_info[this_reg])); \ - DEBUG_PRINT2 (" ever_matched=%d", \ - EVER_MATCHED_SOMETHING (reg_info[this_reg])); \ - DEBUG_PRINT1 ("\n"); \ - PUSH_FAILURE_ELT (reg_info[this_reg].word); \ - } \ - \ - DEBUG_PRINT2 (" Pushing low active reg: %ld\n", lowest_active_reg);\ - PUSH_FAILURE_INT (lowest_active_reg); \ - \ - DEBUG_PRINT2 (" Pushing high active reg: %ld\n", highest_active_reg);\ - PUSH_FAILURE_INT (highest_active_reg); \ - \ - DEBUG_PRINT2 (" Pushing pattern %p:\n", pattern_place); \ - DEBUG_PRINT_COMPILED_PATTERN (bufp, pattern_place, pend); \ - PUSH_FAILURE_POINTER (pattern_place); \ - \ - DEBUG_PRINT2 (" Pushing string %p: `", string_place); \ - DEBUG_PRINT_DOUBLE_STRING (string_place, string1, size1, string2, \ - size2); \ - DEBUG_PRINT1 ("'\n"); \ - PUSH_FAILURE_POINTER (string_place); \ - \ - DEBUG_PRINT2 (" Pushing failure id: %u\n", failure_id); \ - DEBUG_PUSH (failure_id); \ - } while (0) - -# ifndef DEFINED_ONCE -/* This is the number of items that are pushed and popped on the stack - for each register. */ -# define NUM_REG_ITEMS 3 - -/* Individual items aside from the registers. */ -# ifdef DEBUG -# define NUM_NONREG_ITEMS 5 /* Includes failure point id. */ -# else -# define NUM_NONREG_ITEMS 4 -# endif - -/* We push at most this many items on the stack. */ -/* We used to use (num_regs - 1), which is the number of registers - this regexp will save; but that was changed to 5 - to avoid stack overflow for a regexp with lots of parens. */ -# define MAX_FAILURE_ITEMS (5 * NUM_REG_ITEMS + NUM_NONREG_ITEMS) - -/* We actually push this many items. */ -# define NUM_FAILURE_ITEMS \ - (((0 \ - ? 0 : highest_active_reg - lowest_active_reg + 1) \ - * NUM_REG_ITEMS) \ - + NUM_NONREG_ITEMS) - -/* How many items can still be added to the stack without overflowing it. */ -# define REMAINING_AVAIL_SLOTS ((fail_stack).size - (fail_stack).avail) -# endif /* not DEFINED_ONCE */ - - -/* Pops what PUSH_FAIL_STACK pushes. - - We restore into the parameters, all of which should be lvalues: - STR -- the saved data position. - PAT -- the saved pattern position. - LOW_REG, HIGH_REG -- the highest and lowest active registers. - REGSTART, REGEND -- arrays of string positions. - REG_INFO -- array of information about each subexpression. - - Also assumes the variables `fail_stack' and (if debugging), `bufp', - `pend', `string1', `size1', `string2', and `size2'. */ -# define POP_FAILURE_POINT(str, pat, low_reg, high_reg, regstart, regend, reg_info)\ -{ \ - DEBUG_STATEMENT (unsigned failure_id;) \ - active_reg_t this_reg; \ - const UCHAR_T *string_temp; \ - \ - assert (!FAIL_STACK_EMPTY ()); \ - \ - /* Remove failure points and point to how many regs pushed. */ \ - DEBUG_PRINT1 ("POP_FAILURE_POINT:\n"); \ - DEBUG_PRINT2 (" Before pop, next avail: %d\n", fail_stack.avail); \ - DEBUG_PRINT2 (" size: %d\n", fail_stack.size); \ - \ - assert (fail_stack.avail >= NUM_NONREG_ITEMS); \ - \ - DEBUG_POP (&failure_id); \ - DEBUG_PRINT2 (" Popping failure id: %u\n", failure_id); \ - \ - /* If the saved string location is NULL, it came from an \ - on_failure_keep_string_jump opcode, and we want to throw away the \ - saved NULL, thus retaining our current position in the string. */ \ - string_temp = POP_FAILURE_POINTER (); \ - if (string_temp != NULL) \ - str = (const CHAR_T *) string_temp; \ - \ - DEBUG_PRINT2 (" Popping string %p: `", str); \ - DEBUG_PRINT_DOUBLE_STRING (str, string1, size1, string2, size2); \ - DEBUG_PRINT1 ("'\n"); \ - \ - pat = (UCHAR_T *) POP_FAILURE_POINTER (); \ - DEBUG_PRINT2 (" Popping pattern %p:\n", pat); \ - DEBUG_PRINT_COMPILED_PATTERN (bufp, pat, pend); \ - \ - /* Restore register info. */ \ - high_reg = (active_reg_t) POP_FAILURE_INT (); \ - DEBUG_PRINT2 (" Popping high active reg: %ld\n", high_reg); \ - \ - low_reg = (active_reg_t) POP_FAILURE_INT (); \ - DEBUG_PRINT2 (" Popping low active reg: %ld\n", low_reg); \ - \ - if (1) \ - for (this_reg = high_reg; this_reg >= low_reg; this_reg--) \ - { \ - DEBUG_PRINT2 (" Popping reg: %ld\n", this_reg); \ - \ - reg_info[this_reg].word = POP_FAILURE_ELT (); \ - DEBUG_PRINT2 (" info: %p\n", \ - reg_info[this_reg].word.pointer); \ - \ - regend[this_reg] = (const CHAR_T *) POP_FAILURE_POINTER (); \ - DEBUG_PRINT2 (" end: %p\n", regend[this_reg]); \ - \ - regstart[this_reg] = (const CHAR_T *) POP_FAILURE_POINTER (); \ - DEBUG_PRINT2 (" start: %p\n", regstart[this_reg]); \ - } \ - else \ - { \ - for (this_reg = highest_active_reg; this_reg > high_reg; this_reg--) \ - { \ - reg_info[this_reg].word.integer = 0; \ - regend[this_reg] = 0; \ - regstart[this_reg] = 0; \ - } \ - highest_active_reg = high_reg; \ - } \ - \ - set_regs_matched_done = 0; \ - DEBUG_STATEMENT (nfailure_points_popped++); \ -} /* POP_FAILURE_POINT */ - -/* Structure for per-register (a.k.a. per-group) information. - Other register information, such as the - starting and ending positions (which are addresses), and the list of - inner groups (which is a bits list) are maintained in separate - variables. - - We are making a (strictly speaking) nonportable assumption here: that - the compiler will pack our bit fields into something that fits into - the type of `word', i.e., is something that fits into one item on the - failure stack. */ - - -/* Declarations and macros for re_match_2. */ - -typedef union -{ - PREFIX(fail_stack_elt_t) word; - struct - { - /* This field is one if this group can match the empty string, - zero if not. If not yet determined, `MATCH_NULL_UNSET_VALUE'. */ -# define MATCH_NULL_UNSET_VALUE 3 - unsigned match_null_string_p : 2; - unsigned is_active : 1; - unsigned matched_something : 1; - unsigned ever_matched_something : 1; - } bits; -} PREFIX(register_info_type); - -# ifndef DEFINED_ONCE -# define REG_MATCH_NULL_STRING_P(R) ((R).bits.match_null_string_p) -# define IS_ACTIVE(R) ((R).bits.is_active) -# define MATCHED_SOMETHING(R) ((R).bits.matched_something) -# define EVER_MATCHED_SOMETHING(R) ((R).bits.ever_matched_something) - - -/* Call this when have matched a real character; it sets `matched' flags - for the subexpressions which we are currently inside. Also records - that those subexprs have matched. */ -# define SET_REGS_MATCHED() \ - do \ - { \ - if (!set_regs_matched_done) \ - { \ - active_reg_t r; \ - set_regs_matched_done = 1; \ - for (r = lowest_active_reg; r <= highest_active_reg; r++) \ - { \ - MATCHED_SOMETHING (reg_info[r]) \ - = EVER_MATCHED_SOMETHING (reg_info[r]) \ - = 1; \ - } \ - } \ - } \ - while (0) -# endif /* not DEFINED_ONCE */ - -/* Registers are set to a sentinel when they haven't yet matched. */ -static CHAR_T PREFIX(reg_unset_dummy); -# define REG_UNSET_VALUE (&PREFIX(reg_unset_dummy)) -# define REG_UNSET(e) ((e) == REG_UNSET_VALUE) - -/* Subroutine declarations and macros for regex_compile. */ -static void PREFIX(store_op1) _RE_ARGS ((re_opcode_t op, UCHAR_T *loc, int arg)); -static void PREFIX(store_op2) _RE_ARGS ((re_opcode_t op, UCHAR_T *loc, - int arg1, int arg2)); -static void PREFIX(insert_op1) _RE_ARGS ((re_opcode_t op, UCHAR_T *loc, - int arg, UCHAR_T *end)); -static void PREFIX(insert_op2) _RE_ARGS ((re_opcode_t op, UCHAR_T *loc, - int arg1, int arg2, UCHAR_T *end)); -static boolean PREFIX(at_begline_loc_p) _RE_ARGS ((const CHAR_T *pattern, - const CHAR_T *p, - reg_syntax_t syntax)); -static boolean PREFIX(at_endline_loc_p) _RE_ARGS ((const CHAR_T *p, - const CHAR_T *pend, - reg_syntax_t syntax)); -# ifdef WCHAR -static reg_errcode_t wcs_compile_range _RE_ARGS ((CHAR_T range_start, - const CHAR_T **p_ptr, - const CHAR_T *pend, - char *translate, - reg_syntax_t syntax, - UCHAR_T *b, - CHAR_T *char_set)); -static void insert_space _RE_ARGS ((int num, CHAR_T *loc, CHAR_T *end)); -# else /* BYTE */ -static reg_errcode_t byte_compile_range _RE_ARGS ((unsigned int range_start, - const char **p_ptr, - const char *pend, - char *translate, - reg_syntax_t syntax, - unsigned char *b)); -# endif /* WCHAR */ - -/* Fetch the next character in the uncompiled pattern---translating it - if necessary. Also cast from a signed character in the constant - string passed to us by the user to an unsigned char that we can use - as an array index (in, e.g., `translate'). */ -/* ifdef MBS_SUPPORT, we translate only if character <= 0xff, - because it is impossible to allocate 4GB array for some encodings - which have 4 byte character_set like UCS4. */ -# ifndef PATFETCH -# ifdef WCHAR -# define PATFETCH(c) \ - do {if (p == pend) return REG_EEND; \ - c = (UCHAR_T) *p++; \ - if (translate && (c <= 0xff)) c = (UCHAR_T) translate[c]; \ - } while (0) -# else /* BYTE */ -# define PATFETCH(c) \ - do {if (p == pend) return REG_EEND; \ - c = (unsigned char) *p++; \ - if (translate) c = (unsigned char) translate[c]; \ - } while (0) -# endif /* WCHAR */ -# endif - -/* Fetch the next character in the uncompiled pattern, with no - translation. */ -# define PATFETCH_RAW(c) \ - do {if (p == pend) return REG_EEND; \ - c = (UCHAR_T) *p++; \ - } while (0) - -/* Go backwards one character in the pattern. */ -# define PATUNFETCH p-- - - -/* If `translate' is non-null, return translate[D], else just D. We - cast the subscript to translate because some data is declared as - `char *', to avoid warnings when a string constant is passed. But - when we use a character as a subscript we must make it unsigned. */ -/* ifdef MBS_SUPPORT, we translate only if character <= 0xff, - because it is impossible to allocate 4GB array for some encodings - which have 4 byte character_set like UCS4. */ - -# ifndef TRANSLATE -# ifdef WCHAR -# define TRANSLATE(d) \ - ((translate && ((UCHAR_T) (d)) <= 0xff) \ - ? (char) translate[(unsigned char) (d)] : (d)) -# else /* BYTE */ -# define TRANSLATE(d) \ - (translate ? (char) translate[(unsigned char) (d)] : (d)) -# endif /* WCHAR */ -# endif - - -/* Macros for outputting the compiled pattern into `buffer'. */ - -/* If the buffer isn't allocated when it comes in, use this. */ -# define INIT_BUF_SIZE (32 * sizeof(UCHAR_T)) - -/* Make sure we have at least N more bytes of space in buffer. */ -# ifdef WCHAR -# define GET_BUFFER_SPACE(n) \ - while (((unsigned long)b - (unsigned long)COMPILED_BUFFER_VAR \ - + (n)*sizeof(CHAR_T)) > bufp->allocated) \ - EXTEND_BUFFER () -# else /* BYTE */ -# define GET_BUFFER_SPACE(n) \ - while ((unsigned long) (b - bufp->buffer + (n)) > bufp->allocated) \ - EXTEND_BUFFER () -# endif /* WCHAR */ - -/* Make sure we have one more byte of buffer space and then add C to it. */ -# define BUF_PUSH(c) \ - do { \ - GET_BUFFER_SPACE (1); \ - *b++ = (UCHAR_T) (c); \ - } while (0) - - -/* Ensure we have two more bytes of buffer space and then append C1 and C2. */ -# define BUF_PUSH_2(c1, c2) \ - do { \ - GET_BUFFER_SPACE (2); \ - *b++ = (UCHAR_T) (c1); \ - *b++ = (UCHAR_T) (c2); \ - } while (0) - - -/* As with BUF_PUSH_2, except for three bytes. */ -# define BUF_PUSH_3(c1, c2, c3) \ - do { \ - GET_BUFFER_SPACE (3); \ - *b++ = (UCHAR_T) (c1); \ - *b++ = (UCHAR_T) (c2); \ - *b++ = (UCHAR_T) (c3); \ - } while (0) - -/* Store a jump with opcode OP at LOC to location TO. We store a - relative address offset by the three bytes the jump itself occupies. */ -# define STORE_JUMP(op, loc, to) \ - PREFIX(store_op1) (op, loc, (int) ((to) - (loc) - (1 + OFFSET_ADDRESS_SIZE))) - -/* Likewise, for a two-argument jump. */ -# define STORE_JUMP2(op, loc, to, arg) \ - PREFIX(store_op2) (op, loc, (int) ((to) - (loc) - (1 + OFFSET_ADDRESS_SIZE)), arg) - -/* Like `STORE_JUMP', but for inserting. Assume `b' is the buffer end. */ -# define INSERT_JUMP(op, loc, to) \ - PREFIX(insert_op1) (op, loc, (int) ((to) - (loc) - (1 + OFFSET_ADDRESS_SIZE)), b) - -/* Like `STORE_JUMP2', but for inserting. Assume `b' is the buffer end. */ -# define INSERT_JUMP2(op, loc, to, arg) \ - PREFIX(insert_op2) (op, loc, (int) ((to) - (loc) - (1 + OFFSET_ADDRESS_SIZE)),\ - arg, b) - -/* This is not an arbitrary limit: the arguments which represent offsets - into the pattern are two bytes long. So if 2^16 bytes turns out to - be too small, many things would have to change. */ -/* Any other compiler which, like MSC, has allocation limit below 2^16 - bytes will have to use approach similar to what was done below for - MSC and drop MAX_BUF_SIZE a bit. Otherwise you may end up - reallocating to 0 bytes. Such thing is not going to work too well. - You have been warned!! */ -# ifndef DEFINED_ONCE -# if defined _MSC_VER && !defined WIN32 -/* Microsoft C 16-bit versions limit malloc to approx 65512 bytes. - The REALLOC define eliminates a flurry of conversion warnings, - but is not required. */ -# define MAX_BUF_SIZE 65500L -# define REALLOC(p,s) realloc ((p), (size_t) (s)) -# else -# define MAX_BUF_SIZE (1L << 16) -# define REALLOC(p,s) realloc ((p), (s)) -# endif - -/* Extend the buffer by twice its current size via realloc and - reset the pointers that pointed into the old block to point to the - correct places in the new one. If extending the buffer results in it - being larger than MAX_BUF_SIZE, then flag memory exhausted. */ -# if __BOUNDED_POINTERS__ -# define SET_HIGH_BOUND(P) (__ptrhigh (P) = __ptrlow (P) + bufp->allocated) -# define MOVE_BUFFER_POINTER(P) \ - (__ptrlow (P) += incr, SET_HIGH_BOUND (P), __ptrvalue (P) += incr) -# define ELSE_EXTEND_BUFFER_HIGH_BOUND \ - else \ - { \ - SET_HIGH_BOUND (b); \ - SET_HIGH_BOUND (begalt); \ - if (fixup_alt_jump) \ - SET_HIGH_BOUND (fixup_alt_jump); \ - if (laststart) \ - SET_HIGH_BOUND (laststart); \ - if (pending_exact) \ - SET_HIGH_BOUND (pending_exact); \ - } -# else -# define MOVE_BUFFER_POINTER(P) (P) += incr -# define ELSE_EXTEND_BUFFER_HIGH_BOUND -# endif -# endif /* not DEFINED_ONCE */ - -# ifdef WCHAR -# define EXTEND_BUFFER() \ - do { \ - UCHAR_T *old_buffer = COMPILED_BUFFER_VAR; \ - int wchar_count; \ - if (bufp->allocated + sizeof(UCHAR_T) > MAX_BUF_SIZE) \ - return REG_ESIZE; \ - bufp->allocated <<= 1; \ - if (bufp->allocated > MAX_BUF_SIZE) \ - bufp->allocated = MAX_BUF_SIZE; \ - /* How many characters the new buffer can have? */ \ - wchar_count = bufp->allocated / sizeof(UCHAR_T); \ - if (wchar_count == 0) wchar_count = 1; \ - /* Truncate the buffer to CHAR_T align. */ \ - bufp->allocated = wchar_count * sizeof(UCHAR_T); \ - RETALLOC (COMPILED_BUFFER_VAR, wchar_count, UCHAR_T); \ - bufp->buffer = (char*)COMPILED_BUFFER_VAR; \ - if (COMPILED_BUFFER_VAR == NULL) \ - return REG_ESPACE; \ - /* If the buffer moved, move all the pointers into it. */ \ - if (old_buffer != COMPILED_BUFFER_VAR) \ - { \ - int incr = COMPILED_BUFFER_VAR - old_buffer; \ - MOVE_BUFFER_POINTER (b); \ - MOVE_BUFFER_POINTER (begalt); \ - if (fixup_alt_jump) \ - MOVE_BUFFER_POINTER (fixup_alt_jump); \ - if (laststart) \ - MOVE_BUFFER_POINTER (laststart); \ - if (pending_exact) \ - MOVE_BUFFER_POINTER (pending_exact); \ - } \ - ELSE_EXTEND_BUFFER_HIGH_BOUND \ - } while (0) -# else /* BYTE */ -# define EXTEND_BUFFER() \ - do { \ - UCHAR_T *old_buffer = COMPILED_BUFFER_VAR; \ - if (bufp->allocated == MAX_BUF_SIZE) \ - return REG_ESIZE; \ - bufp->allocated <<= 1; \ - if (bufp->allocated > MAX_BUF_SIZE) \ - bufp->allocated = MAX_BUF_SIZE; \ - bufp->buffer = (UCHAR_T *) REALLOC (COMPILED_BUFFER_VAR, \ - bufp->allocated); \ - if (COMPILED_BUFFER_VAR == NULL) \ - return REG_ESPACE; \ - /* If the buffer moved, move all the pointers into it. */ \ - if (old_buffer != COMPILED_BUFFER_VAR) \ - { \ - int incr = COMPILED_BUFFER_VAR - old_buffer; \ - MOVE_BUFFER_POINTER (b); \ - MOVE_BUFFER_POINTER (begalt); \ - if (fixup_alt_jump) \ - MOVE_BUFFER_POINTER (fixup_alt_jump); \ - if (laststart) \ - MOVE_BUFFER_POINTER (laststart); \ - if (pending_exact) \ - MOVE_BUFFER_POINTER (pending_exact); \ - } \ - ELSE_EXTEND_BUFFER_HIGH_BOUND \ - } while (0) -# endif /* WCHAR */ - -# ifndef DEFINED_ONCE -/* Since we have one byte reserved for the register number argument to - {start,stop}_memory, the maximum number of groups we can report - things about is what fits in that byte. */ -# define MAX_REGNUM 255 - -/* But patterns can have more than `MAX_REGNUM' registers. We just - ignore the excess. */ -typedef unsigned regnum_t; - - -/* Macros for the compile stack. */ - -/* Since offsets can go either forwards or backwards, this type needs to - be able to hold values from -(MAX_BUF_SIZE - 1) to MAX_BUF_SIZE - 1. */ -/* int may be not enough when sizeof(int) == 2. */ -typedef long pattern_offset_t; - -typedef struct -{ - pattern_offset_t begalt_offset; - pattern_offset_t fixup_alt_jump; - pattern_offset_t inner_group_offset; - pattern_offset_t laststart_offset; - regnum_t regnum; -} compile_stack_elt_t; - - -typedef struct -{ - compile_stack_elt_t *stack; - unsigned size; - unsigned avail; /* Offset of next open position. */ -} compile_stack_type; - - -# define INIT_COMPILE_STACK_SIZE 32 - -# define COMPILE_STACK_EMPTY (compile_stack.avail == 0) -# define COMPILE_STACK_FULL (compile_stack.avail == compile_stack.size) - -/* The next available element. */ -# define COMPILE_STACK_TOP (compile_stack.stack[compile_stack.avail]) - -# endif /* not DEFINED_ONCE */ - -/* Set the bit for character C in a list. */ -# ifndef DEFINED_ONCE -# define SET_LIST_BIT(c) \ - (b[((unsigned char) (c)) / BYTEWIDTH] \ - |= 1 << (((unsigned char) c) % BYTEWIDTH)) -# endif /* DEFINED_ONCE */ - -/* Get the next unsigned number in the uncompiled pattern. */ -# define GET_UNSIGNED_NUMBER(num) \ - { \ - while (p != pend) \ - { \ - PATFETCH (c); \ - if (c < '0' || c > '9') \ - break; \ - if (num <= RE_DUP_MAX) \ - { \ - if (num < 0) \ - num = 0; \ - num = num * 10 + c - '0'; \ - } \ - } \ - } - -# ifndef DEFINED_ONCE -# if defined _LIBC || WIDE_CHAR_SUPPORT -/* The GNU C library provides support for user-defined character classes - and the functions from ISO C amendement 1. */ -# ifdef CHARCLASS_NAME_MAX -# define CHAR_CLASS_MAX_LENGTH CHARCLASS_NAME_MAX -# else -/* This shouldn't happen but some implementation might still have this - problem. Use a reasonable default value. */ -# define CHAR_CLASS_MAX_LENGTH 256 -# endif - -# ifdef _LIBC -# define IS_CHAR_CLASS(string) __wctype (string) -# else -# define IS_CHAR_CLASS(string) wctype (string) -# endif -# else -# define CHAR_CLASS_MAX_LENGTH 6 /* Namely, `xdigit'. */ - -# define IS_CHAR_CLASS(string) \ - (STREQ (string, "alpha") || STREQ (string, "upper") \ - || STREQ (string, "lower") || STREQ (string, "digit") \ - || STREQ (string, "alnum") || STREQ (string, "xdigit") \ - || STREQ (string, "space") || STREQ (string, "print") \ - || STREQ (string, "punct") || STREQ (string, "graph") \ - || STREQ (string, "cntrl") || STREQ (string, "blank")) -# endif -# endif /* DEFINED_ONCE */ - -# ifndef MATCH_MAY_ALLOCATE - -/* If we cannot allocate large objects within re_match_2_internal, - we make the fail stack and register vectors global. - The fail stack, we grow to the maximum size when a regexp - is compiled. - The register vectors, we adjust in size each time we - compile a regexp, according to the number of registers it needs. */ - -static PREFIX(fail_stack_type) fail_stack; - -/* Size with which the following vectors are currently allocated. - That is so we can make them bigger as needed, - but never make them smaller. */ -# ifdef DEFINED_ONCE -static int regs_allocated_size; - -static const char ** regstart, ** regend; -static const char ** old_regstart, ** old_regend; -static const char **best_regstart, **best_regend; -static const char **reg_dummy; -# endif /* DEFINED_ONCE */ - -static PREFIX(register_info_type) *PREFIX(reg_info); -static PREFIX(register_info_type) *PREFIX(reg_info_dummy); - -/* Make the register vectors big enough for NUM_REGS registers, - but don't make them smaller. */ - -static void -PREFIX(regex_grow_registers) (num_regs) - int num_regs; -{ - if (num_regs > regs_allocated_size) - { - RETALLOC_IF (regstart, num_regs, const char *); - RETALLOC_IF (regend, num_regs, const char *); - RETALLOC_IF (old_regstart, num_regs, const char *); - RETALLOC_IF (old_regend, num_regs, const char *); - RETALLOC_IF (best_regstart, num_regs, const char *); - RETALLOC_IF (best_regend, num_regs, const char *); - RETALLOC_IF (PREFIX(reg_info), num_regs, PREFIX(register_info_type)); - RETALLOC_IF (reg_dummy, num_regs, const char *); - RETALLOC_IF (PREFIX(reg_info_dummy), num_regs, PREFIX(register_info_type)); - - regs_allocated_size = num_regs; - } -} - -# endif /* not MATCH_MAY_ALLOCATE */ - -# ifndef DEFINED_ONCE -static boolean group_in_compile_stack _RE_ARGS ((compile_stack_type - compile_stack, - regnum_t regnum)); -# endif /* not DEFINED_ONCE */ - -/* `regex_compile' compiles PATTERN (of length SIZE) according to SYNTAX. - Returns one of error codes defined in `regex.h', or zero for success. - - Assumes the `allocated' (and perhaps `buffer') and `translate' - fields are set in BUFP on entry. - - If it succeeds, results are put in BUFP (if it returns an error, the - contents of BUFP are undefined): - `buffer' is the compiled pattern; - `syntax' is set to SYNTAX; - `used' is set to the length of the compiled pattern; - `fastmap_accurate' is zero; - `re_nsub' is the number of subexpressions in PATTERN; - `not_bol' and `not_eol' are zero; - - The `fastmap' and `newline_anchor' fields are neither - examined nor set. */ - -/* Return, freeing storage we allocated. */ -# ifdef WCHAR -# define FREE_STACK_RETURN(value) \ - return (free(pattern), free(mbs_offset), free(is_binary), free (compile_stack.stack), value) -# else -# define FREE_STACK_RETURN(value) \ - return (free (compile_stack.stack), value) -# endif /* WCHAR */ - -static reg_errcode_t -PREFIX(regex_compile) (ARG_PREFIX(pattern), ARG_PREFIX(size), syntax, bufp) - const char *ARG_PREFIX(pattern); - size_t ARG_PREFIX(size); - reg_syntax_t syntax; - struct re_pattern_buffer *bufp; -{ - /* We fetch characters from PATTERN here. Even though PATTERN is - `char *' (i.e., signed), we declare these variables as unsigned, so - they can be reliably used as array indices. */ - register UCHAR_T c, c1; - -#ifdef WCHAR - /* A temporary space to keep wchar_t pattern and compiled pattern. */ - CHAR_T *pattern, *COMPILED_BUFFER_VAR; - size_t size; - /* offset buffer for optimization. See convert_mbs_to_wc. */ - int *mbs_offset = NULL; - /* It hold whether each wchar_t is binary data or not. */ - char *is_binary = NULL; - /* A flag whether exactn is handling binary data or not. */ - char is_exactn_bin = FALSE; -#endif /* WCHAR */ - - /* A random temporary spot in PATTERN. */ - const CHAR_T *p1; - - /* Points to the end of the buffer, where we should append. */ - register UCHAR_T *b; - - /* Keeps track of unclosed groups. */ - compile_stack_type compile_stack; - - /* Points to the current (ending) position in the pattern. */ -#ifdef WCHAR - const CHAR_T *p; - const CHAR_T *pend; -#else /* BYTE */ - const CHAR_T *p = pattern; - const CHAR_T *pend = pattern + size; -#endif /* WCHAR */ - - /* How to translate the characters in the pattern. */ - RE_TRANSLATE_TYPE translate = bufp->translate; - - /* Address of the count-byte of the most recently inserted `exactn' - command. This makes it possible to tell if a new exact-match - character can be added to that command or if the character requires - a new `exactn' command. */ - UCHAR_T *pending_exact = 0; - - /* Address of start of the most recently finished expression. - This tells, e.g., postfix * where to find the start of its - operand. Reset at the beginning of groups and alternatives. */ - UCHAR_T *laststart = 0; - - /* Address of beginning of regexp, or inside of last group. */ - UCHAR_T *begalt; - - /* Address of the place where a forward jump should go to the end of - the containing expression. Each alternative of an `or' -- except the - last -- ends with a forward jump of this sort. */ - UCHAR_T *fixup_alt_jump = 0; - - /* Counts open-groups as they are encountered. Remembered for the - matching close-group on the compile stack, so the same register - number is put in the stop_memory as the start_memory. */ - regnum_t regnum = 0; - -#ifdef WCHAR - /* Initialize the wchar_t PATTERN and offset_buffer. */ - p = pend = pattern = TALLOC(csize + 1, CHAR_T); - mbs_offset = TALLOC(csize + 1, int); - is_binary = TALLOC(csize + 1, char); - if (pattern == NULL || mbs_offset == NULL || is_binary == NULL) - { - free(pattern); - free(mbs_offset); - free(is_binary); - return REG_ESPACE; - } - pattern[csize] = L'\0'; /* sentinel */ - size = convert_mbs_to_wcs(pattern, cpattern, csize, mbs_offset, is_binary); - pend = p + size; - if (size < 0) - { - free(pattern); - free(mbs_offset); - free(is_binary); - return REG_BADPAT; - } -#endif - -#ifdef DEBUG - DEBUG_PRINT1 ("\nCompiling pattern: "); - if (debug) - { - unsigned debug_count; - - for (debug_count = 0; debug_count < size; debug_count++) - PUT_CHAR (pattern[debug_count]); - putchar ('\n'); - } -#endif /* DEBUG */ - - /* Initialize the compile stack. */ - compile_stack.stack = TALLOC (INIT_COMPILE_STACK_SIZE, compile_stack_elt_t); - if (compile_stack.stack == NULL) - { -#ifdef WCHAR - free(pattern); - free(mbs_offset); - free(is_binary); -#endif - return REG_ESPACE; - } - - compile_stack.size = INIT_COMPILE_STACK_SIZE; - compile_stack.avail = 0; - - /* Initialize the pattern buffer. */ - bufp->syntax = syntax; - bufp->fastmap_accurate = 0; - bufp->not_bol = bufp->not_eol = 0; - - /* Set `used' to zero, so that if we return an error, the pattern - printer (for debugging) will think there's no pattern. We reset it - at the end. */ - bufp->used = 0; - - /* Always count groups, whether or not bufp->no_sub is set. */ - bufp->re_nsub = 0; - -#if !defined emacs && !defined SYNTAX_TABLE - /* Initialize the syntax table. */ - init_syntax_once (); -#endif - - if (bufp->allocated == 0) - { - if (bufp->buffer) - { /* If zero allocated, but buffer is non-null, try to realloc - enough space. This loses if buffer's address is bogus, but - that is the user's responsibility. */ -#ifdef WCHAR - /* Free bufp->buffer and allocate an array for wchar_t pattern - buffer. */ - free(bufp->buffer); - COMPILED_BUFFER_VAR = TALLOC (INIT_BUF_SIZE/sizeof(UCHAR_T), - UCHAR_T); -#else - RETALLOC (COMPILED_BUFFER_VAR, INIT_BUF_SIZE, UCHAR_T); -#endif /* WCHAR */ - } - else - { /* Caller did not allocate a buffer. Do it for them. */ - COMPILED_BUFFER_VAR = TALLOC (INIT_BUF_SIZE / sizeof(UCHAR_T), - UCHAR_T); - } - - if (!COMPILED_BUFFER_VAR) FREE_STACK_RETURN (REG_ESPACE); -#ifdef WCHAR - bufp->buffer = (char*)COMPILED_BUFFER_VAR; -#endif /* WCHAR */ - bufp->allocated = INIT_BUF_SIZE; - } -#ifdef WCHAR - else - COMPILED_BUFFER_VAR = (UCHAR_T*) bufp->buffer; -#endif - - begalt = b = COMPILED_BUFFER_VAR; - - /* Loop through the uncompiled pattern until we're at the end. */ - while (p != pend) - { - PATFETCH (c); - - switch (c) - { - case '^': - { - if ( /* If at start of pattern, it's an operator. */ - p == pattern + 1 - /* If context independent, it's an operator. */ - || syntax & RE_CONTEXT_INDEP_ANCHORS - /* Otherwise, depends on what's come before. */ - || PREFIX(at_begline_loc_p) (pattern, p, syntax)) - BUF_PUSH (begline); - else - goto normal_char; - } - break; - - - case '$': - { - if ( /* If at end of pattern, it's an operator. */ - p == pend - /* If context independent, it's an operator. */ - || syntax & RE_CONTEXT_INDEP_ANCHORS - /* Otherwise, depends on what's next. */ - || PREFIX(at_endline_loc_p) (p, pend, syntax)) - BUF_PUSH (endline); - else - goto normal_char; - } - break; - - - case '+': - case '?': - if ((syntax & RE_BK_PLUS_QM) - || (syntax & RE_LIMITED_OPS)) - goto normal_char; - handle_plus: - case '*': - /* If there is no previous pattern... */ - if (!laststart) - { - if (syntax & RE_CONTEXT_INVALID_OPS) - FREE_STACK_RETURN (REG_BADRPT); - else if (!(syntax & RE_CONTEXT_INDEP_OPS)) - goto normal_char; - } - - { - /* Are we optimizing this jump? */ - boolean keep_string_p = false; - - /* 1 means zero (many) matches is allowed. */ - char zero_times_ok = 0, many_times_ok = 0; - - /* If there is a sequence of repetition chars, collapse it - down to just one (the right one). We can't combine - interval operators with these because of, e.g., `a{2}*', - which should only match an even number of `a's. */ - - for (;;) - { - zero_times_ok |= c != '+'; - many_times_ok |= c != '?'; - - if (p == pend) - break; - - PATFETCH (c); - - if (c == '*' - || (!(syntax & RE_BK_PLUS_QM) && (c == '+' || c == '?'))) - ; - - else if (syntax & RE_BK_PLUS_QM && c == '\\') - { - if (p == pend) FREE_STACK_RETURN (REG_EESCAPE); - - PATFETCH (c1); - if (!(c1 == '+' || c1 == '?')) - { - PATUNFETCH; - PATUNFETCH; - break; - } - - c = c1; - } - else - { - PATUNFETCH; - break; - } - - /* If we get here, we found another repeat character. */ - } - - /* Star, etc. applied to an empty pattern is equivalent - to an empty pattern. */ - if (!laststart) - break; - - /* Now we know whether or not zero matches is allowed - and also whether or not two or more matches is allowed. */ - if (many_times_ok) - { /* More than one repetition is allowed, so put in at the - end a backward relative jump from `b' to before the next - jump we're going to put in below (which jumps from - laststart to after this jump). - - But if we are at the `*' in the exact sequence `.*\n', - insert an unconditional jump backwards to the ., - instead of the beginning of the loop. This way we only - push a failure point once, instead of every time - through the loop. */ - assert (p - 1 > pattern); - - /* Allocate the space for the jump. */ - GET_BUFFER_SPACE (1 + OFFSET_ADDRESS_SIZE); - - /* We know we are not at the first character of the pattern, - because laststart was nonzero. And we've already - incremented `p', by the way, to be the character after - the `*'. Do we have to do something analogous here - for null bytes, because of RE_DOT_NOT_NULL? */ - if (TRANSLATE (*(p - 2)) == TRANSLATE ('.') - && zero_times_ok - && p < pend && TRANSLATE (*p) == TRANSLATE ('\n') - && !(syntax & RE_DOT_NEWLINE)) - { /* We have .*\n. */ - STORE_JUMP (jump, b, laststart); - keep_string_p = true; - } - else - /* Anything else. */ - STORE_JUMP (maybe_pop_jump, b, laststart - - (1 + OFFSET_ADDRESS_SIZE)); - - /* We've added more stuff to the buffer. */ - b += 1 + OFFSET_ADDRESS_SIZE; - } - - /* On failure, jump from laststart to b + 3, which will be the - end of the buffer after this jump is inserted. */ - /* ifdef WCHAR, 'b + 1 + OFFSET_ADDRESS_SIZE' instead of - 'b + 3'. */ - GET_BUFFER_SPACE (1 + OFFSET_ADDRESS_SIZE); - INSERT_JUMP (keep_string_p ? on_failure_keep_string_jump - : on_failure_jump, - laststart, b + 1 + OFFSET_ADDRESS_SIZE); - pending_exact = 0; - b += 1 + OFFSET_ADDRESS_SIZE; - - if (!zero_times_ok) - { - /* At least one repetition is required, so insert a - `dummy_failure_jump' before the initial - `on_failure_jump' instruction of the loop. This - effects a skip over that instruction the first time - we hit that loop. */ - GET_BUFFER_SPACE (1 + OFFSET_ADDRESS_SIZE); - INSERT_JUMP (dummy_failure_jump, laststart, laststart + - 2 + 2 * OFFSET_ADDRESS_SIZE); - b += 1 + OFFSET_ADDRESS_SIZE; - } - } - break; - - - case '.': - laststart = b; - BUF_PUSH (anychar); - break; - - - case '[': - { - boolean had_char_class = false; -#ifdef WCHAR - CHAR_T range_start = 0xffffffff; -#else - unsigned int range_start = 0xffffffff; -#endif - if (p == pend) FREE_STACK_RETURN (REG_EBRACK); - -#ifdef WCHAR - /* We assume a charset(_not) structure as a wchar_t array. - charset[0] = (re_opcode_t) charset(_not) - charset[1] = l (= length of char_classes) - charset[2] = m (= length of collating_symbols) - charset[3] = n (= length of equivalence_classes) - charset[4] = o (= length of char_ranges) - charset[5] = p (= length of chars) - - charset[6] = char_class (wctype_t) - charset[6+CHAR_CLASS_SIZE] = char_class (wctype_t) - ... - charset[l+5] = char_class (wctype_t) - - charset[l+6] = collating_symbol (wchar_t) - ... - charset[l+m+5] = collating_symbol (wchar_t) - ifdef _LIBC we use the index if - _NL_COLLATE_SYMB_EXTRAMB instead of - wchar_t string. - - charset[l+m+6] = equivalence_classes (wchar_t) - ... - charset[l+m+n+5] = equivalence_classes (wchar_t) - ifdef _LIBC we use the index in - _NL_COLLATE_WEIGHT instead of - wchar_t string. - - charset[l+m+n+6] = range_start - charset[l+m+n+7] = range_end - ... - charset[l+m+n+2o+4] = range_start - charset[l+m+n+2o+5] = range_end - ifdef _LIBC we use the value looked up - in _NL_COLLATE_COLLSEQ instead of - wchar_t character. - - charset[l+m+n+2o+6] = char - ... - charset[l+m+n+2o+p+5] = char - - */ - - /* We need at least 6 spaces: the opcode, the length of - char_classes, the length of collating_symbols, the length of - equivalence_classes, the length of char_ranges, the length of - chars. */ - GET_BUFFER_SPACE (6); - - /* Save b as laststart. And We use laststart as the pointer - to the first element of the charset here. - In other words, laststart[i] indicates charset[i]. */ - laststart = b; - - /* We test `*p == '^' twice, instead of using an if - statement, so we only need one BUF_PUSH. */ - BUF_PUSH (*p == '^' ? charset_not : charset); - if (*p == '^') - p++; - - /* Push the length of char_classes, the length of - collating_symbols, the length of equivalence_classes, the - length of char_ranges and the length of chars. */ - BUF_PUSH_3 (0, 0, 0); - BUF_PUSH_2 (0, 0); - - /* Remember the first position in the bracket expression. */ - p1 = p; - - /* charset_not matches newline according to a syntax bit. */ - if ((re_opcode_t) b[-6] == charset_not - && (syntax & RE_HAT_LISTS_NOT_NEWLINE)) - { - BUF_PUSH('\n'); - laststart[5]++; /* Update the length of characters */ - } - - /* Read in characters and ranges, setting map bits. */ - for (;;) - { - if (p == pend) FREE_STACK_RETURN (REG_EBRACK); - - PATFETCH (c); - - /* \ might escape characters inside [...] and [^...]. */ - if ((syntax & RE_BACKSLASH_ESCAPE_IN_LISTS) && c == '\\') - { - if (p == pend) FREE_STACK_RETURN (REG_EESCAPE); - - PATFETCH (c1); - BUF_PUSH(c1); - laststart[5]++; /* Update the length of chars */ - range_start = c1; - continue; - } - - /* Could be the end of the bracket expression. If it's - not (i.e., when the bracket expression is `[]' so - far), the ']' character bit gets set way below. */ - if (c == ']' && p != p1 + 1) - break; - - /* Look ahead to see if it's a range when the last thing - was a character class. */ - if (had_char_class && c == '-' && *p != ']') - FREE_STACK_RETURN (REG_ERANGE); - - /* Look ahead to see if it's a range when the last thing - was a character: if this is a hyphen not at the - beginning or the end of a list, then it's the range - operator. */ - if (c == '-' - && !(p - 2 >= pattern && p[-2] == '[') - && !(p - 3 >= pattern && p[-3] == '[' && p[-2] == '^') - && *p != ']') - { - reg_errcode_t ret; - /* Allocate the space for range_start and range_end. */ - GET_BUFFER_SPACE (2); - /* Update the pointer to indicate end of buffer. */ - b += 2; - ret = wcs_compile_range (range_start, &p, pend, translate, - syntax, b, laststart); - if (ret != REG_NOERROR) FREE_STACK_RETURN (ret); - range_start = 0xffffffff; - } - else if (p[0] == '-' && p[1] != ']') - { /* This handles ranges made up of characters only. */ - reg_errcode_t ret; - - /* Move past the `-'. */ - PATFETCH (c1); - /* Allocate the space for range_start and range_end. */ - GET_BUFFER_SPACE (2); - /* Update the pointer to indicate end of buffer. */ - b += 2; - ret = wcs_compile_range (c, &p, pend, translate, syntax, b, - laststart); - if (ret != REG_NOERROR) FREE_STACK_RETURN (ret); - range_start = 0xffffffff; - } - - /* See if we're at the beginning of a possible character - class. */ - else if (syntax & RE_CHAR_CLASSES && c == '[' && *p == ':') - { /* Leave room for the null. */ - char str[CHAR_CLASS_MAX_LENGTH + 1]; - - PATFETCH (c); - c1 = 0; - - /* If pattern is `[[:'. */ - if (p == pend) FREE_STACK_RETURN (REG_EBRACK); - - for (;;) - { - PATFETCH (c); - if ((c == ':' && *p == ']') || p == pend) - break; - if (c1 < CHAR_CLASS_MAX_LENGTH) - str[c1++] = c; - else - /* This is in any case an invalid class name. */ - str[0] = '\0'; - } - str[c1] = '\0'; - - /* If isn't a word bracketed by `[:' and `:]': - undo the ending character, the letters, and leave - the leading `:' and `[' (but store them as character). */ - if (c == ':' && *p == ']') - { - wctype_t wt; - uintptr_t alignedp; - - /* Query the character class as wctype_t. */ - wt = IS_CHAR_CLASS (str); - if (wt == 0) - FREE_STACK_RETURN (REG_ECTYPE); - - /* Throw away the ] at the end of the character - class. */ - PATFETCH (c); - - if (p == pend) FREE_STACK_RETURN (REG_EBRACK); - - /* Allocate the space for character class. */ - GET_BUFFER_SPACE(CHAR_CLASS_SIZE); - /* Update the pointer to indicate end of buffer. */ - b += CHAR_CLASS_SIZE; - /* Move data which follow character classes - not to violate the data. */ - insert_space(CHAR_CLASS_SIZE, - laststart + 6 + laststart[1], - b - 1); - alignedp = ((uintptr_t)(laststart + 6 + laststart[1]) - + __alignof__(wctype_t) - 1) - & ~(uintptr_t)(__alignof__(wctype_t) - 1); - /* Store the character class. */ - *((wctype_t*)alignedp) = wt; - /* Update length of char_classes */ - laststart[1] += CHAR_CLASS_SIZE; - - had_char_class = true; - } - else - { - c1++; - while (c1--) - PATUNFETCH; - BUF_PUSH ('['); - BUF_PUSH (':'); - laststart[5] += 2; /* Update the length of characters */ - range_start = ':'; - had_char_class = false; - } - } - else if (syntax & RE_CHAR_CLASSES && c == '[' && (*p == '=' - || *p == '.')) - { - CHAR_T str[128]; /* Should be large enough. */ - CHAR_T delim = *p; /* '=' or '.' */ -# ifdef _LIBC - uint32_t nrules = - _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); -# endif - PATFETCH (c); - c1 = 0; - - /* If pattern is `[[=' or '[[.'. */ - if (p == pend) FREE_STACK_RETURN (REG_EBRACK); - - for (;;) - { - PATFETCH (c); - if ((c == delim && *p == ']') || p == pend) - break; - if (c1 < sizeof (str) - 1) - str[c1++] = c; - else - /* This is in any case an invalid class name. */ - str[0] = '\0'; - } - str[c1] = '\0'; - - if (c == delim && *p == ']' && str[0] != '\0') - { - unsigned int i, offset; - /* If we have no collation data we use the default - collation in which each character is in a class - by itself. It also means that ASCII is the - character set and therefore we cannot have character - with more than one byte in the multibyte - representation. */ - - /* If not defined _LIBC, we push the name and - `\0' for the sake of matching performance. */ - int datasize = c1 + 1; - -# ifdef _LIBC - int32_t idx = 0; - if (nrules == 0) -# endif - { - if (c1 != 1) - FREE_STACK_RETURN (REG_ECOLLATE); - } -# ifdef _LIBC - else - { - const int32_t *table; - const int32_t *weights; - const int32_t *extra; - const int32_t *indirect; - wint_t *cp; - - /* This #include defines a local function! */ -# include - - if(delim == '=') - { - /* We push the index for equivalence class. */ - cp = (wint_t*)str; - - table = (const int32_t *) - _NL_CURRENT (LC_COLLATE, - _NL_COLLATE_TABLEWC); - weights = (const int32_t *) - _NL_CURRENT (LC_COLLATE, - _NL_COLLATE_WEIGHTWC); - extra = (const int32_t *) - _NL_CURRENT (LC_COLLATE, - _NL_COLLATE_EXTRAWC); - indirect = (const int32_t *) - _NL_CURRENT (LC_COLLATE, - _NL_COLLATE_INDIRECTWC); - - idx = findidx ((const wint_t**)&cp); - if (idx == 0 || cp < (wint_t*) str + c1) - /* This is no valid character. */ - FREE_STACK_RETURN (REG_ECOLLATE); - - str[0] = (wchar_t)idx; - } - else /* delim == '.' */ - { - /* We push collation sequence value - for collating symbol. */ - int32_t table_size; - const int32_t *symb_table; - const unsigned char *extra; - int32_t idx; - int32_t elem; - int32_t second; - int32_t hash; - char char_str[c1]; - - /* We have to convert the name to a single-byte - string. This is possible since the names - consist of ASCII characters and the internal - representation is UCS4. */ - for (i = 0; i < c1; ++i) - char_str[i] = str[i]; - - table_size = - _NL_CURRENT_WORD (LC_COLLATE, - _NL_COLLATE_SYMB_HASH_SIZEMB); - symb_table = (const int32_t *) - _NL_CURRENT (LC_COLLATE, - _NL_COLLATE_SYMB_TABLEMB); - extra = (const unsigned char *) - _NL_CURRENT (LC_COLLATE, - _NL_COLLATE_SYMB_EXTRAMB); - - /* Locate the character in the hashing table. */ - hash = elem_hash (char_str, c1); - - idx = 0; - elem = hash % table_size; - second = hash % (table_size - 2); - while (symb_table[2 * elem] != 0) - { - /* First compare the hashing value. */ - if (symb_table[2 * elem] == hash - && c1 == extra[symb_table[2 * elem + 1]] - && memcmp (char_str, - &extra[symb_table[2 * elem + 1] - + 1], c1) == 0) - { - /* Yep, this is the entry. */ - idx = symb_table[2 * elem + 1]; - idx += 1 + extra[idx]; - break; - } - - /* Next entry. */ - elem += second; - } - - if (symb_table[2 * elem] != 0) - { - /* Compute the index of the byte sequence - in the table. */ - idx += 1 + extra[idx]; - /* Adjust for the alignment. */ - idx = (idx + 3) & ~3; - - str[0] = (wchar_t) idx + 4; - } - else if (symb_table[2 * elem] == 0 && c1 == 1) - { - /* No valid character. Match it as a - single byte character. */ - had_char_class = false; - BUF_PUSH(str[0]); - /* Update the length of characters */ - laststart[5]++; - range_start = str[0]; - - /* Throw away the ] at the end of the - collating symbol. */ - PATFETCH (c); - /* exit from the switch block. */ - continue; - } - else - FREE_STACK_RETURN (REG_ECOLLATE); - } - datasize = 1; - } -# endif - /* Throw away the ] at the end of the equivalence - class (or collating symbol). */ - PATFETCH (c); - - /* Allocate the space for the equivalence class - (or collating symbol) (and '\0' if needed). */ - GET_BUFFER_SPACE(datasize); - /* Update the pointer to indicate end of buffer. */ - b += datasize; - - if (delim == '=') - { /* equivalence class */ - /* Calculate the offset of char_ranges, - which is next to equivalence_classes. */ - offset = laststart[1] + laststart[2] - + laststart[3] +6; - /* Insert space. */ - insert_space(datasize, laststart + offset, b - 1); - - /* Write the equivalence_class and \0. */ - for (i = 0 ; i < datasize ; i++) - laststart[offset + i] = str[i]; - - /* Update the length of equivalence_classes. */ - laststart[3] += datasize; - had_char_class = true; - } - else /* delim == '.' */ - { /* collating symbol */ - /* Calculate the offset of the equivalence_classes, - which is next to collating_symbols. */ - offset = laststart[1] + laststart[2] + 6; - /* Insert space and write the collationg_symbol - and \0. */ - insert_space(datasize, laststart + offset, b-1); - for (i = 0 ; i < datasize ; i++) - laststart[offset + i] = str[i]; - - /* In re_match_2_internal if range_start < -1, we - assume -range_start is the offset of the - collating symbol which is specified as - the character of the range start. So we assign - -(laststart[1] + laststart[2] + 6) to - range_start. */ - range_start = -(laststart[1] + laststart[2] + 6); - /* Update the length of collating_symbol. */ - laststart[2] += datasize; - had_char_class = false; - } - } - else - { - c1++; - while (c1--) - PATUNFETCH; - BUF_PUSH ('['); - BUF_PUSH (delim); - laststart[5] += 2; /* Update the length of characters */ - range_start = delim; - had_char_class = false; - } - } - else - { - had_char_class = false; - BUF_PUSH(c); - laststart[5]++; /* Update the length of characters */ - range_start = c; - } - } - -#else /* BYTE */ - /* Ensure that we have enough space to push a charset: the - opcode, the length count, and the bitset; 34 bytes in all. */ - GET_BUFFER_SPACE (34); - - laststart = b; - - /* We test `*p == '^' twice, instead of using an if - statement, so we only need one BUF_PUSH. */ - BUF_PUSH (*p == '^' ? charset_not : charset); - if (*p == '^') - p++; - - /* Remember the first position in the bracket expression. */ - p1 = p; - - /* Push the number of bytes in the bitmap. */ - BUF_PUSH ((1 << BYTEWIDTH) / BYTEWIDTH); - - /* Clear the whole map. */ - bzero (b, (1 << BYTEWIDTH) / BYTEWIDTH); - - /* charset_not matches newline according to a syntax bit. */ - if ((re_opcode_t) b[-2] == charset_not - && (syntax & RE_HAT_LISTS_NOT_NEWLINE)) - SET_LIST_BIT ('\n'); - - /* Read in characters and ranges, setting map bits. */ - for (;;) - { - if (p == pend) FREE_STACK_RETURN (REG_EBRACK); - - PATFETCH (c); - - /* \ might escape characters inside [...] and [^...]. */ - if ((syntax & RE_BACKSLASH_ESCAPE_IN_LISTS) && c == '\\') - { - if (p == pend) FREE_STACK_RETURN (REG_EESCAPE); - - PATFETCH (c1); - SET_LIST_BIT (c1); - range_start = c1; - continue; - } - - /* Could be the end of the bracket expression. If it's - not (i.e., when the bracket expression is `[]' so - far), the ']' character bit gets set way below. */ - if (c == ']' && p != p1 + 1) - break; - - /* Look ahead to see if it's a range when the last thing - was a character class. */ - if (had_char_class && c == '-' && *p != ']') - FREE_STACK_RETURN (REG_ERANGE); - - /* Look ahead to see if it's a range when the last thing - was a character: if this is a hyphen not at the - beginning or the end of a list, then it's the range - operator. */ - if (c == '-' - && !(p - 2 >= pattern && p[-2] == '[') - && !(p - 3 >= pattern && p[-3] == '[' && p[-2] == '^') - && *p != ']') - { - reg_errcode_t ret - = byte_compile_range (range_start, &p, pend, translate, - syntax, b); - if (ret != REG_NOERROR) FREE_STACK_RETURN (ret); - range_start = 0xffffffff; - } - - else if (p[0] == '-' && p[1] != ']') - { /* This handles ranges made up of characters only. */ - reg_errcode_t ret; - - /* Move past the `-'. */ - PATFETCH (c1); - - ret = byte_compile_range (c, &p, pend, translate, syntax, b); - if (ret != REG_NOERROR) FREE_STACK_RETURN (ret); - range_start = 0xffffffff; - } - - /* See if we're at the beginning of a possible character - class. */ - - else if (syntax & RE_CHAR_CLASSES && c == '[' && *p == ':') - { /* Leave room for the null. */ - char str[CHAR_CLASS_MAX_LENGTH + 1]; - - PATFETCH (c); - c1 = 0; - - /* If pattern is `[[:'. */ - if (p == pend) FREE_STACK_RETURN (REG_EBRACK); - - for (;;) - { - PATFETCH (c); - if ((c == ':' && *p == ']') || p == pend) - break; - if (c1 < CHAR_CLASS_MAX_LENGTH) - str[c1++] = c; - else - /* This is in any case an invalid class name. */ - str[0] = '\0'; - } - str[c1] = '\0'; - - /* If isn't a word bracketed by `[:' and `:]': - undo the ending character, the letters, and leave - the leading `:' and `[' (but set bits for them). */ - if (c == ':' && *p == ']') - { -# if defined _LIBC || WIDE_CHAR_SUPPORT - boolean is_lower = STREQ (str, "lower"); - boolean is_upper = STREQ (str, "upper"); - wctype_t wt; - int ch; - - wt = IS_CHAR_CLASS (str); - if (wt == 0) - FREE_STACK_RETURN (REG_ECTYPE); - - /* Throw away the ] at the end of the character - class. */ - PATFETCH (c); - - if (p == pend) FREE_STACK_RETURN (REG_EBRACK); - - for (ch = 0; ch < 1 << BYTEWIDTH; ++ch) - { - if (iswctype (btowc (ch), wt)) - SET_LIST_BIT (ch); - - if (translate && (is_upper || is_lower) - && (ISUPPER (ch) || ISLOWER (ch))) - SET_LIST_BIT (ch); - } - - had_char_class = true; -# else - int ch; - boolean is_alnum = STREQ (str, "alnum"); - boolean is_alpha = STREQ (str, "alpha"); - boolean is_blank = STREQ (str, "blank"); - boolean is_cntrl = STREQ (str, "cntrl"); - boolean is_digit = STREQ (str, "digit"); - boolean is_graph = STREQ (str, "graph"); - boolean is_lower = STREQ (str, "lower"); - boolean is_print = STREQ (str, "print"); - boolean is_punct = STREQ (str, "punct"); - boolean is_space = STREQ (str, "space"); - boolean is_upper = STREQ (str, "upper"); - boolean is_xdigit = STREQ (str, "xdigit"); - - if (!IS_CHAR_CLASS (str)) - FREE_STACK_RETURN (REG_ECTYPE); - - /* Throw away the ] at the end of the character - class. */ - PATFETCH (c); - - if (p == pend) FREE_STACK_RETURN (REG_EBRACK); - - for (ch = 0; ch < 1 << BYTEWIDTH; ch++) - { - /* This was split into 3 if's to - avoid an arbitrary limit in some compiler. */ - if ( (is_alnum && ISALNUM (ch)) - || (is_alpha && ISALPHA (ch)) - || (is_blank && ISBLANK (ch)) - || (is_cntrl && ISCNTRL (ch))) - SET_LIST_BIT (ch); - if ( (is_digit && ISDIGIT (ch)) - || (is_graph && ISGRAPH (ch)) - || (is_lower && ISLOWER (ch)) - || (is_print && ISPRINT (ch))) - SET_LIST_BIT (ch); - if ( (is_punct && ISPUNCT (ch)) - || (is_space && ISSPACE (ch)) - || (is_upper && ISUPPER (ch)) - || (is_xdigit && ISXDIGIT (ch))) - SET_LIST_BIT (ch); - if ( translate && (is_upper || is_lower) - && (ISUPPER (ch) || ISLOWER (ch))) - SET_LIST_BIT (ch); - } - had_char_class = true; -# endif /* libc || wctype.h */ - } - else - { - c1++; - while (c1--) - PATUNFETCH; - SET_LIST_BIT ('['); - SET_LIST_BIT (':'); - range_start = ':'; - had_char_class = false; - } - } - else if (syntax & RE_CHAR_CLASSES && c == '[' && *p == '=') - { - unsigned char str[MB_LEN_MAX + 1]; -# ifdef _LIBC - uint32_t nrules = - _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); -# endif - - PATFETCH (c); - c1 = 0; - - /* If pattern is `[[='. */ - if (p == pend) FREE_STACK_RETURN (REG_EBRACK); - - for (;;) - { - PATFETCH (c); - if ((c == '=' && *p == ']') || p == pend) - break; - if (c1 < MB_LEN_MAX) - str[c1++] = c; - else - /* This is in any case an invalid class name. */ - str[0] = '\0'; - } - str[c1] = '\0'; - - if (c == '=' && *p == ']' && str[0] != '\0') - { - /* If we have no collation data we use the default - collation in which each character is in a class - by itself. It also means that ASCII is the - character set and therefore we cannot have character - with more than one byte in the multibyte - representation. */ -# ifdef _LIBC - if (nrules == 0) -# endif - { - if (c1 != 1) - FREE_STACK_RETURN (REG_ECOLLATE); - - /* Throw away the ] at the end of the equivalence - class. */ - PATFETCH (c); - - /* Set the bit for the character. */ - SET_LIST_BIT (str[0]); - } -# ifdef _LIBC - else - { - /* Try to match the byte sequence in `str' against - those known to the collate implementation. - First find out whether the bytes in `str' are - actually from exactly one character. */ - const int32_t *table; - const unsigned char *weights; - const unsigned char *extra; - const int32_t *indirect; - int32_t idx; - const unsigned char *cp = str; - int ch; - - /* This #include defines a local function! */ -# include - - table = (const int32_t *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB); - weights = (const unsigned char *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTMB); - extra = (const unsigned char *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB); - indirect = (const int32_t *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); - - idx = findidx (&cp); - if (idx == 0 || cp < str + c1) - /* This is no valid character. */ - FREE_STACK_RETURN (REG_ECOLLATE); - - /* Throw away the ] at the end of the equivalence - class. */ - PATFETCH (c); - - /* Now we have to go throught the whole table - and find all characters which have the same - first level weight. - - XXX Note that this is not entirely correct. - we would have to match multibyte sequences - but this is not possible with the current - implementation. */ - for (ch = 1; ch < 256; ++ch) - /* XXX This test would have to be changed if we - would allow matching multibyte sequences. */ - if (table[ch] > 0) - { - int32_t idx2 = table[ch]; - size_t len = weights[idx2]; - - /* Test whether the lenghts match. */ - if (weights[idx] == len) - { - /* They do. New compare the bytes of - the weight. */ - size_t cnt = 0; - - while (cnt < len - && (weights[idx + 1 + cnt] - == weights[idx2 + 1 + cnt])) - ++cnt; - - if (cnt == len) - /* They match. Mark the character as - acceptable. */ - SET_LIST_BIT (ch); - } - } - } -# endif - had_char_class = true; - } - else - { - c1++; - while (c1--) - PATUNFETCH; - SET_LIST_BIT ('['); - SET_LIST_BIT ('='); - range_start = '='; - had_char_class = false; - } - } - else if (syntax & RE_CHAR_CLASSES && c == '[' && *p == '.') - { - unsigned char str[128]; /* Should be large enough. */ -# ifdef _LIBC - uint32_t nrules = - _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); -# endif - - PATFETCH (c); - c1 = 0; - - /* If pattern is `[[.'. */ - if (p == pend) FREE_STACK_RETURN (REG_EBRACK); - - for (;;) - { - PATFETCH (c); - if ((c == '.' && *p == ']') || p == pend) - break; - if (c1 < sizeof (str)) - str[c1++] = c; - else - /* This is in any case an invalid class name. */ - str[0] = '\0'; - } - str[c1] = '\0'; - - if (c == '.' && *p == ']' && str[0] != '\0') - { - /* If we have no collation data we use the default - collation in which each character is the name - for its own class which contains only the one - character. It also means that ASCII is the - character set and therefore we cannot have character - with more than one byte in the multibyte - representation. */ -# ifdef _LIBC - if (nrules == 0) -# endif - { - if (c1 != 1) - FREE_STACK_RETURN (REG_ECOLLATE); - - /* Throw away the ] at the end of the equivalence - class. */ - PATFETCH (c); - - /* Set the bit for the character. */ - SET_LIST_BIT (str[0]); - range_start = ((const unsigned char *) str)[0]; - } -# ifdef _LIBC - else - { - /* Try to match the byte sequence in `str' against - those known to the collate implementation. - First find out whether the bytes in `str' are - actually from exactly one character. */ - int32_t table_size; - const int32_t *symb_table; - const unsigned char *extra; - int32_t idx; - int32_t elem; - int32_t second; - int32_t hash; - - table_size = - _NL_CURRENT_WORD (LC_COLLATE, - _NL_COLLATE_SYMB_HASH_SIZEMB); - symb_table = (const int32_t *) - _NL_CURRENT (LC_COLLATE, - _NL_COLLATE_SYMB_TABLEMB); - extra = (const unsigned char *) - _NL_CURRENT (LC_COLLATE, - _NL_COLLATE_SYMB_EXTRAMB); - - /* Locate the character in the hashing table. */ - hash = elem_hash (str, c1); - - idx = 0; - elem = hash % table_size; - second = hash % (table_size - 2); - while (symb_table[2 * elem] != 0) - { - /* First compare the hashing value. */ - if (symb_table[2 * elem] == hash - && c1 == extra[symb_table[2 * elem + 1]] - && memcmp (str, - &extra[symb_table[2 * elem + 1] - + 1], - c1) == 0) - { - /* Yep, this is the entry. */ - idx = symb_table[2 * elem + 1]; - idx += 1 + extra[idx]; - break; - } - - /* Next entry. */ - elem += second; - } - - if (symb_table[2 * elem] == 0) - /* This is no valid character. */ - FREE_STACK_RETURN (REG_ECOLLATE); - - /* Throw away the ] at the end of the equivalence - class. */ - PATFETCH (c); - - /* Now add the multibyte character(s) we found - to the accept list. - - XXX Note that this is not entirely correct. - we would have to match multibyte sequences - but this is not possible with the current - implementation. Also, we have to match - collating symbols, which expand to more than - one file, as a whole and not allow the - individual bytes. */ - c1 = extra[idx++]; - if (c1 == 1) - range_start = extra[idx]; - while (c1-- > 0) - { - SET_LIST_BIT (extra[idx]); - ++idx; - } - } -# endif - had_char_class = false; - } - else - { - c1++; - while (c1--) - PATUNFETCH; - SET_LIST_BIT ('['); - SET_LIST_BIT ('.'); - range_start = '.'; - had_char_class = false; - } - } - else - { - had_char_class = false; - SET_LIST_BIT (c); - range_start = c; - } - } - - /* Discard any (non)matching list bytes that are all 0 at the - end of the map. Decrease the map-length byte too. */ - while ((int) b[-1] > 0 && b[b[-1] - 1] == 0) - b[-1]--; - b += b[-1]; -#endif /* WCHAR */ - } - break; - - - case '(': - if (syntax & RE_NO_BK_PARENS) - goto handle_open; - else - goto normal_char; - - - case ')': - if (syntax & RE_NO_BK_PARENS) - goto handle_close; - else - goto normal_char; - - - case '\n': - if (syntax & RE_NEWLINE_ALT) - goto handle_alt; - else - goto normal_char; - - - case '|': - if (syntax & RE_NO_BK_VBAR) - goto handle_alt; - else - goto normal_char; - - - case '{': - if (syntax & RE_INTERVALS && syntax & RE_NO_BK_BRACES) - goto handle_interval; - else - goto normal_char; - - - case '\\': - if (p == pend) FREE_STACK_RETURN (REG_EESCAPE); - - /* Do not translate the character after the \, so that we can - distinguish, e.g., \B from \b, even if we normally would - translate, e.g., B to b. */ - PATFETCH_RAW (c); - - switch (c) - { - case '(': - if (syntax & RE_NO_BK_PARENS) - goto normal_backslash; - - handle_open: - bufp->re_nsub++; - regnum++; - - if (COMPILE_STACK_FULL) - { - RETALLOC (compile_stack.stack, compile_stack.size << 1, - compile_stack_elt_t); - if (compile_stack.stack == NULL) return REG_ESPACE; - - compile_stack.size <<= 1; - } - - /* These are the values to restore when we hit end of this - group. They are all relative offsets, so that if the - whole pattern moves because of realloc, they will still - be valid. */ - COMPILE_STACK_TOP.begalt_offset = begalt - COMPILED_BUFFER_VAR; - COMPILE_STACK_TOP.fixup_alt_jump - = fixup_alt_jump ? fixup_alt_jump - COMPILED_BUFFER_VAR + 1 : 0; - COMPILE_STACK_TOP.laststart_offset = b - COMPILED_BUFFER_VAR; - COMPILE_STACK_TOP.regnum = regnum; - - /* We will eventually replace the 0 with the number of - groups inner to this one. But do not push a - start_memory for groups beyond the last one we can - represent in the compiled pattern. */ - if (regnum <= MAX_REGNUM) - { - COMPILE_STACK_TOP.inner_group_offset = b - - COMPILED_BUFFER_VAR + 2; - BUF_PUSH_3 (start_memory, regnum, 0); - } - - compile_stack.avail++; - - fixup_alt_jump = 0; - laststart = 0; - begalt = b; - /* If we've reached MAX_REGNUM groups, then this open - won't actually generate any code, so we'll have to - clear pending_exact explicitly. */ - pending_exact = 0; - break; - - - case ')': - if (syntax & RE_NO_BK_PARENS) goto normal_backslash; - - if (COMPILE_STACK_EMPTY) - { - if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) - goto normal_backslash; - else - FREE_STACK_RETURN (REG_ERPAREN); - } - - handle_close: - if (fixup_alt_jump) - { /* Push a dummy failure point at the end of the - alternative for a possible future - `pop_failure_jump' to pop. See comments at - `push_dummy_failure' in `re_match_2'. */ - BUF_PUSH (push_dummy_failure); - - /* We allocated space for this jump when we assigned - to `fixup_alt_jump', in the `handle_alt' case below. */ - STORE_JUMP (jump_past_alt, fixup_alt_jump, b - 1); - } - - /* See similar code for backslashed left paren above. */ - if (COMPILE_STACK_EMPTY) - { - if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD) - goto normal_char; - else - FREE_STACK_RETURN (REG_ERPAREN); - } - - /* Since we just checked for an empty stack above, this - ``can't happen''. */ - assert (compile_stack.avail != 0); - { - /* We don't just want to restore into `regnum', because - later groups should continue to be numbered higher, - as in `(ab)c(de)' -- the second group is #2. */ - regnum_t this_group_regnum; - - compile_stack.avail--; - begalt = COMPILED_BUFFER_VAR + COMPILE_STACK_TOP.begalt_offset; - fixup_alt_jump - = COMPILE_STACK_TOP.fixup_alt_jump - ? COMPILED_BUFFER_VAR + COMPILE_STACK_TOP.fixup_alt_jump - 1 - : 0; - laststart = COMPILED_BUFFER_VAR + COMPILE_STACK_TOP.laststart_offset; - this_group_regnum = COMPILE_STACK_TOP.regnum; - /* If we've reached MAX_REGNUM groups, then this open - won't actually generate any code, so we'll have to - clear pending_exact explicitly. */ - pending_exact = 0; - - /* We're at the end of the group, so now we know how many - groups were inside this one. */ - if (this_group_regnum <= MAX_REGNUM) - { - UCHAR_T *inner_group_loc - = COMPILED_BUFFER_VAR + COMPILE_STACK_TOP.inner_group_offset; - - *inner_group_loc = regnum - this_group_regnum; - BUF_PUSH_3 (stop_memory, this_group_regnum, - regnum - this_group_regnum); - } - } - break; - - - case '|': /* `\|'. */ - if (syntax & RE_LIMITED_OPS || syntax & RE_NO_BK_VBAR) - goto normal_backslash; - handle_alt: - if (syntax & RE_LIMITED_OPS) - goto normal_char; - - /* Insert before the previous alternative a jump which - jumps to this alternative if the former fails. */ - GET_BUFFER_SPACE (1 + OFFSET_ADDRESS_SIZE); - INSERT_JUMP (on_failure_jump, begalt, - b + 2 + 2 * OFFSET_ADDRESS_SIZE); - pending_exact = 0; - b += 1 + OFFSET_ADDRESS_SIZE; - - /* The alternative before this one has a jump after it - which gets executed if it gets matched. Adjust that - jump so it will jump to this alternative's analogous - jump (put in below, which in turn will jump to the next - (if any) alternative's such jump, etc.). The last such - jump jumps to the correct final destination. A picture: - _____ _____ - | | | | - | v | v - a | b | c - - If we are at `b', then fixup_alt_jump right now points to a - three-byte space after `a'. We'll put in the jump, set - fixup_alt_jump to right after `b', and leave behind three - bytes which we'll fill in when we get to after `c'. */ - - if (fixup_alt_jump) - STORE_JUMP (jump_past_alt, fixup_alt_jump, b); - - /* Mark and leave space for a jump after this alternative, - to be filled in later either by next alternative or - when know we're at the end of a series of alternatives. */ - fixup_alt_jump = b; - GET_BUFFER_SPACE (1 + OFFSET_ADDRESS_SIZE); - b += 1 + OFFSET_ADDRESS_SIZE; - - laststart = 0; - begalt = b; - break; - - - case '{': - /* If \{ is a literal. */ - if (!(syntax & RE_INTERVALS) - /* If we're at `\{' and it's not the open-interval - operator. */ - || (syntax & RE_NO_BK_BRACES)) - goto normal_backslash; - - handle_interval: - { - /* If got here, then the syntax allows intervals. */ - - /* At least (most) this many matches must be made. */ - int lower_bound = -1, upper_bound = -1; - - /* Place in the uncompiled pattern (i.e., just after - the '{') to go back to if the interval is invalid. */ - const CHAR_T *beg_interval = p; - - if (p == pend) - goto invalid_interval; - - GET_UNSIGNED_NUMBER (lower_bound); - - if (c == ',') - { - GET_UNSIGNED_NUMBER (upper_bound); - if (upper_bound < 0) - upper_bound = RE_DUP_MAX; - } - else - /* Interval such as `{1}' => match exactly once. */ - upper_bound = lower_bound; - - if (! (0 <= lower_bound && lower_bound <= upper_bound)) - goto invalid_interval; - - if (!(syntax & RE_NO_BK_BRACES)) - { - if (c != '\\' || p == pend) - goto invalid_interval; - PATFETCH (c); - } - - if (c != '}') - goto invalid_interval; - - /* If it's invalid to have no preceding re. */ - if (!laststart) - { - if (syntax & RE_CONTEXT_INVALID_OPS - && !(syntax & RE_INVALID_INTERVAL_ORD)) - FREE_STACK_RETURN (REG_BADRPT); - else if (syntax & RE_CONTEXT_INDEP_OPS) - laststart = b; - else - goto unfetch_interval; - } - - /* We just parsed a valid interval. */ - - if (RE_DUP_MAX < upper_bound) - FREE_STACK_RETURN (REG_BADBR); - - /* If the upper bound is zero, don't want to succeed at - all; jump from `laststart' to `b + 3', which will be - the end of the buffer after we insert the jump. */ - /* ifdef WCHAR, 'b + 1 + OFFSET_ADDRESS_SIZE' - instead of 'b + 3'. */ - if (upper_bound == 0) - { - GET_BUFFER_SPACE (1 + OFFSET_ADDRESS_SIZE); - INSERT_JUMP (jump, laststart, b + 1 - + OFFSET_ADDRESS_SIZE); - b += 1 + OFFSET_ADDRESS_SIZE; - } - - /* Otherwise, we have a nontrivial interval. When - we're all done, the pattern will look like: - set_number_at - set_number_at - succeed_n - - jump_n - (The upper bound and `jump_n' are omitted if - `upper_bound' is 1, though.) */ - else - { /* If the upper bound is > 1, we need to insert - more at the end of the loop. */ - unsigned nbytes = 2 + 4 * OFFSET_ADDRESS_SIZE + - (upper_bound > 1) * (2 + 4 * OFFSET_ADDRESS_SIZE); - - GET_BUFFER_SPACE (nbytes); - - /* Initialize lower bound of the `succeed_n', even - though it will be set during matching by its - attendant `set_number_at' (inserted next), - because `re_compile_fastmap' needs to know. - Jump to the `jump_n' we might insert below. */ - INSERT_JUMP2 (succeed_n, laststart, - b + 1 + 2 * OFFSET_ADDRESS_SIZE - + (upper_bound > 1) * (1 + 2 * OFFSET_ADDRESS_SIZE) - , lower_bound); - b += 1 + 2 * OFFSET_ADDRESS_SIZE; - - /* Code to initialize the lower bound. Insert - before the `succeed_n'. The `5' is the last two - bytes of this `set_number_at', plus 3 bytes of - the following `succeed_n'. */ - /* ifdef WCHAR, The '1+2*OFFSET_ADDRESS_SIZE' - is the 'set_number_at', plus '1+OFFSET_ADDRESS_SIZE' - of the following `succeed_n'. */ - PREFIX(insert_op2) (set_number_at, laststart, 1 - + 2 * OFFSET_ADDRESS_SIZE, lower_bound, b); - b += 1 + 2 * OFFSET_ADDRESS_SIZE; - - if (upper_bound > 1) - { /* More than one repetition is allowed, so - append a backward jump to the `succeed_n' - that starts this interval. - - When we've reached this during matching, - we'll have matched the interval once, so - jump back only `upper_bound - 1' times. */ - STORE_JUMP2 (jump_n, b, laststart - + 2 * OFFSET_ADDRESS_SIZE + 1, - upper_bound - 1); - b += 1 + 2 * OFFSET_ADDRESS_SIZE; - - /* The location we want to set is the second - parameter of the `jump_n'; that is `b-2' as - an absolute address. `laststart' will be - the `set_number_at' we're about to insert; - `laststart+3' the number to set, the source - for the relative address. But we are - inserting into the middle of the pattern -- - so everything is getting moved up by 5. - Conclusion: (b - 2) - (laststart + 3) + 5, - i.e., b - laststart. - - We insert this at the beginning of the loop - so that if we fail during matching, we'll - reinitialize the bounds. */ - PREFIX(insert_op2) (set_number_at, laststart, - b - laststart, - upper_bound - 1, b); - b += 1 + 2 * OFFSET_ADDRESS_SIZE; - } - } - pending_exact = 0; - break; - - invalid_interval: - if (!(syntax & RE_INVALID_INTERVAL_ORD)) - FREE_STACK_RETURN (p == pend ? REG_EBRACE : REG_BADBR); - unfetch_interval: - /* Match the characters as literals. */ - p = beg_interval; - c = '{'; - if (syntax & RE_NO_BK_BRACES) - goto normal_char; - else - goto normal_backslash; - } - -#ifdef emacs - /* There is no way to specify the before_dot and after_dot - operators. rms says this is ok. --karl */ - case '=': - BUF_PUSH (at_dot); - break; - - case 's': - laststart = b; - PATFETCH (c); - BUF_PUSH_2 (syntaxspec, syntax_spec_code[c]); - break; - - case 'S': - laststart = b; - PATFETCH (c); - BUF_PUSH_2 (notsyntaxspec, syntax_spec_code[c]); - break; -#endif /* emacs */ - - - case 'w': - if (syntax & RE_NO_GNU_OPS) - goto normal_char; - laststart = b; - BUF_PUSH (wordchar); - break; - - - case 'W': - if (syntax & RE_NO_GNU_OPS) - goto normal_char; - laststart = b; - BUF_PUSH (notwordchar); - break; - - - case '<': - if (syntax & RE_NO_GNU_OPS) - goto normal_char; - BUF_PUSH (wordbeg); - break; - - case '>': - if (syntax & RE_NO_GNU_OPS) - goto normal_char; - BUF_PUSH (wordend); - break; - - case 'b': - if (syntax & RE_NO_GNU_OPS) - goto normal_char; - BUF_PUSH (wordbound); - break; - - case 'B': - if (syntax & RE_NO_GNU_OPS) - goto normal_char; - BUF_PUSH (notwordbound); - break; - - case '`': - if (syntax & RE_NO_GNU_OPS) - goto normal_char; - BUF_PUSH (begbuf); - break; - - case '\'': - if (syntax & RE_NO_GNU_OPS) - goto normal_char; - BUF_PUSH (endbuf); - break; - - case '1': case '2': case '3': case '4': case '5': - case '6': case '7': case '8': case '9': - if (syntax & RE_NO_BK_REFS) - goto normal_char; - - c1 = c - '0'; - - if (c1 > regnum) - FREE_STACK_RETURN (REG_ESUBREG); - - /* Can't back reference to a subexpression if inside of it. */ - if (group_in_compile_stack (compile_stack, (regnum_t) c1)) - goto normal_char; - - laststart = b; - BUF_PUSH_2 (duplicate, c1); - break; - - - case '+': - case '?': - if (syntax & RE_BK_PLUS_QM) - goto handle_plus; - else - goto normal_backslash; - - default: - normal_backslash: - /* You might think it would be useful for \ to mean - not to translate; but if we don't translate it - it will never match anything. */ - c = TRANSLATE (c); - goto normal_char; - } - break; - - - default: - /* Expects the character in `c'. */ - normal_char: - /* If no exactn currently being built. */ - if (!pending_exact -#ifdef WCHAR - /* If last exactn handle binary(or character) and - new exactn handle character(or binary). */ - || is_exactn_bin != is_binary[p - 1 - pattern] -#endif /* WCHAR */ - - /* If last exactn not at current position. */ - || pending_exact + *pending_exact + 1 != b - - /* We have only one byte following the exactn for the count. */ - || *pending_exact == (1 << BYTEWIDTH) - 1 - - /* If followed by a repetition operator. */ - || *p == '*' || *p == '^' - || ((syntax & RE_BK_PLUS_QM) - ? *p == '\\' && (p[1] == '+' || p[1] == '?') - : (*p == '+' || *p == '?')) - || ((syntax & RE_INTERVALS) - && ((syntax & RE_NO_BK_BRACES) - ? *p == '{' - : (p[0] == '\\' && p[1] == '{')))) - { - /* Start building a new exactn. */ - - laststart = b; - -#ifdef WCHAR - /* Is this exactn binary data or character? */ - is_exactn_bin = is_binary[p - 1 - pattern]; - if (is_exactn_bin) - BUF_PUSH_2 (exactn_bin, 0); - else - BUF_PUSH_2 (exactn, 0); -#else - BUF_PUSH_2 (exactn, 0); -#endif /* WCHAR */ - pending_exact = b - 1; - } - - BUF_PUSH (c); - (*pending_exact)++; - break; - } /* switch (c) */ - } /* while p != pend */ - - - /* Through the pattern now. */ - - if (fixup_alt_jump) - STORE_JUMP (jump_past_alt, fixup_alt_jump, b); - - if (!COMPILE_STACK_EMPTY) - FREE_STACK_RETURN (REG_EPAREN); - - /* If we don't want backtracking, force success - the first time we reach the end of the compiled pattern. */ - if (syntax & RE_NO_POSIX_BACKTRACKING) - BUF_PUSH (succeed); - -#ifdef WCHAR - free (pattern); - free (mbs_offset); - free (is_binary); -#endif - free (compile_stack.stack); - - /* We have succeeded; set the length of the buffer. */ -#ifdef WCHAR - bufp->used = (uintptr_t) b - (uintptr_t) COMPILED_BUFFER_VAR; -#else - bufp->used = b - bufp->buffer; -#endif - -#ifdef DEBUG - if (debug) - { - DEBUG_PRINT1 ("\nCompiled pattern: \n"); - PREFIX(print_compiled_pattern) (bufp); - } -#endif /* DEBUG */ - -#ifndef MATCH_MAY_ALLOCATE - /* Initialize the failure stack to the largest possible stack. This - isn't necessary unless we're trying to avoid calling alloca in - the search and match routines. */ - { - int num_regs = bufp->re_nsub + 1; - - /* Since DOUBLE_FAIL_STACK refuses to double only if the current size - is strictly greater than re_max_failures, the largest possible stack - is 2 * re_max_failures failure points. */ - if (fail_stack.size < (2 * re_max_failures * MAX_FAILURE_ITEMS)) - { - fail_stack.size = (2 * re_max_failures * MAX_FAILURE_ITEMS); - -# ifdef emacs - if (! fail_stack.stack) - fail_stack.stack - = (PREFIX(fail_stack_elt_t) *) xmalloc (fail_stack.size - * sizeof (PREFIX(fail_stack_elt_t))); - else - fail_stack.stack - = (PREFIX(fail_stack_elt_t) *) xrealloc (fail_stack.stack, - (fail_stack.size - * sizeof (PREFIX(fail_stack_elt_t)))); -# else /* not emacs */ - if (! fail_stack.stack) - fail_stack.stack - = (PREFIX(fail_stack_elt_t) *) malloc (fail_stack.size - * sizeof (PREFIX(fail_stack_elt_t))); - else - fail_stack.stack - = (PREFIX(fail_stack_elt_t) *) realloc (fail_stack.stack, - (fail_stack.size - * sizeof (PREFIX(fail_stack_elt_t)))); -# endif /* not emacs */ - } - - PREFIX(regex_grow_registers) (num_regs); - } -#endif /* not MATCH_MAY_ALLOCATE */ - - return REG_NOERROR; -} /* regex_compile */ - -/* Subroutines for `regex_compile'. */ - -/* Store OP at LOC followed by two-byte integer parameter ARG. */ -/* ifdef WCHAR, integer parameter is 1 wchar_t. */ - -static void -PREFIX(store_op1) (op, loc, arg) - re_opcode_t op; - UCHAR_T *loc; - int arg; -{ - *loc = (UCHAR_T) op; - STORE_NUMBER (loc + 1, arg); -} - - -/* Like `store_op1', but for two two-byte parameters ARG1 and ARG2. */ -/* ifdef WCHAR, integer parameter is 1 wchar_t. */ - -static void -PREFIX(store_op2) (op, loc, arg1, arg2) - re_opcode_t op; - UCHAR_T *loc; - int arg1, arg2; -{ - *loc = (UCHAR_T) op; - STORE_NUMBER (loc + 1, arg1); - STORE_NUMBER (loc + 1 + OFFSET_ADDRESS_SIZE, arg2); -} - - -/* Copy the bytes from LOC to END to open up three bytes of space at LOC - for OP followed by two-byte integer parameter ARG. */ -/* ifdef WCHAR, integer parameter is 1 wchar_t. */ - -static void -PREFIX(insert_op1) (op, loc, arg, end) - re_opcode_t op; - UCHAR_T *loc; - int arg; - UCHAR_T *end; -{ - register UCHAR_T *pfrom = end; - register UCHAR_T *pto = end + 1 + OFFSET_ADDRESS_SIZE; - - while (pfrom != loc) - *--pto = *--pfrom; - - PREFIX(store_op1) (op, loc, arg); -} - - -/* Like `insert_op1', but for two two-byte parameters ARG1 and ARG2. */ -/* ifdef WCHAR, integer parameter is 1 wchar_t. */ - -static void -PREFIX(insert_op2) (op, loc, arg1, arg2, end) - re_opcode_t op; - UCHAR_T *loc; - int arg1, arg2; - UCHAR_T *end; -{ - register UCHAR_T *pfrom = end; - register UCHAR_T *pto = end + 1 + 2 * OFFSET_ADDRESS_SIZE; - - while (pfrom != loc) - *--pto = *--pfrom; - - PREFIX(store_op2) (op, loc, arg1, arg2); -} - - -/* P points to just after a ^ in PATTERN. Return true if that ^ comes - after an alternative or a begin-subexpression. We assume there is at - least one character before the ^. */ - -static boolean -PREFIX(at_begline_loc_p) (pattern, p, syntax) - const CHAR_T *pattern, *p; - reg_syntax_t syntax; -{ - const CHAR_T *prev = p - 2; - boolean prev_prev_backslash = prev > pattern && prev[-1] == '\\'; - - return - /* After a subexpression? */ - (*prev == '(' && (syntax & RE_NO_BK_PARENS || prev_prev_backslash)) - /* After an alternative? */ - || (*prev == '|' && (syntax & RE_NO_BK_VBAR || prev_prev_backslash)); -} - - -/* The dual of at_begline_loc_p. This one is for $. We assume there is - at least one character after the $, i.e., `P < PEND'. */ - -static boolean -PREFIX(at_endline_loc_p) (p, pend, syntax) - const CHAR_T *p, *pend; - reg_syntax_t syntax; -{ - const CHAR_T *next = p; - boolean next_backslash = *next == '\\'; - const CHAR_T *next_next = p + 1 < pend ? p + 1 : 0; - - return - /* Before a subexpression? */ - (syntax & RE_NO_BK_PARENS ? *next == ')' - : next_backslash && next_next && *next_next == ')') - /* Before an alternative? */ - || (syntax & RE_NO_BK_VBAR ? *next == '|' - : next_backslash && next_next && *next_next == '|'); -} - -#else /* not INSIDE_RECURSION */ - -/* Returns true if REGNUM is in one of COMPILE_STACK's elements and - false if it's not. */ - -static boolean -group_in_compile_stack (compile_stack, regnum) - compile_stack_type compile_stack; - regnum_t regnum; -{ - int this_element; - - for (this_element = compile_stack.avail - 1; - this_element >= 0; - this_element--) - if (compile_stack.stack[this_element].regnum == regnum) - return true; - - return false; -} -#endif /* not INSIDE_RECURSION */ - -#ifdef INSIDE_RECURSION - -#ifdef WCHAR -/* This insert space, which size is "num", into the pattern at "loc". - "end" must point the end of the allocated buffer. */ -static void -insert_space (num, loc, end) - int num; - CHAR_T *loc; - CHAR_T *end; -{ - register CHAR_T *pto = end; - register CHAR_T *pfrom = end - num; - - while (pfrom >= loc) - *pto-- = *pfrom--; -} -#endif /* WCHAR */ - -#ifdef WCHAR -static reg_errcode_t -wcs_compile_range (range_start_char, p_ptr, pend, translate, syntax, b, - char_set) - CHAR_T range_start_char; - const CHAR_T **p_ptr, *pend; - CHAR_T *char_set, *b; - RE_TRANSLATE_TYPE translate; - reg_syntax_t syntax; -{ - const CHAR_T *p = *p_ptr; - CHAR_T range_start, range_end; - reg_errcode_t ret; -# ifdef _LIBC - uint32_t nrules; - uint32_t start_val, end_val; -# endif - if (p == pend) - return REG_ERANGE; - -# ifdef _LIBC - nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); - if (nrules != 0) - { - const char *collseq = (const char *) _NL_CURRENT(LC_COLLATE, - _NL_COLLATE_COLLSEQWC); - const unsigned char *extra = (const unsigned char *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB); - - if (range_start_char < -1) - { - /* range_start is a collating symbol. */ - int32_t *wextra; - /* Retreive the index and get collation sequence value. */ - wextra = (int32_t*)(extra + char_set[-range_start_char]); - start_val = wextra[1 + *wextra]; - } - else - start_val = collseq_table_lookup(collseq, TRANSLATE(range_start_char)); - - end_val = collseq_table_lookup (collseq, TRANSLATE (p[0])); - - /* Report an error if the range is empty and the syntax prohibits - this. */ - ret = ((syntax & RE_NO_EMPTY_RANGES) - && (start_val > end_val))? REG_ERANGE : REG_NOERROR; - - /* Insert space to the end of the char_ranges. */ - insert_space(2, b - char_set[5] - 2, b - 1); - *(b - char_set[5] - 2) = (wchar_t)start_val; - *(b - char_set[5] - 1) = (wchar_t)end_val; - char_set[4]++; /* ranges_index */ - } - else -# endif - { - range_start = (range_start_char >= 0)? TRANSLATE (range_start_char): - range_start_char; - range_end = TRANSLATE (p[0]); - /* Report an error if the range is empty and the syntax prohibits - this. */ - ret = ((syntax & RE_NO_EMPTY_RANGES) - && (range_start > range_end))? REG_ERANGE : REG_NOERROR; - - /* Insert space to the end of the char_ranges. */ - insert_space(2, b - char_set[5] - 2, b - 1); - *(b - char_set[5] - 2) = range_start; - *(b - char_set[5] - 1) = range_end; - char_set[4]++; /* ranges_index */ - } - /* Have to increment the pointer into the pattern string, so the - caller isn't still at the ending character. */ - (*p_ptr)++; - - return ret; -} -#else /* BYTE */ -/* Read the ending character of a range (in a bracket expression) from the - uncompiled pattern *P_PTR (which ends at PEND). We assume the - starting character is in `P[-2]'. (`P[-1]' is the character `-'.) - Then we set the translation of all bits between the starting and - ending characters (inclusive) in the compiled pattern B. - - Return an error code. - - We use these short variable names so we can use the same macros as - `regex_compile' itself. */ - -static reg_errcode_t -byte_compile_range (range_start_char, p_ptr, pend, translate, syntax, b) - unsigned int range_start_char; - const char **p_ptr, *pend; - RE_TRANSLATE_TYPE translate; - reg_syntax_t syntax; - unsigned char *b; -{ - unsigned this_char; - const char *p = *p_ptr; - reg_errcode_t ret; -# if _LIBC - const unsigned char *collseq; - unsigned int start_colseq; - unsigned int end_colseq; -# else - unsigned end_char; -# endif - - if (p == pend) - return REG_ERANGE; - - /* Have to increment the pointer into the pattern string, so the - caller isn't still at the ending character. */ - (*p_ptr)++; - - /* Report an error if the range is empty and the syntax prohibits this. */ - ret = syntax & RE_NO_EMPTY_RANGES ? REG_ERANGE : REG_NOERROR; - -# if _LIBC - collseq = (const unsigned char *) _NL_CURRENT (LC_COLLATE, - _NL_COLLATE_COLLSEQMB); - - start_colseq = collseq[(unsigned char) TRANSLATE (range_start_char)]; - end_colseq = collseq[(unsigned char) TRANSLATE (p[0])]; - for (this_char = 0; this_char <= (unsigned char) -1; ++this_char) - { - unsigned int this_colseq = collseq[(unsigned char) TRANSLATE (this_char)]; - - if (start_colseq <= this_colseq && this_colseq <= end_colseq) - { - SET_LIST_BIT (TRANSLATE (this_char)); - ret = REG_NOERROR; - } - } -# else - /* Here we see why `this_char' has to be larger than an `unsigned - char' -- we would otherwise go into an infinite loop, since all - characters <= 0xff. */ - range_start_char = TRANSLATE (range_start_char); - /* TRANSLATE(p[0]) is casted to char (not unsigned char) in TRANSLATE, - and some compilers cast it to int implicitly, so following for_loop - may fall to (almost) infinite loop. - e.g. If translate[p[0]] = 0xff, end_char may equals to 0xffffffff. - To avoid this, we cast p[0] to unsigned int and truncate it. */ - end_char = ((unsigned)TRANSLATE(p[0]) & ((1 << BYTEWIDTH) - 1)); - - for (this_char = range_start_char; this_char <= end_char; ++this_char) - { - SET_LIST_BIT (TRANSLATE (this_char)); - ret = REG_NOERROR; - } -# endif - - return ret; -} -#endif /* WCHAR */ - -/* re_compile_fastmap computes a ``fastmap'' for the compiled pattern in - BUFP. A fastmap records which of the (1 << BYTEWIDTH) possible - characters can start a string that matches the pattern. This fastmap - is used by re_search to skip quickly over impossible starting points. - - The caller must supply the address of a (1 << BYTEWIDTH)-byte data - area as BUFP->fastmap. - - We set the `fastmap', `fastmap_accurate', and `can_be_null' fields in - the pattern buffer. - - Returns 0 if we succeed, -2 if an internal error. */ - -#ifdef WCHAR -/* local function for re_compile_fastmap. - truncate wchar_t character to char. */ -static unsigned char truncate_wchar (CHAR_T c); - -static unsigned char -truncate_wchar (c) - CHAR_T c; -{ - unsigned char buf[MB_CUR_MAX]; - mbstate_t state; - int retval; - memset (&state, '\0', sizeof (state)); - retval = wcrtomb (buf, c, &state); - return retval > 0 ? buf[0] : (unsigned char) c; -} -#endif /* WCHAR */ - -static int -PREFIX(re_compile_fastmap) (bufp) - struct re_pattern_buffer *bufp; -{ - int j, k; -#ifdef MATCH_MAY_ALLOCATE - PREFIX(fail_stack_type) fail_stack; -#endif -#ifndef REGEX_MALLOC - char *destination; -#endif - - register char *fastmap = bufp->fastmap; - -#ifdef WCHAR - /* We need to cast pattern to (wchar_t*), because we casted this compiled - pattern to (char*) in regex_compile. */ - UCHAR_T *pattern = (UCHAR_T*)bufp->buffer; - register UCHAR_T *pend = (UCHAR_T*) (bufp->buffer + bufp->used); -#else /* BYTE */ - UCHAR_T *pattern = bufp->buffer; - register UCHAR_T *pend = pattern + bufp->used; -#endif /* WCHAR */ - UCHAR_T *p = pattern; - -#ifdef REL_ALLOC - /* This holds the pointer to the failure stack, when - it is allocated relocatably. */ - fail_stack_elt_t *failure_stack_ptr; -#endif - - /* Assume that each path through the pattern can be null until - proven otherwise. We set this false at the bottom of switch - statement, to which we get only if a particular path doesn't - match the empty string. */ - boolean path_can_be_null = true; - - /* We aren't doing a `succeed_n' to begin with. */ - boolean succeed_n_p = false; - - assert (fastmap != NULL && p != NULL); - - INIT_FAIL_STACK (); - bzero (fastmap, 1 << BYTEWIDTH); /* Assume nothing's valid. */ - bufp->fastmap_accurate = 1; /* It will be when we're done. */ - bufp->can_be_null = 0; - - while (1) - { - if (p == pend || *p == succeed) - { - /* We have reached the (effective) end of pattern. */ - if (!FAIL_STACK_EMPTY ()) - { - bufp->can_be_null |= path_can_be_null; - - /* Reset for next path. */ - path_can_be_null = true; - - p = fail_stack.stack[--fail_stack.avail].pointer; - - continue; - } - else - break; - } - - /* We should never be about to go beyond the end of the pattern. */ - assert (p < pend); - - switch (SWITCH_ENUM_CAST ((re_opcode_t) *p++)) - { - - /* I guess the idea here is to simply not bother with a fastmap - if a backreference is used, since it's too hard to figure out - the fastmap for the corresponding group. Setting - `can_be_null' stops `re_search_2' from using the fastmap, so - that is all we do. */ - case duplicate: - bufp->can_be_null = 1; - goto done; - - - /* Following are the cases which match a character. These end - with `break'. */ - -#ifdef WCHAR - case exactn: - fastmap[truncate_wchar(p[1])] = 1; - break; -#else /* BYTE */ - case exactn: - fastmap[p[1]] = 1; - break; -#endif /* WCHAR */ -#ifdef MBS_SUPPORT - case exactn_bin: - fastmap[p[1]] = 1; - break; -#endif - -#ifdef WCHAR - /* It is hard to distinguish fastmap from (multi byte) characters - which depends on current locale. */ - case charset: - case charset_not: - case wordchar: - case notwordchar: - bufp->can_be_null = 1; - goto done; -#else /* BYTE */ - case charset: - for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--) - if (p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH))) - fastmap[j] = 1; - break; - - - case charset_not: - /* Chars beyond end of map must be allowed. */ - for (j = *p * BYTEWIDTH; j < (1 << BYTEWIDTH); j++) - fastmap[j] = 1; - - for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--) - if (!(p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH)))) - fastmap[j] = 1; - break; - - - case wordchar: - for (j = 0; j < (1 << BYTEWIDTH); j++) - if (SYNTAX (j) == Sword) - fastmap[j] = 1; - break; - - - case notwordchar: - for (j = 0; j < (1 << BYTEWIDTH); j++) - if (SYNTAX (j) != Sword) - fastmap[j] = 1; - break; -#endif /* WCHAR */ - - case anychar: - { - int fastmap_newline = fastmap['\n']; - - /* `.' matches anything ... */ - for (j = 0; j < (1 << BYTEWIDTH); j++) - fastmap[j] = 1; - - /* ... except perhaps newline. */ - if (!(bufp->syntax & RE_DOT_NEWLINE)) - fastmap['\n'] = fastmap_newline; - - /* Return if we have already set `can_be_null'; if we have, - then the fastmap is irrelevant. Something's wrong here. */ - else if (bufp->can_be_null) - goto done; - - /* Otherwise, have to check alternative paths. */ - break; - } - -#ifdef emacs - case syntaxspec: - k = *p++; - for (j = 0; j < (1 << BYTEWIDTH); j++) - if (SYNTAX (j) == (enum syntaxcode) k) - fastmap[j] = 1; - break; - - - case notsyntaxspec: - k = *p++; - for (j = 0; j < (1 << BYTEWIDTH); j++) - if (SYNTAX (j) != (enum syntaxcode) k) - fastmap[j] = 1; - break; - - - /* All cases after this match the empty string. These end with - `continue'. */ - - - case before_dot: - case at_dot: - case after_dot: - continue; -#endif /* emacs */ - - - case no_op: - case begline: - case endline: - case begbuf: - case endbuf: - case wordbound: - case notwordbound: - case wordbeg: - case wordend: - case push_dummy_failure: - continue; - - - case jump_n: - case pop_failure_jump: - case maybe_pop_jump: - case jump: - case jump_past_alt: - case dummy_failure_jump: - EXTRACT_NUMBER_AND_INCR (j, p); - p += j; - if (j > 0) - continue; - - /* Jump backward implies we just went through the body of a - loop and matched nothing. Opcode jumped to should be - `on_failure_jump' or `succeed_n'. Just treat it like an - ordinary jump. For a * loop, it has pushed its failure - point already; if so, discard that as redundant. */ - if ((re_opcode_t) *p != on_failure_jump - && (re_opcode_t) *p != succeed_n) - continue; - - p++; - EXTRACT_NUMBER_AND_INCR (j, p); - p += j; - - /* If what's on the stack is where we are now, pop it. */ - if (!FAIL_STACK_EMPTY () - && fail_stack.stack[fail_stack.avail - 1].pointer == p) - fail_stack.avail--; - - continue; - - - case on_failure_jump: - case on_failure_keep_string_jump: - handle_on_failure_jump: - EXTRACT_NUMBER_AND_INCR (j, p); - - /* For some patterns, e.g., `(a?)?', `p+j' here points to the - end of the pattern. We don't want to push such a point, - since when we restore it above, entering the switch will - increment `p' past the end of the pattern. We don't need - to push such a point since we obviously won't find any more - fastmap entries beyond `pend'. Such a pattern can match - the null string, though. */ - if (p + j < pend) - { - if (!PUSH_PATTERN_OP (p + j, fail_stack)) - { - RESET_FAIL_STACK (); - return -2; - } - } - else - bufp->can_be_null = 1; - - if (succeed_n_p) - { - EXTRACT_NUMBER_AND_INCR (k, p); /* Skip the n. */ - succeed_n_p = false; - } - - continue; - - - case succeed_n: - /* Get to the number of times to succeed. */ - p += OFFSET_ADDRESS_SIZE; - - /* Increment p past the n for when k != 0. */ - EXTRACT_NUMBER_AND_INCR (k, p); - if (k == 0) - { - p -= 2 * OFFSET_ADDRESS_SIZE; - succeed_n_p = true; /* Spaghetti code alert. */ - goto handle_on_failure_jump; - } - continue; - - - case set_number_at: - p += 2 * OFFSET_ADDRESS_SIZE; - continue; - - - case start_memory: - case stop_memory: - p += 2; - continue; - - - default: - abort (); /* We have listed all the cases. */ - } /* switch *p++ */ - - /* Getting here means we have found the possible starting - characters for one path of the pattern -- and that the empty - string does not match. We need not follow this path further. - Instead, look at the next alternative (remembered on the - stack), or quit if no more. The test at the top of the loop - does these things. */ - path_can_be_null = false; - p = pend; - } /* while p */ - - /* Set `can_be_null' for the last path (also the first path, if the - pattern is empty). */ - bufp->can_be_null |= path_can_be_null; - - done: - RESET_FAIL_STACK (); - return 0; -} - -#else /* not INSIDE_RECURSION */ - -int -re_compile_fastmap (bufp) - struct re_pattern_buffer *bufp; -{ -# ifdef MBS_SUPPORT - if (MB_CUR_MAX != 1) - return wcs_re_compile_fastmap(bufp); - else -# endif - return byte_re_compile_fastmap(bufp); -} /* re_compile_fastmap */ -#ifdef _LIBC -weak_alias (__re_compile_fastmap, re_compile_fastmap) -#endif - - -/* Set REGS to hold NUM_REGS registers, storing them in STARTS and - ENDS. Subsequent matches using PATTERN_BUFFER and REGS will use - this memory for recording register information. STARTS and ENDS - must be allocated using the malloc library routine, and must each - be at least NUM_REGS * sizeof (regoff_t) bytes long. - - If NUM_REGS == 0, then subsequent matches should allocate their own - register data. - - Unless this function is called, the first search or match using - PATTERN_BUFFER will allocate its own register data, without - freeing the old data. */ - -void -re_set_registers (bufp, regs, num_regs, starts, ends) - struct re_pattern_buffer *bufp; - struct re_registers *regs; - unsigned num_regs; - regoff_t *starts, *ends; -{ - if (num_regs) - { - bufp->regs_allocated = REGS_REALLOCATE; - regs->num_regs = num_regs; - regs->start = starts; - regs->end = ends; - } - else - { - bufp->regs_allocated = REGS_UNALLOCATED; - regs->num_regs = 0; - regs->start = regs->end = (regoff_t *) 0; - } -} -#ifdef _LIBC -weak_alias (__re_set_registers, re_set_registers) -#endif - -/* Searching routines. */ - -/* Like re_search_2, below, but only one string is specified, and - doesn't let you say where to stop matching. */ - -int -re_search (bufp, string, size, startpos, range, regs) - struct re_pattern_buffer *bufp; - const char *string; - int size, startpos, range; - struct re_registers *regs; -{ - return re_search_2 (bufp, NULL, 0, string, size, startpos, range, - regs, size); -} -#ifdef _LIBC -weak_alias (__re_search, re_search) -#endif - - -/* Using the compiled pattern in BUFP->buffer, first tries to match the - virtual concatenation of STRING1 and STRING2, starting first at index - STARTPOS, then at STARTPOS + 1, and so on. - - STRING1 and STRING2 have length SIZE1 and SIZE2, respectively. - - RANGE is how far to scan while trying to match. RANGE = 0 means try - only at STARTPOS; in general, the last start tried is STARTPOS + - RANGE. - - In REGS, return the indices of the virtual concatenation of STRING1 - and STRING2 that matched the entire BUFP->buffer and its contained - subexpressions. - - Do not consider matching one past the index STOP in the virtual - concatenation of STRING1 and STRING2. - - We return either the position in the strings at which the match was - found, -1 if no match, or -2 if error (such as failure - stack overflow). */ - -int -re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop) - struct re_pattern_buffer *bufp; - const char *string1, *string2; - int size1, size2; - int startpos; - int range; - struct re_registers *regs; - int stop; -{ -# ifdef MBS_SUPPORT - if (MB_CUR_MAX != 1) - return wcs_re_search_2 (bufp, string1, size1, string2, size2, startpos, - range, regs, stop); - else -# endif - return byte_re_search_2 (bufp, string1, size1, string2, size2, startpos, - range, regs, stop); -} /* re_search_2 */ -#ifdef _LIBC -weak_alias (__re_search_2, re_search_2) -#endif - -#endif /* not INSIDE_RECURSION */ - -#ifdef INSIDE_RECURSION - -#ifdef MATCH_MAY_ALLOCATE -# define FREE_VAR(var) if (var) REGEX_FREE (var); var = NULL -#else -# define FREE_VAR(var) if (var) free (var); var = NULL -#endif - -#ifdef WCHAR -# define MAX_ALLOCA_SIZE 2000 - -# define FREE_WCS_BUFFERS() \ - do { \ - if (size1 > MAX_ALLOCA_SIZE) \ - { \ - free (wcs_string1); \ - free (mbs_offset1); \ - } \ - else \ - { \ - FREE_VAR (wcs_string1); \ - FREE_VAR (mbs_offset1); \ - } \ - if (size2 > MAX_ALLOCA_SIZE) \ - { \ - free (wcs_string2); \ - free (mbs_offset2); \ - } \ - else \ - { \ - FREE_VAR (wcs_string2); \ - FREE_VAR (mbs_offset2); \ - } \ - } while (0) - -#endif - - -static int -PREFIX(re_search_2) (bufp, string1, size1, string2, size2, startpos, range, - regs, stop) - struct re_pattern_buffer *bufp; - const char *string1, *string2; - int size1, size2; - int startpos; - int range; - struct re_registers *regs; - int stop; -{ - int val; - register char *fastmap = bufp->fastmap; - register RE_TRANSLATE_TYPE translate = bufp->translate; - int total_size = size1 + size2; - int endpos = startpos + range; -#ifdef WCHAR - /* We need wchar_t* buffers correspond to cstring1, cstring2. */ - wchar_t *wcs_string1 = NULL, *wcs_string2 = NULL; - /* We need the size of wchar_t buffers correspond to csize1, csize2. */ - int wcs_size1 = 0, wcs_size2 = 0; - /* offset buffer for optimizatoin. See convert_mbs_to_wc. */ - int *mbs_offset1 = NULL, *mbs_offset2 = NULL; - /* They hold whether each wchar_t is binary data or not. */ - char *is_binary = NULL; -#endif /* WCHAR */ - - /* Check for out-of-range STARTPOS. */ - if (startpos < 0 || startpos > total_size) - return -1; - - /* Fix up RANGE if it might eventually take us outside - the virtual concatenation of STRING1 and STRING2. - Make sure we won't move STARTPOS below 0 or above TOTAL_SIZE. */ - if (endpos < 0) - range = 0 - startpos; - else if (endpos > total_size) - range = total_size - startpos; - - /* If the search isn't to be a backwards one, don't waste time in a - search for a pattern that must be anchored. */ - if (bufp->used > 0 && range > 0 - && ((re_opcode_t) bufp->buffer[0] == begbuf - /* `begline' is like `begbuf' if it cannot match at newlines. */ - || ((re_opcode_t) bufp->buffer[0] == begline - && !bufp->newline_anchor))) - { - if (startpos > 0) - return -1; - else - range = 1; - } - -#ifdef emacs - /* In a forward search for something that starts with \=. - don't keep searching past point. */ - if (bufp->used > 0 && (re_opcode_t) bufp->buffer[0] == at_dot && range > 0) - { - range = PT - startpos; - if (range <= 0) - return -1; - } -#endif /* emacs */ - - /* Update the fastmap now if not correct already. */ - if (fastmap && !bufp->fastmap_accurate) - if (re_compile_fastmap (bufp) == -2) - return -2; - -#ifdef WCHAR - /* Allocate wchar_t array for wcs_string1 and wcs_string2 and - fill them with converted string. */ - if (size1 != 0) - { - if (size1 > MAX_ALLOCA_SIZE) - { - wcs_string1 = TALLOC (size1 + 1, CHAR_T); - mbs_offset1 = TALLOC (size1 + 1, int); - is_binary = TALLOC (size1 + 1, char); - } - else - { - wcs_string1 = REGEX_TALLOC (size1 + 1, CHAR_T); - mbs_offset1 = REGEX_TALLOC (size1 + 1, int); - is_binary = REGEX_TALLOC (size1 + 1, char); - } - if (!wcs_string1 || !mbs_offset1 || !is_binary) - { - if (size1 > MAX_ALLOCA_SIZE) - { - free (wcs_string1); - free (mbs_offset1); - free (is_binary); - } - else - { - FREE_VAR (wcs_string1); - FREE_VAR (mbs_offset1); - FREE_VAR (is_binary); - } - return -2; - } - wcs_size1 = convert_mbs_to_wcs(wcs_string1, string1, size1, - mbs_offset1, is_binary); - wcs_string1[wcs_size1] = L'\0'; /* for a sentinel */ - if (size1 > MAX_ALLOCA_SIZE) - free (is_binary); - else - FREE_VAR (is_binary); - } - if (size2 != 0) - { - if (size2 > MAX_ALLOCA_SIZE) - { - wcs_string2 = TALLOC (size2 + 1, CHAR_T); - mbs_offset2 = TALLOC (size2 + 1, int); - is_binary = TALLOC (size2 + 1, char); - } - else - { - wcs_string2 = REGEX_TALLOC (size2 + 1, CHAR_T); - mbs_offset2 = REGEX_TALLOC (size2 + 1, int); - is_binary = REGEX_TALLOC (size2 + 1, char); - } - if (!wcs_string2 || !mbs_offset2 || !is_binary) - { - FREE_WCS_BUFFERS (); - if (size2 > MAX_ALLOCA_SIZE) - free (is_binary); - else - FREE_VAR (is_binary); - return -2; - } - wcs_size2 = convert_mbs_to_wcs(wcs_string2, string2, size2, - mbs_offset2, is_binary); - wcs_string2[wcs_size2] = L'\0'; /* for a sentinel */ - if (size2 > MAX_ALLOCA_SIZE) - free (is_binary); - else - FREE_VAR (is_binary); - } -#endif /* WCHAR */ - - - /* Loop through the string, looking for a place to start matching. */ - for (;;) - { - /* If a fastmap is supplied, skip quickly over characters that - cannot be the start of a match. If the pattern can match the - null string, however, we don't need to skip characters; we want - the first null string. */ - if (fastmap && startpos < total_size && !bufp->can_be_null) - { - if (range > 0) /* Searching forwards. */ - { - register const char *d; - register int lim = 0; - int irange = range; - - if (startpos < size1 && startpos + range >= size1) - lim = range - (size1 - startpos); - - d = (startpos >= size1 ? string2 - size1 : string1) + startpos; - - /* Written out as an if-else to avoid testing `translate' - inside the loop. */ - if (translate) - while (range > lim - && !fastmap[(unsigned char) - translate[(unsigned char) *d++]]) - range--; - else - while (range > lim && !fastmap[(unsigned char) *d++]) - range--; - - startpos += irange - range; - } - else /* Searching backwards. */ - { - register CHAR_T c = (size1 == 0 || startpos >= size1 - ? string2[startpos - size1] - : string1[startpos]); - - if (!fastmap[(unsigned char) TRANSLATE (c)]) - goto advance; - } - } - - /* If can't match the null string, and that's all we have left, fail. */ - if (range >= 0 && startpos == total_size && fastmap - && !bufp->can_be_null) - { -#ifdef WCHAR - FREE_WCS_BUFFERS (); -#endif - return -1; - } - -#ifdef WCHAR - val = wcs_re_match_2_internal (bufp, string1, size1, string2, - size2, startpos, regs, stop, - wcs_string1, wcs_size1, - wcs_string2, wcs_size2, - mbs_offset1, mbs_offset2); -#else /* BYTE */ - val = byte_re_match_2_internal (bufp, string1, size1, string2, - size2, startpos, regs, stop); -#endif /* BYTE */ - -#ifndef REGEX_MALLOC -# ifdef C_ALLOCA - alloca (0); -# endif -#endif - - if (val >= 0) - { -#ifdef WCHAR - FREE_WCS_BUFFERS (); -#endif - return startpos; - } - - if (val == -2) - { -#ifdef WCHAR - FREE_WCS_BUFFERS (); -#endif - return -2; - } - - advance: - if (!range) - break; - else if (range > 0) - { - range--; - startpos++; - } - else - { - range++; - startpos--; - } - } -#ifdef WCHAR - FREE_WCS_BUFFERS (); -#endif - return -1; -} - -#ifdef WCHAR -/* This converts PTR, a pointer into one of the search wchar_t strings - `string1' and `string2' into an multibyte string offset from the - beginning of that string. We use mbs_offset to optimize. - See convert_mbs_to_wcs. */ -# define POINTER_TO_OFFSET(ptr) \ - (FIRST_STRING_P (ptr) \ - ? ((regoff_t)(mbs_offset1 != NULL? mbs_offset1[(ptr)-string1] : 0)) \ - : ((regoff_t)((mbs_offset2 != NULL? mbs_offset2[(ptr)-string2] : 0) \ - + csize1))) -#else /* BYTE */ -/* This converts PTR, a pointer into one of the search strings `string1' - and `string2' into an offset from the beginning of that string. */ -# define POINTER_TO_OFFSET(ptr) \ - (FIRST_STRING_P (ptr) \ - ? ((regoff_t) ((ptr) - string1)) \ - : ((regoff_t) ((ptr) - string2 + size1))) -#endif /* WCHAR */ - -/* Macros for dealing with the split strings in re_match_2. */ - -#define MATCHING_IN_FIRST_STRING (dend == end_match_1) - -/* Call before fetching a character with *d. This switches over to - string2 if necessary. */ -#define PREFETCH() \ - while (d == dend) \ - { \ - /* End of string2 => fail. */ \ - if (dend == end_match_2) \ - goto fail; \ - /* End of string1 => advance to string2. */ \ - d = string2; \ - dend = end_match_2; \ - } - -/* Test if at very beginning or at very end of the virtual concatenation - of `string1' and `string2'. If only one string, it's `string2'. */ -#define AT_STRINGS_BEG(d) ((d) == (size1 ? string1 : string2) || !size2) -#define AT_STRINGS_END(d) ((d) == end2) - - -/* Test if D points to a character which is word-constituent. We have - two special cases to check for: if past the end of string1, look at - the first character in string2; and if before the beginning of - string2, look at the last character in string1. */ -#ifdef WCHAR -/* Use internationalized API instead of SYNTAX. */ -# define WORDCHAR_P(d) \ - (iswalnum ((wint_t)((d) == end1 ? *string2 \ - : (d) == string2 - 1 ? *(end1 - 1) : *(d))) != 0 \ - || ((d) == end1 ? *string2 \ - : (d) == string2 - 1 ? *(end1 - 1) : *(d)) == L'_') -#else /* BYTE */ -# define WORDCHAR_P(d) \ - (SYNTAX ((d) == end1 ? *string2 \ - : (d) == string2 - 1 ? *(end1 - 1) : *(d)) \ - == Sword) -#endif /* WCHAR */ - -/* Disabled due to a compiler bug -- see comment at case wordbound */ -#if 0 -/* Test if the character before D and the one at D differ with respect - to being word-constituent. */ -#define AT_WORD_BOUNDARY(d) \ - (AT_STRINGS_BEG (d) || AT_STRINGS_END (d) \ - || WORDCHAR_P (d - 1) != WORDCHAR_P (d)) -#endif - -/* Free everything we malloc. */ -#ifdef MATCH_MAY_ALLOCATE -# ifdef WCHAR -# define FREE_VARIABLES() \ - do { \ - REGEX_FREE_STACK (fail_stack.stack); \ - FREE_VAR (regstart); \ - FREE_VAR (regend); \ - FREE_VAR (old_regstart); \ - FREE_VAR (old_regend); \ - FREE_VAR (best_regstart); \ - FREE_VAR (best_regend); \ - FREE_VAR (reg_info); \ - FREE_VAR (reg_dummy); \ - FREE_VAR (reg_info_dummy); \ - if (!cant_free_wcs_buf) \ - { \ - FREE_VAR (string1); \ - FREE_VAR (string2); \ - FREE_VAR (mbs_offset1); \ - FREE_VAR (mbs_offset2); \ - } \ - } while (0) -# else /* BYTE */ -# define FREE_VARIABLES() \ - do { \ - REGEX_FREE_STACK (fail_stack.stack); \ - FREE_VAR (regstart); \ - FREE_VAR (regend); \ - FREE_VAR (old_regstart); \ - FREE_VAR (old_regend); \ - FREE_VAR (best_regstart); \ - FREE_VAR (best_regend); \ - FREE_VAR (reg_info); \ - FREE_VAR (reg_dummy); \ - FREE_VAR (reg_info_dummy); \ - } while (0) -# endif /* WCHAR */ -#else -# ifdef WCHAR -# define FREE_VARIABLES() \ - do { \ - if (!cant_free_wcs_buf) \ - { \ - FREE_VAR (string1); \ - FREE_VAR (string2); \ - FREE_VAR (mbs_offset1); \ - FREE_VAR (mbs_offset2); \ - } \ - } while (0) -# else /* BYTE */ -# define FREE_VARIABLES() ((void)0) /* Do nothing! But inhibit gcc warning. */ -# endif /* WCHAR */ -#endif /* not MATCH_MAY_ALLOCATE */ - -/* These values must meet several constraints. They must not be valid - register values; since we have a limit of 255 registers (because - we use only one byte in the pattern for the register number), we can - use numbers larger than 255. They must differ by 1, because of - NUM_FAILURE_ITEMS above. And the value for the lowest register must - be larger than the value for the highest register, so we do not try - to actually save any registers when none are active. */ -#define NO_HIGHEST_ACTIVE_REG (1 << BYTEWIDTH) -#define NO_LOWEST_ACTIVE_REG (NO_HIGHEST_ACTIVE_REG + 1) - -#else /* not INSIDE_RECURSION */ -/* Matching routines. */ - -#ifndef emacs /* Emacs never uses this. */ -/* re_match is like re_match_2 except it takes only a single string. */ - -int -re_match (bufp, string, size, pos, regs) - struct re_pattern_buffer *bufp; - const char *string; - int size, pos; - struct re_registers *regs; -{ - int result; -# ifdef MBS_SUPPORT - if (MB_CUR_MAX != 1) - result = wcs_re_match_2_internal (bufp, NULL, 0, string, size, - pos, regs, size, - NULL, 0, NULL, 0, NULL, NULL); - else -# endif - result = byte_re_match_2_internal (bufp, NULL, 0, string, size, - pos, regs, size); -# ifndef REGEX_MALLOC -# ifdef C_ALLOCA - alloca (0); -# endif -# endif - return result; -} -# ifdef _LIBC -weak_alias (__re_match, re_match) -# endif -#endif /* not emacs */ - -#endif /* not INSIDE_RECURSION */ - -#ifdef INSIDE_RECURSION -static boolean PREFIX(group_match_null_string_p) _RE_ARGS ((UCHAR_T **p, - UCHAR_T *end, - PREFIX(register_info_type) *reg_info)); -static boolean PREFIX(alt_match_null_string_p) _RE_ARGS ((UCHAR_T *p, - UCHAR_T *end, - PREFIX(register_info_type) *reg_info)); -static boolean PREFIX(common_op_match_null_string_p) _RE_ARGS ((UCHAR_T **p, - UCHAR_T *end, - PREFIX(register_info_type) *reg_info)); -static int PREFIX(bcmp_translate) _RE_ARGS ((const CHAR_T *s1, const CHAR_T *s2, - int len, char *translate)); -#else /* not INSIDE_RECURSION */ - -/* re_match_2 matches the compiled pattern in BUFP against the - the (virtual) concatenation of STRING1 and STRING2 (of length SIZE1 - and SIZE2, respectively). We start matching at POS, and stop - matching at STOP. - - If REGS is non-null and the `no_sub' field of BUFP is nonzero, we - store offsets for the substring each group matched in REGS. See the - documentation for exactly how many groups we fill. - - We return -1 if no match, -2 if an internal error (such as the - failure stack overflowing). Otherwise, we return the length of the - matched substring. */ - -int -re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop) - struct re_pattern_buffer *bufp; - const char *string1, *string2; - int size1, size2; - int pos; - struct re_registers *regs; - int stop; -{ - int result; -# ifdef MBS_SUPPORT - if (MB_CUR_MAX != 1) - result = wcs_re_match_2_internal (bufp, string1, size1, string2, size2, - pos, regs, stop, - NULL, 0, NULL, 0, NULL, NULL); - else -# endif - result = byte_re_match_2_internal (bufp, string1, size1, string2, size2, - pos, regs, stop); - -#ifndef REGEX_MALLOC -# ifdef C_ALLOCA - alloca (0); -# endif -#endif - return result; -} -#ifdef _LIBC -weak_alias (__re_match_2, re_match_2) -#endif - -#endif /* not INSIDE_RECURSION */ - -#ifdef INSIDE_RECURSION - -#ifdef WCHAR -static int count_mbs_length PARAMS ((int *, int)); - -/* This check the substring (from 0, to length) of the multibyte string, - to which offset_buffer correspond. And count how many wchar_t_characters - the substring occupy. We use offset_buffer to optimization. - See convert_mbs_to_wcs. */ - -static int -count_mbs_length(offset_buffer, length) - int *offset_buffer; - int length; -{ - int upper, lower; - - /* Check whether the size is valid. */ - if (length < 0) - return -1; - - if (offset_buffer == NULL) - return 0; - - /* If there are no multibyte character, offset_buffer[i] == i. - Optmize for this case. */ - if (offset_buffer[length] == length) - return length; - - /* Set up upper with length. (because for all i, offset_buffer[i] >= i) */ - upper = length; - lower = 0; - - while (true) - { - int middle = (lower + upper) / 2; - if (middle == lower || middle == upper) - break; - if (offset_buffer[middle] > length) - upper = middle; - else if (offset_buffer[middle] < length) - lower = middle; - else - return middle; - } - - return -1; -} -#endif /* WCHAR */ - -/* This is a separate function so that we can force an alloca cleanup - afterwards. */ -#ifdef WCHAR -static int -wcs_re_match_2_internal (bufp, cstring1, csize1, cstring2, csize2, pos, - regs, stop, string1, size1, string2, size2, - mbs_offset1, mbs_offset2) - struct re_pattern_buffer *bufp; - const char *cstring1, *cstring2; - int csize1, csize2; - int pos; - struct re_registers *regs; - int stop; - /* string1 == string2 == NULL means string1/2, size1/2 and - mbs_offset1/2 need seting up in this function. */ - /* We need wchar_t* buffers correspond to cstring1, cstring2. */ - wchar_t *string1, *string2; - /* We need the size of wchar_t buffers correspond to csize1, csize2. */ - int size1, size2; - /* offset buffer for optimizatoin. See convert_mbs_to_wc. */ - int *mbs_offset1, *mbs_offset2; -#else /* BYTE */ -static int -byte_re_match_2_internal (bufp, string1, size1,string2, size2, pos, - regs, stop) - struct re_pattern_buffer *bufp; - const char *string1, *string2; - int size1, size2; - int pos; - struct re_registers *regs; - int stop; -#endif /* BYTE */ -{ - /* General temporaries. */ - int mcnt; - UCHAR_T *p1; -#ifdef WCHAR - /* They hold whether each wchar_t is binary data or not. */ - char *is_binary = NULL; - /* If true, we can't free string1/2, mbs_offset1/2. */ - int cant_free_wcs_buf = 1; -#endif /* WCHAR */ - - /* Just past the end of the corresponding string. */ - const CHAR_T *end1, *end2; - - /* Pointers into string1 and string2, just past the last characters in - each to consider matching. */ - const CHAR_T *end_match_1, *end_match_2; - - /* Where we are in the data, and the end of the current string. */ - const CHAR_T *d, *dend; - - /* Where we are in the pattern, and the end of the pattern. */ -#ifdef WCHAR - UCHAR_T *pattern, *p; - register UCHAR_T *pend; -#else /* BYTE */ - UCHAR_T *p = bufp->buffer; - register UCHAR_T *pend = p + bufp->used; -#endif /* WCHAR */ - - /* Mark the opcode just after a start_memory, so we can test for an - empty subpattern when we get to the stop_memory. */ - UCHAR_T *just_past_start_mem = 0; - - /* We use this to map every character in the string. */ - RE_TRANSLATE_TYPE translate = bufp->translate; - - /* Failure point stack. Each place that can handle a failure further - down the line pushes a failure point on this stack. It consists of - restart, regend, and reg_info for all registers corresponding to - the subexpressions we're currently inside, plus the number of such - registers, and, finally, two char *'s. The first char * is where - to resume scanning the pattern; the second one is where to resume - scanning the strings. If the latter is zero, the failure point is - a ``dummy''; if a failure happens and the failure point is a dummy, - it gets discarded and the next next one is tried. */ -#ifdef MATCH_MAY_ALLOCATE /* otherwise, this is global. */ - PREFIX(fail_stack_type) fail_stack; -#endif -#ifdef DEBUG - static unsigned failure_id; - unsigned nfailure_points_pushed = 0, nfailure_points_popped = 0; -#endif - -#ifdef REL_ALLOC - /* This holds the pointer to the failure stack, when - it is allocated relocatably. */ - fail_stack_elt_t *failure_stack_ptr; -#endif - - /* We fill all the registers internally, independent of what we - return, for use in backreferences. The number here includes - an element for register zero. */ - size_t num_regs = bufp->re_nsub + 1; - - /* The currently active registers. */ - active_reg_t lowest_active_reg = NO_LOWEST_ACTIVE_REG; - active_reg_t highest_active_reg = NO_HIGHEST_ACTIVE_REG; - - /* Information on the contents of registers. These are pointers into - the input strings; they record just what was matched (on this - attempt) by a subexpression part of the pattern, that is, the - regnum-th regstart pointer points to where in the pattern we began - matching and the regnum-th regend points to right after where we - stopped matching the regnum-th subexpression. (The zeroth register - keeps track of what the whole pattern matches.) */ -#ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global. */ - const CHAR_T **regstart, **regend; -#endif - - /* If a group that's operated upon by a repetition operator fails to - match anything, then the register for its start will need to be - restored because it will have been set to wherever in the string we - are when we last see its open-group operator. Similarly for a - register's end. */ -#ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global. */ - const CHAR_T **old_regstart, **old_regend; -#endif - - /* The is_active field of reg_info helps us keep track of which (possibly - nested) subexpressions we are currently in. The matched_something - field of reg_info[reg_num] helps us tell whether or not we have - matched any of the pattern so far this time through the reg_num-th - subexpression. These two fields get reset each time through any - loop their register is in. */ -#ifdef MATCH_MAY_ALLOCATE /* otherwise, this is global. */ - PREFIX(register_info_type) *reg_info; -#endif - - /* The following record the register info as found in the above - variables when we find a match better than any we've seen before. - This happens as we backtrack through the failure points, which in - turn happens only if we have not yet matched the entire string. */ - unsigned best_regs_set = false; -#ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global. */ - const CHAR_T **best_regstart, **best_regend; -#endif - - /* Logically, this is `best_regend[0]'. But we don't want to have to - allocate space for that if we're not allocating space for anything - else (see below). Also, we never need info about register 0 for - any of the other register vectors, and it seems rather a kludge to - treat `best_regend' differently than the rest. So we keep track of - the end of the best match so far in a separate variable. We - initialize this to NULL so that when we backtrack the first time - and need to test it, it's not garbage. */ - const CHAR_T *match_end = NULL; - - /* This helps SET_REGS_MATCHED avoid doing redundant work. */ - int set_regs_matched_done = 0; - - /* Used when we pop values we don't care about. */ -#ifdef MATCH_MAY_ALLOCATE /* otherwise, these are global. */ - const CHAR_T **reg_dummy; - PREFIX(register_info_type) *reg_info_dummy; -#endif - -#ifdef DEBUG - /* Counts the total number of registers pushed. */ - unsigned num_regs_pushed = 0; -#endif - - /* Definitions for state transitions. More efficiently for gcc. */ -#ifdef __GNUC__ -# if defined HAVE_SUBTRACT_LOCAL_LABELS && defined SHARED -# define NEXT \ - do \ - { \ - int offset; \ - const void *__unbounded ptr; \ - offset = (p == pend \ - ? 0 : jmptable[SWITCH_ENUM_CAST ((re_opcode_t) *p++)]); \ - ptr = &&end_of_pattern + offset; \ - goto *ptr; \ - } \ - while (0) -# define REF(x) \ - &&label_##x - &&end_of_pattern -# define JUMP_TABLE_TYPE const int -# else -# define NEXT \ - do \ - { \ - const void *__unbounded ptr; \ - ptr = (p == pend ? &&end_of_pattern \ - : jmptable[SWITCH_ENUM_CAST ((re_opcode_t) *p++)]); \ - goto *ptr; \ - } \ - while (0) -# define REF(x) \ - &&label_##x -# define JUMP_TABLE_TYPE const void *const -# endif -# define CASE(x) label_##x - static JUMP_TABLE_TYPE jmptable[] = - { - REF (no_op), - REF (succeed), - REF (exactn), -# ifdef MBS_SUPPORT - REF (exactn_bin), -# endif - REF (anychar), - REF (charset), - REF (charset_not), - REF (start_memory), - REF (stop_memory), - REF (duplicate), - REF (begline), - REF (endline), - REF (begbuf), - REF (endbuf), - REF (jump), - REF (jump_past_alt), - REF (on_failure_jump), - REF (on_failure_keep_string_jump), - REF (pop_failure_jump), - REF (maybe_pop_jump), - REF (dummy_failure_jump), - REF (push_dummy_failure), - REF (succeed_n), - REF (jump_n), - REF (set_number_at), - REF (wordchar), - REF (notwordchar), - REF (wordbeg), - REF (wordend), - REF (wordbound), - REF (notwordbound) -# ifdef emacs - ,REF (before_dot), - REF (at_dot), - REF (after_dot), - REF (syntaxspec), - REF (notsyntaxspec) -# endif - }; -#else -# define NEXT \ - break -# define CASE(x) \ - case x -#endif - - DEBUG_PRINT1 ("\n\nEntering re_match_2.\n"); - - INIT_FAIL_STACK (); - -#ifdef MATCH_MAY_ALLOCATE - /* Do not bother to initialize all the register variables if there are - no groups in the pattern, as it takes a fair amount of time. If - there are groups, we include space for register 0 (the whole - pattern), even though we never use it, since it simplifies the - array indexing. We should fix this. */ - if (bufp->re_nsub) - { - regstart = REGEX_TALLOC (num_regs, const CHAR_T *); - regend = REGEX_TALLOC (num_regs, const CHAR_T *); - old_regstart = REGEX_TALLOC (num_regs, const CHAR_T *); - old_regend = REGEX_TALLOC (num_regs, const CHAR_T *); - best_regstart = REGEX_TALLOC (num_regs, const CHAR_T *); - best_regend = REGEX_TALLOC (num_regs, const CHAR_T *); - reg_info = REGEX_TALLOC (num_regs, PREFIX(register_info_type)); - reg_dummy = REGEX_TALLOC (num_regs, const CHAR_T *); - reg_info_dummy = REGEX_TALLOC (num_regs, PREFIX(register_info_type)); - - if (!(regstart && regend && old_regstart && old_regend && reg_info - && best_regstart && best_regend && reg_dummy && reg_info_dummy)) - { - FREE_VARIABLES (); - return -2; - } - } - else - { - /* We must initialize all our variables to NULL, so that - `FREE_VARIABLES' doesn't try to free them. */ - regstart = regend = old_regstart = old_regend = best_regstart - = best_regend = reg_dummy = NULL; - reg_info = reg_info_dummy = (PREFIX(register_info_type) *) NULL; - } -#endif /* MATCH_MAY_ALLOCATE */ - - /* The starting position is bogus. */ -#ifdef WCHAR - if (pos < 0 || pos > csize1 + csize2) -#else /* BYTE */ - if (pos < 0 || pos > size1 + size2) -#endif - { - FREE_VARIABLES (); - return -1; - } - -#ifdef WCHAR - /* Allocate wchar_t array for string1 and string2 and - fill them with converted string. */ - if (string1 == NULL && string2 == NULL) - { - /* We need seting up buffers here. */ - - /* We must free wcs buffers in this function. */ - cant_free_wcs_buf = 0; - - if (csize1 != 0) - { - string1 = REGEX_TALLOC (csize1 + 1, CHAR_T); - mbs_offset1 = REGEX_TALLOC (csize1 + 1, int); - is_binary = REGEX_TALLOC (csize1 + 1, char); - if (!string1 || !mbs_offset1 || !is_binary) - { - FREE_VAR (string1); - FREE_VAR (mbs_offset1); - FREE_VAR (is_binary); - return -2; - } - } - if (csize2 != 0) - { - string2 = REGEX_TALLOC (csize2 + 1, CHAR_T); - mbs_offset2 = REGEX_TALLOC (csize2 + 1, int); - is_binary = REGEX_TALLOC (csize2 + 1, char); - if (!string2 || !mbs_offset2 || !is_binary) - { - FREE_VAR (string1); - FREE_VAR (mbs_offset1); - FREE_VAR (string2); - FREE_VAR (mbs_offset2); - FREE_VAR (is_binary); - return -2; - } - size2 = convert_mbs_to_wcs(string2, cstring2, csize2, - mbs_offset2, is_binary); - string2[size2] = L'\0'; /* for a sentinel */ - FREE_VAR (is_binary); - } - } - - /* We need to cast pattern to (wchar_t*), because we casted this compiled - pattern to (char*) in regex_compile. */ - p = pattern = (CHAR_T*)bufp->buffer; - pend = (CHAR_T*)(bufp->buffer + bufp->used); - -#endif /* WCHAR */ - - /* Initialize subexpression text positions to -1 to mark ones that no - start_memory/stop_memory has been seen for. Also initialize the - register information struct. */ - for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++) - { - regstart[mcnt] = regend[mcnt] - = old_regstart[mcnt] = old_regend[mcnt] = REG_UNSET_VALUE; - - REG_MATCH_NULL_STRING_P (reg_info[mcnt]) = MATCH_NULL_UNSET_VALUE; - IS_ACTIVE (reg_info[mcnt]) = 0; - MATCHED_SOMETHING (reg_info[mcnt]) = 0; - EVER_MATCHED_SOMETHING (reg_info[mcnt]) = 0; - } - - /* We move `string1' into `string2' if the latter's empty -- but not if - `string1' is null. */ - if (size2 == 0 && string1 != NULL) - { - string2 = string1; - size2 = size1; - string1 = 0; - size1 = 0; -#ifdef WCHAR - mbs_offset2 = mbs_offset1; - csize2 = csize1; - mbs_offset1 = NULL; - csize1 = 0; -#endif - } - end1 = string1 + size1; - end2 = string2 + size2; - - /* Compute where to stop matching, within the two strings. */ -#ifdef WCHAR - if (stop <= csize1) - { - mcnt = count_mbs_length(mbs_offset1, stop); - end_match_1 = string1 + mcnt; - end_match_2 = string2; - } - else - { - if (stop > csize1 + csize2) - stop = csize1 + csize2; - end_match_1 = end1; - mcnt = count_mbs_length(mbs_offset2, stop-csize1); - end_match_2 = string2 + mcnt; - } - if (mcnt < 0) - { /* count_mbs_length return error. */ - FREE_VARIABLES (); - return -1; - } -#else - if (stop <= size1) - { - end_match_1 = string1 + stop; - end_match_2 = string2; - } - else - { - end_match_1 = end1; - end_match_2 = string2 + stop - size1; - } -#endif /* WCHAR */ - - /* `p' scans through the pattern as `d' scans through the data. - `dend' is the end of the input string that `d' points within. `d' - is advanced into the following input string whenever necessary, but - this happens before fetching; therefore, at the beginning of the - loop, `d' can be pointing at the end of a string, but it cannot - equal `string2'. */ -#ifdef WCHAR - if (size1 > 0 && pos <= csize1) - { - mcnt = count_mbs_length(mbs_offset1, pos); - d = string1 + mcnt; - dend = end_match_1; - } - else - { - mcnt = count_mbs_length(mbs_offset2, pos-csize1); - d = string2 + mcnt; - dend = end_match_2; - } - - if (mcnt < 0) - { /* count_mbs_length return error. */ - FREE_VARIABLES (); - return -1; - } -#else - if (size1 > 0 && pos <= size1) - { - d = string1 + pos; - dend = end_match_1; - } - else - { - d = string2 + pos - size1; - dend = end_match_2; - } -#endif /* WCHAR */ - - DEBUG_PRINT1 ("The compiled pattern is:\n"); - DEBUG_PRINT_COMPILED_PATTERN (bufp, p, pend); - DEBUG_PRINT1 ("The string to match is: `"); - DEBUG_PRINT_DOUBLE_STRING (d, string1, size1, string2, size2); - DEBUG_PRINT1 ("'\n"); - - /* This loops over pattern commands. It exits by returning from the - function if the match is complete, or it drops through if the match - fails at this starting point in the input data. */ - for (;;) - { -#ifdef _LIBC - DEBUG_PRINT2 ("\n%p: ", p); -#else - DEBUG_PRINT2 ("\n0x%x: ", p); -#endif - -#ifdef __GNUC__ - NEXT; -#else - if (p == pend) -#endif - { -#ifdef __GNUC__ - end_of_pattern: -#endif - /* End of pattern means we might have succeeded. */ - DEBUG_PRINT1 ("end of pattern ... "); - - /* If we haven't matched the entire string, and we want the - longest match, try backtracking. */ - if (d != end_match_2) - { - /* 1 if this match ends in the same string (string1 or string2) - as the best previous match. */ - boolean same_str_p = (FIRST_STRING_P (match_end) - == MATCHING_IN_FIRST_STRING); - /* 1 if this match is the best seen so far. */ - boolean best_match_p; - - /* AIX compiler got confused when this was combined - with the previous declaration. */ - if (same_str_p) - best_match_p = d > match_end; - else - best_match_p = !MATCHING_IN_FIRST_STRING; - - DEBUG_PRINT1 ("backtracking.\n"); - - if (!FAIL_STACK_EMPTY ()) - { /* More failure points to try. */ - - /* If exceeds best match so far, save it. */ - if (!best_regs_set || best_match_p) - { - best_regs_set = true; - match_end = d; - - DEBUG_PRINT1 ("\nSAVING match as best so far.\n"); - - for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++) - { - best_regstart[mcnt] = regstart[mcnt]; - best_regend[mcnt] = regend[mcnt]; - } - } - goto fail; - } - - /* If no failure points, don't restore garbage. And if - last match is real best match, don't restore second - best one. */ - else if (best_regs_set && !best_match_p) - { - restore_best_regs: - /* Restore best match. It may happen that `dend == - end_match_1' while the restored d is in string2. - For example, the pattern `x.*y.*z' against the - strings `x-' and `y-z-', if the two strings are - not consecutive in memory. */ - DEBUG_PRINT1 ("Restoring best registers.\n"); - - d = match_end; - dend = ((d >= string1 && d <= end1) - ? end_match_1 : end_match_2); - - for (mcnt = 1; (unsigned) mcnt < num_regs; mcnt++) - { - regstart[mcnt] = best_regstart[mcnt]; - regend[mcnt] = best_regend[mcnt]; - } - } - } /* d != end_match_2 */ - - succeed_label: - DEBUG_PRINT1 ("Accepting match.\n"); - /* If caller wants register contents data back, do it. */ - if (regs && !bufp->no_sub) - { - /* Have the register data arrays been allocated? */ - if (bufp->regs_allocated == REGS_UNALLOCATED) - { /* No. So allocate them with malloc. We need one - extra element beyond `num_regs' for the `-1' marker - GNU code uses. */ - regs->num_regs = MAX (RE_NREGS, num_regs + 1); - regs->start = TALLOC (regs->num_regs, regoff_t); - regs->end = TALLOC (regs->num_regs, regoff_t); - if (regs->start == NULL || regs->end == NULL) - { - FREE_VARIABLES (); - return -2; - } - bufp->regs_allocated = REGS_REALLOCATE; - } - else if (bufp->regs_allocated == REGS_REALLOCATE) - { /* Yes. If we need more elements than were already - allocated, reallocate them. If we need fewer, just - leave it alone. */ - if (regs->num_regs < num_regs + 1) - { - regs->num_regs = num_regs + 1; - RETALLOC (regs->start, regs->num_regs, regoff_t); - RETALLOC (regs->end, regs->num_regs, regoff_t); - if (regs->start == NULL || regs->end == NULL) - { - FREE_VARIABLES (); - return -2; - } - } - } - else - { - /* These braces fend off a "empty body in an else-statement" - warning under GCC when assert expands to nothing. */ - assert (bufp->regs_allocated == REGS_FIXED); - } - - /* Convert the pointer data in `regstart' and `regend' to - indices. Register zero has to be set differently, - since we haven't kept track of any info for it. */ - if (regs->num_regs > 0) - { - regs->start[0] = pos; -#ifdef WCHAR - if (MATCHING_IN_FIRST_STRING) - regs->end[0] = (mbs_offset1 != NULL ? - mbs_offset1[d-string1] : 0); - else - regs->end[0] = csize1 + (mbs_offset2 != NULL - ? mbs_offset2[d-string2] : 0); -#else - regs->end[0] = (MATCHING_IN_FIRST_STRING - ? ((regoff_t) (d - string1)) - : ((regoff_t) (d - string2 + size1))); -#endif /* WCHAR */ - } - - /* Go through the first `min (num_regs, regs->num_regs)' - registers, since that is all we initialized. */ - for (mcnt = 1; (unsigned) mcnt < MIN (num_regs, regs->num_regs); - mcnt++) - { - if (REG_UNSET (regstart[mcnt]) || REG_UNSET (regend[mcnt])) - regs->start[mcnt] = regs->end[mcnt] = -1; - else - { - regs->start[mcnt] - = (regoff_t) POINTER_TO_OFFSET (regstart[mcnt]); - regs->end[mcnt] - = (regoff_t) POINTER_TO_OFFSET (regend[mcnt]); - } - } - - /* If the regs structure we return has more elements than - were in the pattern, set the extra elements to -1. If - we (re)allocated the registers, this is the case, - because we always allocate enough to have at least one - -1 at the end. */ - for (mcnt = num_regs; (unsigned) mcnt < regs->num_regs; mcnt++) - regs->start[mcnt] = regs->end[mcnt] = -1; - } /* regs && !bufp->no_sub */ - - DEBUG_PRINT4 ("%u failure points pushed, %u popped (%u remain).\n", - nfailure_points_pushed, nfailure_points_popped, - nfailure_points_pushed - nfailure_points_popped); - DEBUG_PRINT2 ("%u registers pushed.\n", num_regs_pushed); - -#ifdef WCHAR - if (MATCHING_IN_FIRST_STRING) - mcnt = mbs_offset1 != NULL ? mbs_offset1[d-string1] : 0; - else - mcnt = (mbs_offset2 != NULL ? mbs_offset2[d-string2] : 0) + - csize1; - mcnt -= pos; -#else - mcnt = d - pos - (MATCHING_IN_FIRST_STRING - ? string1 : string2 - size1); -#endif /* WCHAR */ - - DEBUG_PRINT2 ("Returning %d from re_match_2.\n", mcnt); - - FREE_VARIABLES (); - return mcnt; - } - -#ifndef __GNUC__ - /* Otherwise match next pattern command. */ - switch (SWITCH_ENUM_CAST ((re_opcode_t) *p++)) - { -#endif - /* Ignore these. Used to ignore the n of succeed_n's which - currently have n == 0. */ - CASE (no_op): - DEBUG_PRINT1 ("EXECUTING no_op.\n"); - NEXT; - - CASE (succeed): - DEBUG_PRINT1 ("EXECUTING succeed.\n"); - goto succeed_label; - - /* Match the next n pattern characters exactly. The following - byte in the pattern defines n, and the n bytes after that - are the characters to match. */ - CASE (exactn): -#ifdef MBS_SUPPORT - CASE (exactn_bin): -#endif - mcnt = *p++; - DEBUG_PRINT2 ("EXECUTING exactn %d.\n", mcnt); - - /* This is written out as an if-else so we don't waste time - testing `translate' inside the loop. */ - if (translate) - { - do - { - PREFETCH (); -#ifdef WCHAR - if (*d <= 0xff) - { - if ((UCHAR_T) translate[(unsigned char) *d++] - != (UCHAR_T) *p++) - goto fail; - } - else - { - if (*d++ != (CHAR_T) *p++) - goto fail; - } -#else - if ((UCHAR_T) translate[(unsigned char) *d++] - != (UCHAR_T) *p++) - goto fail; -#endif /* WCHAR */ - } - while (--mcnt); - } - else - { - do - { - PREFETCH (); - if (*d++ != (CHAR_T) *p++) goto fail; - } - while (--mcnt); - } - SET_REGS_MATCHED (); - NEXT; - - - /* Match any character except possibly a newline or a null. */ - CASE (anychar): - DEBUG_PRINT1 ("EXECUTING anychar.\n"); - - PREFETCH (); - - if ((!(bufp->syntax & RE_DOT_NEWLINE) && TRANSLATE (*d) == '\n') - || (bufp->syntax & RE_DOT_NOT_NULL && TRANSLATE (*d) == '\000')) - goto fail; - - SET_REGS_MATCHED (); - DEBUG_PRINT2 (" Matched `%ld'.\n", (long int) *d); - d++; - NEXT; - - - CASE (charset): - CASE (charset_not): - { - register UCHAR_T c; -#ifdef WCHAR - unsigned int i, char_class_length, coll_symbol_length, - equiv_class_length, ranges_length, chars_length, length; - CHAR_T *workp, *workp2, *charset_top; -#define WORK_BUFFER_SIZE 128 - CHAR_T str_buf[WORK_BUFFER_SIZE]; -# ifdef _LIBC - uint32_t nrules; -# endif /* _LIBC */ -#endif /* WCHAR */ - boolean not = (re_opcode_t) *(p - 1) == charset_not; - - DEBUG_PRINT2 ("EXECUTING charset%s.\n", not ? "_not" : ""); - PREFETCH (); - c = TRANSLATE (*d); /* The character to match. */ -#ifdef WCHAR -# ifdef _LIBC - nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); -# endif /* _LIBC */ - charset_top = p - 1; - char_class_length = *p++; - coll_symbol_length = *p++; - equiv_class_length = *p++; - ranges_length = *p++; - chars_length = *p++; - /* p points charset[6], so the address of the next instruction - (charset[l+m+n+2o+k+p']) equals p[l+m+n+2*o+p'], - where l=length of char_classes, m=length of collating_symbol, - n=equivalence_class, o=length of char_range, - p'=length of character. */ - workp = p; - /* Update p to indicate the next instruction. */ - p += char_class_length + coll_symbol_length+ equiv_class_length + - 2*ranges_length + chars_length; - - /* match with char_class? */ - for (i = 0; i < char_class_length ; i += CHAR_CLASS_SIZE) - { - wctype_t wctype; - uintptr_t alignedp = ((uintptr_t)workp - + __alignof__(wctype_t) - 1) - & ~(uintptr_t)(__alignof__(wctype_t) - 1); - wctype = *((wctype_t*)alignedp); - workp += CHAR_CLASS_SIZE; - if (iswctype((wint_t)c, wctype)) - goto char_set_matched; - } - - /* match with collating_symbol? */ -# ifdef _LIBC - if (nrules != 0) - { - const unsigned char *extra = (const unsigned char *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB); - - for (workp2 = workp + coll_symbol_length ; workp < workp2 ; - workp++) - { - int32_t *wextra; - wextra = (int32_t*)(extra + *workp++); - for (i = 0; i < *wextra; ++i) - if (TRANSLATE(d[i]) != wextra[1 + i]) - break; - - if (i == *wextra) - { - /* Update d, however d will be incremented at - char_set_matched:, we decrement d here. */ - d += i - 1; - goto char_set_matched; - } - } - } - else /* (nrules == 0) */ -# endif - /* If we can't look up collation data, we use wcscoll - instead. */ - { - for (workp2 = workp + coll_symbol_length ; workp < workp2 ;) - { - const CHAR_T *backup_d = d, *backup_dend = dend; - length = wcslen (workp); - - /* If wcscoll(the collating symbol, whole string) > 0, - any substring of the string never match with the - collating symbol. */ - if (wcscoll (workp, d) > 0) - { - workp += length + 1; - continue; - } - - /* First, we compare the collating symbol with - the first character of the string. - If it don't match, we add the next character to - the compare buffer in turn. */ - for (i = 0 ; i < WORK_BUFFER_SIZE-1 ; i++, d++) - { - int match; - if (d == dend) - { - if (dend == end_match_2) - break; - d = string2; - dend = end_match_2; - } - - /* add next character to the compare buffer. */ - str_buf[i] = TRANSLATE(*d); - str_buf[i+1] = '\0'; - - match = wcscoll (workp, str_buf); - if (match == 0) - goto char_set_matched; - - if (match < 0) - /* (str_buf > workp) indicate (str_buf + X > workp), - because for all X (str_buf + X > str_buf). - So we don't need continue this loop. */ - break; - - /* Otherwise(str_buf < workp), - (str_buf+next_character) may equals (workp). - So we continue this loop. */ - } - /* not matched */ - d = backup_d; - dend = backup_dend; - workp += length + 1; - } - } - /* match with equivalence_class? */ -# ifdef _LIBC - if (nrules != 0) - { - const CHAR_T *backup_d = d, *backup_dend = dend; - /* Try to match the equivalence class against - those known to the collate implementation. */ - const int32_t *table; - const int32_t *weights; - const int32_t *extra; - const int32_t *indirect; - int32_t idx, idx2; - wint_t *cp; - size_t len; - - /* This #include defines a local function! */ -# include - - table = (const int32_t *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEWC); - weights = (const wint_t *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_WEIGHTWC); - extra = (const wint_t *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAWC); - indirect = (const int32_t *) - _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTWC); - - /* Write 1 collating element to str_buf, and - get its index. */ - idx2 = 0; - - for (i = 0 ; idx2 == 0 && i < WORK_BUFFER_SIZE - 1; i++) - { - cp = (wint_t*)str_buf; - if (d == dend) - { - if (dend == end_match_2) - break; - d = string2; - dend = end_match_2; - } - str_buf[i] = TRANSLATE(*(d+i)); - str_buf[i+1] = '\0'; /* sentinel */ - idx2 = findidx ((const wint_t**)&cp); - } - - /* Update d, however d will be incremented at - char_set_matched:, we decrement d here. */ - d = backup_d + ((wchar_t*)cp - (wchar_t*)str_buf - 1); - if (d >= dend) - { - if (dend == end_match_2) - d = dend; - else - { - d = string2; - dend = end_match_2; - } - } - - len = weights[idx2]; - - for (workp2 = workp + equiv_class_length ; workp < workp2 ; - workp++) - { - idx = (int32_t)*workp; - /* We already checked idx != 0 in regex_compile. */ - - if (idx2 != 0 && len == weights[idx]) - { - int cnt = 0; - while (cnt < len && (weights[idx + 1 + cnt] - == weights[idx2 + 1 + cnt])) - ++cnt; - - if (cnt == len) - goto char_set_matched; - } - } - /* not matched */ - d = backup_d; - dend = backup_dend; - } - else /* (nrules == 0) */ -# endif - /* If we can't look up collation data, we use wcscoll - instead. */ - { - for (workp2 = workp + equiv_class_length ; workp < workp2 ;) - { - const CHAR_T *backup_d = d, *backup_dend = dend; - length = wcslen (workp); - - /* If wcscoll(the collating symbol, whole string) > 0, - any substring of the string never match with the - collating symbol. */ - if (wcscoll (workp, d) > 0) - { - workp += length + 1; - break; - } - - /* First, we compare the equivalence class with - the first character of the string. - If it don't match, we add the next character to - the compare buffer in turn. */ - for (i = 0 ; i < WORK_BUFFER_SIZE - 1 ; i++, d++) - { - int match; - if (d == dend) - { - if (dend == end_match_2) - break; - d = string2; - dend = end_match_2; - } - - /* add next character to the compare buffer. */ - str_buf[i] = TRANSLATE(*d); - str_buf[i+1] = '\0'; - - match = wcscoll (workp, str_buf); - - if (match == 0) - goto char_set_matched; - - if (match < 0) - /* (str_buf > workp) indicate (str_buf + X > workp), - because for all X (str_buf + X > str_buf). - So we don't need continue this loop. */ - break; - - /* Otherwise(str_buf < workp), - (str_buf+next_character) may equals (workp). - So we continue this loop. */ - } - /* not matched */ - d = backup_d; - dend = backup_dend; - workp += length + 1; - } - } - - /* match with char_range? */ -# ifdef _LIBC - if (nrules != 0) - { - uint32_t collseqval; - const char *collseq = (const char *) - _NL_CURRENT(LC_COLLATE, _NL_COLLATE_COLLSEQWC); - - collseqval = collseq_table_lookup (collseq, c); - - for (; workp < p - chars_length ;) - { - uint32_t start_val, end_val; - - /* We already compute the collation sequence value - of the characters (or collating symbols). */ - start_val = (uint32_t) *workp++; /* range_start */ - end_val = (uint32_t) *workp++; /* range_end */ - - if (start_val <= collseqval && collseqval <= end_val) - goto char_set_matched; - } - } - else -# endif - { - /* We set range_start_char at str_buf[0], range_end_char - at str_buf[4], and compared char at str_buf[2]. */ - str_buf[1] = 0; - str_buf[2] = c; - str_buf[3] = 0; - str_buf[5] = 0; - for (; workp < p - chars_length ;) - { - wchar_t *range_start_char, *range_end_char; - - /* match if (range_start_char <= c <= range_end_char). */ - - /* If range_start(or end) < 0, we assume -range_start(end) - is the offset of the collating symbol which is specified - as the character of the range start(end). */ - - /* range_start */ - if (*workp < 0) - range_start_char = charset_top - (*workp++); - else - { - str_buf[0] = *workp++; - range_start_char = str_buf; - } - - /* range_end */ - if (*workp < 0) - range_end_char = charset_top - (*workp++); - else - { - str_buf[4] = *workp++; - range_end_char = str_buf + 4; - } - - if (wcscoll (range_start_char, str_buf+2) <= 0 - && wcscoll (str_buf+2, range_end_char) <= 0) - goto char_set_matched; - } - } - - /* match with char? */ - for (; workp < p ; workp++) - if (c == *workp) - goto char_set_matched; - - not = !not; - - char_set_matched: - if (not) goto fail; -#else - /* Cast to `unsigned' instead of `unsigned char' in case the - bit list is a full 32 bytes long. */ - if (c < (unsigned) (*p * BYTEWIDTH) - && p[1 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH))) - not = !not; - - p += 1 + *p; - - if (!not) goto fail; -#undef WORK_BUFFER_SIZE -#endif /* WCHAR */ - SET_REGS_MATCHED (); - d++; - NEXT; - } - - - /* The beginning of a group is represented by start_memory. - The arguments are the register number in the next byte, and the - number of groups inner to this one in the next. The text - matched within the group is recorded (in the internal - registers data structure) under the register number. */ - CASE (start_memory): - DEBUG_PRINT3 ("EXECUTING start_memory %ld (%ld):\n", - (long int) *p, (long int) p[1]); - - /* Find out if this group can match the empty string. */ - p1 = p; /* To send to group_match_null_string_p. */ - - if (REG_MATCH_NULL_STRING_P (reg_info[*p]) == MATCH_NULL_UNSET_VALUE) - REG_MATCH_NULL_STRING_P (reg_info[*p]) - = PREFIX(group_match_null_string_p) (&p1, pend, reg_info); - - /* Save the position in the string where we were the last time - we were at this open-group operator in case the group is - operated upon by a repetition operator, e.g., with `(a*)*b' - against `ab'; then we want to ignore where we are now in - the string in case this attempt to match fails. */ - old_regstart[*p] = REG_MATCH_NULL_STRING_P (reg_info[*p]) - ? REG_UNSET (regstart[*p]) ? d : regstart[*p] - : regstart[*p]; - DEBUG_PRINT2 (" old_regstart: %d\n", - POINTER_TO_OFFSET (old_regstart[*p])); - - regstart[*p] = d; - DEBUG_PRINT2 (" regstart: %d\n", POINTER_TO_OFFSET (regstart[*p])); - - IS_ACTIVE (reg_info[*p]) = 1; - MATCHED_SOMETHING (reg_info[*p]) = 0; - - /* Clear this whenever we change the register activity status. */ - set_regs_matched_done = 0; - - /* This is the new highest active register. */ - highest_active_reg = *p; - - /* If nothing was active before, this is the new lowest active - register. */ - if (lowest_active_reg == NO_LOWEST_ACTIVE_REG) - lowest_active_reg = *p; - - /* Move past the register number and inner group count. */ - p += 2; - just_past_start_mem = p; - - NEXT; - - - /* The stop_memory opcode represents the end of a group. Its - arguments are the same as start_memory's: the register - number, and the number of inner groups. */ - CASE (stop_memory): - DEBUG_PRINT3 ("EXECUTING stop_memory %ld (%ld):\n", - (long int) *p, (long int) p[1]); - - /* We need to save the string position the last time we were at - this close-group operator in case the group is operated - upon by a repetition operator, e.g., with `((a*)*(b*)*)*' - against `aba'; then we want to ignore where we are now in - the string in case this attempt to match fails. */ - old_regend[*p] = REG_MATCH_NULL_STRING_P (reg_info[*p]) - ? REG_UNSET (regend[*p]) ? d : regend[*p] - : regend[*p]; - DEBUG_PRINT2 (" old_regend: %d\n", - POINTER_TO_OFFSET (old_regend[*p])); - - regend[*p] = d; - DEBUG_PRINT2 (" regend: %d\n", POINTER_TO_OFFSET (regend[*p])); - - /* This register isn't active anymore. */ - IS_ACTIVE (reg_info[*p]) = 0; - - /* Clear this whenever we change the register activity status. */ - set_regs_matched_done = 0; - - /* If this was the only register active, nothing is active - anymore. */ - if (lowest_active_reg == highest_active_reg) - { - lowest_active_reg = NO_LOWEST_ACTIVE_REG; - highest_active_reg = NO_HIGHEST_ACTIVE_REG; - } - else - { /* We must scan for the new highest active register, since - it isn't necessarily one less than now: consider - (a(b)c(d(e)f)g). When group 3 ends, after the f), the - new highest active register is 1. */ - UCHAR_T r = *p - 1; - while (r > 0 && !IS_ACTIVE (reg_info[r])) - r--; - - /* If we end up at register zero, that means that we saved - the registers as the result of an `on_failure_jump', not - a `start_memory', and we jumped to past the innermost - `stop_memory'. For example, in ((.)*) we save - registers 1 and 2 as a result of the *, but when we pop - back to the second ), we are at the stop_memory 1. - Thus, nothing is active. */ - if (r == 0) - { - lowest_active_reg = NO_LOWEST_ACTIVE_REG; - highest_active_reg = NO_HIGHEST_ACTIVE_REG; - } - else - highest_active_reg = r; - } - - /* If just failed to match something this time around with a - group that's operated on by a repetition operator, try to - force exit from the ``loop'', and restore the register - information for this group that we had before trying this - last match. */ - if ((!MATCHED_SOMETHING (reg_info[*p]) - || just_past_start_mem == p - 1) - && (p + 2) < pend) - { - boolean is_a_jump_n = false; - - p1 = p + 2; - mcnt = 0; - switch ((re_opcode_t) *p1++) - { - case jump_n: - is_a_jump_n = true; - case pop_failure_jump: - case maybe_pop_jump: - case jump: - case dummy_failure_jump: - EXTRACT_NUMBER_AND_INCR (mcnt, p1); - if (is_a_jump_n) - p1 += OFFSET_ADDRESS_SIZE; - break; - - default: - /* do nothing */ ; - } - p1 += mcnt; - - /* If the next operation is a jump backwards in the pattern - to an on_failure_jump right before the start_memory - corresponding to this stop_memory, exit from the loop - by forcing a failure after pushing on the stack the - on_failure_jump's jump in the pattern, and d. */ - if (mcnt < 0 && (re_opcode_t) *p1 == on_failure_jump - && (re_opcode_t) p1[1+OFFSET_ADDRESS_SIZE] == start_memory - && p1[2+OFFSET_ADDRESS_SIZE] == *p) - { - /* If this group ever matched anything, then restore - what its registers were before trying this last - failed match, e.g., with `(a*)*b' against `ab' for - regstart[1], and, e.g., with `((a*)*(b*)*)*' - against `aba' for regend[3]. - - Also restore the registers for inner groups for, - e.g., `((a*)(b*))*' against `aba' (register 3 would - otherwise get trashed). */ - - if (EVER_MATCHED_SOMETHING (reg_info[*p])) - { - unsigned r; - - EVER_MATCHED_SOMETHING (reg_info[*p]) = 0; - - /* Restore this and inner groups' (if any) registers. */ - for (r = *p; r < (unsigned) *p + (unsigned) *(p + 1); - r++) - { - regstart[r] = old_regstart[r]; - - /* xx why this test? */ - if (old_regend[r] >= regstart[r]) - regend[r] = old_regend[r]; - } - } - p1++; - EXTRACT_NUMBER_AND_INCR (mcnt, p1); - PUSH_FAILURE_POINT (p1 + mcnt, d, -2); - - goto fail; - } - } - - /* Move past the register number and the inner group count. */ - p += 2; - NEXT; - - - /* \ has been turned into a `duplicate' command which is - followed by the numeric value of as the register number. */ - CASE (duplicate): - { - register const CHAR_T *d2, *dend2; - int regno = *p++; /* Get which register to match against. */ - DEBUG_PRINT2 ("EXECUTING duplicate %d.\n", regno); - - /* Can't back reference a group which we've never matched. */ - if (REG_UNSET (regstart[regno]) || REG_UNSET (regend[regno])) - goto fail; - - /* Where in input to try to start matching. */ - d2 = regstart[regno]; - - /* Where to stop matching; if both the place to start and - the place to stop matching are in the same string, then - set to the place to stop, otherwise, for now have to use - the end of the first string. */ - - dend2 = ((FIRST_STRING_P (regstart[regno]) - == FIRST_STRING_P (regend[regno])) - ? regend[regno] : end_match_1); - for (;;) - { - /* If necessary, advance to next segment in register - contents. */ - while (d2 == dend2) - { - if (dend2 == end_match_2) break; - if (dend2 == regend[regno]) break; - - /* End of string1 => advance to string2. */ - d2 = string2; - dend2 = regend[regno]; - } - /* At end of register contents => success */ - if (d2 == dend2) break; - - /* If necessary, advance to next segment in data. */ - PREFETCH (); - - /* How many characters left in this segment to match. */ - mcnt = dend - d; - - /* Want how many consecutive characters we can match in - one shot, so, if necessary, adjust the count. */ - if (mcnt > dend2 - d2) - mcnt = dend2 - d2; - - /* Compare that many; failure if mismatch, else move - past them. */ - if (translate - ? PREFIX(bcmp_translate) (d, d2, mcnt, translate) - : memcmp (d, d2, mcnt*sizeof(UCHAR_T))) - goto fail; - d += mcnt, d2 += mcnt; - - /* Do this because we've match some characters. */ - SET_REGS_MATCHED (); - } - } - NEXT; - - - /* begline matches the empty string at the beginning of the string - (unless `not_bol' is set in `bufp'), and, if - `newline_anchor' is set, after newlines. */ - CASE (begline): - DEBUG_PRINT1 ("EXECUTING begline.\n"); - - if (AT_STRINGS_BEG (d)) - { - if (!bufp->not_bol) - { - NEXT; - } - } - else if (d[-1] == '\n' && bufp->newline_anchor) - { - NEXT; - } - /* In all other cases, we fail. */ - goto fail; - - - /* endline is the dual of begline. */ - CASE (endline): - DEBUG_PRINT1 ("EXECUTING endline.\n"); - - if (AT_STRINGS_END (d)) - { - if (!bufp->not_eol) - { - NEXT; - } - } - - /* We have to ``prefetch'' the next character. */ - else if ((d == end1 ? *string2 : *d) == '\n' - && bufp->newline_anchor) - { - NEXT; - } - goto fail; - - - /* Match at the very beginning of the data. */ - CASE (begbuf): - DEBUG_PRINT1 ("EXECUTING begbuf.\n"); - if (AT_STRINGS_BEG (d)) - { - NEXT; - } - goto fail; - - - /* Match at the very end of the data. */ - CASE (endbuf): - DEBUG_PRINT1 ("EXECUTING endbuf.\n"); - if (AT_STRINGS_END (d)) - { - NEXT; - } - goto fail; - - - /* on_failure_keep_string_jump is used to optimize `.*\n'. It - pushes NULL as the value for the string on the stack. Then - `pop_failure_point' will keep the current value for the - string, instead of restoring it. To see why, consider - matching `foo\nbar' against `.*\n'. The .* matches the foo; - then the . fails against the \n. But the next thing we want - to do is match the \n against the \n; if we restored the - string value, we would be back at the foo. - - Because this is used only in specific cases, we don't need to - check all the things that `on_failure_jump' does, to make - sure the right things get saved on the stack. Hence we don't - share its code. The only reason to push anything on the - stack at all is that otherwise we would have to change - `anychar's code to do something besides goto fail in this - case; that seems worse than this. */ - CASE (on_failure_keep_string_jump): - DEBUG_PRINT1 ("EXECUTING on_failure_keep_string_jump"); - - EXTRACT_NUMBER_AND_INCR (mcnt, p); -#ifdef _LIBC - DEBUG_PRINT3 (" %d (to %p):\n", mcnt, p + mcnt); -#else - DEBUG_PRINT3 (" %d (to 0x%x):\n", mcnt, p + mcnt); -#endif - - PUSH_FAILURE_POINT (p + mcnt, NULL, -2); - NEXT; - - - /* Uses of on_failure_jump: - - Each alternative starts with an on_failure_jump that points - to the beginning of the next alternative. Each alternative - except the last ends with a jump that in effect jumps past - the rest of the alternatives. (They really jump to the - ending jump of the following alternative, because tensioning - these jumps is a hassle.) - - Repeats start with an on_failure_jump that points past both - the repetition text and either the following jump or - pop_failure_jump back to this on_failure_jump. */ - CASE (on_failure_jump): - on_failure: - DEBUG_PRINT1 ("EXECUTING on_failure_jump"); - - EXTRACT_NUMBER_AND_INCR (mcnt, p); -#ifdef _LIBC - DEBUG_PRINT3 (" %d (to %p)", mcnt, p + mcnt); -#else - DEBUG_PRINT3 (" %d (to 0x%x)", mcnt, p + mcnt); -#endif - - /* If this on_failure_jump comes right before a group (i.e., - the original * applied to a group), save the information - for that group and all inner ones, so that if we fail back - to this point, the group's information will be correct. - For example, in \(a*\)*\1, we need the preceding group, - and in \(zz\(a*\)b*\)\2, we need the inner group. */ - - /* We can't use `p' to check ahead because we push - a failure point to `p + mcnt' after we do this. */ - p1 = p; - - /* We need to skip no_op's before we look for the - start_memory in case this on_failure_jump is happening as - the result of a completed succeed_n, as in \(a\)\{1,3\}b\1 - against aba. */ - while (p1 < pend && (re_opcode_t) *p1 == no_op) - p1++; - - if (p1 < pend && (re_opcode_t) *p1 == start_memory) - { - /* We have a new highest active register now. This will - get reset at the start_memory we are about to get to, - but we will have saved all the registers relevant to - this repetition op, as described above. */ - highest_active_reg = *(p1 + 1) + *(p1 + 2); - if (lowest_active_reg == NO_LOWEST_ACTIVE_REG) - lowest_active_reg = *(p1 + 1); - } - - DEBUG_PRINT1 (":\n"); - PUSH_FAILURE_POINT (p + mcnt, d, -2); - NEXT; - - - /* A smart repeat ends with `maybe_pop_jump'. - We change it to either `pop_failure_jump' or `jump'. */ - CASE (maybe_pop_jump): - EXTRACT_NUMBER_AND_INCR (mcnt, p); - DEBUG_PRINT2 ("EXECUTING maybe_pop_jump %d.\n", mcnt); - { - register UCHAR_T *p2 = p; - - /* Compare the beginning of the repeat with what in the - pattern follows its end. If we can establish that there - is nothing that they would both match, i.e., that we - would have to backtrack because of (as in, e.g., `a*a') - then we can change to pop_failure_jump, because we'll - never have to backtrack. - - This is not true in the case of alternatives: in - `(a|ab)*' we do need to backtrack to the `ab' alternative - (e.g., if the string was `ab'). But instead of trying to - detect that here, the alternative has put on a dummy - failure point which is what we will end up popping. */ - - /* Skip over open/close-group commands. - If what follows this loop is a ...+ construct, - look at what begins its body, since we will have to - match at least one of that. */ - while (1) - { - if (p2 + 2 < pend - && ((re_opcode_t) *p2 == stop_memory - || (re_opcode_t) *p2 == start_memory)) - p2 += 3; - else if (p2 + 2 + 2 * OFFSET_ADDRESS_SIZE < pend - && (re_opcode_t) *p2 == dummy_failure_jump) - p2 += 2 + 2 * OFFSET_ADDRESS_SIZE; - else - break; - } - - p1 = p + mcnt; - /* p1[0] ... p1[2] are the `on_failure_jump' corresponding - to the `maybe_finalize_jump' of this case. Examine what - follows. */ - - /* If we're at the end of the pattern, we can change. */ - if (p2 == pend) - { - /* Consider what happens when matching ":\(.*\)" - against ":/". I don't really understand this code - yet. */ - p[-(1+OFFSET_ADDRESS_SIZE)] = (UCHAR_T) - pop_failure_jump; - DEBUG_PRINT1 - (" End of pattern: change to `pop_failure_jump'.\n"); - } - - else if ((re_opcode_t) *p2 == exactn -#ifdef MBS_SUPPORT - || (re_opcode_t) *p2 == exactn_bin -#endif - || (bufp->newline_anchor && (re_opcode_t) *p2 == endline)) - { - register UCHAR_T c - = *p2 == (UCHAR_T) endline ? '\n' : p2[2]; - - if (((re_opcode_t) p1[1+OFFSET_ADDRESS_SIZE] == exactn -#ifdef MBS_SUPPORT - || (re_opcode_t) p1[1+OFFSET_ADDRESS_SIZE] == exactn_bin -#endif - ) && p1[3+OFFSET_ADDRESS_SIZE] != c) - { - p[-(1+OFFSET_ADDRESS_SIZE)] = (UCHAR_T) - pop_failure_jump; -#ifdef WCHAR - DEBUG_PRINT3 (" %C != %C => pop_failure_jump.\n", - (wint_t) c, - (wint_t) p1[3+OFFSET_ADDRESS_SIZE]); -#else - DEBUG_PRINT3 (" %c != %c => pop_failure_jump.\n", - (char) c, - (char) p1[3+OFFSET_ADDRESS_SIZE]); -#endif - } - -#ifndef WCHAR - else if ((re_opcode_t) p1[3] == charset - || (re_opcode_t) p1[3] == charset_not) - { - int not = (re_opcode_t) p1[3] == charset_not; - - if (c < (unsigned) (p1[4] * BYTEWIDTH) - && p1[5 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH))) - not = !not; - - /* `not' is equal to 1 if c would match, which means - that we can't change to pop_failure_jump. */ - if (!not) - { - p[-3] = (unsigned char) pop_failure_jump; - DEBUG_PRINT1 (" No match => pop_failure_jump.\n"); - } - } -#endif /* not WCHAR */ - } -#ifndef WCHAR - else if ((re_opcode_t) *p2 == charset) - { - /* We win if the first character of the loop is not part - of the charset. */ - if ((re_opcode_t) p1[3] == exactn - && ! ((int) p2[1] * BYTEWIDTH > (int) p1[5] - && (p2[2 + p1[5] / BYTEWIDTH] - & (1 << (p1[5] % BYTEWIDTH))))) - { - p[-3] = (unsigned char) pop_failure_jump; - DEBUG_PRINT1 (" No match => pop_failure_jump.\n"); - } - - else if ((re_opcode_t) p1[3] == charset_not) - { - int idx; - /* We win if the charset_not inside the loop - lists every character listed in the charset after. */ - for (idx = 0; idx < (int) p2[1]; idx++) - if (! (p2[2 + idx] == 0 - || (idx < (int) p1[4] - && ((p2[2 + idx] & ~ p1[5 + idx]) == 0)))) - break; - - if (idx == p2[1]) - { - p[-3] = (unsigned char) pop_failure_jump; - DEBUG_PRINT1 (" No match => pop_failure_jump.\n"); - } - } - else if ((re_opcode_t) p1[3] == charset) - { - int idx; - /* We win if the charset inside the loop - has no overlap with the one after the loop. */ - for (idx = 0; - idx < (int) p2[1] && idx < (int) p1[4]; - idx++) - if ((p2[2 + idx] & p1[5 + idx]) != 0) - break; - - if (idx == p2[1] || idx == p1[4]) - { - p[-3] = (unsigned char) pop_failure_jump; - DEBUG_PRINT1 (" No match => pop_failure_jump.\n"); - } - } - } -#endif /* not WCHAR */ - } - p -= OFFSET_ADDRESS_SIZE; /* Point at relative address again. */ - if ((re_opcode_t) p[-1] != pop_failure_jump) - { - p[-1] = (UCHAR_T) jump; - DEBUG_PRINT1 (" Match => jump.\n"); - goto unconditional_jump; - } - /* Note fall through. */ - - - /* The end of a simple repeat has a pop_failure_jump back to - its matching on_failure_jump, where the latter will push a - failure point. The pop_failure_jump takes off failure - points put on by this pop_failure_jump's matching - on_failure_jump; we got through the pattern to here from the - matching on_failure_jump, so didn't fail. */ - CASE (pop_failure_jump): - { - /* We need to pass separate storage for the lowest and - highest registers, even though we don't care about the - actual values. Otherwise, we will restore only one - register from the stack, since lowest will == highest in - `pop_failure_point'. */ - active_reg_t dummy_low_reg, dummy_high_reg; - UCHAR_T *pdummy = NULL; - const CHAR_T *sdummy = NULL; - - DEBUG_PRINT1 ("EXECUTING pop_failure_jump.\n"); - POP_FAILURE_POINT (sdummy, pdummy, - dummy_low_reg, dummy_high_reg, - reg_dummy, reg_dummy, reg_info_dummy); - } - /* Note fall through. */ - - unconditional_jump: -#ifdef _LIBC - DEBUG_PRINT2 ("\n%p: ", p); -#else - DEBUG_PRINT2 ("\n0x%x: ", p); -#endif - /* Note fall through. */ - - /* Unconditionally jump (without popping any failure points). */ - CASE (jump): - EXTRACT_NUMBER_AND_INCR (mcnt, p); /* Get the amount to jump. */ - DEBUG_PRINT2 ("EXECUTING jump %d ", mcnt); - p += mcnt; /* Do the jump. */ -#ifdef _LIBC - DEBUG_PRINT2 ("(to %p).\n", p); -#else - DEBUG_PRINT2 ("(to 0x%x).\n", p); -#endif - NEXT; - - - /* We need this opcode so we can detect where alternatives end - in `group_match_null_string_p' et al. */ - CASE (jump_past_alt): - DEBUG_PRINT1 ("EXECUTING jump_past_alt.\n"); - goto unconditional_jump; - - - /* Normally, the on_failure_jump pushes a failure point, which - then gets popped at pop_failure_jump. We will end up at - pop_failure_jump, also, and with a pattern of, say, `a+', we - are skipping over the on_failure_jump, so we have to push - something meaningless for pop_failure_jump to pop. */ - CASE (dummy_failure_jump): - DEBUG_PRINT1 ("EXECUTING dummy_failure_jump.\n"); - /* It doesn't matter what we push for the string here. What - the code at `fail' tests is the value for the pattern. */ - PUSH_FAILURE_POINT (NULL, NULL, -2); - goto unconditional_jump; - - - /* At the end of an alternative, we need to push a dummy failure - point in case we are followed by a `pop_failure_jump', because - we don't want the failure point for the alternative to be - popped. For example, matching `(a|ab)*' against `aab' - requires that we match the `ab' alternative. */ - CASE (push_dummy_failure): - DEBUG_PRINT1 ("EXECUTING push_dummy_failure.\n"); - /* See comments just above at `dummy_failure_jump' about the - two zeroes. */ - PUSH_FAILURE_POINT (NULL, NULL, -2); - NEXT; - - /* Have to succeed matching what follows at least n times. - After that, handle like `on_failure_jump'. */ - CASE (succeed_n): - EXTRACT_NUMBER (mcnt, p + OFFSET_ADDRESS_SIZE); - DEBUG_PRINT2 ("EXECUTING succeed_n %d.\n", mcnt); - - assert (mcnt >= 0); - /* Originally, this is how many times we HAVE to succeed. */ - if (mcnt > 0) - { - mcnt--; - p += OFFSET_ADDRESS_SIZE; - STORE_NUMBER_AND_INCR (p, mcnt); -#ifdef _LIBC - DEBUG_PRINT3 (" Setting %p to %d.\n", p - OFFSET_ADDRESS_SIZE - , mcnt); -#else - DEBUG_PRINT3 (" Setting 0x%x to %d.\n", p - OFFSET_ADDRESS_SIZE - , mcnt); -#endif - } - else if (mcnt == 0) - { -#ifdef _LIBC - DEBUG_PRINT2 (" Setting two bytes from %p to no_op.\n", - p + OFFSET_ADDRESS_SIZE); -#else - DEBUG_PRINT2 (" Setting two bytes from 0x%x to no_op.\n", - p + OFFSET_ADDRESS_SIZE); -#endif /* _LIBC */ - -#ifdef WCHAR - p[1] = (UCHAR_T) no_op; -#else - p[2] = (UCHAR_T) no_op; - p[3] = (UCHAR_T) no_op; -#endif /* WCHAR */ - goto on_failure; - } - NEXT; - - CASE (jump_n): - EXTRACT_NUMBER (mcnt, p + OFFSET_ADDRESS_SIZE); - DEBUG_PRINT2 ("EXECUTING jump_n %d.\n", mcnt); - - /* Originally, this is how many times we CAN jump. */ - if (mcnt) - { - mcnt--; - STORE_NUMBER (p + OFFSET_ADDRESS_SIZE, mcnt); - -#ifdef _LIBC - DEBUG_PRINT3 (" Setting %p to %d.\n", p + OFFSET_ADDRESS_SIZE, - mcnt); -#else - DEBUG_PRINT3 (" Setting 0x%x to %d.\n", p + OFFSET_ADDRESS_SIZE, - mcnt); -#endif /* _LIBC */ - goto unconditional_jump; - } - /* If don't have to jump any more, skip over the rest of command. */ - else - p += 2 * OFFSET_ADDRESS_SIZE; - NEXT; - - CASE (set_number_at): - { - DEBUG_PRINT1 ("EXECUTING set_number_at.\n"); - - EXTRACT_NUMBER_AND_INCR (mcnt, p); - p1 = p + mcnt; - EXTRACT_NUMBER_AND_INCR (mcnt, p); -#ifdef _LIBC - DEBUG_PRINT3 (" Setting %p to %d.\n", p1, mcnt); -#else - DEBUG_PRINT3 (" Setting 0x%x to %d.\n", p1, mcnt); -#endif - STORE_NUMBER (p1, mcnt); - NEXT; - } - -#if 0 - /* The DEC Alpha C compiler 3.x generates incorrect code for the - test WORDCHAR_P (d - 1) != WORDCHAR_P (d) in the expansion of - AT_WORD_BOUNDARY, so this code is disabled. Expanding the - macro and introducing temporary variables works around the bug. */ - - CASE (wordbound): - DEBUG_PRINT1 ("EXECUTING wordbound.\n"); - if (AT_WORD_BOUNDARY (d)) - { - NEXT; - } - goto fail; - - CASE (notwordbound): - DEBUG_PRINT1 ("EXECUTING notwordbound.\n"); - if (AT_WORD_BOUNDARY (d)) - goto fail; - NEXT; -#else - CASE (wordbound): - { - boolean prevchar, thischar; - - DEBUG_PRINT1 ("EXECUTING wordbound.\n"); - if (AT_STRINGS_BEG (d) || AT_STRINGS_END (d)) - { - NEXT; - } - - prevchar = WORDCHAR_P (d - 1); - thischar = WORDCHAR_P (d); - if (prevchar != thischar) - { - NEXT; - } - goto fail; - } - - CASE (notwordbound): - { - boolean prevchar, thischar; - - DEBUG_PRINT1 ("EXECUTING notwordbound.\n"); - if (AT_STRINGS_BEG (d) || AT_STRINGS_END (d)) - goto fail; - - prevchar = WORDCHAR_P (d - 1); - thischar = WORDCHAR_P (d); - if (prevchar != thischar) - goto fail; - NEXT; - } -#endif - - CASE (wordbeg): - DEBUG_PRINT1 ("EXECUTING wordbeg.\n"); - if (!AT_STRINGS_END (d) && WORDCHAR_P (d) - && (AT_STRINGS_BEG (d) || !WORDCHAR_P (d - 1))) - { - NEXT; - } - goto fail; - - CASE (wordend): - DEBUG_PRINT1 ("EXECUTING wordend.\n"); - if (!AT_STRINGS_BEG (d) && WORDCHAR_P (d - 1) - && (AT_STRINGS_END (d) || !WORDCHAR_P (d))) - { - NEXT; - } - goto fail; - -#ifdef emacs - CASE (before_dot): - DEBUG_PRINT1 ("EXECUTING before_dot.\n"); - if (PTR_CHAR_POS ((unsigned char *) d) >= point) - goto fail; - NEXT; - - CASE (at_dot): - DEBUG_PRINT1 ("EXECUTING at_dot.\n"); - if (PTR_CHAR_POS ((unsigned char *) d) != point) - goto fail; - NEXT; - - CASE (after_dot): - DEBUG_PRINT1 ("EXECUTING after_dot.\n"); - if (PTR_CHAR_POS ((unsigned char *) d) <= point) - goto fail; - NEXT; - - CASE (syntaxspec): - DEBUG_PRINT2 ("EXECUTING syntaxspec %d.\n", mcnt); - mcnt = *p++; - goto matchsyntax; - - CASE (wordchar): - DEBUG_PRINT1 ("EXECUTING Emacs wordchar.\n"); - mcnt = (int) Sword; - matchsyntax: - PREFETCH (); - /* Can't use *d++ here; SYNTAX may be an unsafe macro. */ - d++; - if (SYNTAX (d[-1]) != (enum syntaxcode) mcnt) - goto fail; - SET_REGS_MATCHED (); - NEXT; - - CASE (notsyntaxspec): - DEBUG_PRINT2 ("EXECUTING notsyntaxspec %d.\n", mcnt); - mcnt = *p++; - goto matchnotsyntax; - - CASE (notwordchar): - DEBUG_PRINT1 ("EXECUTING Emacs notwordchar.\n"); - mcnt = (int) Sword; - matchnotsyntax: - PREFETCH (); - /* Can't use *d++ here; SYNTAX may be an unsafe macro. */ - d++; - if (SYNTAX (d[-1]) == (enum syntaxcode) mcnt) - goto fail; - SET_REGS_MATCHED (); - NEXT; - -#else /* not emacs */ - CASE (wordchar): - DEBUG_PRINT1 ("EXECUTING non-Emacs wordchar.\n"); - PREFETCH (); - if (!WORDCHAR_P (d)) - goto fail; - SET_REGS_MATCHED (); - d++; - NEXT; - - CASE (notwordchar): - DEBUG_PRINT1 ("EXECUTING non-Emacs notwordchar.\n"); - PREFETCH (); - if (WORDCHAR_P (d)) - goto fail; - SET_REGS_MATCHED (); - d++; - NEXT; -#endif /* not emacs */ - -#ifndef __GNUC__ - default: - abort (); - } - continue; /* Successfully executed one pattern command; keep going. */ -#endif - - - /* We goto here if a matching operation fails. */ - fail: - if (!FAIL_STACK_EMPTY ()) - { /* A restart point is known. Restore to that state. */ - DEBUG_PRINT1 ("\nFAIL:\n"); - POP_FAILURE_POINT (d, p, - lowest_active_reg, highest_active_reg, - regstart, regend, reg_info); - - /* If this failure point is a dummy, try the next one. */ - if (!p) - goto fail; - - /* If we failed to the end of the pattern, don't examine *p. */ - assert (p <= pend); - if (p < pend) - { - boolean is_a_jump_n = false; - - /* If failed to a backwards jump that's part of a repetition - loop, need to pop this failure point and use the next one. */ - switch ((re_opcode_t) *p) - { - case jump_n: - is_a_jump_n = true; - case maybe_pop_jump: - case pop_failure_jump: - case jump: - p1 = p + 1; - EXTRACT_NUMBER_AND_INCR (mcnt, p1); - p1 += mcnt; - - if ((is_a_jump_n && (re_opcode_t) *p1 == succeed_n) - || (!is_a_jump_n - && (re_opcode_t) *p1 == on_failure_jump)) - goto fail; - break; - default: - /* do nothing */ ; - } - } - - if (d >= string1 && d <= end1) - dend = end_match_1; - } - else - break; /* Matching at this starting point really fails. */ - } /* for (;;) */ - - if (best_regs_set) - goto restore_best_regs; - - FREE_VARIABLES (); - - return -1; /* Failure to match. */ -} /* re_match_2 */ - -/* Subroutine definitions for re_match_2. */ - - -/* We are passed P pointing to a register number after a start_memory. - - Return true if the pattern up to the corresponding stop_memory can - match the empty string, and false otherwise. - - If we find the matching stop_memory, sets P to point to one past its number. - Otherwise, sets P to an undefined byte less than or equal to END. - - We don't handle duplicates properly (yet). */ - -static boolean -PREFIX(group_match_null_string_p) (p, end, reg_info) - UCHAR_T **p, *end; - PREFIX(register_info_type) *reg_info; -{ - int mcnt; - /* Point to after the args to the start_memory. */ - UCHAR_T *p1 = *p + 2; - - while (p1 < end) - { - /* Skip over opcodes that can match nothing, and return true or - false, as appropriate, when we get to one that can't, or to the - matching stop_memory. */ - - switch ((re_opcode_t) *p1) - { - /* Could be either a loop or a series of alternatives. */ - case on_failure_jump: - p1++; - EXTRACT_NUMBER_AND_INCR (mcnt, p1); - - /* If the next operation is not a jump backwards in the - pattern. */ - - if (mcnt >= 0) - { - /* Go through the on_failure_jumps of the alternatives, - seeing if any of the alternatives cannot match nothing. - The last alternative starts with only a jump, - whereas the rest start with on_failure_jump and end - with a jump, e.g., here is the pattern for `a|b|c': - - /on_failure_jump/0/6/exactn/1/a/jump_past_alt/0/6 - /on_failure_jump/0/6/exactn/1/b/jump_past_alt/0/3 - /exactn/1/c - - So, we have to first go through the first (n-1) - alternatives and then deal with the last one separately. */ - - - /* Deal with the first (n-1) alternatives, which start - with an on_failure_jump (see above) that jumps to right - past a jump_past_alt. */ - - while ((re_opcode_t) p1[mcnt-(1+OFFSET_ADDRESS_SIZE)] == - jump_past_alt) - { - /* `mcnt' holds how many bytes long the alternative - is, including the ending `jump_past_alt' and - its number. */ - - if (!PREFIX(alt_match_null_string_p) (p1, p1 + mcnt - - (1 + OFFSET_ADDRESS_SIZE), - reg_info)) - return false; - - /* Move to right after this alternative, including the - jump_past_alt. */ - p1 += mcnt; - - /* Break if it's the beginning of an n-th alternative - that doesn't begin with an on_failure_jump. */ - if ((re_opcode_t) *p1 != on_failure_jump) - break; - - /* Still have to check that it's not an n-th - alternative that starts with an on_failure_jump. */ - p1++; - EXTRACT_NUMBER_AND_INCR (mcnt, p1); - if ((re_opcode_t) p1[mcnt-(1+OFFSET_ADDRESS_SIZE)] != - jump_past_alt) - { - /* Get to the beginning of the n-th alternative. */ - p1 -= 1 + OFFSET_ADDRESS_SIZE; - break; - } - } - - /* Deal with the last alternative: go back and get number - of the `jump_past_alt' just before it. `mcnt' contains - the length of the alternative. */ - EXTRACT_NUMBER (mcnt, p1 - OFFSET_ADDRESS_SIZE); - - if (!PREFIX(alt_match_null_string_p) (p1, p1 + mcnt, reg_info)) - return false; - - p1 += mcnt; /* Get past the n-th alternative. */ - } /* if mcnt > 0 */ - break; - - - case stop_memory: - assert (p1[1] == **p); - *p = p1 + 2; - return true; - - - default: - if (!PREFIX(common_op_match_null_string_p) (&p1, end, reg_info)) - return false; - } - } /* while p1 < end */ - - return false; -} /* group_match_null_string_p */ - - -/* Similar to group_match_null_string_p, but doesn't deal with alternatives: - It expects P to be the first byte of a single alternative and END one - byte past the last. The alternative can contain groups. */ - -static boolean -PREFIX(alt_match_null_string_p) (p, end, reg_info) - UCHAR_T *p, *end; - PREFIX(register_info_type) *reg_info; -{ - int mcnt; - UCHAR_T *p1 = p; - - while (p1 < end) - { - /* Skip over opcodes that can match nothing, and break when we get - to one that can't. */ - - switch ((re_opcode_t) *p1) - { - /* It's a loop. */ - case on_failure_jump: - p1++; - EXTRACT_NUMBER_AND_INCR (mcnt, p1); - p1 += mcnt; - break; - - default: - if (!PREFIX(common_op_match_null_string_p) (&p1, end, reg_info)) - return false; - } - } /* while p1 < end */ - - return true; -} /* alt_match_null_string_p */ - - -/* Deals with the ops common to group_match_null_string_p and - alt_match_null_string_p. - - Sets P to one after the op and its arguments, if any. */ - -static boolean -PREFIX(common_op_match_null_string_p) (p, end, reg_info) - UCHAR_T **p, *end; - PREFIX(register_info_type) *reg_info; -{ - int mcnt; - boolean ret; - int reg_no; - UCHAR_T *p1 = *p; - - switch ((re_opcode_t) *p1++) - { - case no_op: - case begline: - case endline: - case begbuf: - case endbuf: - case wordbeg: - case wordend: - case wordbound: - case notwordbound: -#ifdef emacs - case before_dot: - case at_dot: - case after_dot: -#endif - break; - - case start_memory: - reg_no = *p1; - assert (reg_no > 0 && reg_no <= MAX_REGNUM); - ret = PREFIX(group_match_null_string_p) (&p1, end, reg_info); - - /* Have to set this here in case we're checking a group which - contains a group and a back reference to it. */ - - if (REG_MATCH_NULL_STRING_P (reg_info[reg_no]) == MATCH_NULL_UNSET_VALUE) - REG_MATCH_NULL_STRING_P (reg_info[reg_no]) = ret; - - if (!ret) - return false; - break; - - /* If this is an optimized succeed_n for zero times, make the jump. */ - case jump: - EXTRACT_NUMBER_AND_INCR (mcnt, p1); - if (mcnt >= 0) - p1 += mcnt; - else - return false; - break; - - case succeed_n: - /* Get to the number of times to succeed. */ - p1 += OFFSET_ADDRESS_SIZE; - EXTRACT_NUMBER_AND_INCR (mcnt, p1); - - if (mcnt == 0) - { - p1 -= 2 * OFFSET_ADDRESS_SIZE; - EXTRACT_NUMBER_AND_INCR (mcnt, p1); - p1 += mcnt; - } - else - return false; - break; - - case duplicate: - if (!REG_MATCH_NULL_STRING_P (reg_info[*p1])) - return false; - break; - - case set_number_at: - p1 += 2 * OFFSET_ADDRESS_SIZE; - - default: - /* All other opcodes mean we cannot match the empty string. */ - return false; - } - - *p = p1; - return true; -} /* common_op_match_null_string_p */ - - -/* Return zero if TRANSLATE[S1] and TRANSLATE[S2] are identical for LEN - bytes; nonzero otherwise. */ - -static int -PREFIX(bcmp_translate) (s1, s2, len, translate) - const CHAR_T *s1, *s2; - register int len; - RE_TRANSLATE_TYPE translate; -{ - register const UCHAR_T *p1 = (const UCHAR_T *) s1; - register const UCHAR_T *p2 = (const UCHAR_T *) s2; - while (len) - { -#ifdef WCHAR - if (((*p1<=0xff)?translate[*p1++]:*p1++) - != ((*p2<=0xff)?translate[*p2++]:*p2++)) - return 1; -#else /* BYTE */ - if (translate[*p1++] != translate[*p2++]) return 1; -#endif /* WCHAR */ - len--; - } - return 0; -} - - -#else /* not INSIDE_RECURSION */ - -/* Entry points for GNU code. */ - -/* re_compile_pattern is the GNU regular expression compiler: it - compiles PATTERN (of length SIZE) and puts the result in BUFP. - Returns 0 if the pattern was valid, otherwise an error string. - - Assumes the `allocated' (and perhaps `buffer') and `translate' fields - are set in BUFP on entry. - - We call regex_compile to do the actual compilation. */ - -const char * -re_compile_pattern (pattern, length, bufp) - const char *pattern; - size_t length; - struct re_pattern_buffer *bufp; -{ - reg_errcode_t ret; - - /* GNU code is written to assume at least RE_NREGS registers will be set - (and at least one extra will be -1). */ - bufp->regs_allocated = REGS_UNALLOCATED; - - /* And GNU code determines whether or not to get register information - by passing null for the REGS argument to re_match, etc., not by - setting no_sub. */ - bufp->no_sub = 0; - - /* Match anchors at newline. */ - bufp->newline_anchor = 1; - -# ifdef MBS_SUPPORT - if (MB_CUR_MAX != 1) - ret = wcs_regex_compile (pattern, length, re_syntax_options, bufp); - else -# endif - ret = byte_regex_compile (pattern, length, re_syntax_options, bufp); - - if (!ret) - return NULL; - return gettext (re_error_msgid + re_error_msgid_idx[(int) ret]); -} -#ifdef _LIBC -weak_alias (__re_compile_pattern, re_compile_pattern) -#endif - -/* Entry points compatible with 4.2 BSD regex library. We don't define - them unless specifically requested. */ - -#if defined _REGEX_RE_COMP || defined _LIBC - -/* BSD has one and only one pattern buffer. */ -static struct re_pattern_buffer re_comp_buf; - -char * -#ifdef _LIBC -/* Make these definitions weak in libc, so POSIX programs can redefine - these names if they don't use our functions, and still use - regcomp/regexec below without link errors. */ -weak_function -#endif -re_comp (s) - const char *s; -{ - reg_errcode_t ret; - - if (!s) - { - if (!re_comp_buf.buffer) - return gettext ("No previous regular expression"); - return 0; - } - - if (!re_comp_buf.buffer) - { - re_comp_buf.buffer = (unsigned char *) malloc (200); - if (re_comp_buf.buffer == NULL) - return (char *) gettext (re_error_msgid - + re_error_msgid_idx[(int) REG_ESPACE]); - re_comp_buf.allocated = 200; - - re_comp_buf.fastmap = (char *) malloc (1 << BYTEWIDTH); - if (re_comp_buf.fastmap == NULL) - return (char *) gettext (re_error_msgid - + re_error_msgid_idx[(int) REG_ESPACE]); - } - - /* Since `re_exec' always passes NULL for the `regs' argument, we - don't need to initialize the pattern buffer fields which affect it. */ - - /* Match anchors at newlines. */ - re_comp_buf.newline_anchor = 1; - -# ifdef MBS_SUPPORT - if (MB_CUR_MAX != 1) - ret = wcs_regex_compile (s, strlen (s), re_syntax_options, &re_comp_buf); - else -# endif - ret = byte_regex_compile (s, strlen (s), re_syntax_options, &re_comp_buf); - - if (!ret) - return NULL; - - /* Yes, we're discarding `const' here if !HAVE_LIBINTL. */ - return (char *) gettext (re_error_msgid + re_error_msgid_idx[(int) ret]); -} - - -int -#ifdef _LIBC -weak_function -#endif -re_exec (s) - const char *s; -{ - const int len = strlen (s); - return - 0 <= re_search (&re_comp_buf, s, len, 0, len, (struct re_registers *) 0); -} - -#endif /* _REGEX_RE_COMP */ - -/* POSIX.2 functions. Don't define these for Emacs. */ - -#ifndef emacs - -/* regcomp takes a regular expression as a string and compiles it. - - PREG is a regex_t *. We do not expect any fields to be initialized, - since POSIX says we shouldn't. Thus, we set - - `buffer' to the compiled pattern; - `used' to the length of the compiled pattern; - `syntax' to RE_SYNTAX_POSIX_EXTENDED if the - REG_EXTENDED bit in CFLAGS is set; otherwise, to - RE_SYNTAX_POSIX_BASIC; - `newline_anchor' to REG_NEWLINE being set in CFLAGS; - `fastmap' to an allocated space for the fastmap; - `fastmap_accurate' to zero; - `re_nsub' to the number of subexpressions in PATTERN. - - PATTERN is the address of the pattern string. - - CFLAGS is a series of bits which affect compilation. - - If REG_EXTENDED is set, we use POSIX extended syntax; otherwise, we - use POSIX basic syntax. - - If REG_NEWLINE is set, then . and [^...] don't match newline. - Also, regexec will try a match beginning after every newline. - - If REG_ICASE is set, then we considers upper- and lowercase - versions of letters to be equivalent when matching. - - If REG_NOSUB is set, then when PREG is passed to regexec, that - routine will report only success or failure, and nothing about the - registers. - - It returns 0 if it succeeds, nonzero if it doesn't. (See regex.h for - the return codes and their meanings.) */ - -int -regcomp (preg, pattern, cflags) - regex_t *preg; - const char *pattern; - int cflags; -{ - reg_errcode_t ret; - reg_syntax_t syntax - = (cflags & REG_EXTENDED) ? - RE_SYNTAX_POSIX_EXTENDED : RE_SYNTAX_POSIX_BASIC; - - /* regex_compile will allocate the space for the compiled pattern. */ - preg->buffer = 0; - preg->allocated = 0; - preg->used = 0; - - /* Try to allocate space for the fastmap. */ - preg->fastmap = (char *) malloc (1 << BYTEWIDTH); - - if (cflags & REG_ICASE) - { - unsigned i; - - preg->translate - = (RE_TRANSLATE_TYPE) malloc (CHAR_SET_SIZE - * sizeof (*(RE_TRANSLATE_TYPE)0)); - if (preg->translate == NULL) - return (int) REG_ESPACE; - - /* Map uppercase characters to corresponding lowercase ones. */ - for (i = 0; i < CHAR_SET_SIZE; i++) - preg->translate[i] = ISUPPER (i) ? TOLOWER (i) : i; - } - else - preg->translate = NULL; - - /* If REG_NEWLINE is set, newlines are treated differently. */ - if (cflags & REG_NEWLINE) - { /* REG_NEWLINE implies neither . nor [^...] match newline. */ - syntax &= ~RE_DOT_NEWLINE; - syntax |= RE_HAT_LISTS_NOT_NEWLINE; - /* It also changes the matching behavior. */ - preg->newline_anchor = 1; - } - else - preg->newline_anchor = 0; - - preg->no_sub = !!(cflags & REG_NOSUB); - - /* POSIX says a null character in the pattern terminates it, so we - can use strlen here in compiling the pattern. */ -# ifdef MBS_SUPPORT - if (MB_CUR_MAX != 1) - ret = wcs_regex_compile (pattern, strlen (pattern), syntax, preg); - else -# endif - ret = byte_regex_compile (pattern, strlen (pattern), syntax, preg); - - /* POSIX doesn't distinguish between an unmatched open-group and an - unmatched close-group: both are REG_EPAREN. */ - if (ret == REG_ERPAREN) ret = REG_EPAREN; - - if (ret == REG_NOERROR && preg->fastmap) - { - /* Compute the fastmap now, since regexec cannot modify the pattern - buffer. */ - if (re_compile_fastmap (preg) == -2) - { - /* Some error occurred while computing the fastmap, just forget - about it. */ - free (preg->fastmap); - preg->fastmap = NULL; - } - } - - return (int) ret; -} -#ifdef _LIBC -weak_alias (__regcomp, regcomp) -#endif - - -/* regexec searches for a given pattern, specified by PREG, in the - string STRING. - - If NMATCH is zero or REG_NOSUB was set in the cflags argument to - `regcomp', we ignore PMATCH. Otherwise, we assume PMATCH has at - least NMATCH elements, and we set them to the offsets of the - corresponding matched substrings. - - EFLAGS specifies `execution flags' which affect matching: if - REG_NOTBOL is set, then ^ does not match at the beginning of the - string; if REG_NOTEOL is set, then $ does not match at the end. - - We return 0 if we find a match and REG_NOMATCH if not. */ - -int -regexec (preg, string, nmatch, pmatch, eflags) - const regex_t *preg; - const char *string; - size_t nmatch; - regmatch_t pmatch[]; - int eflags; -{ - int ret; - struct re_registers regs; - regex_t private_preg; - int len = strlen (string); - boolean want_reg_info = !preg->no_sub && nmatch > 0; - - private_preg = *preg; - - private_preg.not_bol = !!(eflags & REG_NOTBOL); - private_preg.not_eol = !!(eflags & REG_NOTEOL); - - /* The user has told us exactly how many registers to return - information about, via `nmatch'. We have to pass that on to the - matching routines. */ - private_preg.regs_allocated = REGS_FIXED; - - if (want_reg_info) - { - regs.num_regs = nmatch; - regs.start = TALLOC (nmatch * 2, regoff_t); - if (regs.start == NULL) - return (int) REG_NOMATCH; - regs.end = regs.start + nmatch; - } - - /* Perform the searching operation. */ - ret = re_search (&private_preg, string, len, - /* start: */ 0, /* range: */ len, - want_reg_info ? ®s : (struct re_registers *) 0); - - /* Copy the register information to the POSIX structure. */ - if (want_reg_info) - { - if (ret >= 0) - { - unsigned r; - - for (r = 0; r < nmatch; r++) - { - pmatch[r].rm_so = regs.start[r]; - pmatch[r].rm_eo = regs.end[r]; - } - } - - /* If we needed the temporary register info, free the space now. */ - free (regs.start); - } - - /* We want zero return to mean success, unlike `re_search'. */ - return ret >= 0 ? (int) REG_NOERROR : (int) REG_NOMATCH; -} -#ifdef _LIBC -weak_alias (__regexec, regexec) -#endif - - -/* Returns a message corresponding to an error code, ERRCODE, returned - from either regcomp or regexec. We don't use PREG here. */ - -size_t -regerror (errcode, preg, errbuf, errbuf_size) - int errcode; - const regex_t *preg; - char *errbuf; - size_t errbuf_size; -{ - const char *msg; - size_t msg_size; - - if (errcode < 0 - || errcode >= (int) (sizeof (re_error_msgid_idx) - / sizeof (re_error_msgid_idx[0]))) - /* Only error codes returned by the rest of the code should be passed - to this routine. If we are given anything else, or if other regex - code generates an invalid error code, then the program has a bug. - Dump core so we can fix it. */ - abort (); - - msg = gettext (re_error_msgid + re_error_msgid_idx[errcode]); - - msg_size = strlen (msg) + 1; /* Includes the null. */ - - if (errbuf_size != 0) - { - if (msg_size > errbuf_size) - { -#if defined HAVE_MEMPCPY || defined _LIBC - *((char *) __mempcpy (errbuf, msg, errbuf_size - 1)) = '\0'; -#else - memcpy (errbuf, msg, errbuf_size - 1); - errbuf[errbuf_size - 1] = 0; -#endif - } - else - memcpy (errbuf, msg, msg_size); - } - - return msg_size; -} -#ifdef _LIBC -weak_alias (__regerror, regerror) -#endif - - -/* Free dynamically allocated space used by PREG. */ - -void -regfree (preg) - regex_t *preg; -{ - if (preg->buffer != NULL) - free (preg->buffer); - preg->buffer = NULL; - - preg->allocated = 0; - preg->used = 0; - - if (preg->fastmap != NULL) - free (preg->fastmap); - preg->fastmap = NULL; - preg->fastmap_accurate = 0; - - if (preg->translate != NULL) - free (preg->translate); - preg->translate = NULL; -} -#ifdef _LIBC -weak_alias (__regfree, regfree) -#endif - -#endif /* not emacs */ - -#endif /* not INSIDE_RECURSION */ - - -#undef STORE_NUMBER -#undef STORE_NUMBER_AND_INCR -#undef EXTRACT_NUMBER -#undef EXTRACT_NUMBER_AND_INCR - -#undef DEBUG_PRINT_COMPILED_PATTERN -#undef DEBUG_PRINT_DOUBLE_STRING - -#undef INIT_FAIL_STACK -#undef RESET_FAIL_STACK -#undef DOUBLE_FAIL_STACK -#undef PUSH_PATTERN_OP -#undef PUSH_FAILURE_POINTER -#undef PUSH_FAILURE_INT -#undef PUSH_FAILURE_ELT -#undef POP_FAILURE_POINTER -#undef POP_FAILURE_INT -#undef POP_FAILURE_ELT -#undef DEBUG_PUSH -#undef DEBUG_POP -#undef PUSH_FAILURE_POINT -#undef POP_FAILURE_POINT - -#undef REG_UNSET_VALUE -#undef REG_UNSET - -#undef PATFETCH -#undef PATFETCH_RAW -#undef PATUNFETCH -#undef TRANSLATE - -#undef INIT_BUF_SIZE -#undef GET_BUFFER_SPACE -#undef BUF_PUSH -#undef BUF_PUSH_2 -#undef BUF_PUSH_3 -#undef STORE_JUMP -#undef STORE_JUMP2 -#undef INSERT_JUMP -#undef INSERT_JUMP2 -#undef EXTEND_BUFFER -#undef GET_UNSIGNED_NUMBER -#undef FREE_STACK_RETURN - -# undef POINTER_TO_OFFSET -# undef MATCHING_IN_FRST_STRING -# undef PREFETCH -# undef AT_STRINGS_BEG -# undef AT_STRINGS_END -# undef WORDCHAR_P -# undef FREE_VAR -# undef FREE_VARIABLES -# undef NO_HIGHEST_ACTIVE_REG -# undef NO_LOWEST_ACTIVE_REG - -# undef CHAR_T -# undef UCHAR_T -# undef COMPILED_BUFFER_VAR -# undef OFFSET_ADDRESS_SIZE -# undef CHAR_CLASS_SIZE -# undef PREFIX -# undef ARG_PREFIX -# undef PUT_CHAR -# undef BYTE -# undef WCHAR - -# define DEFINED_ONCE diff --git a/gnu/dist/diffutils/lib/regex.hin b/gnu/dist/diffutils/lib/regex.hin deleted file mode 100644 index 81789be8978..00000000000 --- a/gnu/dist/diffutils/lib/regex.hin +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef _REGEX_H -#include - -/* Document internal interfaces. */ -extern reg_syntax_t __re_set_syntax _RE_ARGS ((reg_syntax_t syntax)); - -extern const char *__re_compile_pattern - _RE_ARGS ((const char *pattern, size_t length, - struct re_pattern_buffer *buffer)); - -extern int __re_compile_fastmap _RE_ARGS ((struct re_pattern_buffer *buffer)); - -extern int __re_search - _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string, - int length, int start, int range, struct re_registers *regs)); - -extern int __re_search_2 - _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1, - int length1, const char *string2, int length2, - int start, int range, struct re_registers *regs, int stop)); - -extern int __re_match - _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string, - int length, int start, struct re_registers *regs)); - -extern int __re_match_2 - _RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1, - int length1, const char *string2, int length2, - int start, struct re_registers *regs, int stop)); - -extern void __re_set_registers - _RE_ARGS ((struct re_pattern_buffer *buffer, struct re_registers *regs, - unsigned num_regs, regoff_t *starts, regoff_t *ends)); - -extern int __regcomp _RE_ARGS ((regex_t *__preg, const char *__pattern, - int __cflags)); - -extern int __regexec _RE_ARGS ((const regex_t *__preg, - const char *__string, size_t __nmatch, - regmatch_t __pmatch[], int __eflags)); - -extern size_t __regerror _RE_ARGS ((int __errcode, const regex_t *__preg, - char *__errbuf, size_t __errbuf_size)); - -extern void __regfree _RE_ARGS ((regex_t *__preg)); -#endif diff --git a/gnu/dist/diffutils/lib/setmode.c b/gnu/dist/diffutils/lib/setmode.c deleted file mode 100644 index 3fa0f365a54..00000000000 --- a/gnu/dist/diffutils/lib/setmode.c +++ /dev/null @@ -1,64 +0,0 @@ -/* $NetBSD: setmode.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* Set a file descriptor's mode to binary or to text. - - Copyright (C) 2001 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* Written by Paul Eggert */ - -#if HAVE_CONFIG_H -# include -#endif - -#if HAVE_STDBOOL_H -# include -#else -typedef enum {false = 0, true = 1} bool; -#endif - -#if HAVE_SETMODE_DOS -# include -# if HAVE_FCNTL_H -# include -# endif -# if HAVE_UNISTD_H -# include -# endif -#endif - -#include "setmode.h" -#undef set_binary_mode - - -/* Set the binary mode of FD to MODE, returning its previous mode. - MODE is 1 for binary and 0 for text. If setting the mode might - cause problems, ignore the request and return MODE. Always return - 1 on POSIX platforms, which do not distinguish between text and - binary. */ - -bool -set_binary_mode (int fd, bool mode) -{ -#if HAVE_SETMODE_DOS - if (isatty (fd)) - return mode; - return setmode (fd, mode ? O_BINARY : O_TEXT) != O_TEXT; -#else - return 1; -#endif -} diff --git a/gnu/dist/diffutils/lib/setmode.h b/gnu/dist/diffutils/lib/setmode.h deleted file mode 100644 index e6e8d194d4a..00000000000 --- a/gnu/dist/diffutils/lib/setmode.h +++ /dev/null @@ -1,29 +0,0 @@ -/* $NetBSD: setmode.h,v 1.1.1.1 2003/01/26 00:43:14 wiz Exp $ */ - -/* Set a file descriptor's mode to binary or to text. - - Copyright (C) 2001 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* Written by Paul Eggert */ - -#ifndef set_binary_mode -bool set_binary_mode (int, bool); -# if ! HAVE_SETMODE_DOS -# define set_binary_mode(fd, mode) 1 -# endif -#endif diff --git a/gnu/dist/diffutils/lib/strcasecmp.c b/gnu/dist/diffutils/lib/strcasecmp.c deleted file mode 100644 index 7ef3034226a..00000000000 --- a/gnu/dist/diffutils/lib/strcasecmp.c +++ /dev/null @@ -1,68 +0,0 @@ -/* $NetBSD: strcasecmp.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* strcasecmp.c -- case insensitive string comparator - Copyright (C) 1998, 1999 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#if HAVE_CONFIG_H -# include -#endif - -#ifdef LENGTH_LIMIT -# define STRXCASECMP_FUNCTION strncasecmp -# define STRXCASECMP_DECLARE_N , size_t n -# define LENGTH_LIMIT_EXPR(Expr) Expr -#else -# define STRXCASECMP_FUNCTION strcasecmp -# define STRXCASECMP_DECLARE_N /* empty */ -# define LENGTH_LIMIT_EXPR(Expr) 0 -#endif - -#include -#include - -#define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch)) - -/* Compare {{no more than N characters of }}strings S1 and S2, - ignoring case, returning less than, equal to or - greater than zero if S1 is lexicographically less - than, equal to or greater than S2. */ - -int -STRXCASECMP_FUNCTION (const char *s1, const char *s2 STRXCASECMP_DECLARE_N) -{ - register const unsigned char *p1 = (const unsigned char *) s1; - register const unsigned char *p2 = (const unsigned char *) s2; - unsigned char c1, c2; - - if (p1 == p2 || LENGTH_LIMIT_EXPR (n == 0)) - return 0; - - do - { - c1 = TOLOWER (*p1); - c2 = TOLOWER (*p2); - - if (LENGTH_LIMIT_EXPR (--n == 0) || c1 == '\0') - break; - - ++p1; - ++p2; - } - while (c1 == c2); - - return c1 - c2; -} diff --git a/gnu/dist/diffutils/lib/strftime.c b/gnu/dist/diffutils/lib/strftime.c deleted file mode 100644 index 6ee1ea370e6..00000000000 --- a/gnu/dist/diffutils/lib/strftime.c +++ /dev/null @@ -1,1408 +0,0 @@ -/* $NetBSD: strftime.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* Copyright (C) 1991-1999, 2000, 2001 Free Software Foundation, Inc. - - NOTE: The canonical source of this file is maintained with the GNU C Library. - Bugs can be reported to bug-glibc@prep.ai.mit.edu. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) any - later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, - USA. */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#ifdef _LIBC -# define HAVE_LIMITS_H 1 -# define HAVE_MBLEN 1 -# define HAVE_MBRLEN 1 -# define HAVE_STRUCT_ERA_ENTRY 1 -# define HAVE_TM_GMTOFF 1 -# define HAVE_TM_ZONE 1 -# define HAVE_TZNAME 1 -# define HAVE_TZSET 1 -# define MULTIBYTE_IS_FORMAT_SAFE 1 -# define STDC_HEADERS 1 -# include "../locale/localeinfo.h" -#endif - -#if defined emacs && !defined HAVE_BCOPY -# define HAVE_MEMCPY 1 -#endif - -#include -#include /* Some systems define `time_t' here. */ - -#ifdef TIME_WITH_SYS_TIME -# include -# include -#else -# ifdef HAVE_SYS_TIME_H -# include -# else -# include -# endif -#endif -#if HAVE_TZNAME -extern char *tzname[]; -#endif - -/* Do multibyte processing if multibytes are supported, unless - multibyte sequences are safe in formats. Multibyte sequences are - safe if they cannot contain byte sequences that look like format - conversion specifications. The GNU C Library uses UTF8 multibyte - encoding, which is safe for formats, but strftime.c can be used - with other C libraries that use unsafe encodings. */ -#define DO_MULTIBYTE (HAVE_MBLEN && ! MULTIBYTE_IS_FORMAT_SAFE) - -#if DO_MULTIBYTE -# if HAVE_MBRLEN -# include -# else - /* Simulate mbrlen with mblen as best we can. */ -# define mbstate_t int -# define mbrlen(s, n, ps) mblen (s, n) -# define mbsinit(ps) (*(ps) == 0) -# endif - static const mbstate_t mbstate_zero; -#endif - -#if HAVE_LIMITS_H -# include -#endif - -#if STDC_HEADERS -# include -# include -# include -#else -# ifndef HAVE_MEMCPY -# define memcpy(d, s, n) bcopy ((s), (d), (n)) -# endif -#endif - -#ifdef COMPILE_WIDE -# include -# define CHAR_T wchar_t -# define UCHAR_T unsigned int -# define L_(Str) L##Str -# define NLW(Sym) _NL_W##Sym - -# define MEMCPY(d, s, n) __wmemcpy (d, s, n) -# define STRLEN(s) __wcslen (s) - -#else -# define CHAR_T char -# define UCHAR_T unsigned char -# define L_(Str) Str -# define NLW(Sym) Sym - -# if !defined STDC_HEADERS && !defined HAVE_MEMCPY -# define MEMCPY(d, s, n) bcopy ((s), (d), (n)) -# else -# define MEMCPY(d, s, n) memcpy ((d), (s), (n)) -# endif -# define STRLEN(s) strlen (s) - -# ifdef _LIBC -# define MEMPCPY(d, s, n) __mempcpy (d, s, n) -# else -# ifndef HAVE_MEMPCPY -# define MEMPCPY(d, s, n) ((void *) ((char *) memcpy (d, s, n) + (n))) -# endif -# endif -#endif - -#ifndef __P -# if defined __GNUC__ || (defined __STDC__ && __STDC__) -# define __P(args) args -# else -# define __P(args) () -# endif /* GCC. */ -#endif /* Not __P. */ - -#ifndef PTR -# ifdef __STDC__ -# define PTR void * -# else -# define PTR char * -# endif -#endif - -#ifndef CHAR_BIT -# define CHAR_BIT 8 -#endif - -#ifndef NULL -# define NULL 0 -#endif - -#define TYPE_SIGNED(t) ((t) -1 < 0) - -/* Bound on length of the string representing an integer value of type t. - Subtract one for the sign bit if t is signed; - 302 / 1000 is log10 (2) rounded up; - add one for integer division truncation; - add one more for a minus sign if t is signed. */ -#define INT_STRLEN_BOUND(t) \ - ((sizeof (t) * CHAR_BIT - TYPE_SIGNED (t)) * 302 / 1000 + 1 + TYPE_SIGNED (t)) - -#define TM_YEAR_BASE 1900 - -#ifndef __isleap -/* Nonzero if YEAR is a leap year (every 4 years, - except every 100th isn't, and every 400th is). */ -# define __isleap(year) \ - ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0)) -#endif - - -#ifdef _LIBC -# define my_strftime_gmtime_r __gmtime_r -# define my_strftime_localtime_r __localtime_r -# define tzname __tzname -# define tzset __tzset -#else - -/* If we're a strftime substitute in a GNU program, then prefer gmtime - to gmtime_r, since many gmtime_r implementations are buggy. - Similarly for localtime_r. */ - -# if ! HAVE_TM_GMTOFF -static struct tm *my_strftime_gmtime_r __P ((const time_t *, struct tm *)); -static struct tm * -my_strftime_gmtime_r (t, tp) - const time_t *t; - struct tm *tp; -{ - struct tm *l = gmtime (t); - if (! l) - return 0; - *tp = *l; - return tp; -} - -static struct tm *my_strftime_localtime_r __P ((const time_t *, struct tm *)); -static struct tm * -my_strftime_localtime_r (t, tp) - const time_t *t; - struct tm *tp; -{ - struct tm *l = localtime (t); - if (! l) - return 0; - *tp = *l; - return tp; -} -# endif /* ! HAVE_TM_GMTOFF */ -#endif /* ! defined _LIBC */ - - -#if !defined memset && !defined HAVE_MEMSET && !defined _LIBC -/* Some systems lack the `memset' function and we don't want to - introduce additional dependencies. */ -/* The SGI compiler reportedly barfs on the trailing null - if we use a string constant as the initializer. 28 June 1997, rms. */ -static const CHAR_T spaces[16] = /* " " */ -{ - L_(' '),L_(' '),L_(' '),L_(' '),L_(' '),L_(' '),L_(' '),L_(' '), - L_(' '),L_(' '),L_(' '),L_(' '),L_(' '),L_(' '),L_(' '),L_(' ') -}; -static const CHAR_T zeroes[16] = /* "0000000000000000" */ -{ - L_('0'),L_('0'),L_('0'),L_('0'),L_('0'),L_('0'),L_('0'),L_('0'), - L_('0'),L_('0'),L_('0'),L_('0'),L_('0'),L_('0'),L_('0'),L_('0') -}; - -# define memset_space(P, Len) \ - do { \ - int _len = (Len); \ - \ - do \ - { \ - int _this = _len > 16 ? 16 : _len; \ - (P) = MEMPCPY ((P), spaces, _this * sizeof (CHAR_T)); \ - _len -= _this; \ - } \ - while (_len > 0); \ - } while (0) - -# define memset_zero(P, Len) \ - do { \ - int _len = (Len); \ - \ - do \ - { \ - int _this = _len > 16 ? 16 : _len; \ - (P) = MEMPCPY ((P), zeroes, _this * sizeof (CHAR_T)); \ - _len -= _this; \ - } \ - while (_len > 0); \ - } while (0) -#else -# ifdef COMPILE_WIDE -# define memset_space(P, Len) (wmemset ((P), L' ', (Len)), (P) += (Len)) -# define memset_zero(P, Len) (wmemset ((P), L'0', (Len)), (P) += (Len)) -# else -# define memset_space(P, Len) (memset ((P), ' ', (Len)), (P) += (Len)) -# define memset_zero(P, Len) (memset ((P), '0', (Len)), (P) += (Len)) -# endif -#endif - -#define add(n, f) \ - do \ - { \ - int _n = (n); \ - int _delta = width - _n; \ - int _incr = _n + (_delta > 0 ? _delta : 0); \ - if (i + _incr >= maxsize) \ - return 0; \ - if (p) \ - { \ - if (_delta > 0) \ - { \ - if (pad == L_('0')) \ - memset_zero (p, _delta); \ - else \ - memset_space (p, _delta); \ - } \ - f; \ - p += _n; \ - } \ - i += _incr; \ - } while (0) - -#define cpy(n, s) \ - add ((n), \ - if (to_lowcase) \ - memcpy_lowcase (p, (s), _n); \ - else if (to_uppcase) \ - memcpy_uppcase (p, (s), _n); \ - else \ - MEMCPY ((PTR) p, (const PTR) (s), _n)) - -#ifdef COMPILE_WIDE -# define widen(os, ws, l) \ - { \ - mbstate_t __st; \ - const char *__s = os; \ - memset (&__st, '\0', sizeof (__st)); \ - l = __mbsrtowcs (NULL, &__s, 0, &__st); \ - ws = alloca ((l + 1) * sizeof (wchar_t)); \ - (void) __mbsrtowcs (ws, &__s, l, &__st); \ - } -#endif - - -#ifdef COMPILE_WIDE -# define TOUPPER(Ch) towupper (Ch) -# define TOLOWER(Ch) towlower (Ch) -#else -# ifdef _LIBC -# define TOUPPER(Ch) toupper (Ch) -# define TOLOWER(Ch) tolower (Ch) -# else -# define TOUPPER(Ch) (islower (Ch) ? toupper (Ch) : (Ch)) -# define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch)) -# endif -#endif -/* We don't use `isdigit' here since the locale dependent - interpretation is not what we want here. We only need to accept - the arabic digits in the ASCII range. One day there is perhaps a - more reliable way to accept other sets of digits. */ -#define ISDIGIT(Ch) ((unsigned int) (Ch) - L_('0') <= 9) - -static CHAR_T *memcpy_lowcase __P ((CHAR_T *dest, const CHAR_T *src, - size_t len)); - -static CHAR_T * -memcpy_lowcase (dest, src, len) - CHAR_T *dest; - const CHAR_T *src; - size_t len; -{ - while (len-- > 0) - dest[len] = TOLOWER ((UCHAR_T) src[len]); - return dest; -} - -static CHAR_T *memcpy_uppcase __P ((CHAR_T *dest, const CHAR_T *src, - size_t len)); - -static CHAR_T * -memcpy_uppcase (dest, src, len) - CHAR_T *dest; - const CHAR_T *src; - size_t len; -{ - while (len-- > 0) - dest[len] = TOUPPER ((UCHAR_T) src[len]); - return dest; -} - - -#if ! HAVE_TM_GMTOFF -/* Yield the difference between *A and *B, - measured in seconds, ignoring leap seconds. */ -# define tm_diff ftime_tm_diff -static int tm_diff __P ((const struct tm *, const struct tm *)); -static int -tm_diff (a, b) - const struct tm *a; - const struct tm *b; -{ - /* Compute intervening leap days correctly even if year is negative. - Take care to avoid int overflow in leap day calculations, - but it's OK to assume that A and B are close to each other. */ - int a4 = (a->tm_year >> 2) + (TM_YEAR_BASE >> 2) - ! (a->tm_year & 3); - int b4 = (b->tm_year >> 2) + (TM_YEAR_BASE >> 2) - ! (b->tm_year & 3); - int a100 = a4 / 25 - (a4 % 25 < 0); - int b100 = b4 / 25 - (b4 % 25 < 0); - int a400 = a100 >> 2; - int b400 = b100 >> 2; - int intervening_leap_days = (a4 - b4) - (a100 - b100) + (a400 - b400); - int years = a->tm_year - b->tm_year; - int days = (365 * years + intervening_leap_days - + (a->tm_yday - b->tm_yday)); - return (60 * (60 * (24 * days + (a->tm_hour - b->tm_hour)) - + (a->tm_min - b->tm_min)) - + (a->tm_sec - b->tm_sec)); -} -#endif /* ! HAVE_TM_GMTOFF */ - - - -/* The number of days from the first day of the first ISO week of this - year to the year day YDAY with week day WDAY. ISO weeks start on - Monday; the first ISO week has the year's first Thursday. YDAY may - be as small as YDAY_MINIMUM. */ -#define ISO_WEEK_START_WDAY 1 /* Monday */ -#define ISO_WEEK1_WDAY 4 /* Thursday */ -#define YDAY_MINIMUM (-366) -static int iso_week_days __P ((int, int)); -#ifdef __GNUC__ -__inline__ -#endif -static int -iso_week_days (yday, wday) - int yday; - int wday; -{ - /* Add enough to the first operand of % to make it nonnegative. */ - int big_enough_multiple_of_7 = (-YDAY_MINIMUM / 7 + 2) * 7; - return (yday - - (yday - wday + ISO_WEEK1_WDAY + big_enough_multiple_of_7) % 7 - + ISO_WEEK1_WDAY - ISO_WEEK_START_WDAY); -} - - -#if !(defined _NL_CURRENT || HAVE_STRFTIME) -static CHAR_T const weekday_name[][10] = - { - L_("Sunday"), L_("Monday"), L_("Tuesday"), L_("Wednesday"), - L_("Thursday"), L_("Friday"), L_("Saturday") - }; -static CHAR_T const month_name[][10] = - { - L_("January"), L_("February"), L_("March"), L_("April"), L_("May"), - L_("June"), L_("July"), L_("August"), L_("September"), L_("October"), - L_("November"), L_("December") - }; -#endif - - -/* When compiling this file, GNU applications can #define my_strftime - to a symbol (typically nstrftime) to get an extended strftime with - extra arguments UT and NS. Emacs is a special case for now, but - this Emacs-specific code can be removed once Emacs's config.h - defines my_strftime. */ -#if defined emacs && !defined my_strftime -# define my_strftime nstrftime -#endif - -#ifdef my_strftime -# define extra_args , ut, ns -# define extra_args_spec int ut; int ns; -# define extra_args_spec_iso , int ut, int ns -#else -# ifdef COMPILE_WIDE -# define my_strftime wcsftime -# else -# define my_strftime strftime -# endif -# define extra_args -# define extra_args_spec -# define extra_args_spec_iso -/* We don't have this information in general. */ -# define ut 0 -# define ns 0 -#endif - -#if !defined _LIBC && HAVE_TZNAME && HAVE_TZSET - /* Solaris 2.5 tzset sometimes modifies the storage returned by localtime. - Work around this bug by copying *tp before it might be munged. */ - size_t _strftime_copytm __P ((char *, size_t, const char *, - const struct tm * extra_args_spec_iso)); - size_t - my_strftime (s, maxsize, format, tp extra_args) - CHAR_T *s; - size_t maxsize; - const CHAR_T *format; - const struct tm *tp; - extra_args_spec - { - struct tm tmcopy; - tmcopy = *tp; - return _strftime_copytm (s, maxsize, format, &tmcopy extra_args); - } -# undef my_strftime -# define my_strftime _strftime_copytm -#endif - - -/* Write information from TP into S according to the format - string FORMAT, writing no more that MAXSIZE characters - (including the terminating '\0') and returning number of - characters written. If S is NULL, nothing will be written - anywhere, so to determine how many characters would be - written, use NULL for S and (size_t) UINT_MAX for MAXSIZE. */ -size_t -my_strftime (s, maxsize, format, tp extra_args) - CHAR_T *s; - size_t maxsize; - const CHAR_T *format; - const struct tm *tp; - extra_args_spec -{ - int hour12 = tp->tm_hour; -#ifdef _NL_CURRENT - /* We cannot make the following values variables since we must delay - the evaluation of these values until really needed since some - expressions might not be valid in every situation. The `struct tm' - might be generated by a strptime() call that initialized - only a few elements. Dereference the pointers only if the format - requires this. Then it is ok to fail if the pointers are invalid. */ -# define a_wkday \ - ((const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(ABDAY_1) + tp->tm_wday)) -# define f_wkday \ - ((const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(DAY_1) + tp->tm_wday)) -# define a_month \ - ((const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(ABMON_1) + tp->tm_mon)) -# define f_month \ - ((const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(MON_1) + tp->tm_mon)) -# define ampm \ - ((const CHAR_T *) _NL_CURRENT (LC_TIME, tp->tm_hour > 11 \ - ? NLW(PM_STR) : NLW(AM_STR))) - -# define aw_len STRLEN (a_wkday) -# define am_len STRLEN (a_month) -# define ap_len STRLEN (ampm) -#else -# if !HAVE_STRFTIME -# define f_wkday (weekday_name[tp->tm_wday]) -# define f_month (month_name[tp->tm_mon]) -# define a_wkday f_wkday -# define a_month f_month -# define ampm (L_("AMPM") + 2 * (tp->tm_hour > 11)) - - size_t aw_len = 3; - size_t am_len = 3; - size_t ap_len = 2; -# endif -#endif - const char *zone; - size_t i = 0; - CHAR_T *p = s; - const CHAR_T *f; -#if DO_MULTIBYTE && !defined COMPILE_WIDE - const char *format_end = NULL; -#endif - - zone = NULL; -#if HAVE_TM_ZONE - /* The POSIX test suite assumes that setting - the environment variable TZ to a new value before calling strftime() - will influence the result (the %Z format) even if the information in - TP is computed with a totally different time zone. - This is bogus: though POSIX allows bad behavior like this, - POSIX does not require it. Do the right thing instead. */ - zone = (const char *) tp->tm_zone; -#endif -#if HAVE_TZNAME - if (ut) - { - if (! (zone && *zone)) - zone = "GMT"; - } - else - { - /* POSIX.1 8.1.1 requires that whenever strftime() is called, the - time zone names contained in the external variable `tzname' shall - be set as if the tzset() function had been called. */ -# if HAVE_TZSET - tzset (); -# endif - } -#endif - - if (hour12 > 12) - hour12 -= 12; - else - if (hour12 == 0) - hour12 = 12; - - for (f = format; *f != '\0'; ++f) - { - int pad = 0; /* Padding for number ('-', '_', or 0). */ - int modifier; /* Field modifier ('E', 'O', or 0). */ - int digits; /* Max digits for numeric format. */ - int number_value; /* Numeric value to be printed. */ - int negative_number; /* 1 if the number is negative. */ - const CHAR_T *subfmt; - CHAR_T *bufp; - CHAR_T buf[1 + (sizeof (int) < sizeof (time_t) - ? INT_STRLEN_BOUND (time_t) - : INT_STRLEN_BOUND (int))]; - int width = -1; - int to_lowcase = 0; - int to_uppcase = 0; - int change_case = 0; - int format_char; - -#if DO_MULTIBYTE && !defined COMPILE_WIDE - switch (*f) - { - case L_('%'): - break; - - case L_('\b'): case L_('\t'): case L_('\n'): - case L_('\v'): case L_('\f'): case L_('\r'): - case L_(' '): case L_('!'): case L_('"'): case L_('#'): case L_('&'): - case L_('\''): case L_('('): case L_(')'): case L_('*'): case L_('+'): - case L_(','): case L_('-'): case L_('.'): case L_('/'): case L_('0'): - case L_('1'): case L_('2'): case L_('3'): case L_('4'): case L_('5'): - case L_('6'): case L_('7'): case L_('8'): case L_('9'): case L_(':'): - case L_(';'): case L_('<'): case L_('='): case L_('>'): case L_('?'): - case L_('A'): case L_('B'): case L_('C'): case L_('D'): case L_('E'): - case L_('F'): case L_('G'): case L_('H'): case L_('I'): case L_('J'): - case L_('K'): case L_('L'): case L_('M'): case L_('N'): case L_('O'): - case L_('P'): case L_('Q'): case L_('R'): case L_('S'): case L_('T'): - case L_('U'): case L_('V'): case L_('W'): case L_('X'): case L_('Y'): - case L_('Z'): case L_('['): case L_('\\'): case L_(']'): case L_('^'): - case L_('_'): case L_('a'): case L_('b'): case L_('c'): case L_('d'): - case L_('e'): case L_('f'): case L_('g'): case L_('h'): case L_('i'): - case L_('j'): case L_('k'): case L_('l'): case L_('m'): case L_('n'): - case L_('o'): case L_('p'): case L_('q'): case L_('r'): case L_('s'): - case L_('t'): case L_('u'): case L_('v'): case L_('w'): case L_('x'): - case L_('y'): case L_('z'): case L_('{'): case L_('|'): case L_('}'): - case L_('~'): - /* The C Standard requires these 98 characters (plus '%') to - be in the basic execution character set. None of these - characters can start a multibyte sequence, so they need - not be analyzed further. */ - add (1, *p = *f); - continue; - - default: - /* Copy this multibyte sequence until we reach its end, find - an error, or come back to the initial shift state. */ - { - mbstate_t mbstate = mbstate_zero; - size_t len = 0; - size_t fsize; - - if (! format_end) - format_end = f + strlen (f) + 1; - fsize = format_end - f; - - do - { - size_t bytes = mbrlen (f + len, fsize - len, &mbstate); - - if (bytes == 0) - break; - - if (bytes == (size_t) -2) - { - len += strlen (f + len); - break; - } - - if (bytes == (size_t) -1) - { - len++; - break; - } - - len += bytes; - } - while (! mbsinit (&mbstate)); - - cpy (len, f); - f += len - 1; - continue; - } - } - -#else /* ! DO_MULTIBYTE */ - - /* Either multibyte encodings are not supported, they are - safe for formats, so any non-'%' byte can be copied through, - or this is the wide character version. */ - if (*f != L_('%')) - { - add (1, *p = *f); - continue; - } - -#endif /* ! DO_MULTIBYTE */ - - /* Check for flags that can modify a format. */ - while (1) - { - switch (*++f) - { - /* This influences the number formats. */ - case L_('_'): - case L_('-'): - case L_('0'): - pad = *f; - continue; - - /* This changes textual output. */ - case L_('^'): - to_uppcase = 1; - continue; - case L_('#'): - change_case = 1; - continue; - - default: - break; - } - break; - } - - /* As a GNU extension we allow to specify the field width. */ - if (ISDIGIT (*f)) - { - width = 0; - do - { - width *= 10; - width += *f - L_('0'); - ++f; - } - while (ISDIGIT (*f)); - } - - /* Check for modifiers. */ - switch (*f) - { - case L_('E'): - case L_('O'): - modifier = *f++; - break; - - default: - modifier = 0; - break; - } - - /* Now do the specified format. */ - format_char = *f; - switch (format_char) - { -#define DO_NUMBER(d, v) \ - digits = width == -1 ? d : width; \ - number_value = v; goto do_number -#define DO_NUMBER_SPACEPAD(d, v) \ - digits = width == -1 ? d : width; \ - number_value = v; goto do_number_spacepad - - case L_('%'): - if (modifier != 0) - goto bad_format; - add (1, *p = *f); - break; - - case L_('a'): - if (modifier != 0) - goto bad_format; - if (change_case) - { - to_uppcase = 1; - to_lowcase = 0; - } -#if defined _NL_CURRENT || !HAVE_STRFTIME - cpy (aw_len, a_wkday); - break; -#else - goto underlying_strftime; -#endif - - case 'A': - if (modifier != 0) - goto bad_format; - if (change_case) - { - to_uppcase = 1; - to_lowcase = 0; - } -#if defined _NL_CURRENT || !HAVE_STRFTIME - cpy (STRLEN (f_wkday), f_wkday); - break; -#else - goto underlying_strftime; -#endif - - case L_('b'): - case L_('h'): /* POSIX.2 extension. */ - if (change_case) - { - to_uppcase = 1; - to_lowcase = 0; - } - if (modifier != 0) - goto bad_format; -#if defined _NL_CURRENT || !HAVE_STRFTIME - cpy (am_len, a_month); - break; -#else - goto underlying_strftime; -#endif - - case L_('B'): - if (modifier != 0) - goto bad_format; - if (change_case) - { - to_uppcase = 1; - to_lowcase = 0; - } -#if defined _NL_CURRENT || !HAVE_STRFTIME - cpy (STRLEN (f_month), f_month); - break; -#else - goto underlying_strftime; -#endif - - case L_('c'): - if (modifier == L_('O')) - goto bad_format; -#ifdef _NL_CURRENT - if (! (modifier == 'E' - && (*(subfmt = - (const CHAR_T *) _NL_CURRENT (LC_TIME, - NLW(ERA_D_T_FMT))) - != '\0'))) - subfmt = (const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(D_T_FMT)); -#else -# if HAVE_STRFTIME - goto underlying_strftime; -# else - subfmt = L_("%a %b %e %H:%M:%S %Y"); -# endif -#endif - - subformat: - { - CHAR_T *old_start = p; - size_t len = my_strftime (NULL, (size_t) -1, subfmt, - tp extra_args); - add (len, my_strftime (p, maxsize - i, subfmt, - tp extra_args)); - - if (to_uppcase) - while (old_start < p) - { - *old_start = TOUPPER ((UCHAR_T) *old_start); - ++old_start; - } - } - break; - -#if HAVE_STRFTIME && ! (defined _NL_CURRENT && HAVE_STRUCT_ERA_ENTRY) - underlying_strftime: - { - /* The relevant information is available only via the - underlying strftime implementation, so use that. */ - char ufmt[4]; - char *u = ufmt; - char ubuf[1024]; /* enough for any single format in practice */ - size_t len; - /* Make sure we're calling the actual underlying strftime. - In some cases, config.h contains something like - "#define strftime rpl_strftime". */ -# ifdef strftime -# undef strftime - size_t strftime (); -# endif - - *u++ = '%'; - if (modifier != 0) - *u++ = modifier; - *u++ = format_char; - *u = '\0'; - len = strftime (ubuf, sizeof ubuf, ufmt, tp); - if (len == 0 && ubuf[0] != '\0') - return 0; - cpy (len, ubuf); - } - break; -#endif - - case L_('C'): /* POSIX.2 extension. */ - if (modifier == L_('O')) - goto bad_format; - if (modifier == L_('E')) - { -#if HAVE_STRUCT_ERA_ENTRY - struct era_entry *era = _nl_get_era_entry (tp); - if (era) - { -# ifdef COMPILE_WIDE - size_t len = __wcslen (era->era_wname); - cpy (len, era->era_wname); -# else - size_t len = strlen (era->era_name); - cpy (len, era->era_name); -# endif - break; - } -#else -# if HAVE_STRFTIME - goto underlying_strftime; -# endif -#endif - } - - { - int year = tp->tm_year + TM_YEAR_BASE; - DO_NUMBER (1, year / 100 - (year % 100 < 0)); - } - - case L_('x'): - if (modifier == L_('O')) - goto bad_format; -#ifdef _NL_CURRENT - if (! (modifier == L_('E') - && (*(subfmt = - (const CHAR_T *)_NL_CURRENT (LC_TIME, NLW(ERA_D_FMT))) - != L_('\0')))) - subfmt = (const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(D_FMT)); - goto subformat; -#else -# if HAVE_STRFTIME - goto underlying_strftime; -# else - /* Fall through. */ -# endif -#endif - case L_('D'): /* POSIX.2 extension. */ - if (modifier != 0) - goto bad_format; - subfmt = L_("%m/%d/%y"); - goto subformat; - - case L_('d'): - if (modifier == L_('E')) - goto bad_format; - - DO_NUMBER (2, tp->tm_mday); - - case L_('e'): /* POSIX.2 extension. */ - if (modifier == L_('E')) - goto bad_format; - - DO_NUMBER_SPACEPAD (2, tp->tm_mday); - - /* All numeric formats set DIGITS and NUMBER_VALUE and then - jump to one of these two labels. */ - - do_number_spacepad: - /* Force `_' flag unless overwritten by `0' flag. */ - if (pad != L_('0')) - pad = L_('_'); - - do_number: - /* Format the number according to the MODIFIER flag. */ - - if (modifier == L_('O') && 0 <= number_value) - { -#ifdef _NL_CURRENT - /* Get the locale specific alternate representation of - the number NUMBER_VALUE. If none exist NULL is returned. */ -# ifdef COMPILE_WIDE - const wchar_t *cp = _nl_get_walt_digit (number_value); -# else - const char *cp = _nl_get_alt_digit (number_value); -# endif - - if (cp != NULL) - { - size_t digitlen = STRLEN (cp); - if (digitlen != 0) - { - cpy (digitlen, cp); - break; - } - } -#else -# if HAVE_STRFTIME - goto underlying_strftime; -# endif -#endif - } - { - unsigned int u = number_value; - - bufp = buf + sizeof (buf) / sizeof (buf[0]); - negative_number = number_value < 0; - - if (negative_number) - u = -u; - - do - *--bufp = u % 10 + L_('0'); - while ((u /= 10) != 0); - } - - do_number_sign_and_padding: - if (negative_number) - *--bufp = L_('-'); - - if (pad != L_('-')) - { - int padding = digits - (buf + (sizeof (buf) / sizeof (buf[0])) - - bufp); - - if (pad == L_('_')) - { - while (0 < padding--) - *--bufp = L_(' '); - } - else - { - bufp += negative_number; - while (0 < padding--) - *--bufp = L_('0'); - if (negative_number) - *--bufp = L_('-'); - } - } - - cpy (buf + sizeof (buf) / sizeof (buf[0]) - bufp, bufp); - break; - - case L_('F'): - if (modifier != 0) - goto bad_format; - subfmt = L_("%Y-%m-%d"); - goto subformat; - - case L_('H'): - if (modifier == L_('E')) - goto bad_format; - - DO_NUMBER (2, tp->tm_hour); - - case L_('I'): - if (modifier == L_('E')) - goto bad_format; - - DO_NUMBER (2, hour12); - - case L_('k'): /* GNU extension. */ - if (modifier == L_('E')) - goto bad_format; - - DO_NUMBER_SPACEPAD (2, tp->tm_hour); - - case L_('l'): /* GNU extension. */ - if (modifier == L_('E')) - goto bad_format; - - DO_NUMBER_SPACEPAD (2, hour12); - - case L_('j'): - if (modifier == L_('E')) - goto bad_format; - - DO_NUMBER (3, 1 + tp->tm_yday); - - case L_('M'): - if (modifier == L_('E')) - goto bad_format; - - DO_NUMBER (2, tp->tm_min); - - case L_('m'): - if (modifier == L_('E')) - goto bad_format; - - DO_NUMBER (2, tp->tm_mon + 1); - - case L_('N'): /* GNU extension. */ - if (modifier == L_('E')) - goto bad_format; - - number_value = ns; - if (width != -1) - { - /* Take an explicit width less than 9 as a precision. */ - int j; - for (j = width; j < 9; j++) - number_value /= 10; - } - - DO_NUMBER (9, number_value); - - case L_('n'): /* POSIX.2 extension. */ - add (1, *p = L_('\n')); - break; - - case L_('P'): - to_lowcase = 1; -#if !defined _NL_CURRENT && HAVE_STRFTIME - format_char = L_('p'); -#endif - /* FALLTHROUGH */ - - case L_('p'): - if (change_case) - { - to_uppcase = 0; - to_lowcase = 1; - } -#if defined _NL_CURRENT || !HAVE_STRFTIME - cpy (ap_len, ampm); - break; -#else - goto underlying_strftime; -#endif - - case L_('R'): /* ISO C99 extension. */ - subfmt = L_("%H:%M"); - goto subformat; - - case L_('r'): /* POSIX.2 extension. */ -#ifdef _NL_CURRENT - if (*(subfmt = (const CHAR_T *) _NL_CURRENT (LC_TIME, - NLW(T_FMT_AMPM))) - == L_('\0')) -#endif - subfmt = L_("%I:%M:%S %p"); - goto subformat; - - case L_('S'): - if (modifier == L_('E')) - goto bad_format; - - DO_NUMBER (2, tp->tm_sec); - - case L_('s'): /* GNU extension. */ - { - struct tm ltm; - time_t t; - - ltm = *tp; - t = mktime (<m); - - /* Generate string value for T using time_t arithmetic; - this works even if sizeof (long) < sizeof (time_t). */ - - bufp = buf + sizeof (buf) / sizeof (buf[0]); - negative_number = t < 0; - - do - { - int d = t % 10; - t /= 10; - - if (negative_number) - { - d = -d; - - /* Adjust if division truncates to minus infinity. */ - if (0 < -1 % 10 && d < 0) - { - t++; - d += 10; - } - } - - *--bufp = d + L_('0'); - } - while (t != 0); - - digits = 1; - goto do_number_sign_and_padding; - } - - case L_('X'): - if (modifier == L_('O')) - goto bad_format; -#ifdef _NL_CURRENT - if (! (modifier == L_('E') - && (*(subfmt = - (const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(ERA_T_FMT))) - != L_('\0')))) - subfmt = (const CHAR_T *) _NL_CURRENT (LC_TIME, NLW(T_FMT)); - goto subformat; -#else -# if HAVE_STRFTIME - goto underlying_strftime; -# else - /* Fall through. */ -# endif -#endif - case L_('T'): /* POSIX.2 extension. */ - subfmt = L_("%H:%M:%S"); - goto subformat; - - case L_('t'): /* POSIX.2 extension. */ - add (1, *p = L_('\t')); - break; - - case L_('u'): /* POSIX.2 extension. */ - DO_NUMBER (1, (tp->tm_wday - 1 + 7) % 7 + 1); - - case L_('U'): - if (modifier == L_('E')) - goto bad_format; - - DO_NUMBER (2, (tp->tm_yday - tp->tm_wday + 7) / 7); - - case L_('V'): - case L_('g'): /* ISO C99 extension. */ - case L_('G'): /* ISO C99 extension. */ - if (modifier == L_('E')) - goto bad_format; - { - int year = tp->tm_year + TM_YEAR_BASE; - int days = iso_week_days (tp->tm_yday, tp->tm_wday); - - if (days < 0) - { - /* This ISO week belongs to the previous year. */ - year--; - days = iso_week_days (tp->tm_yday + (365 + __isleap (year)), - tp->tm_wday); - } - else - { - int d = iso_week_days (tp->tm_yday - (365 + __isleap (year)), - tp->tm_wday); - if (0 <= d) - { - /* This ISO week belongs to the next year. */ - year++; - days = d; - } - } - - switch (*f) - { - case L_('g'): - DO_NUMBER (2, (year % 100 + 100) % 100); - - case L_('G'): - DO_NUMBER (1, year); - - default: - DO_NUMBER (2, days / 7 + 1); - } - } - - case L_('W'): - if (modifier == L_('E')) - goto bad_format; - - DO_NUMBER (2, (tp->tm_yday - (tp->tm_wday - 1 + 7) % 7 + 7) / 7); - - case L_('w'): - if (modifier == L_('E')) - goto bad_format; - - DO_NUMBER (1, tp->tm_wday); - - case L_('Y'): - if (modifier == 'E') - { -#if HAVE_STRUCT_ERA_ENTRY - struct era_entry *era = _nl_get_era_entry (tp); - if (era) - { -# ifdef COMPILE_WIDE - subfmt = era->era_wformat; -# else - subfmt = era->era_format; -# endif - goto subformat; - } -#else -# if HAVE_STRFTIME - goto underlying_strftime; -# endif -#endif - } - if (modifier == L_('O')) - goto bad_format; - else - DO_NUMBER (1, tp->tm_year + TM_YEAR_BASE); - - case L_('y'): - if (modifier == L_('E')) - { -#if HAVE_STRUCT_ERA_ENTRY - struct era_entry *era = _nl_get_era_entry (tp); - if (era) - { - int delta = tp->tm_year - era->start_date[0]; - DO_NUMBER (1, (era->offset - + delta * era->absolute_direction)); - } -#else -# if HAVE_STRFTIME - goto underlying_strftime; -# endif -#endif - } - DO_NUMBER (2, (tp->tm_year % 100 + 100) % 100); - - case L_('Z'): - if (change_case) - { - to_uppcase = 0; - to_lowcase = 1; - } - -#if HAVE_TZNAME - /* The tzset() call might have changed the value. */ - if (!(zone && *zone) && tp->tm_isdst >= 0) - zone = tzname[tp->tm_isdst]; -#endif - if (! zone) - zone = ""; /* POSIX.2 requires the empty string here. */ - -#ifdef COMPILE_WIDE - { - /* The zone string is always given in multibyte form. We have - to transform it first. */ - wchar_t *wczone; - size_t len; - widen (zone, wczone, len); - cpy (len, wczone); - } -#else - cpy (strlen (zone), zone); -#endif - break; - - case L_('z'): /* ISO C99 extension. */ - if (tp->tm_isdst < 0) - break; - - { - int diff; -#if HAVE_TM_GMTOFF - diff = tp->tm_gmtoff; -#else - if (ut) - diff = 0; - else - { - struct tm gtm; - struct tm ltm; - time_t lt; - - ltm = *tp; - lt = mktime (<m); - - if (lt == (time_t) -1) - { - /* mktime returns -1 for errors, but -1 is also a - valid time_t value. Check whether an error really - occurred. */ - struct tm tm; - - if (! my_strftime_localtime_r (<, &tm) - || ((ltm.tm_sec ^ tm.tm_sec) - | (ltm.tm_min ^ tm.tm_min) - | (ltm.tm_hour ^ tm.tm_hour) - | (ltm.tm_mday ^ tm.tm_mday) - | (ltm.tm_mon ^ tm.tm_mon) - | (ltm.tm_year ^ tm.tm_year))) - break; - } - - if (! my_strftime_gmtime_r (<, >m)) - break; - - diff = tm_diff (<m, >m); - } -#endif - - if (diff < 0) - { - add (1, *p = L_('-')); - diff = -diff; - } - else - add (1, *p = L_('+')); - - diff /= 60; - DO_NUMBER (4, (diff / 60) * 100 + diff % 60); - } - - case L_('\0'): /* GNU extension: % at end of format. */ - --f; - /* Fall through. */ - default: - /* Unknown format; output the format, including the '%', - since this is most likely the right thing to do if a - multibyte string has been misparsed. */ - bad_format: - { - int flen; - for (flen = 1; f[1 - flen] != L_('%'); flen++) - continue; - cpy (flen, &f[1 - flen]); - } - break; - } - } - - if (p && maxsize != 0) - *p = L_('\0'); - return i; -} - - -#ifdef emacs -/* For Emacs we have a separate interface which corresponds to the normal - strftime function plus the ut argument, but without the ns argument. */ -size_t -emacs_strftimeu (s, maxsize, format, tp, ut) - char *s; - size_t maxsize; - const char *format; - const struct tm *tp; - int ut; -{ - return my_strftime (s, maxsize, format, tp, ut, 0); -} -#endif diff --git a/gnu/dist/diffutils/lib/strtoimax.c b/gnu/dist/diffutils/lib/strtoimax.c deleted file mode 100644 index c86d77959f1..00000000000 --- a/gnu/dist/diffutils/lib/strtoimax.c +++ /dev/null @@ -1,103 +0,0 @@ -/* $NetBSD: strtoimax.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* Convert string representation of a number into an intmax_t value. - - Copyright (C) 1999, 2001 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* Written by Paul Eggert. */ - -#if HAVE_CONFIG_H -# include -#endif - -#if HAVE_INTTYPES_H -# include -#endif - -#if HAVE_STDLIB_H -# include -#endif - -#ifndef PARAMS -# if defined PROTOTYPES || defined __STDC__ -# define PARAMS(Args) Args -# else -# define PARAMS(Args) () -# endif -#endif - -/* Verify a requirement at compile-time (unlike assert, which is runtime). */ -#define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; } - -#ifdef UNSIGNED -# ifndef HAVE_DECL_STRTOUL -"this configure-time declaration test was not run" -# endif -# if !HAVE_DECL_STRTOUL -unsigned long strtoul PARAMS ((char const *, char **, int)); -# endif -# ifndef HAVE_DECL_STRTOULL -"this configure-time declaration test was not run" -# endif -# if !HAVE_DECL_STRTOULL && HAVE_UNSIGNED_LONG_LONG -unsigned long long strtoull PARAMS ((char const *, char **, int)); -# endif - -#else - -# ifndef HAVE_DECL_STRTOL -"this configure-time declaration test was not run" -# endif -# if !HAVE_DECL_STRTOL -long strtol PARAMS ((char const *, char **, int)); -# endif -# ifndef HAVE_DECL_STRTOLL -"this configure-time declaration test was not run" -# endif -# if !HAVE_DECL_STRTOLL && HAVE_UNSIGNED_LONG_LONG -long long strtoll PARAMS ((char const *, char **, int)); -# endif -#endif - -#ifdef UNSIGNED -# undef HAVE_LONG_LONG -# define HAVE_LONG_LONG HAVE_UNSIGNED_LONG_LONG -# define INT uintmax_t -# define strtoimax strtoumax -# define strtol strtoul -# define strtoll strtoull -#else -# define INT intmax_t -#endif - -INT -strtoimax (char const *ptr, char **endptr, int base) -{ -#if HAVE_LONG_LONG - verify (size_is_that_of_long_or_long_long, - (sizeof (INT) == sizeof (long) - || sizeof (INT) == sizeof (long long))); - - if (sizeof (INT) != sizeof (long)) - return strtoll (ptr, endptr, base); -#else - verify (size_is_that_of_long, - sizeof (INT) == sizeof (long)); -#endif - - return strtol (ptr, endptr, base); -} diff --git a/gnu/dist/diffutils/lib/strtol.c b/gnu/dist/diffutils/lib/strtol.c deleted file mode 100644 index f8efabdf44a..00000000000 --- a/gnu/dist/diffutils/lib/strtol.c +++ /dev/null @@ -1,474 +0,0 @@ -/* $NetBSD: strtol.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* Convert string representation of a number into an integer value. - Copyright (C) 1991, 92, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc. - NOTE: The canonical source of this file is maintained with the GNU C - Library. Bugs can be reported to bug-glibc@gnu.org. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) any - later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#if HAVE_CONFIG_H -# include -#endif - -#ifdef _LIBC -# define USE_NUMBER_GROUPING -# define STDC_HEADERS -# define HAVE_LIMITS_H -#endif - -#include -#include -#ifndef errno -extern int errno; -#endif -#ifndef __set_errno -# define __set_errno(Val) errno = (Val) -#endif - -#ifdef HAVE_LIMITS_H -# include -#endif - -#ifdef STDC_HEADERS -# include -# include -# include -#else -# ifndef NULL -# define NULL 0 -# endif -#endif - -#ifdef USE_NUMBER_GROUPING -# include "../locale/localeinfo.h" -#endif - -/* Nonzero if we are defining `strtoul' or `strtoull', operating on - unsigned integers. */ -#ifndef UNSIGNED -# define UNSIGNED 0 -# define INT LONG int -#else -# define INT unsigned LONG int -#endif - -/* Determine the name. */ -#ifdef USE_IN_EXTENDED_LOCALE_MODEL -# if UNSIGNED -# ifdef USE_WIDE_CHAR -# ifdef QUAD -# define strtol __wcstoull_l -# else -# define strtol __wcstoul_l -# endif -# else -# ifdef QUAD -# define strtol __strtoull_l -# else -# define strtol __strtoul_l -# endif -# endif -# else -# ifdef USE_WIDE_CHAR -# ifdef QUAD -# define strtol __wcstoll_l -# else -# define strtol __wcstol_l -# endif -# else -# ifdef QUAD -# define strtol __strtoll_l -# else -# define strtol __strtol_l -# endif -# endif -# endif -#else -# if UNSIGNED -# ifdef USE_WIDE_CHAR -# ifdef QUAD -# define strtol wcstoull -# else -# define strtol wcstoul -# endif -# else -# ifdef QUAD -# define strtol strtoull -# else -# define strtol strtoul -# endif -# endif -# else -# ifdef USE_WIDE_CHAR -# ifdef QUAD -# define strtol wcstoll -# else -# define strtol wcstol -# endif -# else -# ifdef QUAD -# define strtol strtoll -# endif -# endif -# endif -#endif - -/* If QUAD is defined, we are defining `strtoll' or `strtoull', - operating on `long long int's. */ -#ifdef QUAD -# define LONG long long -# define STRTOL_LONG_MIN LONG_LONG_MIN -# define STRTOL_LONG_MAX LONG_LONG_MAX -# define STRTOL_ULONG_MAX ULONG_LONG_MAX - -/* The extra casts work around common compiler bugs, - e.g. Cray C 5.0.3.0 when t == time_t. */ -# ifndef TYPE_SIGNED -# define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) -# endif -# ifndef TYPE_MINIMUM -# define TYPE_MINIMUM(t) ((t) (TYPE_SIGNED (t) \ - ? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) \ - : (t) 0)) -# endif -# ifndef TYPE_MAXIMUM -# define TYPE_MAXIMUM(t) ((t) (~ (t) 0 - TYPE_MINIMUM (t))) -# endif - -# ifndef ULONG_LONG_MAX -# define ULONG_LONG_MAX TYPE_MAXIMUM (unsigned long long) -# endif -# ifndef LONG_LONG_MAX -# define LONG_LONG_MAX TYPE_MAXIMUM (long long int) -# endif -# ifndef LONG_LONG_MIN -# define LONG_LONG_MIN TYPE_MINIMUM (long long int) -# endif - -# if __GNUC__ == 2 && __GNUC_MINOR__ < 7 - /* Work around gcc bug with using this constant. */ - static const unsigned long long int maxquad = ULONG_LONG_MAX; -# undef STRTOL_ULONG_MAX -# define STRTOL_ULONG_MAX maxquad -# endif -#else -# define LONG long - -# ifndef ULONG_MAX -# define ULONG_MAX ((unsigned long) ~(unsigned long) 0) -# endif -# ifndef LONG_MAX -# define LONG_MAX ((long int) (ULONG_MAX >> 1)) -# endif -# define STRTOL_LONG_MIN LONG_MIN -# define STRTOL_LONG_MAX LONG_MAX -# define STRTOL_ULONG_MAX ULONG_MAX -#endif - - -/* We use this code also for the extended locale handling where the - function gets as an additional argument the locale which has to be - used. To access the values we have to redefine the _NL_CURRENT - macro. */ -#ifdef USE_IN_EXTENDED_LOCALE_MODEL -# undef _NL_CURRENT -# define _NL_CURRENT(category, item) \ - (current->values[_NL_ITEM_INDEX (item)].string) -# define LOCALE_PARAM , loc -# define LOCALE_PARAM_DECL __locale_t loc; -#else -# define LOCALE_PARAM -# define LOCALE_PARAM_DECL -#endif - -#if defined _LIBC || defined HAVE_WCHAR_H -# include -#endif - -#ifdef USE_WIDE_CHAR -# include -# define L_(Ch) L##Ch -# define UCHAR_TYPE wint_t -# define STRING_TYPE wchar_t -# ifdef USE_IN_EXTENDED_LOCALE_MODEL -# define ISSPACE(Ch) __iswspace_l ((Ch), loc) -# define ISALPHA(Ch) __iswalpha_l ((Ch), loc) -# define TOUPPER(Ch) __towupper_l ((Ch), loc) -# else -# define ISSPACE(Ch) iswspace (Ch) -# define ISALPHA(Ch) iswalpha (Ch) -# define TOUPPER(Ch) towupper (Ch) -# endif -#else -# if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII) -# define IN_CTYPE_DOMAIN(c) 1 -# else -# define IN_CTYPE_DOMAIN(c) isascii(c) -# endif -# define L_(Ch) Ch -# define UCHAR_TYPE unsigned char -# define STRING_TYPE char -# ifdef USE_IN_EXTENDED_LOCALE_MODEL -# define ISSPACE(Ch) __isspace_l ((Ch), loc) -# define ISALPHA(Ch) __isalpha_l ((Ch), loc) -# define TOUPPER(Ch) __toupper_l ((Ch), loc) -# else -# define ISSPACE(Ch) (IN_CTYPE_DOMAIN (Ch) && isspace (Ch)) -# define ISALPHA(Ch) (IN_CTYPE_DOMAIN (Ch) && isalpha (Ch)) -# define TOUPPER(Ch) (IN_CTYPE_DOMAIN (Ch) ? toupper (Ch) : (Ch)) -# endif -#endif - -/* For compilers which are ansi but don't define __STDC__, like SGI - Irix-4.0.5 cc, also check whether PROTOTYPES is defined. */ -#if defined (__STDC__) || defined (PROTOTYPES) -# define INTERNAL(X) INTERNAL1(X) -# define INTERNAL1(X) __##X##_internal -# define WEAKNAME(X) WEAKNAME1(X) -#else -# define INTERNAL(X) __/**/X/**/_internal -#endif - -#ifdef USE_NUMBER_GROUPING -/* This file defines a function to check for correct grouping. */ -# include "grouping.h" -#endif - - - -/* Convert NPTR to an `unsigned long int' or `long int' in base BASE. - If BASE is 0 the base is determined by the presence of a leading - zero, indicating octal or a leading "0x" or "0X", indicating hexadecimal. - If BASE is < 2 or > 36, it is reset to 10. - If ENDPTR is not NULL, a pointer to the character after the last - one converted is stored in *ENDPTR. */ - -INT -INTERNAL (strtol) (nptr, endptr, base, group LOCALE_PARAM) - const STRING_TYPE *nptr; - STRING_TYPE **endptr; - int base; - int group; - LOCALE_PARAM_DECL -{ - int negative; - register unsigned LONG int cutoff; - register unsigned int cutlim; - register unsigned LONG int i; - register const STRING_TYPE *s; - register UCHAR_TYPE c; - const STRING_TYPE *save, *end; - int overflow; - -#ifdef USE_NUMBER_GROUPING -# ifdef USE_IN_EXTENDED_LOCALE_MODEL - struct locale_data *current = loc->__locales[LC_NUMERIC]; -# endif - /* The thousands character of the current locale. */ - wchar_t thousands = L'\0'; - /* The numeric grouping specification of the current locale, - in the format described in . */ - const char *grouping; - - if (group) - { - grouping = _NL_CURRENT (LC_NUMERIC, GROUPING); - if (*grouping <= 0 || *grouping == CHAR_MAX) - grouping = NULL; - else - { - /* Figure out the thousands separator character. */ -# if defined _LIBC || defined _HAVE_BTOWC - thousands = __btowc (*_NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP)); - if (thousands == WEOF) - thousands = L'\0'; -# endif - if (thousands == L'\0') - grouping = NULL; - } - } - else - grouping = NULL; -#endif - - if (base < 0 || base == 1 || base > 36) - { - __set_errno (EINVAL); - return 0; - } - - save = s = nptr; - - /* Skip white space. */ - while (ISSPACE (*s)) - ++s; - if (*s == L_('\0')) - goto noconv; - - /* Check for a sign. */ - if (*s == L_('-')) - { - negative = 1; - ++s; - } - else if (*s == L_('+')) - { - negative = 0; - ++s; - } - else - negative = 0; - - /* Recognize number prefix and if BASE is zero, figure it out ourselves. */ - if (*s == L_('0')) - { - if ((base == 0 || base == 16) && TOUPPER (s[1]) == L_('X')) - { - s += 2; - base = 16; - } - else if (base == 0) - base = 8; - } - else if (base == 0) - base = 10; - - /* Save the pointer so we can check later if anything happened. */ - save = s; - -#ifdef USE_NUMBER_GROUPING - if (group) - { - /* Find the end of the digit string and check its grouping. */ - end = s; - for (c = *end; c != L_('\0'); c = *++end) - if ((wchar_t) c != thousands - && ((wchar_t) c < L_('0') || (wchar_t) c > L_('9')) - && (!ISALPHA (c) || (int) (TOUPPER (c) - L_('A') + 10) >= base)) - break; - if (*s == thousands) - end = s; - else - end = correctly_grouped_prefix (s, end, thousands, grouping); - } - else -#endif - end = NULL; - - cutoff = STRTOL_ULONG_MAX / (unsigned LONG int) base; - cutlim = STRTOL_ULONG_MAX % (unsigned LONG int) base; - - overflow = 0; - i = 0; - for (c = *s; c != L_('\0'); c = *++s) - { - if (s == end) - break; - if (c >= L_('0') && c <= L_('9')) - c -= L_('0'); - else if (ISALPHA (c)) - c = TOUPPER (c) - L_('A') + 10; - else - break; - if ((int) c >= base) - break; - /* Check for overflow. */ - if (i > cutoff || (i == cutoff && c > cutlim)) - overflow = 1; - else - { - i *= (unsigned LONG int) base; - i += c; - } - } - - /* Check if anything actually happened. */ - if (s == save) - goto noconv; - - /* Store in ENDPTR the address of one character - past the last character we converted. */ - if (endptr != NULL) - *endptr = (STRING_TYPE *) s; - -#if !UNSIGNED - /* Check for a value that is within the range of - `unsigned LONG int', but outside the range of `LONG int'. */ - if (overflow == 0 - && i > (negative - ? -((unsigned LONG int) (STRTOL_LONG_MIN + 1)) + 1 - : (unsigned LONG int) STRTOL_LONG_MAX)) - overflow = 1; -#endif - - if (overflow) - { - __set_errno (ERANGE); -#if UNSIGNED - return STRTOL_ULONG_MAX; -#else - return negative ? STRTOL_LONG_MIN : STRTOL_LONG_MAX; -#endif - } - - /* Return the result of the appropriate sign. */ - return negative ? -i : i; - -noconv: - /* We must handle a special case here: the base is 0 or 16 and the - first two characters are '0' and 'x', but the rest are no - hexadecimal digits. This is no error case. We return 0 and - ENDPTR points to the `x`. */ - if (endptr != NULL) - { - if (save - nptr >= 2 && TOUPPER (save[-1]) == L_('X') - && save[-2] == L_('0')) - *endptr = (STRING_TYPE *) &save[-1]; - else - /* There was no number to convert. */ - *endptr = (STRING_TYPE *) nptr; - } - - return 0L; -} - -/* External user entry point. */ - -#if _LIBC - 0 == 0 -# undef PARAMS -# if defined (__STDC__) && __STDC__ -# define PARAMS(Args) Args -# else -# define PARAMS(Args) () -# endif - -/* Prototype. */ -INT strtol PARAMS ((const STRING_TYPE *nptr, STRING_TYPE **endptr, int base)); -#endif - - -INT -#ifdef weak_function -weak_function -#endif -strtol (nptr, endptr, base LOCALE_PARAM) - const STRING_TYPE *nptr; - STRING_TYPE **endptr; - int base; - LOCALE_PARAM_DECL -{ - return INTERNAL (strtol) (nptr, endptr, base, 0 LOCALE_PARAM); -} diff --git a/gnu/dist/diffutils/lib/strtoul.c b/gnu/dist/diffutils/lib/strtoul.c deleted file mode 100644 index 3f7305a794f..00000000000 --- a/gnu/dist/diffutils/lib/strtoul.c +++ /dev/null @@ -1,24 +0,0 @@ -/* $NetBSD: strtoul.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* Copyright (C) 1991, 1999, 2001 Free Software Foundation, Inc. - -NOTE: The canonical source of this file is maintained with the GNU C Library. -Bugs can be reported to bug-glibc@prep.ai.mit.edu. - -This program is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; either version 2, or (at your option) any -later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software Foundation, -Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#define UNSIGNED 1 - -#include "strtol.c" diff --git a/gnu/dist/diffutils/lib/strtoull.c b/gnu/dist/diffutils/lib/strtoull.c deleted file mode 100644 index 342584c96bd..00000000000 --- a/gnu/dist/diffutils/lib/strtoull.c +++ /dev/null @@ -1,29 +0,0 @@ -/* $NetBSD: strtoull.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* Function to parse an `unsigned long long int' from text. - Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc. - NOTE: The canonical source of this file is maintained with the GNU C - Library. Bugs can be reported to bug-glibc@gnu.org. - - This program is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2, or (at your option) any - later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#define QUAD 1 - -#include "strtoul.c" - -#ifdef _LIBC -strong_alias (__strtoull_internal, __strtouq_internal) -weak_alias (strtoull, strtouq) -#endif diff --git a/gnu/dist/diffutils/lib/strtoumax.c b/gnu/dist/diffutils/lib/strtoumax.c deleted file mode 100644 index 849b61bf04d..00000000000 --- a/gnu/dist/diffutils/lib/strtoumax.c +++ /dev/null @@ -1,4 +0,0 @@ -/* $NetBSD: strtoumax.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -#define UNSIGNED 1 -#include "strtoimax.c" diff --git a/gnu/dist/diffutils/lib/tempname.c b/gnu/dist/diffutils/lib/tempname.c deleted file mode 100644 index 6c359274961..00000000000 --- a/gnu/dist/diffutils/lib/tempname.c +++ /dev/null @@ -1,344 +0,0 @@ -/* $NetBSD: tempname.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* Copyright (C) 1991-1999, 2000, 2001 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#if HAVE_CONFIG_H -# include -#endif - -#include -#include - -#include -#ifndef __set_errno -# define __set_errno(Val) errno = (Val) -#endif - -#include -#ifndef P_tmpdir -# define P_tmpdir "/tmp" -#endif -#ifndef TMP_MAX -# define TMP_MAX 238328 -#endif -#ifndef __GT_FILE -# define __GT_FILE 0 -# define __GT_BIGFILE 1 -# define __GT_DIR 2 -# define __GT_NOCREATE 3 -#endif - -#if STDC_HEADERS || _LIBC -# include -# include -#endif - -#include - -#if HAVE_FCNTL_H || _LIBC -# include -#endif - -#if HAVE_SYS_TIME_H || _LIBC -# include -#endif - -#if HAVE_STDINT_H || _LIBC -# include -#endif - -#if HAVE_UNISTD_H || _LIBC -# include -#endif - -#include -#if STAT_MACROS_BROKEN -# undef S_ISDIR -#endif -#if !defined S_ISDIR && defined S_IFDIR -# define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) -#endif -#if !S_IRUSR && S_IREAD -# define S_IRUSR S_IREAD -#endif -#if !S_IRUSR -# define S_IRUSR 00400 -#endif -#if !S_IWUSR && S_IWRITE -# define S_IWUSR S_IWRITE -#endif -#if !S_IWUSR -# define S_IWUSR 00200 -#endif -#if !S_IXUSR && S_IEXEC -# define S_IXUSR S_IEXEC -#endif -#if !S_IXUSR -# define S_IXUSR 00100 -#endif - -#if _LIBC -# define struct_stat64 struct stat64 -#else -# define struct_stat64 struct stat -# define __getpid getpid -# define __gettimeofday gettimeofday -# define __mkdir mkdir -# define __open open -# define __open64 open -# define __lxstat64(version, path, buf) lstat (path, buf) -# define __xstat64(version, path, buf) stat (path, buf) -#endif - -#if ! (HAVE___SECURE_GETENV || _LIBC) -# define __secure_getenv getenv -#endif - -#ifdef _LIBC -# include -# if HP_TIMING_AVAIL -# define RANDOM_BITS(Var) \ - if (__builtin_expect (value == UINT64_C (0), 0)) \ - { \ - /* If this is the first time this function is used initialize \ - the variable we accumulate the value in to some somewhat \ - random value. If we'd not do this programs at startup time \ - might have a reduced set of possible names, at least on slow \ - machines. */ \ - struct timeval tv; \ - __gettimeofday (&tv, NULL); \ - value = ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec; \ - } \ - HP_TIMING_NOW (Var) -# endif -#endif - -/* Use the widest available unsigned type if uint64_t is not - available. The algorithm below extracts a number less than 62**6 - (approximately 2**35.725) from uint64_t, so ancient hosts where - uintmax_t is only 32 bits lose about 3.725 bits of randomness, - which is better than not having mkstemp at all. */ -#if !defined UINT64_MAX && !defined uint64_t -# define uint64_t uintmax_t -#endif - -/* Return nonzero if DIR is an existent directory. */ -static int -direxists (const char *dir) -{ - struct_stat64 buf; - return __xstat64 (_STAT_VER, dir, &buf) == 0 && S_ISDIR (buf.st_mode); -} - -/* Path search algorithm, for tmpnam, tmpfile, etc. If DIR is - non-null and exists, uses it; otherwise uses the first of $TMPDIR, - P_tmpdir, /tmp that exists. Copies into TMPL a template suitable - for use with mk[s]temp. Will fail (-1) if DIR is non-null and - doesn't exist, none of the searched dirs exists, or there's not - enough space in TMPL. */ -int -__path_search (char *tmpl, size_t tmpl_len, const char *dir, const char *pfx, - int try_tmpdir) -{ - const char *d; - size_t dlen, plen; - - if (!pfx || !pfx[0]) - { - pfx = "file"; - plen = 4; - } - else - { - plen = strlen (pfx); - if (plen > 5) - plen = 5; - } - - if (try_tmpdir) - { - d = __secure_getenv ("TMPDIR"); - if (d != NULL && direxists (d)) - dir = d; - else if (dir != NULL && direxists (dir)) - /* nothing */ ; - else - dir = NULL; - } - if (dir == NULL) - { - if (direxists (P_tmpdir)) - dir = P_tmpdir; - else if (strcmp (P_tmpdir, "/tmp") != 0 && direxists ("/tmp")) - dir = "/tmp"; - else - { - __set_errno (ENOENT); - return -1; - } - } - - dlen = strlen (dir); - while (dlen > 1 && dir[dlen - 1] == '/') - dlen--; /* remove trailing slashes */ - - /* check we have room for "${dir}/${pfx}XXXXXX\0" */ - if (tmpl_len < dlen + 1 + plen + 6 + 1) - { - __set_errno (EINVAL); - return -1; - } - - sprintf (tmpl, "%.*s/%.*sXXXXXX", (int) dlen, dir, (int) plen, pfx); - return 0; -} - -/* These are the characters used in temporary filenames. */ -static const char letters[] = -"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; - -/* Generate a temporary file name based on TMPL. TMPL must match the - rules for mk[s]temp (i.e. end in "XXXXXX"). The name constructed - does not exist at the time of the call to __gen_tempname. TMPL is - overwritten with the result. - - KIND may be one of: - __GT_NOCREATE: simply verify that the name does not exist - at the time of the call. - __GT_FILE: create the file using open(O_CREAT|O_EXCL) - and return a read-write fd. The file is mode 0600. - __GT_BIGFILE: same as __GT_FILE but use open64(). - __GT_DIR: create a directory, which will be mode 0700. - - We use a clever algorithm to get hard-to-predict names. */ -int -__gen_tempname (char *tmpl, int kind) -{ - int len; - char *XXXXXX; - static uint64_t value; - uint64_t random_time_bits; - unsigned int count; - int fd = -1; - int save_errno = errno; - struct_stat64 st; - - /* A lower bound on the number of temporary files to attempt to - generate. The maximum total number of temporary file names that - can exist for a given template is 62**6. It should never be - necessary to try all these combinations. Instead if a reasonable - number of names is tried (we define reasonable as 62**3) fail to - give the system administrator the chance to remove the problems. */ - unsigned int attempts_min = 62 * 62 * 62; - - /* The number of times to attempt to generate a temporary file. To - conform to POSIX, this must be no smaller than TMP_MAX. */ - unsigned int attempts = attempts_min < TMP_MAX ? TMP_MAX : attempts_min; - - len = strlen (tmpl); - if (len < 6 || strcmp (&tmpl[len - 6], "XXXXXX")) - { - __set_errno (EINVAL); - return -1; - } - - /* This is where the Xs start. */ - XXXXXX = &tmpl[len - 6]; - - /* Get some more or less random data. */ -#ifdef RANDOM_BITS - RANDOM_BITS (random_time_bits); -#else -# if HAVE_GETTIMEOFDAY || _LIBC - { - struct timeval tv; - __gettimeofday (&tv, NULL); - random_time_bits = ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec; - } -# else - random_time_bits = time (NULL); -# endif -#endif - value += random_time_bits ^ __getpid (); - - for (count = 0; count < attempts; value += 7777, ++count) - { - uint64_t v = value; - - /* Fill in the random bits. */ - XXXXXX[0] = letters[v % 62]; - v /= 62; - XXXXXX[1] = letters[v % 62]; - v /= 62; - XXXXXX[2] = letters[v % 62]; - v /= 62; - XXXXXX[3] = letters[v % 62]; - v /= 62; - XXXXXX[4] = letters[v % 62]; - v /= 62; - XXXXXX[5] = letters[v % 62]; - - switch (kind) - { - case __GT_FILE: - fd = __open (tmpl, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); - break; - - case __GT_BIGFILE: - fd = __open64 (tmpl, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR); - break; - - case __GT_DIR: - fd = __mkdir (tmpl, S_IRUSR | S_IWUSR | S_IXUSR); - break; - - case __GT_NOCREATE: - /* This case is backward from the other three. __gen_tempname - succeeds if __xstat fails because the name does not exist. - Note the continue to bypass the common logic at the bottom - of the loop. */ - if (__lxstat64 (_STAT_VER, tmpl, &st) < 0) - { - if (errno == ENOENT) - { - __set_errno (save_errno); - return 0; - } - else - /* Give up now. */ - return -1; - } - continue; - - default: - assert (! "invalid KIND in __gen_tempname"); - } - - if (fd >= 0) - { - __set_errno (save_errno); - return fd; - } - else if (errno != EEXIST) - return -1; - } - - /* We got out of the loop because we ran out of combinations to try. */ - __set_errno (EEXIST); - return -1; -} diff --git a/gnu/dist/diffutils/lib/umaxtostr.c b/gnu/dist/diffutils/lib/umaxtostr.c deleted file mode 100644 index 2ee6dbefc43..00000000000 --- a/gnu/dist/diffutils/lib/umaxtostr.c +++ /dev/null @@ -1,5 +0,0 @@ -/* $NetBSD: umaxtostr.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -#define inttostr umaxtostr -#define inttype uintmax_t -#include "inttostr.c" diff --git a/gnu/dist/diffutils/lib/unlocked-io.h b/gnu/dist/diffutils/lib/unlocked-io.h deleted file mode 100644 index a649802c066..00000000000 --- a/gnu/dist/diffutils/lib/unlocked-io.h +++ /dev/null @@ -1,71 +0,0 @@ -/* $NetBSD: unlocked-io.h,v 1.1.1.1 2003/01/26 00:43:14 wiz Exp $ */ - -#ifndef UNLOCKED_IO_H -# define UNLOCKED_IO_H 1 - -# ifndef USE_UNLOCKED_IO -# define USE_UNLOCKED_IO 1 -# endif - -# if USE_UNLOCKED_IO - -/* These are wrappers for functions/macros from GNU libc. - The standard I/O functions are thread-safe. These *_unlocked ones are - more efficient but not thread-safe. That they're not thread-safe is - fine since all of the applications in this package are single threaded. */ - -# if HAVE_DECL_CLEARERR_UNLOCKED -# undef clearerr -# define clearerr(x) clearerr_unlocked (x) -# endif -# if HAVE_DECL_FEOF_UNLOCKED -# undef feof -# define feof(x) feof_unlocked (x) -# endif -# if HAVE_DECL_FERROR_UNLOCKED -# undef ferror -# define ferror(x) ferror_unlocked (x) -# endif -# if HAVE_DECL_FFLUSH_UNLOCKED -# undef fflush -# define fflush(x) fflush_unlocked (x) -# endif -# if HAVE_DECL_FGETS_UNLOCKED -# undef fgets -# define fgets(x,y,z) fgets_unlocked (x,y,z) -# endif -# if HAVE_DECL_FPUTC_UNLOCKED -# undef fputc -# define fputc(x,y) fputc_unlocked (x,y) -# endif -# if HAVE_DECL_FPUTS_UNLOCKED -# undef fputs -# define fputs(x,y) fputs_unlocked (x,y) -# endif -# if HAVE_DECL_FREAD_UNLOCKED -# undef fread -# define fread(w,x,y,z) fread_unlocked (w,x,y,z) -# endif -# if HAVE_DECL_FWRITE_UNLOCKED -# undef fwrite -# define fwrite(w,x,y,z) fwrite_unlocked (w,x,y,z) -# endif -# if HAVE_DECL_GETC_UNLOCKED -# undef getc -# define getc(x) getc_unlocked (x) -# endif -# if HAVE_DECL_GETCHAR_UNLOCKED -# undef getchar -# define getchar() getchar_unlocked () -# endif -# if HAVE_DECL_PUTC_UNLOCKED -# undef putc -# define putc(x,y) putc_unlocked (x,y) -# endif -# if HAVE_DECL_PUTCHAR_UNLOCKED -# undef putchar -# define putchar(x) putchar_unlocked (x) -# endif - -# endif /* USE_UNLOCKED_IO */ -#endif /* UNLOCKED_IO_H */ diff --git a/gnu/dist/diffutils/lib/waitpid.c b/gnu/dist/diffutils/lib/waitpid.c deleted file mode 100644 index 56ac7a1968c..00000000000 --- a/gnu/dist/diffutils/lib/waitpid.c +++ /dev/null @@ -1,74 +0,0 @@ -/* $NetBSD: waitpid.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* Emulate waitpid on systems that just have wait. - Copyright (C) 1994, 1995, 1998, 1999 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#if HAVE_CONFIG_H -# include -#endif - -#include -#ifndef errno -extern int errno; -#endif - -#define WAITPID_CHILDREN 8 -static pid_t waited_pid[WAITPID_CHILDREN]; -static int waited_status[WAITPID_CHILDREN]; - -pid_t -waitpid (pid_t pid, int *stat_loc, int options) -{ - int i; - pid_t p; - - if (!options && (pid == -1 || 0 < pid)) - { - /* If we have already waited for this child, return it immediately. */ - for (i = 0; i < WAITPID_CHILDREN; i++) - { - p = waited_pid[i]; - if (p && (p == pid || pid == -1)) - { - waited_pid[i] = 0; - goto success; - } - } - - /* The child has not returned yet; wait for it, accumulating status. */ - for (i = 0; i < WAITPID_CHILDREN; i++) - if (! waited_pid[i]) - { - p = wait (&waited_status[i]); - if (p < 0) - return p; - if (p == pid || pid == -1) - goto success; - waited_pid[i] = p; - } - } - - /* We cannot emulate this wait call, e.g. because of too many children. */ - errno = EINVAL; - return -1; - -success: - if (stat_loc) - *stat_loc = waited_status[i]; - return p; -} diff --git a/gnu/dist/diffutils/lib/xalloc.h b/gnu/dist/diffutils/lib/xalloc.h deleted file mode 100644 index 237f8ec2f2b..00000000000 --- a/gnu/dist/diffutils/lib/xalloc.h +++ /dev/null @@ -1,84 +0,0 @@ -/* $NetBSD: xalloc.h,v 1.1.1.1 2003/01/26 00:43:14 wiz Exp $ */ - -/* xalloc.h -- malloc with out-of-memory checking - Copyright (C) 1990-1998, 1999, 2000, 2002 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#ifndef XALLOC_H_ -# define XALLOC_H_ - -# ifndef PARAMS -# if defined PROTOTYPES || (defined __STDC__ && __STDC__) -# define PARAMS(Args) Args -# else -# define PARAMS(Args) () -# endif -# endif - -# ifndef __attribute__ -# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__ -# define __attribute__(x) -# endif -# endif - -# ifndef ATTRIBUTE_NORETURN -# define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__)) -# endif - -/* If this pointer is non-zero, run the specified function upon each - allocation failure. It is initialized to zero. */ -extern void (*xalloc_fail_func) PARAMS ((void)); - -/* If XALLOC_FAIL_FUNC is undefined or a function that returns, this - message is output. It is translated via gettext. - Its value is "memory exhausted". */ -extern char const xalloc_msg_memory_exhausted[]; - -/* This function is always triggered when memory is exhausted. It is - in charge of honoring the three previous items. This is the - function to call when one wants the program to die because of a - memory allocation failure. */ -extern void xalloc_die PARAMS ((void)) ATTRIBUTE_NORETURN; - -void *xmalloc PARAMS ((size_t n)); -void *xcalloc PARAMS ((size_t n, size_t s)); -void *xrealloc PARAMS ((void *p, size_t n)); -char *xstrdup PARAMS ((const char *str)); - -# define XMALLOC(Type, N_items) ((Type *) xmalloc (sizeof (Type) * (N_items))) -# define XCALLOC(Type, N_items) ((Type *) xcalloc (sizeof (Type), (N_items))) -# define XREALLOC(Ptr, Type, N_items) \ - ((Type *) xrealloc ((void *) (Ptr), sizeof (Type) * (N_items))) - -/* Declare and alloc memory for VAR of type TYPE. */ -# define NEW(Type, Var) Type *(Var) = XMALLOC (Type, 1) - -/* Free VAR only if non NULL. */ -# define XFREE(Var) \ - do { \ - if (Var) \ - free (Var); \ - } while (0) - -/* Return a pointer to a malloc'ed copy of the array SRC of NUM elements. */ -# define CCLONE(Src, Num) \ - (memcpy (xmalloc (sizeof (*Src) * (Num)), (Src), sizeof (*Src) * (Num))) - -/* Return a malloc'ed copy of SRC. */ -# define CLONE(Src) CCLONE (Src, 1) - - -#endif /* !XALLOC_H_ */ diff --git a/gnu/dist/diffutils/lib/xmalloc.c b/gnu/dist/diffutils/lib/xmalloc.c deleted file mode 100644 index ce33c1aa7f7..00000000000 --- a/gnu/dist/diffutils/lib/xmalloc.c +++ /dev/null @@ -1,115 +0,0 @@ -/* $NetBSD: xmalloc.c,v 1.2 2012/03/12 17:41:59 christos Exp $ */ - -/* xmalloc.c -- malloc with out of memory checking - Copyright (C) 1990-1999, 2000, 2002 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#if HAVE_CONFIG_H -# include -#endif - -#include - -#if STDC_HEADERS -# include -#else -void *calloc (); -void *malloc (); -void *realloc (); -void free (); -#endif - -#if ENABLE_NLS -# include -# define _(Text) gettext (Text) -#else -# define textdomain(Domain) -# define _(Text) Text -#endif -#define N_(Text) Text - -#include "error.h" -#include "exitfail.h" -#include "xalloc.h" - -#ifndef EXIT_FAILURE -# define EXIT_FAILURE 1 -#endif - -#ifndef HAVE_DONE_WORKING_MALLOC_CHECK -"you must run the autoconf test for a properly working malloc -- see malloc.m4" -#endif - -#ifndef HAVE_DONE_WORKING_REALLOC_CHECK -"you must run the autoconf test for a properly working realloc --see realloc.m4" -#endif - -/* If non NULL, call this function when memory is exhausted. */ -void (*xalloc_fail_func) PARAMS ((void)) = 0; - -/* If XALLOC_FAIL_FUNC is NULL, or does return, display this message - before exiting when memory is exhausted. Goes through gettext. */ -char const xalloc_msg_memory_exhausted[] = N_("memory exhausted"); - -void -xalloc_die (void) -{ - if (xalloc_fail_func) - (*xalloc_fail_func) (); - error (exit_failure, 0, "%s", _(xalloc_msg_memory_exhausted)); - /* The `noreturn' cannot be given to error, since it may return if - its first argument is 0. To help compilers understand the - xalloc_die does terminate, call exit. */ - exit (EXIT_FAILURE); -} - -/* Allocate N bytes of memory dynamically, with error checking. */ - -void * -xmalloc (size_t n) -{ - void *p; - - p = malloc (n); - if (p == 0 && n) - xalloc_die (); - return p; -} - -/* Change the size of an allocated block of memory P to N bytes, - with error checking. */ - -void * -xrealloc (void *p, size_t n) -{ - p = realloc (p, n); - if (p == 0 && n) - xalloc_die (); - return p; -} - -/* Allocate memory for N elements of S bytes, with error checking. */ - -void * -xcalloc (size_t n, size_t s) -{ - void *p; - - p = calloc (n, s); - if (p == 0 && n && s) - xalloc_die (); - return p; -} diff --git a/gnu/dist/diffutils/lib/xstrtol.c b/gnu/dist/diffutils/lib/xstrtol.c deleted file mode 100644 index 4c8a85338bc..00000000000 --- a/gnu/dist/diffutils/lib/xstrtol.c +++ /dev/null @@ -1,304 +0,0 @@ -/* $NetBSD: xstrtol.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* A more useful interface to strtol. - Copyright (C) 1995, 1996, 1998-2001 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* Written by Jim Meyering. */ - -#if HAVE_CONFIG_H -# include -#endif - -#ifndef __strtol -# define __strtol strtol -# define __strtol_t long int -# define __xstrtol xstrtol -#endif - -/* Some pre-ANSI implementations (e.g. SunOS 4) - need stderr defined if assertion checking is enabled. */ -#include - -#if STDC_HEADERS -# include -#endif - -#if HAVE_STRING_H -# include -#else -# include -# ifndef strchr -# define strchr index -# endif -#endif - -#include -#include - -#include -#ifndef errno -extern int errno; -#endif - -#if HAVE_LIMITS_H -# include -#endif - -#ifndef CHAR_BIT -# define CHAR_BIT 8 -#endif - -/* The extra casts work around common compiler bugs. */ -#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) -/* The outer cast is needed to work around a bug in Cray C 5.0.3.0. - It is necessary at least when t == time_t. */ -#define TYPE_MINIMUM(t) ((t) (TYPE_SIGNED (t) \ - ? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) : (t) 0)) -#define TYPE_MAXIMUM(t) (~ (t) 0 - TYPE_MINIMUM (t)) - -#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII)) -# define IN_CTYPE_DOMAIN(c) 1 -#else -# define IN_CTYPE_DOMAIN(c) isascii(c) -#endif - -#define ISSPACE(c) (IN_CTYPE_DOMAIN (c) && isspace (c)) - -#include "xstrtol.h" - -#if !HAVE_DECL_STRTOL && !defined strtol -long int strtol (); -#endif - -#if !HAVE_DECL_STRTOUL && !defined strtoul -unsigned long int strtoul (); -#endif - -#if !HAVE_DECL_STRTOIMAX && !defined strtoimax -intmax_t strtoimax (); -#endif - -#if !HAVE_DECL_STRTOUMAX && !defined strtoumax -uintmax_t strtoumax (); -#endif - -static int -bkm_scale (__strtol_t *x, int scale_factor) -{ - __strtol_t product = *x * scale_factor; - if (*x != product / scale_factor) - return 1; - *x = product; - return 0; -} - -static int -bkm_scale_by_power (__strtol_t *x, int base, int power) -{ - while (power--) - if (bkm_scale (x, base)) - return 1; - - return 0; -} - -/* FIXME: comment. */ - -strtol_error -__xstrtol (const char *s, char **ptr, int strtol_base, - __strtol_t *val, const char *valid_suffixes) -{ - char *t_ptr; - char **p; - __strtol_t tmp; - - assert (0 <= strtol_base && strtol_base <= 36); - - p = (ptr ? ptr : &t_ptr); - - if (! TYPE_SIGNED (__strtol_t)) - { - const char *q = s; - while (ISSPACE ((unsigned char) *q)) - ++q; - if (*q == '-') - return LONGINT_INVALID; - } - - errno = 0; - tmp = __strtol (s, p, strtol_base); - if (errno != 0) - return LONGINT_OVERFLOW; - - if (*p == s) - { - /* If there is no number but there is a valid suffix, assume the - number is 1. The string is invalid otherwise. */ - if (valid_suffixes && **p && strchr (valid_suffixes, **p)) - tmp = 1; - else - return LONGINT_INVALID; - } - - /* Let valid_suffixes == NULL mean `allow any suffix'. */ - /* FIXME: update all callers except the ones that allow suffixes - after the number, changing last parameter NULL to `""'. */ - if (!valid_suffixes) - { - *val = tmp; - return LONGINT_OK; - } - - if (**p != '\0') - { - int base = 1024; - int suffixes = 1; - int overflow; - - if (!strchr (valid_suffixes, **p)) - { - *val = tmp; - return LONGINT_INVALID_SUFFIX_CHAR; - } - - if (strchr (valid_suffixes, '0')) - { - /* The ``valid suffix'' '0' is a special flag meaning that - an optional second suffix is allowed, which can change - the base. A suffix "B" (e.g. "100MB") stands for a power - of 1000, whereas a suffix "iB" (e.g. "100MiB") stands for - a power of 1024. If no suffix (e.g. "100M"), assume - power-of-1024. */ - - switch (p[0][1]) - { - case 'i': - if (p[0][2] == 'B') - suffixes += 2; - break; - - case 'B': - case 'D': /* 'D' is obsolescent */ - base = 1000; - suffixes++; - break; - } - } - - switch (**p) - { - case 'b': - overflow = bkm_scale (&tmp, 512); - break; - - case 'B': - overflow = bkm_scale (&tmp, 1024); - break; - - case 'c': - overflow = 0; - break; - - case 'E': /* exa or exbi */ - overflow = bkm_scale_by_power (&tmp, base, 6); - break; - - case 'G': /* giga or gibi */ - case 'g': /* 'g' is undocumented; for compatibility only */ - overflow = bkm_scale_by_power (&tmp, base, 3); - break; - - case 'k': /* kilo */ - case 'K': /* kibi */ - overflow = bkm_scale_by_power (&tmp, base, 1); - break; - - case 'M': /* mega or mebi */ - case 'm': /* 'm' is undocumented; for compatibility only */ - overflow = bkm_scale_by_power (&tmp, base, 2); - break; - - case 'P': /* peta or pebi */ - overflow = bkm_scale_by_power (&tmp, base, 5); - break; - - case 'T': /* tera or tebi */ - case 't': /* 't' is undocumented; for compatibility only */ - overflow = bkm_scale_by_power (&tmp, base, 4); - break; - - case 'w': - overflow = bkm_scale (&tmp, 2); - break; - - case 'Y': /* yotta or 2**80 */ - overflow = bkm_scale_by_power (&tmp, base, 8); - break; - - case 'Z': /* zetta or 2**70 */ - overflow = bkm_scale_by_power (&tmp, base, 7); - break; - - default: - *val = tmp; - return LONGINT_INVALID_SUFFIX_CHAR; - break; - } - - if (overflow) - return LONGINT_OVERFLOW; - - (*p) += suffixes; - } - - *val = tmp; - return LONGINT_OK; -} - -#ifdef TESTING_XSTRTO - -# include -# include "error.h" - -char *program_name; - -int -main (int argc, char** argv) -{ - strtol_error s_err; - int i; - - program_name = argv[0]; - for (i=1; i%lu (%s)\n", argv[i], val, p); - } - else - { - STRTOL_FATAL_ERROR (argv[i], "arg", s_err); - } - } - exit (0); -} - -#endif /* TESTING_XSTRTO */ diff --git a/gnu/dist/diffutils/lib/xstrtol.h b/gnu/dist/diffutils/lib/xstrtol.h deleted file mode 100644 index 8f745cd7480..00000000000 --- a/gnu/dist/diffutils/lib/xstrtol.h +++ /dev/null @@ -1,84 +0,0 @@ -/* $NetBSD: xstrtol.h,v 1.1.1.1 2003/01/26 00:43:14 wiz Exp $ */ - -/* A more useful interface to strtol. - Copyright 1995, 1996, 1998, 1999, 2001 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#ifndef XSTRTOL_H_ -# define XSTRTOL_H_ 1 - -# if HAVE_INTTYPES_H -# include /* for uintmax_t */ -# endif - -# ifndef PARAMS -# if defined PROTOTYPES || (defined __STDC__ && __STDC__) -# define PARAMS(Args) Args -# else -# define PARAMS(Args) () -# endif -# endif - -# ifndef _STRTOL_ERROR -enum strtol_error - { - LONGINT_OK, LONGINT_INVALID, LONGINT_INVALID_SUFFIX_CHAR, LONGINT_OVERFLOW - }; -typedef enum strtol_error strtol_error; -# endif - -# define _DECLARE_XSTRTOL(name, type) \ - strtol_error \ - name PARAMS ((const char *s, char **ptr, int base, \ - type *val, const char *valid_suffixes)); -_DECLARE_XSTRTOL (xstrtol, long int) -_DECLARE_XSTRTOL (xstrtoul, unsigned long int) -_DECLARE_XSTRTOL (xstrtoimax, intmax_t) -_DECLARE_XSTRTOL (xstrtoumax, uintmax_t) - -# define _STRTOL_ERROR(Exit_code, Str, Argument_type_string, Err) \ - do \ - { \ - switch ((Err)) \ - { \ - case LONGINT_OK: \ - abort (); \ - \ - case LONGINT_INVALID: \ - error ((Exit_code), 0, "invalid %s `%s'", \ - (Argument_type_string), (Str)); \ - break; \ - \ - case LONGINT_INVALID_SUFFIX_CHAR: \ - error ((Exit_code), 0, "invalid character following %s in `%s'", \ - (Argument_type_string), (Str)); \ - break; \ - \ - case LONGINT_OVERFLOW: \ - error ((Exit_code), 0, "%s `%s' too large", \ - (Argument_type_string), (Str)); \ - break; \ - } \ - } \ - while (0) - -# define STRTOL_FATAL_ERROR(Str, Argument_type_string, Err) \ - _STRTOL_ERROR (2, Str, Argument_type_string, Err) - -# define STRTOL_FAIL_WARN(Str, Argument_type_string, Err) \ - _STRTOL_ERROR (0, Str, Argument_type_string, Err) - -#endif /* not XSTRTOL_H_ */ diff --git a/gnu/dist/diffutils/lib/xstrtoumax.c b/gnu/dist/diffutils/lib/xstrtoumax.c deleted file mode 100644 index 4fc528ee10b..00000000000 --- a/gnu/dist/diffutils/lib/xstrtoumax.c +++ /dev/null @@ -1,33 +0,0 @@ -/* $NetBSD: xstrtoumax.c,v 1.1.1.1 2003/01/26 00:43:15 wiz Exp $ */ - -/* xstrtoumax.c -- A more useful interface to strtoumax. - Copyright 1999 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* Written by Paul Eggert. */ - -#if HAVE_CONFIG_H -# include -#endif - -#if HAVE_INTTYPES_H -# include -#endif - -#define __strtol strtoumax -#define __strtol_t uintmax_t -#define __xstrtol xstrtoumax -#include "xstrtol.c" diff --git a/gnu/dist/diffutils/m4/Makefile.am b/gnu/dist/diffutils/m4/Makefile.am deleted file mode 100644 index ddf5373bbf9..00000000000 --- a/gnu/dist/diffutils/m4/Makefile.am +++ /dev/null @@ -1,50 +0,0 @@ -## Process this file with automake to produce Makefile.in -*-Makefile-*- - -##m4-files-begin -EXTRA_DIST = \ - README jm-glibc-io.m4 Makefile.am.in \ -c-bs-a.m4 \ -c-stack.m4 \ -check-decl.m4 \ -codeset.m4 \ -dos.m4 \ -error.m4 \ -fnmatch.m4 \ -gettext.m4 \ -glibc21.m4 \ -gnu-source.m4 \ -iconv.m4 \ -inttypes.m4 \ -jm-glibc-io.m4 \ -lcmessage.m4 \ -lib-ld.m4 \ -lib-link.m4 \ -lib-prefix.m4 \ -longlong.m4 \ -malloc.m4 \ -mbrtowc.m4 \ -mbstate_t.m4 \ -prereq.m4 \ -progtest.m4 \ -realloc.m4 \ -regex.m4 \ -setmode.m4 \ -st_mtim.m4 \ -stdbool.m4 \ -strftime.m4 \ -vararrays.m4 \ -xstrtoumax.m4 -##m4-files-end - -Makefile.am: Makefile.am.in - rm -f $@ $@t - sed -n '1,/^##m4-files-begin/p' $< > $@t - (((echo EXTRA_DIST =; \ - echo " README jm-glibc-io.m4 Makefile.am.in" \ - ) | tr '\012' @); \ - (echo *.m4|tr ' ' @) ) \ - |sed 's/@$$/%/;s/@/ \\@/g' |tr @% '\012\012' \ - >> $@t - sed -n '/^##m4-files-end/,$$p' $< >> $@t - chmod a-w $@t - mv $@t $@ diff --git a/gnu/dist/diffutils/m4/Makefile.am.in b/gnu/dist/diffutils/m4/Makefile.am.in deleted file mode 100644 index de3ffff22ab..00000000000 --- a/gnu/dist/diffutils/m4/Makefile.am.in +++ /dev/null @@ -1,17 +0,0 @@ -## Process this file with automake to produce Makefile.in -*-Makefile-*- - -##m4-files-begin -##m4-files-end - -Makefile.am: Makefile.am.in - rm -f $@ $@t - sed -n '1,/^##m4-files-begin/p' $< > $@t - (((echo EXTRA_DIST =; \ - echo " README jm-glibc-io.m4 Makefile.am.in" \ - ) | tr '\012' @); \ - (echo *.m4|tr ' ' @) ) \ - |sed 's/@$$/%/;s/@/ \\@/g' |tr @% '\012\012' \ - >> $@t - sed -n '/^##m4-files-end/,$$p' $< >> $@t - chmod a-w $@t - mv $@t $@ diff --git a/gnu/dist/diffutils/m4/Makefile.in b/gnu/dist/diffutils/m4/Makefile.in deleted file mode 100644 index d481ae7292f..00000000000 --- a/gnu/dist/diffutils/m4/Makefile.in +++ /dev/null @@ -1,272 +0,0 @@ -# Makefile.in generated by automake 1.6 from Makefile.am. -# @configure_input@ - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 -# 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_HEADER = $(INSTALL_DATA) -transform = @program_transform_name@ -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ - -EXEEXT = @EXEEXT@ -OBJEXT = @OBJEXT@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -AMTAR = @AMTAR@ -AWK = @AWK@ -BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CPP = @CPP@ -DATADIRNAME = @DATADIRNAME@ -DEPDIR = @DEPDIR@ -GENCAT = @GENCAT@ -GLIBC21 = @GLIBC21@ -GMSGFMT = @GMSGFMT@ -HAVE_LIB = @HAVE_LIB@ -HELP2MAN = @HELP2MAN@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLBISON = @INTLBISON@ -INTLLIBS = @INTLLIBS@ -INTLOBJS = @INTLOBJS@ -INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ -LIB = @LIB@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ -LTLIB = @LTLIB@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -PACKAGE = @PACKAGE@ -POSUB = @POSUB@ -PR_PROGRAM = @PR_PROGRAM@ -RANLIB = @RANLIB@ -STRIP = @STRIP@ -U = @U@ -USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -am__include = @am__include@ -am__quote = @am__quote@ -install_sh = @install_sh@ - -EXTRA_DIST = \ - README jm-glibc-io.m4 Makefile.am.in \ -c-bs-a.m4 \ -c-stack.m4 \ -check-decl.m4 \ -codeset.m4 \ -dos.m4 \ -error.m4 \ -fnmatch.m4 \ -gettext.m4 \ -glibc21.m4 \ -gnu-source.m4 \ -iconv.m4 \ -inttypes.m4 \ -jm-glibc-io.m4 \ -lcmessage.m4 \ -lib-ld.m4 \ -lib-link.m4 \ -lib-prefix.m4 \ -longlong.m4 \ -malloc.m4 \ -mbrtowc.m4 \ -mbstate_t.m4 \ -prereq.m4 \ -progtest.m4 \ -realloc.m4 \ -regex.m4 \ -setmode.m4 \ -st_mtim.m4 \ -stdbool.m4 \ -strftime.m4 \ -vararrays.m4 \ -xstrtoumax.m4 - -subdir = m4 -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -DIST_SOURCES = -DIST_COMMON = README Makefile.am Makefile.in -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnits m4/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) -uninstall-info-am: -tags: TAGS -TAGS: - -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = .. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkinstalldirs) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - cp -pR $$d/$$file $(distdir)$$dir \ - || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile - -installdirs: - -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* - -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 - -distclean: distclean-am - -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -uninstall-am: uninstall-info-am - -.PHONY: all all-am check check-am clean clean-generic distclean \ - distclean-generic distdir dvi dvi-am info info-am install \ - install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-strip installcheck installcheck-am installdirs \ - maintainer-clean maintainer-clean-generic mostlyclean \ - mostlyclean-generic uninstall uninstall-am uninstall-info-am - - -Makefile.am: Makefile.am.in - rm -f $@ $@t - sed -n '1,/^##m4-files-begin/p' $< > $@t - (((echo EXTRA_DIST =; \ - echo " README jm-glibc-io.m4 Makefile.am.in" \ - ) | tr '\012' @); \ - (echo *.m4|tr ' ' @) ) \ - |sed 's/@$$/%/;s/@/ \\@/g' |tr @% '\012\012' \ - >> $@t - sed -n '/^##m4-files-end/,$$p' $< >> $@t - chmod a-w $@t - mv $@t $@ -# 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/gnu/dist/diffutils/m4/README b/gnu/dist/diffutils/m4/README deleted file mode 100644 index d2c7724eba6..00000000000 --- a/gnu/dist/diffutils/m4/README +++ /dev/null @@ -1,10 +0,0 @@ -Many of the files in this directory are taken from the fileutils, -shellutils, and textutils packages. - -These files are used by a program called aclocal (part of the GNU automake -package). aclocal uses these files to create aclocal.m4 which is in turn -used by autoconf to create the configure script at the top level in -this distribution. - -The Makefile.am file in this directory is automatically generated -from the template file, Makefile.am.in. diff --git a/gnu/dist/diffutils/m4/c-bs-a.m4 b/gnu/dist/diffutils/m4/c-bs-a.m4 deleted file mode 100644 index 6e0863e4e0a..00000000000 --- a/gnu/dist/diffutils/m4/c-bs-a.m4 +++ /dev/null @@ -1,23 +0,0 @@ -#serial 4 - -dnl From Paul Eggert. - -AC_DEFUN([AC_C_BACKSLASH_A], -[ - AC_CACHE_CHECK([whether backslash-a works in strings], ac_cv_c_backslash_a, - [AC_TRY_COMPILE([], - [ -#if '\a' == 'a' - syntax error; -#endif - char buf['\a' == 'a' ? -1 : 1]; - buf[0] = '\a'; - return buf[0] != "\a"[0]; - ], - ac_cv_c_backslash_a=yes, - ac_cv_c_backslash_a=no)]) - if test $ac_cv_c_backslash_a = yes; then - AC_DEFINE(HAVE_C_BACKSLASH_A, 1, - [Define if backslash-a works in C strings.]) - fi -]) diff --git a/gnu/dist/diffutils/m4/c-stack.m4 b/gnu/dist/diffutils/m4/c-stack.m4 deleted file mode 100644 index 0599d5023ff..00000000000 --- a/gnu/dist/diffutils/m4/c-stack.m4 +++ /dev/null @@ -1,131 +0,0 @@ -# Check prerequisites for compiling lib/c-stack.c. - -# Copyright (C) 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -AC_DEFUN([AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC], - [# for STACK_DIRECTION - AC_REQUIRE([AC_FUNC_ALLOCA]) - - AC_CACHE_CHECK([for working C stack overflow detection], - ac_cv_sys_xsi_stack_overflow_heuristic, - [AC_TRY_RUN( - [ - #include - #include - - static union - { - char buffer[SIGSTKSZ]; - long double ld; - uintmax_t u; - void *p; - } alternate_signal_stack; - - #if STACK_DIRECTION - # define find_stack_direction(ptr) STACK_DIRECTION - #else - static int - find_stack_direction (char const *addr) - { - char dummy; - return (! addr ? find_stack_direction (&dummy) - : addr < &dummy ? 1 : -1); - } - #endif - - static void - segv_handler (int signo, siginfo_t *info, void *context) - { - if (0 < info->si_code) - { - ucontext_t const *user_context = context; - char const *stack_min = user_context->uc_stack.ss_sp; - size_t stack_size = user_context->uc_stack.ss_size; - char const *faulting_address = info->si_addr; - size_t s = faulting_address - stack_min; - size_t page_size = sysconf (_SC_PAGESIZE); - if (find_stack_direction (0) < 0) - s += page_size; - if (s < stack_size + page_size) - _exit (0); - } - - _exit (1); - } - - static int - c_stack_action (void) - { - stack_t st; - struct sigaction act; - int r; - - st.ss_flags = 0; - st.ss_sp = alternate_signal_stack.buffer; - st.ss_size = sizeof alternate_signal_stack.buffer; - r = sigaltstack (&st, 0); - if (r != 0) - return r; - - sigemptyset (&act.sa_mask); - act.sa_flags = SA_NODEFER | SA_ONSTACK | SA_RESETHAND | SA_SIGINFO; - act.sa_sigaction = segv_handler; - return sigaction (SIGSEGV, &act, 0); - } - - static int - recurse (char *p) - { - char array[500]; - array[0] = 1; - return *p + recurse (array); - } - - int - main (void) - { - c_stack_action (); - return recurse ("\1"); - } - ], - [ac_cv_sys_xsi_stack_overflow_heuristic=yes], - [ac_cv_sys_xsi_stack_overflow_heuristic=no], - [ac_cv_sys_xsi_stack_overflow_heuristic=cross-compiling])]) - - if test $ac_cv_sys_xsi_stack_overflow_heuristic = yes; then - AC_DEFINE(HAVE_XSI_STACK_OVERFLOW_HEURISTIC, 1, - [Define to 1 if extending the stack slightly past the limit causes - a SIGSEGV, and an alternate stack can be established with sigaltstack, - and the signal handler is passed a context that specifies the - run time stack. This behavior is defined by POSIX 1003.1-2001 - with the X/Open System Interface (XSI) option - and is a standardized way to implement a SEGV-based stack - overflow detection heuristic.]) - fi]) - - -AC_DEFUN([jm_PREREQ_C_STACK], - [AC_REQUIRE([jm_AC_TYPE_UINTMAX_T]) - AC_REQUIRE([AC_SYS_XSI_STACK_OVERFLOW_HEURISTIC]) - - # for STACK_DIRECTION - AC_REQUIRE([AC_FUNC_ALLOCA]) - - AC_CHECK_HEADERS(unistd.h) - - AC_CHECK_TYPES([siginfo_t, stack_t], , , [#include ])]) diff --git a/gnu/dist/diffutils/m4/check-decl.m4 b/gnu/dist/diffutils/m4/check-decl.m4 deleted file mode 100644 index b374705a021..00000000000 --- a/gnu/dist/diffutils/m4/check-decl.m4 +++ /dev/null @@ -1,85 +0,0 @@ -#serial 18 - -dnl This is just a wrapper function to encapsulate this kludge. -dnl Putting it in a separate file like this helps share it between -dnl different packages. -AC_DEFUN([jm_CHECK_DECLS], -[ - AC_REQUIRE([_jm_DECL_HEADERS]) - AC_REQUIRE([AC_HEADER_TIME]) - headers=' -#include -#if HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H -# include -# endif -# include -#else -# if HAVE_STRINGS_H -# include -# endif -#endif -#if HAVE_STDLIB_H -# include -#endif -#if HAVE_UNISTD_H -# include -#endif - -#include -#if TIME_WITH_SYS_TIME -# include -# include -#else -# if HAVE_SYS_TIME_H -# include -# else -# include -# endif -#endif - -#if HAVE_UTMP_H -# include -#endif - -#if HAVE_GRP_H -# include -#endif - -#if HAVE_PWD_H -# include -#endif -' - - AC_CHECK_DECLS([ - free, - getenv, - geteuid, - getgrgid, - getlogin, - getpwuid, - getuid, - getutent, - lseek, - malloc, - memchr, - memrchr, - nanosleep, - realloc, - stpcpy, - strndup, - strnlen, - strstr, - strtoul, - strtoull, - ttyname], , , $headers) -]) - -dnl FIXME: when autoconf has support for it. -dnl This is a little helper so we can require these header checks. -AC_DEFUN([_jm_DECL_HEADERS], -[ - AC_REQUIRE([AC_HEADER_STDC]) - AC_CHECK_HEADERS(grp.h memory.h pwd.h string.h strings.h stdlib.h \ - unistd.h sys/time.h utmp.h utmpx.h) -]) diff --git a/gnu/dist/diffutils/m4/codeset.m4 b/gnu/dist/diffutils/m4/codeset.m4 deleted file mode 100644 index 59535ebcff5..00000000000 --- a/gnu/dist/diffutils/m4/codeset.m4 +++ /dev/null @@ -1,23 +0,0 @@ -# codeset.m4 serial AM1 (gettext-0.10.40) -dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. - -dnl From Bruno Haible. - -AC_DEFUN([AM_LANGINFO_CODESET], -[ - AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, - [AC_TRY_LINK([#include ], - [char* cs = nl_langinfo(CODESET);], - am_cv_langinfo_codeset=yes, - am_cv_langinfo_codeset=no) - ]) - if test $am_cv_langinfo_codeset = yes; then - AC_DEFINE(HAVE_LANGINFO_CODESET, 1, - [Define if you have and nl_langinfo(CODESET).]) - fi -]) diff --git a/gnu/dist/diffutils/m4/dos.m4 b/gnu/dist/diffutils/m4/dos.m4 deleted file mode 100644 index 868626e7e59..00000000000 --- a/gnu/dist/diffutils/m4/dos.m4 +++ /dev/null @@ -1,53 +0,0 @@ -#serial 5 - -# Define some macros required for proper operation of code in lib/*.c -# on MSDOS/Windows systems. - -# From Jim Meyering. - -AC_DEFUN([jm_AC_DOS], - [ - AC_CACHE_CHECK([whether system is Windows or MSDOS], [ac_cv_win_or_dos], - [ - AC_TRY_COMPILE([], - [#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ -neither MSDOS nor Windows -#endif], - [ac_cv_win_or_dos=yes], - [ac_cv_win_or_dos=no]) - ]) - - if test x"$ac_cv_win_or_dos" = xyes; then - ac_fs_accepts_drive_letter_prefix=1 - ac_fs_backslash_is_file_name_separator=1 - else - ac_fs_accepts_drive_letter_prefix=0 - ac_fs_backslash_is_file_name_separator=0 - fi - - AH_VERBATIM(FILESYSTEM_PREFIX_LEN, - [#if FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX -# define FILESYSTEM_PREFIX_LEN(Filename) \ - ((Filename)[0] && (Filename)[1] == ':' ? 2 : 0) -#else -# define FILESYSTEM_PREFIX_LEN(Filename) 0 -#endif]) - - AC_DEFINE_UNQUOTED([FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX], - $ac_fs_accepts_drive_letter_prefix, - [Define on systems for which file names may have a so-called - `drive letter' prefix, define this to compute the length of that - prefix, including the colon.]) - - AH_VERBATIM(ISSLASH, - [#if FILESYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR -# define ISSLASH(C) ((C) == '/' || (C) == '\\') -#else -# define ISSLASH(C) ((C) == '/') -#endif]) - - AC_DEFINE_UNQUOTED([FILESYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR], - $ac_fs_backslash_is_file_name_separator, - [Define if the backslash character may also serve as a file name - component separator.]) - ]) diff --git a/gnu/dist/diffutils/m4/error.m4 b/gnu/dist/diffutils/m4/error.m4 deleted file mode 100644 index 3fddb5c1115..00000000000 --- a/gnu/dist/diffutils/m4/error.m4 +++ /dev/null @@ -1,13 +0,0 @@ -#serial 4 - -dnl FIXME: put these prerequisite-only *.m4 files in a separate -dnl directory -- otherwise, they'll conflict with existing files. - -dnl These are the prerequisite macros for GNU's error.c file. -AC_DEFUN([jm_PREREQ_ERROR], -[ - AC_CHECK_FUNCS(strerror vprintf doprnt) - AC_CHECK_DECLS([strerror]) - AC_FUNC_STRERROR_R - AC_HEADER_STDC -]) diff --git a/gnu/dist/diffutils/m4/fnmatch.m4 b/gnu/dist/diffutils/m4/fnmatch.m4 deleted file mode 100644 index 8132456bb66..00000000000 --- a/gnu/dist/diffutils/m4/fnmatch.m4 +++ /dev/null @@ -1,47 +0,0 @@ -# Check for fnmatch. - -# This is a modified version of autoconf's AC_FUNC_FNMATCH; -# it also checks for FNM_CASEFOLD or FNM_IGNORECASE. - -# Copyright (C) 2000, 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -# AC_FUNC_FNMATCH -# --------------- -# We look for fnmatch.h to avoid that the test fails in C++. -AC_DEFUN([AC_FUNC_FNMATCH], -[AC_CACHE_CHECK([for working GNU-style fnmatch], - [ac_cv_func_fnmatch_works], -# Some versions of Solaris, SCO, and the GNU C Library -# have a broken or incompatible fnmatch. -# So we run a test program. If we are cross-compiling, take no chance. -# Thanks to John Oleynick, Franc,ois Pinard, and Paul Eggert for this test. -[AC_RUN_IFELSE([AC_LANG_PROGRAM([@%:@include ], - [exit (fnmatch ("a*", "abc", 0) != 0 - || fnmatch ("xxXX", "xXxX", FNM_CASEFOLD) != 0 - || fnmatch ("d*/*1", "d/s/1", FNM_FILE_NAME) != FNM_NOMATCH - || fnmatch ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR) != 0 - || fnmatch ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR) != 0 - || fnmatch ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR) != 0);])], - [ac_cv_func_fnmatch_works=yes], - [ac_cv_func_fnmatch_works=no], - [ac_cv_func_fnmatch_works=no])]) -if test $ac_cv_func_fnmatch_works = yes; then - AC_DEFINE(HAVE_FNMATCH, 1, - [Define to 1 if your system has a working `fnmatch' function.]) -fi -])# AC_FUNC_FNMATCH diff --git a/gnu/dist/diffutils/m4/gettext.m4 b/gnu/dist/diffutils/m4/gettext.m4 deleted file mode 100644 index 520f973d8de..00000000000 --- a/gnu/dist/diffutils/m4/gettext.m4 +++ /dev/null @@ -1,541 +0,0 @@ -# gettext.m4 serial 13 (gettext-0.11.1) -dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. -dnl -dnl This file can can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Authors: -dnl Ulrich Drepper , 1995-2000. -dnl Bruno Haible , 2000-2002. - -dnl Macro to add for using GNU gettext. - -dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). -dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The -dnl default (if it is not specified or empty) is 'no-libtool'. -dnl INTLSYMBOL should be 'external' for packages with no intl directory, -dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. -dnl If INTLSYMBOL is 'use-libtool', then a libtool library -dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, -dnl depending on --{enable,disable}-{shared,static} and on the presence of -dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library -dnl $(top_builddir)/intl/libintl.a will be created. -dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext -dnl implementations (in libc or libintl) without the ngettext() function -dnl will be ignored. -dnl INTLDIR is used to find the intl libraries. If empty, -dnl the value `$(top_builddir)/intl/' is used. -dnl -dnl The result of the configuration is one of three cases: -dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled -dnl and used. -dnl Catalog format: GNU --> install in $(datadir) -dnl Catalog extension: .mo after installation, .gmo in source tree -dnl 2) GNU gettext has been found in the system's C library. -dnl Catalog format: GNU --> install in $(datadir) -dnl Catalog extension: .mo after installation, .gmo in source tree -dnl 3) No internationalization, always use English msgid. -dnl Catalog format: none -dnl Catalog extension: none -dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. -dnl The use of .gmo is historical (it was needed to avoid overwriting the -dnl GNU format catalogs when building on a platform with an X/Open gettext), -dnl but we keep it in order not to force irrelevant filename changes on the -dnl maintainers. -dnl -AC_DEFUN([AM_GNU_GETTEXT], -[ - dnl Argument checking. - ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , - [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT -])])])])]) - ifelse([$2], [], , [ifelse([$2], [need-ngettext], , - [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT -])])]) - define(gt_included_intl, ifelse([$1], [external], [no], [yes])) - define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], [])) - - AC_REQUIRE([AM_PO_SUBDIRS])dnl - ifelse(gt_included_intl, yes, [ - AC_REQUIRE([AM_INTL_SUBDIR])dnl - ]) - - dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - - AC_MSG_CHECKING([whether NLS is requested]) - dnl Default is enabled NLS - AC_ARG_ENABLE(nls, - [ --disable-nls do not use Native Language Support], - USE_NLS=$enableval, USE_NLS=yes) - AC_MSG_RESULT($USE_NLS) - AC_SUBST(USE_NLS) - - ifelse(gt_included_intl, yes, [ - BUILD_INCLUDED_LIBINTL=no - USE_INCLUDED_LIBINTL=no - ]) - LIBINTL= - LTLIBINTL= - POSUB= - - dnl If we use NLS figure out what method - if test "$USE_NLS" = "yes"; then - gt_use_preinstalled_gnugettext=no - ifelse(gt_included_intl, yes, [ - AC_MSG_CHECKING([whether included gettext is requested]) - AC_ARG_WITH(included-gettext, - [ --with-included-gettext use the GNU gettext library included here], - nls_cv_force_use_gnu_gettext=$withval, - nls_cv_force_use_gnu_gettext=no) - AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) - - nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" - if test "$nls_cv_force_use_gnu_gettext" != "yes"; then - ]) - dnl User does not insist on using GNU NLS library. Figure out what - dnl to use. If GNU gettext is available we use this. Else we have - dnl to fall back to GNU NLS library. - - dnl Add a version number to the cache macros. - define([gt_api_version], ifelse([$2], [need-ngettext], 2, 1)) - define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc]) - define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl]) - - AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, - [AC_TRY_LINK([#include -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings;], - [bindtextdomain ("", ""); -return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings], - gt_cv_func_gnugettext_libc=yes, - gt_cv_func_gnugettext_libc=no)]) - - if test "$gt_cv_func_gnugettext_libc" != "yes"; then - dnl Sometimes libintl requires libiconv, so first search for libiconv. - ifelse(gt_included_intl, yes, , [ - AM_ICONV_LINK - ]) - dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL - dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) - dnl because that would add "-liconv" to LIBINTL and LTLIBINTL - dnl even if libiconv doesn't exist. - AC_LIB_LINKFLAGS_BODY([intl]) - AC_CACHE_CHECK([for GNU gettext in libintl], - gt_cv_func_gnugettext_libintl, - [gt_save_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $INCINTL" - gt_save_LIBS="$LIBS" - LIBS="$LIBS $LIBINTL" - dnl Now see whether libintl exists and does not depend on libiconv. - AC_TRY_LINK([#include -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias ();], - [bindtextdomain ("", ""); -return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings + *_nl_expand_alias (0)], - gt_cv_func_gnugettext_libintl=yes, - gt_cv_func_gnugettext_libintl=no) - dnl Now see whether libintl exists and depends on libiconv. - if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then - LIBS="$LIBS $LIBICONV" - AC_TRY_LINK([#include -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings; -extern -#ifdef __cplusplus -"C" -#endif -const char *_nl_expand_alias ();], - [bindtextdomain ("", ""); -return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings + *_nl_expand_alias (0)], - [LIBINTL="$LIBINTL $LIBICONV" - LTLIBINTL="$LTLIBINTL $LTLIBICONV" - gt_cv_func_gnugettext_libintl=yes - ]) - fi - CPPFLAGS="$gt_save_CPPFLAGS" - LIBS="$gt_save_LIBS"]) - fi - - dnl If an already present or preinstalled GNU gettext() is found, - dnl use it. But if this macro is used in GNU gettext, and GNU - dnl gettext is already preinstalled in libintl, we update this - dnl libintl. (Cf. the install rule in intl/Makefile.in.) - if test "$gt_cv_func_gnugettext_libc" = "yes" \ - || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ - && test "$PACKAGE" != gettext; }; then - gt_use_preinstalled_gnugettext=yes - else - dnl Reset the values set by searching for libintl. - LIBINTL= - LTLIBINTL= - INCINTL= - fi - - ifelse(gt_included_intl, yes, [ - if test "$gt_use_preinstalled_gnugettext" != "yes"; then - dnl GNU gettext is not found in the C library. - dnl Fall back on included GNU gettext library. - nls_cv_use_gnu_gettext=yes - fi - fi - - if test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Mark actions used to generate GNU NLS library. - INTLOBJS="\$(GETTOBJS)" - BUILD_INCLUDED_LIBINTL=yes - USE_INCLUDED_LIBINTL=yes - LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV" - LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV" - LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` - fi - - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - dnl Mark actions to use GNU gettext tools. - CATOBJEXT=.gmo - fi - ]) - - if test "$gt_use_preinstalled_gnugettext" = "yes" \ - || test "$nls_cv_use_gnu_gettext" = "yes"; then - AC_DEFINE(ENABLE_NLS, 1, - [Define to 1 if translation of program messages to the user's native language - is requested.]) - else - USE_NLS=no - fi - fi - - if test "$USE_NLS" = "yes"; then - - if test "$gt_use_preinstalled_gnugettext" = "yes"; then - if test "$gt_cv_func_gnugettext_libintl" = "yes"; then - AC_MSG_CHECKING([how to link with libintl]) - AC_MSG_RESULT([$LIBINTL]) - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) - fi - - dnl For backward compatibility. Some packages may be using this. - AC_DEFINE(HAVE_GETTEXT, 1, - [Define if the GNU gettext() function is already present or preinstalled.]) - AC_DEFINE(HAVE_DCGETTEXT, 1, - [Define if the GNU dcgettext() function is already present or preinstalled.]) - fi - - dnl We need to process the po/ directory. - POSUB=po - fi - - ifelse(gt_included_intl, yes, [ - dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL - dnl to 'yes' because some of the testsuite requires it. - if test "$PACKAGE" = gettext; then - BUILD_INCLUDED_LIBINTL=yes - fi - - dnl Make all variables we use known to autoconf. - AC_SUBST(BUILD_INCLUDED_LIBINTL) - AC_SUBST(USE_INCLUDED_LIBINTL) - AC_SUBST(CATOBJEXT) - AC_SUBST(INTLOBJS) - - dnl For backward compatibility. Some configure.ins may be using this. - nls_cv_header_intl= - nls_cv_header_libgt= - - dnl For backward compatibility. Some Makefiles may be using this. - DATADIRNAME=share - AC_SUBST(DATADIRNAME) - - dnl For backward compatibility. Some Makefiles may be using this. - INSTOBJEXT=.mo - AC_SUBST(INSTOBJEXT) - - dnl For backward compatibility. Some Makefiles may be using this. - GENCAT=gencat - AC_SUBST(GENCAT) - - dnl Enable libtool support if the surrounding package wishes it. - INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix - AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) - ]) - - dnl For backward compatibility. Some Makefiles may be using this. - INTLLIBS="$LIBINTL" - AC_SUBST(INTLLIBS) - - dnl Make all documented variables known to autoconf. - AC_SUBST(LIBINTL) - AC_SUBST(LTLIBINTL) - AC_SUBST(POSUB) -]) - - -dnl Checks for all prerequisites of the po subdirectory, -dnl except for USE_NLS. -AC_DEFUN([AM_PO_SUBDIRS], -[ - AC_REQUIRE([AC_PROG_MAKE_SET])dnl - AC_REQUIRE([AC_PROG_INSTALL])dnl - AC_REQUIRE([AM_MKINSTALLDIRS])dnl - - dnl Perform the following tests also if --disable-nls has been given, - dnl because they are needed for "make dist" to work. - - dnl Search for GNU msgfmt in the PATH. - dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. - dnl The second test excludes FreeBSD msgfmt. - AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, - [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], - :) - AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) - - dnl Search for GNU xgettext 0.11 or newer in the PATH. - dnl The first test excludes Solaris xgettext and early GNU xgettext versions. - dnl The second test excludes FreeBSD xgettext. - AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, - [$ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 && - (if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], - :) - dnl Remove leftover from FreeBSD xgettext call. - rm -f messages.po - - dnl Search for GNU msgmerge 0.11 or newer in the PATH. - AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, - [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :) - - dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. - dnl Test whether we really found GNU msgfmt. - if test "$GMSGFMT" != ":"; then - dnl If it is no GNU msgfmt we define it as : so that the - dnl Makefiles still can work. - if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && - (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` - AC_MSG_RESULT( - [found $GMSGFMT program is not GNU msgfmt; ignore it]) - GMSGFMT=":" - fi - fi - - dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. - dnl Test whether we really found GNU xgettext. - if test "$XGETTEXT" != ":"; then - dnl If it is no GNU xgettext we define it as : so that the - dnl Makefiles still can work. - if $XGETTEXT --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 && - (if $XGETTEXT --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then - : ; - else - AC_MSG_RESULT( - [found xgettext program is not GNU xgettext; ignore it]) - XGETTEXT=":" - fi - dnl Remove leftover from FreeBSD xgettext call. - rm -f messages.po - fi - - AC_OUTPUT_COMMANDS([ - for ac_file in $CONFIG_FILES; do - # Support "outfile[:infile[:infile...]]" - case "$ac_file" in - *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; - esac - # PO directories have a Makefile.in generated from Makefile.in.in. - case "$ac_file" in */Makefile.in) - # Adjust a relative srcdir. - ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` - ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" - ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` - # In autoconf-2.13 it is called $ac_given_srcdir. - # In autoconf-2.50 it is called $srcdir. - test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" - case "$ac_given_srcdir" in - .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; - /*) top_srcdir="$ac_given_srcdir" ;; - *) top_srcdir="$ac_dots$ac_given_srcdir" ;; - esac - if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then - rm -f "$ac_dir/POTFILES" - test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" - cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" - # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend - # on $ac_dir but don't depend on user-specified configuration - # parameters. - if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then - # The LINGUAS file contains the set of available languages. - if test -n "$ALL_LINGUAS"; then - test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" - fi - ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` - # Hide the ALL_LINGUAS assigment from automake. - eval 'ALL_LINGUAS''=$ALL_LINGUAS_' - fi - case "$ac_given_srcdir" in - .) srcdirpre= ;; - *) srcdirpre='$(srcdir)/' ;; - esac - POFILES= - GMOFILES= - UPDATEPOFILES= - DUMMYPOFILES= - for lang in $ALL_LINGUAS; do - POFILES="$POFILES $srcdirpre$lang.po" - GMOFILES="$GMOFILES $srcdirpre$lang.gmo" - UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" - DUMMYPOFILES="$DUMMYPOFILES $lang.nop" - done - # CATALOGS depends on both $ac_dir and the user's LINGUAS - # environment variable. - INST_LINGUAS= - if test -n "$ALL_LINGUAS"; then - for presentlang in $ALL_LINGUAS; do - useit=no - if test "%UNSET%" != "$LINGUAS"; then - desiredlanguages="$LINGUAS" - else - desiredlanguages="$ALL_LINGUAS" - fi - for desiredlang in $desiredlanguages; do - # Use the presentlang catalog if desiredlang is - # a. equal to presentlang, or - # b. a variant of presentlang (because in this case, - # presentlang can be used as a fallback for messages - # which are not translated in the desiredlang catalog). - case "$desiredlang" in - "$presentlang"*) useit=yes;; - esac - done - if test $useit = yes; then - INST_LINGUAS="$INST_LINGUAS $presentlang" - fi - done - fi - CATALOGS= - if test -n "$INST_LINGUAS"; then - for lang in $INST_LINGUAS; do - CATALOGS="$CATALOGS $lang.gmo" - done - fi - test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" - sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" - for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do - if test -f "$f"; then - case "$f" in - *.orig | *.bak | *~) ;; - *) cat "$f" >> "$ac_dir/Makefile" ;; - esac - fi - done - fi - ;; - esac - done], - [# Capture the value of obsolete $ALL_LINGUAS because we need it to compute - # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it - # from automake. - eval 'ALL_LINGUAS''="$ALL_LINGUAS"' - # Capture the value of LINGUAS because we need it to compute CATALOGS. - LINGUAS="${LINGUAS-%UNSET%}" - ]) -]) - - -dnl Checks for all prerequisites of the intl subdirectory, -dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, -dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. -AC_DEFUN([AM_INTL_SUBDIR], -[ - AC_REQUIRE([AC_PROG_INSTALL])dnl - AC_REQUIRE([AM_MKINSTALLDIRS])dnl - AC_REQUIRE([AC_PROG_CC])dnl - AC_REQUIRE([AC_CANONICAL_HOST])dnl - AC_REQUIRE([AC_PROG_RANLIB])dnl - AC_REQUIRE([AC_ISC_POSIX])dnl - AC_REQUIRE([AC_HEADER_STDC])dnl - AC_REQUIRE([AC_C_CONST])dnl - AC_REQUIRE([AC_C_INLINE])dnl - AC_REQUIRE([AC_TYPE_OFF_T])dnl - AC_REQUIRE([AC_TYPE_SIZE_T])dnl - AC_REQUIRE([AC_FUNC_ALLOCA])dnl - AC_REQUIRE([AC_FUNC_MMAP])dnl - AC_REQUIRE([jm_GLIBC21])dnl - - AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ -stdlib.h string.h unistd.h sys/param.h]) - AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \ -geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \ -strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next]) - - AM_ICONV - AM_LANGINFO_CODESET - AM_LC_MESSAGES - - dnl intl/plural.c is generated from intl/plural.y. It requires bison, - dnl because plural.y uses bison specific features. It requires at least - dnl bison-1.26 because earlier versions generate a plural.c that doesn't - dnl compile. - dnl bison is only needed for the maintainer (who touches plural.y). But in - dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put - dnl the rule in general Makefile. Now, some people carelessly touch the - dnl files or have a broken "make" program, hence the plural.c rule will - dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not - dnl present or too old. - AC_CHECK_PROGS([INTLBISON], [bison]) - if test -z "$INTLBISON"; then - ac_verc_fail=yes - else - dnl Found it, now check the version. - AC_MSG_CHECKING([version of bison]) -changequote(<<,>>)dnl - ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` - case $ac_prog_version in - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; - 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) -changequote([,])dnl - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; - *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; - esac - AC_MSG_RESULT([$ac_prog_version]) - fi - if test $ac_verc_fail = yes; then - INTLBISON=: - fi -]) - - -AC_DEFUN([AM_MKINSTALLDIRS], -[ - dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly - dnl find the mkinstalldirs script in another subdir but $(top_srcdir). - dnl Try to locate is. - MKINSTALLDIRS= - if test -n "$ac_aux_dir"; then - MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" - fi - if test -z "$MKINSTALLDIRS"; then - MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" - fi - AC_SUBST(MKINSTALLDIRS) -]) diff --git a/gnu/dist/diffutils/m4/glibc21.m4 b/gnu/dist/diffutils/m4/glibc21.m4 deleted file mode 100644 index 9c9f3db3036..00000000000 --- a/gnu/dist/diffutils/m4/glibc21.m4 +++ /dev/null @@ -1,32 +0,0 @@ -# glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40) -dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. - -# Test for the GNU C Library, version 2.1 or newer. -# From Bruno Haible. - -AC_DEFUN([jm_GLIBC21], - [ - AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, - ac_cv_gnu_library_2_1, - [AC_EGREP_CPP([Lucky GNU user], - [ -#include -#ifdef __GNU_LIBRARY__ - #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) - Lucky GNU user - #endif -#endif - ], - ac_cv_gnu_library_2_1=yes, - ac_cv_gnu_library_2_1=no) - ] - ) - AC_SUBST(GLIBC21) - GLIBC21="$ac_cv_gnu_library_2_1" - ] -) diff --git a/gnu/dist/diffutils/m4/gnu-source.m4 b/gnu/dist/diffutils/m4/gnu-source.m4 deleted file mode 100644 index d2f490b0d61..00000000000 --- a/gnu/dist/diffutils/m4/gnu-source.m4 +++ /dev/null @@ -1,25 +0,0 @@ -#serial 3 -# Make sure _GNU_SOURCE is defined where necessary: as early as possible -# for configure-time tests, as well as for every source file that includes -# config.h. - -# From Jim Meyering. - -AC_DEFUN([AC__GNU_SOURCE], -[ - # Make sure that _GNU_SOURCE is defined for all subsequent - # configure-time compile tests. - # This definition must be emitted (into confdefs.h) before any - # test that involves compilation. - cat >>confdefs.h <<\EOF -#ifndef _GNU_SOURCE -# define _GNU_SOURCE -#endif -EOF - - # Emit this code into config.h.in. - # The ifndef is to avoid redefinition warnings. - AH_VERBATIM([_GNU_SOURCE], [#ifndef _GNU_SOURCE -# define _GNU_SOURCE -#endif]) -]) diff --git a/gnu/dist/diffutils/m4/iconv.m4 b/gnu/dist/diffutils/m4/iconv.m4 deleted file mode 100644 index f81e8b995f6..00000000000 --- a/gnu/dist/diffutils/m4/iconv.m4 +++ /dev/null @@ -1,96 +0,0 @@ -# iconv.m4 serial AM3 (gettext-0.11) -dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. - -dnl From Bruno Haible. - -AC_DEFUN([AM_ICONV_LINK], -[ - dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and - dnl those with the standalone portable GNU libiconv installed). - - dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - - dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV - dnl accordingly. - AC_LIB_LINKFLAGS_BODY([iconv]) - - dnl Add $INCICONV to CPPFLAGS before performing the following checks, - dnl because if the user has installed libiconv and not disabled its use - dnl via --without-libiconv-prefix, he wants to use it. The first - dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. - am_save_CPPFLAGS="$CPPFLAGS" - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) - - AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ - am_cv_func_iconv="no, consider installing GNU libiconv" - am_cv_lib_iconv=no - AC_TRY_LINK([#include -#include ], - [iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);], - am_cv_func_iconv=yes) - if test "$am_cv_func_iconv" != yes; then - am_save_LIBS="$LIBS" - LIBS="$LIBS $LIBICONV" - AC_TRY_LINK([#include -#include ], - [iconv_t cd = iconv_open("",""); - iconv(cd,NULL,NULL,NULL,NULL); - iconv_close(cd);], - am_cv_lib_iconv=yes - am_cv_func_iconv=yes) - LIBS="$am_save_LIBS" - fi - ]) - if test "$am_cv_func_iconv" = yes; then - AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) - fi - if test "$am_cv_lib_iconv" = yes; then - AC_MSG_CHECKING([how to link with libiconv]) - AC_MSG_RESULT([$LIBICONV]) - else - dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV - dnl either. - CPPFLAGS="$am_save_CPPFLAGS" - LIBICONV= - LTLIBICONV= - fi - AC_SUBST(LIBICONV) - AC_SUBST(LTLIBICONV) -]) - -AC_DEFUN([AM_ICONV], -[ - AC_REQUIRE([AM_ICONV_LINK]) - if test "$am_cv_func_iconv" = yes; then - AC_MSG_CHECKING([for iconv declaration]) - AC_CACHE_VAL(am_cv_proto_iconv, [ - AC_TRY_COMPILE([ -#include -#include -extern -#ifdef __cplusplus -"C" -#endif -#if defined(__STDC__) || defined(__cplusplus) -size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); -#else -size_t iconv(); -#endif -], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") - am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) - am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` - AC_MSG_RESULT([$]{ac_t:- - }[$]am_cv_proto_iconv) - AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, - [Define as const if the declaration of iconv() needs const.]) - fi -]) diff --git a/gnu/dist/diffutils/m4/inttypes.m4 b/gnu/dist/diffutils/m4/inttypes.m4 deleted file mode 100644 index 9571814f533..00000000000 --- a/gnu/dist/diffutils/m4/inttypes.m4 +++ /dev/null @@ -1,32 +0,0 @@ -#serial 6 - -dnl From Paul Eggert. - -AC_PREREQ(2.52) - -# Define intmax_t to long or long long if doesn't define. - -AC_DEFUN([jm_AC_TYPE_INTMAX_T], -[ - AC_REQUIRE([jm_AC_TYPE_LONG_LONG]) - AC_CHECK_TYPE(intmax_t, , - [test $ac_cv_type_long_long = yes \ - && ac_type='long long' \ - || ac_type='long' - AC_DEFINE_UNQUOTED(intmax_t, $ac_type, - [Define to widest signed type if doesn't define.])]) -]) - -# Define uintmax_t to unsigned long or unsigned long long -# if doesn't define. - -AC_DEFUN([jm_AC_TYPE_UINTMAX_T], -[ - AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG]) - AC_CHECK_TYPE(uintmax_t, , - [test $ac_cv_type_unsigned_long_long = yes \ - && ac_type='unsigned long long' \ - || ac_type='unsigned long' - AC_DEFINE_UNQUOTED(uintmax_t, $ac_type, - [Define to widest unsigned type if doesn't define.])]) -]) diff --git a/gnu/dist/diffutils/m4/jm-glibc-io.m4 b/gnu/dist/diffutils/m4/jm-glibc-io.m4 deleted file mode 100644 index e8054f0bd28..00000000000 --- a/gnu/dist/diffutils/m4/jm-glibc-io.m4 +++ /dev/null @@ -1,14 +0,0 @@ -#serial 7 -*- autoconf -*- - -dnl From Jim Meyering. -dnl -dnl See if the glibc *_unlocked I/O macros are available. -dnl Use only those *_unlocked macros that are declared. -dnl - -AC_DEFUN([jm_FUNC_GLIBC_UNLOCKED_IO], - [AC_CHECK_DECLS( - [clearerr_unlocked, feof_unlocked, ferror_unlocked, - fflush_unlocked, fgets_unlocked, fputc_unlocked, fputs_unlocked, - fread_unlocked, fwrite_unlocked, getc_unlocked, - getchar_unlocked, putc_unlocked, putchar_unlocked])]) diff --git a/gnu/dist/diffutils/m4/lcmessage.m4 b/gnu/dist/diffutils/m4/lcmessage.m4 deleted file mode 100644 index ffbf915f1a9..00000000000 --- a/gnu/dist/diffutils/m4/lcmessage.m4 +++ /dev/null @@ -1,32 +0,0 @@ -# lcmessage.m4 serial 2 (gettext-0.10.40) -dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. -dnl -dnl This file can can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Authors: -dnl Ulrich Drepper , 1995. - -# Check whether LC_MESSAGES is available in . - -AC_DEFUN([AM_LC_MESSAGES], - [if test $ac_cv_header_locale_h = yes; then - AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, - [AC_TRY_LINK([#include ], [return LC_MESSAGES], - am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) - if test $am_cv_val_LC_MESSAGES = yes; then - AC_DEFINE(HAVE_LC_MESSAGES, 1, - [Define if your file defines LC_MESSAGES.]) - fi - fi]) diff --git a/gnu/dist/diffutils/m4/lib-ld.m4 b/gnu/dist/diffutils/m4/lib-ld.m4 deleted file mode 100644 index ddb573234cb..00000000000 --- a/gnu/dist/diffutils/m4/lib-ld.m4 +++ /dev/null @@ -1,97 +0,0 @@ -# lib-ld.m4 serial 1 (gettext-0.11) -dnl Copyright (C) 1996-2002 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. - -dnl Subroutines of libtool.m4, -dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision -dnl with libtool.m4. - -dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. -AC_DEFUN([AC_LIB_PROG_LD_GNU], -[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, -[# I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 &5; then - acl_cv_prog_gnu_ld=yes -else - acl_cv_prog_gnu_ld=no -fi]) -with_gnu_ld=$acl_cv_prog_gnu_ld -]) - -dnl From libtool-1.4. Sets the variable LD. -AC_DEFUN([AC_LIB_PROG_LD], -[AC_ARG_WITH(gnu-ld, -[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], -test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -ac_prog=ld -if test "$GCC" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - AC_MSG_CHECKING([for ld used by GCC]) - case $host in - *-*-mingw*) - # gcc leaves a trailing carriage return which upsets mingw - ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; - *) - ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; - esac - case $ac_prog in - # Accept absolute paths. - [[\\/]* | [A-Za-z]:[\\/]*)] - [re_direlt='/[^/][^/]*/\.\./'] - # Canonicalize the path of ld - ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` - done - test -z "$LD" && LD="$ac_prog" - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -AC_CACHE_VAL(acl_cv_path_LD, -[if test -z "$LD"; then - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - acl_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break - fi - fi - done - IFS="$ac_save_ifs" -else - acl_cv_path_LD="$LD" # Let the user override the test with a path. -fi]) -LD="$acl_cv_path_LD" -if test -n "$LD"; then - AC_MSG_RESULT($LD) -else - AC_MSG_RESULT(no) -fi -test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) -AC_LIB_PROG_LD_GNU -]) diff --git a/gnu/dist/diffutils/m4/lib-link.m4 b/gnu/dist/diffutils/m4/lib-link.m4 deleted file mode 100644 index a16aa446054..00000000000 --- a/gnu/dist/diffutils/m4/lib-link.m4 +++ /dev/null @@ -1,521 +0,0 @@ -# lib-link.m4 serial 1 (gettext-0.11) -dnl Copyright (C) 2001-2002 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. - -dnl From Bruno Haible. - -dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and -dnl the libraries corresponding to explicit and implicit dependencies. -dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and -dnl augments the CPPFLAGS variable. -AC_DEFUN([AC_LIB_LINKFLAGS], -[ - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - define([Name],[translit([$1],[./-], [___])]) - define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) - AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ - AC_LIB_LINKFLAGS_BODY([$1], [$2]) - ac_cv_lib[]Name[]_libs="$LIB[]NAME" - ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" - ac_cv_lib[]Name[]_cppflags="$INC[]NAME" - ]) - LIB[]NAME="$ac_cv_lib[]Name[]_libs" - LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" - INC[]NAME="$ac_cv_lib[]Name[]_cppflags" - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) - AC_SUBST([LIB]NAME) - AC_SUBST([LTLIB]NAME) - dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the - dnl results of this search when this library appears as a dependency. - HAVE_LIB[]NAME=yes - undefine([Name]) - undefine([NAME]) -]) - -dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) -dnl searches for libname and the libraries corresponding to explicit and -dnl implicit dependencies, together with the specified include files and -dnl the ability to compile and link the specified testcode. If found, it -dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and -dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and -dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs -dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. -AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], -[ - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - AC_REQUIRE([AC_LIB_RPATH]) - define([Name],[translit([$1],[./-], [___])]) - define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) - - dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME - dnl accordingly. - AC_LIB_LINKFLAGS_BODY([$1], [$2]) - - dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, - dnl because if the user has installed lib[]Name and not disabled its use - dnl via --without-lib[]Name-prefix, he wants to use it. - ac_save_CPPFLAGS="$CPPFLAGS" - AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) - - AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ - ac_save_LIBS="$LIBS" - LIBS="$LIBS $LIB[]NAME" - AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) - LIBS="$ac_save_LIBS" - ]) - if test "$ac_cv_lib[]Name" = yes; then - HAVE_LIB[]NAME=yes - AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) - AC_MSG_CHECKING([how to link with lib[]$1]) - AC_MSG_RESULT([$LIB[]NAME]) - else - HAVE_LIB[]NAME=no - dnl If $LIB[]NAME didn't lead to a usable library, we don't need - dnl $INC[]NAME either. - CPPFLAGS="$ac_save_CPPFLAGS" - LIB[]NAME= - LTLIB[]NAME= - fi - AC_SUBST([HAVE_LIB]NAME) - AC_SUBST([LIB]NAME) - AC_SUBST([LTLIB]NAME) - undefine([Name]) - undefine([NAME]) -]) - -dnl Determine the platform dependent parameters needed to use rpath: -dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, -dnl hardcode_direct, hardcode_minus_L, -dnl sys_lib_search_path_spec, sys_lib_dlsearch_path_spec. -AC_DEFUN([AC_LIB_RPATH], -[ - AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS - AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld - AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host - AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir - AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ - CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ - ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh - . ./conftest.sh - rm -f ./conftest.sh - acl_cv_rpath=done - ]) - wl="$acl_cv_wl" - libext="$acl_cv_libext" - shlibext="$acl_cv_shlibext" - hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" - hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" - hardcode_direct="$acl_cv_hardcode_direct" - hardcode_minus_L="$acl_cv_hardcode_minus_L" - sys_lib_search_path_spec="$acl_cv_sys_lib_search_path_spec" - sys_lib_dlsearch_path_spec="$acl_cv_sys_lib_dlsearch_path_spec" -]) - -dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and -dnl the libraries corresponding to explicit and implicit dependencies. -dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. -AC_DEFUN([AC_LIB_LINKFLAGS_BODY], -[ - define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], - [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) - dnl By default, look in $includedir and $libdir. - use_additional=yes - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - AC_ARG_WITH([lib$1-prefix], -[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib - --without-lib$1-prefix don't search for lib$1 in includedir and libdir], -[ - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - else - additional_includedir="$withval/include" - additional_libdir="$withval/lib" - fi - fi -]) - dnl Search the library and its dependencies in $additional_libdir and - dnl $LDFLAGS. Using breadth-first-seach. - LIB[]NAME= - LTLIB[]NAME= - INC[]NAME= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='$1 $2' - while test -n "$names_next_round"; do - names_this_round="$names_next_round" - names_next_round= - for name in $names_this_round; do - already_handled= - for n in $names_already_handled; do - if test "$n" = "$name"; then - already_handled=yes - break - fi - done - if test -z "$already_handled"; then - names_already_handled="$names_already_handled $name" - dnl See if it was already located by an earlier AC_LIB_LINKFLAGS - dnl or AC_LIB_HAVE_LINKFLAGS call. - uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` - eval value=\"\$HAVE_LIB$uppername\" - if test -n "$value"; then - if test "$value" = yes; then - eval value=\"\$LIB$uppername\" - test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" - else - dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined - dnl that this library doesn't exist. So just drop it. - : - fi - else - dnl Search the library lib$name in $additional_libdir and $LDFLAGS - dnl and the already constructed $LIBNAME/$LTLIBNAME. - found_dir= - found_la= - found_so= - found_a= - if test $use_additional = yes; then - if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then - found_dir="$additional_libdir" - found_so="$additional_libdir/lib$name.$shlibext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - else - if test -f "$additional_libdir/lib$name.$libext"; then - found_dir="$additional_libdir" - found_a="$additional_libdir/lib$name.$libext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - fi - fi - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then - found_dir="$dir" - found_so="$dir/lib$name.$shlibext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - else - if test -f "$dir/lib$name.$libext"; then - found_dir="$dir" - found_a="$dir/lib$name.$libext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - dnl Found the library. - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - dnl Linking with a shared library. We attempt to hardcode its - dnl directory into the executable's runpath, unless it's the - dnl standard /usr/lib. - if test "X$found_dir" = "X/usr/lib"; then - dnl No hardcoding is needed. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - dnl Use an explicit option to hardcode DIR into the resulting - dnl binary. - dnl Potentially add DIR to ltrpathdirs. - dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $found_dir" - fi - dnl The hardcoding into $LIBNAME is system dependent. - if test "$hardcode_direct" = yes; then - dnl Using DIR/libNAME.so during linking hardcodes DIR into the - dnl resulting binary. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then - dnl Use an explicit option to hardcode DIR into the resulting - dnl binary. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - dnl Potentially add DIR to rpathdirs. - dnl The rpathdirs will be appended to $LIBNAME at the end. - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $found_dir" - fi - else - dnl Rely on "-L$found_dir". - dnl But don't add it if it's already contained in the LDFLAGS - dnl or the already constructed $LIBNAME - haveit= - for x in $LDFLAGS $LIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" - fi - if test "$hardcode_minus_L" != no; then - dnl FIXME: Not sure whether we should use - dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" - dnl here. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" - else - dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH - dnl here, because this doesn't fit in flags passed to the - dnl compiler. So give up. No hardcoding. This affects only - dnl very old systems. - dnl FIXME: Not sure whether we should use - dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" - dnl here. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - dnl Linking with a static library. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" - else - dnl We shouldn't come here, but anyway it's good to have a - dnl fallback. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" - fi - fi - dnl Assume the include files are nearby. - additional_includedir= - case "$found_dir" in - */lib | */lib/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - dnl Potentially add $additional_includedir to $INCNAME. - dnl But don't add it - dnl 1. if it's the standard /usr/include, - dnl 2. if it's /usr/local/include and we are using GCC on Linux, - dnl 3. if it's already present in $CPPFLAGS or the already - dnl constructed $INCNAME, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - for x in $CPPFLAGS $INC[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - dnl Really add $additional_includedir to $INCNAME. - INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" - fi - fi - fi - fi - fi - dnl Look for dependencies. - if test -n "$found_la"; then - dnl Read the .la file. It defines the variables - dnl dlname, library_names, old_library, dependency_libs, current, - dnl age, revision, installed, dlopen, dlpreopen, libdir. - save_libdir="$libdir" - case "$found_la" in - */* | *\\*) . "$found_la" ;; - *) . "./$found_la" ;; - esac - libdir="$save_libdir" - dnl We use only dependency_libs. - for dep in $dependency_libs; do - case "$dep" in - -L*) - additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. - dnl But don't add it - dnl 1. if it's the standard /usr/lib, - dnl 2. if it's /usr/local/lib and we are using GCC on Linux, - dnl 3. if it's already present in $LDFLAGS or the already - dnl constructed $LIBNAME, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_libdir" != "X/usr/lib"; then - haveit= - if test "X$additional_libdir" = "X/usr/local/lib"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - haveit= - for x in $LDFLAGS $LIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LIBNAME. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" - fi - fi - haveit= - for x in $LDFLAGS $LTLIB[]NAME; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LTLIBNAME. - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" - fi - fi - fi - fi - ;; - -l*) - dnl Handle this in the next round. - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` - ;; - *.la) - dnl Handle this in the next round. Throw away the .la's - dnl directory; it is already contained in a preceding -L - dnl option. - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` - ;; - *) - dnl Most likely an immediate library name. - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" - ;; - esac - done - fi - else - dnl Didn't find the library; assume it is in the system directories - dnl known to the linker and runtime loader. (All the system - dnl directories known to the linker should also be known to the - dnl runtime loader, otherwise the system is severely misconfigured.) - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" - fi - fi - fi - done - done - if test "X$rpathdirs" != "X"; then - if test -n "$hardcode_libdir_separator"; then - dnl Weird platform: only the last -rpath option counts, the user must - dnl pass all path elements in one option. We can arrange that for a - dnl single library, but not when more than one $LIBNAMEs are used. - alldirs= - for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" - done - dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" - else - dnl The -rpath options are cumulative. - for found_dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$found_dir" - eval flag=\"$hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" - done - fi - fi - if test "X$ltrpathdirs" != "X"; then - dnl When using libtool, the option that works for both libraries and - dnl executables is -R. The -R options are cumulative. - for found_dir in $ltrpathdirs; do - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" - done - fi -]) - -dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, -dnl unless already present in VAR. -dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes -dnl contains two or three consecutive elements that belong together. -AC_DEFUN([AC_LIB_APPENDTOVAR], -[ - for element in [$2]; do - haveit= - for x in $[$1]; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - [$1]="${[$1]}${[$1]:+ }$element" - fi - done -]) diff --git a/gnu/dist/diffutils/m4/lib-prefix.m4 b/gnu/dist/diffutils/m4/lib-prefix.m4 deleted file mode 100644 index b8b79ab9ad5..00000000000 --- a/gnu/dist/diffutils/m4/lib-prefix.m4 +++ /dev/null @@ -1,148 +0,0 @@ -# lib-prefix.m4 serial 1 (gettext-0.11) -dnl Copyright (C) 2001-2002 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. - -dnl From Bruno Haible. - -dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed -dnl to access previously installed libraries. The basic assumption is that -dnl a user will want packages to use other packages he previously installed -dnl with the same --prefix option. -dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate -dnl libraries, but is otherwise very convenient. -AC_DEFUN([AC_LIB_PREFIX], -[ - AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) - AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) - dnl By default, look in $includedir and $libdir. - use_additional=yes - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - AC_ARG_WITH([lib-prefix], -[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib - --without-lib-prefix don't search for libraries in includedir and libdir], -[ - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - AC_LIB_WITH_FINAL_PREFIX([ - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - ]) - else - additional_includedir="$withval/include" - additional_libdir="$withval/lib" - fi - fi -]) - if test $use_additional = yes; then - dnl Potentially add $additional_includedir to $CPPFLAGS. - dnl But don't add it - dnl 1. if it's the standard /usr/include, - dnl 2. if it's already present in $CPPFLAGS, - dnl 3. if it's /usr/local/include and we are using GCC on Linux, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - for x in $CPPFLAGS; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - dnl Really add $additional_includedir to $CPPFLAGS. - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" - fi - fi - fi - fi - dnl Potentially add $additional_libdir to $LDFLAGS. - dnl But don't add it - dnl 1. if it's the standard /usr/lib, - dnl 2. if it's already present in $LDFLAGS, - dnl 3. if it's /usr/local/lib and we are using GCC on Linux, - dnl 4. if it doesn't exist as a directory. - if test "X$additional_libdir" != "X/usr/lib"; then - haveit= - for x in $LDFLAGS; do - AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test "X$additional_libdir" = "X/usr/local/lib"; then - if test -n "$GCC"; then - case $host_os in - linux*) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - dnl Really add $additional_libdir to $LDFLAGS. - LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" - fi - fi - fi - fi - fi -]) - -dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, -dnl acl_final_exec_prefix, containing the values to which $prefix and -dnl $exec_prefix will expand at the end of the configure script. -AC_DEFUN([AC_LIB_PREPARE_PREFIX], -[ - dnl Unfortunately, prefix and exec_prefix get only finally determined - dnl at the end of configure. - if test "X$prefix" = "XNONE"; then - acl_final_prefix="$ac_default_prefix" - else - acl_final_prefix="$prefix" - fi - if test "X$exec_prefix" = "XNONE"; then - acl_final_exec_prefix='${prefix}' - else - acl_final_exec_prefix="$exec_prefix" - fi - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" - prefix="$acl_save_prefix" -]) - -dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the -dnl variables prefix and exec_prefix bound to the values they will have -dnl at the end of the configure script. -AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], -[ - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - $1 - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" -]) diff --git a/gnu/dist/diffutils/m4/longlong.m4 b/gnu/dist/diffutils/m4/longlong.m4 deleted file mode 100644 index daa95c07510..00000000000 --- a/gnu/dist/diffutils/m4/longlong.m4 +++ /dev/null @@ -1,35 +0,0 @@ -#serial 2 - -dnl From Paul Eggert. - -# Define HAVE_LONG_LONG if 'long long' works. - -AC_DEFUN([jm_AC_TYPE_LONG_LONG], -[ - AC_CACHE_CHECK([for long long], ac_cv_type_long_long, - [AC_TRY_LINK([long long ll = 1; int i = 63;], - [long long llmax = (long long) -1; - return ll << i | ll >> i | llmax / ll | llmax % ll;], - ac_cv_type_long_long=yes, - ac_cv_type_long_long=no)]) - if test $ac_cv_type_long_long = yes; then - AC_DEFINE(HAVE_LONG_LONG, 1, - [Define if you have the long long type.]) - fi -]) - -# Define HAVE_UNSIGNED_LONG_LONG if 'unsigned long long' works. - -AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG], -[ - AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long, - [AC_TRY_LINK([unsigned long long ull = 1; int i = 63;], - [unsigned long long ullmax = (unsigned long long) -1; - return ull << i | ull >> i | ullmax / ull | ullmax % ull;], - ac_cv_type_unsigned_long_long=yes, - ac_cv_type_unsigned_long_long=no)]) - if test $ac_cv_type_unsigned_long_long = yes; then - AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1, - [Define if you have the unsigned long long type.]) - fi -]) diff --git a/gnu/dist/diffutils/m4/malloc.m4 b/gnu/dist/diffutils/m4/malloc.m4 deleted file mode 100644 index bb60947dc74..00000000000 --- a/gnu/dist/diffutils/m4/malloc.m4 +++ /dev/null @@ -1,34 +0,0 @@ -#serial 5 - -dnl From Jim Meyering. -dnl Determine whether malloc accepts 0 as its argument. -dnl If it doesn't, arrange to use the replacement function. -dnl - -AC_DEFUN([jm_FUNC_MALLOC], -[ - dnl xmalloc.c requires that this symbol be defined so it doesn't - dnl mistakenly use a broken malloc -- as it might if this test were omitted. - AC_DEFINE(HAVE_DONE_WORKING_MALLOC_CHECK, 1, - [Define if the malloc check has been performed. ]) - - AC_CACHE_CHECK([for working malloc], jm_cv_func_working_malloc, - [AC_TRY_RUN([ - char *malloc (); - int - main () - { - exit (malloc (0) ? 0 : 1); - } - ], - jm_cv_func_working_malloc=yes, - jm_cv_func_working_malloc=no, - dnl When crosscompiling, assume malloc is broken. - jm_cv_func_working_malloc=no) - ]) - if test $jm_cv_func_working_malloc = no; then - AC_LIBOBJ(malloc) - AC_DEFINE(malloc, rpl_malloc, - [Define to rpl_malloc if the replacement function should be used.]) - fi -]) diff --git a/gnu/dist/diffutils/m4/mbrtowc.m4 b/gnu/dist/diffutils/m4/mbrtowc.m4 deleted file mode 100644 index 87743919b9d..00000000000 --- a/gnu/dist/diffutils/m4/mbrtowc.m4 +++ /dev/null @@ -1,18 +0,0 @@ -#serial 4 - -dnl From Paul Eggert - -AC_DEFUN([jm_FUNC_MBRTOWC], -[ - AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared], - jm_cv_func_mbrtowc, - [AC_TRY_LINK( - [#include ], - [mbstate_t state; return ! (sizeof state && mbrtowc);], - jm_cv_func_mbrtowc=yes, - jm_cv_func_mbrtowc=no)]) - if test $jm_cv_func_mbrtowc = yes; then - AC_DEFINE(HAVE_MBRTOWC, 1, - [Define to 1 if mbrtowc and mbstate_t are properly declared.]) - fi -]) diff --git a/gnu/dist/diffutils/m4/mbstate_t.m4 b/gnu/dist/diffutils/m4/mbstate_t.m4 deleted file mode 100644 index ae2bcf1e8e2..00000000000 --- a/gnu/dist/diffutils/m4/mbstate_t.m4 +++ /dev/null @@ -1,29 +0,0 @@ -# serial 9 - -# From Paul Eggert. - -# BeOS 5 has but does not define mbstate_t, -# so you can't declare an object of that type. -# Check for this incompatibility with Standard C. - -# Include stdlib.h first, because otherwise this test would fail on Linux -# (at least glibc-2.1.3) because the "_XOPEN_SOURCE 500" definition elicits -# a syntax error in wchar.h due to the use of undefined __int32_t. - -AC_DEFUN([AC_MBSTATE_T], - [ - AC_CHECK_HEADERS(stdlib.h) - - AC_CACHE_CHECK([for mbstate_t], ac_cv_type_mbstate_t, - [AC_TRY_COMPILE([ -#if HAVE_STDLIB_H -# include -#endif -#include ], - [mbstate_t x; return sizeof x;], - ac_cv_type_mbstate_t=yes, - ac_cv_type_mbstate_t=no)]) - if test $ac_cv_type_mbstate_t = no; then - AC_DEFINE(mbstate_t, int, - [Define to a type if does not define.]) - fi]) diff --git a/gnu/dist/diffutils/m4/prereq.m4 b/gnu/dist/diffutils/m4/prereq.m4 deleted file mode 100644 index 816308ab408..00000000000 --- a/gnu/dist/diffutils/m4/prereq.m4 +++ /dev/null @@ -1,153 +0,0 @@ -#serial 22 - -dnl These are the prerequisite macros for files in the lib/ -dnl directories of the fileutils, sh-utils, and textutils packages. - -AC_DEFUN([jm_PREREQ], -[ - jm_PREREQ_ADDEXT - jm_PREREQ_CANON_HOST - jm_PREREQ_DIRNAME - jm_PREREQ_ERROR - jm_PREREQ_EXCLUDE - jm_PREREQ_GETPAGESIZE - jm_PREREQ_HARD_LOCALE - jm_PREREQ_HASH - jm_PREREQ_HUMAN - jm_PREREQ_MBSWIDTH - jm_PREREQ_MEMCHR - jm_PREREQ_PHYSMEM - jm_PREREQ_POSIXVER - jm_PREREQ_QUOTEARG - jm_PREREQ_READUTMP - jm_PREREQ_REGEX - jm_PREREQ_TEMPNAME # called by mkstemp - jm_PREREQ_XGETCWD - jm_PREREQ_XREADLINK -]) - -AC_DEFUN([jm_PREREQ_ADDEXT], -[ - dnl For addext.c. - AC_SYS_LONG_FILE_NAMES - AC_CHECK_FUNCS(pathconf) - AC_CHECK_HEADERS(limits.h string.h unistd.h) -]) - -AC_DEFUN([jm_PREREQ_CANON_HOST], -[ - dnl Add any libraries as early as possible. - dnl In particular, inet_ntoa needs -lnsl at least on Solaris5.5.1, - dnl so we have to add -lnsl to LIBS before checking for that function. - AC_SEARCH_LIBS(gethostbyname, [inet nsl]) - - dnl These come from -lnsl on Solaris5.5.1. - AC_CHECK_FUNCS(gethostbyname gethostbyaddr inet_ntoa) - - AC_CHECK_FUNCS(gethostbyname gethostbyaddr inet_ntoa) - AC_CHECK_HEADERS(unistd.h string.h netdb.h sys/socket.h \ - netinet/in.h arpa/inet.h) -]) - -AC_DEFUN([jm_PREREQ_DIRNAME], -[ - AC_HEADER_STDC - AC_CHECK_HEADERS(string.h) -]) - -AC_DEFUN([jm_PREREQ_EXCLUDE], -[ - jm_FUNC_FNMATCH - AC_HEADER_STDBOOL -]) - -AC_DEFUN([jm_PREREQ_GETPAGESIZE], -[ - AC_CHECK_FUNCS(getpagesize) - AC_CHECK_HEADERS(OS.h unistd.h) -]) - -AC_DEFUN([jm_PREREQ_HARD_LOCALE], -[ - AC_C_PROTOTYPES - AC_CHECK_FUNCS(setlocale) - AC_CHECK_HEADERS(locale.h stdlib.h string.h) -]) - -AC_DEFUN([jm_PREREQ_HASH], -[ - AC_CHECK_HEADERS(stdlib.h) - AC_HEADER_STDBOOL - AC_REQUIRE([jm_CHECK_DECLS]) -]) - -# If you use human.c, you need the following files: -# inttypes.m4 ulonglong.m4 -AC_DEFUN([jm_PREREQ_HUMAN], -[ - AC_CHECK_HEADERS(limits.h stdlib.h string.h) - AC_CHECK_DECLS([getenv]) - AC_REQUIRE([jm_AC_TYPE_UINTMAX_T]) -]) - -AC_DEFUN([jm_PREREQ_MEMCHR], -[ - AC_CHECK_HEADERS(limits.h stdlib.h bp-sym.h) -]) - -AC_DEFUN([jm_PREREQ_PHYSMEM], -[ - AC_CHECK_HEADERS(sys/pstat.h unistd.h) - AC_CHECK_FUNCS(pstat_getstatic pstat_getdynamic) -]) - -AC_DEFUN([jm_PREREQ_POSIXVER], -[ - AC_CHECK_HEADERS(unistd.h) - AC_CHECK_DECLS([getenv]) -]) - -AC_DEFUN([jm_PREREQ_QUOTEARG], -[ - AC_CHECK_FUNCS(isascii iswprint) - jm_FUNC_MBRTOWC - AC_CHECK_HEADERS(limits.h stddef.h stdlib.h string.h wchar.h wctype.h) - AC_HEADER_STDC - AC_C_BACKSLASH_A - AC_MBSTATE_T - AM_C_PROTOTYPES -]) - -AC_DEFUN([jm_PREREQ_REGEX], -[ - dnl FIXME: Maybe provide a btowc replacement someday: solaris-2.5.1 lacks it. - dnl FIXME: Check for wctype and iswctype, and and add -lw if necessary - dnl to get them. - AC_CHECK_FUNCS(bzero bcopy isascii btowc) - AC_CHECK_HEADERS(alloca.h libintl.h wctype.h wchar.h) - AC_HEADER_STDC - AC_FUNC_ALLOCA -]) - -AC_DEFUN([jm_PREREQ_TEMPNAME], -[ - AC_HEADER_STDC - AC_HEADER_STAT - AC_CHECK_HEADERS(fcntl.h sys/time.h stdint.h unistd.h) - AC_CHECK_FUNCS(__secure_getenv gettimeofday) - AC_CHECK_DECLS([getenv]) -]) - -AC_DEFUN([jm_PREREQ_XGETCWD], -[ - AC_C_PROTOTYPES - AC_CHECK_HEADERS(limits.h stdlib.h sys/param.h unistd.h) - AC_CHECK_FUNCS(getcwd) - AC_FUNC_GETCWD_NULL -]) - -AC_DEFUN([jm_PREREQ_XREADLINK], -[ - AC_C_PROTOTYPES - AC_CHECK_HEADERS(limits.h stdlib.h sys/types.h unistd.h) -]) diff --git a/gnu/dist/diffutils/m4/progtest.m4 b/gnu/dist/diffutils/m4/progtest.m4 deleted file mode 100644 index 443c8e30630..00000000000 --- a/gnu/dist/diffutils/m4/progtest.m4 +++ /dev/null @@ -1,59 +0,0 @@ -# progtest.m4 serial 2 (gettext-0.10.40) -dnl Copyright (C) 1996-2002 Free Software Foundation, Inc. -dnl This file is free software, distributed under the terms of the GNU -dnl General Public License. As a special exception to the GNU General -dnl Public License, this file may be distributed as part of a program -dnl that contains a configuration script generated by Autoconf, under -dnl the same distribution terms as the rest of that program. -dnl -dnl This file can can be used in projects which are not available under -dnl the GNU General Public License or the GNU Library General Public -dnl License but which still want to provide support for the GNU gettext -dnl functionality. -dnl Please note that the actual code of the GNU gettext library is covered -dnl by the GNU Library General Public License, and the rest of the GNU -dnl gettext package package is covered by the GNU General Public License. -dnl They are *not* in the public domain. - -dnl Authors: -dnl Ulrich Drepper , 1996. - -# Search path for a program which passes the given test. - -dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, -dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) -AC_DEFUN([AM_PATH_PROG_WITH_TEST], -[# Extract the first word of "$2", so it can be a program name with args. -set dummy $2; ac_word=[$]2 -AC_MSG_CHECKING([for $ac_word]) -AC_CACHE_VAL(ac_cv_path_$1, -[case "[$]$1" in - /*) - ac_cv_path_$1="[$]$1" # Let the user override the test with a path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in ifelse([$5], , $PATH, [$5]); do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - if [$3]; then - ac_cv_path_$1="$ac_dir/$ac_word" - break - fi - fi - done - IFS="$ac_save_ifs" -dnl If no 4th arg is given, leave the cache variable unset, -dnl so AC_PATH_PROGS will keep looking. -ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" -])dnl - ;; -esac])dnl -$1="$ac_cv_path_$1" -if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then - AC_MSG_RESULT([$]$1) -else - AC_MSG_RESULT(no) -fi -AC_SUBST($1)dnl -]) diff --git a/gnu/dist/diffutils/m4/realloc.m4 b/gnu/dist/diffutils/m4/realloc.m4 deleted file mode 100644 index c8a8237472d..00000000000 --- a/gnu/dist/diffutils/m4/realloc.m4 +++ /dev/null @@ -1,34 +0,0 @@ -#serial 5 - -dnl From Jim Meyering. -dnl Determine whether realloc works when both arguments are 0. -dnl If it doesn't, arrange to use the replacement function. -dnl - -AC_DEFUN([jm_FUNC_REALLOC], -[ - dnl xmalloc.c requires that this symbol be defined so it doesn't - dnl mistakenly use a broken realloc -- as it might if this test were omitted. - AC_DEFINE(HAVE_DONE_WORKING_REALLOC_CHECK, 1, - [Define if the realloc check has been performed. ]) - - AC_CACHE_CHECK([for working realloc], jm_cv_func_working_realloc, - [AC_TRY_RUN([ - char *realloc (); - int - main () - { - exit (realloc (0, 0) ? 0 : 1); - } - ], - jm_cv_func_working_realloc=yes, - jm_cv_func_working_realloc=no, - dnl When crosscompiling, assume realloc is broken. - jm_cv_func_working_realloc=no) - ]) - if test $jm_cv_func_working_realloc = no; then - AC_LIBOBJ(realloc) - AC_DEFINE(realloc, rpl_realloc, - [Define to rpl_realloc if the replacement function should be used.]) - fi -]) diff --git a/gnu/dist/diffutils/m4/regex.m4 b/gnu/dist/diffutils/m4/regex.m4 deleted file mode 100644 index 0017507edf0..00000000000 --- a/gnu/dist/diffutils/m4/regex.m4 +++ /dev/null @@ -1,81 +0,0 @@ -#serial 12 - -dnl Initially derived from code in GNU grep. -dnl Mostly written by Jim Meyering. - -dnl Usage: jm_INCLUDED_REGEX([lib/regex.c]) -dnl -AC_DEFUN([jm_INCLUDED_REGEX], - [ - dnl Even packages that don't use regex.c can use this macro. - dnl Of course, for them it doesn't do anything. - - # Assume we'll default to using the included regex.c. - ac_use_included_regex=yes - - # However, if the system regex support is good enough that it passes the - # the following run test, then default to *not* using the included regex.c. - # If cross compiling, assume the test would fail and use the included - # regex.c. The first failing regular expression is from `Spencer ere - # test #75' in grep-2.3. - AC_CACHE_CHECK([for working re_compile_pattern], - jm_cv_func_working_re_compile_pattern, - AC_TRY_RUN( -[#include -#include - int - main () - { - static struct re_pattern_buffer regex; - const char *s; - struct re_registers regs; - re_set_syntax (RE_SYNTAX_POSIX_EGREP); - [s = re_compile_pattern ("a[[:@:>@:]]b\n", 9, ®ex);] - /* This should fail with _Invalid character class name_ error. */ - if (!s) - exit (1); - - /* This should succeed, but doesn't for e.g. glibc-2.1.3. */ - s = re_compile_pattern ("{1", 2, ®ex); - - if (s) - exit (1); - - /* The following example is derived from a problem report - against gawk from Jorge Stolfi . */ - s = re_compile_pattern ("[[anù]]*n", 7, ®ex); - if (s) - exit (1); - - /* This should match, but doesn't for e.g. glibc-2.2.1. */ - if (re_match (®ex, "an", 2, 0, ®s) != 2) - exit (1); - - exit (0); - } - ], - jm_cv_func_working_re_compile_pattern=yes, - jm_cv_func_working_re_compile_pattern=no, - dnl When crosscompiling, assume it's broken. - jm_cv_func_working_re_compile_pattern=no)) - if test $jm_cv_func_working_re_compile_pattern = yes; then - ac_use_included_regex=no - fi - - test -n "$1" || AC_MSG_ERROR([missing argument]) - m4_syscmd([test -f $1]) - ifelse(m4_sysval, 0, - [ - AC_ARG_WITH(included-regex, - [ --without-included-regex don't compile regex; this is the default on - systems with version 2 of the GNU C library - (use with caution on other system)], - jm_with_regex=$withval, - jm_with_regex=$ac_use_included_regex) - if test "$jm_with_regex" = yes; then - AC_LIBOBJ(regex) - fi - ], - ) - ] -) diff --git a/gnu/dist/diffutils/m4/setmode.m4 b/gnu/dist/diffutils/m4/setmode.m4 deleted file mode 100644 index 1af6bca4a7e..00000000000 --- a/gnu/dist/diffutils/m4/setmode.m4 +++ /dev/null @@ -1,38 +0,0 @@ -# Check for setmode, DOS style. - -# Copyright (C) 2001, 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -AC_DEFUN([AC_FUNC_SETMODE_DOS], - [AC_CHECK_HEADERS(fcntl.h unistd.h) - AC_CACHE_CHECK([for DOS-style setmode], - [ac_cv_func_setmode_dos], - [AC_TRY_LINK( - [#include - #if HAVE_FCNTL_H - # include - #endif - #if HAVE_UNISTD_H - # include - #endif], - [int ret = setmode && setmode (1, O_BINARY);], - [ac_cv_func_setmode_dos=yes], - [ac_cv_func_setmode_dos=no])]) - if test $ac_cv_func_setmode_dos = yes; then - AC_DEFINE(HAVE_SETMODE_DOS, 1, - [Define to 1 if you have the DOS-style `setmode' function.]) - fi]) diff --git a/gnu/dist/diffutils/m4/st_mtim.m4 b/gnu/dist/diffutils/m4/st_mtim.m4 deleted file mode 100644 index e9342cfebfa..00000000000 --- a/gnu/dist/diffutils/m4/st_mtim.m4 +++ /dev/null @@ -1,32 +0,0 @@ -#serial 5 - -dnl From Paul Eggert. - -# Define ST_MTIM_NSEC to be the nanoseconds member of struct stat's st_mtim, -# if it exists. - -AC_DEFUN([AC_STRUCT_ST_MTIM_NSEC], - [AC_CACHE_CHECK([for nanoseconds member of struct stat.st_mtim], - ac_cv_struct_st_mtim_nsec, - [ac_save_CPPFLAGS="$CPPFLAGS" - ac_cv_struct_st_mtim_nsec=no - # tv_nsec -- the usual case - # _tv_nsec -- Solaris 2.6, if - # (defined _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED == 1 - # && !defined __EXTENSIONS__) - # st__tim.tv_nsec -- UnixWare 2.1.2 - for ac_val in tv_nsec _tv_nsec st__tim.tv_nsec; do - CPPFLAGS="$ac_save_CPPFLAGS -DST_MTIM_NSEC=$ac_val" - AC_TRY_COMPILE([#include -#include ], [struct stat s; s.st_mtim.ST_MTIM_NSEC;], - [ac_cv_struct_st_mtim_nsec=$ac_val; break]) - done - CPPFLAGS="$ac_save_CPPFLAGS"]) - - if test $ac_cv_struct_st_mtim_nsec != no; then - AC_DEFINE_UNQUOTED(ST_MTIM_NSEC, $ac_cv_struct_st_mtim_nsec, - [Define to be the nanoseconds member of struct stat's st_mtim, - if it exists.]) - fi - ] -) diff --git a/gnu/dist/diffutils/m4/stdbool.m4 b/gnu/dist/diffutils/m4/stdbool.m4 deleted file mode 100644 index 8916dd4c74b..00000000000 --- a/gnu/dist/diffutils/m4/stdbool.m4 +++ /dev/null @@ -1,56 +0,0 @@ -# Check for stdbool.h that conforms to C99. - -# Copyright (C) 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -AC_DEFUN([AC_HEADER_STDBOOL], - [AC_CACHE_CHECK([for stdbool.h that conforms to C99], - [ac_cv_header_stdbool_h], - [AC_TRY_COMPILE( - [ - #include - #ifndef bool - "error: bool is not defined" - #endif - #ifndef false - "error: false is not defined" - #endif - #ifndef true - "error: false is not defined" - #endif - #ifndef __bool_true_false_are_defined - "error: __bool_true_false_are_defined is not defined" - #endif - - struct s { _Bool s: 1; _Bool t; } s; - - char a[true == 1 ? 1 : -1]; - char b[false == 0 ? 1 : -1]; - char c[__bool_true_false_are_defined == 1 ? 1 : -1]; - char d[(bool) -0.5 == true ? 1 : -1]; - char e[(bool) &s == true ? 1 : -1]; - char f[(_Bool) -0.0 == false ? 1 : -1]; - char g[true]; - char h[sizeof (_Bool)]; - char i[sizeof s.t]; - ], - [ return !a + !b + !c + !d + !e + !f + !g + !h + !i; ], - [ac_cv_header_stdbool_h=yes], - [ac_cv_header_stdbool_h=no])]) - if test $ac_cv_header_stdbool_h = yes; then - AC_DEFINE(HAVE_STDBOOL_H, 1, [Define to 1 if stdbool.h conforms to C99.]) - fi]) diff --git a/gnu/dist/diffutils/m4/strftime.m4 b/gnu/dist/diffutils/m4/strftime.m4 deleted file mode 100644 index 831faecac5b..00000000000 --- a/gnu/dist/diffutils/m4/strftime.m4 +++ /dev/null @@ -1,43 +0,0 @@ -#serial 17 - -dnl This macro is intended to be used solely in this file. -dnl These are the prerequisite macros for GNU's strftime.c replacement. -AC_DEFUN([_jm_STRFTIME_PREREQS], -[ - dnl strftime.c uses localtime_r and the underyling system strftime - dnl if they exist. - AC_CHECK_FUNCS(localtime_r strftime) - - AC_CHECK_HEADERS(limits.h) - AC_CHECK_FUNCS(bcopy tzset mempcpy memcpy memset) - - # This defines (or not) HAVE_TZNAME and HAVE_TM_ZONE. - AC_STRUCT_TIMEZONE - - AC_CHECK_FUNCS(mblen mbrlen) - - AC_CHECK_MEMBER([struct tm.tm_gmtoff], - [AC_DEFINE(HAVE_TM_GMTOFF, 1, - [Define if struct tm has the tm_gmtoff member.])], - , - [#include ]) -]) - -dnl From Jim Meyering. -dnl -AC_DEFUN([jm_FUNC_GNU_STRFTIME], -[AC_REQUIRE([AC_HEADER_TIME])dnl - - _jm_STRFTIME_PREREQS - - AC_REQUIRE([AC_C_CONST])dnl - AC_REQUIRE([AC_HEADER_STDC])dnl - AC_CHECK_HEADERS(sys/time.h) - AC_DEFINE([my_strftime], [nstrftime], - [Define to the name of the strftime replacement function.]) -]) - -AC_DEFUN([jm_FUNC_STRFTIME], -[ - _jm_STRFTIME_PREREQS -]) diff --git a/gnu/dist/diffutils/m4/vararrays.m4 b/gnu/dist/diffutils/m4/vararrays.m4 deleted file mode 100644 index e4256f963b6..00000000000 --- a/gnu/dist/diffutils/m4/vararrays.m4 +++ /dev/null @@ -1,37 +0,0 @@ -# Check for variable-length arrays. - -#serial 1 - -# From Paul Eggert - -# Copyright (C) 2001 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -AC_DEFUN([AC_C_VARARRAYS], -[ - AC_CACHE_CHECK([for variable-length arrays], - ac_cv_c_vararrays, - [AC_TRY_COMPILE( - [], - [static int x; char a[++x]; a[sizeof a - 1] = 0; return a[0];], - ac_cv_c_vararrays=yes, - ac_cv_c_vararrays=no)]) - if test $ac_cv_c_vararrays = yes; then - AC_DEFINE(HAVE_C_VARARRAYS, 1, - [Define to 1 if C supports variable-length arrays.]) - fi -]) diff --git a/gnu/dist/diffutils/m4/xstrtoumax.m4 b/gnu/dist/diffutils/m4/xstrtoumax.m4 deleted file mode 100644 index 9ab71ec6dd4..00000000000 --- a/gnu/dist/diffutils/m4/xstrtoumax.m4 +++ /dev/null @@ -1,40 +0,0 @@ -#serial 4 - -# autoconf tests required for use of xstrtoumax.c - -AC_DEFUN([jm_AC_PREREQ_XSTRTOUMAX], -[ - AC_REQUIRE([jm_AC_TYPE_INTMAX_T]) - AC_REQUIRE([jm_AC_TYPE_UINTMAX_T]) - AC_REQUIRE([jm_AC_TYPE_LONG_LONG]) - AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG]) - AC_CHECK_DECLS([strtol, strtoul, strtoull, strtoimax, strtoumax]) - AC_CHECK_HEADERS(limits.h stdlib.h inttypes.h) - - AC_CACHE_CHECK([whether defines strtoumax as a macro], - jm_cv_func_strtoumax_macro, - AC_EGREP_CPP([inttypes_h_defines_strtoumax], [#include -#ifdef strtoumax - inttypes_h_defines_strtoumax -#endif], - jm_cv_func_strtoumax_macro=yes, - jm_cv_func_strtoumax_macro=no)) - - if test "$jm_cv_func_strtoumax_macro" != yes; then - AC_REPLACE_FUNCS(strtoumax) - fi - - dnl Only the replacement strtoumax invokes strtoul and strtoull, - dnl so we need the replacements only if strtoumax does not exist. - case "$jm_cv_func_strtoumax_macro,$ac_cv_func_strtoumax" in - no,no) - AC_REPLACE_FUNCS(strtoul) - - dnl We don't need (and can't compile) the replacement strtoull - dnl unless the type `unsigned long long' exists. - if test "$ac_cv_type_unsigned_long_long" = yes; then - AC_REPLACE_FUNCS(strtoull) - fi - ;; - esac -]) diff --git a/gnu/dist/diffutils/man/Makefile.am b/gnu/dist/diffutils/man/Makefile.am deleted file mode 100644 index d3a1ee20bbc..00000000000 --- a/gnu/dist/diffutils/man/Makefile.am +++ /dev/null @@ -1,34 +0,0 @@ -# Automakefile for GNU diffutils man pages - -# Copyright (C) 2002 Free Software Foundation, Inc. - -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2, or (at your option) -## any later version. - -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. - -## You should have received a copy of the GNU General Public License -## along with this program; if not, write to the Free Software -## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -## 02111-1307, USA. - -dist_man_MANS = cmp.1 diff.1 diff3.1 sdiff.1 -MAINTAINERCLEANFILES = $(dist_man_MANS) - -S = $(top_srcdir)/src -cmp.1: $S/cmp.c -diff.1: $S/diff.c -diff3.1: $S/diff3.c -sdiff.1: $S/sdiff.c - -# Depend on configure.ac to get version number changes. -$(dist_man_MANS): $(top_srcdir)/configure.ac - base=`expr $@ : '\(.*\).1'` && \ - (echo '[NAME]' && sed 's@/\* *@@; s/-/\\-/; q' $S/$$base.c) | \ - $(HELP2MAN) -i - -S '$(PACKAGE) $(VERSION)' ../src/$$base | \ - sed 's/^\.B info .*/.B info diff/' >$@ diff --git a/gnu/dist/diffutils/man/Makefile.in b/gnu/dist/diffutils/man/Makefile.in deleted file mode 100644 index 73ae371ad6c..00000000000 --- a/gnu/dist/diffutils/man/Makefile.in +++ /dev/null @@ -1,291 +0,0 @@ -# Makefile.in generated by automake 1.6 from Makefile.am. -# @configure_input@ - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 -# 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# Automakefile for GNU diffutils man pages - -# Copyright (C) 2002 Free Software Foundation, Inc. -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_HEADER = $(INSTALL_DATA) -transform = @program_transform_name@ -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ - -EXEEXT = @EXEEXT@ -OBJEXT = @OBJEXT@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -AMTAR = @AMTAR@ -AWK = @AWK@ -BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CPP = @CPP@ -DATADIRNAME = @DATADIRNAME@ -DEPDIR = @DEPDIR@ -GENCAT = @GENCAT@ -GLIBC21 = @GLIBC21@ -GMSGFMT = @GMSGFMT@ -HAVE_LIB = @HAVE_LIB@ -HELP2MAN = @HELP2MAN@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLBISON = @INTLBISON@ -INTLLIBS = @INTLLIBS@ -INTLOBJS = @INTLOBJS@ -INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ -LIB = @LIB@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ -LTLIB = @LTLIB@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -PACKAGE = @PACKAGE@ -POSUB = @POSUB@ -PR_PROGRAM = @PR_PROGRAM@ -RANLIB = @RANLIB@ -STRIP = @STRIP@ -U = @U@ -USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -am__include = @am__include@ -am__quote = @am__quote@ -install_sh = @install_sh@ - -dist_man_MANS = cmp.1 diff.1 diff3.1 sdiff.1 -MAINTAINERCLEANFILES = $(dist_man_MANS) - -S = $(top_srcdir)/src -subdir = man -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -DIST_SOURCES = - -NROFF = nroff -MANS = $(dist_man_MANS) -DIST_COMMON = $(dist_man_MANS) Makefile.am Makefile.in -all: all-am - -.SUFFIXES: -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnits man/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) -uninstall-info-am: - -man1dir = $(mandir)/man1 -install-man1: $(man1_MANS) $(man_MANS) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(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; \ - 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/^.*\\.//'`; \ - 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 -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/^.*\\.//'`; \ - 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 -tags: TAGS -TAGS: - -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = .. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkinstalldirs) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - cp -pR $$d/$$file $(distdir)$$dir \ - || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(MANS) - -installdirs: - $(mkinstalldirs) $(DESTDIR)$(man1dir) - -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-generic mostlyclean-am - -distclean: distclean-am - -distclean-am: clean-am distclean-generic - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: install-man - -install-exec-am: - -install-info: install-info-am - -install-man: install-man1 - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-generic - -uninstall-am: uninstall-info-am uninstall-man - -uninstall-man: uninstall-man1 - -.PHONY: all all-am check check-am clean clean-generic distclean \ - distclean-generic distdir dvi dvi-am info info-am install \ - install-am install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-man1 install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-generic uninstall uninstall-am \ - uninstall-info-am uninstall-man uninstall-man1 - -cmp.1: $S/cmp.c -diff.1: $S/diff.c -diff3.1: $S/diff3.c -sdiff.1: $S/sdiff.c - -# Depend on configure.ac to get version number changes. -$(dist_man_MANS): $(top_srcdir)/configure.ac - base=`expr $@ : '\(.*\).1'` && \ - (echo '[NAME]' && sed 's@/\* *@@; s/-/\\-/; q' $S/$$base.c) | \ - $(HELP2MAN) -i - -S '$(PACKAGE) $(VERSION)' ../src/$$base | \ - sed 's/^\.B info .*/.B info diff/' >$@ -# 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/gnu/dist/diffutils/man/cmp.1 b/gnu/dist/diffutils/man/cmp.1 deleted file mode 100644 index 04cd2c5010f..00000000000 --- a/gnu/dist/diffutils/man/cmp.1 +++ /dev/null @@ -1,66 +0,0 @@ -.\" $NetBSD: cmp.1,v 1.1.1.1 2003/01/26 00:43:17 wiz Exp $ -.\" -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.27. -.TH CMP "1" "April 2002" "diffutils 2.8.1" "User Commands" -.SH NAME -cmp \- compare two files byte by byte -.SH SYNOPSIS -.B cmp -[\fIOPTION\fR]... \fIFILE1 \fR[\fIFILE2 \fR[\fISKIP1 \fR[\fISKIP2\fR]]] -.SH DESCRIPTION -Compare two files byte by byte. -.TP -\fB\-b\fR \fB\-\-print\-bytes\fR -Print differing bytes. -.TP -\fB\-i\fR SKIP \fB\-\-ignore\-initial\fR=\fISKIP\fR -Skip the first SKIP bytes of input. -.HP -\fB\-i\fR SKIP1:SKIP2 \fB\-\-ignore\-initial\fR=\fISKIP1\fR:SKIP2 -.IP -Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2. -.TP -\fB\-l\fR \fB\-\-verbose\fR -Output byte numbers and values of all differing bytes. -.TP -\fB\-n\fR LIMIT \fB\-\-bytes\fR=\fILIMIT\fR -Compare at most LIMIT bytes. -.TP -\fB\-s\fR \fB\-\-quiet\fR \fB\-\-silent\fR -Output nothing; yield exit status only. -.TP -\fB\-v\fR \fB\-\-version\fR -Output version info. -.TP -\fB\-\-help\fR -Output this help. -.PP -SKIP1 and SKIP2 are the number of bytes to skip in each file. -SKIP values may be followed by the following multiplicative suffixes: -kB 1000, K 1024, MB 1,000,000, M 1,048,576, -GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y. -.PP -If a FILE is `-' or missing, read standard input. -.SH AUTHOR -Written by Torbjorn Granlund and David MacKenzie. -.SH "REPORTING BUGS" -Report bugs to . -.SH COPYRIGHT -Copyright \(co 2002 Free Software Foundation, Inc. -.PP -This program comes with NO WARRANTY, to the extent permitted by law. -You may redistribute copies of this program -under the terms of the GNU General Public License. -For more information about these matters, see the file named COPYING. -.SH "SEE ALSO" -The full documentation for -.B cmp -is maintained as a Texinfo manual. If the -.B info -and -.B cmp -programs are properly installed at your site, the command -.IP -.B info diff -.PP -should give you access to the complete manual. diff --git a/gnu/dist/diffutils/man/diff.1 b/gnu/dist/diffutils/man/diff.1 deleted file mode 100644 index 12844815352..00000000000 --- a/gnu/dist/diffutils/man/diff.1 +++ /dev/null @@ -1,227 +0,0 @@ -.\" $NetBSD: diff.1,v 1.1.1.1 2003/01/26 00:43:17 wiz Exp $ -.\" -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.27. -.TH DIFF "1" "April 2002" "diffutils 2.8.1" "User Commands" -.SH NAME -diff \- compare files line by line -.SH SYNOPSIS -.B diff -[\fIOPTION\fR]... \fIFILES\fR -.SH DESCRIPTION -Compare files line by line. -.TP -\fB\-i\fR \fB\-\-ignore\-case\fR -Ignore case differences in file contents. -.TP -\fB\-\-ignore\-file\-name\-case\fR -Ignore case when comparing file names. -.TP -\fB\-\-no\-ignore\-file\-name\-case\fR -Consider case when comparing file names. -.TP -\fB\-E\fR \fB\-\-ignore\-tab\-expansion\fR -Ignore changes due to tab expansion. -.TP -\fB\-b\fR \fB\-\-ignore\-space\-change\fR -Ignore changes in the amount of white space. -.TP -\fB\-w\fR \fB\-\-ignore\-all\-space\fR -Ignore all white space. -.TP -\fB\-B\fR \fB\-\-ignore\-blank\-lines\fR -Ignore changes whose lines are all blank. -.TP -\fB\-I\fR RE \fB\-\-ignore\-matching\-lines\fR=\fIRE\fR -Ignore changes whose lines all match RE. -.TP -\fB\-\-strip\-trailing\-cr\fR -Strip trailing carriage return on input. -.TP -\fB\-a\fR \fB\-\-text\fR -Treat all files as text. -.TP -\fB\-c\fR \fB\-C\fR NUM \fB\-\-context\fR[=\fINUM\fR] -Output NUM (default 3) lines of copied context. -.TP -\fB\-u\fR \fB\-U\fR NUM \fB\-\-unified\fR[=\fINUM\fR] -Output NUM (default 3) lines of unified context. -.TP -\fB\-\-label\fR LABEL -Use LABEL instead of file name. -.TP -\fB\-p\fR \fB\-\-show\-c\-function\fR -Show which C function each change is in. -.TP -\fB\-F\fR RE \fB\-\-show\-function\-line\fR=\fIRE\fR -Show the most recent line matching RE. -.TP -\fB\-q\fR \fB\-\-brief\fR -Output only whether files differ. -.TP -\fB\-e\fR \fB\-\-ed\fR -Output an ed script. -.TP -\fB\-\-normal\fR -Output a normal diff. -.TP -\fB\-n\fR \fB\-\-rcs\fR -Output an RCS format diff. -.TP -\fB\-y\fR \fB\-\-side\-by\-side\fR -Output in two columns. -.TP -\fB\-W\fR NUM \fB\-\-width\fR=\fINUM\fR -Output at most NUM (default 130) print columns. -.TP -\fB\-\-left\-column\fR -Output only the left column of common lines. -.TP -\fB\-\-suppress\-common\-lines\fR -Do not output common lines. -.TP -\fB\-D\fR NAME \fB\-\-ifdef\fR=\fINAME\fR -Output merged file to show `#ifdef NAME' diffs. -.TP -\fB\-\-GTYPE\-group\-format\fR=\fIGFMT\fR -Similar, but format GTYPE input groups with GFMT. -.TP -\fB\-\-line\-format\fR=\fILFMT\fR -Similar, but format all input lines with LFMT. -.TP -\fB\-\-LTYPE\-line\-format\fR=\fILFMT\fR -Similar, but format LTYPE input lines with LFMT. -.TP -LTYPE is `old', `new', or `unchanged'. -GTYPE is LTYPE or `changed'. -.IP -GFMT may contain: -.TP -%< -lines from FILE1 -.TP -%> -lines from FILE2 -.TP -%= -lines common to FILE1 and FILE2 -.TP -%[-][WIDTH][.[PREC]]{doxX}LETTER -printf-style spec for LETTER -.IP -LETTERs are as follows for new group, lower case for old group: -.TP -F -first line number -.TP -L -last line number -.TP -N -number of lines = L-F+1 -.TP -E -F-1 -.TP -M -L+1 -.IP -LFMT may contain: -.TP -%L -contents of line -.TP -%l -contents of line, excluding any trailing newline -.TP -%[-][WIDTH][.[PREC]]{doxX}n -printf-style spec for input line number -.IP -Either GFMT or LFMT may contain: -.TP -%% -% -.TP -%c'C' -the single character C -.TP -%c'\eOOO' -the character with octal code OOO -.TP -\fB\-l\fR \fB\-\-paginate\fR -Pass the output through `pr' to paginate it. -.TP -\fB\-t\fR \fB\-\-expand\-tabs\fR -Expand tabs to spaces in output. -.TP -\fB\-T\fR \fB\-\-initial\-tab\fR -Make tabs line up by prepending a tab. -.TP -\fB\-r\fR \fB\-\-recursive\fR -Recursively compare any subdirectories found. -.TP -\fB\-N\fR \fB\-\-new\-file\fR -Treat absent files as empty. -.TP -\fB\-\-unidirectional\-new\-file\fR -Treat absent first files as empty. -.TP -\fB\-s\fR \fB\-\-report\-identical\-files\fR -Report when two files are the same. -.TP -\fB\-x\fR PAT \fB\-\-exclude\fR=\fIPAT\fR -Exclude files that match PAT. -.TP -\fB\-X\fR FILE \fB\-\-exclude\-from\fR=\fIFILE\fR -Exclude files that match any pattern in FILE. -.TP -\fB\-S\fR FILE \fB\-\-starting\-file\fR=\fIFILE\fR -Start with FILE when comparing directories. -.TP -\fB\-\-from\-file\fR=\fIFILE1\fR -Compare FILE1 to all operands. FILE1 can be a directory. -.TP -\fB\-\-to\-file\fR=\fIFILE2\fR -Compare all operands to FILE2. FILE2 can be a directory. -.TP -\fB\-\-horizon\-lines\fR=\fINUM\fR -Keep NUM lines of the common prefix and suffix. -.TP -\fB\-d\fR \fB\-\-minimal\fR -Try hard to find a smaller set of changes. -.TP -\fB\-\-speed\-large\-files\fR -Assume large files and many scattered small changes. -.TP -\fB\-v\fR \fB\-\-version\fR -Output version info. -.TP -\fB\-\-help\fR -Output this help. -.PP -FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'. -If \fB\-\-from\-file\fR or \fB\-\-to\-file\fR is given, there are no restrictions on FILES. -If a FILE is `-', read standard input. -.SH AUTHOR -Written by Paul Eggert, Mike Haertel, David Hayes, -Richard Stallman, and Len Tower. -.SH "REPORTING BUGS" -Report bugs to . -.SH COPYRIGHT -Copyright \(co 2002 Free Software Foundation, Inc. -.PP -This program comes with NO WARRANTY, to the extent permitted by law. -You may redistribute copies of this program -under the terms of the GNU General Public License. -For more information about these matters, see the file named COPYING. -.SH "SEE ALSO" -The full documentation for -.B diff -is maintained as a Texinfo manual. If the -.B info -and -.B diff -programs are properly installed at your site, the command -.IP -.B info diff -.PP -should give you access to the complete manual. diff --git a/gnu/dist/diffutils/man/diff3.1 b/gnu/dist/diffutils/man/diff3.1 deleted file mode 100644 index c07bd067c6b..00000000000 --- a/gnu/dist/diffutils/man/diff3.1 +++ /dev/null @@ -1,78 +0,0 @@ -.\" $NetBSD: diff3.1,v 1.1.1.1 2003/01/26 00:43:17 wiz Exp $ -.\" -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.27. -.TH DIFF3 "1" "April 2002" "diffutils 2.8.1" "User Commands" -.SH NAME -diff3 \- compare three files line by line -.SH SYNOPSIS -.B diff3 -[\fIOPTION\fR]... \fIMYFILE OLDFILE YOURFILE\fR -.SH DESCRIPTION -Compare three files line by line. -.TP -\fB\-e\fR \fB\-\-ed\fR -Output unmerged changes from OLDFILE to YOURFILE into MYFILE. -.TP -\fB\-E\fR \fB\-\-show\-overlap\fR -Output unmerged changes, bracketing conflicts. -.TP -\fB\-A\fR \fB\-\-show\-all\fR -Output all changes, bracketing conflicts. -.TP -\fB\-x\fR \fB\-\-overlap\-only\fR -Output overlapping changes. -.TP -\fB\-X\fR -Output overlapping changes, bracketing them. -.TP -\fB\-3\fR \fB\-\-easy\-only\fR -Output unmerged nonoverlapping changes. -.TP -\fB\-m\fR \fB\-\-merge\fR -Output merged file instead of ed script (default \fB\-A\fR). -.TP -\fB\-L\fR LABEL \fB\-\-label\fR=\fILABEL\fR -Use LABEL instead of file name. -.TP -\fB\-i\fR -Append `w' and `q' commands to ed scripts. -.TP -\fB\-a\fR \fB\-\-text\fR -Treat all files as text. -.TP -\fB\-T\fR \fB\-\-initial\-tab\fR -Make tabs line up by prepending a tab. -.TP -\fB\-\-diff\-program\fR=\fIPROGRAM\fR -Use PROGRAM to compare files. -.TP -\fB\-v\fR \fB\-\-version\fR -Output version info. -.TP -\fB\-\-help\fR -Output this help. -.PP -If a FILE is `-', read standard input. -.SH AUTHOR -Written by Randy Smith. -.SH "REPORTING BUGS" -Report bugs to . -.SH COPYRIGHT -Copyright \(co 2002 Free Software Foundation, Inc. -.PP -This program comes with NO WARRANTY, to the extent permitted by law. -You may redistribute copies of this program -under the terms of the GNU General Public License. -For more information about these matters, see the file named COPYING. -.SH "SEE ALSO" -The full documentation for -.B diff3 -is maintained as a Texinfo manual. If the -.B info -and -.B diff3 -programs are properly installed at your site, the command -.IP -.B info diff -.PP -should give you access to the complete manual. diff --git a/gnu/dist/diffutils/man/sdiff.1 b/gnu/dist/diffutils/man/sdiff.1 deleted file mode 100644 index 096bc80d492..00000000000 --- a/gnu/dist/diffutils/man/sdiff.1 +++ /dev/null @@ -1,90 +0,0 @@ -.\" $NetBSD: sdiff.1,v 1.1.1.1 2003/01/26 00:43:17 wiz Exp $ -.\" -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.27. -.TH SDIFF "1" "April 2002" "diffutils 2.8.1" "User Commands" -.SH NAME -sdiff \- side-by-side merge of file differences -.SH SYNOPSIS -.B sdiff -[\fIOPTION\fR]... \fIFILE1 FILE2\fR -.SH DESCRIPTION -Side-by-side merge of file differences. -.TP -\fB\-o\fR FILE \fB\-\-output\fR=\fIFILE\fR -Operate interactively, sending output to FILE. -.TP -\fB\-i\fR \fB\-\-ignore\-case\fR -Consider upper- and lower-case to be the same. -.TP -\fB\-E\fR \fB\-\-ignore\-tab\-expansion\fR -Ignore changes due to tab expansion. -.TP -\fB\-b\fR \fB\-\-ignore\-space\-change\fR -Ignore changes in the amount of white space. -.TP -\fB\-W\fR \fB\-\-ignore\-all\-space\fR -Ignore all white space. -.TP -\fB\-B\fR \fB\-\-ignore\-blank\-lines\fR -Ignore changes whose lines are all blank. -.TP -\fB\-I\fR RE \fB\-\-ignore\-matching\-lines\fR=\fIRE\fR -Ignore changes whose lines all match RE. -.TP -\fB\-\-strip\-trailing\-cr\fR -Strip trailing carriage return on input. -.TP -\fB\-a\fR \fB\-\-text\fR -Treat all files as text. -.TP -\fB\-w\fR NUM \fB\-\-width\fR=\fINUM\fR -Output at most NUM (default 130) columns per line. -.TP -\fB\-l\fR \fB\-\-left\-column\fR -Output only the left column of common lines. -.TP -\fB\-s\fR \fB\-\-suppress\-common\-lines\fR -Do not output common lines. -.TP -\fB\-t\fR \fB\-\-expand\-tabs\fR -Expand tabs to spaces in output. -.TP -\fB\-d\fR \fB\-\-minimal\fR -Try hard to find a smaller set of changes. -.TP -\fB\-H\fR \fB\-\-speed\-large\-files\fR -Assume large files and many scattered small changes. -.TP -\fB\-\-diff\-program\fR=\fIPROGRAM\fR -Use PROGRAM to compare files. -.TP -\fB\-v\fR \fB\-\-version\fR -Output version info. -.TP -\fB\-\-help\fR -Output this help. -.PP -If a FILE is `-', read standard input. -.SH AUTHOR -Written by Thomas Lord. -.SH "REPORTING BUGS" -Report bugs to . -.SH COPYRIGHT -Copyright \(co 2002 Free Software Foundation, Inc. -.PP -This program comes with NO WARRANTY, to the extent permitted by law. -You may redistribute copies of this program -under the terms of the GNU General Public License. -For more information about these matters, see the file named COPYING. -.SH "SEE ALSO" -The full documentation for -.B sdiff -is maintained as a Texinfo manual. If the -.B info -and -.B sdiff -programs are properly installed at your site, the command -.IP -.B info diff -.PP -should give you access to the complete manual. diff --git a/gnu/dist/diffutils/po/LINGUAS b/gnu/dist/diffutils/po/LINGUAS deleted file mode 100644 index 603a5833a4d..00000000000 --- a/gnu/dist/diffutils/po/LINGUAS +++ /dev/null @@ -1 +0,0 @@ -cs da de en_GB eo es fr gl he id ja pl ru sv tr zh_TW diff --git a/gnu/dist/diffutils/po/Makefile.in.in b/gnu/dist/diffutils/po/Makefile.in.in deleted file mode 100644 index ada8bb4ffa3..00000000000 --- a/gnu/dist/diffutils/po/Makefile.in.in +++ /dev/null @@ -1,317 +0,0 @@ -# Makefile for PO directory in any package using GNU gettext. -# Copyright (C) 1995-1997, 2000-2002 by Ulrich Drepper -# -# This file can be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU General Public -# License but which still want to provide support for the GNU gettext -# functionality. -# Please note that the actual code of GNU gettext is covered by the GNU -# General Public License and is *not* in the public domain. - -PACKAGE = @PACKAGE@ -VERSION = @VERSION@ - -SHELL = /bin/sh -@SET_MAKE@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datadir = @datadir@ -localedir = $(datadir)/locale -gettextsrcdir = $(datadir)/gettext/po - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac` - -GMSGFMT = @GMSGFMT@ -MSGFMT = @MSGFMT@ -XGETTEXT = @XGETTEXT@ -MSGMERGE = msgmerge -MSGMERGE_UPDATE = @MSGMERGE@ --update -MSGINIT = msginit -MSGCONV = msgconv -MSGFILTER = msgfilter - -POFILES = @POFILES@ -GMOFILES = @GMOFILES@ -UPDATEPOFILES = @UPDATEPOFILES@ -DUMMYPOFILES = @DUMMYPOFILES@ -DISTFILES.common = Makefile.in.in Makevars remove-potcdate.sin \ -$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) -DISTFILES = $(DISTFILES.common) POTFILES.in $(DOMAIN).pot \ -$(POFILES) $(GMOFILES) \ -$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) - -POTFILES = \ - -CATALOGS = @CATALOGS@ - -# Makevars gets inserted here. (Don't remove this line!) - -.SUFFIXES: -.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-update - -.po.mo: - @echo "$(MSGFMT) -c -o $@ $<"; \ - $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ - -.po.gmo: - @lang=`echo $* | sed -e 's,.*/,,'`; \ - test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \ - cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo - -.sin.sed: - sed -e '/^#/d' $< > t-$@ - mv t-$@ $@ - - -all: all-@USE_NLS@ - -all-yes: $(CATALOGS) -all-no: - -# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', -# otherwise packages like GCC can not be built if only parts of the source -# have been downloaded. - -$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed - $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ - --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ - --files-from=$(srcdir)/POTFILES.in \ - --copyright-holder='$(COPYRIGHT_HOLDER)' - test ! -f $(DOMAIN).po || { \ - if test -f $(srcdir)/$(DOMAIN).pot; then \ - sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ - sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ - if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ - rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ - else \ - rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ - mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ - fi; \ - else \ - mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ - fi; \ - } - -$(srcdir)/$(DOMAIN).pot: - $(MAKE) $(DOMAIN).pot-update - -$(POFILES): $(srcdir)/$(DOMAIN).pot - @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ - test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \ - cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot - - -install: install-exec install-data -install-exec: -install-data: install-data-@USE_NLS@ - if test "$(PACKAGE)" = "gettext"; then \ - $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ - for file in $(DISTFILES.common); do \ - $(INSTALL_DATA) $(srcdir)/$$file \ - $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - else \ - : ; \ - fi -install-data-no: all -install-data-yes: all - $(mkinstalldirs) $(DESTDIR)$(datadir) - @catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - dir=$(localedir)/$$lang/LC_MESSAGES; \ - $(mkinstalldirs) $(DESTDIR)$$dir; \ - if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ - $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ - echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ - for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ - if test -n "$$lc"; then \ - if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ - link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ - mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ - for file in *; do \ - if test -f $$file; then \ - ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ - fi; \ - done); \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - else \ - if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ - :; \ - else \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - fi; \ - fi; \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ - ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ - cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ - fi; \ - done; \ - done - -install-strip: install - -installdirs: installdirs-exec installdirs-data -installdirs-exec: -installdirs-data: installdirs-data-@USE_NLS@ - if test "$(PACKAGE)" = "gettext"; then \ - $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ - else \ - : ; \ - fi -installdirs-data-no: -installdirs-data-yes: - $(mkinstalldirs) $(DESTDIR)$(datadir) - @catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - dir=$(localedir)/$$lang/LC_MESSAGES; \ - $(mkinstalldirs) $(DESTDIR)$$dir; \ - for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ - if test -n "$$lc"; then \ - if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ - link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ - mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ - for file in *; do \ - if test -f $$file; then \ - ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ - fi; \ - done); \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ - else \ - if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ - :; \ - else \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ - mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ - fi; \ - fi; \ - fi; \ - done; \ - done - -# Define this as empty until I found a useful application. -installcheck: - -uninstall: uninstall-exec uninstall-data -uninstall-exec: -uninstall-data: uninstall-data-@USE_NLS@ - if test "$(PACKAGE)" = "gettext"; then \ - for file in $(DISTFILES.common); do \ - rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ - done; \ - else \ - : ; \ - fi -uninstall-data-no: -uninstall-data-yes: - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ - for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ - rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ - done; \ - done - -check: all - -dvi info tags TAGS ID: - -mostlyclean: - rm -f remove-potcdate.sed - rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po - rm -fr *.o - -clean: mostlyclean - -distclean: clean - rm -f Makefile Makefile.in POTFILES *.mo - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - rm -f $(GMOFILES) - -distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: - $(MAKE) update-po - @$(MAKE) dist2 -# This is a separate target because 'update-po' must be executed before. -dist2: $(DISTFILES) - dists="$(DISTFILES)"; \ - if test -f $(srcdir)/ChangeLog; then dists="$$dists ChangeLog"; fi; \ - if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ - for file in $$dists; do \ - if test -f $$file; then \ - cp -p $$file $(distdir); \ - else \ - cp -p $(srcdir)/$$file $(distdir); \ - fi; \ - done - -update-po: Makefile - $(MAKE) $(DOMAIN).pot-update - $(MAKE) $(UPDATEPOFILES) - $(MAKE) update-gmo - -# General rule for updating PO files. - -.nop.po-update: - @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ - if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \ - tmpdir=`pwd`; \ - echo "$$lang:"; \ - test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ - cd $(srcdir); \ - if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \ - if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ - rm -f $$tmpdir/$$lang.new.po; \ - else \ - if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ - :; \ - else \ - echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - exit 1; \ - fi; \ - fi; \ - else \ - echo "msgmerge for $$lang.po failed!" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi - -$(DUMMYPOFILES): - -update-gmo: Makefile $(GMOFILES) - @: - -Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in - cd $(top_builddir) \ - && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ - $(SHELL) ./config.status - -force: - -# Tell versions [3.59,3.63) of GNU make not to export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/gnu/dist/diffutils/po/Makevars b/gnu/dist/diffutils/po/Makevars deleted file mode 100644 index 8b09f53b0f5..00000000000 --- a/gnu/dist/diffutils/po/Makevars +++ /dev/null @@ -1,25 +0,0 @@ -# Makefile variables for PO directory in any package using GNU gettext. - -# Usually the message domain is the same as the package name. -DOMAIN = $(PACKAGE) - -# These two variables depend on the location of this directory. -subdir = po -top_builddir = .. - -# These options get passed to xgettext. -XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ - -# This is the copyright holder that gets inserted into the header of the -# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding -# package. (Note that the msgstr strings, extracted from the package's -# sources, belong to the copyright holder of the package.) Translators are -# expected to transfer the copyright for their translations to this person -# or entity, or to disclaim their copyright. The empty string stands for -# the public domain; in this case the translators are expected to disclaim -# their copyright. -COPYRIGHT_HOLDER = Free Software Foundation, Inc. - -# This is the list of locale categories, beyond LC_MESSAGES, for which the -# message catalogs shall be used. It is usually empty. -EXTRA_LOCALE_CATEGORIES = diff --git a/gnu/dist/diffutils/po/POTFILES.in b/gnu/dist/diffutils/po/POTFILES.in deleted file mode 100644 index 3a987b2dfe4..00000000000 --- a/gnu/dist/diffutils/po/POTFILES.in +++ /dev/null @@ -1,33 +0,0 @@ -# List of files that contain translatable strings. - -# Copyright (C) 2001, 2002 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -lib/c-stack.c -lib/error.c -lib/freesoft.c -lib/getopt.c -lib/regex.c -lib/xmalloc.c - -src/analyze.c -src/cmp.c -src/diff.c -src/diff3.c -src/dir.c -src/sdiff.c -src/util.c diff --git a/gnu/dist/diffutils/po/Rules-quot b/gnu/dist/diffutils/po/Rules-quot deleted file mode 100644 index 5f46d237d25..00000000000 --- a/gnu/dist/diffutils/po/Rules-quot +++ /dev/null @@ -1,42 +0,0 @@ -# Special Makefile rules for English message catalogs with quotation marks. - -DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot - -.SUFFIXES: .insert-header .po-update-en - -en@quot.po-update: en@quot.po-update-en -en@boldquot.po-update: en@boldquot.po-update-en - -.insert-header.po-update-en: - @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ - if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ - tmpdir=`pwd`; \ - echo "$$lang:"; \ - ll=`echo $$lang | sed -e 's/@.*//'`; \ - LC_ALL=C; export LC_ALL; \ - cd $(srcdir); \ - if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ - if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ - rm -f $$tmpdir/$$lang.new.po; \ - else \ - if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ - :; \ - else \ - echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - exit 1; \ - fi; \ - fi; \ - else \ - echo "creation of $$lang.po failed!" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi - -en@quot.insert-header: insert-header.sin - sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header - -en@boldquot.insert-header: insert-header.sin - sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header - -mostlyclean: mostlyclean-quot -mostlyclean-quot: - rm -f *.insert-header diff --git a/gnu/dist/diffutils/po/boldquot.sed b/gnu/dist/diffutils/po/boldquot.sed deleted file mode 100644 index 4b937aa517b..00000000000 --- a/gnu/dist/diffutils/po/boldquot.sed +++ /dev/null @@ -1,10 +0,0 @@ -s/"\([^"]*\)"/“\1â€/g -s/`\([^`']*\)'/‘\1’/g -s/ '\([^`']*\)' / ‘\1’ /g -s/ '\([^`']*\)'$/ ‘\1’/g -s/^'\([^`']*\)' /‘\1’ /g -s/“â€/""/g -s/“/“/g -s/â€/â€/g -s/‘/‘/g -s/’/’/g diff --git a/gnu/dist/diffutils/po/cs.gmo b/gnu/dist/diffutils/po/cs.gmo deleted file mode 100644 index 5ed97e16f16..00000000000 Binary files a/gnu/dist/diffutils/po/cs.gmo and /dev/null differ diff --git a/gnu/dist/diffutils/po/cs.po b/gnu/dist/diffutils/po/cs.po deleted file mode 100644 index b749caefd75..00000000000 --- a/gnu/dist/diffutils/po/cs.po +++ /dev/null @@ -1,947 +0,0 @@ -# Czech translations for the GNU diffutils messages. -# Copyright (C) 1998 Free Software Foundation, Inc. -# Petr Koèvara , 1998, 2002. -# -msgid "" -msgstr "" -"Project-Id-Version: GNU diffutils 2.7.10\n" -"POT-Creation-Date: 2002-04-05 14:10-0800\n" -"PO-Revision-Date: 2002-03-19 18:44+0100\n" -"Last-Translator: Petr Koèvara \n" -"Language-Team: Czech \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-2\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: lib/c-stack.c:188 -msgid "program error" -msgstr "chyba programu" - -#: lib/c-stack.c:189 -msgid "stack overflow" -msgstr "pøeteèení zásobníku" - -#: lib/error.c:128 lib/error.c:156 -msgid "Unknown system error" -msgstr "Neznámá chyba systému" - -#: lib/freesoft.c:27 -msgid "" -"This program comes with NO WARRANTY, to the extent permitted by law.\n" -"You may redistribute copies of this program\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING." -msgstr "" -"Tento program je zcela BEZ ZÁRUKY, v rozsahu povoleném zákony.\n" -"Toto programové vybavení mù¾ete dále ¹íøit podle podmínek Obecné veøejné\n" -"licence GNU. Dal¹í informace o licenèních podmínkách naleznete v souboru\n" -"COPYING." - -#: lib/getopt.c:693 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s: pøepínaè `%s' není jednoznaèný\n" - -#: lib/getopt.c:718 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: pøepínaè `--%s' musí být zadán bez argumentu\n" - -#: lib/getopt.c:723 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: pøepínaè `%c%s' musí být zadán bez argumentu\n" - -#: lib/getopt.c:741 lib/getopt.c:914 -#, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s: pøepínaè `%s' vy¾aduje argument\n" - -#: lib/getopt.c:770 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: neznámý pøepínaè `--%s'\n" - -#: lib/getopt.c:774 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: neznámý pøepínaè `%c%s'\n" - -#: lib/getopt.c:800 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: neznámý pøepínaè -- %c\n" - -#: lib/getopt.c:803 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: neznámý pøepínaè -- %c\n" - -#: lib/getopt.c:833 lib/getopt.c:963 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: pøepínaè vy¾aduje argument -- %c\n" - -#: lib/getopt.c:880 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "%s: pøepínaè `-W %s' není jednoznaèný\n" - -#: lib/getopt.c:898 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: pøepínaè `-W %s' musí být zadán bez argumentu\n" - -#: lib/regex.c:1367 -msgid "Success" -msgstr "Hotovo" - -#: lib/regex.c:1370 -msgid "No match" -msgstr "®ádná shoda" - -#: lib/regex.c:1373 -msgid "Invalid regular expression" -msgstr "Neplatný regulární výraz" - -#: lib/regex.c:1376 -msgid "Invalid collation character" -msgstr "Neplatný znak porovnání" - -#: lib/regex.c:1379 -msgid "Invalid character class name" -msgstr "Neplatné jméno tøídy znakù" - -#: lib/regex.c:1382 -msgid "Trailing backslash" -msgstr "Koncové zpìtné lomítko" - -#: lib/regex.c:1385 -msgid "Invalid back reference" -msgstr "Neplatný zpìtný odkaz" - -#: lib/regex.c:1388 -msgid "Unmatched [ or [^" -msgstr "Nepárová [ nebo ]^" - -#: lib/regex.c:1391 -msgid "Unmatched ( or \\(" -msgstr "Nepárová ( nebo \\(" - -#: lib/regex.c:1394 -msgid "Unmatched \\{" -msgstr "Nepárová \\{" - -#: lib/regex.c:1397 -msgid "Invalid content of \\{\\}" -msgstr "Neplatný obsah \\{\\}" - -#: lib/regex.c:1400 -msgid "Invalid range end" -msgstr "Neplatný konec rozsahu" - -#: lib/regex.c:1403 -msgid "Memory exhausted" -msgstr "Pamì» vyèerpána" - -#: lib/regex.c:1406 -msgid "Invalid preceding regular expression" -msgstr "Neplatný pøedchozí regulární výraz" - -#: lib/regex.c:1409 -msgid "Premature end of regular expression" -msgstr "Pøedèasný konec regulárního výrazu" - -#: lib/regex.c:1412 -msgid "Regular expression too big" -msgstr "Regulární výraz je pøíli¹ dlouhý" - -#: lib/regex.c:1415 -msgid "Unmatched ) or \\)" -msgstr "Nepárová ) nebo \\)" - -#: lib/regex.c:8034 -msgid "No previous regular expression" -msgstr "Pøedchozí regulární výraz neexistuje" - -#: lib/xmalloc.c:63 -msgid "memory exhausted" -msgstr "pamì» vyèerpána" - -#: src/analyze.c:809 src/diff.c:1283 -#, c-format -msgid "Files %s and %s differ\n" -msgstr "Soubory %s a %s jsou rùzné\n" - -#: src/analyze.c:812 -#, c-format -msgid "Binary files %s and %s differ\n" -msgstr "Binární soubory %s a %s jsou rùzné\n" - -#: src/analyze.c:1058 src/diff3.c:1413 src/util.c:526 -msgid "No newline at end of file" -msgstr "Chybí znak konce øádku na konci souboru" - -#: src/cmp.c:43 -msgid "Written by Torbjorn Granlund and David MacKenzie." -msgstr "Autoøi: Torbjorn Granlund a David MacKenzie." - -#: src/cmp.c:118 src/diff.c:817 src/diff3.c:427 src/sdiff.c:168 -#, c-format -msgid "Try `%s --help' for more information." -msgstr "Více informací získáte pøíkazem `%s --help'." - -#: src/cmp.c:137 -#, c-format -msgid "invalid --ignore-initial value `%s'" -msgstr "neplatná hodnota --ignore-inital `%s'" - -#: src/cmp.c:146 -msgid "options -l and -s are incompatible" -msgstr "pøepínaèe -l a -s nejsou kompatibilní" - -#: src/cmp.c:154 src/diff.c:826 src/diff3.c:435 src/sdiff.c:177 -#: src/sdiff.c:313 src/sdiff.c:320 src/sdiff.c:910 src/util.c:194 -#: src/util.c:286 src/util.c:293 -msgid "write failed" -msgstr "zápis selhal" - -#: src/cmp.c:156 src/diff.c:828 src/diff.c:1354 src/diff3.c:437 -#: src/sdiff.c:179 -msgid "standard output" -msgstr "standardní výstup" - -#: src/cmp.c:160 -msgid "-b --print-bytes Print differing bytes." -msgstr "-b --print-bytes Vypí¹e rozdílné bajty." - -#: src/cmp.c:161 -msgid "-i SKIP --ignore-initial=SKIP Skip the first SKIP bytes of input." -msgstr "-i N --ignore-initial=N Ignoruje prvních N bajtù na vstupu." - -#: src/cmp.c:162 -msgid "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2" -msgstr "-i N1:N2 --ignore-initial=N1:N2" - -#: src/cmp.c:163 -msgid "" -" Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2." -msgstr "" -" Pøeskoèí prvních N1 bajtù souboru SOUBOR1 a prvních N2 bajtù souboru " -"SOUBOR2." - -#: src/cmp.c:164 -msgid "-l --verbose Output byte numbers and values of all differing bytes." -msgstr "-l --verbose Vypí¹e pozice a hodnoty v¹ech rozdílných bajtù." - -#: src/cmp.c:165 -msgid "-n LIMIT --bytes=LIMIT Compare at most LIMIT bytes." -msgstr "-n LIMIT --bytes=LIMIT Porovná maximálnì LIMIT bajtù." - -#: src/cmp.c:166 -msgid "-s --quiet --silent Output nothing; yield exit status only." -msgstr "-s --quiet --silent ®ádný výstup; vrátí pouze status." - -#: src/cmp.c:167 src/diff.c:904 src/diff3.c:455 src/sdiff.c:204 -msgid "-v --version Output version info." -msgstr "-v --version Informace o verzi." - -#: src/cmp.c:168 src/diff.c:905 src/diff3.c:456 src/sdiff.c:205 -msgid "--help Output this help." -msgstr "--help Vypí¹e tuto nápovìdu." - -#: src/cmp.c:177 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n" -msgstr "Pou¾ití: %s [PØEPÍNAÈ]... SOUBOR1 [SOUBOR2 [SKIP1 [SKIP2]]]\n" - -#: src/cmp.c:179 -msgid "Compare two files byte by byte." -msgstr "Porovnání dvou soborù bajt po bajtu." - -#: src/cmp.c:183 -msgid "SKIP1 and SKIP2 are the number of bytes to skip in each file." -msgstr "N1 a N2 udávají poèet bajtù, které budou ignorovány v ka¾dém souboru." - -#: src/cmp.c:184 -msgid "" -"SKIP values may be followed by the following multiplicative suffixes:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y." -msgstr "" -"Hodnoty SKIP mohou být doplnìny následujícími pøíponami:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, a stejnì tak i pro T, P, E, Z, Y." - -#: src/cmp.c:187 -msgid "If a FILE is `-' or missing, read standard input." -msgstr "" -"Pokud SOUBOR bude `-' nebo nebude existovat, bude èten standardní vstup." - -#: src/cmp.c:188 src/diff.c:911 src/diff3.c:475 src/sdiff.c:223 -msgid "Report bugs to ." -msgstr "" -"Chyby v programu oznamujte na adrese (pouze " -"anglicky),\n" -"pøipomínky k pøekladu zasílejte na adresu (èesky)." - -#: src/cmp.c:231 -#, c-format -msgid "invalid --bytes value `%s'" -msgstr "neplatná hodnota pøepínaèe --bytes `%s'" - -#: src/cmp.c:258 src/diff.c:734 src/diff3.c:333 src/sdiff.c:558 -#, c-format -msgid "missing operand after `%s'" -msgstr "po `%s' je nesprávný operand" - -#: src/cmp.c:270 src/diff.c:736 src/diff3.c:335 src/sdiff.c:560 -#, c-format -msgid "extra operand `%s'" -msgstr "operand `%s' je nadbyteèný" - -#: src/cmp.c:477 -#, c-format -msgid "%s %s differ: byte %s, line %s\n" -msgstr "%s %s se li¹í: bajt %s, øádek %s\n" - -#: src/cmp.c:495 -#, c-format -msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n" -msgstr "%s %s se li¹í: bajt %s, øádek %s je %3o %s %3o %s\n" - -#: src/cmp.c:543 -#, c-format -msgid "cmp: EOF on %s\n" -msgstr "cmp: EOF v %s\n" - -#: src/diff.c:41 -msgid "" -"Written by Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman, and Len Tower." -msgstr "" -"Autoøi: Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman a Len Tower." - -#: src/diff.c:322 -#, c-format -msgid "invalid context length `%s'" -msgstr "neplatná délka kontextu `%s'" - -#: src/diff.c:405 -msgid "pagination not supported on this host" -msgstr "pøestránkování není na tomto poèítaèi podporováno" - -#: src/diff.c:420 src/diff3.c:315 -msgid "too many file label options" -msgstr "pøíli¹ mnoho pøepínaèù popisu souboru" - -#: src/diff.c:498 -#, c-format -msgid "invalid width `%s'" -msgstr "nesprávná délka `%s'" - -#: src/diff.c:502 -msgid "conflicting width options" -msgstr "" - -#: src/diff.c:526 -#, c-format -msgid "invalid horizon length `%s'" -msgstr "neplatná délka obzoru `%s'" - -#: src/diff.c:629 -#, c-format -msgid "`-%ld' option is obsolete; use `-%c %ld'" -msgstr "pøepínaè `-%ld' je obsolete; pou¾ijte `-%c %ld'" - -#: src/diff.c:641 -#, c-format -msgid "`-%ld' option is obsolete; omit it" -msgstr "pøepínaè `-%ld' je obsolete; omit it" - -#: src/diff.c:709 -msgid "--from-file and --to-file both specified" -msgstr "" - -#: src/diff.c:832 -msgid "Compare files line by line." -msgstr "Porovnání souborù øádek po øádku." - -#: src/diff.c:834 -msgid "-i --ignore-case Ignore case differences in file contents." -msgstr "-i --ignore-case Ignoruje velikost písmen v obsahu souboru." - -#: src/diff.c:835 -msgid "--ignore-file-name-case Ignore case when comparing file names." -msgstr "--ignore-file-name-case Ignoruje velikost písmen v názvech souborù." - -#: src/diff.c:836 -msgid "--no-ignore-file-name-case Consider case when comparing file names." -msgstr "" -"--no-ignore-file-name-case Bere v potaz velikost písmen v názvech souborù." - -#: src/diff.c:837 src/sdiff.c:186 -msgid "-E --ignore-tab-expansion Ignore changes due to tab expansion." -msgstr "-E --ignore-tab-expansion Ignoruje zmìny v odsazení tabelátorem." - -#: src/diff.c:838 src/sdiff.c:187 -msgid "-b --ignore-space-change Ignore changes in the amount of white space." -msgstr "-b --ignore-space-change Ignoruje zmìny v poètu mezer." - -#: src/diff.c:839 -msgid "-w --ignore-all-space Ignore all white space." -msgstr "-w --ignore-all-space Ignoruje v¹echny mezery." - -#: src/diff.c:840 src/sdiff.c:189 -msgid "-B --ignore-blank-lines Ignore changes whose lines are all blank." -msgstr "-B --ignore-blank-lines Ignoruje zmìny v pøípadì prázdných øádkù." - -#: src/diff.c:841 src/sdiff.c:190 -msgid "" -"-I RE --ignore-matching-lines=RE Ignore changes whose lines all match RE." -msgstr "" -"-I RV --ignore-matching-lines=RV Ignoruje zmìny na v¹ech øádcích\n" -" odpovídajících RV." - -#: src/diff.c:842 src/sdiff.c:191 -msgid "--strip-trailing-cr Strip trailing carriage return on input." -msgstr "--strip-trailing-cr Odstraní ukonèovací znak CR na vstupu." - -#: src/diff.c:844 -msgid "--binary Read and write data in binary mode." -msgstr "--binary Ète a zapisuje data v binárním re¾imu." - -#: src/diff.c:846 src/diff3.c:451 src/sdiff.c:192 -msgid "-a --text Treat all files as text." -msgstr "-a --text Pokládá v¹echny soubory za text." - -#: src/diff.c:848 -msgid "" -"-c -C NUM --context[=NUM] Output NUM (default 3) lines of copied " -"context.\n" -"-u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified " -"context.\n" -" --label LABEL Use LABEL instead of file name.\n" -" -p --show-c-function Show which C function each change is in.\n" -" -F RE --show-function-line=RE Show the most recent line matching RE." -msgstr "" -"-c -C POÈ --context[=POÈ] Vypí¹e POÈ (implicitnì 3) øádky kopírovaného\n" -" kontextu.\n" -"-u -U POÈ --unified[=POÈ] Vypí¹e POÈ (implicitnì 3) øádky sjednoceného\n" -" kontextu.\n" -" -L POPIS --label POPIS Pou¾ije POPIS místo jména souboru.\n" -" -p --show-c-function U ka¾dé zmìny vypí¹e jméno C funkce, ve které se\n" -" tato zmìna nachází.\n" -" -F RV --show-function-line=RV Vypí¹e nejnovìj¹í øádky odpovídající RV." - -#: src/diff.c:853 -msgid "-q --brief Output only whether files differ." -msgstr "-q --brief Výstup pouze pøi rozdílných souborech." - -#: src/diff.c:854 -msgid "-e --ed Output an ed script." -msgstr "-e --ed Vytvoøí skript pro ed." - -#: src/diff.c:855 -msgid "--normal Output a normal diff." -msgstr "--normal Výstup bude v normálním diff formátu." - -#: src/diff.c:856 -msgid "-n --rcs Output an RCS format diff." -msgstr "-n --rcs Výstup bude ve formátu RCS diff." - -#: src/diff.c:857 -msgid "" -"-y --side-by-side Output in two columns.\n" -" -W NUM --width=NUM Output at most NUM (default 130) print columns.\n" -" --left-column Output only the left column of common lines.\n" -" --suppress-common-lines Do not output common lines." -msgstr "" -"-y --side-by-side Výstup ve dvou sloupcích.\n" -" -W POÈ --width=POÈ Vypí¹e maximálnì POÈ (implicitnì 130) znakù na " -"øádek.\n" -" --left-column Vypí¹e pouze levý sloupec spoleèných øádkù.\n" -" --suppress-common-lines Nevypí¹e spoleèné øádky." - -#: src/diff.c:861 -msgid "-D NAME --ifdef=NAME Output merged file to show `#ifdef NAME' diffs." -msgstr "" -"-D JMENO --ifdef=JMENO Vypí¹e slouèený soubor s rozdíly `#ifdef JMENO'." - -#: src/diff.c:862 -msgid "" -"--GTYPE-group-format=GFMT Similar, but format GTYPE input groups with GFMT." -msgstr "" -"--GTYPE-group-format=FMTS Podobné, ale formátuje vstupní skupiny GTYPE\n" -" podle FMTS." - -#: src/diff.c:863 -msgid "--line-format=LFMT Similar, but format all input lines with LFMT." -msgstr "" -"--line-format=FMTR Podobnì, ale formátuje v¹echny vstupní øádky podle FMTR." - -#: src/diff.c:864 -msgid "" -"--LTYPE-line-format=LFMT Similar, but format LTYPE input lines with LFMT." -msgstr "" -"--LTYPE-line-format=FMTR Podobné, ale formátuje vstupní øádky LTYPE podle " -"FMTR." - -#: src/diff.c:865 -msgid " LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'." -msgstr "" -" LTYPE je `starý', `nový' nebo `nezmìnìn'. GTYPE je LTYPE nebo `zmìnìn'." - -#: src/diff.c:866 -msgid "" -" GFMT may contain:\n" -" %< lines from FILE1\n" -" %> lines from FILE2\n" -" %= lines common to FILE1 and FILE2\n" -" %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" -" LETTERs are as follows for new group, lower case for old group:\n" -" F first line number\n" -" L last line number\n" -" N number of lines = L-F+1\n" -" E F-1\n" -" M L+1" -msgstr "" -" GFMT mù¾e obsahovat:\n" -" %< øádky ze SOUBOR1\n" -" %> øádky ze SOUBOR2\n" -" %= øádky spoleèné pro SOUBOR1 i SOUBOR2\n" -" %[-][DELKA][.[PRES]]{doxX}ZNAK formát stylu printf pro ZNAK\n" -" ZNAKy dále jsou pro novou skupinu, malými písmeny pro starou skupinu:\n" -" F èíslo prvního øádku\n" -" L èíslo posledního øádku\n" -" N poèet øádkù = L-F+1\n" -" E F-1\n" -" M L+1" - -#: src/diff.c:877 -msgid "" -" LFMT may contain:\n" -" %L contents of line\n" -" %l contents of line, excluding any trailing newline\n" -" %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number" -msgstr "" -" LFMT mù¾e obsahovat:\n" -" %L obsah øádku\n" -" %l obsah øádku, s vyjímkou znaku konce øádku\n" -" %[-][©ÍØKA][.[PØES]]{doxX}c formát stylu printf pro èíslo vstupního " -"øádku" - -#: src/diff.c:881 -msgid "" -" Either GFMT or LFMT may contain:\n" -" %% %\n" -" %c'C' the single character C\n" -" %c'\\OOO' the character with octal code OOO" -msgstr "" -" Jeden z GFMT nebo LFMT mù¾e obsahovat:\n" -" %% %\n" -" %c'C' jeden znak C\n" -" %c'\\000' znak s osmièkovým kódem 000" - -#: src/diff.c:886 -msgid "-l --paginate Pass the output through `pr' to paginate it." -msgstr "-l --paginate Výstup projde pøes `pr' pro pøestránkování." - -#: src/diff.c:887 src/sdiff.c:198 -msgid "-t --expand-tabs Expand tabs to spaces in output." -msgstr "-t --expand-tabs Ve výstupu pøevede tabulátory na mezery." - -#: src/diff.c:888 src/diff3.c:452 -msgid "-T --initial-tab Make tabs line up by prepending a tab." -msgstr "-T --initial-tab Na zaèátek øádkù se vlo¾í tabulátor." - -#: src/diff.c:890 -msgid "-r --recursive Recursively compare any subdirectories found." -msgstr "-r --recursive Rekurzívní porovnání v¹ech nalezených podadresáøù." - -#: src/diff.c:891 -msgid "-N --new-file Treat absent files as empty." -msgstr "-N --new-file Neexistující soubory pova¾uje za prázdné." - -#: src/diff.c:892 -msgid "--unidirectional-new-file Treat absent first files as empty." -msgstr "" -"--unidirectional-new-file Pøi porovnávání adresáøù pova¾uje neexistující\n" -" soubory v prvém adresáøi za prázdné." - -#: src/diff.c:893 -msgid "-s --report-identical-files Report when two files are the same." -msgstr "-s --report-identical-files Uvede pouze shodné soubory." - -#: src/diff.c:894 -msgid "-x PAT --exclude=PAT Exclude files that match PAT." -msgstr "-x VZOR --exclude=VZOR Vynechá soubory odpovídající VZORu." - -#: src/diff.c:895 -msgid "" -"-X FILE --exclude-from=FILE Exclude files that match any pattern in FILE." -msgstr "" -"-X SOUBOR --exclude-from=SOUBOR Vynechá soubory, které odpovídají\n" -" libovolnému vzorku ze SOUBORu." - -#: src/diff.c:896 -msgid "" -"-S FILE --starting-file=FILE Start with FILE when comparing directories." -msgstr "" -"-S SOUBOR --starting-file=SOUBOR Pøi porovnávání adresáøù zaène souborem\n" -" SOUBOR." - -#: src/diff.c:897 -msgid "" -"--from-file=FILE1 Compare FILE1 to all operands. FILE1 can be a directory." -msgstr "" -"--from-file=SOUBOR1 Porovná SOUBOR1 se v¹emi operandy. SOUBOR1 mù¾e být\n" -" adresáø." - -#: src/diff.c:898 -msgid "" -"--to-file=FILE2 Compare all operands to FILE2. FILE2 can be a directory." -msgstr "" -"--to-file=SOUBOR2 Porovná v¹echny operandy se SOUBOR2. SOUBOR2 mù¾e být\n" -" adresáø." - -#: src/diff.c:900 -msgid "--horizon-lines=NUM Keep NUM lines of the common prefix and suffix." -msgstr "" -"--horizon-lines=POÈET Ponechá POÈET shodných øádkù pøedpony a pøípony." - -#: src/diff.c:901 src/sdiff.c:200 -msgid "-d --minimal Try hard to find a smaller set of changes." -msgstr "-d --minimal Pokusí se nalézt nejmen¹í sadu zmìn." - -#: src/diff.c:902 -msgid "" -"--speed-large-files Assume large files and many scattered small changes." -msgstr "" -"--speed-large-files Pøedpokládá velké soubory a mnoho rozptýlených\n" -" drobných zmìn." - -#: src/diff.c:907 -msgid "" -"FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'." -msgstr "" -"SOUBORY jsou `SOUBOR1 SOUBOR2' nebo `ADRESAR1 ADRESAR2' nebo\n" -"`ADRESAR SOUBOR...' nebo `SOUBOR... ADRESAR'." - -#: src/diff.c:908 -msgid "" -"If --from-file or --to-file is given, there are no restrictions on FILES." -msgstr "" -"Pokud je uveden --from-file nebo --to-file, pak nejsou u SOUBORù ¾ádná " -"omezení." - -#: src/diff.c:909 src/diff3.c:474 src/sdiff.c:222 -msgid "If a FILE is `-', read standard input." -msgstr "Pokud SOUBOR bude `-', bude èten standardní vstup." - -#: src/diff.c:920 -#, c-format -msgid "Usage: %s [OPTION]... FILES\n" -msgstr "Pou¾ití: %s [PØEPÍNAÈ]... SOUBORY\n" - -#: src/diff.c:949 -#, c-format -msgid "conflicting %s option value `%s'" -msgstr "pro pøepínaè %s konfliktní hodnota `%s'" - -#: src/diff.c:962 -msgid "conflicting output style options" -msgstr "konfliktní pøepínaèe pro styl výstupu" - -#: src/diff.c:976 -msgid "regular empty file" -msgstr "obyèejný prázdný soubor" - -#: src/diff.c:976 -msgid "regular file" -msgstr "obyèejný soubor" - -#: src/diff.c:978 -msgid "directory" -msgstr "adresáø" - -#: src/diff.c:981 -msgid "block special file" -msgstr "speciální blokový soubor" - -#: src/diff.c:984 -msgid "character special file" -msgstr "speciální znakový soubor" - -#: src/diff.c:987 -msgid "fifo" -msgstr "roura" - -#: src/diff.c:991 -msgid "socket" -msgstr "soket" - -#: src/diff.c:994 -msgid "message queue" -msgstr "fronta zpráv" - -#: src/diff.c:997 -msgid "semaphore" -msgstr "semafor" - -#: src/diff.c:1000 -msgid "shared memory object" -msgstr "objekt sdílené pamìti" - -#: src/diff.c:1003 -msgid "typed memory object" -msgstr "typový pamì»ový objekt" - -#: src/diff.c:1006 -msgid "weird file" -msgstr "soubor neznámého typu" - -#: src/diff.c:1070 src/diff.c:1256 -#, c-format -msgid "Only in %s: %s\n" -msgstr "Pouze v %s: %s\n" - -#: src/diff.c:1193 -msgid "cannot compare `-' to a directory" -msgstr "`-' s adresáøem nelze porovnat" - -#: src/diff.c:1220 -msgid "-D option not supported with directories" -msgstr "-D pøepínaè nepodporuje práci s adresáøi" - -#: src/diff.c:1229 -#, c-format -msgid "Common subdirectories: %s and %s\n" -msgstr "Spoleèné podadresáøe: %s a %s\n" - -#: src/diff.c:1266 -#, c-format -msgid "File %s is a %s while file %s is a %s\n" -msgstr "Soubor %s je %s pokud soubor %s je %s\n" - -#: src/diff.c:1345 -#, c-format -msgid "Files %s and %s are identical\n" -msgstr "Soubory %s a %s jsou identické\n" - -#: src/diff3.c:26 -msgid "Written by Randy Smith." -msgstr "Autor: Randy Smith." - -#: src/diff3.c:328 -msgid "incompatible options" -msgstr "nekompatibilní pøepínaèe" - -#: src/diff3.c:368 -msgid "`-' specified for more than one input file" -msgstr "`-' zadáno pro více ne¾ jeden vstupní soubor" - -#: src/diff3.c:408 src/diff3.c:1232 src/diff3.c:1645 src/diff3.c:1700 -#: src/sdiff.c:305 src/sdiff.c:879 src/sdiff.c:890 -msgid "read failed" -msgstr "ètení selhalo" - -#: src/diff3.c:441 -msgid "-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE." -msgstr "" -"-e --ed Vypí¹e nespojené zmìny ze STARYSOUBOR k VASSOUBOR do MUJSOUBOR." - -#: src/diff3.c:442 -msgid "-E --show-overlap Output unmerged changes, bracketing conflicts." -msgstr "-E --show-overlap Vypí¹e neslouèené zmìny, konflikty v závorkách." - -#: src/diff3.c:443 -msgid "-A --show-all Output all changes, bracketing conflicts." -msgstr "-A --show-all Vypí¹e v¹echny rozdíly, konflikty v závorkách." - -#: src/diff3.c:444 -msgid "-x --overlap-only Output overlapping changes." -msgstr "-x --overlap-only Vypí¹e pøekrývající se zmìny." - -#: src/diff3.c:445 -msgid "-X Output overlapping changes, bracketing them." -msgstr "-X Vypí¹e pøekrývající se zmìny, uzavøené v závorkách." - -#: src/diff3.c:446 -msgid "-3 --easy-only Output unmerged nonoverlapping changes." -msgstr "-3 --easy-only Vypí¹e neslouèené nepøekrývající se zmìny." - -#: src/diff3.c:448 -msgid "-m --merge Output merged file instead of ed script (default -A)." -msgstr "-m --merge Vypí¹e spojený soubor místo ed skriptu (implicitnì -A)." - -#: src/diff3.c:449 -msgid "-L LABEL --label=LABEL Use LABEL instead of file name." -msgstr "-L POPIS --label=POPIS Pou¾ije POPIS místo jména souboru." - -#: src/diff3.c:450 -msgid "-i Append `w' and `q' commands to ed scripts." -msgstr "-i Pøidá pøíkazy `w' a `q' do skriptù pro ed." - -#: src/diff3.c:453 src/sdiff.c:202 -msgid "--diff-program=PROGRAM Use PROGRAM to compare files." -msgstr "--diff-program=PROGRAM Pou¾ij PROGRAM k porovnání souborù." - -#: src/diff3.c:465 -#, c-format -msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n" -msgstr "Pou¾ití: %s [PØEPÍNAÈ]... MUJSOUBOR STARYSOUBOR VASSOUBOR\n" - -#: src/diff3.c:467 -msgid "Compare three files line by line." -msgstr "Porovnání tøí souborù øádek po øádku." - -#: src/diff3.c:673 -msgid "internal error: screwup in format of diff blocks" -msgstr "vnitøní chyba: chyba ve formátu diff blokù" - -#: src/diff3.c:971 -#, c-format -msgid "%s: diff failed: " -msgstr "%s: diff selhal: " - -#: src/diff3.c:993 -msgid "internal error: invalid diff type in process_diff" -msgstr "vnitøní chyba: nesprávný typ diffu v process_diff" - -#: src/diff3.c:1018 -msgid "invalid diff format; invalid change separator" -msgstr "neplatný formát diff souboru; neplatný oddìlovaè zmìny" - -#: src/diff3.c:1242 -msgid "invalid diff format; incomplete last line" -msgstr "neplatný formát diff souboru; nekompletní poslední øádek" - -#: src/diff3.c:1265 src/sdiff.c:273 -#, c-format -msgid "subsidiary program `%s' not executable" -msgstr "pomocný program `%s' není spustitelný" - -#: src/diff3.c:1268 src/sdiff.c:276 src/util.c:298 -#, c-format -msgid "subsidiary program `%s' not found" -msgstr "pomocný program `%s' nebyl nalezen" - -#: src/diff3.c:1272 src/sdiff.c:268 src/util.c:301 -#, c-format -msgid "subsidiary program `%s' failed" -msgstr "pomocný program `%s' selhal" - -#: src/diff3.c:1294 -msgid "invalid diff format; incorrect leading line chars" -msgstr "neplatný formát diff souboru; nesprávné úvodní znaky na øádku" - -#: src/diff3.c:1370 -msgid "internal error: invalid diff type passed to output" -msgstr "vnitøní chyba: nesprávný typ diffu pro výstup" - -#: src/diff3.c:1647 src/diff3.c:1704 -msgid "input file shrank" -msgstr "vstupní soubor se zmen¹il" - -#: src/dir.c:162 -#, c-format -msgid "cannot compare file names `%s' and `%s'" -msgstr "nemohu porovnat jména souborù `%s' a `%s'" - -#: src/sdiff.c:35 -msgid "Written by Thomas Lord." -msgstr "Autor: Thomas Lord." - -#: src/sdiff.c:183 -msgid "-o FILE --output=FILE Operate interactively, sending output to FILE." -msgstr "" -"-o SOUBOR --output=SOUBOR Interaktivní práce, výstup pùjde do SOUBORu." - -#: src/sdiff.c:185 -msgid "-i --ignore-case Consider upper- and lower-case to be the same." -msgstr "-i --ignore-case Nerozli¹uje velká a malá písmena." - -#: src/sdiff.c:188 -msgid "-W --ignore-all-space Ignore all white space." -msgstr "-W --ignore-all-space Ignoruje v¹echny mezery." - -#: src/sdiff.c:194 -msgid "-w NUM --width=NUM Output at most NUM (default 130) columns per line." -msgstr "" -"-w POÈ --width=POÈ Vypí¹e maximálnì POÈ (implicitnì 130) znakù na øádek." - -#: src/sdiff.c:195 -msgid "-l --left-column Output only the left column of common lines." -msgstr "-l --left-column Vypí¹e pouze levý sloupec spoleèných øádkù." - -#: src/sdiff.c:196 -msgid "-s --suppress-common-lines Do not output common lines." -msgstr "-s --suppress-common-lines Nevypisuje shodné øádky." - -#: src/sdiff.c:201 -msgid "" -"-H --speed-large-files Assume large files and many scattered small changes." -msgstr "" -"-H --speed-large-files Pøedpokládá velké soubory a mnoho rozptýlených\n" -" drobných zmìn." - -#: src/sdiff.c:214 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 FILE2\n" -msgstr "Pou¾ití: %s [PØEPÍNAÈ]... SOUBOR1 SOUBOR2\n" - -#: src/sdiff.c:215 -msgid "Side-by-side merge of file differences." -msgstr "" - -#: src/sdiff.c:327 -msgid "cannot interactively merge standard input" -msgstr "interaktivnì nelze standardní vstup slouèit" - -#: src/sdiff.c:588 -msgid "both files to be compared are directories" -msgstr "oba soubory k porovnání jsou adresáøi" - -#: src/sdiff.c:853 -msgid "" -"ed:\tEdit then use both versions, each decorated with a header.\n" -"eb:\tEdit then use both versions.\n" -"el:\tEdit then use the left version.\n" -"er:\tEdit then use the right version.\n" -"e:\tEdit a new version.\n" -"l:\tUse the left version.\n" -"r:\tUse the right version.\n" -"s:\tSilently include common lines.\n" -"v:\tVerbosely include common lines.\n" -"q:\tQuit.\n" -msgstr "" -"ed:\tEditace - pou¾ije obì verze, ka¾dou obdaøí hlavièkou.\n" -"eb:\tEditace - pou¾ije obì verze.\n" -"el:\tEditace - pou¾ije levou verzi.\n" -"er:\tEditace - pou¾ije pravou verzi.\n" -"e:\tEditace nové verze.\n" -"l:\tPou¾ije levou verzi.\n" -"r:\tPou¾ije pravou verzi.\n" -"s:\tVtichosti vlo¾í spoleèné øádky.\n" -"v:\tUpozorní na vlo¾ení spoleèných øádkù.\n" -"q:\tUkonèení.\n" - -#~ msgid "context length specified twice" -#~ msgstr "délka kontextu zadána dvakrát" - -#~ msgid "multiple `--from-file' options" -#~ msgstr "více pøepínaèù `--from-file'" - -#~ msgid "multiple `--to-file' options" -#~ msgstr "více pøepínaèù `--to-file'" - -#~ msgid "--inhibit-hunk-merge Do not merge hunks." -#~ msgstr "--inhibit-hunk-merge Neslouèí èásti." - -#~ msgid "regular empty executable file" -#~ msgstr "obyèejný prázdný spustitelný soubor" - -#~ msgid "regular executable file" -#~ msgstr "obyèejný spustitelný soubor" diff --git a/gnu/dist/diffutils/po/da.gmo b/gnu/dist/diffutils/po/da.gmo deleted file mode 100644 index 3af33a07448..00000000000 Binary files a/gnu/dist/diffutils/po/da.gmo and /dev/null differ diff --git a/gnu/dist/diffutils/po/da.po b/gnu/dist/diffutils/po/da.po deleted file mode 100644 index 368d076bce8..00000000000 --- a/gnu/dist/diffutils/po/da.po +++ /dev/null @@ -1,931 +0,0 @@ -# Danish diffutils translation po-file -# Copyright (C) 2000 Free Software Foundation, Inc. -# Claus Hindsgaul , 2000-2002. -# -msgid "" -msgstr "" -"Project-Id-Version: diffutils 2.7.10\n" -"POT-Creation-Date: 2002-04-05 14:10-0800\n" -"PO-Revision-Date: 2002-03-12 14:51GMT\n" -"Last-Translator: Claus Hindsgaul \n" -"Language-Team: Danish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 0.9.5\n" - -#: lib/c-stack.c:188 -msgid "program error" -msgstr "programfejl" - -#: lib/c-stack.c:189 -msgid "stack overflow" -msgstr "stakoverløb" - -#: lib/error.c:128 lib/error.c:156 -msgid "Unknown system error" -msgstr "Ukendt systemfejl" - -#: lib/freesoft.c:27 -msgid "" -"This program comes with NO WARRANTY, to the extent permitted by law.\n" -"You may redistribute copies of this program\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING." -msgstr "" -"Dette program kommer HELT UDEN GARANTI i den udstrækning, loven tillader " -"det.\n" -"Du må videredistribuere kopier af dette program\n" -"under betingelserne i GNU General Public License (GPL).\n" -"Se filen COPYING for flere oplysninger om dette." - -#: lib/getopt.c:693 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s: tilvalg '%s' er flertydigt\n" - -#: lib/getopt.c:718 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: tilvalg '--%s' tillader ikke et parameter\n" - -#: lib/getopt.c:723 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: tilvalg '%c%s' tillader ikke et parameter\n" - -#: lib/getopt.c:741 lib/getopt.c:914 -#, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s: tilvalg '--%s' tillader ikke et parameter\n" - -#: lib/getopt.c:770 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: ukendt tilvalg '--%s'\n" - -#: lib/getopt.c:774 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: ukendt tilvalg '%c%s'\n" - -#: lib/getopt.c:800 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: ugyldigt tilvalg -- %c\n" - -#: lib/getopt.c:803 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: ugyldigt tilvalg -- %c\n" - -#: lib/getopt.c:833 lib/getopt.c:963 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: tilvalg kræver et parameter -- %c\n" - -#: lib/getopt.c:880 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "%s: tilvalget '-W %s' er flertydigt\n" - -#: lib/getopt.c:898 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: tilvalget '-W %s' tillader ikke et parameter\n" - -#: lib/regex.c:1367 -msgid "Success" -msgstr "Succes" - -#: lib/regex.c:1370 -msgid "No match" -msgstr "Ingen match" - -#: lib/regex.c:1373 -msgid "Invalid regular expression" -msgstr "Ugyldigt regulært udtryk" - -#: lib/regex.c:1376 -msgid "Invalid collation character" -msgstr "Ugyldig sammenlignings-tegn" - -#: lib/regex.c:1379 -msgid "Invalid character class name" -msgstr "Ugyldigt navn på tegn-klasse" - -#: lib/regex.c:1382 -msgid "Trailing backslash" -msgstr "Efterstillet backslash" - -#: lib/regex.c:1385 -msgid "Invalid back reference" -msgstr "Ugyldig bagud-reference" - -#: lib/regex.c:1388 -msgid "Unmatched [ or [^" -msgstr "Uparret [ eller [^" - -#: lib/regex.c:1391 -msgid "Unmatched ( or \\(" -msgstr "Uparret ( eller \\(" - -#: lib/regex.c:1394 -msgid "Unmatched \\{" -msgstr "Uparret \\{" - -#: lib/regex.c:1397 -msgid "Invalid content of \\{\\}" -msgstr "Ugyldigt indhold af \\{\\}" - -#: lib/regex.c:1400 -msgid "Invalid range end" -msgstr "Ugyldig område-afslutning" - -#: lib/regex.c:1403 -msgid "Memory exhausted" -msgstr "Hukommelse opbrugt" - -#: lib/regex.c:1406 -msgid "Invalid preceding regular expression" -msgstr "Ugyldigt foranstillet regulært udtryk" - -#: lib/regex.c:1409 -msgid "Premature end of regular expression" -msgstr "For tidlig afslutning på regulært udtryk" - -#: lib/regex.c:1412 -msgid "Regular expression too big" -msgstr "For stort regulært udtryk" - -#: lib/regex.c:1415 -msgid "Unmatched ) or \\)" -msgstr "Uparret ) eller \\)" - -#: lib/regex.c:8034 -msgid "No previous regular expression" -msgstr "Intet foranstillet regulært udtryk" - -#: lib/xmalloc.c:63 -msgid "memory exhausted" -msgstr "hukommelse opbrugt" - -#: src/analyze.c:809 src/diff.c:1283 -#, c-format -msgid "Files %s and %s differ\n" -msgstr "Filerne %s og %s er forskellige\n" - -#: src/analyze.c:812 -#, c-format -msgid "Binary files %s and %s differ\n" -msgstr "Binære filer %s og %s er forskellige\n" - -#: src/analyze.c:1058 src/diff3.c:1413 src/util.c:526 -msgid "No newline at end of file" -msgstr "Intet linjeskift ved filafslutning" - -#: src/cmp.c:43 -msgid "Written by Torbjorn Granlund and David MacKenzie." -msgstr "Skrevet af Torbjorn Granlund og David MacKenzie." - -#: src/cmp.c:118 src/diff.c:817 src/diff3.c:427 src/sdiff.c:168 -#, c-format -msgid "Try `%s --help' for more information." -msgstr "Prøv '%s --help' for mere information." - -#: src/cmp.c:137 -#, c-format -msgid "invalid --ignore-initial value `%s'" -msgstr "ugyldig '--ignore-initial'-værdi `%s'" - -#: src/cmp.c:146 -msgid "options -l and -s are incompatible" -msgstr "tilvalgene -l og -s er inkompatible" - -#: src/cmp.c:154 src/diff.c:826 src/diff3.c:435 src/sdiff.c:177 -#: src/sdiff.c:313 src/sdiff.c:320 src/sdiff.c:910 src/util.c:194 -#: src/util.c:286 src/util.c:293 -msgid "write failed" -msgstr "skrivning mislykkedes" - -#: src/cmp.c:156 src/diff.c:828 src/diff.c:1354 src/diff3.c:437 -#: src/sdiff.c:179 -msgid "standard output" -msgstr "standard-ud" - -#: src/cmp.c:160 -msgid "-b --print-bytes Print differing bytes." -msgstr "-b --print-byte Vis afvigende byte." - -#: src/cmp.c:161 -msgid "-i SKIP --ignore-initial=SKIP Skip the first SKIP bytes of input." -msgstr "" -"-i SPRING --ignore-initial=SPRING Overspring de første SPRING byte i " -"inddata." - -#: src/cmp.c:162 -msgid "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2" -msgstr "-i SPRING1:SPRING2 --ignore-initial=SPRING1:SPRING2" - -#: src/cmp.c:163 -msgid "" -" Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2." -msgstr "" -" Overspring de første SPRING1 byte i FIL1 og de første SPRING2 byte i FIL2." - -#: src/cmp.c:164 -msgid "-l --verbose Output byte numbers and values of all differing bytes." -msgstr "-l --verbose Vis antal byte og værdierne for alle afvigende byte." - -#: src/cmp.c:165 -msgid "-n LIMIT --bytes=LIMIT Compare at most LIMIT bytes." -msgstr "-n GRÆNSE --bytes=GRÆNSE Sammenlign højst GRÆNSE byte." - -#: src/cmp.c:166 -msgid "-s --quiet --silent Output nothing; yield exit status only." -msgstr "" -"-s --quiet --silent Ingen udlæsning; sæt kun en afslutnings-slut-kode." - -#: src/cmp.c:167 src/diff.c:904 src/diff3.c:455 src/sdiff.c:204 -msgid "-v --version Output version info." -msgstr "-v --version Vis versions-info." - -#: src/cmp.c:168 src/diff.c:905 src/diff3.c:456 src/sdiff.c:205 -msgid "--help Output this help." -msgstr "--help Vis denne hjælp." - -#: src/cmp.c:177 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n" -msgstr "Brug: %s [TILVALG]... FIL1 [FIL2 [SPRING1 [SPRING2]]]\n" - -#: src/cmp.c:179 -msgid "Compare two files byte by byte." -msgstr "Sammenlign to filer byte for byte." - -#: src/cmp.c:183 -msgid "SKIP1 and SKIP2 are the number of bytes to skip in each file." -msgstr "" -"SPRING1 og SPRING2 er antallet af byte, der skal overspringes i hver fil." - -#: src/cmp.c:184 -msgid "" -"SKIP values may be followed by the following multiplicative suffixes:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y." -msgstr "" -"SPRING-værdier kan efterfølges af følgende enheder:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, og så videre for T, P, E, Z, Y." - -#: src/cmp.c:187 -msgid "If a FILE is `-' or missing, read standard input." -msgstr "Såfremt en FIL er '_' eller mangler, læses fra standard inddata." - -#: src/cmp.c:188 src/diff.c:911 src/diff3.c:475 src/sdiff.c:223 -msgid "Report bugs to ." -msgstr "Raportér programfejl på engelsk til ." - -#: src/cmp.c:231 -#, c-format -msgid "invalid --bytes value `%s'" -msgstr "ugyldig '--bytes'-værdi `%s'" - -#: src/cmp.c:258 src/diff.c:734 src/diff3.c:333 src/sdiff.c:558 -#, c-format -msgid "missing operand after `%s'" -msgstr "manglende operant efter '%s'" - -#: src/cmp.c:270 src/diff.c:736 src/diff3.c:335 src/sdiff.c:560 -#, c-format -msgid "extra operand `%s'" -msgstr "ekstra operant '%s'" - -#: src/cmp.c:477 -#, c-format -msgid "%s %s differ: byte %s, line %s\n" -msgstr "%s %s afviger: byte %s, linje %s\n" - -#: src/cmp.c:495 -#, c-format -msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n" -msgstr "%s %s afviger: tegn %s, linje %s er %3o %s %3o %s\n" - -#: src/cmp.c:543 -#, c-format -msgid "cmp: EOF on %s\n" -msgstr "cmp: filafslutning på %s\n" - -#: src/diff.c:41 -msgid "" -"Written by Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman, and Len Tower." -msgstr "" -"Skrevet af Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman og Len Tower." - -#: src/diff.c:322 -#, c-format -msgid "invalid context length `%s'" -msgstr "ugyldig indholdslængde '%s'" - -#: src/diff.c:405 -msgid "pagination not supported on this host" -msgstr "paginering understøttes ikke af denne vært" - -#: src/diff.c:420 src/diff3.c:315 -msgid "too many file label options" -msgstr "for mange fil-mærke tilvalg" - -#: src/diff.c:498 -#, c-format -msgid "invalid width `%s'" -msgstr "ugyldig bredde '%s'" - -#: src/diff.c:502 -msgid "conflicting width options" -msgstr "modstridende breddeangivelser" - -#: src/diff.c:526 -#, c-format -msgid "invalid horizon length `%s'" -msgstr "ugyldig horisont-længde '%s'" - -#: src/diff.c:629 -#, c-format -msgid "`-%ld' option is obsolete; use `-%c %ld'" -msgstr "Tilvalget '-%ld' er forældet; benyt '-%c %ld'" - -#: src/diff.c:641 -#, c-format -msgid "`-%ld' option is obsolete; omit it" -msgstr "Tilvalget '-%ld' er forældet; udelad det" - -#: src/diff.c:709 -msgid "--from-file and --to-file both specified" -msgstr "både --from-file og --to-file er angivet" - -#: src/diff.c:832 -msgid "Compare files line by line." -msgstr "Sammenlign filer linje for linje" - -#: src/diff.c:834 -msgid "-i --ignore-case Ignore case differences in file contents." -msgstr "-i --ignore-case Ignorér versalforskelle i filindholdet" - -#: src/diff.c:835 -msgid "--ignore-file-name-case Ignore case when comparing file names." -msgstr "" -"--ignore-file-name-case Ignorér versalforskelle ved sammenligning af " -"filnavne." - -#: src/diff.c:836 -msgid "--no-ignore-file-name-case Consider case when comparing file names." -msgstr "" -"--no-ignore-file-name-case Bemærk versalforskelle, når filnavne " -"sammenlignes." - -#: src/diff.c:837 src/sdiff.c:186 -msgid "-E --ignore-tab-expansion Ignore changes due to tab expansion." -msgstr "" -"-E --ignore-tab-expansion Ignore ændringer, der skyldes tabulatoromsætning." - -#: src/diff.c:838 src/sdiff.c:187 -msgid "-b --ignore-space-change Ignore changes in the amount of white space." -msgstr "" -"-b --ignore-space-change Ignorér ændringer i antallet af mellemrumstegn." - -#: src/diff.c:839 -msgid "-w --ignore-all-space Ignore all white space." -msgstr "-w --ignore-all-space Ignorér alle mellemrums-tegn." - -#: src/diff.c:840 src/sdiff.c:189 -msgid "-B --ignore-blank-lines Ignore changes whose lines are all blank." -msgstr "" -"-B --ignore-blank-lines Ignorér ændringer med udelukkende tomme linjer." - -#: src/diff.c:841 src/sdiff.c:190 -msgid "" -"-I RE --ignore-matching-lines=RE Ignore changes whose lines all match RE." -msgstr "" -"-I MØNSTER --ignore-matching-lines=MØNSTER Ignorér ændringer, hvis linjer " -"alle matcher MØNSTER." - -#: src/diff.c:842 src/sdiff.c:191 -msgid "--strip-trailing-cr Strip trailing carriage return on input." -msgstr "" -"--strip-trailing-cr Fjern afsluttende vognretur (carriage return) i inddata." - -#: src/diff.c:844 -msgid "--binary Read and write data in binary mode." -msgstr "--binary Læs og skriv data binært." - -#: src/diff.c:846 src/diff3.c:451 src/sdiff.c:192 -msgid "-a --text Treat all files as text." -msgstr "-a --text Behandl alle filer som tekst." - -#: src/diff.c:848 -msgid "" -"-c -C NUM --context[=NUM] Output NUM (default 3) lines of copied " -"context.\n" -"-u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified " -"context.\n" -" --label LABEL Use LABEL instead of file name.\n" -" -p --show-c-function Show which C function each change is in.\n" -" -F RE --show-function-line=RE Show the most recent line matching RE." -msgstr "" -"-c -C ANTAL --context[=ANTAL] Udlæs ANTAL (standard 3) linjer af kopieret " -"kontekst.\n" -"-u -U ANTAL --unified[=ANTAL] Udlæs ANTAL (standard 3) linjer af unified " -"kontekst.\n" -" -L MÆRKE --label MÆRKE Brug MÆRKE i stedet for filnavn.\n" -" -p --show-c-function Vis hvilken C funktion hver ændring er i.\n" -" -F MØNSTER --show-function-line=MØNSTER Vis den sidste foregående linje, " -"der matcher MØNSTER." - -#: src/diff.c:853 -msgid "-q --brief Output only whether files differ." -msgstr "-q --brief Undersøg kun om filerne er ens eller ej." - -#: src/diff.c:854 -msgid "-e --ed Output an ed script." -msgstr "-e --ed Udlæs et ed skript." - -#: src/diff.c:855 -msgid "--normal Output a normal diff." -msgstr "--normal Udlæs en almindelig diff." - -#: src/diff.c:856 -msgid "-n --rcs Output an RCS format diff." -msgstr "-n --rcs Udlæs en diff i RCS-format." - -#: src/diff.c:857 -msgid "" -"-y --side-by-side Output in two columns.\n" -" -W NUM --width=NUM Output at most NUM (default 130) print columns.\n" -" --left-column Output only the left column of common lines.\n" -" --suppress-common-lines Do not output common lines." -msgstr "" -"-y --side-by-side Udlæs i to kolonner.\n" -" -W ANTAL --width=ANTAL Udlæs højst ANTAL (standard 130) skriftsøjler.\n" -" --left-column Vis kun venstre kolonne af identiske linjer.\n" -" --suppress-common-lines Udlæs ikke sammenfaldende linjer." - -#: src/diff.c:861 -msgid "-D NAME --ifdef=NAME Output merged file to show `#ifdef NAME' diffs." -msgstr "" -"-D NAVN --ifdef=NAVN Udlæs flettet fil for at vise '#ifdef NAVN' ændringer." - -#: src/diff.c:862 -msgid "" -"--GTYPE-group-format=GFMT Similar, but format GTYPE input groups with GFMT." -msgstr "" -"--GTYPE-group-format=GFMT Det samme, men formatér GTYPE inddata grupper med " -"GFMT" - -#: src/diff.c:863 -msgid "--line-format=LFMT Similar, but format all input lines with LFMT." -msgstr "" -"--line-format=LFMT Det samme, men formatér alle indlæste linjer med LFMT." - -#: src/diff.c:864 -msgid "" -"--LTYPE-line-format=LFMT Similar, but format LTYPE input lines with LFMT." -msgstr "" -"--LTYPE-line-format=LFMT Det samme, men formatér LTYPE inddata med LFMT" - -#: src/diff.c:865 -msgid " LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'." -msgstr "" -" LTYPE er 'gammel', 'ny' eller 'uændret'. GTYPE er LTYPE eller 'ændret'." - -#: src/diff.c:866 -msgid "" -" GFMT may contain:\n" -" %< lines from FILE1\n" -" %> lines from FILE2\n" -" %= lines common to FILE1 and FILE2\n" -" %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" -" LETTERs are as follows for new group, lower case for old group:\n" -" F first line number\n" -" L last line number\n" -" N number of lines = L-F+1\n" -" E F-1\n" -" M L+1" -msgstr "" -" GFMT må indeholde:\n" -" %< linjer fra FIL1\n" -" %> linjer fra FIL2\n" -" %= linjer, der er fælles mellem FIL1 og FIL2\n" -" %[-][BREDDE][.[PRÆC]]{doxX}BOGSTAV printf-type specifikation for " -"BOGSTAV\n" -" BOGSAV er som nedenfor for en ny gruppe, små bogstaver for gammel " -"gruppe:\n" -" F første linjenummer\n" -" L sidste linjenummer\n" -" N antal linjer = L-F+1\n" -" E F-1\n" -" M L+1" - -#: src/diff.c:877 -msgid "" -" LFMT may contain:\n" -" %L contents of line\n" -" %l contents of line, excluding any trailing newline\n" -" %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number" -msgstr "" -" LFMT må indeholde:\n" -" %L indhold af linje\n" -" %l indhold af linje, undtagen eventuel følgende linjeskift\n" -" %[-][BREDDE][.[PRÆC]]{doxX}n printf-stil angivelse af inddata " -"linjenummer" - -#: src/diff.c:881 -msgid "" -" Either GFMT or LFMT may contain:\n" -" %% %\n" -" %c'C' the single character C\n" -" %c'\\OOO' the character with octal code OOO" -msgstr "" -" Enten kan GFMT eller LFMT indeholde:\n" -" %% %\n" -" %c'T' tegnet T alene\n" -" %c'\\000' tegnet med oktal kode 000" - -#: src/diff.c:886 -msgid "-l --paginate Pass the output through `pr' to paginate it." -msgstr "-l --paginate Led uddata gennem 'pr' for at sideinddele det." - -#: src/diff.c:887 src/sdiff.c:198 -msgid "-t --expand-tabs Expand tabs to spaces in output." -msgstr "-t --expand-tabs Lav tabulatorer om til mellemrum i output." - -#: src/diff.c:888 src/diff3.c:452 -msgid "-T --initial-tab Make tabs line up by prepending a tab." -msgstr "" -"-T --initial-tab Få tabulatorer på linje ved at forudstille en tabulator." - -#: src/diff.c:890 -msgid "-r --recursive Recursively compare any subdirectories found." -msgstr "-r --recursive Sammenlign alle fundne underkataloger rekursivt." - -#: src/diff.c:891 -msgid "-N --new-file Treat absent files as empty." -msgstr "-N --new-file Behandl manglende filer som var de tomme." - -#: src/diff.c:892 -msgid "--unidirectional-new-file Treat absent first files as empty." -msgstr "" -"--unidirectional-new-file Behandl første manglende filer som var de tomme." - -#: src/diff.c:893 -msgid "-s --report-identical-files Report when two files are the same." -msgstr "-s --report-identical-files Rapportér hvis to filer er ens." - -#: src/diff.c:894 -msgid "-x PAT --exclude=PAT Exclude files that match PAT." -msgstr "-x MØNSTER --exclude=MØNSTER Udelad filer, det matcher MØNSTER." - -#: src/diff.c:895 -msgid "" -"-X FILE --exclude-from=FILE Exclude files that match any pattern in FILE." -msgstr "" -"-X FIL --exclude-from=FIL Udelad filer, der matcher ethvert mønster i FIL." - -#: src/diff.c:896 -msgid "" -"-S FILE --starting-file=FILE Start with FILE when comparing directories." -msgstr "-S FIL --starting-file=FIL Star med FIL, når kataloger sammenlignes." - -#: src/diff.c:897 -msgid "" -"--from-file=FILE1 Compare FILE1 to all operands. FILE1 can be a directory." -msgstr "" -"--from-file=FIL1 Sammenlign FIL1 med alle operanter. FIL1 må godt være et " -"katalog." - -#: src/diff.c:898 -msgid "" -"--to-file=FILE2 Compare all operands to FILE2. FILE2 can be a directory." -msgstr "" -"--to-file=FIL1 Sammenlign alle operanter med FIL2. FIL2 må godt være et " -"katalog." - -#: src/diff.c:900 -msgid "--horizon-lines=NUM Keep NUM lines of the common prefix and suffix." -msgstr "" -"--horizon-lines=ANTAL Behold ANTAL linjer af fælles præfix og suffiks." - -#: src/diff.c:901 src/sdiff.c:200 -msgid "-d --minimal Try hard to find a smaller set of changes." -msgstr "-d --minimal Grundigt forsøg på at finde et mindre antal ændringer." - -#: src/diff.c:902 -msgid "" -"--speed-large-files Assume large files and many scattered small changes." -msgstr "" -"--speed-large-files Antag store filer og mange spredte, små ændringer." - -#: src/diff.c:907 -msgid "" -"FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'." -msgstr "" -"FILER er 'FIL1 FIL2' eller 'KATALOG1 KATALOG2' eller 'KATALOG FIL...' eller " -"'FIL... KATALOG'." - -#: src/diff.c:908 -msgid "" -"If --from-file or --to-file is given, there are no restrictions on FILES." -msgstr "" -"hvis --from-file eller --to-file er angivet, er der ingen restriktioner på " -"FILER." - -#: src/diff.c:909 src/diff3.c:474 src/sdiff.c:222 -msgid "If a FILE is `-', read standard input." -msgstr "Såfremt en FIL er '-', læses fra standard-ind." - -#: src/diff.c:920 -#, c-format -msgid "Usage: %s [OPTION]... FILES\n" -msgstr "Brug: %s [TILVALG]... FILER\n" - -#: src/diff.c:949 -#, c-format -msgid "conflicting %s option value `%s'" -msgstr "modstridende værdi for %s-tilvalget: '%s'" - -#: src/diff.c:962 -msgid "conflicting output style options" -msgstr "modstridende valg af uddata-stil" - -#: src/diff.c:976 -msgid "regular empty file" -msgstr "almindelig tom fil" - -#: src/diff.c:976 -msgid "regular file" -msgstr "almindelig fil" - -#: src/diff.c:978 -msgid "directory" -msgstr "katalog" - -#: src/diff.c:981 -msgid "block special file" -msgstr "blok-specialfil" - -#: src/diff.c:984 -msgid "character special file" -msgstr "tegn-specialfil" - -#: src/diff.c:987 -msgid "fifo" -msgstr "fifo" - -#: src/diff.c:991 -msgid "socket" -msgstr "stik" - -#: src/diff.c:994 -msgid "message queue" -msgstr "meddelelseskø" - -#: src/diff.c:997 -msgid "semaphore" -msgstr "signal" - -#: src/diff.c:1000 -msgid "shared memory object" -msgstr "delt hukommelses-objekt" - -#: src/diff.c:1003 -msgid "typed memory object" -msgstr "typeangivet hukommelses-objekt" - -#: src/diff.c:1006 -msgid "weird file" -msgstr "mystisk fil" - -#: src/diff.c:1070 src/diff.c:1256 -#, c-format -msgid "Only in %s: %s\n" -msgstr "Kun i %s: %s\n" - -#: src/diff.c:1193 -msgid "cannot compare `-' to a directory" -msgstr "kan ikke sammenligne '-' med et katalog" - -#: src/diff.c:1220 -msgid "-D option not supported with directories" -msgstr "-D tilvalg understøttes ikke for kataloger" - -#: src/diff.c:1229 -#, c-format -msgid "Common subdirectories: %s and %s\n" -msgstr "Identiske underkataloger: %s og %s\n" - -#: src/diff.c:1266 -#, c-format -msgid "File %s is a %s while file %s is a %s\n" -msgstr "Filen %s er en %s mens filen %s er en %s\n" - -#: src/diff.c:1345 -#, c-format -msgid "Files %s and %s are identical\n" -msgstr "Filerne %s og %s er identiske\n" - -#: src/diff3.c:26 -msgid "Written by Randy Smith." -msgstr "Skrevet af Randy Smith." - -#: src/diff3.c:328 -msgid "incompatible options" -msgstr "inkompatible tilvalg" - -#: src/diff3.c:368 -msgid "`-' specified for more than one input file" -msgstr "'-' angiver mere en én ind-fil" - -#: src/diff3.c:408 src/diff3.c:1232 src/diff3.c:1645 src/diff3.c:1700 -#: src/sdiff.c:305 src/sdiff.c:879 src/sdiff.c:890 -msgid "read failed" -msgstr "læsning mislykkedes" - -#: src/diff3.c:441 -msgid "-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE." -msgstr "" -"-e --ed Udlæs uflettede ændringer mellem GAMMELFIL og DINFIL til MINFIL." - -#: src/diff3.c:442 -msgid "-E --show-overlap Output unmerged changes, bracketing conflicts." -msgstr "-E --show-overlap Udlæs uflettede ændringer, konflikter i paranteser" - -#: src/diff3.c:443 -msgid "-A --show-all Output all changes, bracketing conflicts." -msgstr "-A --show-all Udlæs alle ændringer, konflikter i paranteser." - -#: src/diff3.c:444 -msgid "-x --overlap-only Output overlapping changes." -msgstr "-x --overlap-only Vis kun overlappende ændringer." - -#: src/diff3.c:445 -msgid "-X Output overlapping changes, bracketing them." -msgstr "-X Udlæs overlappende ændringer, i paranteser." - -#: src/diff3.c:446 -msgid "-3 --easy-only Output unmerged nonoverlapping changes." -msgstr "-3 --easy-only Udlæs ikke-flettede, ikke-overlappende ændringer." - -#: src/diff3.c:448 -msgid "-m --merge Output merged file instead of ed script (default -A)." -msgstr "-m --merge Udlæs flettet fil i stedet for ed skript (standard -A)." - -#: src/diff3.c:449 -msgid "-L LABEL --label=LABEL Use LABEL instead of file name." -msgstr "-L MÆRKE --label=MÆRKE Brug MÆRKE i stedet for filnavn." - -#: src/diff3.c:450 -msgid "-i Append `w' and `q' commands to ed scripts." -msgstr "-i Tilføj 'w' og 'q'-kommandoer til ed skripter." - -#: src/diff3.c:453 src/sdiff.c:202 -msgid "--diff-program=PROGRAM Use PROGRAM to compare files." -msgstr "--diff-program=PROGRAM Brug PROGRAM til at sammenligne filerne." - -#: src/diff3.c:465 -#, c-format -msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n" -msgstr "Brug: %s [TILVALG]... MINFIL GAMMELFIL DINFIL\n" - -#: src/diff3.c:467 -msgid "Compare three files line by line." -msgstr "Sammenlign tre filer linje for linje." - -#: src/diff3.c:673 -msgid "internal error: screwup in format of diff blocks" -msgstr "intern fejl: rod i formatet på diff blokke" - -#: src/diff3.c:971 -#, c-format -msgid "%s: diff failed: " -msgstr "%s: diff fejlede: " - -#: src/diff3.c:993 -msgid "internal error: invalid diff type in process_diff" -msgstr "intern fejl: ugyldig diff type i process_diff" - -#: src/diff3.c:1018 -msgid "invalid diff format; invalid change separator" -msgstr "ugyldigt diff format; ugyldig ændrings-separator" - -#: src/diff3.c:1242 -msgid "invalid diff format; incomplete last line" -msgstr "ugyldigt diff format; uafsluttet sidste linje" - -#: src/diff3.c:1265 src/sdiff.c:273 -#, c-format -msgid "subsidiary program `%s' not executable" -msgstr "hjælpeprogram '%s' er ikke eksekverbart" - -#: src/diff3.c:1268 src/sdiff.c:276 src/util.c:298 -#, c-format -msgid "subsidiary program `%s' not found" -msgstr "hjælpeprogram '%s' blev ikke fundet" - -#: src/diff3.c:1272 src/sdiff.c:268 src/util.c:301 -#, c-format -msgid "subsidiary program `%s' failed" -msgstr "hjælpeprogram '%s' fejlede" - -#: src/diff3.c:1294 -msgid "invalid diff format; incorrect leading line chars" -msgstr "ugyldigt diff format; forkerte linje-begyndelses-tegn" - -#: src/diff3.c:1370 -msgid "internal error: invalid diff type passed to output" -msgstr "intern fejl: ugyldig diff type sendt til uddata" - -#: src/diff3.c:1647 src/diff3.c:1704 -msgid "input file shrank" -msgstr "ind-fil formindskedes" - -#: src/dir.c:162 -#, c-format -msgid "cannot compare file names `%s' and `%s'" -msgstr "kan ikke sammenligne filnavnene '%s' og '%s'" - -#: src/sdiff.c:35 -msgid "Written by Thomas Lord." -msgstr "Skrevet af Thomas Lord." - -#: src/sdiff.c:183 -msgid "-o FILE --output=FILE Operate interactively, sending output to FILE." -msgstr "-o FIL --output=FIL Arbejd interaktivt, send uddata til FIL." - -#: src/sdiff.c:185 -msgid "-i --ignore-case Consider upper- and lower-case to be the same." -msgstr "-e --ignore-case Anse store og små bogstaver for at være ens." - -#: src/sdiff.c:188 -msgid "-W --ignore-all-space Ignore all white space." -msgstr "-W --ignore-all-space Ignorer alle mellemrumskarakterer." - -#: src/sdiff.c:194 -msgid "-w NUM --width=NUM Output at most NUM (default 130) columns per line." -msgstr "" -"-w ANTAL --width=ANTAL Udlæs højst ANTAL (standard 130) søjler per linje." - -#: src/sdiff.c:195 -msgid "-l --left-column Output only the left column of common lines." -msgstr "-l --left-column Vis kun venstre kolonne af identiske linjer." - -#: src/sdiff.c:196 -msgid "-s --suppress-common-lines Do not output common lines." -msgstr "-s --suppress-common-lines Udlæs ingen identiske linjer." - -#: src/sdiff.c:201 -msgid "" -"-H --speed-large-files Assume large files and many scattered small changes." -msgstr "" -"-H --speed-large-files Antag store filer og mange spredte, små ændringer." - -#: src/sdiff.c:214 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 FILE2\n" -msgstr "Brug: %s [TILVALG]... FIL1 FIL2\n" - -#: src/sdiff.c:215 -msgid "Side-by-side merge of file differences." -msgstr "Ved-siden-af-hinanden-sammenfletning af filforskelle." - -#: src/sdiff.c:327 -msgid "cannot interactively merge standard input" -msgstr "kan ikke indflette standard input interaktivt" - -#: src/sdiff.c:588 -msgid "both files to be compared are directories" -msgstr "begge filer der sammenlignes er kataloger" - -#: src/sdiff.c:853 -msgid "" -"ed:\tEdit then use both versions, each decorated with a header.\n" -"eb:\tEdit then use both versions.\n" -"el:\tEdit then use the left version.\n" -"er:\tEdit then use the right version.\n" -"e:\tEdit a new version.\n" -"l:\tUse the left version.\n" -"r:\tUse the right version.\n" -"s:\tSilently include common lines.\n" -"v:\tVerbosely include common lines.\n" -"q:\tQuit.\n" -msgstr "" -"ed:\tRedigér og brug så begge udgaver, hver udstyret med et hoved.\n" -"eb:\tRedigér og brug så begge udgaver.\n" -"el:\tRedigér og brug så venstre udgave.\n" -"er:\tRedigér og brug så højre udgave.\n" -"e:\tRedigér en ny udgave.\n" -"l:\tBrug venstre udgave.\n" -"r:\tBrug højre udgave.\n" -"s:\tMedtag tavst fælles linjer.\n" -"v:\tMedtag og vis fælles linjer.\n" -"q:\tAfslut.\n" diff --git a/gnu/dist/diffutils/po/de.gmo b/gnu/dist/diffutils/po/de.gmo deleted file mode 100644 index 1c33b987730..00000000000 Binary files a/gnu/dist/diffutils/po/de.gmo and /dev/null differ diff --git a/gnu/dist/diffutils/po/de.po b/gnu/dist/diffutils/po/de.po deleted file mode 100644 index 2ce4060e6f8..00000000000 --- a/gnu/dist/diffutils/po/de.po +++ /dev/null @@ -1,993 +0,0 @@ -# German messages for GNU diffutils. -# Copyright (C) 1996, 2001, 2002 Free Software Foundation, Inc. -# Karl Eichwalder , 1996 -# Martin von Löwis , 1997, 2001, 2002 -# -msgid "" -msgstr "" -"Project-Id-Version: GNU diffutils 2.7.10\n" -"POT-Creation-Date: 2002-04-05 14:10-0800\n" -"PO-Revision-Date: 2002-03-13 18:22+0100\n" -"Last-Translator: Martin von Löwis \n" -"Language-Team: German \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: lib/c-stack.c:188 -msgid "program error" -msgstr "Programmfehler" - -#: lib/c-stack.c:189 -msgid "stack overflow" -msgstr "Stacküberlauf" - -#: lib/error.c:128 lib/error.c:156 -msgid "Unknown system error" -msgstr "Unbekannter Systemfehler." - -#: lib/freesoft.c:27 -msgid "" -"This program comes with NO WARRANTY, to the extent permitted by law.\n" -"You may redistribute copies of this program\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING." -msgstr "" -"Dieses Programm wird ohne Gewährleistung geliefert, soweit dies\n" -"gesetzlich zulässig ist. Sie können es unter den Bedingungen der GNU\n" -"General Public License weitergeben. \n" -"Details dazu enthält die Datei COPYING." - -#: lib/getopt.c:693 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s: Option »%s« ist mehrdeutig.\n" - -#: lib/getopt.c:718 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: Option »--%s« verlangt kein Argument.\n" - -#: lib/getopt.c:723 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: Option »%c%s« erlaubt kein Argument.\n" - -#: lib/getopt.c:741 lib/getopt.c:914 -#, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s: Option »%s« verlangt ein Argument.\n" - -#: lib/getopt.c:770 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: Unbekannte Option »--%s«.\n" - -#: lib/getopt.c:774 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: Unbekannte Option »%c%s«.\n" - -#: lib/getopt.c:800 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: ungültige Option -- %c.\n" - -#: lib/getopt.c:803 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: ungültige Option -- %c\n" - -#: lib/getopt.c:833 lib/getopt.c:963 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: Option verlangt ein Argument -- %c.\n" - -#: lib/getopt.c:880 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "%s: Option »-W %s« ist mehrdeutig.\n" - -#: lib/getopt.c:898 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: Option »-W %s« erlaubt kein Argument.\n" - -#: lib/regex.c:1367 -msgid "Success" -msgstr "Erfolg." - -#: lib/regex.c:1370 -msgid "No match" -msgstr "Keine Übereinstimmung." - -#: lib/regex.c:1373 -msgid "Invalid regular expression" -msgstr "Ungültiger regulärer Ausdruck." - -#: lib/regex.c:1376 -msgid "Invalid collation character" -msgstr "Ungültiges Sortierzeichen." - -#: lib/regex.c:1379 -msgid "Invalid character class name" -msgstr "Ungültiger Name für Zeichenklasse." - -#: lib/regex.c:1382 -msgid "Trailing backslash" -msgstr "Extra Backslash." - -#: lib/regex.c:1385 -msgid "Invalid back reference" -msgstr "Ungültige Rückreferenz." - -#: lib/regex.c:1388 -msgid "Unmatched [ or [^" -msgstr "Öffnende [ oder [^ ohne schließende." - -#: lib/regex.c:1391 -msgid "Unmatched ( or \\(" -msgstr "Öffnende ( oder \\( ohne schließende." - -#: lib/regex.c:1394 -msgid "Unmatched \\{" -msgstr "Öffnende \\{ ohne schließende." - -#: lib/regex.c:1397 -msgid "Invalid content of \\{\\}" -msgstr "Ungültiger Inhalt von \\{\\}." - -#: lib/regex.c:1400 -msgid "Invalid range end" -msgstr "Ungültiges Bereichsende." - -#: lib/regex.c:1403 -msgid "Memory exhausted" -msgstr "Speicher verbraucht." - -#: lib/regex.c:1406 -msgid "Invalid preceding regular expression" -msgstr "Ungüliger vorhergehender regulärer Ausdruck." - -#: lib/regex.c:1409 -msgid "Premature end of regular expression" -msgstr "Vorzeitiges Ende des regulären Ausdrucks." - -#: lib/regex.c:1412 -msgid "Regular expression too big" -msgstr "Regulärer Ausdruck zu groß." - -#: lib/regex.c:1415 -msgid "Unmatched ) or \\)" -msgstr "Schließende ) oder \\) ohne öffnende." - -#: lib/regex.c:8034 -msgid "No previous regular expression" -msgstr "Kein vorhergehender regulärer Ausdruck." - -#: lib/xmalloc.c:63 -msgid "memory exhausted" -msgstr "Speicher verbraucht." - -#: src/analyze.c:809 src/diff.c:1283 -#, c-format -msgid "Files %s and %s differ\n" -msgstr "Dateien %s und %s sind verschieden.\n" - -#: src/analyze.c:812 -#, c-format -msgid "Binary files %s and %s differ\n" -msgstr "Binärdateien %s and %s sind verschieden.\n" - -#: src/analyze.c:1058 src/diff3.c:1413 src/util.c:526 -msgid "No newline at end of file" -msgstr "Kein Zeilenumbruch am Dateiende." - -#: src/cmp.c:43 -msgid "Written by Torbjorn Granlund and David MacKenzie." -msgstr "Geschrieben von Torbjorn Granlund und David MacKenzie." - -#: src/cmp.c:118 src/diff.c:817 src/diff3.c:427 src/sdiff.c:168 -#, c-format -msgid "Try `%s --help' for more information." -msgstr "»%s --help« gibt Ihnen mehr Informationen." - -#: src/cmp.c:137 -#, c-format -msgid "invalid --ignore-initial value `%s'" -msgstr "ungültiger --ignore-initial-Wert »%s«." - -#: src/cmp.c:146 -msgid "options -l and -s are incompatible" -msgstr "Die Optionen -l und -s sind inkompatibel." - -#: src/cmp.c:154 src/diff.c:826 src/diff3.c:435 src/sdiff.c:177 -#: src/sdiff.c:313 src/sdiff.c:320 src/sdiff.c:910 src/util.c:194 -#: src/util.c:286 src/util.c:293 -msgid "write failed" -msgstr "Schreibfehler." - -#: src/cmp.c:156 src/diff.c:828 src/diff.c:1354 src/diff3.c:437 -#: src/sdiff.c:179 -msgid "standard output" -msgstr "Standardausgabe" - -#: src/cmp.c:160 -msgid "-b --print-bytes Print differing bytes." -msgstr "-b --print-bytes Verschiedene Bytes ausgeben." - -#: src/cmp.c:161 -msgid "-i SKIP --ignore-initial=SKIP Skip the first SKIP bytes of input." -msgstr "" -"-i SKIP --ignore-initial=SKIP Die ersten SKIP Bytes der Eingabe " -"überspringen." - -#: src/cmp.c:162 -msgid "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2" -msgstr "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2" - -#: src/cmp.c:163 -msgid "" -" Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2." -msgstr "" -" Die ersten SKIP1 Bytes von DATEI1 und die ersten SKIP2 Bytes von DATEI2\n" -" überspringen." - -#: src/cmp.c:164 -msgid "-l --verbose Output byte numbers and values of all differing bytes." -msgstr "" -"-l --verbose Bytenummern und Werte aller unterschiedlichen Bytes ausgeben." - -#: src/cmp.c:165 -msgid "-n LIMIT --bytes=LIMIT Compare at most LIMIT bytes." -msgstr "-n LIMIT --bytes=LIMIT Höchstens LIMIT Bytes vergleichen." - -#: src/cmp.c:166 -msgid "-s --quiet --silent Output nothing; yield exit status only." -msgstr "-s -quiet --silent Keine Ausgabe; nur den Exit-Status setzen." - -#: src/cmp.c:167 src/diff.c:904 src/diff3.c:455 src/sdiff.c:204 -msgid "-v --version Output version info." -msgstr "-v -version Versionsinformation ausgeben." - -#: src/cmp.c:168 src/diff.c:905 src/diff3.c:456 src/sdiff.c:205 -msgid "--help Output this help." -msgstr "--help Nur diese Hilfe zeigen." - -#: src/cmp.c:177 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n" -msgstr "Aufruf: %s [OPTION]... DATEI1 [DATEI2 [SKIP1 [SKIP2]]]\n" - -#: src/cmp.c:179 -msgid "Compare two files byte by byte." -msgstr "Zwei Dateien Byte für Byte vergleichen." - -#: src/cmp.c:183 -msgid "SKIP1 and SKIP2 are the number of bytes to skip in each file." -msgstr "" -"SKIP1 und SKIP2 ist die Zahl der Bytes, die in jeder Datei übersprungen " -"werden." - -#: src/cmp.c:184 -msgid "" -"SKIP values may be followed by the following multiplicative suffixes:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y." -msgstr "" -"SKIP-Werte dürfen die folgenden multiplikativen Anhänge haben:\n" -"kB 1000, K 1024, MB 1.000.000, M 1.048.576,\n" -"GB 1.000.000.000, G 1.073.741.824, und so weiter für T, P, E, Z, Y." - -#: src/cmp.c:187 -msgid "If a FILE is `-' or missing, read standard input." -msgstr "Wenn DATEI »-« ist oder fehlt, von der Standardeingabe lesen." - -#: src/cmp.c:188 src/diff.c:911 src/diff3.c:475 src/sdiff.c:223 -msgid "Report bugs to ." -msgstr "Fehlerberichte bitte an ." - -#: src/cmp.c:231 -#, c-format -msgid "invalid --bytes value `%s'" -msgstr "ungültiger --bytes-Wert »%s«." - -#: src/cmp.c:258 src/diff.c:734 src/diff3.c:333 src/sdiff.c:558 -#, c-format -msgid "missing operand after `%s'" -msgstr "Fehlender Operand nach »%s«." - -#: src/cmp.c:270 src/diff.c:736 src/diff3.c:335 src/sdiff.c:560 -#, c-format -msgid "extra operand `%s'" -msgstr "extra Argument »%s«." - -#: src/cmp.c:477 -#, c-format -msgid "%s %s differ: byte %s, line %s\n" -msgstr "%s %s differieren: Byte %s, Zeile %s.\n" - -#: src/cmp.c:495 -#, c-format -msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n" -msgstr "%s %s differieren: Zeichen %s, Zeile %s ist %3o %s %3o %s\n" - -#: src/cmp.c:543 -#, c-format -msgid "cmp: EOF on %s\n" -msgstr "cmp: EOF auf %s.\n" - -#: src/diff.c:41 -msgid "" -"Written by Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman, and Len Tower." -msgstr "" -"Geschrieben von Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman und Len Tower." - -#: src/diff.c:322 -#, c-format -msgid "invalid context length `%s'" -msgstr "Ungültige Kontextlänge »%s«." - -#: src/diff.c:405 -msgid "pagination not supported on this host" -msgstr "Seitenumbruch ist auf diesem System nicht unterstützt." - -#: src/diff.c:420 src/diff3.c:315 -msgid "too many file label options" -msgstr "Zu viele Datei-Label-Optionen." - -#: src/diff.c:498 -#, c-format -msgid "invalid width `%s'" -msgstr "Ungültig mit »%s«." - -#: src/diff.c:502 -msgid "conflicting width options" -msgstr "Widersprüchliche Breitenoptionen" - -#: src/diff.c:526 -#, c-format -msgid "invalid horizon length `%s'" -msgstr "ungültige Horizontlänge '%s'." - -#: src/diff.c:629 -#, c-format -msgid "`-%ld' option is obsolete; use `-%c %ld'" -msgstr "Die Option »-%ld« ist veraltet; verwenden Sie »-%c %ld«." - -#: src/diff.c:641 -#, c-format -msgid "`-%ld' option is obsolete; omit it" -msgstr "Die Option »-%ld« ist veraltet; lassen Sie sie weg." - -#: src/diff.c:709 -msgid "--from-file and --to-file both specified" -msgstr "--from-file und --to-file sind beide angegeben." - -#: src/diff.c:832 -msgid "Compare files line by line." -msgstr "Vergleichen Sie Dateien Zeile für Zeile." - -#: src/diff.c:834 -msgid "-i --ignore-case Ignore case differences in file contents." -msgstr "" -"-i --ignore-case Unterschiede der Groß/Kleinschreibung im Dateiinhalt \n" -" ignorieren." - -#: src/diff.c:835 -msgid "--ignore-file-name-case Ignore case when comparing file names." -msgstr "" -"--ignore-file-name-case Unterschiede der Groß/Kleinschreibung von " -"Dateinamen\n" -" ignorieren." - -#: src/diff.c:836 -msgid "--no-ignore-file-name-case Consider case when comparing file names." -msgstr "" -"--no-ignore-file-name-case Unterschiede der Groß/Kleinschreibung von \n" -" Dateinamen beachten." - -#: src/diff.c:837 src/sdiff.c:186 -msgid "-E --ignore-tab-expansion Ignore changes due to tab expansion." -msgstr "" -"-E --ignore-tab-expansion Änderungen aufgrund von Tabausdehnungen " -"ignorieren." - -#: src/diff.c:838 src/sdiff.c:187 -msgid "-b --ignore-space-change Ignore changes in the amount of white space." -msgstr "-b --ignore-space-change Ignoriere Änderungen im Leerraum." - -#: src/diff.c:839 -msgid "-w --ignore-all-space Ignore all white space." -msgstr "-w --ignore-all-space Freiraum ignorieren." - -#: src/diff.c:840 src/sdiff.c:189 -msgid "-B --ignore-blank-lines Ignore changes whose lines are all blank." -msgstr "" -"-B, --ignore-blank-lines Die Änderungen übergehen, wo die Zeilen leer sind." - -#: src/diff.c:841 src/sdiff.c:190 -msgid "" -"-I RE --ignore-matching-lines=RE Ignore changes whose lines all match RE." -msgstr "" -"-I RE --ignore-matching-lines=RE Änderungen ignorieren, deren Zeilen \n" -" auf das Muster RE passen." - -#: src/diff.c:842 src/sdiff.c:191 -msgid "--strip-trailing-cr Strip trailing carriage return on input." -msgstr "" -"--strip-trailing-cr Wagenrücklauf (CR) am Zeilenende beim Einlesen " -"entfernen." - -#: src/diff.c:844 -msgid "--binary Read and write data in binary mode." -msgstr "--binary Daten im Binärmodus lesen und schreiben." - -#: src/diff.c:846 src/diff3.c:451 src/sdiff.c:192 -msgid "-a --text Treat all files as text." -msgstr "-a --text Betrachte alle Dateien als Text." - -#: src/diff.c:848 -msgid "" -"-c -C NUM --context[=NUM] Output NUM (default 3) lines of copied " -"context.\n" -"-u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified " -"context.\n" -" --label LABEL Use LABEL instead of file name.\n" -" -p --show-c-function Show which C function each change is in.\n" -" -F RE --show-function-line=RE Show the most recent line matching RE." -msgstr "" -" -c, -C ZAHL, --context[=ZAHL] ZAHL Zeilen des kopierten Kontextes " -"ausgeben\n" -" (Vorgabe: 3).\n" -" -u, -U ZAHL, --unified[=ZAHL] ZAHL Zeilen des \"unifizierten\" " -"Kontextes ausgeben\n" -" (Vorgabe: 3).\n" -" --label LABEL LABEL statt Dateiname verwenden.\n" -" -p, --show-c-function Anzeigen, in welcher C-Funktion die " -"Veränderung\n" -" vorkommt.\n" -" -F RE, --show-function-line=RE Die nächste Zeile anzeigen, auf die RE " -"zutrifft." - -#: src/diff.c:853 -msgid "-q --brief Output only whether files differ." -msgstr "-q --brief Nur ausgeben ob die Dateien verschieden sind." - -#: src/diff.c:854 -msgid "-e --ed Output an ed script." -msgstr "-e --ed Ein ed-Skript ausgeben." - -#: src/diff.c:855 -msgid "--normal Output a normal diff." -msgstr "--normal Ein normales Diff ausgeben." - -#: src/diff.c:856 -msgid "-n --rcs Output an RCS format diff." -msgstr "-n --rcs Ausgabe im Diff-Format von RCS." - -#: src/diff.c:857 -msgid "" -"-y --side-by-side Output in two columns.\n" -" -W NUM --width=NUM Output at most NUM (default 130) print columns.\n" -" --left-column Output only the left column of common lines.\n" -" --suppress-common-lines Do not output common lines." -msgstr "" -"-y -side-by-side In zwei Spalten ausgeben.\n" -" -W ZAHL --width=ZAHL Maximal ZAHL Zeichen pro Zeile ausgeben(Vorgabe: " -"130).\n" -" --left-column Nur linke Spalte gemeinsamer Zeilen ausgeben.\n" -" ---suppress-common-lines Keine gemeinsamen Zeilen ausgeben." - -#: src/diff.c:861 -msgid "-D NAME --ifdef=NAME Output merged file to show `#ifdef NAME' diffs." -msgstr "-D NAME --ifdef=NAME Datei mit »#ifdef NAME« in die Ausgabe mischen." - -#: src/diff.c:862 -msgid "" -"--GTYPE-group-format=GFMT Similar, but format GTYPE input groups with GFMT." -msgstr "" -"--GTYPE-group-format=GFMT Ähnlich, GTYPE-Eingabe jedoch mit GFMT " -"formatieren." - -#: src/diff.c:863 -msgid "--line-format=LFMT Similar, but format all input lines with LFMT." -msgstr "" -"--line-format=LFMT Ähnlich, aber alle Eingabe-Zeilen mit LFMT formatieren." - -#: src/diff.c:864 -msgid "" -"--LTYPE-line-format=LFMT Similar, but format LTYPE input lines with LFMT." -msgstr "" -"--LTYPE-line-format=LFMT Ähnlich, LTYPE-Eingabe jedoch mit LFMT formatieren." - -#: src/diff.c:865 -msgid " LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'." -msgstr "" -" LTYPE kann »old«, »new« oder »unchanged« sein. GTYPE ist LTYPE oder " -"»changed«." - -#: src/diff.c:866 -msgid "" -" GFMT may contain:\n" -" %< lines from FILE1\n" -" %> lines from FILE2\n" -" %= lines common to FILE1 and FILE2\n" -" %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" -" LETTERs are as follows for new group, lower case for old group:\n" -" F first line number\n" -" L last line number\n" -" N number of lines = L-F+1\n" -" E F-1\n" -" M L+1" -msgstr "" -" GFMT kann enthalten:\n" -" %< Zeilen von DATEI1.\n" -" %> Zeilen von DATEI2.\n" -" %= Zeilen, die sowohl zu DATEI1 als auc zu DATEI2 gehören.\n" -" %[-][BREITE][.[PRÄZ]]{doxX}BUCHST Ausgabe nach printf-Regeln für " -"BUCHST.\n" -" Folgende BUCHTSTaben gelten für neue Gruppen, Kleinschreibung für " -"alte:\n" -" F Erste Zeilennummer.\n" -" L Letzte Zeilennummer.\n" -" N Zahl der Zeilen = L-F+1.\n" -" E F-1." - -#: src/diff.c:877 -msgid "" -" LFMT may contain:\n" -" %L contents of line\n" -" %l contents of line, excluding any trailing newline\n" -" %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number" -msgstr "" -" LFMT kann enthalten:\n" -" %L Inhalt der Zeile.\n" -" %l Inhalt der Zeile, ohne Newline am Ende.\n" -" %[-][BREITE][.[PRÄZ]]{doxX}n Zeilennummer im printf-Stil." - -#: src/diff.c:881 -msgid "" -" Either GFMT or LFMT may contain:\n" -" %% %\n" -" %c'C' the single character C\n" -" %c'\\OOO' the character with octal code OOO" -msgstr "" -" Sowohl GFMT als auch LFMT können folgendes enthalten:\n" -" %% %\n" -" %c'C' das einzelne Zeichen C\n" -" %c'\\000' das Zeichen mit dem Oktalcode 000" - -#: src/diff.c:886 -msgid "-l --paginate Pass the output through `pr' to paginate it." -msgstr "-l --paginate Ausgabe an »pr« zum Seitenumbruch übergeben." - -#: src/diff.c:887 src/sdiff.c:198 -msgid "-t --expand-tabs Expand tabs to spaces in output." -msgstr "-t -expand-tabs Tabulatoren zu Leerzeichen in der Ausgabe ausdehnen." - -#: src/diff.c:888 src/diff3.c:452 -msgid "-T --initial-tab Make tabs line up by prepending a tab." -msgstr "" -"-T --initial-tab Einrückungen durch vorangestellte Tabulatoren erzeugen." - -#: src/diff.c:890 -msgid "-r --recursive Recursively compare any subdirectories found." -msgstr "-r --recursive Rekursiv alle Unterverzeichnisse vergleichen." - -#: src/diff.c:891 -msgid "-N --new-file Treat absent files as empty." -msgstr "-N --new-file Fehlende Dateien als leer betrachten." - -#: src/diff.c:892 -msgid "--unidirectional-new-file Treat absent first files as empty." -msgstr "" -"--unidirectional-new-file Die ersten fehlenden Dateien als leer betrachten." - -#: src/diff.c:893 -msgid "-s --report-identical-files Report when two files are the same." -msgstr "-s --report-identical-files Meldung, wenn zwei Dateien gleich sind." - -#: src/diff.c:894 -msgid "-x PAT --exclude=PAT Exclude files that match PAT." -msgstr "" -"-x MUSTER --exclude=MUSTER Dateien, die auf MUSTER passen, ausschließen." - -#: src/diff.c:895 -msgid "" -"-X FILE --exclude-from=FILE Exclude files that match any pattern in FILE." -msgstr "" -"-X DATEI --exclude-from=DATEI Dateien überspringen, die auf eines der " -"Muster in DATEI passen." - -#: src/diff.c:896 -msgid "" -"-S FILE --starting-file=FILE Start with FILE when comparing directories." -msgstr "" -"-S DATEI --starting-file=DATEI Beim Verzeichnisvergleich mit DATEI " -"beginnen." - -#: src/diff.c:897 -msgid "" -"--from-file=FILE1 Compare FILE1 to all operands. FILE1 can be a directory." -msgstr "" -"--from-file=DATEI1 DATEI1 mit allen Operanden vergleichen.\n" -" DATEI1 kann ein Verzeichnis sein." - -#: src/diff.c:898 -msgid "" -"--to-file=FILE2 Compare all operands to FILE2. FILE2 can be a directory." -msgstr "" -"--to-file=DATEI2 Alle Operanden mit DATEI2 vergleichen.\n" -" DATEI2 kann ein Verzeichnis sein." - -#: src/diff.c:900 -msgid "--horizon-lines=NUM Keep NUM lines of the common prefix and suffix." -msgstr "" -"--horizon-lines=ZAHL Behalte ZAHL Zeilen mit gemeinsamen Pre- und Suffix." - -#: src/diff.c:901 src/sdiff.c:200 -msgid "-d --minimal Try hard to find a smaller set of changes." -msgstr "" -"-d --minimal Aufwendig nach einem kleineren Satz von Änderungen suchen." - -#: src/diff.c:902 -msgid "" -"--speed-large-files Assume large files and many scattered small changes." -msgstr "" -"--speed-large-files Es werden große Dateien und viele Änderungen vermutet." - -#: src/diff.c:907 -msgid "" -"FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'." -msgstr "" -"DATEIEN sind 'DATEI1 DATEI2' oder 'VERZ1 VERZ2' oder \"VERZ DATEI...\" \n" -"oder \"DATEI... VERZ;" - -#: src/diff.c:908 -msgid "" -"If --from-file or --to-file is given, there are no restrictions on FILES." -msgstr "" -"Wenn --from-file oder --to-file angegeben werden, gibt es keine \n" -"Einschränkungen für DATEIEN." - -#: src/diff.c:909 src/diff3.c:474 src/sdiff.c:222 -msgid "If a FILE is `-', read standard input." -msgstr "Wenn DATEI »-« ist, von der Standardeingabe lesen." - -#: src/diff.c:920 -#, c-format -msgid "Usage: %s [OPTION]... FILES\n" -msgstr "Aufruf: %s [OPTION]... DATEIEN\n" - -#: src/diff.c:949 -#, c-format -msgid "conflicting %s option value `%s'" -msgstr "Widersprüchlicher Optionswert %s für »%s«." - -#: src/diff.c:962 -msgid "conflicting output style options" -msgstr "Widersprüchliche Optionenen für den Ausgabestil." - -#: src/diff.c:976 -msgid "regular empty file" -msgstr "Normale leere Datei." - -#: src/diff.c:976 -msgid "regular file" -msgstr "Normale Datei." - -#: src/diff.c:978 -msgid "directory" -msgstr "Verzeichnis" - -#: src/diff.c:981 -msgid "block special file" -msgstr "Blockgerät" - -#: src/diff.c:984 -msgid "character special file" -msgstr "Zeichenorientiertes Gerät" - -#: src/diff.c:987 -msgid "fifo" -msgstr "fifo" - -#: src/diff.c:991 -msgid "socket" -msgstr "Socket." - -#: src/diff.c:994 -msgid "message queue" -msgstr "Nachrichtenschlange (»message queue«)" - -#: src/diff.c:997 -msgid "semaphore" -msgstr "Semaphore." - -#: src/diff.c:1000 -msgid "shared memory object" -msgstr "Shared-Memory-Objekt." - -# XXX was ist das? -#: src/diff.c:1003 -msgid "typed memory object" -msgstr "Typisiertes Speicherobjekt." - -#: src/diff.c:1006 -msgid "weird file" -msgstr "Seltsame Datei." - -#: src/diff.c:1070 src/diff.c:1256 -#, c-format -msgid "Only in %s: %s\n" -msgstr "Nur in %s: %s.\n" - -#: src/diff.c:1193 -msgid "cannot compare `-' to a directory" -msgstr "»-« kann nicht mit Verzeichnis verglichen werden." - -#: src/diff.c:1220 -msgid "-D option not supported with directories" -msgstr "Option -D nicht unterstützt bei Verzeichnissen" - -#: src/diff.c:1229 -#, c-format -msgid "Common subdirectories: %s and %s\n" -msgstr "Gemeinsame Unterverzeichnisse: %s und %s.\n" - -#: src/diff.c:1266 -#, c-format -msgid "File %s is a %s while file %s is a %s\n" -msgstr "Datei %s ist ein %s während Datei %s ein %s ist.\n" - -#: src/diff.c:1345 -#, c-format -msgid "Files %s and %s are identical\n" -msgstr "Dateien %s und %s sind identisch.\n" - -#: src/diff3.c:26 -msgid "Written by Randy Smith." -msgstr "Geschrieben von Randy Smith." - -#: src/diff3.c:328 -msgid "incompatible options" -msgstr "Inkompatible Optionen." - -#: src/diff3.c:368 -msgid "`-' specified for more than one input file" -msgstr "»-« für mehr als eine Eingabedatei angegeben." - -#: src/diff3.c:408 src/diff3.c:1232 src/diff3.c:1645 src/diff3.c:1700 -#: src/sdiff.c:305 src/sdiff.c:879 src/sdiff.c:890 -msgid "read failed" -msgstr "Lesefehler." - -#: src/diff3.c:441 -msgid "-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE." -msgstr "" -"-e --ed Nicht in DEINEDATEI übernommene Änderungen aus ALTEDATEI in " -"MEINEDATEI abspeichern." - -#: src/diff3.c:442 -msgid "-E --show-overlap Output unmerged changes, bracketing conflicts." -msgstr "" -"-E --show-overlap Ungemische Änderungen anzeigen, Konflikte in Klammern." - -#: src/diff3.c:443 -msgid "-A --show-all Output all changes, bracketing conflicts." -msgstr "-A --show-all Alle Änderungen ausgeben, Konflikte in Klammern." - -#: src/diff3.c:444 -msgid "-x --overlap-only Output overlapping changes." -msgstr "-x --overlap-only Überlappende Änderungen ausgeben." - -#: src/diff3.c:445 -msgid "-X Output overlapping changes, bracketing them." -msgstr "-X Überlappende Änderungen geklammert ausgeben." - -#: src/diff3.c:446 -msgid "-3 --easy-only Output unmerged nonoverlapping changes." -msgstr "" -"-3, --easy-only Nicht-zusammengeführte (`unmerged') nichtüberlappende " -"Änderungen ausgeben." - -#: src/diff3.c:448 -msgid "-m --merge Output merged file instead of ed script (default -A)." -msgstr "" -"-m --merge Zusammengeführte Datei anstelle von ed-Skript ausgeben (Vorgabe " -"-A)." - -#: src/diff3.c:449 -msgid "-L LABEL --label=LABEL Use LABEL instead of file name." -msgstr "-L LABEL --label=LABEL LABEL anstelle des Dateinamens verwenden." - -#: src/diff3.c:450 -msgid "-i Append `w' and `q' commands to ed scripts." -msgstr "-i An ed-Skripte »w«- und »q«-Kommandos anhängen." - -#: src/diff3.c:453 src/sdiff.c:202 -msgid "--diff-program=PROGRAM Use PROGRAM to compare files." -msgstr "" -"--diff-program=PROGRAMM PROGRAMM zum Vergleichen von Dateien verwenden." - -#: src/diff3.c:465 -#, c-format -msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n" -msgstr "Benutzung: %s [OPTION]... MEINEDATEI ALTEDATEI DEINEDATEI\n" - -#: src/diff3.c:467 -msgid "Compare three files line by line." -msgstr "Drei Dateien Zeile für Zeile vergleichen." - -#: src/diff3.c:673 -msgid "internal error: screwup in format of diff blocks" -msgstr "Interner Fehler: Format für diff-Blöcke ist durcheinander." - -#: src/diff3.c:971 -#, c-format -msgid "%s: diff failed: " -msgstr "%s: »diff« ist gescheitert: " - -#: src/diff3.c:993 -msgid "internal error: invalid diff type in process_diff" -msgstr "Interner Fehler: Ungültiger diff-Typ in process_diff." - -#: src/diff3.c:1018 -msgid "invalid diff format; invalid change separator" -msgstr "Ungültiges Diff-Format; ungültiger Änderungstrenner." - -#: src/diff3.c:1242 -msgid "invalid diff format; incomplete last line" -msgstr "Ungültiges Diff-Format; felende letzte Zeile." - -#: src/diff3.c:1265 src/sdiff.c:273 -#, c-format -msgid "subsidiary program `%s' not executable" -msgstr "Unterprogramm »%s« ist nicht ausführbar." - -#: src/diff3.c:1268 src/sdiff.c:276 src/util.c:298 -#, c-format -msgid "subsidiary program `%s' not found" -msgstr "Unterprogramm »%s« nicht gefunden." - -#: src/diff3.c:1272 src/sdiff.c:268 src/util.c:301 -#, c-format -msgid "subsidiary program `%s' failed" -msgstr "Unterprogramm »%s« schlug fehl." - -#: src/diff3.c:1294 -msgid "invalid diff format; incorrect leading line chars" -msgstr "Ungültiges Diff-Format; inkorrektes Zeichen in führender Zeile" - -#: src/diff3.c:1370 -msgid "internal error: invalid diff type passed to output" -msgstr "Interner Fehler: Ungültiger diff-Typ an Ausgabe übergeben." - -#: src/diff3.c:1647 src/diff3.c:1704 -msgid "input file shrank" -msgstr "Eingabedatei schrumpfte." - -#: src/dir.c:162 -#, c-format -msgid "cannot compare file names `%s' and `%s'" -msgstr "Die Dateinamen »%s« und »%s« können nicht verglichen werden." - -#: src/sdiff.c:35 -msgid "Written by Thomas Lord." -msgstr "Geschrieben von Thomas Lord." - -#: src/sdiff.c:183 -msgid "-o FILE --output=FILE Operate interactively, sending output to FILE." -msgstr "" -"-o DATEI --output=DATEI Interaktiv arbeiten, Ausgabe in DATEI speichern." - -#: src/sdiff.c:185 -msgid "-i --ignore-case Consider upper- and lower-case to be the same." -msgstr "" -"-i --ignore-case Nicht zwischen Groß- und Kleinschreibung unterscheiden." - -#: src/sdiff.c:188 -msgid "-W --ignore-all-space Ignore all white space." -msgstr "-W -ignore-all-space Leerraum ignorieren." - -#: src/sdiff.c:194 -msgid "-w NUM --width=NUM Output at most NUM (default 130) columns per line." -msgstr "-w ZAHL --width=ZAHL Maximal ZAHL Zeichen pro Zeile (Vorgabe: 130)." - -#: src/sdiff.c:195 -msgid "-l --left-column Output only the left column of common lines." -msgstr "-l --left-column Nur linke Spalte der gemeinsamen Zeilen ausgeben." - -#: src/sdiff.c:196 -msgid "-s --suppress-common-lines Do not output common lines." -msgstr "-s --suppress-common-lines Keine gemeinsamen Zeilen ausgeben." - -#: src/sdiff.c:201 -msgid "" -"-H --speed-large-files Assume large files and many scattered small changes." -msgstr "" -"-H --speed-large-files Es werden große Dateien und viele Änderungen " -"vermutet." - -#: src/sdiff.c:214 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 FILE2\n" -msgstr "Aufruf: %s [OPTION]... DATEI1 DATEI2\n" - -# XXX Was ist das? -#: src/sdiff.c:215 -msgid "Side-by-side merge of file differences." -msgstr "" -"Nebeneinanderstehenden Zusammenbringen (side-by-side merge) der " -"Dateiunterschiede." - -#: src/sdiff.c:327 -msgid "cannot interactively merge standard input" -msgstr "Kann nicht die Standardeingabe interaktiv mischen." - -#: src/sdiff.c:588 -msgid "both files to be compared are directories" -msgstr "Beide zu vergleichenden Dateien sind Verzeichnisse." - -#: src/sdiff.c:853 -msgid "" -"ed:\tEdit then use both versions, each decorated with a header.\n" -"eb:\tEdit then use both versions.\n" -"el:\tEdit then use the left version.\n" -"er:\tEdit then use the right version.\n" -"e:\tEdit a new version.\n" -"l:\tUse the left version.\n" -"r:\tUse the right version.\n" -"s:\tSilently include common lines.\n" -"v:\tVerbosely include common lines.\n" -"q:\tQuit.\n" -msgstr "" -"ed:\\tEdieren, dann beide Versionen benutzen, jede mit einem Kopf " -"dekoriert.\n" -"eb:\\tEdieren, dann beide Versionen benutzen.\n" -"el:\\tEdieren, dann linke Version benutzen.\n" -"er:\\tEdieren, dann rechte Version benutzen.\n" -"e:\\t Neue Version edieren.\n" -"l:\\tLinke Version benutzen.\n" -"r:\\tRechte Version benutzen.\n" -"s:\\tSchweigend gemeinsame Zeilen übernehmen.\n" -"v:\\tLauthals gemeinsame Zeilen übernehmen.\n" -"q:\\tBeenden.\n" - -#~ msgid "--inhibit-hunk-merge Do not merge hunks." -#~ msgstr "--inhibit-hunk-merge Blöcke (hunks) nicht vermischen." - -#~ msgid "" -#~ "SKIP values may be followed by the following multiplicative suffixes:\n" -#~ msgstr "nicht gefunden" - -#~ msgid "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -#~ msgstr "kB 1000, K 1024, MB 1.000.000, M 1.048.576,\n" - -#~ msgid "GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y.\n" -#~ msgstr "" -#~ "GB 1.000.000.000, G 1.073.741.824, und so weiter für T, P, E, Z, Y.\n" - -#~ msgid "Report bugs to .\n" -#~ msgstr "Fehlerberichte bitte an .\n" - -#~ msgid "context length specified twice" -#~ msgstr "Kontextlänge zweimal angegeben." - -#~ msgid "multiple `--from-file' options" -#~ msgstr "mehrere Optionen '--from-file'." - -#~ msgid "multiple `--to-file' options" -#~ msgstr "mehrere Optionen '--to-file'." - -#~ msgid "regular empty executable file" -#~ msgstr "Normale leere ausführbare Datei." - -#~ msgid "regular executable file" -#~ msgstr "Normale ausführbare Datei." - -#~ msgid "If a FILE is `-', read standard input.\n" -#~ msgstr "Wenn DATEI »-« ist, von der Standardeingabe lesen.\n" diff --git a/gnu/dist/diffutils/po/diffutils.pot b/gnu/dist/diffutils/po/diffutils.pot deleted file mode 100644 index 0325b1e1926..00000000000 --- a/gnu/dist/diffutils/po/diffutils.pot +++ /dev/null @@ -1,841 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2002-04-05 14:10-0800\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" - -#: lib/c-stack.c:188 -msgid "program error" -msgstr "" - -#: lib/c-stack.c:189 -msgid "stack overflow" -msgstr "" - -#: lib/error.c:128 lib/error.c:156 -msgid "Unknown system error" -msgstr "" - -#: lib/freesoft.c:27 -msgid "" -"This program comes with NO WARRANTY, to the extent permitted by law.\n" -"You may redistribute copies of this program\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING." -msgstr "" - -#: lib/getopt.c:693 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "" - -#: lib/getopt.c:718 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "" - -#: lib/getopt.c:723 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "" - -#: lib/getopt.c:741 lib/getopt.c:914 -#, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "" - -#: lib/getopt.c:770 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "" - -#: lib/getopt.c:774 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "" - -#: lib/getopt.c:800 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "" - -#: lib/getopt.c:803 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "" - -#: lib/getopt.c:833 lib/getopt.c:963 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "" - -#: lib/getopt.c:880 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "" - -#: lib/getopt.c:898 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "" - -#: lib/regex.c:1367 -msgid "Success" -msgstr "" - -#: lib/regex.c:1370 -msgid "No match" -msgstr "" - -#: lib/regex.c:1373 -msgid "Invalid regular expression" -msgstr "" - -#: lib/regex.c:1376 -msgid "Invalid collation character" -msgstr "" - -#: lib/regex.c:1379 -msgid "Invalid character class name" -msgstr "" - -#: lib/regex.c:1382 -msgid "Trailing backslash" -msgstr "" - -#: lib/regex.c:1385 -msgid "Invalid back reference" -msgstr "" - -#: lib/regex.c:1388 -msgid "Unmatched [ or [^" -msgstr "" - -#: lib/regex.c:1391 -msgid "Unmatched ( or \\(" -msgstr "" - -#: lib/regex.c:1394 -msgid "Unmatched \\{" -msgstr "" - -#: lib/regex.c:1397 -msgid "Invalid content of \\{\\}" -msgstr "" - -#: lib/regex.c:1400 -msgid "Invalid range end" -msgstr "" - -#: lib/regex.c:1403 -msgid "Memory exhausted" -msgstr "" - -#: lib/regex.c:1406 -msgid "Invalid preceding regular expression" -msgstr "" - -#: lib/regex.c:1409 -msgid "Premature end of regular expression" -msgstr "" - -#: lib/regex.c:1412 -msgid "Regular expression too big" -msgstr "" - -#: lib/regex.c:1415 -msgid "Unmatched ) or \\)" -msgstr "" - -#: lib/regex.c:8034 -msgid "No previous regular expression" -msgstr "" - -#: lib/xmalloc.c:63 -msgid "memory exhausted" -msgstr "" - -#: src/analyze.c:809 src/diff.c:1283 -#, c-format -msgid "Files %s and %s differ\n" -msgstr "" - -#: src/analyze.c:812 -#, c-format -msgid "Binary files %s and %s differ\n" -msgstr "" - -#: src/analyze.c:1058 src/diff3.c:1413 src/util.c:526 -msgid "No newline at end of file" -msgstr "" - -#: src/cmp.c:43 -msgid "Written by Torbjorn Granlund and David MacKenzie." -msgstr "" - -#: src/cmp.c:118 src/diff.c:817 src/diff3.c:427 src/sdiff.c:168 -#, c-format -msgid "Try `%s --help' for more information." -msgstr "" - -#: src/cmp.c:137 -#, c-format -msgid "invalid --ignore-initial value `%s'" -msgstr "" - -#: src/cmp.c:146 -msgid "options -l and -s are incompatible" -msgstr "" - -#: src/cmp.c:154 src/diff.c:826 src/diff3.c:435 src/sdiff.c:177 -#: src/sdiff.c:313 src/sdiff.c:320 src/sdiff.c:910 src/util.c:194 -#: src/util.c:286 src/util.c:293 -msgid "write failed" -msgstr "" - -#: src/cmp.c:156 src/diff.c:828 src/diff.c:1354 src/diff3.c:437 -#: src/sdiff.c:179 -msgid "standard output" -msgstr "" - -#: src/cmp.c:160 -msgid "-b --print-bytes Print differing bytes." -msgstr "" - -#: src/cmp.c:161 -msgid "-i SKIP --ignore-initial=SKIP Skip the first SKIP bytes of input." -msgstr "" - -#: src/cmp.c:162 -msgid "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2" -msgstr "" - -#: src/cmp.c:163 -msgid "" -" Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2." -msgstr "" - -#: src/cmp.c:164 -msgid "-l --verbose Output byte numbers and values of all differing bytes." -msgstr "" - -#: src/cmp.c:165 -msgid "-n LIMIT --bytes=LIMIT Compare at most LIMIT bytes." -msgstr "" - -#: src/cmp.c:166 -msgid "-s --quiet --silent Output nothing; yield exit status only." -msgstr "" - -#: src/cmp.c:167 src/diff.c:904 src/diff3.c:455 src/sdiff.c:204 -msgid "-v --version Output version info." -msgstr "" - -#: src/cmp.c:168 src/diff.c:905 src/diff3.c:456 src/sdiff.c:205 -msgid "--help Output this help." -msgstr "" - -#: src/cmp.c:177 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n" -msgstr "" - -#: src/cmp.c:179 -msgid "Compare two files byte by byte." -msgstr "" - -#: src/cmp.c:183 -msgid "SKIP1 and SKIP2 are the number of bytes to skip in each file." -msgstr "" - -#: src/cmp.c:184 -msgid "" -"SKIP values may be followed by the following multiplicative suffixes:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y." -msgstr "" - -#: src/cmp.c:187 -msgid "If a FILE is `-' or missing, read standard input." -msgstr "" - -#: src/cmp.c:188 src/diff.c:911 src/diff3.c:475 src/sdiff.c:223 -msgid "Report bugs to ." -msgstr "" - -#: src/cmp.c:231 -#, c-format -msgid "invalid --bytes value `%s'" -msgstr "" - -#: src/cmp.c:258 src/diff.c:734 src/diff3.c:333 src/sdiff.c:558 -#, c-format -msgid "missing operand after `%s'" -msgstr "" - -#: src/cmp.c:270 src/diff.c:736 src/diff3.c:335 src/sdiff.c:560 -#, c-format -msgid "extra operand `%s'" -msgstr "" - -#: src/cmp.c:477 -#, c-format -msgid "%s %s differ: byte %s, line %s\n" -msgstr "" - -#: src/cmp.c:495 -#, c-format -msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n" -msgstr "" - -#: src/cmp.c:543 -#, c-format -msgid "cmp: EOF on %s\n" -msgstr "" - -#: src/diff.c:41 -msgid "" -"Written by Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman, and Len Tower." -msgstr "" - -#: src/diff.c:322 -#, c-format -msgid "invalid context length `%s'" -msgstr "" - -#: src/diff.c:405 -msgid "pagination not supported on this host" -msgstr "" - -#: src/diff.c:420 src/diff3.c:315 -msgid "too many file label options" -msgstr "" - -#: src/diff.c:498 -#, c-format -msgid "invalid width `%s'" -msgstr "" - -#: src/diff.c:502 -msgid "conflicting width options" -msgstr "" - -#: src/diff.c:526 -#, c-format -msgid "invalid horizon length `%s'" -msgstr "" - -#: src/diff.c:629 -#, c-format -msgid "`-%ld' option is obsolete; use `-%c %ld'" -msgstr "" - -#: src/diff.c:641 -#, c-format -msgid "`-%ld' option is obsolete; omit it" -msgstr "" - -#: src/diff.c:709 -msgid "--from-file and --to-file both specified" -msgstr "" - -#: src/diff.c:832 -msgid "Compare files line by line." -msgstr "" - -#: src/diff.c:834 -msgid "-i --ignore-case Ignore case differences in file contents." -msgstr "" - -#: src/diff.c:835 -msgid "--ignore-file-name-case Ignore case when comparing file names." -msgstr "" - -#: src/diff.c:836 -msgid "--no-ignore-file-name-case Consider case when comparing file names." -msgstr "" - -#: src/diff.c:837 src/sdiff.c:186 -msgid "-E --ignore-tab-expansion Ignore changes due to tab expansion." -msgstr "" - -#: src/diff.c:838 src/sdiff.c:187 -msgid "-b --ignore-space-change Ignore changes in the amount of white space." -msgstr "" - -#: src/diff.c:839 -msgid "-w --ignore-all-space Ignore all white space." -msgstr "" - -#: src/diff.c:840 src/sdiff.c:189 -msgid "-B --ignore-blank-lines Ignore changes whose lines are all blank." -msgstr "" - -#: src/diff.c:841 src/sdiff.c:190 -msgid "" -"-I RE --ignore-matching-lines=RE Ignore changes whose lines all match RE." -msgstr "" - -#: src/diff.c:842 src/sdiff.c:191 -msgid "--strip-trailing-cr Strip trailing carriage return on input." -msgstr "" - -#: src/diff.c:844 -msgid "--binary Read and write data in binary mode." -msgstr "" - -#: src/diff.c:846 src/diff3.c:451 src/sdiff.c:192 -msgid "-a --text Treat all files as text." -msgstr "" - -#: src/diff.c:848 -msgid "" -"-c -C NUM --context[=NUM] Output NUM (default 3) lines of copied " -"context.\n" -"-u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified " -"context.\n" -" --label LABEL Use LABEL instead of file name.\n" -" -p --show-c-function Show which C function each change is in.\n" -" -F RE --show-function-line=RE Show the most recent line matching RE." -msgstr "" - -#: src/diff.c:853 -msgid "-q --brief Output only whether files differ." -msgstr "" - -#: src/diff.c:854 -msgid "-e --ed Output an ed script." -msgstr "" - -#: src/diff.c:855 -msgid "--normal Output a normal diff." -msgstr "" - -#: src/diff.c:856 -msgid "-n --rcs Output an RCS format diff." -msgstr "" - -#: src/diff.c:857 -msgid "" -"-y --side-by-side Output in two columns.\n" -" -W NUM --width=NUM Output at most NUM (default 130) print columns.\n" -" --left-column Output only the left column of common lines.\n" -" --suppress-common-lines Do not output common lines." -msgstr "" - -#: src/diff.c:861 -msgid "-D NAME --ifdef=NAME Output merged file to show `#ifdef NAME' diffs." -msgstr "" - -#: src/diff.c:862 -msgid "" -"--GTYPE-group-format=GFMT Similar, but format GTYPE input groups with GFMT." -msgstr "" - -#: src/diff.c:863 -msgid "--line-format=LFMT Similar, but format all input lines with LFMT." -msgstr "" - -#: src/diff.c:864 -msgid "" -"--LTYPE-line-format=LFMT Similar, but format LTYPE input lines with LFMT." -msgstr "" - -#: src/diff.c:865 -msgid " LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'." -msgstr "" - -#: src/diff.c:866 -msgid "" -" GFMT may contain:\n" -" %< lines from FILE1\n" -" %> lines from FILE2\n" -" %= lines common to FILE1 and FILE2\n" -" %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" -" LETTERs are as follows for new group, lower case for old group:\n" -" F first line number\n" -" L last line number\n" -" N number of lines = L-F+1\n" -" E F-1\n" -" M L+1" -msgstr "" - -#: src/diff.c:877 -msgid "" -" LFMT may contain:\n" -" %L contents of line\n" -" %l contents of line, excluding any trailing newline\n" -" %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number" -msgstr "" - -#: src/diff.c:881 -msgid "" -" Either GFMT or LFMT may contain:\n" -" %% %\n" -" %c'C' the single character C\n" -" %c'\\OOO' the character with octal code OOO" -msgstr "" - -#: src/diff.c:886 -msgid "-l --paginate Pass the output through `pr' to paginate it." -msgstr "" - -#: src/diff.c:887 src/sdiff.c:198 -msgid "-t --expand-tabs Expand tabs to spaces in output." -msgstr "" - -#: src/diff.c:888 src/diff3.c:452 -msgid "-T --initial-tab Make tabs line up by prepending a tab." -msgstr "" - -#: src/diff.c:890 -msgid "-r --recursive Recursively compare any subdirectories found." -msgstr "" - -#: src/diff.c:891 -msgid "-N --new-file Treat absent files as empty." -msgstr "" - -#: src/diff.c:892 -msgid "--unidirectional-new-file Treat absent first files as empty." -msgstr "" - -#: src/diff.c:893 -msgid "-s --report-identical-files Report when two files are the same." -msgstr "" - -#: src/diff.c:894 -msgid "-x PAT --exclude=PAT Exclude files that match PAT." -msgstr "" - -#: src/diff.c:895 -msgid "" -"-X FILE --exclude-from=FILE Exclude files that match any pattern in FILE." -msgstr "" - -#: src/diff.c:896 -msgid "" -"-S FILE --starting-file=FILE Start with FILE when comparing directories." -msgstr "" - -#: src/diff.c:897 -msgid "" -"--from-file=FILE1 Compare FILE1 to all operands. FILE1 can be a directory." -msgstr "" - -#: src/diff.c:898 -msgid "" -"--to-file=FILE2 Compare all operands to FILE2. FILE2 can be a directory." -msgstr "" - -#: src/diff.c:900 -msgid "--horizon-lines=NUM Keep NUM lines of the common prefix and suffix." -msgstr "" - -#: src/diff.c:901 src/sdiff.c:200 -msgid "-d --minimal Try hard to find a smaller set of changes." -msgstr "" - -#: src/diff.c:902 -msgid "" -"--speed-large-files Assume large files and many scattered small changes." -msgstr "" - -#: src/diff.c:907 -msgid "" -"FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'." -msgstr "" - -#: src/diff.c:908 -msgid "" -"If --from-file or --to-file is given, there are no restrictions on FILES." -msgstr "" - -#: src/diff.c:909 src/diff3.c:474 src/sdiff.c:222 -msgid "If a FILE is `-', read standard input." -msgstr "" - -#: src/diff.c:920 -#, c-format -msgid "Usage: %s [OPTION]... FILES\n" -msgstr "" - -#: src/diff.c:949 -#, c-format -msgid "conflicting %s option value `%s'" -msgstr "" - -#: src/diff.c:962 -msgid "conflicting output style options" -msgstr "" - -#: src/diff.c:976 -msgid "regular empty file" -msgstr "" - -#: src/diff.c:976 -msgid "regular file" -msgstr "" - -#: src/diff.c:978 -msgid "directory" -msgstr "" - -#: src/diff.c:981 -msgid "block special file" -msgstr "" - -#: src/diff.c:984 -msgid "character special file" -msgstr "" - -#: src/diff.c:987 -msgid "fifo" -msgstr "" - -#: src/diff.c:991 -msgid "socket" -msgstr "" - -#: src/diff.c:994 -msgid "message queue" -msgstr "" - -#: src/diff.c:997 -msgid "semaphore" -msgstr "" - -#: src/diff.c:1000 -msgid "shared memory object" -msgstr "" - -#: src/diff.c:1003 -msgid "typed memory object" -msgstr "" - -#: src/diff.c:1006 -msgid "weird file" -msgstr "" - -#: src/diff.c:1070 src/diff.c:1256 -#, c-format -msgid "Only in %s: %s\n" -msgstr "" - -#: src/diff.c:1193 -msgid "cannot compare `-' to a directory" -msgstr "" - -#: src/diff.c:1220 -msgid "-D option not supported with directories" -msgstr "" - -#: src/diff.c:1229 -#, c-format -msgid "Common subdirectories: %s and %s\n" -msgstr "" - -#: src/diff.c:1266 -#, c-format -msgid "File %s is a %s while file %s is a %s\n" -msgstr "" - -#: src/diff.c:1345 -#, c-format -msgid "Files %s and %s are identical\n" -msgstr "" - -#: src/diff3.c:26 -msgid "Written by Randy Smith." -msgstr "" - -#: src/diff3.c:328 -msgid "incompatible options" -msgstr "" - -#: src/diff3.c:368 -msgid "`-' specified for more than one input file" -msgstr "" - -#: src/diff3.c:408 src/diff3.c:1232 src/diff3.c:1645 src/diff3.c:1700 -#: src/sdiff.c:305 src/sdiff.c:879 src/sdiff.c:890 -msgid "read failed" -msgstr "" - -#: src/diff3.c:441 -msgid "-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE." -msgstr "" - -#: src/diff3.c:442 -msgid "-E --show-overlap Output unmerged changes, bracketing conflicts." -msgstr "" - -#: src/diff3.c:443 -msgid "-A --show-all Output all changes, bracketing conflicts." -msgstr "" - -#: src/diff3.c:444 -msgid "-x --overlap-only Output overlapping changes." -msgstr "" - -#: src/diff3.c:445 -msgid "-X Output overlapping changes, bracketing them." -msgstr "" - -#: src/diff3.c:446 -msgid "-3 --easy-only Output unmerged nonoverlapping changes." -msgstr "" - -#: src/diff3.c:448 -msgid "-m --merge Output merged file instead of ed script (default -A)." -msgstr "" - -#: src/diff3.c:449 -msgid "-L LABEL --label=LABEL Use LABEL instead of file name." -msgstr "" - -#: src/diff3.c:450 -msgid "-i Append `w' and `q' commands to ed scripts." -msgstr "" - -#: src/diff3.c:453 src/sdiff.c:202 -msgid "--diff-program=PROGRAM Use PROGRAM to compare files." -msgstr "" - -#: src/diff3.c:465 -#, c-format -msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n" -msgstr "" - -#: src/diff3.c:467 -msgid "Compare three files line by line." -msgstr "" - -#: src/diff3.c:673 -msgid "internal error: screwup in format of diff blocks" -msgstr "" - -#: src/diff3.c:971 -#, c-format -msgid "%s: diff failed: " -msgstr "" - -#: src/diff3.c:993 -msgid "internal error: invalid diff type in process_diff" -msgstr "" - -#: src/diff3.c:1018 -msgid "invalid diff format; invalid change separator" -msgstr "" - -#: src/diff3.c:1242 -msgid "invalid diff format; incomplete last line" -msgstr "" - -#: src/diff3.c:1265 src/sdiff.c:273 -#, c-format -msgid "subsidiary program `%s' not executable" -msgstr "" - -#: src/diff3.c:1268 src/sdiff.c:276 src/util.c:298 -#, c-format -msgid "subsidiary program `%s' not found" -msgstr "" - -#: src/diff3.c:1272 src/sdiff.c:268 src/util.c:301 -#, c-format -msgid "subsidiary program `%s' failed" -msgstr "" - -#: src/diff3.c:1294 -msgid "invalid diff format; incorrect leading line chars" -msgstr "" - -#: src/diff3.c:1370 -msgid "internal error: invalid diff type passed to output" -msgstr "" - -#: src/diff3.c:1647 src/diff3.c:1704 -msgid "input file shrank" -msgstr "" - -#: src/dir.c:162 -#, c-format -msgid "cannot compare file names `%s' and `%s'" -msgstr "" - -#: src/sdiff.c:35 -msgid "Written by Thomas Lord." -msgstr "" - -#: src/sdiff.c:183 -msgid "-o FILE --output=FILE Operate interactively, sending output to FILE." -msgstr "" - -#: src/sdiff.c:185 -msgid "-i --ignore-case Consider upper- and lower-case to be the same." -msgstr "" - -#: src/sdiff.c:188 -msgid "-W --ignore-all-space Ignore all white space." -msgstr "" - -#: src/sdiff.c:194 -msgid "-w NUM --width=NUM Output at most NUM (default 130) columns per line." -msgstr "" - -#: src/sdiff.c:195 -msgid "-l --left-column Output only the left column of common lines." -msgstr "" - -#: src/sdiff.c:196 -msgid "-s --suppress-common-lines Do not output common lines." -msgstr "" - -#: src/sdiff.c:201 -msgid "" -"-H --speed-large-files Assume large files and many scattered small changes." -msgstr "" - -#: src/sdiff.c:214 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 FILE2\n" -msgstr "" - -#: src/sdiff.c:215 -msgid "Side-by-side merge of file differences." -msgstr "" - -#: src/sdiff.c:327 -msgid "cannot interactively merge standard input" -msgstr "" - -#: src/sdiff.c:588 -msgid "both files to be compared are directories" -msgstr "" - -#: src/sdiff.c:853 -msgid "" -"ed:\tEdit then use both versions, each decorated with a header.\n" -"eb:\tEdit then use both versions.\n" -"el:\tEdit then use the left version.\n" -"er:\tEdit then use the right version.\n" -"e:\tEdit a new version.\n" -"l:\tUse the left version.\n" -"r:\tUse the right version.\n" -"s:\tSilently include common lines.\n" -"v:\tVerbosely include common lines.\n" -"q:\tQuit.\n" -msgstr "" diff --git a/gnu/dist/diffutils/po/en@boldquot.header b/gnu/dist/diffutils/po/en@boldquot.header deleted file mode 100644 index fedb6a06d12..00000000000 --- a/gnu/dist/diffutils/po/en@boldquot.header +++ /dev/null @@ -1,25 +0,0 @@ -# All this catalog "translates" are quotation characters. -# The msgids must be ASCII and therefore cannot contain real quotation -# characters, only substitutes like grave accent (0x60), apostrophe (0x27) -# and double quote (0x22). These substitutes look strange; see -# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html -# -# This catalog translates grave accent (0x60) and apostrophe (0x27) to -# left single quotation mark (U+2018) and right single quotation mark (U+2019). -# It also translates pairs of apostrophe (0x27) to -# left single quotation mark (U+2018) and right single quotation mark (U+2019) -# and pairs of quotation mark (0x22) to -# left double quotation mark (U+201C) and right double quotation mark (U+201D). -# -# When output to an UTF-8 terminal, the quotation characters appear perfectly. -# When output to an ISO-8859-1 terminal, the single quotation marks are -# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to -# grave/acute accent (by libiconv), and the double quotation marks are -# transliterated to 0x22. -# When output to an ASCII terminal, the single quotation marks are -# transliterated to apostrophes, and the double quotation marks are -# transliterated to 0x22. -# -# This catalog furthermore displays the text between the quotation marks in -# bold face, assuming the VT100/XTerm escape sequences. -# diff --git a/gnu/dist/diffutils/po/en@quot.header b/gnu/dist/diffutils/po/en@quot.header deleted file mode 100644 index a9647fc35c3..00000000000 --- a/gnu/dist/diffutils/po/en@quot.header +++ /dev/null @@ -1,22 +0,0 @@ -# All this catalog "translates" are quotation characters. -# The msgids must be ASCII and therefore cannot contain real quotation -# characters, only substitutes like grave accent (0x60), apostrophe (0x27) -# and double quote (0x22). These substitutes look strange; see -# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html -# -# This catalog translates grave accent (0x60) and apostrophe (0x27) to -# left single quotation mark (U+2018) and right single quotation mark (U+2019). -# It also translates pairs of apostrophe (0x27) to -# left single quotation mark (U+2018) and right single quotation mark (U+2019) -# and pairs of quotation mark (0x22) to -# left double quotation mark (U+201C) and right double quotation mark (U+201D). -# -# When output to an UTF-8 terminal, the quotation characters appear perfectly. -# When output to an ISO-8859-1 terminal, the single quotation marks are -# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to -# grave/acute accent (by libiconv), and the double quotation marks are -# transliterated to 0x22. -# When output to an ASCII terminal, the single quotation marks are -# transliterated to apostrophes, and the double quotation marks are -# transliterated to 0x22. -# diff --git a/gnu/dist/diffutils/po/en_GB.gmo b/gnu/dist/diffutils/po/en_GB.gmo deleted file mode 100644 index 00aeb817310..00000000000 Binary files a/gnu/dist/diffutils/po/en_GB.gmo and /dev/null differ diff --git a/gnu/dist/diffutils/po/en_GB.po b/gnu/dist/diffutils/po/en_GB.po deleted file mode 100644 index 57d715ba075..00000000000 --- a/gnu/dist/diffutils/po/en_GB.po +++ /dev/null @@ -1,843 +0,0 @@ -# British English messages for GNU diffutils -# Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc. -# Paul Eggert , 1998 -# -msgid "" -msgstr "" -"Project-Id-Version: GNU diffutils 2.7.8\n" -"POT-Creation-Date: 2002-04-05 14:10-0800\n" -"PO-Revision-Date: 2002-02-27 23:01-0800\n" -"Last-Translator: Paul Eggert \n" -"Language-Team: English \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=US-ASCII\n" -"Content-Transfer-Encoding: 8bit\n" - -#: lib/c-stack.c:188 -msgid "program error" -msgstr "" - -#: lib/c-stack.c:189 -msgid "stack overflow" -msgstr "" - -#: lib/error.c:128 lib/error.c:156 -msgid "Unknown system error" -msgstr "" - -#: lib/freesoft.c:27 -msgid "" -"This program comes with NO WARRANTY, to the extent permitted by law.\n" -"You may redistribute copies of this program\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING." -msgstr "" - -#: lib/getopt.c:693 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "" - -#: lib/getopt.c:718 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "" - -#: lib/getopt.c:723 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "" - -#: lib/getopt.c:741 lib/getopt.c:914 -#, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "" - -# `Thou whoreson zed! Thou unnecessary letter!' -- Kent in _King Lear_ -#: lib/getopt.c:770 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: unrecognised option `--%s'\n" - -#: lib/getopt.c:774 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: unrecognised option `%c%s'\n" - -# POSIX requires the word "illegal" in the POSIX locale, but the error -# is not really against the law. This is not the POSIX locale, so fix -# the wording. -#: lib/getopt.c:800 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: unrecognised option `-%c'\n" - -#: lib/getopt.c:803 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "" - -#: lib/getopt.c:833 lib/getopt.c:963 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "" - -#: lib/getopt.c:880 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "" - -#: lib/getopt.c:898 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "" - -#: lib/regex.c:1367 -msgid "Success" -msgstr "" - -#: lib/regex.c:1370 -msgid "No match" -msgstr "" - -#: lib/regex.c:1373 -msgid "Invalid regular expression" -msgstr "" - -#: lib/regex.c:1376 -msgid "Invalid collation character" -msgstr "" - -#: lib/regex.c:1379 -msgid "Invalid character class name" -msgstr "" - -#: lib/regex.c:1382 -msgid "Trailing backslash" -msgstr "" - -#: lib/regex.c:1385 -msgid "Invalid back reference" -msgstr "" - -#: lib/regex.c:1388 -msgid "Unmatched [ or [^" -msgstr "" - -#: lib/regex.c:1391 -msgid "Unmatched ( or \\(" -msgstr "" - -#: lib/regex.c:1394 -msgid "Unmatched \\{" -msgstr "" - -#: lib/regex.c:1397 -msgid "Invalid content of \\{\\}" -msgstr "" - -#: lib/regex.c:1400 -msgid "Invalid range end" -msgstr "" - -#: lib/regex.c:1403 -msgid "Memory exhausted" -msgstr "" - -#: lib/regex.c:1406 -msgid "Invalid preceding regular expression" -msgstr "" - -#: lib/regex.c:1409 -msgid "Premature end of regular expression" -msgstr "" - -#: lib/regex.c:1412 -msgid "Regular expression too big" -msgstr "" - -#: lib/regex.c:1415 -msgid "Unmatched ) or \\)" -msgstr "" - -#: lib/regex.c:8034 -msgid "No previous regular expression" -msgstr "" - -#: lib/xmalloc.c:63 -msgid "memory exhausted" -msgstr "" - -#: src/analyze.c:809 src/diff.c:1283 -#, c-format -msgid "Files %s and %s differ\n" -msgstr "" - -#: src/analyze.c:812 -#, c-format -msgid "Binary files %s and %s differ\n" -msgstr "" - -#: src/analyze.c:1058 src/diff3.c:1413 src/util.c:526 -msgid "No newline at end of file" -msgstr "" - -#: src/cmp.c:43 -msgid "Written by Torbjorn Granlund and David MacKenzie." -msgstr "" - -#: src/cmp.c:118 src/diff.c:817 src/diff3.c:427 src/sdiff.c:168 -#, c-format -msgid "Try `%s --help' for more information." -msgstr "" - -#: src/cmp.c:137 -#, c-format -msgid "invalid --ignore-initial value `%s'" -msgstr "" - -#: src/cmp.c:146 -msgid "options -l and -s are incompatible" -msgstr "" - -#: src/cmp.c:154 src/diff.c:826 src/diff3.c:435 src/sdiff.c:177 -#: src/sdiff.c:313 src/sdiff.c:320 src/sdiff.c:910 src/util.c:194 -#: src/util.c:286 src/util.c:293 -msgid "write failed" -msgstr "" - -#: src/cmp.c:156 src/diff.c:828 src/diff.c:1354 src/diff3.c:437 -#: src/sdiff.c:179 -msgid "standard output" -msgstr "" - -#: src/cmp.c:160 -msgid "-b --print-bytes Print differing bytes." -msgstr "" - -#: src/cmp.c:161 -msgid "-i SKIP --ignore-initial=SKIP Skip the first SKIP bytes of input." -msgstr "" - -#: src/cmp.c:162 -msgid "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2" -msgstr "" - -#: src/cmp.c:163 -msgid "" -" Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2." -msgstr "" - -#: src/cmp.c:164 -msgid "-l --verbose Output byte numbers and values of all differing bytes." -msgstr "" - -#: src/cmp.c:165 -msgid "-n LIMIT --bytes=LIMIT Compare at most LIMIT bytes." -msgstr "" - -#: src/cmp.c:166 -msgid "-s --quiet --silent Output nothing; yield exit status only." -msgstr "" - -#: src/cmp.c:167 src/diff.c:904 src/diff3.c:455 src/sdiff.c:204 -msgid "-v --version Output version info." -msgstr "" - -#: src/cmp.c:168 src/diff.c:905 src/diff3.c:456 src/sdiff.c:205 -msgid "--help Output this help." -msgstr "" - -#: src/cmp.c:177 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n" -msgstr "" - -#: src/cmp.c:179 -msgid "Compare two files byte by byte." -msgstr "" - -#: src/cmp.c:183 -msgid "SKIP1 and SKIP2 are the number of bytes to skip in each file." -msgstr "" - -#: src/cmp.c:184 -msgid "" -"SKIP values may be followed by the following multiplicative suffixes:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y." -msgstr "" - -#: src/cmp.c:187 -msgid "If a FILE is `-' or missing, read standard input." -msgstr "" - -#: src/cmp.c:188 src/diff.c:911 src/diff3.c:475 src/sdiff.c:223 -msgid "Report bugs to ." -msgstr "" - -#: src/cmp.c:231 -#, c-format -msgid "invalid --bytes value `%s'" -msgstr "" - -#: src/cmp.c:258 src/diff.c:734 src/diff3.c:333 src/sdiff.c:558 -#, c-format -msgid "missing operand after `%s'" -msgstr "" - -#: src/cmp.c:270 src/diff.c:736 src/diff3.c:335 src/sdiff.c:560 -#, c-format -msgid "extra operand `%s'" -msgstr "" - -#: src/cmp.c:477 -#, c-format -msgid "%s %s differ: byte %s, line %s\n" -msgstr "" - -#: src/cmp.c:495 -#, c-format -msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n" -msgstr "" - -#: src/cmp.c:543 -#, c-format -msgid "cmp: EOF on %s\n" -msgstr "" - -#: src/diff.c:41 -msgid "" -"Written by Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman, and Len Tower." -msgstr "" - -#: src/diff.c:322 -#, c-format -msgid "invalid context length `%s'" -msgstr "" - -#: src/diff.c:405 -msgid "pagination not supported on this host" -msgstr "" - -#: src/diff.c:420 src/diff3.c:315 -msgid "too many file label options" -msgstr "" - -#: src/diff.c:498 -#, c-format -msgid "invalid width `%s'" -msgstr "" - -#: src/diff.c:502 -msgid "conflicting width options" -msgstr "" - -#: src/diff.c:526 -#, c-format -msgid "invalid horizon length `%s'" -msgstr "" - -#: src/diff.c:629 -#, c-format -msgid "`-%ld' option is obsolete; use `-%c %ld'" -msgstr "" - -#: src/diff.c:641 -#, c-format -msgid "`-%ld' option is obsolete; omit it" -msgstr "" - -#: src/diff.c:709 -msgid "--from-file and --to-file both specified" -msgstr "" - -#: src/diff.c:832 -msgid "Compare files line by line." -msgstr "" - -#: src/diff.c:834 -msgid "-i --ignore-case Ignore case differences in file contents." -msgstr "" - -#: src/diff.c:835 -msgid "--ignore-file-name-case Ignore case when comparing file names." -msgstr "" - -#: src/diff.c:836 -msgid "--no-ignore-file-name-case Consider case when comparing file names." -msgstr "" - -#: src/diff.c:837 src/sdiff.c:186 -msgid "-E --ignore-tab-expansion Ignore changes due to tab expansion." -msgstr "" - -#: src/diff.c:838 src/sdiff.c:187 -msgid "-b --ignore-space-change Ignore changes in the amount of white space." -msgstr "" - -#: src/diff.c:839 -msgid "-w --ignore-all-space Ignore all white space." -msgstr "" - -#: src/diff.c:840 src/sdiff.c:189 -msgid "-B --ignore-blank-lines Ignore changes whose lines are all blank." -msgstr "" - -#: src/diff.c:841 src/sdiff.c:190 -msgid "" -"-I RE --ignore-matching-lines=RE Ignore changes whose lines all match RE." -msgstr "" - -#: src/diff.c:842 src/sdiff.c:191 -msgid "--strip-trailing-cr Strip trailing carriage return on input." -msgstr "" - -#: src/diff.c:844 -msgid "--binary Read and write data in binary mode." -msgstr "" - -#: src/diff.c:846 src/diff3.c:451 src/sdiff.c:192 -msgid "-a --text Treat all files as text." -msgstr "" - -#: src/diff.c:848 -msgid "" -"-c -C NUM --context[=NUM] Output NUM (default 3) lines of copied " -"context.\n" -"-u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified " -"context.\n" -" --label LABEL Use LABEL instead of file name.\n" -" -p --show-c-function Show which C function each change is in.\n" -" -F RE --show-function-line=RE Show the most recent line matching RE." -msgstr "" - -#: src/diff.c:853 -msgid "-q --brief Output only whether files differ." -msgstr "" - -#: src/diff.c:854 -msgid "-e --ed Output an ed script." -msgstr "" - -#: src/diff.c:855 -msgid "--normal Output a normal diff." -msgstr "" - -#: src/diff.c:856 -msgid "-n --rcs Output an RCS format diff." -msgstr "" - -#: src/diff.c:857 -msgid "" -"-y --side-by-side Output in two columns.\n" -" -W NUM --width=NUM Output at most NUM (default 130) print columns.\n" -" --left-column Output only the left column of common lines.\n" -" --suppress-common-lines Do not output common lines." -msgstr "" - -#: src/diff.c:861 -msgid "-D NAME --ifdef=NAME Output merged file to show `#ifdef NAME' diffs." -msgstr "" - -#: src/diff.c:862 -msgid "" -"--GTYPE-group-format=GFMT Similar, but format GTYPE input groups with GFMT." -msgstr "" - -#: src/diff.c:863 -msgid "--line-format=LFMT Similar, but format all input lines with LFMT." -msgstr "" - -#: src/diff.c:864 -msgid "" -"--LTYPE-line-format=LFMT Similar, but format LTYPE input lines with LFMT." -msgstr "" - -#: src/diff.c:865 -msgid " LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'." -msgstr "" - -#: src/diff.c:866 -msgid "" -" GFMT may contain:\n" -" %< lines from FILE1\n" -" %> lines from FILE2\n" -" %= lines common to FILE1 and FILE2\n" -" %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" -" LETTERs are as follows for new group, lower case for old group:\n" -" F first line number\n" -" L last line number\n" -" N number of lines = L-F+1\n" -" E F-1\n" -" M L+1" -msgstr "" - -#: src/diff.c:877 -msgid "" -" LFMT may contain:\n" -" %L contents of line\n" -" %l contents of line, excluding any trailing newline\n" -" %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number" -msgstr "" - -#: src/diff.c:881 -msgid "" -" Either GFMT or LFMT may contain:\n" -" %% %\n" -" %c'C' the single character C\n" -" %c'\\OOO' the character with octal code OOO" -msgstr "" - -#: src/diff.c:886 -msgid "-l --paginate Pass the output through `pr' to paginate it." -msgstr "" - -#: src/diff.c:887 src/sdiff.c:198 -msgid "-t --expand-tabs Expand tabs to spaces in output." -msgstr "" - -#: src/diff.c:888 src/diff3.c:452 -msgid "-T --initial-tab Make tabs line up by prepending a tab." -msgstr "" - -#: src/diff.c:890 -msgid "-r --recursive Recursively compare any subdirectories found." -msgstr "" - -#: src/diff.c:891 -msgid "-N --new-file Treat absent files as empty." -msgstr "" - -#: src/diff.c:892 -msgid "--unidirectional-new-file Treat absent first files as empty." -msgstr "" - -#: src/diff.c:893 -msgid "-s --report-identical-files Report when two files are the same." -msgstr "" - -#: src/diff.c:894 -msgid "-x PAT --exclude=PAT Exclude files that match PAT." -msgstr "" - -#: src/diff.c:895 -msgid "" -"-X FILE --exclude-from=FILE Exclude files that match any pattern in FILE." -msgstr "" - -#: src/diff.c:896 -msgid "" -"-S FILE --starting-file=FILE Start with FILE when comparing directories." -msgstr "" - -#: src/diff.c:897 -msgid "" -"--from-file=FILE1 Compare FILE1 to all operands. FILE1 can be a directory." -msgstr "" - -#: src/diff.c:898 -msgid "" -"--to-file=FILE2 Compare all operands to FILE2. FILE2 can be a directory." -msgstr "" - -#: src/diff.c:900 -msgid "--horizon-lines=NUM Keep NUM lines of the common prefix and suffix." -msgstr "" - -#: src/diff.c:901 src/sdiff.c:200 -msgid "-d --minimal Try hard to find a smaller set of changes." -msgstr "" - -#: src/diff.c:902 -msgid "" -"--speed-large-files Assume large files and many scattered small changes." -msgstr "" - -#: src/diff.c:907 -msgid "" -"FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'." -msgstr "" - -#: src/diff.c:908 -msgid "" -"If --from-file or --to-file is given, there are no restrictions on FILES." -msgstr "" - -#: src/diff.c:909 src/diff3.c:474 src/sdiff.c:222 -msgid "If a FILE is `-', read standard input." -msgstr "" - -#: src/diff.c:920 -#, c-format -msgid "Usage: %s [OPTION]... FILES\n" -msgstr "" - -#: src/diff.c:949 -#, c-format -msgid "conflicting %s option value `%s'" -msgstr "" - -#: src/diff.c:962 -msgid "conflicting output style options" -msgstr "" - -#: src/diff.c:976 -msgid "regular empty file" -msgstr "" - -#: src/diff.c:976 -msgid "regular file" -msgstr "" - -#: src/diff.c:978 -msgid "directory" -msgstr "" - -#: src/diff.c:981 -msgid "block special file" -msgstr "" - -#: src/diff.c:984 -msgid "character special file" -msgstr "" - -#: src/diff.c:987 -msgid "fifo" -msgstr "" - -#: src/diff.c:991 -msgid "socket" -msgstr "" - -#: src/diff.c:994 -msgid "message queue" -msgstr "" - -#: src/diff.c:997 -msgid "semaphore" -msgstr "" - -#: src/diff.c:1000 -msgid "shared memory object" -msgstr "" - -#: src/diff.c:1003 -msgid "typed memory object" -msgstr "" - -#: src/diff.c:1006 -msgid "weird file" -msgstr "" - -#: src/diff.c:1070 src/diff.c:1256 -#, c-format -msgid "Only in %s: %s\n" -msgstr "" - -#: src/diff.c:1193 -msgid "cannot compare `-' to a directory" -msgstr "" - -#: src/diff.c:1220 -msgid "-D option not supported with directories" -msgstr "" - -#: src/diff.c:1229 -#, c-format -msgid "Common subdirectories: %s and %s\n" -msgstr "" - -#: src/diff.c:1266 -#, c-format -msgid "File %s is a %s while file %s is a %s\n" -msgstr "" - -#: src/diff.c:1345 -#, c-format -msgid "Files %s and %s are identical\n" -msgstr "" - -#: src/diff3.c:26 -msgid "Written by Randy Smith." -msgstr "" - -#: src/diff3.c:328 -msgid "incompatible options" -msgstr "" - -#: src/diff3.c:368 -msgid "`-' specified for more than one input file" -msgstr "" - -#: src/diff3.c:408 src/diff3.c:1232 src/diff3.c:1645 src/diff3.c:1700 -#: src/sdiff.c:305 src/sdiff.c:879 src/sdiff.c:890 -msgid "read failed" -msgstr "" - -#: src/diff3.c:441 -msgid "-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE." -msgstr "" - -#: src/diff3.c:442 -msgid "-E --show-overlap Output unmerged changes, bracketing conflicts." -msgstr "" - -#: src/diff3.c:443 -msgid "-A --show-all Output all changes, bracketing conflicts." -msgstr "" - -#: src/diff3.c:444 -msgid "-x --overlap-only Output overlapping changes." -msgstr "" - -#: src/diff3.c:445 -msgid "-X Output overlapping changes, bracketing them." -msgstr "" - -#: src/diff3.c:446 -msgid "-3 --easy-only Output unmerged nonoverlapping changes." -msgstr "" - -#: src/diff3.c:448 -msgid "-m --merge Output merged file instead of ed script (default -A)." -msgstr "" - -#: src/diff3.c:449 -msgid "-L LABEL --label=LABEL Use LABEL instead of file name." -msgstr "" - -#: src/diff3.c:450 -msgid "-i Append `w' and `q' commands to ed scripts." -msgstr "" - -#: src/diff3.c:453 src/sdiff.c:202 -msgid "--diff-program=PROGRAM Use PROGRAM to compare files." -msgstr "" - -#: src/diff3.c:465 -#, c-format -msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n" -msgstr "" - -#: src/diff3.c:467 -msgid "Compare three files line by line." -msgstr "" - -#: src/diff3.c:673 -msgid "internal error: screwup in format of diff blocks" -msgstr "" - -#: src/diff3.c:971 -#, c-format -msgid "%s: diff failed: " -msgstr "" - -#: src/diff3.c:993 -msgid "internal error: invalid diff type in process_diff" -msgstr "" - -#: src/diff3.c:1018 -msgid "invalid diff format; invalid change separator" -msgstr "" - -#: src/diff3.c:1242 -msgid "invalid diff format; incomplete last line" -msgstr "" - -#: src/diff3.c:1265 src/sdiff.c:273 -#, c-format -msgid "subsidiary program `%s' not executable" -msgstr "" - -#: src/diff3.c:1268 src/sdiff.c:276 src/util.c:298 -#, c-format -msgid "subsidiary program `%s' not found" -msgstr "" - -#: src/diff3.c:1272 src/sdiff.c:268 src/util.c:301 -#, c-format -msgid "subsidiary program `%s' failed" -msgstr "" - -#: src/diff3.c:1294 -msgid "invalid diff format; incorrect leading line chars" -msgstr "" - -#: src/diff3.c:1370 -msgid "internal error: invalid diff type passed to output" -msgstr "" - -#: src/diff3.c:1647 src/diff3.c:1704 -msgid "input file shrank" -msgstr "" - -#: src/dir.c:162 -#, c-format -msgid "cannot compare file names `%s' and `%s'" -msgstr "" - -#: src/sdiff.c:35 -msgid "Written by Thomas Lord." -msgstr "" - -#: src/sdiff.c:183 -msgid "-o FILE --output=FILE Operate interactively, sending output to FILE." -msgstr "" - -#: src/sdiff.c:185 -msgid "-i --ignore-case Consider upper- and lower-case to be the same." -msgstr "" - -#: src/sdiff.c:188 -msgid "-W --ignore-all-space Ignore all white space." -msgstr "" - -#: src/sdiff.c:194 -msgid "-w NUM --width=NUM Output at most NUM (default 130) columns per line." -msgstr "" - -#: src/sdiff.c:195 -msgid "-l --left-column Output only the left column of common lines." -msgstr "" - -#: src/sdiff.c:196 -msgid "-s --suppress-common-lines Do not output common lines." -msgstr "" - -#: src/sdiff.c:201 -msgid "" -"-H --speed-large-files Assume large files and many scattered small changes." -msgstr "" - -#: src/sdiff.c:214 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 FILE2\n" -msgstr "" - -#: src/sdiff.c:215 -msgid "Side-by-side merge of file differences." -msgstr "" - -#: src/sdiff.c:327 -msgid "cannot interactively merge standard input" -msgstr "" - -#: src/sdiff.c:588 -msgid "both files to be compared are directories" -msgstr "" - -#: src/sdiff.c:853 -msgid "" -"ed:\tEdit then use both versions, each decorated with a header.\n" -"eb:\tEdit then use both versions.\n" -"el:\tEdit then use the left version.\n" -"er:\tEdit then use the right version.\n" -"e:\tEdit a new version.\n" -"l:\tUse the left version.\n" -"r:\tUse the right version.\n" -"s:\tSilently include common lines.\n" -"v:\tVerbosely include common lines.\n" -"q:\tQuit.\n" -msgstr "" diff --git a/gnu/dist/diffutils/po/eo.gmo b/gnu/dist/diffutils/po/eo.gmo deleted file mode 100644 index 14f7cd982cb..00000000000 Binary files a/gnu/dist/diffutils/po/eo.gmo and /dev/null differ diff --git a/gnu/dist/diffutils/po/eo.po b/gnu/dist/diffutils/po/eo.po deleted file mode 100644 index f3de52c0616..00000000000 --- a/gnu/dist/diffutils/po/eo.po +++ /dev/null @@ -1,923 +0,0 @@ -# Esperantaj mesaøoj por GNU diffutils. -# Copyright (C) 1996 Free Software Foundation, Inc. -# Edmund GRIMLEY EVANS , 2001-2002. -# -msgid "" -msgstr "" -"Project-Id-Version: GNU diffutils 2.7.10\n" -"POT-Creation-Date: 2002-04-05 14:10-0800\n" -"PO-Revision-Date: 2002-03-13 21:19+0000\n" -"Last-Translator: Edmund GRIMLEY EVANS \n" -"Language-Team: Esperanto \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-3\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: lib/c-stack.c:188 -msgid "program error" -msgstr "programeraro" - -#: lib/c-stack.c:189 -msgid "stack overflow" -msgstr "stako tro granda" - -#: lib/error.c:128 lib/error.c:156 -msgid "Unknown system error" -msgstr "Nekonata sistemeraro" - -#: lib/freesoft.c:27 -msgid "" -"This program comes with NO WARRANTY, to the extent permitted by law.\n" -"You may redistribute copies of this program\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING." -msgstr "" -"Æi tiu programo venas kun NENIA GARANTIO, laý la grado permesata de juro.\n" -"Vi rajtas redistribui kopiojn de æi tiu programo\n" -"laý la kondiæoj de la Øenerala Publika Rajtigilo de GNU.\n" -"Por pli da informoj pri æi tiaj afero, vidu la dosieron COPYING." - -#: lib/getopt.c:693 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s: opcio '%s' estas plursenca\n" - -#: lib/getopt.c:718 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: opcio '--%s' ne permesas argumenton\n" - -#: lib/getopt.c:723 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: opcio '%c%s' ne permesas argumenton\n" - -#: lib/getopt.c:741 lib/getopt.c:914 -#, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s opcio '%s' postulas argumenton\n" - -#: lib/getopt.c:770 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: nekonata opcio '--%s'\n" - -#: lib/getopt.c:774 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: nekonata opcio '%c%s'\n" - -#: lib/getopt.c:800 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: nepermesita opcio -- %c.\n" - -#: lib/getopt.c:803 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: nevalida opcio -- %c\n" - -#: lib/getopt.c:833 lib/getopt.c:963 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: opcio postulas argumenton -- %c\n" - -#: lib/getopt.c:880 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "%s: opcio '-W %s' estas plursenca\n" - -#: lib/getopt.c:898 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: opcio '-W %s' ne permesas argumenton\n" - -#: lib/regex.c:1367 -msgid "Success" -msgstr "Sukceso" - -#: lib/regex.c:1370 -msgid "No match" -msgstr "Nenia trafo" - -#: lib/regex.c:1373 -msgid "Invalid regular expression" -msgstr "Nevalida regula esprimo" - -#: lib/regex.c:1376 -msgid "Invalid collation character" -msgstr "Nevalida ordiga signo" - -#: lib/regex.c:1379 -msgid "Invalid character class name" -msgstr "Nevalida nomo de signoklaso" - -#: lib/regex.c:1382 -msgid "Trailing backslash" -msgstr "'\\' æe la fino" - -#: lib/regex.c:1385 -msgid "Invalid back reference" -msgstr "Nevalida retroreferenco" - -#: lib/regex.c:1388 -msgid "Unmatched [ or [^" -msgstr "Neparigita [ aý [^" - -#: lib/regex.c:1391 -msgid "Unmatched ( or \\(" -msgstr "Neparigita ( aý \\(" - -#: lib/regex.c:1394 -msgid "Unmatched \\{" -msgstr "Neparigita \\{" - -#: lib/regex.c:1397 -msgid "Invalid content of \\{\\}" -msgstr "Nevalida kunteksto de \\{\\}" - -#: lib/regex.c:1400 -msgid "Invalid range end" -msgstr "Nevalida fino de gamo" - -#: lib/regex.c:1403 -msgid "Memory exhausted" -msgstr "Memoro elæerpiøis" - -#: lib/regex.c:1406 -msgid "Invalid preceding regular expression" -msgstr "Nevalida antaýa regula esprimo" - -#: lib/regex.c:1409 -msgid "Premature end of regular expression" -msgstr "Neatendita fino de regula esprimo" - -#: lib/regex.c:1412 -msgid "Regular expression too big" -msgstr "Regula esprimo estas tro granda" - -#: lib/regex.c:1415 -msgid "Unmatched ) or \\)" -msgstr "Neparigita ) aý \\)" - -#: lib/regex.c:8034 -msgid "No previous regular expression" -msgstr "Mankas antaýa regula esprimo" - -#: lib/xmalloc.c:63 -msgid "memory exhausted" -msgstr "memoro elæerpiøis" - -#: src/analyze.c:809 src/diff.c:1283 -#, c-format -msgid "Files %s and %s differ\n" -msgstr "Dosieroj %s kaj %s estas malsamaj\n" - -#: src/analyze.c:812 -#, c-format -msgid "Binary files %s and %s differ\n" -msgstr "Binaraj dosieroj %s kaj %s estas malsamaj\n" - -#: src/analyze.c:1058 src/diff3.c:1413 src/util.c:526 -msgid "No newline at end of file" -msgstr "Mankas linifino æe fino de dosiero" - -#: src/cmp.c:43 -msgid "Written by Torbjorn Granlund and David MacKenzie." -msgstr "Verkite de Torbjorn Granlund kaj David MacKenzie." - -#: src/cmp.c:118 src/diff.c:817 src/diff3.c:427 src/sdiff.c:168 -#, c-format -msgid "Try `%s --help' for more information." -msgstr "Provu '%s --help' por pli da informoj." - -#: src/cmp.c:137 -#, c-format -msgid "invalid --ignore-initial value `%s'" -msgstr "nevalida valoro '%s' de --ignore-initial" - -#: src/cmp.c:146 -msgid "options -l and -s are incompatible" -msgstr "opcioj -l kaj -s malkongruas" - -#: src/cmp.c:154 src/diff.c:826 src/diff3.c:435 src/sdiff.c:177 -#: src/sdiff.c:313 src/sdiff.c:320 src/sdiff.c:910 src/util.c:194 -#: src/util.c:286 src/util.c:293 -msgid "write failed" -msgstr "skriberaro" - -#: src/cmp.c:156 src/diff.c:828 src/diff.c:1354 src/diff3.c:437 -#: src/sdiff.c:179 -msgid "standard output" -msgstr "normala eligo" - -#: src/cmp.c:160 -msgid "-b --print-bytes Print differing bytes." -msgstr "-b --print-bytes Eligi diferencajn bitokojn." - -#: src/cmp.c:161 -msgid "-i SKIP --ignore-initial=SKIP Skip the first SKIP bytes of input." -msgstr "-i N --ignore-initial=N Ignori la unuajn N bitokojn de la enigo." - -#: src/cmp.c:162 -msgid "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2" -msgstr "-i N1:N2 --ignore-initial=N1:N2" - -#: src/cmp.c:163 -msgid "" -" Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2." -msgstr "" -" Ignori la unuajn N1 bitokojn de DOSIERO1 kaj la unuajn N2 bitokojn de " -"DOSIERO2." - -#: src/cmp.c:164 -msgid "-l --verbose Output byte numbers and values of all differing bytes." -msgstr "-l --verbose Eligi indeksojn kaj kodojn de æiuj diferencaj bitokoj." - -#: src/cmp.c:165 -msgid "-n LIMIT --bytes=LIMIT Compare at most LIMIT bytes." -msgstr "-n LIMO --bytes=LIMO Kompari maksimume LIMO bitokojn." - -#: src/cmp.c:166 -msgid "-s --quiet --silent Output nothing; yield exit status only." -msgstr "-s --quiet --silent Eligi nenion; doni nur elig-valoron." - -#: src/cmp.c:167 src/diff.c:904 src/diff3.c:455 src/sdiff.c:204 -msgid "-v --version Output version info." -msgstr "-v --version Eligi informojn pri la versio." - -#: src/cmp.c:168 src/diff.c:905 src/diff3.c:456 src/sdiff.c:205 -msgid "--help Output this help." -msgstr "--help Montri æi tiun helpon." - -#: src/cmp.c:177 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n" -msgstr "Uzado: %s [OPCIO]... DOSIERO1 [DOSIERO2 [N1 [N2]]]\n" - -#: src/cmp.c:179 -msgid "Compare two files byte by byte." -msgstr "Kompari du dosierojn bitokon post bitoko." - -#: src/cmp.c:183 -msgid "SKIP1 and SKIP2 are the number of bytes to skip in each file." -msgstr "N1 kaj N2 estas la nombro de bitokoj ignorendaj en æiu dosiero." - -#: src/cmp.c:184 -msgid "" -"SKIP values may be followed by the following multiplicative suffixes:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y." -msgstr "" -"Valoroj povas esti sekvataj de la sekvaj multobligaj sufiksoj:\n" -"kB 1000, K 1024, MB 1 000 000, M 1 048 576,\n" -"GB 1 000 000 000, G 1 073 741 824, kaj tiel plu por T, P, E, Z, Y." - -#: src/cmp.c:187 -msgid "If a FILE is `-' or missing, read standard input." -msgstr "Se DOSIERO estas '-' aý mankas, legi la normalan enigon." - -#: src/cmp.c:188 src/diff.c:911 src/diff3.c:475 src/sdiff.c:223 -msgid "Report bugs to ." -msgstr "Raportu pri cimoj al ." - -#: src/cmp.c:231 -#, c-format -msgid "invalid --bytes value `%s'" -msgstr "nevalida valoro '%s' de --bytes" - -#: src/cmp.c:258 src/diff.c:734 src/diff3.c:333 src/sdiff.c:558 -#, c-format -msgid "missing operand after `%s'" -msgstr "argumento mankas post '%s'" - -#: src/cmp.c:270 src/diff.c:736 src/diff3.c:335 src/sdiff.c:560 -#, c-format -msgid "extra operand `%s'" -msgstr "kroma argumento '%s'" - -#: src/cmp.c:477 -#, c-format -msgid "%s %s differ: byte %s, line %s\n" -msgstr "%s %s malsamaj: bitoko %s, linio %s\n" - -#: src/cmp.c:495 -#, c-format -msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n" -msgstr "%s %s malsamaj: bitoko %s, linio %s estas %3o %s %3o %s\n" - -#: src/cmp.c:543 -#, c-format -msgid "cmp: EOF on %s\n" -msgstr "cmp: EOF æe %s\n" - -#: src/diff.c:41 -msgid "" -"Written by Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman, and Len Tower." -msgstr "" -"Verkite de Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman, kaj Len Tower." - -#: src/diff.c:322 -#, c-format -msgid "invalid context length `%s'" -msgstr "nevalida longo '%s' de kunteksto" - -#: src/diff.c:405 -msgid "pagination not supported on this host" -msgstr "dispaøigo ne eblas kun æi tiu sistemo" - -#: src/diff.c:420 src/diff3.c:315 -msgid "too many file label options" -msgstr "tro da dosieretikedopcioj" - -#: src/diff.c:498 -#, c-format -msgid "invalid width `%s'" -msgstr "nevalida larøo '%s'" - -#: src/diff.c:502 -msgid "conflicting width options" -msgstr "malkongruaj opcioj pri larøo" - -#: src/diff.c:526 -#, c-format -msgid "invalid horizon length `%s'" -msgstr "nevalida horizonta longo '%s'" - -#: src/diff.c:629 -#, c-format -msgid "`-%ld' option is obsolete; use `-%c %ld'" -msgstr "opcio '-%ld' estas malnova; uzu '-%c %ld'" - -#: src/diff.c:641 -#, c-format -msgid "`-%ld' option is obsolete; omit it" -msgstr "opcio '-%ld' estas malnova; ellasu øin" - -#: src/diff.c:709 -msgid "--from-file and --to-file both specified" -msgstr "--from-file kaj --to-file ambaý specifitaj" - -#: src/diff.c:832 -msgid "Compare files line by line." -msgstr "Kompari dosierojn linion post linio." - -#: src/diff.c:834 -msgid "-i --ignore-case Ignore case differences in file contents." -msgstr "-i --ignore-case Ignori diferencojn en uskleco en dosierenhavo." - -#: src/diff.c:835 -msgid "--ignore-file-name-case Ignore case when comparing file names." -msgstr "--ignore-file-name-case Ignori usklecon en komparado de dosiernomoj." - -#: src/diff.c:836 -msgid "--no-ignore-file-name-case Consider case when comparing file names." -msgstr "" -"--no-ignore-file-name-case Konsideri usklecon en komparado de dosiernomoj." - -#: src/diff.c:837 src/sdiff.c:186 -msgid "-E --ignore-tab-expansion Ignore changes due to tab expansion." -msgstr "-E --ignore-tab-expansion Ignori þanøojn kaýzatajn de TAB-oj." - -#: src/diff.c:838 src/sdiff.c:187 -msgid "-b --ignore-space-change Ignore changes in the amount of white space." -msgstr "-b --ignore-space-change Ignori þanøojn en blanka spaco." - -#: src/diff.c:839 -msgid "-w --ignore-all-space Ignore all white space." -msgstr "-w --ignore-all-space Ignori æian blankan spacon." - -#: src/diff.c:840 src/sdiff.c:189 -msgid "-B --ignore-blank-lines Ignore changes whose lines are all blank." -msgstr "-B --ignore-blank-lines Ignori þanøojn, kies linioj estas malplenaj." - -#: src/diff.c:841 src/sdiff.c:190 -msgid "" -"-I RE --ignore-matching-lines=RE Ignore changes whose lines all match RE." -msgstr "" -"-I RE --ignore-matching-lines=RE Ignori þanøojn, kies linioj æiuj kongruas " -"kun RE." - -#: src/diff.c:842 src/sdiff.c:191 -msgid "--strip-trailing-cr Strip trailing carriage return on input." -msgstr "--strip-trailing-cr Forigi linifinan CR æe enigo." - -#: src/diff.c:844 -msgid "--binary Read and write data in binary mode." -msgstr "--binary Legi kaj skribi datenojn binare." - -#: src/diff.c:846 src/diff3.c:451 src/sdiff.c:192 -msgid "-a --text Treat all files as text." -msgstr "-a --text Trakti æiujn dosierojn kiel tekstajn." - -#: src/diff.c:848 -msgid "" -"-c -C NUM --context[=NUM] Output NUM (default 3) lines of copied " -"context.\n" -"-u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified " -"context.\n" -" --label LABEL Use LABEL instead of file name.\n" -" -p --show-c-function Show which C function each change is in.\n" -" -F RE --show-function-line=RE Show the most recent line matching RE." -msgstr "" -"-c -C NOM --context[=NOM] Eligi NOM (implicite 3) liniojn da kopiita " -"kunteksto.\n" -"-u -U NOM --unified[=NOM] Eligi NOM (implicite 3) liniojn da unuigita " -"kunteksto.\n" -" --label ETIK Uzi ETIKedon anstataý dosiernomo.\n" -" -p --show-c-function Montri, en kiu C-funkcio estas æiu þanøo.\n" -" -F RE -show-function-line=RE Montri la plej lastan linion, kiu kongruas " -"kun RE." - -#: src/diff.c:853 -msgid "-q --brief Output only whether files differ." -msgstr "-q --brief Eligi nur, æu la dosieroj estas malsamaj." - -#: src/diff.c:854 -msgid "-e --ed Output an ed script." -msgstr "-e --ed Eligi ed-programeton." - -#: src/diff.c:855 -msgid "--normal Output a normal diff." -msgstr "--normal Eligi normalan diferencaron." - -#: src/diff.c:856 -msgid "-n --rcs Output an RCS format diff." -msgstr "-n --rcs Eligi diferencaron en RCS-formo." - -#: src/diff.c:857 -msgid "" -"-y --side-by-side Output in two columns.\n" -" -W NUM --width=NUM Output at most NUM (default 130) print columns.\n" -" --left-column Output only the left column of common lines.\n" -" --suppress-common-lines Do not output common lines." -msgstr "" -"-y --side-by-side Eligi en du kolumnoj.\n" -" -W NOM --width=NOM Eligi maksimume NOM (implicite 130) signojn en " -"linio.\n" -" --left-column Eligi nur la maldekstran kolumnon de komunaj linioj.\n" -" --suppress-common-lines Ne eligi komunajn liniojn." - -#: src/diff.c:861 -msgid "-D NAME --ifdef=NAME Output merged file to show `#ifdef NAME' diffs." -msgstr "" -"-D NOMO --ifdef=NOMO Eligi kunfanditan dosieron por montri '#ifdef NOMO'-" -"diferencojn." - -#: src/diff.c:862 -msgid "" -"--GTYPE-group-format=GFMT Similar, but format GTYPE input groups with GFMT." -msgstr "" -"--GTYPE-group-format=GFMT Simile, sed montri GTYPE-enig-grupojn per GFMT." - -#: src/diff.c:863 -msgid "--line-format=LFMT Similar, but format all input lines with LFMT." -msgstr "--line-format=LFMT Simile, sed montri æiujn enigliniojn per LFMT." - -#: src/diff.c:864 -msgid "" -"--LTYPE-line-format=LFMT Similar, but format LTYPE input lines with LFMT." -msgstr "" -"--LTYPE-line-format=LFMT Simile, sed montri LTYPE-enig-grupojn per LFMT." - -#: src/diff.c:865 -msgid " LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'." -msgstr "" -" LTYPE estas 'old', 'new' aý 'unchanged'. GTYPE estas LTYPE aý 'changed'." - -#: src/diff.c:866 -msgid "" -" GFMT may contain:\n" -" %< lines from FILE1\n" -" %> lines from FILE2\n" -" %= lines common to FILE1 and FILE2\n" -" %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" -" LETTERs are as follows for new group, lower case for old group:\n" -" F first line number\n" -" L last line number\n" -" N number of lines = L-F+1\n" -" E F-1\n" -" M L+1" -msgstr "" -" GFMT povas enhavi:\n" -" %< linioj el DOSIERO1\n" -" %> linioj el DOSIERO2\n" -" %= linioj komunaj al DOSIERO1 kaj DOSIERO2\n" -" %[-][LARØO][.[PREC]]{doxX}LITERO printf-stila specifo por LITERO\n" -" LITEROJ estas jenaj por nova grupo, minuskle por malnova grupo:\n" -" F unua lininumero\n" -" L lasta lininumero\n" -" N nombro de linioj = L-F+1\n" -" E F-1\n" -" M L+1" - -#: src/diff.c:877 -msgid "" -" LFMT may contain:\n" -" %L contents of line\n" -" %l contents of line, excluding any trailing newline\n" -" %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number" -msgstr "" -" LFMT povas enhavi:\n" -" %L enhavo de linio\n" -" %l enhavo linio, sen eventuala linifino\n" -" %[-][LARØO][.[PREC]]{doxX}n printf-stila specifo de lininumero" - -#: src/diff.c:881 -msgid "" -" Either GFMT or LFMT may contain:\n" -" %% %\n" -" %c'C' the single character C\n" -" %c'\\OOO' the character with octal code OOO" -msgstr "" -" Kaj GFMT kaj LFMT povas enhavi:\n" -" %% %\n" -" %c'C' la unuopa signo C\n" -" %c'\\000' la signo kun okuma kodo OOO" - -#: src/diff.c:886 -msgid "-l --paginate Pass the output through `pr' to paginate it." -msgstr "-l --paginate Pasigi la eligon tra 'pr' por enpaøigi øin." - -#: src/diff.c:887 src/sdiff.c:198 -msgid "-t --expand-tabs Expand tabs to spaces in output." -msgstr "-t --expand-tabs Konverti TABojn al spacetoj en la eligo." - -#: src/diff.c:888 src/diff3.c:452 -msgid "-T --initial-tab Make tabs line up by prepending a tab." -msgstr "-T --initial-tab Øustigi TABojn per antaýmetado de spaceto." - -#: src/diff.c:890 -msgid "-r --recursive Recursively compare any subdirectories found." -msgstr "-r --recursive Rekurse kompari trovitajn subdosierujojn." - -#: src/diff.c:891 -msgid "-N --new-file Treat absent files as empty." -msgstr "-N --new-file Trakti mankantajn dosierojn kiel malplenajn." - -#: src/diff.c:892 -msgid "--unidirectional-new-file Treat absent first files as empty." -msgstr "" -"--unidirectional-new-file Trakti mankantajn unuajn dosierojn kiel " -"malplenajn." - -#: src/diff.c:893 -msgid "-s --report-identical-files Report when two files are the same." -msgstr "-s --report-identical-files Raporti, kiam du dosieroj estas samaj." - -#: src/diff.c:894 -msgid "-x PAT --exclude=PAT Exclude files that match PAT." -msgstr "-x ÞAB --exclude=ÞAB Ignori dosierojn, kiuj kongruas kun ÞABlono." - -#: src/diff.c:895 -msgid "" -"-X FILE --exclude-from=FILE Exclude files that match any pattern in FILE." -msgstr "" -"-X DOS --exclude-from=DOS Ignori dosierojn, kiuj kongruas kun iu þablono " -"en DOSiero." - -#: src/diff.c:896 -msgid "" -"-S FILE --starting-file=FILE Start with FILE when comparing directories." -msgstr "" -"-S DOS --starting-file=DOS Komenci per DOSiero, komparante dosierujojn." - -#: src/diff.c:897 -msgid "" -"--from-file=FILE1 Compare FILE1 to all operands. FILE1 can be a directory." -msgstr "" -"--from-file=DOS1 Kompari DOS1 kun æiuj argumentoj. DOS1 povas esti " -"dosierujo." - -#: src/diff.c:898 -msgid "" -"--to-file=FILE2 Compare all operands to FILE2. FILE2 can be a directory." -msgstr "" -"--to-file=DOS2 Kompari æiujn argumentoj kun DOS2. DOS2 povas esti " -"dosierujo." - -#: src/diff.c:900 -msgid "--horizon-lines=NUM Keep NUM lines of the common prefix and suffix." -msgstr "" -"--horizon-lines=NOM Gardi NOM liniojn de la komuna prefikso kaj sufikso." - -#: src/diff.c:901 src/sdiff.c:200 -msgid "-d --minimal Try hard to find a smaller set of changes." -msgstr "-d --minimal Pene seræi malpli grandan aron da þanøoj." - -#: src/diff.c:902 -msgid "" -"--speed-large-files Assume large files and many scattered small changes." -msgstr "" -"--speed-large-files Atendi grandajn dosierojn kaj multajn disajn þanøetojn." - -#: src/diff.c:907 -msgid "" -"FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'." -msgstr "" -"DOSIEROJ estas 'DOSIERO1 DOSIERO2' aý 'DOSIERUJO1 DOSIERUJO2' aý DOSIERUJO " -"DOSIERO...' aý 'DOSIERO... DOSIERUJO'." - -#: src/diff.c:908 -msgid "" -"If --from-file or --to-file is given, there are no restrictions on FILES." -msgstr "" -"Se --from-file aý --to-file estas donita, ne estas limigoj de DOSIEROJ." - -#: src/diff.c:909 src/diff3.c:474 src/sdiff.c:222 -msgid "If a FILE is `-', read standard input." -msgstr "Se DOSIERO estas '-', legi la normalan enigon." - -#: src/diff.c:920 -#, c-format -msgid "Usage: %s [OPTION]... FILES\n" -msgstr "Uzado: %s [OPCIO]... DOSIEROJ\n" - -#: src/diff.c:949 -#, c-format -msgid "conflicting %s option value `%s'" -msgstr "malkongrua valoro de opcio %s: '%s'" - -#: src/diff.c:962 -msgid "conflicting output style options" -msgstr "malkongruaj opcioj pri eligostilo" - -#: src/diff.c:976 -msgid "regular empty file" -msgstr "normala malplena dosiero" - -#: src/diff.c:976 -msgid "regular file" -msgstr "normala dosiero" - -#: src/diff.c:978 -msgid "directory" -msgstr "dosierujo" - -#: src/diff.c:981 -msgid "block special file" -msgstr "blokaparatdosiero" - -#: src/diff.c:984 -msgid "character special file" -msgstr "signoaparatdosiero" - -#: src/diff.c:987 -msgid "fifo" -msgstr "fifo" - -#: src/diff.c:991 -msgid "socket" -msgstr "konektilo" - -#: src/diff.c:994 -msgid "message queue" -msgstr "mesaøovico" - -#: src/diff.c:997 -msgid "semaphore" -msgstr "semaforo" - -#: src/diff.c:1000 -msgid "shared memory object" -msgstr "komuna memoro" - -#: src/diff.c:1003 -msgid "typed memory object" -msgstr "tipita memora objekto" - -#: src/diff.c:1006 -msgid "weird file" -msgstr "stranga dosiero" - -#: src/diff.c:1070 src/diff.c:1256 -#, c-format -msgid "Only in %s: %s\n" -msgstr "Nur en %s: %s\n" - -#: src/diff.c:1193 -msgid "cannot compare `-' to a directory" -msgstr "ne povas kompari '-' kun dosierujo" - -#: src/diff.c:1220 -msgid "-D option not supported with directories" -msgstr "opcio -D ne eblas kun dosierujoj" - -#: src/diff.c:1229 -#, c-format -msgid "Common subdirectories: %s and %s\n" -msgstr "Komunaj subdosierujoj: %s kaj %s\n" - -#: src/diff.c:1266 -#, c-format -msgid "File %s is a %s while file %s is a %s\n" -msgstr "Dosiero %s estas %s, dum dosiero %s estas %s\n" - -#: src/diff.c:1345 -#, c-format -msgid "Files %s and %s are identical\n" -msgstr "Dosieroj %s kaj %s estas samaj\n" - -#: src/diff3.c:26 -msgid "Written by Randy Smith." -msgstr "Verkite de Randy Smith." - -#: src/diff3.c:328 -msgid "incompatible options" -msgstr "malkongruaj opcioj" - -#: src/diff3.c:368 -msgid "`-' specified for more than one input file" -msgstr "'-' donita por pli ol unu enigdosiero" - -#: src/diff3.c:408 src/diff3.c:1232 src/diff3.c:1645 src/diff3.c:1700 -#: src/sdiff.c:305 src/sdiff.c:879 src/sdiff.c:890 -msgid "read failed" -msgstr "legeraro" - -#: src/diff3.c:441 -msgid "-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE." -msgstr "" -"-e --ed Eligi nekunfanditajn þanøojn de OLDFILE al YOURFILE en MYFILE." - -#: src/diff3.c:442 -msgid "-E --show-overlap Output unmerged changes, bracketing conflicts." -msgstr "" -"-E --show-overlap Eligi nekunfanditajn þanøojn, kun konfliktoj en " -"parentezoj." - -#: src/diff3.c:443 -msgid "-A --show-all Output all changes, bracketing conflicts." -msgstr "-A --show-all Eligi æiujn þanøojn, kun konfliktoj en parentezoj." - -#: src/diff3.c:444 -msgid "-x --overlap-only Output overlapping changes." -msgstr "-x --overlap-only Eligi interkovriøantajn þanøojn." - -#: src/diff3.c:445 -msgid "-X Output overlapping changes, bracketing them." -msgstr "-X Eligi interkovriøantajn þanøojn, en parentezoj." - -#: src/diff3.c:446 -msgid "-3 --easy-only Output unmerged nonoverlapping changes." -msgstr "-3 --easy-only Eligi nekunfanditajn neinterkovriøantajn þanøojn." - -#: src/diff3.c:448 -msgid "-m --merge Output merged file instead of ed script (default -A)." -msgstr "" -"-m --merge Eligi kunfanditan dosieron anstataý ed-programeto (implicite -" -"A)." - -#: src/diff3.c:449 -msgid "-L LABEL --label=LABEL Use LABEL instead of file name." -msgstr "-L ETIK --label=ETIK Uzi ETIKedon anstataý la dosiernomo." - -#: src/diff3.c:450 -msgid "-i Append `w' and `q' commands to ed scripts." -msgstr "-i Aldoni la komandojn 'w' kaj 'q' al ed-programetoj." - -#: src/diff3.c:453 src/sdiff.c:202 -msgid "--diff-program=PROGRAM Use PROGRAM to compare files." -msgstr "--diff-program=PROGRAMO Uzi PROGRAMOn por kompari dosierojn." - -#: src/diff3.c:465 -#, c-format -msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n" -msgstr "Uzado: %s [OPCIO]... MYFILE OLDFILE YOURFILE\n" - -#: src/diff3.c:467 -msgid "Compare three files line by line." -msgstr "Kompari tri dosierojn linion post linio." - -#: src/diff3.c:673 -msgid "internal error: screwup in format of diff blocks" -msgstr "interna eraro: fuþo en formato de diff-blokoj" - -#: src/diff3.c:971 -#, c-format -msgid "%s: diff failed: " -msgstr "%s: diff malsukcesis: " - -#: src/diff3.c:993 -msgid "internal error: invalid diff type in process_diff" -msgstr "interna eraro: nevalida diff-speco en process_diff" - -#: src/diff3.c:1018 -msgid "invalid diff format; invalid change separator" -msgstr "nevalida diff-formato; nevalida þanø-apartigilo" - -#: src/diff3.c:1242 -msgid "invalid diff format; incomplete last line" -msgstr "nevalida diff-formato; malkompleta lasta linio" - -#: src/diff3.c:1265 src/sdiff.c:273 -#, c-format -msgid "subsidiary program `%s' not executable" -msgstr "subprogramo '%s' ne rulebla" - -#: src/diff3.c:1268 src/sdiff.c:276 src/util.c:298 -#, c-format -msgid "subsidiary program `%s' not found" -msgstr "subprogramo '%s' ne trovita" - -#: src/diff3.c:1272 src/sdiff.c:268 src/util.c:301 -#, c-format -msgid "subsidiary program `%s' failed" -msgstr "subprogramo '%s' malsukcesis" - -#: src/diff3.c:1294 -msgid "invalid diff format; incorrect leading line chars" -msgstr "nevalida diff-formato; maløusta signo en antaýa linio" - -#: src/diff3.c:1370 -msgid "internal error: invalid diff type passed to output" -msgstr "interna eraro: nevalida diff-speco donita al eligo" - -#: src/diff3.c:1647 src/diff3.c:1704 -msgid "input file shrank" -msgstr "enigdosiero þrumpis" - -#: src/dir.c:162 -#, c-format -msgid "cannot compare file names `%s' and `%s'" -msgstr "ne povas kompari dosiernomojn '%s' kaj '%s'" - -#: src/sdiff.c:35 -msgid "Written by Thomas Lord." -msgstr "Verkite de Thomas Lord." - -#: src/sdiff.c:183 -msgid "-o FILE --output=FILE Operate interactively, sending output to FILE." -msgstr "-o DOS --output=DOS Funkcii interage, sendante eligon al DOSiero." - -#: src/sdiff.c:185 -msgid "-i --ignore-case Consider upper- and lower-case to be the same." -msgstr "-i --ignore-case Trakti majusklojn kaj minusklojn kiel samajn." - -#: src/sdiff.c:188 -msgid "-W --ignore-all-space Ignore all white space." -msgstr "-W --ignore-all-space Ignori æian blankan spacon." - -#: src/sdiff.c:194 -msgid "-w NUM --width=NUM Output at most NUM (default 130) columns per line." -msgstr "" -"-w NOM --width=NOM Eligi maksimume NOM (implicite 130) signojn en linio." - -#: src/sdiff.c:195 -msgid "-l --left-column Output only the left column of common lines." -msgstr "" -"-l --left-column Montri nur la maldekstran kolumnon de komunaj linioj." - -#: src/sdiff.c:196 -msgid "-s --suppress-common-lines Do not output common lines." -msgstr "-s --suppress-common-lines Ne eligi komunajn liniojn." - -#: src/sdiff.c:201 -msgid "" -"-H --speed-large-files Assume large files and many scattered small changes." -msgstr "" -"-H --speed-large-files Atendi grandajn dosierojn kaj multajn disajn " -"þanøetojn." - -#: src/sdiff.c:214 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 FILE2\n" -msgstr "Uzado: %s [OPCIO]... DOSIERO1 DOSIERO2\n" - -#: src/sdiff.c:215 -msgid "Side-by-side merge of file differences." -msgstr "Æeflanka kunfando de dosierodiferencoj." - -#: src/sdiff.c:327 -msgid "cannot interactively merge standard input" -msgstr "ne povas interage kunfandi la normalan enigon" - -#: src/sdiff.c:588 -msgid "both files to be compared are directories" -msgstr "ambaý komparendaj dosieroj estas dosierujoj" - -#: src/sdiff.c:853 -msgid "" -"ed:\tEdit then use both versions, each decorated with a header.\n" -"eb:\tEdit then use both versions.\n" -"el:\tEdit then use the left version.\n" -"er:\tEdit then use the right version.\n" -"e:\tEdit a new version.\n" -"l:\tUse the left version.\n" -"r:\tUse the right version.\n" -"s:\tSilently include common lines.\n" -"v:\tVerbosely include common lines.\n" -"q:\tQuit.\n" -msgstr "" -"ed:\tredakti kaj uzi ambaý versiojn, æiu kun æapa¼o\n" -"eb:\tredakti kaj uzi ambaý versiojn\n" -"el:\tredakti kaj uzi maldekstran version\n" -"er:\tredakti kaj uzi dekstran version\n" -"e:\tredakti novan version\n" -"l:\tuzi maldekstran version\n" -"r:\tuzi dekstran version\n" -"s:\tsilente transpreni komunajn liniojn\n" -"v:\tlaýte transpreni komunajn liniojn\n" -"q:\tfini\n" diff --git a/gnu/dist/diffutils/po/es.gmo b/gnu/dist/diffutils/po/es.gmo deleted file mode 100644 index 6035981d85e..00000000000 Binary files a/gnu/dist/diffutils/po/es.gmo and /dev/null differ diff --git a/gnu/dist/diffutils/po/es.po b/gnu/dist/diffutils/po/es.po deleted file mode 100644 index 4b8761c3bce..00000000000 --- a/gnu/dist/diffutils/po/es.po +++ /dev/null @@ -1,1137 +0,0 @@ -# Mensajes en español para GNU diffutils. -# Copyright (C) 1996, 2001, 2002 Free Software Foundation, Inc. -# Iñaky Pérez González , 1996. -# Santiago Vila Doncel , 2001, 2002. -# -msgid "" -msgstr "" -"Project-Id-Version: GNU diffutils 2.7.10\n" -"POT-Creation-Date: 2002-04-05 14:10-0800\n" -"PO-Revision-Date: 2002-03-17 19:06+0100\n" -"Last-Translator: Santiago Vila Doncel \n" -"Language-Team: Spanish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: lib/c-stack.c:188 -msgid "program error" -msgstr "error del programa" - -#: lib/c-stack.c:189 -msgid "stack overflow" -msgstr "desbordamiento de pila" - -#: lib/error.c:128 lib/error.c:156 -msgid "Unknown system error" -msgstr "Error del sistema desconocido" - -#: lib/freesoft.c:27 -msgid "" -"This program comes with NO WARRANTY, to the extent permitted by law.\n" -"You may redistribute copies of this program\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING." -msgstr "" -"Este programa viene sin NINGUNA GARANTÍA, hasta donde permite la ley.\n" -"Se pueden redistribuir copias de este programa bajo los términos de la\n" -"Licencia Pública General de GNU.\n" -"Para más información sobre esto, vea el fichero llamado COPYING." - -#: lib/getopt.c:693 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s: la opción `%s' es ambigua\n" - -#: lib/getopt.c:718 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: la opción `--%s' no admite ningún argumento\n" - -#: lib/getopt.c:723 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: la opción `%c%s' no admite ningún argumento\n" - -#: lib/getopt.c:741 lib/getopt.c:914 -#, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s: la opción `%s' requiere un argumento\n" - -#: lib/getopt.c:770 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: opción no reconocida `--%s'\n" - -#: lib/getopt.c:774 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: opción no reconocida `%c%s'\n" - -#: lib/getopt.c:800 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: opción ilegal -- %c\n" - -#: lib/getopt.c:803 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: opción inválida -- %c\n" - -#: lib/getopt.c:833 lib/getopt.c:963 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: la opción requiere un argumento -- %c\n" - -#: lib/getopt.c:880 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "%s: la opción `-W %s' es ambigua\n" - -#: lib/getopt.c:898 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: la opción `-W %s' no admite ningún argumento\n" - -#: lib/regex.c:1367 -msgid "Success" -msgstr "Conseguido" - -#: lib/regex.c:1370 -msgid "No match" -msgstr "No hay ninguna coincidencia" - -#: lib/regex.c:1373 -msgid "Invalid regular expression" -msgstr "Expresión regular inválida" - -# Se refiere probablemente a cosas tales como que la c con la h es "ch", -# aunque este ejemplo ya no es válido, pues la Real Academia dice -# que para propósitos de ordenación son letras independientes. -#: lib/regex.c:1376 -msgid "Invalid collation character" -msgstr "Carácter de unión inválido" - -#: lib/regex.c:1379 -msgid "Invalid character class name" -msgstr "Carácter de clase inválido" - -#: lib/regex.c:1382 -msgid "Trailing backslash" -msgstr "Barra invertida al final" - -# FIXME -# Retro-referencia es lo mejor que se me ocurre ... claro, que acepto -# sugerencias ;) -# ¿Referencia hacia atrás? sv -# Me suena a cangrejo ;) ... no se ... a ver que opinan Enrique y el resto de -# la gente ... La verdad es que prefiero Retro-referencia a referencia hacia -# atrás (más que nada es por que es la traducción que se hace, como por -# ejemplo en backfeed -- retroalimentación) IPG -# En glibc.1.10.1 : -# # posix/regex.c:946 -# msgid "Invalid back reference" -# msgstr "Referencia hacia atrás no válida" em -# Si no fuese porque has traducido tu la glibc, te preguntaría quien ha sido -# el asesino que ha puesto eso :) Momento que voy a mirar la enciclopedia -# esa que tenemos decorando la estantería ;) ... ¡¡Ja jaaaa!! :) ¡Palidecerás -# ante esta cita! "Diccionario Enciclopédico Espasa-Calpe". Edición de Dios -# sabe cuando (la décima, creo), volumen 15, página 8846, tercera columna, -# tal que a la mitad: -# -# retrocontrol. (De retro- y control.) m. Biol. Fenómeno de autocontrol por -# el cual la excesiva acumulación de una hormona en la sangre actúa sobre -# la glándula corespondiente e inhibe automáticamente su producción. Se -# utiliza mucho internacionalmente la voz inglesa --feed-back-- para expre- -# sar esta idea. -# -# Y mejor ... para rematar :). Misma página, primera columna, cuarta entrada: -# -# retro-. (del lat. retro, --hacia atrás--) pref. que lleva a lugar o tiempo -# anterior a la significación de las voces simples a que se halla unida: -# retro-traer, retro-vender ... -# -# ¡¡Quiyos!! Hay dos páginas de retro-"algo" ... :) ¡no me digáis después -# de esto que preferís "hacia atrás"! y máxime cuando está aceptado preponer -# retro- para ello :) Si no os importa, y a no ser que venga alguno de la -# RALE y me castre por ello, dejaré retro-referencia. -# ipg -# Un comentario: No serán los de la RALE los que hagan eso, sino los -# que no lo entiendan. Aún después de ver tus acertadas referencias, pienso -# que referencia hacia atrás se puede entender mejor, pero por supuesto, -# no estoy dispuesto a matar por ello... sv -# :) Gracias, pero por ahora dejaré retro-referencia, me parece más clara -# en cuanto al significado preciso de la frase. ipg -#: lib/regex.c:1385 -msgid "Invalid back reference" -msgstr "Retro-referencia inválida" - -#: lib/regex.c:1388 -msgid "Unmatched [ or [^" -msgstr "[ ó [^ desemparejados" - -#: lib/regex.c:1391 -msgid "Unmatched ( or \\(" -msgstr "( ó \\( desemparejado" - -#: lib/regex.c:1394 -msgid "Unmatched \\{" -msgstr "\\{ desemparejado" - -#: lib/regex.c:1397 -msgid "Invalid content of \\{\\}" -msgstr "El contenido de \\{\\} no es válido" - -#: lib/regex.c:1400 -msgid "Invalid range end" -msgstr "Final de rango inválido" - -#: lib/regex.c:1403 -msgid "Memory exhausted" -msgstr "Memoria agotada" - -#: lib/regex.c:1406 -msgid "Invalid preceding regular expression" -msgstr "Expresión regular precedente inválida" - -#: lib/regex.c:1409 -msgid "Premature end of regular expression" -msgstr "Final prematuro de la expresión regular" - -#: lib/regex.c:1412 -msgid "Regular expression too big" -msgstr "La expresión regular es demasiado grande" - -#: lib/regex.c:1415 -msgid "Unmatched ) or \\)" -msgstr ") ó \\) desemparejado" - -#: lib/regex.c:8034 -msgid "No previous regular expression" -msgstr "No hay ninguna expresión regular previa" - -#: lib/xmalloc.c:63 -msgid "memory exhausted" -msgstr "memoria agotada" - -#: src/analyze.c:809 src/diff.c:1283 -#, c-format -msgid "Files %s and %s differ\n" -msgstr "Los ficheros %s y %s son distintos\n" - -#: src/analyze.c:812 -#, c-format -msgid "Binary files %s and %s differ\n" -msgstr "Los ficheros binarios %s y %s son distintos\n" - -#: src/analyze.c:1058 src/diff3.c:1413 src/util.c:526 -msgid "No newline at end of file" -msgstr "No hay ningún carácter de nueva línea al final del fichero" - -#: src/cmp.c:43 -msgid "Written by Torbjorn Granlund and David MacKenzie." -msgstr "Escrito por Torbjorn Granlund and David MacKenzie." - -#: src/cmp.c:118 src/diff.c:817 src/diff3.c:427 src/sdiff.c:168 -#, c-format -msgid "Try `%s --help' for more information." -msgstr "Pruebe `%s --help' para más información." - -#: src/cmp.c:137 -#, c-format -msgid "invalid --ignore-initial value `%s'" -msgstr "valor --ignore-initial inválido `%s'" - -#: src/cmp.c:146 -msgid "options -l and -s are incompatible" -msgstr "las opciones -l y -s son incompatibles" - -#: src/cmp.c:154 src/diff.c:826 src/diff3.c:435 src/sdiff.c:177 -#: src/sdiff.c:313 src/sdiff.c:320 src/sdiff.c:910 src/util.c:194 -#: src/util.c:286 src/util.c:293 -msgid "write failed" -msgstr "la escritura falló" - -#: src/cmp.c:156 src/diff.c:828 src/diff.c:1354 src/diff3.c:437 -#: src/sdiff.c:179 -msgid "standard output" -msgstr "salida estándar" - -# Muestra como caracteres los bytes que difieran -# queda más claro, creo yo em -# Yo no le veo diferencia (¿será por qué lo parí yo? ;) ipg -#: src/cmp.c:160 -msgid "-b --print-bytes Print differing bytes." -msgstr "-b --print-bytes Muestra los bytes que son distintos." - -#: src/cmp.c:161 -msgid "-i SKIP --ignore-initial=SKIP Skip the first SKIP bytes of input." -msgstr "" -"-i SALTO --ignore-initial=SALTO Salta los primeros SALTO bytes de\n" -" la entrada." - -#: src/cmp.c:162 -msgid "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2" -msgstr "-i SALTO1:SALTO2 --ignore-initial=SALTO1:SALTO2" - -#: src/cmp.c:163 -msgid "" -" Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2." -msgstr "" -" Salta los primeros SALTO1 bytes del FICHERO1 y los primeros SALTO2 bytes\n" -" del FICHERO2." - -#: src/cmp.c:164 -msgid "-l --verbose Output byte numbers and values of all differing bytes." -msgstr "" -"-l --verbose Muestra los números de byte y valores de todos los bytes que\n" -" difieran." - -#: src/cmp.c:165 -msgid "-n LIMIT --bytes=LIMIT Compare at most LIMIT bytes." -msgstr "-n LÍMITE --bytes=LÍMITE Compara como máximo LÍMITE bytes." - -#: src/cmp.c:166 -msgid "-s --quiet --silent Output nothing; yield exit status only." -msgstr "-s --quiet --silent No muestra nada, sólo da un código de salida." - -#: src/cmp.c:167 src/diff.c:904 src/diff3.c:455 src/sdiff.c:204 -msgid "-v --version Output version info." -msgstr "-v --version Informa de la versión y finaliza." - -#: src/cmp.c:168 src/diff.c:905 src/diff3.c:456 src/sdiff.c:205 -msgid "--help Output this help." -msgstr "--help Muestra esta ayuda y finaliza." - -#: src/cmp.c:177 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n" -msgstr "Modo de empleo: %s [OPCIÓN]... FICHERO1 [FICHERO2 [SALTO1 [SALTO2]]]\n" - -#: src/cmp.c:179 -msgid "Compare two files byte by byte." -msgstr "Compara dos ficheros byte por byte." - -#: src/cmp.c:183 -msgid "SKIP1 and SKIP2 are the number of bytes to skip in each file." -msgstr "SALTO1 y SALTO2 son el número de bytes que se saltan en cada fichero." - -#: src/cmp.c:184 -msgid "" -"SKIP values may be followed by the following multiplicative suffixes:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y." -msgstr "" -"Los valores SALTO pueden estar seguidos por los siguientes sufijos\n" -"multiplicadores:\n" -"kB 1.000, K 1.024, MB 1.000.000, M 1.048.576,\n" -"GB 1.000.000.000, G 1.073.741.824, y así en adelante para T, P, E, Z, Y." - -#: src/cmp.c:187 -msgid "If a FILE is `-' or missing, read standard input." -msgstr "Si un FICHERO es `-' o no se especifica, lee la entrada estándar." - -# Véase "A bug's life". -#: src/cmp.c:188 src/diff.c:911 src/diff3.c:475 src/sdiff.c:223 -msgid "Report bugs to ." -msgstr "Comunicar bichos a ." - -#: src/cmp.c:231 -#, c-format -msgid "invalid --bytes value `%s'" -msgstr "valor --bytes inválido `%s'" - -#: src/cmp.c:258 src/diff.c:734 src/diff3.c:333 src/sdiff.c:558 -#, c-format -msgid "missing operand after `%s'" -msgstr "falta un operando después de `%s'" - -#: src/cmp.c:270 src/diff.c:736 src/diff3.c:335 src/sdiff.c:560 -#, c-format -msgid "extra operand `%s'" -msgstr "operando extra `%s'" - -#: src/cmp.c:477 -#, c-format -msgid "%s %s differ: byte %s, line %s\n" -msgstr "%s %s son distintos: byte %s, línea %s\n" - -#: src/cmp.c:495 -#, c-format -msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n" -msgstr "%s %s son distintos: el byte %s, en la línea %s es %3o %s %3o %s\n" - -#: src/cmp.c:543 -#, c-format -msgid "cmp: EOF on %s\n" -msgstr "cmp: fin de fichero encontrado en %s\n" - -#: src/diff.c:41 -msgid "" -"Written by Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman, and Len Tower." -msgstr "" -"Escrito por Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman, y Len Tower." - -#: src/diff.c:322 -#, c-format -msgid "invalid context length `%s'" -msgstr "longitud de contexto inválida `%s'" - -#: src/diff.c:405 -msgid "pagination not supported on this host" -msgstr "este sistema no admite paginación" - -# FIXME -# me sace a mi que esto no se parece ni un ápice a lo que -# se quiere decir en realidad. He mirado los docs y no consigo -# encontrarle un buen significado, así que pido ayuda ;) -# Ni p... idea em -# La opción -L LABEL puedes usarla, una o dos veces, pero no más. A eso -# se refiere. la opción de etiqueta de fichero se ha especificado demasiadas -# veces. O más cortito, dejarlo como está :) em+ -# Me parece que así está bien ... -#: src/diff.c:420 src/diff3.c:315 -msgid "too many file label options" -msgstr "demasiadas opciones de etiqueta de fichero" - -#: src/diff.c:498 -#, c-format -msgid "invalid width `%s'" -msgstr "ancho inválido `%s'" - -#: src/diff.c:502 -msgid "conflicting width options" -msgstr "opciones de ancho conflictivas" - -#: src/diff.c:526 -#, c-format -msgid "invalid horizon length `%s'" -msgstr "longitud del horizonte inválida `%s'" - -#: src/diff.c:629 -#, c-format -msgid "`-%ld' option is obsolete; use `-%c %ld'" -msgstr "la opción `-%ld' está obsoleta; utilice `-%c %ld'" - -#: src/diff.c:641 -#, c-format -msgid "`-%ld' option is obsolete; omit it" -msgstr "la opción `-%ld' está obsoleta; omítala" - -#: src/diff.c:709 -msgid "--from-file and --to-file both specified" -msgstr "se ha especificado tanto --from-file como --to-file" - -#: src/diff.c:832 -msgid "Compare files line by line." -msgstr "Compara ficheros línea por línea." - -#: src/diff.c:834 -msgid "-i --ignore-case Ignore case differences in file contents." -msgstr "" -"-i --ignore-case Descarta las diferencias entre mayúsculas y minúsculas\n" -" en el contenido de los ficheros." - -#: src/diff.c:835 -msgid "--ignore-file-name-case Ignore case when comparing file names." -msgstr "" -"--ignore-file-name-case Descarta las diferencias entre mayúsculas y\n" -" minúsculas al comparar los nombres de los ficheros." - -#: src/diff.c:836 -msgid "--no-ignore-file-name-case Consider case when comparing file names." -msgstr "" -"--no-ignore-file-name-case Considera distintas mayúsculas y minúsculas\n" -" cuando compara los nombres de los ficheros." - -#: src/diff.c:837 src/sdiff.c:186 -msgid "-E --ignore-tab-expansion Ignore changes due to tab expansion." -msgstr "" -"-E --ignore-tab-expansion Descarta cambios debidos a expansiones de tabs." - -#: src/diff.c:838 src/sdiff.c:187 -msgid "-b --ignore-space-change Ignore changes in the amount of white space." -msgstr "" -"-b --ignore-space-change Descarta las diferencias en la cantidad de " -"espacios\n" -" en blanco." - -#: src/diff.c:839 -msgid "-w --ignore-all-space Ignore all white space." -msgstr "-w --ignore-all-space Descarta los espacios en blanco." - -#: src/diff.c:840 src/sdiff.c:189 -msgid "-B --ignore-blank-lines Ignore changes whose lines are all blank." -msgstr "" -"-B --ignore-blank-lines Descarta los cambios cuyas líneas son todas vacías." - -#: src/diff.c:841 src/sdiff.c:190 -msgid "" -"-I RE --ignore-matching-lines=RE Ignore changes whose lines all match RE." -msgstr "" -"-I EXPR-REG --ignore-matching-lines=EXPR-REG Descarta las líneas que\n" -" coincidan con EXPR-REG." - -#: src/diff.c:842 src/sdiff.c:191 -msgid "--strip-trailing-cr Strip trailing carriage return on input." -msgstr "" -"--strip-trailing-cr Elimina los retornos de carro finales en la entrada." - -#: src/diff.c:844 -msgid "--binary Read and write data in binary mode." -msgstr "--binary Lee y escribe los datos en modo binario." - -#: src/diff.c:846 src/diff3.c:451 src/sdiff.c:192 -msgid "-a --text Treat all files as text." -msgstr "-a --text Trata todos los ficheros como de tipo texto." - -#: src/diff.c:848 -msgid "" -"-c -C NUM --context[=NUM] Output NUM (default 3) lines of copied " -"context.\n" -"-u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified " -"context.\n" -" --label LABEL Use LABEL instead of file name.\n" -" -p --show-c-function Show which C function each change is in.\n" -" -F RE --show-function-line=RE Show the most recent line matching RE." -msgstr "" -"-c -C NÚM --context[=NÚM] Muestra NÚM (3 por omisión) líneas de contexto\n" -"-u -U NÚM --unified[=NÚM] Muestra NÚM (3 por omisión) líneas de contexto\n" -" unificado.\n" -" --label NOMBRE Usa NOMBRE en lugar del nombre de fichero.\n" -" -p --show-c-function Muestra en qué función C se encuentra cada cambio.\n" -" -F EXPR-REG --show-function-line=EXPR-REG Muestra la línea más reciente\n" -" que coincida con EXPR-REG." - -#: src/diff.c:853 -msgid "-q --brief Output only whether files differ." -msgstr "-q --brief Indica sólo si los ficheros son diferentes o no." - -#: src/diff.c:854 -msgid "-e --ed Output an ed script." -msgstr "-e --ed Produce un script ed." - -#: src/diff.c:855 -msgid "--normal Output a normal diff." -msgstr "--normal Produce un diff normal." - -#: src/diff.c:856 -msgid "-n --rcs Output an RCS format diff." -msgstr "-n --rcs Produce un diff en formato RCS." - -#: src/diff.c:857 -msgid "" -"-y --side-by-side Output in two columns.\n" -" -W NUM --width=NUM Output at most NUM (default 130) print columns.\n" -" --left-column Output only the left column of common lines.\n" -" --suppress-common-lines Do not output common lines." -msgstr "" -"-y --side-by-side Genera salida en dos columnas.\n" -" -W NÚM --width=NÚM Genera como máximo NÚM (130 por omisión) caracteres\n" -" por línea.\n" -" --left-column Muestra sólo la columna izquierda en las líneas comunes.\n" -" --suppress-common-lines No muestra las líneas comunes." - -#: src/diff.c:861 -msgid "-D NAME --ifdef=NAME Output merged file to show `#ifdef NAME' diffs." -msgstr "" -"-D NOMBRE --ifdef=NOMBRE Genera un fichero combinado que muestra las\n" -" diferencias con '#ifdef NOMBRE'" - -# Propongo similar -> parecida. Ver gettext. sv -# Hmmm ... prefiero similar. Antes estaba puesto `parecida' y la verdad, -# no quedaba tan bien. ipg -#: src/diff.c:862 -msgid "" -"--GTYPE-group-format=GFMT Similar, but format GTYPE input groups with GFMT." -msgstr "" -"--GTYPE-group-format=GFMT Similar, pero formatea los grupos de entrada " -"GTYPE\n" -" con GFMT." - -#: src/diff.c:863 -msgid "--line-format=LFMT Similar, but format all input lines with LFMT." -msgstr "" -"--line-format=LFMT Similar, pero formatea todas las líneas de entrada\n" -" con LFMT." - -# ídem. sv -#: src/diff.c:864 -msgid "" -"--LTYPE-line-format=LFMT Similar, but format LTYPE input lines with LFMT." -msgstr "" -"--LTYPE-line-format=LFMT Similar, pero formatea las líneas de entrada " -"LTYPE\n" -" con LFMT." - -#: src/diff.c:865 -msgid " LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'." -msgstr "" -" LTYPE es `old' (antiguo), `new' (nuevo) o `unchanged' (sin cambios).\n" -" GTYPE es como LTYPE o `changed' (cambiado)." - -#: src/diff.c:866 -msgid "" -" GFMT may contain:\n" -" %< lines from FILE1\n" -" %> lines from FILE2\n" -" %= lines common to FILE1 and FILE2\n" -" %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" -" LETTERs are as follows for new group, lower case for old group:\n" -" F first line number\n" -" L last line number\n" -" N number of lines = L-F+1\n" -" E F-1\n" -" M L+1" -msgstr "" -" GFMT puede contener:\n" -" %< líneas del FICHERO1\n" -" %> líneas del FICHERO2\n" -" %= líneas comunes a FICHERO1 y FICHERO2\n" -" %[-][ANCHO][.[PRECISIÓN]]{doxX}LETRA especificación printf para LETRA\n" -" Las LETRAs pueden ser como siguen para grupos nuevos (en minúsculas\n" -" para grupos antiguos):\n" -" F número de la primera línea\n" -" L número de la última línea\n" -" N número de líneas = L-F+1\n" -" E F-1\n" -" M L+1" - -#: src/diff.c:877 -msgid "" -" LFMT may contain:\n" -" %L contents of line\n" -" %l contents of line, excluding any trailing newline\n" -" %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number" -msgstr "" -" LFMT puede contener:\n" -" %L contenido de la línea\n" -" %l contenido de la línea, excluyendo caracteres de nueva línea finales\n" -" %[-][ANCHO][.[PRECISIÓN]]{doxX}n especificación en estilo printf para " -"el\n" -" número de línea de entrada" - -#: src/diff.c:881 -msgid "" -" Either GFMT or LFMT may contain:\n" -" %% %\n" -" %c'C' the single character C\n" -" %c'\\OOO' the character with octal code OOO" -msgstr "" -" Tanto GFMT como LFMT pueden contener:\n" -" %% %\n" -" %c'C' el carácter C\n" -" %c'\\OOO' el carácter con código octal OOO" - -# Sugerencia: la salida -> el resultado. -# (y paginarla -> paginarlo, en su caso). sv -# Yo personalmente prefiero `la salida'; si traducimos literalmente el -# inglés es eso, no cabe duda, pero poner `el resultado' no me cuadra. -# Lo digo porque tenemos una entrada y una salida (por un lado entran -# los cerdos a la máquina de hacer chorizos, y por otro salen). Creo -# que con esto me guiaré por lo que haya hecho el resto de la gente. -# Si sabes qué han hecho ... :). ipg -# Te mandaré el gettext, para que veas lo que vale un peine... sv -# X'D ... no soy tan malo ... ipg -# Medita de nuevo si no usas resultado em -#: src/diff.c:886 -msgid "-l --paginate Pass the output through `pr' to paginate it." -msgstr "-l --paginate Pasa la salida a través de `pr' para paginarla." - -# Aquí a lo mejor también: la salida -> el resultado. sv -#: src/diff.c:887 src/sdiff.c:198 -msgid "-t --expand-tabs Expand tabs to spaces in output." -msgstr "-t --expand-tabs Expande los tabuladores a espacios en la salida." - -#: src/diff.c:888 src/diff3.c:452 -msgid "-T --initial-tab Make tabs line up by prepending a tab." -msgstr "" -"-T --initial-tab Hace que los tabuladores se alineen anteponiendo uno." - -#: src/diff.c:890 -msgid "-r --recursive Recursively compare any subdirectories found." -msgstr "-r --recursive Compara recursivamente todos los subdirectorios." - -#: src/diff.c:891 -msgid "-N --new-file Treat absent files as empty." -msgstr "-N --new-file Trata los ficheros que no existan como vacíos." - -#: src/diff.c:892 -msgid "--unidirectional-new-file Treat absent first files as empty." -msgstr "" -"--unidirectional-new-file Trata los ficheros originales que no existan\n" -" como vacíos." - -#: src/diff.c:893 -msgid "-s --report-identical-files Report when two files are the same." -msgstr "" -"-s --report-identical-files Notifica cuándo dos ficheros son idénticos." - -#: src/diff.c:894 -msgid "-x PAT --exclude=PAT Exclude files that match PAT." -msgstr "-x PAT --exclude=PAT Excluye los ficheros que coincidan con PAT." - -#: src/diff.c:895 -msgid "" -"-X FILE --exclude-from=FILE Exclude files that match any pattern in FILE." -msgstr "" -"-X FICHERO --exclude-from=FICHERO Excluye los ficheros que coincidan con\n" -" alguna expresión regular de FICHERO." - -#: src/diff.c:896 -msgid "" -"-S FILE --starting-file=FILE Start with FILE when comparing directories." -msgstr "" -"-S FICHERO --starting-file=FICHERO Comienza por FICHERO cuando se " -"comparan\n" -" directorios." - -#: src/diff.c:897 -msgid "" -"--from-file=FILE1 Compare FILE1 to all operands. FILE1 can be a directory." -msgstr "" -"--from-file=FICHERO1 Compara FICHERO1 con todos los operandos.\n" -" FICHERO1 puede ser un directorio." - -#: src/diff.c:898 -msgid "" -"--to-file=FILE2 Compare all operands to FILE2. FILE2 can be a directory." -msgstr "" -"--to-file=FICHERO2 Compara todos los operandos con FICHERO2.\n" -" FICHERO2 puede ser un directorio." - -#: src/diff.c:900 -msgid "--horizon-lines=NUM Keep NUM lines of the common prefix and suffix." -msgstr "" -"--horizon-lines=NÚM Mantiene NÚM líneas de prefijos y sufijos comunes." - -#: src/diff.c:901 src/sdiff.c:200 -msgid "-d --minimal Try hard to find a smaller set of changes." -msgstr "-d --minimal Se esfuerza en encontrar un grupo de cambios menor." - -#: src/diff.c:902 -msgid "" -"--speed-large-files Assume large files and many scattered small changes." -msgstr "" -"--speed-large-files Supone que los ficheros son grandes y los cambios son\n" -" numerosos, pequeños y dispersos." - -#: src/diff.c:907 -msgid "" -"FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'." -msgstr "" -"FICHEROS puede ser `FICHERO1 FICHERO2' o `DIRECTORIO1 DIRECTORIO2'\n" -" o `DIRECTORIO FICHERO...' o `FICHERO... DIRECTORIO'." - -#: src/diff.c:908 -msgid "" -"If --from-file or --to-file is given, there are no restrictions on FILES." -msgstr "Si se da --from-file o --to-file, no hay restricciones en FICHEROS." - -#: src/diff.c:909 src/diff3.c:474 src/sdiff.c:222 -msgid "If a FILE is `-', read standard input." -msgstr "Si un FICHERO es `-', lee la entrada estándar." - -#: src/diff.c:920 -#, c-format -msgid "Usage: %s [OPTION]... FILES\n" -msgstr "Modo de empleo: %s [OPCIÓN]... FICHEROS\n" - -#: src/diff.c:949 -#, c-format -msgid "conflicting %s option value `%s'" -msgstr "la opción %s tiene el valor conflictivo `%s'" - -#: src/diff.c:962 -msgid "conflicting output style options" -msgstr "las especificaciones del estilo de salida son conflictivas" - -#: src/diff.c:976 -msgid "regular empty file" -msgstr "fichero regular vacío" - -#: src/diff.c:976 -msgid "regular file" -msgstr "fichero regular" - -#: src/diff.c:978 -msgid "directory" -msgstr "directorio" - -#: src/diff.c:981 -msgid "block special file" -msgstr "fichero especial de bloques" - -#: src/diff.c:984 -msgid "character special file" -msgstr "fichero especial de caracteres" - -#: src/diff.c:987 -msgid "fifo" -msgstr "`fifo'" - -#: src/diff.c:991 -msgid "socket" -msgstr "`socket'" - -#: src/diff.c:994 -msgid "message queue" -msgstr "cola de mensajes" - -#: src/diff.c:997 -msgid "semaphore" -msgstr "semáforo" - -#: src/diff.c:1000 -msgid "shared memory object" -msgstr "objeto de memoria compartido" - -# ¿Alguien sabe lo que es esto? -#: src/diff.c:1003 -msgid "typed memory object" -msgstr "objeto de memoria `typed'" - -# FIXME -# se podría decir algo más decente para "weird" ... pero ¿qué? -# ¿ no habitual ? em -# ¡Nchts! Prefiero extraño ... no habitual me suena muy difuso -# siempre podemos poner escachifollado ;) ipg -#: src/diff.c:1006 -msgid "weird file" -msgstr "fichero extraño" - -#: src/diff.c:1070 src/diff.c:1256 -#, c-format -msgid "Only in %s: %s\n" -msgstr "Sólo en %s: %s\n" - -#: src/diff.c:1193 -msgid "cannot compare `-' to a directory" -msgstr "no se puede comparar `-' con un directorio" - -#: src/diff.c:1220 -msgid "-D option not supported with directories" -msgstr "la opción -D no se puede usar con directorios" - -#: src/diff.c:1229 -#, c-format -msgid "Common subdirectories: %s and %s\n" -msgstr "Subdirectorios comunes: %s y %s\n" - -# Nota: El segundo y el cuarto `%s' son tipos de fichero. -# Por ejemplo, "texto C", "texto FORTRAN", etc. -#: src/diff.c:1266 -#, c-format -msgid "File %s is a %s while file %s is a %s\n" -msgstr "El fichero %s es un %s mientras que el %s es un %s\n" - -#: src/diff.c:1345 -#, c-format -msgid "Files %s and %s are identical\n" -msgstr "Los ficheros %s y %s con idénticos\n" - -#: src/diff3.c:26 -msgid "Written by Randy Smith." -msgstr "Escrito por Randy Smith." - -#: src/diff3.c:328 -msgid "incompatible options" -msgstr "opciones incompatibles" - -#: src/diff3.c:368 -msgid "`-' specified for more than one input file" -msgstr "se ha especificado `-' para más de un fichero de entrada" - -#: src/diff3.c:408 src/diff3.c:1232 src/diff3.c:1645 src/diff3.c:1700 -#: src/sdiff.c:305 src/sdiff.c:879 src/sdiff.c:890 -msgid "read failed" -msgstr "la lectura falló" - -# Sería ideal traducir OLDFILE y YOURFILE. sv -# Sí, eso pensé yo, pero no sé como ponerlo para que quede bien ... -# Esto no hay quien lo entienda, piénsalo 3 minutos más si te apetece :) em+ -# -# OLDFILE FICHERO-ANTIGUO -# YOURFILE TU-FICHERO -# MYFILE MI-FICHERO -# -# Pongo eso por ahora, pero espero una sugerencia mejor ;) -#: src/diff3.c:441 -msgid "-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE." -msgstr "" -"-e --ed Muestra los cambios sin mezclar entre FICHERO-ANTIGUO\n" -" y TU-FICHERO en MI-FICHERO." - -#: src/diff3.c:442 -msgid "-E --show-overlap Output unmerged changes, bracketing conflicts." -msgstr "" -"-E --show-overlap Muestra los cambios no mezclados, encerrando los\n" -" conflictos entre corchetes." - -#: src/diff3.c:443 -msgid "-A --show-all Output all changes, bracketing conflicts." -msgstr "" -"-A --show-all Muestra todos los cambios, encerrando los conflictos entre\n" -" corchetes." - -#: src/diff3.c:444 -msgid "-x --overlap-only Output overlapping changes." -msgstr "-x --overlap-only Muestra los cambios que se solapen." - -#: src/diff3.c:445 -msgid "-X Output overlapping changes, bracketing them." -msgstr "-X Muestra los cambios superpuestos (entre corchetes)." - -#: src/diff3.c:446 -msgid "-3 --easy-only Output unmerged nonoverlapping changes." -msgstr "-3 --easy-only Muestra los cambios no mezclados ni superpuestos." - -#: src/diff3.c:448 -msgid "-m --merge Output merged file instead of ed script (default -A)." -msgstr "" -"-m --merge Produce un fichero mezclado en lugar de un\n" -" script ed (por omisión -A)." - -#: src/diff3.c:449 -msgid "-L LABEL --label=LABEL Use LABEL instead of file name." -msgstr "-L NOMBRE --label=NOMBRE Usa NOMBRE en lugar del nombre de fichero." - -#: src/diff3.c:450 -msgid "-i Append `w' and `q' commands to ed scripts." -msgstr "-i Añade las órdenes `w' y `q' a los `scripts' ed." - -#: src/diff3.c:453 src/sdiff.c:202 -msgid "--diff-program=PROGRAM Use PROGRAM to compare files." -msgstr "--diff-program=PROGRAMA Utiliza PROGRAMA para comparar los ficheros." - -#: src/diff3.c:465 -#, c-format -msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n" -msgstr "Modo de empleo: %s [OPCIÓN]... MI-FICHERO FICHERO-ANTIGUO TU-FICHERO\n" - -#: src/diff3.c:467 -msgid "Compare three files line by line." -msgstr "Compara tres ficheros línea por línea." - -#: src/diff3.c:673 -msgid "internal error: screwup in format of diff blocks" -msgstr "error interno: fallo en el formato de los bloques diff" - -#: src/diff3.c:971 -#, c-format -msgid "%s: diff failed: " -msgstr "%s: diff falló: " - -#: src/diff3.c:993 -msgid "internal error: invalid diff type in process_diff" -msgstr "error interno: tipo de diff inválido en process_diff" - -#: src/diff3.c:1018 -msgid "invalid diff format; invalid change separator" -msgstr "formato de diff inválido; separador de cambio inválido" - -#: src/diff3.c:1242 -msgid "invalid diff format; incomplete last line" -msgstr "formato de diff inválido; línea final incompleta" - -#: src/diff3.c:1265 src/sdiff.c:273 -#, c-format -msgid "subsidiary program `%s' not executable" -msgstr "el programa subsidiario `%s' no es ejecutable" - -#: src/diff3.c:1268 src/sdiff.c:276 src/util.c:298 -#, c-format -msgid "subsidiary program `%s' not found" -msgstr "no se encontró el programa subsidiario `%s'" - -#: src/diff3.c:1272 src/sdiff.c:268 src/util.c:301 -#, c-format -msgid "subsidiary program `%s' failed" -msgstr "el programa subsidiario `%s' falló" - -#: src/diff3.c:1294 -msgid "invalid diff format; incorrect leading line chars" -msgstr "" -"formato de diff inválido; caracteres incorrectos al comienzo de la línea" - -#: src/diff3.c:1370 -msgid "internal error: invalid diff type passed to output" -msgstr "error interno: tipo de diff inválido pasado a la salida" - -#: src/diff3.c:1647 src/diff3.c:1704 -msgid "input file shrank" -msgstr "el fichero de entrada ha menguado" - -#: src/dir.c:162 -#, c-format -msgid "cannot compare file names `%s' and `%s'" -msgstr "no se pueden comparar los nombres de fichero `%s' y `%s'" - -#: src/sdiff.c:35 -msgid "Written by Thomas Lord." -msgstr "Escrito por Thomas Lord." - -#: src/sdiff.c:183 -msgid "-o FILE --output=FILE Operate interactively, sending output to FILE." -msgstr "" -"-o FICHERO --output=FICHERO Opera interactivamente, enviando el resultado\n" -" al fichero FICHERO." - -#: src/sdiff.c:185 -msgid "-i --ignore-case Consider upper- and lower-case to be the same." -msgstr "-i --ignore-case Considera iguales mayúsculas y minúsculas." - -#: src/sdiff.c:188 -msgid "-W --ignore-all-space Ignore all white space." -msgstr "-W --ignore-all-space Descarta los espacios en blanco." - -#: src/sdiff.c:194 -msgid "-w NUM --width=NUM Output at most NUM (default 130) columns per line." -msgstr "" -"-w NÚM --width=NÚM Muestra como mucho NÚM caracteres por línea\n" -" (por omisión 130)." - -#: src/sdiff.c:195 -msgid "-l --left-column Output only the left column of common lines." -msgstr "" -"-l --left-column Muestra sólo en la columna izquierda las líneas comunes." - -#: src/sdiff.c:196 -msgid "-s --suppress-common-lines Do not output common lines." -msgstr "-s --suppress-common-lines No muestra las líneas comunes." - -#: src/sdiff.c:201 -msgid "" -"-H --speed-large-files Assume large files and many scattered small changes." -msgstr "" -"-H --speed-large-files Supone que los ficheros son grandes y los cambios " -"son\n" -" numerosos, pequeños y dispersos." - -#: src/sdiff.c:214 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 FILE2\n" -msgstr "Modo de empleo: %s [OPCIÓN]... FICHERO1 FICHERO2\n" - -# Se admiten sugerencias. -#: src/sdiff.c:215 -msgid "Side-by-side merge of file differences." -msgstr "Combinación a dos columnas de las diferencias entre ficheros." - -#: src/sdiff.c:327 -msgid "cannot interactively merge standard input" -msgstr "no se puede mezclar interactivamente con la entrada estándar" - -#: src/sdiff.c:588 -msgid "both files to be compared are directories" -msgstr "los dos ficheros que hay que comparar son directorios" - -# FIXME -# ¿sugerencias para traducir mejor "verbosely"? -# ¿ Con verborrea ?, ;) -# era una broma, ¿ qué tal prolijamente ? em -# Huy ... mi famosa enciclopedia no dice en prolijo nada que se -# parezca a dar mucho la lata ... casi que lo dejamos, ¿no? ipg -# Sugerencia -> `verbosamente' -> con detalle. sv -# Hfff ... es que `con detalle' suena más a dar detalles de lo -# que es cada cosa, que no a que se está haciendo ipg -# Federico ha usado "prolijamente" en tar. Algo habrá que hacer, porque -# verbosamente no me suena a español. ¿Existe eso? sv -# A mi tampoco ... voy a ver si conecto con el diccionario de Anaya -# y lo miro ... a veeeeerrr ... ya ta: -# prolijo, -a: Del lat. prolixus = fluyente. -# 1. (adjetivo, -a). Largo, muy extenso. -# 2. (adjetivo, -a). Cuidadoso o esmerado con exceso. -# 3. (adjetivo, -a). Cargante, molesto. -# FAM: Prolijamente, prolijidad. -# SIN. 1. Amplio. 3. Impertinente, pesado. -# ANT. 1. Lacónico, conciso. 2. Descuidado. 3. Ameno. -# (Referencia: http://www.anaya.es/dict/Buscar) -# -# Pues está claro que es castellano (o español), pero yo no lo había -# oído hasta ahora, y me imagino que mucha gente estará igual. Yo -# voto por buscar algo más común (y creo que verbosamente vale, -# momento que lo bujco). ipg -# -# ¿ Lo encontraste ? , yo no lo he oído en mi vida, y me suena a verborrea, que -# es más bien despectivo. ¿ qué tal `con detalle' ? em+ -# Dejo verbosamente, que al menos el alma precavida lo asociará con que hay -# mucho verbo :) ipg -# -# Pero vamos a ver, ¿la palabra "verbosamente" existe? -# A mí me parece completamente un "palabro". sv -# ## ¿Por qué no la buscas en algún diccionario? sv -# ## Momeneto ... en la Espasa Calpe viene: -# ## verbosamente: adverbio, con verbosidad. -# ## En Anaya (http://www.anaya.es/dict): -# ## verbosidad -# ## I. De verbo. -# ## 1. (sustantivo femenino). Verborrea. -#: src/sdiff.c:853 -msgid "" -"ed:\tEdit then use both versions, each decorated with a header.\n" -"eb:\tEdit then use both versions.\n" -"el:\tEdit then use the left version.\n" -"er:\tEdit then use the right version.\n" -"e:\tEdit a new version.\n" -"l:\tUse the left version.\n" -"r:\tUse the right version.\n" -"s:\tSilently include common lines.\n" -"v:\tVerbosely include common lines.\n" -"q:\tQuit.\n" -msgstr "" -"ed: Edita y usa ambas versiones, cada una decorada con una cabecera.\n" -"eb: Edita y usa ambas versiones.\n" -"el: Edita y usa la versión izquierda.\n" -"er: Edita y usa la versión derecha.\n" -"e: Edita una nueva versión.\n" -"l: Usa la versión izquierda.\n" -"r: Usa la versión derecha.\n" -"s: Incluye líneas comunes silenciosamente.\n" -"v: Incluye líneas comunes verbosamente.\n" -"q: Salir.\n" - -# Creo que es suficientemente decente, pero se admiten sugerencias. -#~ msgid "--inhibit-hunk-merge Do not merge hunks." -#~ msgstr "--inhibit-hunk-merge No junta los trozos." - -#~ msgid "context length specified twice" -#~ msgstr "la longitud del contexto se ha especificado dos veces" - -#~ msgid "multiple `--from-file' options" -#~ msgstr "se han dado varias opciones `--from-file'" - -#~ msgid "multiple `--to-file' options" -#~ msgstr "se han dado varias opciones `--to-file'" - -#~ msgid "regular empty executable file" -#~ msgstr "fichero regular ejecutable vacío" - -#~ msgid "regular executable file" -#~ msgstr "fichero regular vacío" - -#~ msgid ": not found\n" -#~ msgstr ": no encontrado\n" - -#~ msgid "-D%s: conflicting #ifdef format" -#~ msgstr "-D%s: formato #ifdef conflictivo" - -#~ msgid "%s: conflicting line format" -#~ msgstr "%s: formato de línea conflictivo" - -#~ msgid "conflicting group format" -#~ msgstr "formato de grupo conflictivo" - -#~ msgid "--ignore-initial value must be a nonnegative integer" -#~ msgstr "el valor de --ignore-initial debe ser un entero no negativo" - -#~ msgid "column width must be a positive integer" -#~ msgstr "el ancho de la columna debe ser un entero positivo" - -#~ msgid "context length must be a nonnegative integer" -#~ msgstr "la longitud del contexto ha de ser un entero no negativo" - -#~ msgid "horizon must be a nonnegative integer" -#~ msgstr "el horizonte (horizon) ha de ser un entero no negativo" diff --git a/gnu/dist/diffutils/po/fr.gmo b/gnu/dist/diffutils/po/fr.gmo deleted file mode 100644 index eeeea833960..00000000000 Binary files a/gnu/dist/diffutils/po/fr.gmo and /dev/null differ diff --git a/gnu/dist/diffutils/po/fr.po b/gnu/dist/diffutils/po/fr.po deleted file mode 100644 index 43cd5df4ca7..00000000000 --- a/gnu/dist/diffutils/po/fr.po +++ /dev/null @@ -1,1033 +0,0 @@ -# Messages français pour GNU concernant diffutils. -# Copyright (C) 1996 Free Software Foundation, Inc. -# Michel Robitaille , 1996. -# -msgid "" -msgstr "" -"Project-Id-Version: GNU diffutils 2.7.10\n" -"POT-Creation-Date: 2002-04-05 14:10-0800\n" -"PO-Revision-Date: 2002-03-17 20:00-0500\n" -"Last-Translator: Michel Robitaille \n" -"Language-Team: French \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: lib/c-stack.c:188 -msgid "program error" -msgstr "erreur du programme" - -#: lib/c-stack.c:189 -msgid "stack overflow" -msgstr "débordement de pile" - -#: lib/error.c:128 lib/error.c:156 -msgid "Unknown system error" -msgstr "Erreur système inconnue" - -#: lib/freesoft.c:27 -msgid "" -"This program comes with NO WARRANTY, to the extent permitted by law.\n" -"You may redistribute copies of this program\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING." -msgstr "" -"Ce programme est fourni sans AUCUNE GARANTIE, tel que permis par la loi.\n" -"Vous pouvez le redistribuer selon les termes de « GNU General Public License " -"»,\n" -"lire le texte du fichier COPYING pour plus de détails." - -#: lib/getopt.c:693 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s: l'option « %s » est ambiguë.\n" - -#: lib/getopt.c:718 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: l'option « --%s » ne permet aucun argument.\n" - -#: lib/getopt.c:723 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: l'option « %c%s » ne permet aucun argument.\n" - -#: lib/getopt.c:741 lib/getopt.c:914 -#, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s: l'option « %s » requiert un argument.\n" - -#: lib/getopt.c:770 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: l'option « --%s » n'est pas reconnue.\n" - -#: lib/getopt.c:774 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: l'option « %c%s » n'est pas reconnue.\n" - -#: lib/getopt.c:800 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: l'option -- %c est illégale.\n" - -#: lib/getopt.c:803 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: l'option -- %c est invalide.\n" - -#: lib/getopt.c:833 lib/getopt.c:963 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: l'option -- %c requiert un argument.\n" - -#: lib/getopt.c:880 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "%s: l'option « -W %s » est ambiguë.\n" - -#: lib/getopt.c:898 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: l'option « -W %s » ne permet aucun argument.\n" - -#: lib/regex.c:1367 -msgid "Success" -msgstr "Succès" - -#: lib/regex.c:1370 -msgid "No match" -msgstr "Pas de concordance." - -#: lib/regex.c:1373 -msgid "Invalid regular expression" -msgstr "L'expression régulière est invalide." - -#: lib/regex.c:1376 -msgid "Invalid collation character" -msgstr "Le caractère de regroupement est invalide." - -#: lib/regex.c:1379 -msgid "Invalid character class name" -msgstr "Le nom d'un ensemble de caractères est invalide." - -#: lib/regex.c:1382 -msgid "Trailing backslash" -msgstr "Barre oblique inverse à la fin." - -#: lib/regex.c:1385 -msgid "Invalid back reference" -msgstr "La référence arrière est invalide." - -#: lib/regex.c:1388 -msgid "Unmatched [ or [^" -msgstr "[ or [^ non repéré." - -#: lib/regex.c:1391 -msgid "Unmatched ( or \\(" -msgstr " ( ou \\( non repéré." - -#: lib/regex.c:1394 -msgid "Unmatched \\{" -msgstr "\\{ non repéré." - -#: lib/regex.c:1397 -msgid "Invalid content of \\{\\}" -msgstr "Le contenu de \\{\\} est invalide." - -#: lib/regex.c:1400 -msgid "Invalid range end" -msgstr "La fin d'intervalle est invalide." - -#: lib/regex.c:1403 -msgid "Memory exhausted" -msgstr "Mémoire épuisée." - -#: lib/regex.c:1406 -msgid "Invalid preceding regular expression" -msgstr "L'expression régulière précédente est invalide." - -#: lib/regex.c:1409 -msgid "Premature end of regular expression" -msgstr "Fin prématurée de l'expression régulière." - -#: lib/regex.c:1412 -msgid "Regular expression too big" -msgstr "Expression régulière trop grande." - -#: lib/regex.c:1415 -msgid "Unmatched ) or \\)" -msgstr ") or \\) non repéré." - -#: lib/regex.c:8034 -msgid "No previous regular expression" -msgstr "N'est pas précédé d'une expression régulière." - -#: lib/xmalloc.c:63 -msgid "memory exhausted" -msgstr "mémoire épuisée" - -#: src/analyze.c:809 src/diff.c:1283 -#, c-format -msgid "Files %s and %s differ\n" -msgstr "Les fichiers %s et %s sont différents.\n" - -#: src/analyze.c:812 -#, c-format -msgid "Binary files %s and %s differ\n" -msgstr "Les fichiers binaires %s et %s sont différents.\n" - -#: src/analyze.c:1058 src/diff3.c:1413 src/util.c:526 -msgid "No newline at end of file" -msgstr "Pas de fin de ligne à la fin du fichier." - -#: src/cmp.c:43 -msgid "Written by Torbjorn Granlund and David MacKenzie." -msgstr "Écrit par Torbjorn Granlund et David MacKenzie." - -#: src/cmp.c:118 src/diff.c:817 src/diff3.c:427 src/sdiff.c:168 -#, c-format -msgid "Try `%s --help' for more information." -msgstr "Pour en savoir davantage, faites: « %s --help »." - -#: src/cmp.c:137 -#, c-format -msgid "invalid --ignore-initial value `%s'" -msgstr "valeur invalide --ignore-initial « %s »" - -#: src/cmp.c:146 -msgid "options -l and -s are incompatible" -msgstr "options -l et -s sont incompatibles" - -#: src/cmp.c:154 src/diff.c:826 src/diff3.c:435 src/sdiff.c:177 -#: src/sdiff.c:313 src/sdiff.c:320 src/sdiff.c:910 src/util.c:194 -#: src/util.c:286 src/util.c:293 -msgid "write failed" -msgstr "échec d'écriture" - -#: src/cmp.c:156 src/diff.c:828 src/diff.c:1354 src/diff3.c:437 -#: src/sdiff.c:179 -msgid "standard output" -msgstr "sortie standard" - -#: src/cmp.c:160 -msgid "-b --print-bytes Print differing bytes." -msgstr "-b --print-bytes afficher les octets qui diffèrent" - -#: src/cmp.c:161 -msgid "-i SKIP --ignore-initial=SKIP Skip the first SKIP bytes of input." -msgstr "-i N --ignore-initial=N escamoter les N premiers octets à l'entrée" - -#: src/cmp.c:162 -msgid "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2" -msgstr "-i SAUT1:SAUT2 --ignore-initial=SAUT1:SAUT2" - -#: src/cmp.c:163 -msgid "" -" Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2." -msgstr "" -" escamoter les SAUT1 premiers octets du FICHIER1 et les SAUT2 premiers " -"octets du FICHIER2" - -#: src/cmp.c:164 -msgid "-l --verbose Output byte numbers and values of all differing bytes." -msgstr "" -"-l --verbose afficher les numéros d'octets et les valeurs de tous les " -"octets qui diffèrent" - -#: src/cmp.c:165 -msgid "-n LIMIT --bytes=LIMIT Compare at most LIMIT bytes." -msgstr "-n LIMITE --bytes=LIMITE comparer un nombre d'octets selon la LIMITE." - -#: src/cmp.c:166 -msgid "-s --quiet --silent Output nothing; yield exit status only." -msgstr "" -"-s --quiet --silent ne rien afficher, produire seulement un constat de " -"fin d'exécution" - -#: src/cmp.c:167 src/diff.c:904 src/diff3.c:455 src/sdiff.c:204 -msgid "-v --version Output version info." -msgstr "-v --version afficher le nom et la version du logiciel" - -#: src/cmp.c:168 src/diff.c:905 src/diff3.c:456 src/sdiff.c:205 -msgid "--help Output this help." -msgstr "--help afficher l'aide-mémoire" - -#: src/cmp.c:177 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n" -msgstr "Usage: %s [OPTION]... FICHIER1 [FICHIER2 [SAUT1 [SAUT2]]]\n" - -#: src/cmp.c:179 -msgid "Compare two files byte by byte." -msgstr "Comparer deux fichiers octet par octet" - -#: src/cmp.c:183 -msgid "SKIP1 and SKIP2 are the number of bytes to skip in each file." -msgstr "" -"SAUT1 et SAUT2 correspondent au nombre d'octets à escamoter dans chaque " -"fichier" - -#: src/cmp.c:184 -msgid "" -"SKIP values may be followed by the following multiplicative suffixes:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y." -msgstr "" -"valeurs de SAUT peuvent être suivies par un des suffixes multiplicateurs " -"suivants:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, et ainsi de suite pour T, P, E, Z, Y." - -#: src/cmp.c:187 -msgid "If a FILE is `-' or missing, read standard input." -msgstr "Si FICHIER spécifié est « - » ou manquant, lire de l'entrée standard" - -#: src/cmp.c:188 src/diff.c:911 src/diff3.c:475 src/sdiff.c:223 -msgid "Report bugs to ." -msgstr "Rapporter toutes anomalies à " - -#: src/cmp.c:231 -#, c-format -msgid "invalid --bytes value `%s'" -msgstr "valeur invalide --bytes « %s »" - -#: src/cmp.c:258 src/diff.c:734 src/diff3.c:333 src/sdiff.c:558 -#, c-format -msgid "missing operand after `%s'" -msgstr "opérande manquante après « %s »" - -#: src/cmp.c:270 src/diff.c:736 src/diff3.c:335 src/sdiff.c:560 -#, c-format -msgid "extra operand `%s'" -msgstr "opérande supplémentaire « %s »" - -#: src/cmp.c:477 -#, c-format -msgid "%s %s differ: byte %s, line %s\n" -msgstr "%s %s sont différents: octet %s, ligne %s\n" - -#: src/cmp.c:495 -#, c-format -msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n" -msgstr "%s %s diffèrent: octet %s, ligne %s est %3o %s %3o %s\n" - -#: src/cmp.c:543 -#, c-format -msgid "cmp: EOF on %s\n" -msgstr "cmp: Fin-de-fichier (EOF) sur %s\n" - -#: src/diff.c:41 -msgid "" -"Written by Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman, and Len Tower." -msgstr "" -"Écrit par Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman et Len Tower." - -#: src/diff.c:322 -#, c-format -msgid "invalid context length `%s'" -msgstr "longueur du contexte invalide « %s »" - -#: src/diff.c:405 -msgid "pagination not supported on this host" -msgstr "La pagination 'est pas supporté sur cette machine hôte." - -#: src/diff.c:420 src/diff3.c:315 -msgid "too many file label options" -msgstr "Trop d'options présentes pour nommer les fichiers." - -#: src/diff.c:498 -#, c-format -msgid "invalid width `%s'" -msgstr "largeur invalide « %s »" - -#: src/diff.c:502 -msgid "conflicting width options" -msgstr "option de largeur conflictuelle" - -#: src/diff.c:526 -#, c-format -msgid "invalid horizon length `%s'" -msgstr "longueur d'horizon invalide « %s »" - -#: src/diff.c:629 -#, c-format -msgid "`-%ld' option is obsolete; use `-%c %ld'" -msgstr "l'option « -%ld » est obsolète; utilise « -%c %ld »" - -#: src/diff.c:641 -#, c-format -msgid "`-%ld' option is obsolete; omit it" -msgstr "l'option « -%ld » est obsolète; l'omettre" - -#: src/diff.c:709 -msgid "--from-file and --to-file both specified" -msgstr "--from-file et --to-file ont été spécifiés ensemble" - -#: src/diff.c:832 -msgid "Compare files line by line." -msgstr "Comparer les fichiers ligne par ligne" - -#: src/diff.c:834 -msgid "-i --ignore-case Ignore case differences in file contents." -msgstr "" -"-i --ignore-case ignorer les différences de casses dans le contenu des " -"fichiers" - -#: src/diff.c:835 -msgid "--ignore-file-name-case Ignore case when comparing file names." -msgstr "" -"--ignore-file-name-case ignorer la casse lors de la comparaison des noms de " -"fichiers" - -#: src/diff.c:836 -msgid "--no-ignore-file-name-case Consider case when comparing file names." -msgstr "" -"--no-ignore-file-name-case tenir compte de la casse lors de la comparaison " -"des noms de fichiers" - -#: src/diff.c:837 src/sdiff.c:186 -msgid "-E --ignore-tab-expansion Ignore changes due to tab expansion." -msgstr "" -"-E --ignore-tab-expansion ignorer les changements liés à l'expansion des " -"tabulations" - -#: src/diff.c:838 src/sdiff.c:187 -msgid "-b --ignore-space-change Ignore changes in the amount of white space." -msgstr "-b --ignore-space-change ignorer les changements dans l'espacement" - -#: src/diff.c:839 -msgid "-w --ignore-all-space Ignore all white space." -msgstr "-w --ignore-all-space ignorer tout blanc d'espacement" - -#: src/diff.c:840 src/sdiff.c:189 -msgid "-B --ignore-blank-lines Ignore changes whose lines are all blank." -msgstr "" -"-B --ignore-blank-lines ignorer les changements dont toutes les lignes " -"sont blanches" - -#: src/diff.c:841 src/sdiff.c:190 -msgid "" -"-I RE --ignore-matching-lines=RE Ignore changes whose lines all match RE." -msgstr "" -"-I EXPREG --ignore-matching-lines=EXPREG ignorer les différences dont les " -"lignes concordent à l'EXPression RÉGulière" - -#: src/diff.c:842 src/sdiff.c:191 -msgid "--strip-trailing-cr Strip trailing carriage return on input." -msgstr "--strip-trailing-cr éliminer les retours de chariot de l'entrée." - -#: src/diff.c:844 -msgid "--binary Read and write data in binary mode." -msgstr "--binary lire et écrire les données en binaire" - -#: src/diff.c:846 src/diff3.c:451 src/sdiff.c:192 -msgid "-a --text Treat all files as text." -msgstr "-a --text traiter tous les fichiers comme des textes." - -#: src/diff.c:848 -msgid "" -"-c -C NUM --context[=NUM] Output NUM (default 3) lines of copied " -"context.\n" -"-u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified " -"context.\n" -" --label LABEL Use LABEL instead of file name.\n" -" -p --show-c-function Show which C function each change is in.\n" -" -F RE --show-function-line=RE Show the most recent line matching RE." -msgstr "" -"-c -C N --context[=N] afficher N lignes de contexte (3 par défaut)\n" -"-u -U N --unified[=N] afficher N lignes du contexte unifié (3 par " -"défaut)\n" -" --label ÉTIQ utiliser l'ÉTIQuette comme nom de fichier.\n" -" -p --show-c-function identifier la fonction contenant chaque " -"différence.\n" -" -F EXPREG\n" -" --show-function-line=EXPREG\n" -" afficher la ligne la plus récente qui " -"concorde\n" -" avec l'EXPression RÉGulière" - -#: src/diff.c:853 -msgid "-q --brief Output only whether files differ." -msgstr "-q --brief indiquer seulement si les fichiers diffèrent ou non" - -#: src/diff.c:854 -msgid "-e --ed Output an ed script." -msgstr "-e --ed générer un script pour « ed »" - -#: src/diff.c:855 -msgid "--normal Output a normal diff." -msgstr "--normal produire un « diff » en format normal" - -#: src/diff.c:856 -msgid "-n --rcs Output an RCS format diff." -msgstr "-n --rcs générer un fichier de type « diff » en format RCS" - -#: src/diff.c:857 -msgid "" -"-y --side-by-side Output in two columns.\n" -" -W NUM --width=NUM Output at most NUM (default 130) print columns.\n" -" --left-column Output only the left column of common lines.\n" -" --suppress-common-lines Do not output common lines." -msgstr "" -"-y --side-by-side afficher la sortie sur deux colonnes\n" -" -w N --width=N limiter la sortie à N caractères par ligne (130 " -"par défaut)\n" -" --left-column afficher seulement la colonne de gauche pour les " -"lignes identiques\n" -" --suppress-common-lines ne pas afficher les lignes identiques" - -#: src/diff.c:861 -msgid "-D NAME --ifdef=NAME Output merged file to show `#ifdef NAME' diffs." -msgstr "" -"-D NOM --ifdef=NOM afficher la fusion des fichiers en indiquant les " -"différences par des « #ifdef NAME » dans le « diff » produit" - -#: src/diff.c:862 -msgid "" -"--GTYPE-group-format=GFMT Similar, but format GTYPE input groups with GFMT." -msgstr "" -"--GTYPE-group-format=GFMT similaire, mais formater les groupes\n" -" d'entrée GTYPE avec GFMT" - -#: src/diff.c:863 -msgid "--line-format=LFMT Similar, but format all input lines with LFMT." -msgstr "" -"--line-format=LFMT similaire, mais formater toutes les lignes d'entrée avec " -"LFMT" - -#: src/diff.c:864 -msgid "" -"--LTYPE-line-format=LFMT Similar, but format LTYPE input lines with LFMT." -msgstr "" -"--LTYPE-line-format=LFMT similaire, mais formater les lignes\n" -" d'entrée LTYPE avec LFMT" - -#: src/diff.c:865 -msgid " LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'." -msgstr "" -"LTYPE peut être soit « old », « new », ou « unchanged ». GTYPE prend une " -"des valeurs de LTYPE ou « changed »." - -#: src/diff.c:866 -msgid "" -" GFMT may contain:\n" -" %< lines from FILE1\n" -" %> lines from FILE2\n" -" %= lines common to FILE1 and FILE2\n" -" %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" -" LETTERs are as follows for new group, lower case for old group:\n" -" F first line number\n" -" L last line number\n" -" N number of lines = L-F+1\n" -" E F-1\n" -" M L+1" -msgstr "" -"GFMT peut contenir:\n" -" %< pour marquer les lignes du FICHIER1\n" -" %> pour marquer les lignes du FICHIER2\n" -" %= pour marquer les lignes identiques entre FICHIER1 et FICHIER2\n" -" %[-][LARGEUR][.[PREC]]{doxX}LETTRE, les spécifications de LETTRE\n" -" sont identiques à la notation que l'on retrouve dans « printf() »\n" -" dont les codes possibles de LETTRE sont\n" -" en majuscule pour le nouveau groupe, \n" -" en minuscules pour l'ancien groupe:\n" -" F numéro de la première ligne\n" -" L numéro de la dernière ligne\n" -" N nombre de lignes = L-F+1\n" -" E F-1\n" -" M L+1" - -#: src/diff.c:877 -msgid "" -" LFMT may contain:\n" -" %L contents of line\n" -" %l contents of line, excluding any trailing newline\n" -" %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number" -msgstr "" -"LFMT peut contenir:\n" -" %L pour le contenu de la ligne\n" -" %l pour le contenu de la ligne sans fin de " -"ligne\n" -" %[-][LARGEUR][.[PREC]]{doxX}n la spécification du numéro de ligne\n" -" d'entrée selon le format de printf()" - -#: src/diff.c:881 -msgid "" -" Either GFMT or LFMT may contain:\n" -" %% %\n" -" %c'C' the single character C\n" -" %c'\\OOO' the character with octal code OOO" -msgstr "" -"GFMT ou LFMT peuvent contenir:\n" -" %% %\n" -" %c« C » le caractère « C » lui-même\n" -" %c'\\OOO» le caractère dont le code octal est OOO" - -#: src/diff.c:886 -msgid "-l --paginate Pass the output through `pr' to paginate it." -msgstr "-l --paginate relayer la sortie à « pr » afin de la paginer" - -#: src/diff.c:887 src/sdiff.c:198 -msgid "-t --expand-tabs Expand tabs to spaces in output." -msgstr "-t --expand-tabs étaler les tabulateurs en espaces dans la sortie." - -#: src/diff.c:888 src/diff3.c:452 -msgid "-T --initial-tab Make tabs line up by prepending a tab." -msgstr "" -"-T --initial-tab aligner les tabulateurs par l'ajout d'un tabulateur de " -"préfixe" - -#: src/diff.c:890 -msgid "-r --recursive Recursively compare any subdirectories found." -msgstr "-r --recursive comparer récursivement les sous-répertoires présents" - -#: src/diff.c:891 -msgid "-N --new-file Treat absent files as empty." -msgstr "-N --new-file traiter les fichiers absents comme des fichiers vides" - -#: src/diff.c:892 -msgid "--unidirectional-new-file Treat absent first files as empty." -msgstr "" -"--unidirectional-new-file traiter les fichiers absents comme vides" - -#: src/diff.c:893 -msgid "-s --report-identical-files Report when two files are the same." -msgstr "" -"-s --report-identical-files indiquer si les deux fichiers sont identiques" - -#: src/diff.c:894 -msgid "-x PAT --exclude=PAT Exclude files that match PAT." -msgstr "" -"-x PAT --exclude=PAT exclure les fichiers dont les noms concordent avec le " -"PATron" - -#: src/diff.c:895 -msgid "" -"-X FILE --exclude-from=FILE Exclude files that match any pattern in FILE." -msgstr "" -"-X FICHIER --exclude-from=FICHIER exclure les fichiers dont les noms\n" -" concordent à ceux contenus dans le FICHIER" - -#: src/diff.c:896 -msgid "" -"-S FILE --starting-file=FILE Start with FILE when comparing directories." -msgstr "" -"-S FICHIER --starting-file=FICHIER débuter la comparaison des\n" -" répertoires par le FICHIER" - -#: src/diff.c:897 -msgid "" -"--from-file=FILE1 Compare FILE1 to all operands. FILE1 can be a directory." -msgstr "" -"--from-file=FICHIER1\n" -" comparer le FICHIER1 à toutes les opérandes.\n" -" FICHIER1 peut être un répertoire." - -#: src/diff.c:898 -msgid "" -"--to-file=FILE2 Compare all operands to FILE2. FILE2 can be a directory." -msgstr "" -"--to-file=FICHIER2\n" -" comparer toutes les opérandes à FICHIER2.\n" -" FICHIER2 peut être un répertoire." - -#: src/diff.c:900 -msgid "--horizon-lines=NUM Keep NUM lines of the common prefix and suffix." -msgstr "" -"--horizon-lines=N retenir N lignes ayant des préfixes et suffixes " -"identiques" - -#: src/diff.c:901 src/sdiff.c:200 -msgid "-d --minimal Try hard to find a smaller set of changes." -msgstr "" -"-d --minimal si possible afficher le plus petit ensemble de différences." - -#: src/diff.c:902 -msgid "" -"--speed-large-files Assume large files and many scattered small changes." -msgstr "" -"--speed-large-files traiter de grands fichiers et ayant plusieurs petits " -"changements dispersés" - -#: src/diff.c:907 -msgid "" -"FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'." -msgstr "" -"FICHIERS sont « FICHIER1 FICHIER2 » ou « RÉP1 RÉP2 » ou « RÉP FICHIER... » " -"ou «FICHIER... RÉP'." - -#: src/diff.c:908 -msgid "" -"If --from-file or --to-file is given, there are no restrictions on FILES." -msgstr "" -"Si --from-file ou --to-file est fournie, il n'y a pas de restriction sur les " -"FICHIERS." - -#: src/diff.c:909 src/diff3.c:474 src/sdiff.c:222 -msgid "If a FILE is `-', read standard input." -msgstr "Si le FICHIER spécifié est « - » alors lire de l'entrée standard." - -#: src/diff.c:920 -#, c-format -msgid "Usage: %s [OPTION]... FILES\n" -msgstr "Usage: %s [OPTION]... FICHIERS\n" - -#: src/diff.c:949 -#, c-format -msgid "conflicting %s option value `%s'" -msgstr "valeur « %s » conflictuelle de l'option %s" - -#: src/diff.c:962 -msgid "conflicting output style options" -msgstr "options de style de sortie conflictuelles" - -#: src/diff.c:976 -msgid "regular empty file" -msgstr "fichier régulier vide" - -#: src/diff.c:976 -msgid "regular file" -msgstr "fichier régulier" - -#: src/diff.c:978 -msgid "directory" -msgstr "répertoire" - -#: src/diff.c:981 -msgid "block special file" -msgstr "fichier spécial-blocs" - -#: src/diff.c:984 -msgid "character special file" -msgstr "fichier spécial-caractères" - -#: src/diff.c:987 -msgid "fifo" -msgstr "« fifo »" - -#: src/diff.c:991 -msgid "socket" -msgstr "« socket »" - -#: src/diff.c:994 -msgid "message queue" -msgstr "queue de messages" - -#: src/diff.c:997 -msgid "semaphore" -msgstr "sémaphore" - -#: src/diff.c:1000 -msgid "shared memory object" -msgstr "objet en mémoire partagée" - -#: src/diff.c:1003 -msgid "typed memory object" -msgstr "objet mémoire typé" - -#: src/diff.c:1006 -msgid "weird file" -msgstr "fichier bizarre" - -#: src/diff.c:1070 src/diff.c:1256 -#, c-format -msgid "Only in %s: %s\n" -msgstr "Seulement dans %s: %s\n" - -#: src/diff.c:1193 -msgid "cannot compare `-' to a directory" -msgstr "Ne peut comparer « - » avec un répertoire" - -#: src/diff.c:1220 -msgid "-D option not supported with directories" -msgstr "L'option -D ne traite pas les répertoires." - -#: src/diff.c:1229 -#, c-format -msgid "Common subdirectories: %s and %s\n" -msgstr "Les sous-répertoires %s et %s sont identiques.\n" - -#: src/diff.c:1266 -#, c-format -msgid "File %s is a %s while file %s is a %s\n" -msgstr "Le fichier %s est un %s alors que le fichier %s est un %s\n" - -#: src/diff.c:1345 -#, c-format -msgid "Files %s and %s are identical\n" -msgstr "Les fichiers %s et %s sont identiques.\n" - -#: src/diff3.c:26 -msgid "Written by Randy Smith." -msgstr "Écrit par Randy Smith." - -#: src/diff3.c:328 -msgid "incompatible options" -msgstr "options incompatibles" - -#: src/diff3.c:368 -msgid "`-' specified for more than one input file" -msgstr "« - » fourni pour plus d'un fichier d'entrée" - -#: src/diff3.c:408 src/diff3.c:1232 src/diff3.c:1645 src/diff3.c:1700 -#: src/sdiff.c:305 src/sdiff.c:879 src/sdiff.c:890 -msgid "read failed" -msgstr "lecture non-réussie" - -#: src/diff3.c:441 -msgid "-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE." -msgstr "" -"-e --ed afficher les différences non fusionnés selon l'ordre suivant:\n" -" entre le fichier ORIGINAL et le fichier MODIFIÉ\n" -" vers le fichier de SORTIE" - -#: src/diff3.c:442 -msgid "-E --show-overlap Output unmerged changes, bracketing conflicts." -msgstr "-E --show-overlap afficher les différences entre crochets" - -#: src/diff3.c:443 -msgid "-A --show-all Output all changes, bracketing conflicts." -msgstr "-A --show-all afficher toutes les différences entre crochets" - -#: src/diff3.c:444 -msgid "-x --overlap-only Output overlapping changes." -msgstr "-x --overlap-only afficher les différences qui se recoupent" - -#: src/diff3.c:445 -msgid "-X Output overlapping changes, bracketing them." -msgstr "-X afficher les différences qui se recoupent entre crochets." - -#: src/diff3.c:446 -msgid "-3 --easy-only Output unmerged nonoverlapping changes." -msgstr "" -"-3 --easy-only afficher tous les changements non fusionnés qui ne se " -"recoupent pas" - -#: src/diff3.c:448 -msgid "-m --merge Output merged file instead of ed script (default -A)." -msgstr "" -"-m --merge afficher le fichier fusionné plutôt qu'un script « ed " -"» (implique -A)" - -#: src/diff3.c:449 -msgid "-L LABEL --label=LABEL Use LABEL instead of file name." -msgstr "" -"-L ÉTIQ --label=ÉTIQ utiliser l'ÉTIQuette plutôt que le nom du fichier" - -#: src/diff3.c:450 -msgid "-i Append `w' and `q' commands to ed scripts." -msgstr "-i ajouter les commandes « w » et « q » au script « ed »" - -#: src/diff3.c:453 src/sdiff.c:202 -msgid "--diff-program=PROGRAM Use PROGRAM to compare files." -msgstr "" -"--diff-program=PROG utiliser le PROGramme pour comparer les fichiers." - -#: src/diff3.c:465 -#, c-format -msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n" -msgstr "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n" - -#: src/diff3.c:467 -msgid "Compare three files line by line." -msgstr "Comparer trois fichiers ligne par ligne" - -#: src/diff3.c:673 -msgid "internal error: screwup in format of diff blocks" -msgstr "Erreur interne: mélange dans le format des blocs « diff »" - -#: src/diff3.c:971 -#, c-format -msgid "%s: diff failed: " -msgstr "%s: échec de « diff »: " - -#: src/diff3.c:993 -msgid "internal error: invalid diff type in process_diff" -msgstr "Erreur interne: type de « diff » invalide dans process_diff" - -#: src/diff3.c:1018 -msgid "invalid diff format; invalid change separator" -msgstr "format de « diff » invalide; séparateur de changement invalide" - -#: src/diff3.c:1242 -msgid "invalid diff format; incomplete last line" -msgstr "format de « diff » invalide; dernière ligne incomplète" - -#: src/diff3.c:1265 src/sdiff.c:273 -#, c-format -msgid "subsidiary program `%s' not executable" -msgstr "programme de service « %s » n'est pas exécutable" - -#: src/diff3.c:1268 src/sdiff.c:276 src/util.c:298 -#, c-format -msgid "subsidiary program `%s' not found" -msgstr "programme de service « %s » non repéré" - -#: src/diff3.c:1272 src/sdiff.c:268 src/util.c:301 -#, c-format -msgid "subsidiary program `%s' failed" -msgstr "échec du programme de service « %s »" - -#: src/diff3.c:1294 -msgid "invalid diff format; incorrect leading line chars" -msgstr "" -"format de « diff » invalide; caractères incorrects sur la ligne d'annonce" - -#: src/diff3.c:1370 -msgid "internal error: invalid diff type passed to output" -msgstr "Erreur interne: type de « diff » invalide fourni à output" - -#: src/diff3.c:1647 src/diff3.c:1704 -msgid "input file shrank" -msgstr "Le fichier d'entrée a rétréci." - -#: src/dir.c:162 -#, c-format -msgid "cannot compare file names `%s' and `%s'" -msgstr "ne peut comparer les noms de fichier « %s » et « %s »" - -#: src/sdiff.c:35 -msgid "Written by Thomas Lord." -msgstr "Écrit par Thomas Lord." - -#: src/sdiff.c:183 -msgid "-o FILE --output=FILE Operate interactively, sending output to FILE." -msgstr "" -"-o FICHIER --output=FICHIER agir intéractivement, avec sortie sur FICHIER" - -#: src/sdiff.c:185 -msgid "-i --ignore-case Consider upper- and lower-case to be the same." -msgstr "-i --ignore-case banaliser majuscules et minuscules" - -#: src/sdiff.c:188 -msgid "-W --ignore-all-space Ignore all white space." -msgstr "-W --ignore-all-space ignorer tout blanc d'espacement" - -#: src/sdiff.c:194 -msgid "-w NUM --width=NUM Output at most NUM (default 130) columns per line." -msgstr "" -"-w N --width=N limiter la sortie à N colonnes par ligne (130 par " -"défaut)" - -#: src/sdiff.c:195 -msgid "-l --left-column Output only the left column of common lines." -msgstr "" -"-l --left-column afficher dans la colonne de gauche les lignes identiques" - -#: src/sdiff.c:196 -msgid "-s --suppress-common-lines Do not output common lines." -msgstr "-s --suppress-common-lines ne pas afficher les lignes identiques" - -#: src/sdiff.c:201 -msgid "" -"-H --speed-large-files Assume large files and many scattered small changes." -msgstr "" -"-H --speed-large-files traiter de grands fichiers ayant plusieurs " -"changements éparpillés" - -#: src/sdiff.c:214 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 FILE2\n" -msgstr "Usage: %s [OPTION]... FICHIER1 FICHIER2\n" - -#: src/sdiff.c:215 -msgid "Side-by-side merge of file differences." -msgstr "Fusion côte à côte des différences des fichiers" - -#: src/sdiff.c:327 -msgid "cannot interactively merge standard input" -msgstr "Ne peut fusionner l'entrée standard, interactivement." - -#: src/sdiff.c:588 -msgid "both files to be compared are directories" -msgstr "Les deux fichiers à comparer sont des répertoires." - -#: src/sdiff.c:853 -msgid "" -"ed:\tEdit then use both versions, each decorated with a header.\n" -"eb:\tEdit then use both versions.\n" -"el:\tEdit then use the left version.\n" -"er:\tEdit then use the right version.\n" -"e:\tEdit a new version.\n" -"l:\tUse the left version.\n" -"r:\tUse the right version.\n" -"s:\tSilently include common lines.\n" -"v:\tVerbosely include common lines.\n" -"q:\tQuit.\n" -msgstr "" -"ed:\téditer les deux versions, chacune chapeautée d'une en-tête\n" -"eb:\téditer puis utiliser les deux versions\n" -"el:\téditer puis utiliser la version de gauche\n" -"er:\téditer puis utiliser la version de droite\n" -"e:\téditer une nouvelle version\n" -"l:\tutiliser la version de gauche\n" -"r:\tutiliser la version de droite\n" -"s:\tinclure les lignes identiques silencieusement\n" -"v:\tinclure les lignes identiques et le signaler\n" -"q:\tquitter.\n" - -# src/diff.c:882 MRO -#~ msgid "--inhibit-hunk-merge Do not merge hunks." -#~ msgstr "--inhibit-hunk-merge ne pas faire la fusion des hunks" - -#~ msgid "context length specified twice" -#~ msgstr "La longueur du contexte a été spécifié deux fois." - -#~ msgid "multiple `--from-file' options" -#~ msgstr "options multiples de `--from-file'" - -#~ msgid "multiple `--to-file' options" -#~ msgstr "options multiples de `--to-file'" - -#~ msgid "regular empty executable file" -#~ msgstr "fichier régulier exécutable vide" - -#~ msgid "regular executable file" -#~ msgstr "fichier régulier exécutable" - -#~ msgid "" -#~ "SKIP values may be followed by the following multiplicative suffixes:\n" -#~ msgstr "" -#~ "Les valeurs de SAUT peuvent être suivies par un des facteurs " -#~ "multiplicatifs suivants:\n" - -#~ msgid "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -#~ msgstr "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" - -#~ msgid "GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y.\n" -#~ msgstr "" -#~ "GB 1,000,000,000, G 1,073,741,824, et ainsi de suite pour T, P, E, Z, Y.\n" - -#~ msgid "Report bugs to .\n" -#~ msgstr "Rapporter toutes anomalies à \n" - -#~ msgid "If a FILE is `-', read standard input.\n" -#~ msgstr "Si FICHIER spécifié est `-', alors lire de l'entrée standard.\n" - -#~ msgid ": not found\n" -#~ msgstr ": introuvable\n" - -#~ msgid "-D%s: conflicting #ifdef format" -#~ msgstr "-D%s: format #ifdef conflictuels" - -#~ msgid "%s: conflicting line format" -#~ msgstr "%s: format de ligne conflictuel" - -#~ msgid "conflicting group format" -#~ msgstr "formats de groupes conflictuels" - -#~ msgid "--ignore-initial value must be a nonnegative integer" -#~ msgstr "La valeur de --ignore-initial doit être un entier non-négatif" - -#~ msgid "column width must be a positive integer" -#~ msgstr "Le nombre de colonnes doit être un entier positif." - -#~ msgid "context length must be a nonnegative integer" -#~ msgstr "La longueur du contexte doit être un entier non négatif." - -#~ msgid "horizon must be a nonnegative integer" -#~ msgstr "L'horizon doit être un entier non négatif." diff --git a/gnu/dist/diffutils/po/gl.gmo b/gnu/dist/diffutils/po/gl.gmo deleted file mode 100644 index d1243f6234d..00000000000 Binary files a/gnu/dist/diffutils/po/gl.gmo and /dev/null differ diff --git a/gnu/dist/diffutils/po/gl.po b/gnu/dist/diffutils/po/gl.po deleted file mode 100644 index 0e8fc51144d..00000000000 --- a/gnu/dist/diffutils/po/gl.po +++ /dev/null @@ -1,997 +0,0 @@ -# Galician translation of GNU diffutils -# Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. -# Jacobo Tarrío Barreiro , 2000, 2001, 2002. -# -msgid "" -msgstr "" -"Project-Id-Version: diffutils 2.7.10\n" -"POT-Creation-Date: 2002-04-05 14:10-0800\n" -"PO-Revision-Date: 2002-03-12 15:52+0100\n" -"Last-Translator: Jacobo Tarrío Barreiro \n" -"Language-Team: Galician \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: lib/c-stack.c:188 -msgid "program error" -msgstr "erro do programa" - -#: lib/c-stack.c:189 -msgid "stack overflow" -msgstr "desbordamento da pila" - -#: lib/error.c:128 lib/error.c:156 -msgid "Unknown system error" -msgstr "Erro do sistema descoñecido" - -#: lib/freesoft.c:27 -msgid "" -"This program comes with NO WARRANTY, to the extent permitted by law.\n" -"You may redistribute copies of this program\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING." -msgstr "" -"Este programa ven SEN GARANTÍA, ata o permitido pola lei.\n" -"Pode redistribuír copias deste programa baixo os termos\n" -"da Licencia Pública Xeral de GNU.\n" -"Para máis información sobre estas materias, vexa o ficheiro chamado COPYING." - -#: lib/getopt.c:693 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s: a opción `%s' é ambigua\n" - -#: lib/getopt.c:718 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: a opción `--%s' non admite un parámetro\n" - -#: lib/getopt.c:723 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: a opción `%c%s' non admite un parámetro\n" - -#: lib/getopt.c:741 lib/getopt.c:914 -#, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s: a opción `%s' precisa dun parámetro\n" - -#: lib/getopt.c:770 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: opción non recoñecida `--%s'\n" - -#: lib/getopt.c:774 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: opción non recoñecida `%c%s'\n" - -#: lib/getopt.c:800 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: opción non permitida -- %c\n" - -#: lib/getopt.c:803 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: opción incorrecta -- %c\n" - -#: lib/getopt.c:833 lib/getopt.c:963 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: a opción precisa dun parámetro -- %c\n" - -#: lib/getopt.c:880 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "%s: a opción `-W %s' é ambigua\n" - -#: lib/getopt.c:898 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: a opción `-W %s' non admite un parámetro\n" - -#: lib/regex.c:1367 -msgid "Success" -msgstr "Éxito" - -#: lib/regex.c:1370 -msgid "No match" -msgstr "Non hai coincidencias" - -#: lib/regex.c:1373 -msgid "Invalid regular expression" -msgstr "Expresión regular incorrecta" - -#: lib/regex.c:1376 -msgid "Invalid collation character" -msgstr "Carácter de ordeación incorrecto" - -#: lib/regex.c:1379 -msgid "Invalid character class name" -msgstr "Nome de clase de caracteres incorrecto" - -#: lib/regex.c:1382 -msgid "Trailing backslash" -msgstr "Barra invertida ao final" - -#: lib/regex.c:1385 -msgid "Invalid back reference" -msgstr "Referencia cara a atrás incorrecta" - -#: lib/regex.c:1388 -msgid "Unmatched [ or [^" -msgstr "[ ou [^ sen parella" - -#: lib/regex.c:1391 -msgid "Unmatched ( or \\(" -msgstr "( ou \\( sen parella" - -#: lib/regex.c:1394 -msgid "Unmatched \\{" -msgstr "\\{ sen parella" - -#: lib/regex.c:1397 -msgid "Invalid content of \\{\\}" -msgstr "Contido de \\{\\} incorrecto" - -#: lib/regex.c:1400 -msgid "Invalid range end" -msgstr "Fin de rango incorrecto" - -#: lib/regex.c:1403 -msgid "Memory exhausted" -msgstr "Memoria esgotada" - -#: lib/regex.c:1406 -msgid "Invalid preceding regular expression" -msgstr "Expresión regular precedente incorrecta" - -#: lib/regex.c:1409 -msgid "Premature end of regular expression" -msgstr "Fin de expresión regular prematura" - -#: lib/regex.c:1412 -msgid "Regular expression too big" -msgstr "Expresión regular grande de máis" - -#: lib/regex.c:1415 -msgid "Unmatched ) or \\)" -msgstr ") ou \\) sen parella" - -#: lib/regex.c:8034 -msgid "No previous regular expression" -msgstr "Non hai unha expresión regular anterior" - -#: lib/xmalloc.c:63 -msgid "memory exhausted" -msgstr "memoria esgotada" - -#: src/analyze.c:809 src/diff.c:1283 -#, c-format -msgid "Files %s and %s differ\n" -msgstr "Os ficheiros %s e %s son diferentes\n" - -#: src/analyze.c:812 -#, c-format -msgid "Binary files %s and %s differ\n" -msgstr "Os ficheiros binarios %s e %s son diferentes\n" - -#: src/analyze.c:1058 src/diff3.c:1413 src/util.c:526 -msgid "No newline at end of file" -msgstr "Non hai un salto de liña na fin da liña" - -#: src/cmp.c:43 -msgid "Written by Torbjorn Granlund and David MacKenzie." -msgstr "Escrito por Torbjorn Granlund e David MacKenzie." - -#: src/cmp.c:118 src/diff.c:817 src/diff3.c:427 src/sdiff.c:168 -#, c-format -msgid "Try `%s --help' for more information." -msgstr "Escriba `%s --help' para obter máis información." - -#: src/cmp.c:137 -#, c-format -msgid "invalid --ignore-initial value `%s'" -msgstr "valor de --ignore-initial `%s' non válido" - -#: src/cmp.c:146 -msgid "options -l and -s are incompatible" -msgstr "as opcións -l e -s son incompatibles" - -#: src/cmp.c:154 src/diff.c:826 src/diff3.c:435 src/sdiff.c:177 -#: src/sdiff.c:313 src/sdiff.c:320 src/sdiff.c:910 src/util.c:194 -#: src/util.c:286 src/util.c:293 -msgid "write failed" -msgstr "fallou a escritura" - -#: src/cmp.c:156 src/diff.c:828 src/diff.c:1354 src/diff3.c:437 -#: src/sdiff.c:179 -msgid "standard output" -msgstr "saída estándar" - -#: src/cmp.c:160 -msgid "-b --print-bytes Print differing bytes." -msgstr "-b --print-bytes Amosa-los bytes diferentes." - -#: src/cmp.c:161 -msgid "-i SKIP --ignore-initial=SKIP Skip the first SKIP bytes of input." -msgstr "" -"-i N --ignore-initial=N Omiti-los primeiros N bytes de entrada." - -#: src/cmp.c:162 -msgid "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2" -msgstr "-i N1:N2 --ignore-initial=N1:N2" - -#: src/cmp.c:163 -msgid "" -" Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2." -msgstr "" -" Omiti-los primeiros N1 bytes de FICH1 e os primeiros N2 bytes de FICH2." - -#: src/cmp.c:164 -msgid "-l --verbose Output byte numbers and values of all differing bytes." -msgstr "-l --verbose Amosa-los números e valores dos bytes que difiran." - -#: src/cmp.c:165 -msgid "-n LIMIT --bytes=LIMIT Compare at most LIMIT bytes." -msgstr "-n LÍMITE --bytes=LÍMITE Comparar como moito LÍMITE bytes." - -#: src/cmp.c:166 -msgid "-s --quiet --silent Output nothing; yield exit status only." -msgstr "-s --quiet --silent Non producir nada; só da-lo estado de saída." - -#: src/cmp.c:167 src/diff.c:904 src/diff3.c:455 src/sdiff.c:204 -msgid "-v --version Output version info." -msgstr "-v --version Amosar información sobre a versión." - -#: src/cmp.c:168 src/diff.c:905 src/diff3.c:456 src/sdiff.c:205 -msgid "--help Output this help." -msgstr "--help Amosar esta axuda." - -#: src/cmp.c:177 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n" -msgstr "Uso: %s [OPCIÓN]... FICH1 [FICH2 [N1 [N2]]]\n" - -#: src/cmp.c:179 -msgid "Compare two files byte by byte." -msgstr "Comparar dous ficheiros byte a byte." - -#: src/cmp.c:183 -msgid "SKIP1 and SKIP2 are the number of bytes to skip in each file." -msgstr "N1 e N2 son o número de bytes a omitir en cada ficheiro." - -#: src/cmp.c:184 -msgid "" -"SKIP values may be followed by the following multiplicative suffixes:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y." -msgstr "" -"Os valores N poden estar seguidos polos seguintes sufixos multiplicativos:\n" -"kB 1000, K 1024, MB 1.000.000, M 1.048.576,\n" -"GB 1.000.000.000, G 1.073.741.824, e así para T, P, E, Z e Y." - -#: src/cmp.c:187 -msgid "If a FILE is `-' or missing, read standard input." -msgstr "Se un FICHEIRO é `-' ou non se indica, lese da entrada estándar." - -#: src/cmp.c:188 src/diff.c:911 src/diff3.c:475 src/sdiff.c:223 -msgid "Report bugs to ." -msgstr "" -"Informe dos erros no programa a .\n" -"Informe dos erros na traducción a ." - -#: src/cmp.c:231 -#, c-format -msgid "invalid --bytes value `%s'" -msgstr "valor de --bytes `%s' non válido" - -#: src/cmp.c:258 src/diff.c:734 src/diff3.c:333 src/sdiff.c:558 -#, c-format -msgid "missing operand after `%s'" -msgstr "falta un operando despois de `%s'" - -#: src/cmp.c:270 src/diff.c:736 src/diff3.c:335 src/sdiff.c:560 -#, c-format -msgid "extra operand `%s'" -msgstr "operando `%s' sobrante" - -#: src/cmp.c:477 -#, c-format -msgid "%s %s differ: byte %s, line %s\n" -msgstr "%s %s son diferentes: byte %s, liña %s\n" - -#: src/cmp.c:495 -#, c-format -msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n" -msgstr "%s %s son diferentes: byte %s, liña %s é %3o %s %3o %s\n" - -#: src/cmp.c:543 -#, c-format -msgid "cmp: EOF on %s\n" -msgstr "cmp: Fin de Ficheiro en %s\n" - -#: src/diff.c:41 -msgid "" -"Written by Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman, and Len Tower." -msgstr "" -"Escrito por Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman e Len Tower." - -#: src/diff.c:322 -#, c-format -msgid "invalid context length `%s'" -msgstr "lonxitude do contexto `%s' non válida" - -#: src/diff.c:405 -msgid "pagination not supported on this host" -msgstr "a paxinación non está soportada nesta máquina" - -#: src/diff.c:420 src/diff3.c:315 -msgid "too many file label options" -msgstr "demasiadas opcións de etiquetas de ficheiro" - -#: src/diff.c:498 -#, c-format -msgid "invalid width `%s'" -msgstr "ancho `%s' non válido" - -#: src/diff.c:502 -msgid "conflicting width options" -msgstr "opcións de anchura conflictivas" - -#: src/diff.c:526 -#, c-format -msgid "invalid horizon length `%s'" -msgstr "lonxitude do horizonte `%s' non válida" - -#: src/diff.c:629 -#, c-format -msgid "`-%ld' option is obsolete; use `-%c %ld'" -msgstr "A opción `-%ld' é obsoleta; empregue `-%c %ld'" - -#: src/diff.c:641 -#, c-format -msgid "`-%ld' option is obsolete; omit it" -msgstr "A opción `-%ld' é obsoleta; omítaa" - -#: src/diff.c:709 -msgid "--from-file and --to-file both specified" -msgstr "Especificáronse --from-file e --to-file ao mesmo tempo" - -#: src/diff.c:832 -msgid "Compare files line by line." -msgstr "Compara-los ficheiros liña a liña." - -#: src/diff.c:834 -msgid "-i --ignore-case Ignore case differences in file contents." -msgstr "" -"-i --ignore-case Ignorar maiúsculas/minúsculas no contido do ficheiro." - -#: src/diff.c:835 -msgid "--ignore-file-name-case Ignore case when comparing file names." -msgstr "" -"--ignore-file-name-case Ignorar maiúsculas/minúsculas no nome do ficheiro." - -#: src/diff.c:836 -msgid "--no-ignore-file-name-case Consider case when comparing file names." -msgstr "" -"--no-ignore-file-name-case Ter en conta as maiúsculas/minúsculas\n" -" ao compara-los nomes dos ficheiros." - -#: src/diff.c:837 src/sdiff.c:186 -msgid "-E --ignore-tab-expansion Ignore changes due to tab expansion." -msgstr "" -"-E --ignore-tab-expansion Ignora-los cambios pola expansión de tabulacións." - -#: src/diff.c:838 src/sdiff.c:187 -msgid "-b --ignore-space-change Ignore changes in the amount of white space." -msgstr "" -"-b --ignore-space-change Ignora-los cambios na cantidade de espacios." - -#: src/diff.c:839 -msgid "-w --ignore-all-space Ignore all white space." -msgstr "-w --ignore-all-space Ignorar tódolos espacios en branco." - -#: src/diff.c:840 src/sdiff.c:189 -msgid "-B --ignore-blank-lines Ignore changes whose lines are all blank." -msgstr "" -"-B --ignore-blank-lines Ignora-los cambios que teñan tódalas liñas en " -"branco" - -#: src/diff.c:841 src/sdiff.c:190 -msgid "" -"-I RE --ignore-matching-lines=RE Ignore changes whose lines all match RE." -msgstr "" -"-I RE --ignore-matching-lines=RE Ignora-los cambios nos que tódalas liñas\n" -" conteñan RE." - -#: src/diff.c:842 src/sdiff.c:191 -msgid "--strip-trailing-cr Strip trailing carriage return on input." -msgstr "" -"--strip-trailing-cr Elimina-los retornos de carro á fin das liñas de " -"entrada." - -#: src/diff.c:844 -msgid "--binary Read and write data in binary mode." -msgstr "--binary Ler e escribir datos en modo binario." - -#: src/diff.c:846 src/diff3.c:451 src/sdiff.c:192 -msgid "-a --text Treat all files as text." -msgstr "-a --text Tratar tódolos ficheiros coma texto" - -#: src/diff.c:848 -msgid "" -"-c -C NUM --context[=NUM] Output NUM (default 3) lines of copied " -"context.\n" -"-u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified " -"context.\n" -" --label LABEL Use LABEL instead of file name.\n" -" -p --show-c-function Show which C function each change is in.\n" -" -F RE --show-function-line=RE Show the most recent line matching RE." -msgstr "" -"-c -C NÚM --context[=NÚM] Amosar NÚM [3] liñas de contexto copiado.\n" -"-u -U NÚM --unified[=NÚM] Amosar NÚM [3] liñas de contexto unificado.\n" -" --label ETIQUETA Usa-la ETIQUETA no canto do nome do ficheiro.\n" -" -p --show-c-function Amosar en que función C está cada cambio.\n" -" -F RE --show-function-line=RE Amosa-la liña máis recente que coincide\n" -" con RE." - -#: src/diff.c:853 -msgid "-q --brief Output only whether files differ." -msgstr "-q --brief Producir unha saída só se os ficheiros teñen diferencias." - -#: src/diff.c:854 -msgid "-e --ed Output an ed script." -msgstr "-e --ed Producir un script de ed." - -#: src/diff.c:855 -msgid "--normal Output a normal diff." -msgstr "--normal Producir un diff normal." - -#: src/diff.c:856 -msgid "-n --rcs Output an RCS format diff." -msgstr "-n --rcs Producir un diff en formato RCS." - -#: src/diff.c:857 -msgid "" -"-y --side-by-side Output in two columns.\n" -" -W NUM --width=NUM Output at most NUM (default 130) print columns.\n" -" --left-column Output only the left column of common lines.\n" -" --suppress-common-lines Do not output common lines." -msgstr "" -"-y --side-by-side Produci-la saída en dúas columnas.\n" -" -w NÚM --width=NÚM Amosar como moito NÚM [130] columnas de impresión.\n" -" --left-column Amosar só a columna da esquerda nas liñas comúns.\n" -" --suppress-common-lines Non amosa-las liñas comúns." - -#: src/diff.c:861 -msgid "-D NAME --ifdef=NAME Output merged file to show `#ifdef NAME' diffs." -msgstr "" -"-D NOME -ifdef=NOME Amosa-lo ficheiro mesturado con diffs `#ifdef NOME'." - -#: src/diff.c:862 -msgid "" -"--GTYPE-group-format=GFMT Similar, but format GTYPE input groups with GFMT." -msgstr "" -"--GTYPE-group-format=GFMT Similar, pero formata-los grupos de entrada " -"GTYPE\n" -" con GFMT." - -#: src/diff.c:863 -msgid "--line-format=LFMT Similar, but format all input lines with LFMT." -msgstr "" -"--line-format=LFMT Similar, pero formatar tódalas liñas de entrada con LFMT." - -#: src/diff.c:864 -msgid "" -"--LTYPE-line-format=LFMT Similar, but format LTYPE input lines with LFMT." -msgstr "" -"--LTYPE-line-format=LFMT Similar, pero formata-las liñas de entrada LTYPE\n" -" con LFMT." - -#: src/diff.c:865 -msgid " LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'." -msgstr "" -" LTYPE é `old' (vello), `new' (novo) ou `unchanged' (sen cambios).\n" -" GTYPE é LTYPE ou `changed' (con cambios)." - -#: src/diff.c:866 -msgid "" -" GFMT may contain:\n" -" %< lines from FILE1\n" -" %> lines from FILE2\n" -" %= lines common to FILE1 and FILE2\n" -" %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" -" LETTERs are as follows for new group, lower case for old group:\n" -" F first line number\n" -" L last line number\n" -" N number of lines = L-F+1\n" -" E F-1\n" -" M L+1" -msgstr "" -" GFMT pode conter:\n" -" %< liñas do FICH1\n" -" %> liñas do FICH2\n" -" %= liñas comúns a FICH1 e FICH2\n" -" %[-][ANCHO][.[PREC]]{doxX}LETRA especificación estilo printf para a " -"LETRA\n" -" As LETRAs son como segue para o novo grupo, en minúsculas para o " -"vello:\n" -" F número da primeira liña\n" -" L número da derradeira liña\n" -" N número de liñas = L-F+1\n" -" E F-1\n" -" M L+1" - -#: src/diff.c:877 -msgid "" -" LFMT may contain:\n" -" %L contents of line\n" -" %l contents of line, excluding any trailing newline\n" -" %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number" -msgstr "" -" LFMT pode conter:\n" -" %L contido da liña\n" -" %l contido da liña, excluíndo os saltos de liña finais\n" -" %[-][ANCHO][.[PREC]]{doxX}n especif. estilo printf do número da liña" - -#: src/diff.c:881 -msgid "" -" Either GFMT or LFMT may contain:\n" -" %% %\n" -" %c'C' the single character C\n" -" %c'\\OOO' the character with octal code OOO" -msgstr "" -" GFMT e LFMT poden conter:\n" -" %% %\n" -" %c'C' o carácter C\n" -" %c'\\OOO' o carácter de código octal OOO" - -#: src/diff.c:886 -msgid "-l --paginate Pass the output through `pr' to paginate it." -msgstr "-l --paginate Pasa-la saída por `pr' para paxinala." - -#: src/diff.c:887 src/sdiff.c:198 -msgid "-t --expand-tabs Expand tabs to spaces in output." -msgstr "-t --expand-tabs Expandi-las tabulacións a espacios na saída." - -#: src/diff.c:888 src/diff3.c:452 -msgid "-T --initial-tab Make tabs line up by prepending a tab." -msgstr "" -"-T --initial-tab Facer que as tabulacións queden aliñadas poñendo outra\n" -" tabulación ao principio da liña." - -#: src/diff.c:890 -msgid "-r --recursive Recursively compare any subdirectories found." -msgstr "" -"-r --recursive Comparar recursivamente os subdirectorios que se atopen." - -#: src/diff.c:891 -msgid "-N --new-file Treat absent files as empty." -msgstr "-N --new-file Trata-los ficheiros ausentes coma baleiros." - -#: src/diff.c:892 -msgid "--unidirectional-new-file Treat absent first files as empty." -msgstr "" -"--unidirectional-new-file Tratar ficheiros vellos ausentes coma baleiros." - -#: src/diff.c:893 -msgid "-s --report-identical-files Report when two files are the same." -msgstr "" -"-s --report-identical-files Informar cando dous ficheiros son o mesmo." - -#: src/diff.c:894 -msgid "-x PAT --exclude=PAT Exclude files that match PAT." -msgstr "-x PAT --exclude=PAT Exclui-los ficheiros que coinciden co PATrón." - -#: src/diff.c:895 -msgid "" -"-X FILE --exclude-from=FILE Exclude files that match any pattern in FILE." -msgstr "" -"-X FICH --exclude-from=FICH Excluir ficheiros que coinciden con algún\n" -" patrón do FICHeiro." - -#: src/diff.c:896 -msgid "" -"-S FILE --starting-file=FILE Start with FILE when comparing directories." -msgstr "" -"-S FICH --starting-file=FICH Comezar no FICHeiro ao comparar directorios." - -#: src/diff.c:897 -msgid "" -"--from-file=FILE1 Compare FILE1 to all operands. FILE1 can be a directory." -msgstr "" -"--from-file=FICH1 Comparar FICH1 con tódolos operandos. Pode ser directorio." - -#: src/diff.c:898 -msgid "" -"--to-file=FILE2 Compare all operands to FILE2. FILE2 can be a directory." -msgstr "" -"--to-file=FICH2 Comparar tódolos operandos con FICH2. Pode ser un " -"directorio." - -#: src/diff.c:900 -msgid "--horizon-lines=NUM Keep NUM lines of the common prefix and suffix." -msgstr "--horizon-lines=NUM Manter NUM liñas do prefixo e sufixo comúns." - -#: src/diff.c:901 src/sdiff.c:200 -msgid "-d --minimal Try hard to find a smaller set of changes." -msgstr "-d --minimal Procurar atopa-lo conxunto de cambios máis pequeno." - -#: src/diff.c:902 -msgid "" -"--speed-large-files Assume large files and many scattered small changes." -msgstr "" -"--speed-large-files Asumir ficheiros longos e pequenos cambios dispersos." - -#: src/diff.c:907 -msgid "" -"FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'." -msgstr "" -"Os FICHEIROS son `FICH1 FICH2', `DIR1 DIR2', `DIR FICH...' ou `FICH... DIR'." - -#: src/diff.c:908 -msgid "" -"If --from-file or --to-file is given, there are no restrictions on FILES." -msgstr "" -"Se se indica --from-file ou --to-file, non hai restriccións nos FICHEIROS." - -#: src/diff.c:909 src/diff3.c:474 src/sdiff.c:222 -msgid "If a FILE is `-', read standard input." -msgstr "Se un FICHEIRO é `-', lese da entrada estándar." - -#: src/diff.c:920 -#, c-format -msgid "Usage: %s [OPTION]... FILES\n" -msgstr "Uso: %s [OPCIÓN]... FICHEIROS\n" - -#: src/diff.c:949 -#, c-format -msgid "conflicting %s option value `%s'" -msgstr "valor `%1$s' da opción %2$s conflictivo" - -#: src/diff.c:962 -msgid "conflicting output style options" -msgstr "opcións de estilo da saída conflictivas" - -#: src/diff.c:976 -msgid "regular empty file" -msgstr "ficheiro normal baleiro" - -#: src/diff.c:976 -msgid "regular file" -msgstr "ficheiro normal" - -#: src/diff.c:978 -msgid "directory" -msgstr "directorio" - -#: src/diff.c:981 -msgid "block special file" -msgstr "ficheiro especial de bloques" - -#: src/diff.c:984 -msgid "character special file" -msgstr "ficheiro especial de caracteres" - -#: src/diff.c:987 -msgid "fifo" -msgstr "fifo" - -#: src/diff.c:991 -msgid "socket" -msgstr "socket" - -#: src/diff.c:994 -msgid "message queue" -msgstr "cola de mensaxes" - -#: src/diff.c:997 -msgid "semaphore" -msgstr "semáforo" - -#: src/diff.c:1000 -msgid "shared memory object" -msgstr "obxecto de memoria compartida" - -#: src/diff.c:1003 -msgid "typed memory object" -msgstr "obxecto de memoria con tipo" - -#: src/diff.c:1006 -msgid "weird file" -msgstr "ficheiro raro" - -#: src/diff.c:1070 src/diff.c:1256 -#, c-format -msgid "Only in %s: %s\n" -msgstr "Só en %s: %s\n" - -#: src/diff.c:1193 -msgid "cannot compare `-' to a directory" -msgstr "non se pode comparar `-' cun directorio" - -#: src/diff.c:1220 -msgid "-D option not supported with directories" -msgstr "A opción -D non está soportada con directorios" - -#: src/diff.c:1229 -#, c-format -msgid "Common subdirectories: %s and %s\n" -msgstr "Subdirectorios comúns: %s e %s\n" - -#: src/diff.c:1266 -#, c-format -msgid "File %s is a %s while file %s is a %s\n" -msgstr "O ficheiro %s é un %s mentres que o ficheiro %s é un %s\n" - -#: src/diff.c:1345 -#, c-format -msgid "Files %s and %s are identical\n" -msgstr "Os ficheiros %s e %s son idénticos\n" - -#: src/diff3.c:26 -msgid "Written by Randy Smith." -msgstr "Escrito por Randy Smith." - -#: src/diff3.c:328 -msgid "incompatible options" -msgstr "opcións incompatibles" - -#: src/diff3.c:368 -msgid "`-' specified for more than one input file" -msgstr "Especificouse `-' para máis dun ficheiro de entrada" - -#: src/diff3.c:408 src/diff3.c:1232 src/diff3.c:1645 src/diff3.c:1700 -#: src/sdiff.c:305 src/sdiff.c:879 src/sdiff.c:890 -msgid "read failed" -msgstr "fallou a lectura" - -#: src/diff3.c:441 -msgid "-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE." -msgstr "" -"-e --ed Producir cambios sen mesturar de FICHVELLO a TEUFICH en MEUFICH." - -#: src/diff3.c:442 -msgid "-E --show-overlap Output unmerged changes, bracketing conflicts." -msgstr "" -"-E --show-overlap Amosar cambios sen mesturar cos conflictos entre " -"corchetes" - -#: src/diff3.c:443 -msgid "-A --show-all Output all changes, bracketing conflicts." -msgstr "" -"-a --show-all Amosar tódolos cambios, cos conflictos entre corchetes." - -#: src/diff3.c:444 -msgid "-x --overlap-only Output overlapping changes." -msgstr "-x --overlap-only Amosa-los cambios que se superpoñen." - -#: src/diff3.c:445 -msgid "-X Output overlapping changes, bracketing them." -msgstr "-X Amosa-los cambios que se solapen, poñéndoos entre corchetes." - -#: src/diff3.c:446 -msgid "-3 --easy-only Output unmerged nonoverlapping changes." -msgstr "-3 --easy-only Amosar cambios non solapados e non mesturados." - -#: src/diff3.c:448 -msgid "-m --merge Output merged file instead of ed script (default -A)." -msgstr "" -"-m --merge Amosa-lo ficheiro mesturado no canto dun script en ed [-A]." - -#: src/diff3.c:449 -msgid "-L LABEL --label=LABEL Use LABEL instead of file name." -msgstr "-L ETIQ --label=ETIQ Usa-la ETIQueta no canto do nome do ficheiro." - -#: src/diff3.c:450 -msgid "-i Append `w' and `q' commands to ed scripts." -msgstr "-i Engadi-los comandos `w' e `q' aos scripts en ed." - -#: src/diff3.c:453 src/sdiff.c:202 -msgid "--diff-program=PROGRAM Use PROGRAM to compare files." -msgstr "" -"--diff-program=PROGRAMA Emprega-lo PROGRAMA para compara-los ficheiros." - -#: src/diff3.c:465 -#, c-format -msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n" -msgstr "Uso: %s [OPCIÓN]... MEUFICH VELLOFICH TEUFICH\n" - -#: src/diff3.c:467 -msgid "Compare three files line by line." -msgstr "Comparar tres ficheiros liña a liña." - -#: src/diff3.c:673 -msgid "internal error: screwup in format of diff blocks" -msgstr "erro interno: fallo no formato dos bloques diff" - -#: src/diff3.c:971 -#, c-format -msgid "%s: diff failed: " -msgstr "%s: diff fallou: " - -#: src/diff3.c:993 -msgid "internal error: invalid diff type in process_diff" -msgstr "erro interno: tipo de diff non válido en process_diff" - -#: src/diff3.c:1018 -msgid "invalid diff format; invalid change separator" -msgstr "formato de diff non válido; separador de cambios non válido" - -#: src/diff3.c:1242 -msgid "invalid diff format; incomplete last line" -msgstr "formato de diff non válido: derradeira liña incompleta" - -#: src/diff3.c:1265 src/sdiff.c:273 -#, c-format -msgid "subsidiary program `%s' not executable" -msgstr "o programa subsidiario `%s' non é executable" - -#: src/diff3.c:1268 src/sdiff.c:276 src/util.c:298 -#, c-format -msgid "subsidiary program `%s' not found" -msgstr "non se atopou o programa subsidiario `%s'" - -#: src/diff3.c:1272 src/sdiff.c:268 src/util.c:301 -#, c-format -msgid "subsidiary program `%s' failed" -msgstr "fallou o programa subsidiario `%s'" - -#: src/diff3.c:1294 -msgid "invalid diff format; incorrect leading line chars" -msgstr "formato de diff non válido: caracteres a principio de liña incorrectos" - -#: src/diff3.c:1370 -msgid "internal error: invalid diff type passed to output" -msgstr "erro interno_ tipo de diff non válido pasado á saída" - -#: src/diff3.c:1647 src/diff3.c:1704 -msgid "input file shrank" -msgstr "o ficheiro de entrada encolleu" - -#: src/dir.c:162 -#, c-format -msgid "cannot compare file names `%s' and `%s'" -msgstr "non se poden compara-los ficheiros `%s' e `%s'" - -#: src/sdiff.c:35 -msgid "Written by Thomas Lord." -msgstr "Escrito por Thomas Lord." - -#: src/sdiff.c:183 -msgid "-o FILE --output=FILE Operate interactively, sending output to FILE." -msgstr "" -"-o FICH --output=FICH Operar interactivamente, mandando a saída ao " -"FICHeiro." - -#: src/sdiff.c:185 -msgid "-i --ignore-case Consider upper- and lower-case to be the same." -msgstr "" -"-i --ignore-case Ignora-las diferencias entre maiúsculas e minúsculas." - -#: src/sdiff.c:188 -msgid "-W --ignore-all-space Ignore all white space." -msgstr "-W --ignore-all-space Ignorar tódolos espacios en branco." - -#: src/sdiff.c:194 -msgid "-w NUM --width=NUM Output at most NUM (default 130) columns per line." -msgstr "-w NÚM --width=NÚM Amosar como moito NÚM [130] columnas por liña." - -#: src/sdiff.c:195 -msgid "-l --left-column Output only the left column of common lines." -msgstr "-l --left-column Amosar só a columna da esquerda nas liñas comúns." - -#: src/sdiff.c:196 -msgid "-s --suppress-common-lines Do not output common lines." -msgstr "-s --suppress-common-llines Non amosa-las liñas comúns." - -#: src/sdiff.c:201 -msgid "" -"-H --speed-large-files Assume large files and many scattered small changes." -msgstr "" -"-H --speed-large-files Asumir ficheiros longos e pequenos cambios " -"dispersos." - -#: src/sdiff.c:214 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 FILE2\n" -msgstr "Uso: %s [OPCIÓN]... FICH1 FICH2\n" - -#: src/sdiff.c:215 -msgid "Side-by-side merge of file differences." -msgstr "Mestura en dúas columnas das diferencias entre os ficheiros." - -#: src/sdiff.c:327 -msgid "cannot interactively merge standard input" -msgstr "non se pode mestura-la entrada estándar interactivamente" - -#: src/sdiff.c:588 -msgid "both files to be compared are directories" -msgstr "ámbolos dous ficheiros a ser comparados son directorios" - -#: src/sdiff.c:853 -msgid "" -"ed:\tEdit then use both versions, each decorated with a header.\n" -"eb:\tEdit then use both versions.\n" -"el:\tEdit then use the left version.\n" -"er:\tEdit then use the right version.\n" -"e:\tEdit a new version.\n" -"l:\tUse the left version.\n" -"r:\tUse the right version.\n" -"s:\tSilently include common lines.\n" -"v:\tVerbosely include common lines.\n" -"q:\tQuit.\n" -msgstr "" -"ed:\tEditar e usar ámbalas dúas versións, cada unha cunha cabeceira.\n" -"eb:\tEditar e usar ámbalas dúas versións.\n" -"el:\tEditar e logo usa-la versión da esquerda.\n" -"er:\tEditar e logo usa-la versión da dereita.\n" -"e:\tEditar unha nova versión.\n" -"l:\tusa-la versión da esquerda.\n" -"r:\tusa-la versión da dereita.\n" -"e:\tEditar unha nova versión.\n" -"s:\tInclui-las liñas comúns silenciosamente.\n" -"v:\tInclui-las liñas comúns faladoramente.\n" -"q:\tSair.\n" - -#~ msgid "" -#~ "SKIP values may be followed by the following multiplicative suffixes:\n" -#~ msgstr "" -#~ "Os valores de N poden ir seguidos polos seguintes sufixos " -#~ "multiplicativos:\n" - -#~ msgid "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -#~ msgstr "kB 1000, K 1024, MB 1.000.000, M 1.048.576,\n" - -#~ msgid "GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y.\n" -#~ msgstr "GB 1.000.000.000, G 1.073.741.824 e así para T, P, E, Z e Y.\n" - -#~ msgid "Report bugs to .\n" -#~ msgstr "Informe dos erros a .\n" - -#~ msgid "context length specified twice" -#~ msgstr "a lonxitude do contexto especificouse dúas veces" - -#~ msgid "multiple `--from-file' options" -#~ msgstr "opcións `--from-file' múltiples" - -#~ msgid "multiple `--to-file' options" -#~ msgstr "opcións `--to-file' múltiples" - -#~ msgid "--inhibit-hunk-merge Do not merge hunks." -#~ msgstr "--inhibit-hunk-merge Non mesturar anacos" - -#~ msgid "regular empty executable file" -#~ msgstr "ficheiro normal executable baleiro" - -#~ msgid "regular executable file" -#~ msgstr "ficheiro normal executable" - -#~ msgid "If a FILE is `-', read standard input.\n" -#~ msgstr "Se un FICHEIRO é `-', lese da entrada estándar.\n" - -#~ msgid "--ignore-initial value must be a nonnegative integer" -#~ msgstr "O valor de --ignore-initial debe ser un enteiro non negativo" - -#~ msgid ": not found\n" -#~ msgstr ": non atopado\n" - -#~ msgid "column width must be a positive integer" -#~ msgstr "o ancho da columna debe ser un enteiro positivo" - -#~ msgid "conflicting group format" -#~ msgstr "formato de grupo con conflictos" - -#~ msgid "conflicting line format" -#~ msgstr "formato de liña con conflictos" - -#~ msgid "context length must be a nonnegative integer" -#~ msgstr "a lonxitude do contexto debe ser un enteiro non negativo" - -#~ msgid "horizon must be a nonnegative integer" -#~ msgstr "o horizonte debe ser un enteiro non negativo" diff --git a/gnu/dist/diffutils/po/he.gmo b/gnu/dist/diffutils/po/he.gmo deleted file mode 100644 index c9cc2f33eca..00000000000 Binary files a/gnu/dist/diffutils/po/he.gmo and /dev/null differ diff --git a/gnu/dist/diffutils/po/he.po b/gnu/dist/diffutils/po/he.po deleted file mode 100644 index 1f1ed4a9250..00000000000 --- a/gnu/dist/diffutils/po/he.po +++ /dev/null @@ -1,907 +0,0 @@ -# Hebrew messages for GNU Diffutils -*- coding: hebrew-iso-8bit -*- -# Copyright (C) 2001, 2002 Free Software Foundation, Inc. -# Eli Zaretskii , 2001, 2002. -# -msgid "" -msgstr "" -"Project-Id-Version: diffutils 2.7.10\n" -"POT-Creation-Date: 2002-04-05 14:10-0800\n" -"PO-Revision-Date: 2002-03-13 20:45+0200\n" -"Last-Translator: Eli Zaretskii \n" -"Language-Team: Hebrew \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: lib/c-stack.c:188 -msgid "program error" -msgstr "úéðëúá äøåîç äì÷ú" - -#: lib/c-stack.c:189 -msgid "stack overflow" -msgstr "úéðñçî úùéìâ" - -#: lib/error.c:128 lib/error.c:156 -msgid "Unknown system error" -msgstr "ääåæî-éúìá äì÷ú" - -#: lib/freesoft.c:27 -msgid "" -"This program comes with NO WARRANTY, to the extent permitted by law.\n" -"You may redistribute copies of this program\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING." -msgstr "" -" .úàæ øéúî ÷åçäù äîë ãò ,àåäùìë úåéøçà áúëá äååìî äðéà åæ úéðëåú\n" -".GNU General Public License ïåéùøä éàðúì íàúäá åæ úéðëåú õéôäì íëúåëæ\n" -" .COPYING õáå÷á åðééò ,åìà íéðéðòá èåøéô øúéì" - -#: lib/getopt.c:693 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s úéðëú øåáò éòîùî-ãç åðéà `%s' ïééôàî\n" - -#: lib/getopt.c:718 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s úéðëú øåáò èðîåâøà ìá÷î åðéà `--%s' ïééôàî\n" - -#: lib/getopt.c:723 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s úéðëú øåáò èðîåâøà ìá÷î åðéà `%c%s' ïééôàî\n" - -#: lib/getopt.c:741 lib/getopt.c:914 -#, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s úéðëú øåáò èðîåâøà áééçî `%s' ïééôàî\n" - -#: lib/getopt.c:770 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s úéðëú øåáò `--%s' ääåæî-éúìá ïééôàî\n" - -#: lib/getopt.c:774 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s úéðëú øåáò `%c%s' ääåæî-éúìá ïééôàî\n" - -#: lib/getopt.c:800 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: é÷åç-éúìá ïééôàî -- %c\n" - -#: lib/getopt.c:803 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s úéðëú øåáò éåâù ïééôàî -- %c\n" - -#: lib/getopt.c:833 lib/getopt.c:963 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: èðîåâøà áééçî ïééôàî -- %c\n" - -#: lib/getopt.c:880 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "%s úéðëú øåáò éòîùî-ãç åðéà `-W %s' ïééôàî\n" - -#: lib/getopt.c:898 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s úéðëú øåáò èðîåâøà ìá÷î åðéà `-W %s' ïééôàî\n" - -#: lib/regex.c:1367 -msgid "Success" -msgstr "äçìöä" - -#: lib/regex.c:1370 -msgid "No match" -msgstr "äîéàúî úæåøçî äàöîð àì" - -#: lib/regex.c:1373 -msgid "Invalid regular expression" -msgstr "éåâù éøìåâø éåèéá" - -#: lib/regex.c:1376 -msgid "Invalid collation character" -msgstr "òåãé-éúìá øåãéñ åú" - -#: lib/regex.c:1379 -msgid "Invalid character class name" -msgstr "íéåú úöåá÷ ìù øëåî-éúìá íù" - -#: lib/regex.c:1382 -msgid "Trailing backslash" -msgstr "`\\' éøåçà ïñëåìá íééúñî éøìåâø éåèéá" - -#: lib/regex.c:1385 -msgid "Invalid back reference" -msgstr "íãå÷ éåèéá-úúì äéåâù äééðôä" - -#: lib/regex.c:1388 -msgid "Unmatched [ or [^" -msgstr "âåæ-ïá åì ïéàù [^ åà [" - -#: lib/regex.c:1391 -msgid "Unmatched ( or \\(" -msgstr "âåæ-ïá åì ïéàù \\( åà (" - -#: lib/regex.c:1394 -msgid "Unmatched \\{" -msgstr "âåæ-ïá åì ïéàù \\{" - -#: lib/regex.c:1397 -msgid "Invalid content of \\{\\}" -msgstr "\\{\\} êåúá éåâù äðáî" - -#: lib/regex.c:1400 -msgid "Invalid range end" -msgstr "íéåú íåçú ìù äéåâù äøãâä" - -#: lib/regex.c:1403 -msgid "Memory exhausted" -msgstr "ïåøëæä øîâð" - -#: lib/regex.c:1406 -msgid "Invalid preceding regular expression" -msgstr "íéé÷ åðéà åà éåâù íãå÷ éøìåâø éåèéá" - -#: lib/regex.c:1409 -msgid "Premature end of regular expression" -msgstr "éãî íã÷åî íééúñî éøìåâø éåèéá" - -#: lib/regex.c:1412 -msgid "Regular expression too big" -msgstr "éãî áëøåî åà ìåãâ éøìåâø éåèéá" - -#: lib/regex.c:1415 -msgid "Unmatched ) or \\)" -msgstr "âåæ-ïá åì ïéàù \\) åà )" - -#: lib/regex.c:8034 -msgid "No previous regular expression" -msgstr "íãå÷ éøìåâø éåèéá ïéà" - -#: lib/xmalloc.c:63 -msgid "memory exhausted" -msgstr "ïåøëæä øîâð" - -#: src/analyze.c:809 src/diff.c:1283 -#, c-format -msgid "Files %s and %s differ\n" -msgstr "äæî äæ íéðåù `%s'-å `%s' íéöá÷ä\n" - -#: src/analyze.c:812 -#, c-format -msgid "Binary files %s and %s differ\n" -msgstr "äæî äæ íéðåù `%s'-å `%s' íééøðéá íéöá÷\n" - -#: src/analyze.c:1058 src/diff3.c:1413 src/util.c:526 -msgid "No newline at end of file" -msgstr "õáå÷ä óåñá äùãç-äøåù åú øñç" - -#: src/cmp.c:43 -msgid "Written by Torbjorn Granlund and David MacKenzie." -msgstr ".David MacKenzie-å Torbjorn Granlund é\"ò áúëð" - -#: src/cmp.c:118 src/diff.c:817 src/diff3.c:427 src/sdiff.c:168 -#, c-format -msgid "Try `%s --help' for more information." -msgstr ".øúåé áø òãéî úâöäì `%s --help' ùé÷äì äñð" - -#: src/cmp.c:137 -#, c-format -msgid "invalid --ignore-initial value `%s'" -msgstr "--ignore-initial ïééôàî øåáò `%s' éåâù êøò" - -#: src/cmp.c:146 -msgid "options -l and -s are incompatible" -msgstr "äæ úà äæ íéøúåñ -s-å -l íéðééôàîä" - -#: src/cmp.c:154 src/diff.c:826 src/diff3.c:435 src/sdiff.c:177 -#: src/sdiff.c:313 src/sdiff.c:320 src/sdiff.c:910 src/util.c:194 -#: src/util.c:286 src/util.c:293 -msgid "write failed" -msgstr "äáéúëá äì÷ú" - -#: src/cmp.c:156 src/diff.c:828 src/diff.c:1354 src/diff3.c:437 -#: src/sdiff.c:179 -msgid "standard output" -msgstr "éð÷ú èìô õåøòì" - -#: src/cmp.c:160 -msgid "-b --print-bytes Print differing bytes." -msgstr " .íéäæ íðéàù íéúá âöä -b --print-bytes" - -#: src/cmp.c:161 -msgid "-i SKIP --ignore-initial=SKIP Skip the first SKIP bytes of input." -msgstr " .èì÷ä ìù íéðåùàø íéúá N ìò âìã -i N --ignore-initial=N" - -#: src/cmp.c:162 -msgid "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2" -msgstr "" -" -i N1:N2\n" -" --ignore-initial=N1:N2" - -#: src/cmp.c:163 -msgid "" -" Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2." -msgstr ".éðùä õáå÷á íéúá N2 ìòå ïåùàøä õáå÷á íéúá N1 ìò âìã" - -#: src/cmp.c:164 -msgid "-l --verbose Output byte numbers and values of all differing bytes." -msgstr ".íéäæ íðéàù íéúáä ìë ìù ãå÷å éøåãéñ 'ñî âöä -l --verbose" - -#: src/cmp.c:165 -msgid "-n LIMIT --bytes=LIMIT Compare at most LIMIT bytes." -msgstr " .íéúá N øúåéä ìëì äååùä -n N --bytes=N" - -#: src/cmp.c:166 -msgid "-s --quiet --silent Output nothing; yield exit status only." -msgstr " .ãáìá äàéöé ãå÷ ÷ôä ;èìô àìì -s --quiet --silent" - -#: src/cmp.c:167 src/diff.c:904 src/diff3.c:455 src/sdiff.c:204 -msgid "-v --version Output version info." -msgstr " .úéðëúä úñøéâ úà âöä -v --version" - -#: src/cmp.c:168 src/diff.c:905 src/diff3.c:456 src/sdiff.c:205 -msgid "--help Output this help." -msgstr " .äæ äøæò êñî âöä --help" - -#: src/cmp.c:177 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n" -msgstr " %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]] :ùåîéù ïôåà\n" - -#: src/cmp.c:179 -msgid "Compare two files byte by byte." -msgstr ".úéáì úéá íéöá÷ éðù äååùä" - -#: src/cmp.c:183 -msgid "SKIP1 and SKIP2 are the number of bytes to skip in each file." -msgstr " .íéöá÷äî ãçà ìëá âìãì ùé íäéìò íéúáä éøôñî íä SKIP2-å SKIP1" - -#: src/cmp.c:184 -msgid "" -"SKIP values may be followed by the following multiplicative suffixes:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y." -msgstr "" -" :úåéìôë úåîåéñ íò SKIP éëøò ïééöì ïúéð\n" -" ,M 1,048,576, MB 1,000,000 ,K 1024 ,kB 1000,\n" -" .T, P, E, Z, Y øåáò äàìä ïëå ,G 1,073,741,824 ,GB 1,000,000,000" - -#: src/cmp.c:187 -msgid "If a FILE is `-' or missing, read standard input." -msgstr " .éð÷ú èì÷ õåøòî àø÷ ,ïééåöî åðéà åà `-' åðéä FILE íà" - -#: src/cmp.c:188 src/diff.c:911 src/diff3.c:475 src/sdiff.c:223 -msgid "Report bugs to ." -msgstr ". úáåúëì úåì÷ú ìò íéçååéã çåìùì àð" - -#: src/cmp.c:231 -#, c-format -msgid "invalid --bytes value `%s'" -msgstr "--bytes ïééôàî øåáò `%s' éåâù êøò" - -#: src/cmp.c:258 src/diff.c:734 src/diff3.c:333 src/sdiff.c:558 -#, c-format -msgid "missing operand after `%s'" -msgstr "`%s' éøçà øñç èðîåâøà" - -#: src/cmp.c:270 src/diff.c:736 src/diff3.c:335 src/sdiff.c:560 -#, c-format -msgid "extra operand `%s'" -msgstr "`%s' éøçà øúåéî èðîåâøà" - -#: src/cmp.c:477 -#, c-format -msgid "%s %s differ: byte %s, line %s\n" -msgstr "%s-å %s íéöá÷ä ïéá %s úéá ,%s äøåùî ìçä éðåù\n" - -#: src/cmp.c:495 -#, c-format -msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n" -msgstr "%s-å %s íéöá÷ä ïéá %s úéá ,%s äøåùî ìçä %3o %s %3o %s éðåù\n" - -#: src/cmp.c:543 -#, c-format -msgid "cmp: EOF on %s\n" -msgstr "cmp: %s õáå÷ óåñ\n" - -#: src/diff.c:41 -msgid "" -"Written by Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman, and Len Tower." -msgstr "" -" ,David Hayes ,Mike Haertel ,Paul Eggert é\"ò áúëð\n" -" .Len Tower-å ,Richard Stallman" - -#: src/diff.c:322 -#, c-format -msgid "invalid context length `%s'" -msgstr "`%s' éåâù øù÷ä êøåà" - -#: src/diff.c:405 -msgid "pagination not supported on this host" -msgstr "åæ úëøòîá èìôä ãåîéòá äëéîú ïéà" - -#: src/diff.c:420 src/diff3.c:315 -msgid "too many file label options" -msgstr "íéöá÷ úéååú øåáò -L éðééôàî éãî øúåé" - -#: src/diff.c:498 -#, c-format -msgid "invalid width `%s'" -msgstr "`%s' éåâù äøåù áçåø" - -#: src/diff.c:502 -msgid "conflicting width options" -msgstr "íéøúåñ äøåù áçåø éðééôàî" - -#: src/diff.c:526 -#, c-format -msgid "invalid horizon length `%s'" -msgstr "--horizon-lines ïééôàîá `%s' éåâù úåøåù øôñî" - -#: src/diff.c:629 -#, c-format -msgid "`-%ld' option is obsolete; use `-%c %ld'" -msgstr "ïùåéî åðéäù `-%ld' íå÷îá `-%c %ld'-á ùîúùäì õìîåî" - -#: src/diff.c:641 -#, c-format -msgid "`-%ld' option is obsolete; omit it" -msgstr "ïùåéî åðéäù `-%ld'-á ùîúùäì àì õìîåî" - -#: src/diff.c:709 -msgid "--from-file and --to-file both specified" -msgstr "--to-file ïäå --from-file ïä úðééö" - -#: src/diff.c:832 -msgid "Compare files line by line." -msgstr ".äøåù äøåù íéöá÷ éðù äååùä" - -#: src/diff.c:834 -msgid "-i --ignore-case Ignore case differences in file contents." -msgstr ".íéöá÷ä ïëåúá úåðè÷î úåìåãâ úåéúåà ìéãáú ìà -i --ignore-case" - -#: src/diff.c:835 -msgid "--ignore-file-name-case Ignore case when comparing file names." -msgstr ".íéöá÷ä úåîùá úåðè÷î úåìåãâ úåéúåà ìéãáú ìà --ignore-file-name-case" - -#: src/diff.c:836 -msgid "--no-ignore-file-name-case Consider case when comparing file names." -msgstr "" -" .íéöá÷ä úåîùá úåðè÷î úåìåãâ úåéúåà ìéãáú --no-ignore-file-name-case" - -#: src/diff.c:837 src/sdiff.c:186 -msgid "-E --ignore-tab-expansion Ignore changes due to tab expansion." -msgstr "" -" .íéçååøì TAB ïéá íéìãáäî íìòúä -E --ignore-tab-expansion" - -#: src/diff.c:838 src/sdiff.c:187 -msgid "-b --ignore-space-change Ignore changes in the amount of white space." -msgstr " .íéçååø úåîëá íéìãáäî íìòúä -b --ignore-space-change" - -#: src/diff.c:839 -msgid "-w --ignore-all-space Ignore all white space." -msgstr " .íéçååøä ìëî íìòúä -w --ignore-all-space" - -#: src/diff.c:840 src/sdiff.c:189 -msgid "-B --ignore-blank-lines Ignore changes whose lines are all blank." -msgstr " .úå÷éø íäéúåøåùù íééåðéùî íìòúä -B --ignore-blank-lines" - -#: src/diff.c:841 src/sdiff.c:190 -msgid "" -"-I RE --ignore-matching-lines=RE Ignore changes whose lines all match RE." -msgstr "" -".RE úéðáúì úåîéàúî íäéúåøåùù íééåðéùî íìòúä -I RE --ignore-matching-lines=RE" - -#: src/diff.c:842 src/sdiff.c:191 -msgid "--strip-trailing-cr Strip trailing carriage return on input." -msgstr " .èì÷ úøåù ìë óåñî CR éååú ÷ìñ --strip-trailing-cr" - -#: src/diff.c:844 -msgid "--binary Read and write data in binary mode." -msgstr " .éøàðéá ïôåàá áåúëå àø÷ --binary" - -#: src/diff.c:846 src/diff3.c:451 src/sdiff.c:192 -msgid "-a --text Treat all files as text." -msgstr " .èñ÷è éöá÷áë íéöá÷ä ìëá ìôè -a --text" - -#: src/diff.c:848 -msgid "" -"-c -C NUM --context[=NUM] Output NUM (default 3) lines of copied " -"context.\n" -"-u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified " -"context.\n" -" --label LABEL Use LABEL instead of file name.\n" -" -p --show-c-function Show which C function each change is in.\n" -" -F RE --show-function-line=RE Show the most recent line matching RE." -msgstr "" -" .÷úòåî èñ÷èðå÷ úåøåù (3 :ç\"îøá) NUM äàøä -c -C NUM --context[=NUM]\n" -" .ãçåàî èñ÷èðå÷ úåøåù (3 :ç\"îøá) NUM äàøä -u -U NUM --unified[=NUM]\n" -" .íù íå÷îá LABEL-á ùîúùä --label LABEL\n" -" .éåðéù ìë ìù C úééö÷ðåô íù äàøä -p --show-c-function\n" -" .RE úéðáúì äîéàúîù äðåøçà äøåù äàøä -F RE --show-function-line=RE" - -#: src/diff.c:853 -msgid "-q --brief Output only whether files differ." -msgstr " .íéðåù íéöá÷ä íà øåîà ÷ø -q --brief" - -#: src/diff.c:854 -msgid "-e --ed Output an ed script." -msgstr " .ed êøåò øåáò úåàøåä úîéùø ÷ôä -e --ed" - -#: src/diff.c:855 -msgid "--normal Output a normal diff." -msgstr " .ìéâø èîøåôá íééåðéù ÷ôä --normal" - -#: src/diff.c:856 -msgid "-n --rcs Output an RCS format diff." -msgstr " .RCS èîøåôá íééåðéù ÷ôä -n --rcs" - -#: src/diff.c:857 -msgid "" -"-y --side-by-side Output in two columns.\n" -" -W NUM --width=NUM Output at most NUM (default 130) print columns.\n" -" --left-column Output only the left column of common lines.\n" -" --suppress-common-lines Do not output common lines." -msgstr "" -" .åæ ãöì åæ úåãåîò éúùá èìô êåøò -y --side-by-side\n" -" .íéååú (130 :ç\"îøá) NUM-ì èìô úåøåù ìáâä -W NUM --width=NUM\n" -" .úéìàîùä úà ÷ø âöä ,úåäæ úåøåùä íà --left-column\n" -" .úåäæ úåøåù ììë âéöú ìà --suppress-common-lines" - -#: src/diff.c:861 -msgid "-D NAME --ifdef=NAME Output merged file to show `#ifdef NAME' diffs." -msgstr "`#ifdef NAME'-á íééåðéù ãøôä ,áìåùî õáå÷ ÷ôä -D NAME --ifdef=NAME" - -#: src/diff.c:862 -msgid "" -"--GTYPE-group-format=GFMT Similar, but format GTYPE input groups with GFMT." -msgstr "" -"GFMT úøæòá GTYPE âåñî èì÷ úåöåá÷ èîøô êà ,ì\"ðë --GTYPE-group-format=GFMT" - -#: src/diff.c:863 -msgid "--line-format=LFMT Similar, but format all input lines with LFMT." -msgstr " .LFMT úøæòá úåøåù èîøô êà ,ì\"ðë --line-format=LFMT" - -#: src/diff.c:864 -msgid "" -"--LTYPE-line-format=LFMT Similar, but format LTYPE input lines with LFMT." -msgstr "" -".LFMT úøæòá LTYPE âåñî èì÷ úåøåù èîøô êà ,ì\"ðë --LTYPE-group-format=LFMT" - -#: src/diff.c:865 -msgid " LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'." -msgstr " .`changed' åà LTYPE åîë GTYPE .`unchanged' åà `new' ,`old' àåä LTYPE" - -#: src/diff.c:866 -msgid "" -" GFMT may contain:\n" -" %< lines from FILE1\n" -" %> lines from FILE2\n" -" %= lines common to FILE1 and FILE2\n" -" %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" -" LETTERs are as follows for new group, lower case for old group:\n" -" F first line number\n" -" L last line number\n" -" N number of lines = L-F+1\n" -" E F-1\n" -" M L+1" -msgstr "" -" :ìåìëì ìåëé GFMT\n" -" FILE1-î úåøåù %<\n" -" FILE2-î úåøåù %>\n" -" FILE2-å FILE1-ì úåôúåùî úåøåù %=\n" -" LETTER øåáò printf ïåðâñá úæåøçî %[-][WIDTH][.[PREC]]{doxX}LETTER\n" -" :(äðùé äöåá÷ øåáò úåðè÷ úåéúåà) úåàáä úåéúåàä úçà àéä LETTER\n" -" äðåùàø äøåù øôñî F\n" -" äðåøçà äøåù øôñî L\n" -" L-F+1 = úåøåùä øôñî N\n" -" F-1 E\n" -" M+1 M" - -#: src/diff.c:877 -msgid "" -" LFMT may contain:\n" -" %L contents of line\n" -" %l contents of line, excluding any trailing newline\n" -" %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number" -msgstr "" -" :ìåìëì ìåëé LFMT\n" -" äøåù ïëåú %L\n" -" äøåùä óåñ åú èòîì äøåù ïëåú %l\n" -"èì÷ úøåù øåáò printf ïåðâñá úæåøçî %[-][WIDTH][.[PREC]]{doxX}n" - -#: src/diff.c:881 -msgid "" -" Either GFMT or LFMT may contain:\n" -" %% %\n" -" %c'C' the single character C\n" -" %c'\\OOO' the character with octal code OOO" -msgstr "" -" :íâ ìåìëì íéìåëé LFMT åà GFMT\n" -" %% %\n" -" C ããåá åú %c'C'\n" -" OOO éìè÷åà ãå÷ ìòá åú %c'\\OOO'" - -#: src/diff.c:886 -msgid "-l --paginate Pass the output through `pr' to paginate it." -msgstr " .ãåîéò íùì `pr' êøã èìô áúð -l --paginate" - -#: src/diff.c:887 src/sdiff.c:198 -msgid "-t --expand-tabs Expand tabs to spaces in output." -msgstr " .èìôá íéçååøì TAB éååú êåôä -t --expand-tabs" - -#: src/diff.c:888 src/diff3.c:452 -msgid "-T --initial-tab Make tabs line up by prepending a tab." -msgstr " .äøåùä éðôì TAB \"ò íé-TAB øùé -T --initial-tab" - -#: src/diff.c:890 -msgid "-r --recursive Recursively compare any subdirectories found." -msgstr " .éáéñøå÷ø ïôåàá úåé÷éú-úú äååùä -r --recursive" - -#: src/diff.c:891 -msgid "-N --new-file Treat absent files as empty." -msgstr " .íé÷éø åéä åìéàë íéøñç íéöá÷á ìôè -N --new-file" - -#: src/diff.c:892 -msgid "--unidirectional-new-file Treat absent first files as empty." -msgstr "" -" .íé÷éø åéä åìéàë íéøñç íéðåùàø íéöá÷á ìôè --unidirectional-new-file" - -#: src/diff.c:893 -msgid "-s --report-identical-files Report when two files are the same." -msgstr "" -" .íéäæ íéöá÷ ìò çååã -s --report-identical-files" - -#: src/diff.c:894 -msgid "-x PAT --exclude=PAT Exclude files that match PAT." -msgstr " .PAT úéðáúì íéîéàúî íäéúåîùù íéöá÷ ìò âìã -x PAT --exclude=PAT" - -#: src/diff.c:895 -msgid "" -"-X FILE --exclude-from=FILE Exclude files that match any pattern in FILE." -msgstr "" -"FILE-á úåéðáúì íéîéàúî íäéúåîùù íéöá÷ ìò âìã -X FILE --exclude-from=FILE" - -#: src/diff.c:896 -msgid "" -"-S FILE --starting-file=FILE Start with FILE when comparing directories." -msgstr "" -" .FILE õáå÷á úåé÷éú úàååùä ìçúä -S FILE --starting-file=FILE" - -#: src/diff.c:897 -msgid "" -"--from-file=FILE1 Compare FILE1 to all operands. FILE1 can be a directory." -msgstr "" -".äé÷éú úåéäì ìåëé FILE1 .íéèðîåâøàä øàù ìëì FILE1 äååùä --from-file=FILE1" - -#: src/diff.c:898 -msgid "" -"--to-file=FILE2 Compare all operands to FILE2. FILE2 can be a directory." -msgstr "" -" .äé÷éú úåéäì ìåëé FILE2 .FILE2-ì íéèðîåâøàä ìë äååùä --to-file=FILE2" - -#: src/diff.c:900 -msgid "--horizon-lines=NUM Keep NUM lines of the common prefix and suffix." -msgstr "" -".íéöá÷ä íåéñå äìéçúá úåôúåùî úåøåù NUM øàùä --horizon-lines=NUM" - -#: src/diff.c:901 src/sdiff.c:200 -msgid "-d --minimal Try hard to find a smaller set of changes." -msgstr " .íééåðéùä úöåá÷ úà ïéè÷äì ìãúùä -d --minimal" - -#: src/diff.c:902 -msgid "" -"--speed-large-files Assume large files and many scattered small changes." -msgstr " .íé÷çåøîå íéðè÷ íééåðéùå íéìåãâ íéöá÷ çðä --speed-large-files" - -#: src/diff.c:907 -msgid "" -"FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'." -msgstr "" -".`FILE... DIR' åà `DIR FILE...' åà `DIR1 DIR2' åà `FILE1 FILE2' íä FILES" - -#: src/diff.c:908 -msgid "" -"If --from-file or --to-file is given, there are no restrictions on FILES." -msgstr "" -" .FILES ìò úåìáâî ïéà éæà ,--to-file åà --from-file ïééôàî ïåúð íà" - -#: src/diff.c:909 src/diff3.c:474 src/sdiff.c:222 -msgid "If a FILE is `-', read standard input." -msgstr "" -" .éð÷úä èì÷ä õøòî àø÷ ,`-' àåä FILE íà" - -#: src/diff.c:920 -#, c-format -msgid "Usage: %s [OPTION]... FILES\n" -msgstr "%s [OPTION]... FILES :ùåîéù ïôåà\n" - -#: src/diff.c:949 -#, c-format -msgid "conflicting %s option value `%s'" -msgstr "%s ïééôàî ìù íãå÷ êøò øúåñ `%s' êøò" - -#: src/diff.c:962 -msgid "conflicting output style options" -msgstr "èìô ïåðâñ ìù íéøúåñ íéðééôàî" - -#: src/diff.c:976 -msgid "regular empty file" -msgstr "÷éø õáå÷" - -#: src/diff.c:976 -msgid "regular file" -msgstr "õáå÷" - -#: src/diff.c:978 -msgid "directory" -msgstr "äé÷éú" - -#: src/diff.c:981 -msgid "block special file" -msgstr "íé÷åìá ï÷úä õáå÷" - -#: src/diff.c:984 -msgid "character special file" -msgstr "íéåú ï÷úä õáå÷" - -#: src/diff.c:987 -msgid "fifo" -msgstr "fifo õáå÷" - -#: src/diff.c:991 -msgid "socket" -msgstr "ò÷ù" - -#: src/diff.c:994 -msgid "message queue" -msgstr "úåòãåä øåú" - -#: src/diff.c:997 -msgid "semaphore" -msgstr "øåôîñ" - -#: src/diff.c:1000 -msgid "shared memory object" -msgstr "óúåùî ïåøëæ è÷ééáåà" - -#: src/diff.c:1003 -msgid "typed memory object" -msgstr "âååéñ ìòá ïåøëæ è÷ééáåà" - -#: src/diff.c:1006 -msgid "weird file" -msgstr "øæåî õáå÷" - -#: src/diff.c:1070 src/diff.c:1256 -#, c-format -msgid "Only in %s: %s\n" -msgstr "%s-á ÷ø àöîð %s\n" - -#: src/diff.c:1193 -msgid "cannot compare `-' to a directory" -msgstr "äé÷éúì `-' úååùäì úåøùôà ïéà" - -#: src/diff.c:1220 -msgid "-D option not supported with directories" -msgstr "úåé÷éú øåáò -D ïééôàîá äëéîú ïéà" - -#: src/diff.c:1229 -#, c-format -msgid "Common subdirectories: %s and %s\n" -msgstr "%s-å %s :úåäæ úåé÷éú-úú\n" - -#: src/diff.c:1266 -#, c-format -msgid "File %s is a %s while file %s is a %s\n" -msgstr "%s %s-ì %s %s úååùäì ïúéð àì\n" - -#: src/diff.c:1345 -#, c-format -msgid "Files %s and %s are identical\n" -msgstr "íéäæ íðéä %s-å %s íéöá÷ä\n" - -#: src/diff3.c:26 -msgid "Written by Randy Smith." -msgstr ".Randy Smith é\"ò áúëð" - -#: src/diff3.c:328 -msgid "incompatible options" -msgstr "íéøúåñ íéðééôàî" - -#: src/diff3.c:368 -msgid "`-' specified for more than one input file" -msgstr "ãçà èì÷ õáå÷î øúåé øåáò `-' úðééö" - -#: src/diff3.c:408 src/diff3.c:1232 src/diff3.c:1645 src/diff3.c:1700 -#: src/sdiff.c:305 src/sdiff.c:879 src/sdiff.c:890 -msgid "read failed" -msgstr "äàéø÷á äì÷ú" - -#: src/diff3.c:441 -msgid "-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE." -msgstr "MYFILE êåú ìà YOURFILE-ì OLDFILE-î âåæéî àìì íééåðéù -e --ed" - -#: src/diff3.c:442 -msgid "-E --show-overlap Output unmerged changes, bracketing conflicts." -msgstr "" -" .íéè÷éìôðå÷ ïîñ ,âåæéî àìì íééåðéù âöä -E --show-overlap" - -#: src/diff3.c:443 -msgid "-A --show-all Output all changes, bracketing conflicts." -msgstr " .íéè÷éìôðå÷ ïîñ ,íééåðéùä ìë úà âöä -A --show-all" - -#: src/diff3.c:444 -msgid "-x --overlap-only Output overlapping changes." -msgstr "" -" .íéôôåç íééåðéù âöä -x --overlap-only" - -#: src/diff3.c:445 -msgid "-X Output overlapping changes, bracketing them." -msgstr " .íúåà ïîñå íéôôåç íééåðéù âöä -X" - -#: src/diff3.c:446 -msgid "-3 --easy-only Output unmerged nonoverlapping changes." -msgstr " .âåæéî àììå íéôôåç íðéàù íééåðéù âöä -3 --easy-only" - -#: src/diff3.c:448 -msgid "-m --merge Output merged file instead of ed script (default -A)." -msgstr " .(-A ç\"îøá) ed úåàøåä íå÷îá âæåîî õáå÷ áåúë -m --merge" - -#: src/diff3.c:449 -msgid "-L LABEL --label=LABEL Use LABEL instead of file name." -msgstr "" -" .õáå÷ä íù íå÷îá LABEL-á ùîúùä -L LABEL --label=LABEL" - -#: src/diff3.c:450 -msgid "-i Append `w' and `q' commands to ed scripts." -msgstr " .ed úåãå÷ô íåéñá `q'-å `w' úåãå÷ô áåúë -i" - -#: src/diff3.c:453 src/sdiff.c:202 -msgid "--diff-program=PROGRAM Use PROGRAM to compare files." -msgstr "" -" .íéöá÷ úàåùäì PROGRAM úéðëúá ùîúùä --diff-program=PROGRAM" - -#: src/diff3.c:465 -#, c-format -msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n" -msgstr "%s [OPTION]... MYFILE OLDFILE YOURFILE :ùåîéù ïôåà\n" - -#: src/diff3.c:467 -msgid "Compare three files line by line." -msgstr ".úéáì úéá íéöá÷ äùìù äååùä" - -#: src/diff3.c:673 -msgid "internal error: screwup in format of diff blocks" -msgstr "diff éòè÷ èîøåôá äçéøî :úéîéðô äðëú úàéâù" - -#: src/diff3.c:971 -#, c-format -msgid "%s: diff failed: " -msgstr "%s é\"ò diff úìòôäá äì÷ú :" - -#: src/diff3.c:993 -msgid "internal error: invalid diff type in process_diff" -msgstr "process_diff úééö÷ðåôá éåðéù ìù éåâù âåñ :úéîéðô äðëú úàéâù" - -#: src/diff3.c:1018 -msgid "invalid diff format; invalid change separator" -msgstr "äéåâù íééåðéù úãøôä úæåøçî :éåðéù ìù éåâù èîøåô" - -#: src/diff3.c:1242 -msgid "invalid diff format; incomplete last line" -msgstr "äîìù äðéà äðåøçà äøåù :éåðéù ìù éåâù èîøåô" - -#: src/diff3.c:1265 src/sdiff.c:273 -#, c-format -msgid "subsidiary program `%s' not executable" -msgstr "òåöéá úá äðéà `%s' úéðëú-úú" - -#: src/diff3.c:1268 src/sdiff.c:276 src/util.c:298 -#, c-format -msgid "subsidiary program `%s' not found" -msgstr "äàöîð àì `%s' úéðëú-úú" - -#: src/diff3.c:1272 src/sdiff.c:268 src/util.c:301 -#, c-format -msgid "subsidiary program `%s' failed" -msgstr "`%s' úéðëú-úú úöøäá ïåìùë" - -#: src/diff3.c:1294 -msgid "invalid diff format; incorrect leading line chars" -msgstr "äøåù úìéçúá íééåâù íéååú :éåðéù ìù éåâù èîøåô" - -#: src/diff3.c:1370 -msgid "internal error: invalid diff type passed to output" -msgstr "èìô éëøöì éåðéù ìù éåâù âåñ :úéîéðô äðëú úàéâù" - -#: src/diff3.c:1647 src/diff3.c:1704 -msgid "input file shrank" -msgstr "÷îèöä èì÷ õáå÷" - -#: src/dir.c:162 -#, c-format -msgid "cannot compare file names `%s' and `%s'" -msgstr "`%s'-å `%s' íéöá÷ úåîù úååùäì ïúéð àì" - -#: src/sdiff.c:35 -msgid "Written by Thomas Lord." -msgstr ".Thomas Lord é\"ò áúëð" - -#: src/sdiff.c:183 -msgid "-o FILE --output=FILE Operate interactively, sending output to FILE." -msgstr " .FILE-ì èìô ,úéáéè÷àøèðéà äìåòô -o FILE --output=FILE" - -#: src/sdiff.c:185 -msgid "-i --ignore-case Consider upper- and lower-case to be the same." -msgstr " .úåðè÷å úåìåãâ úåéúåà ïéá íéìãáäî íìòúä -i --ignore-case" - -#: src/sdiff.c:188 -msgid "-W --ignore-all-space Ignore all white space." -msgstr " .øçà ïáì çèùå íéçååøî íìòúä -W --ignore-all-space" - -#: src/sdiff.c:194 -msgid "-w NUM --width=NUM Output at most NUM (default 130) columns per line." -msgstr ".äøåùì (130 ç\"îøá) íéååú NUM øúåéä ìëì âöä -w NUM --width=NUM" - -#: src/sdiff.c:195 -msgid "-l --left-column Output only the left column of common lines." -msgstr " .úéìàîùä úà ÷ø âöä ,úåäæ úåøåùä íà -l --left-column" - -#: src/sdiff.c:196 -msgid "-s --suppress-common-lines Do not output common lines." -msgstr "" -" .úåäæ úåøåù ììë âéöú ìà -s --suppress-common-lines" - -#: src/sdiff.c:201 -msgid "" -"-H --speed-large-files Assume large files and many scattered small changes." -msgstr " .íé÷çåøîå íéðè÷ íééåðéùå íéìåãâ íéöá÷ çðä -H --speed-large-files" - -#: src/sdiff.c:214 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 FILE2\n" -msgstr "%s [OPTION]... FILE1 FILE2 :ùåîéù ïôåà\n" - -#: src/sdiff.c:215 -msgid "Side-by-side merge of file differences." -msgstr ".äæ ãöá äæ íéöá÷ ïéá íééåðéù ìù âåæéî" - -#: src/sdiff.c:327 -msgid "cannot interactively merge standard input" -msgstr "éáéè÷àøèðéà ïôåàá éð÷ú èì÷ õåøò âæîì úåøùôà ïéà" - -#: src/sdiff.c:588 -msgid "both files to be compared are directories" -msgstr "úåé÷éú íðéä äàååùäì íéöá÷ä éðù" - -#: src/sdiff.c:853 -msgid "" -"ed:\tEdit then use both versions, each decorated with a header.\n" -"eb:\tEdit then use both versions.\n" -"el:\tEdit then use the left version.\n" -"er:\tEdit then use the right version.\n" -"e:\tEdit a new version.\n" -"l:\tUse the left version.\n" -"r:\tUse the right version.\n" -"s:\tSilently include common lines.\n" -"v:\tVerbosely include common lines.\n" -"q:\tQuit.\n" -msgstr "" -"ed -- äúøúåë íò úçà ìë ,úåàñøâä éúùá ùîúùä æàå ,êåøò\n" -"eb -- úåàñøâä éúùá ùîúùä æàå ,êåøò\n" -"el -- ìàîùîù àñøâá ùîúùä æàå ,êåøò\n" -"er -- ïéîéîù àñøâá ùîúùä æàå ,êåøò\n" -"e -- éøîâì äùãç àñøâ êåøò\n" -"l -- ìàîùîù àñøâá ùîúùä\n" -"r -- ïéîéîù àñøâá ùîúùä\n" -"s -- ïâéöäì éìáî úåôúåùî úåøåù ÷úòä\n" -"v -- ïúâöä êåú úåôúåùî úåøåù ÷úòä\n" -"q -- äàéöé\n" diff --git a/gnu/dist/diffutils/po/id.gmo b/gnu/dist/diffutils/po/id.gmo deleted file mode 100644 index 9fda1b8a987..00000000000 Binary files a/gnu/dist/diffutils/po/id.gmo and /dev/null differ diff --git a/gnu/dist/diffutils/po/id.po b/gnu/dist/diffutils/po/id.po deleted file mode 100644 index b60ceaf9349..00000000000 --- a/gnu/dist/diffutils/po/id.po +++ /dev/null @@ -1,913 +0,0 @@ -# diffutils 2.7.10 (Indonesian) -# Copyright (C) 2002 Free Software Foundation, Inc. -# Tedi Heriyanto , 2002 -# -msgid "" -msgstr "" -"Project-Id-Version: diffutils 2.7.10\n" -"POT-Creation-Date: 2002-04-05 14:10-0800\n" -"PO-Revision-Date: 2002-04-02 09:35GMT+0700\n" -"Last-Translator: Tedi Heriyanto \n" -"Language-Team: Indonesian \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 0.9.5\n" - -#: lib/c-stack.c:188 -msgid "program error" -msgstr "kesalahan program" - -#: lib/c-stack.c:189 -msgid "stack overflow" -msgstr "overflow stack" - -#: lib/error.c:128 lib/error.c:156 -msgid "Unknown system error" -msgstr "Kesalahan sistem tidak dikenal" - -#: lib/freesoft.c:27 -msgid "" -"This program comes with NO WARRANTY, to the extent permitted by law.\n" -"You may redistribute copies of this program\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING." -msgstr "" -"This program comes with NO WARRANTY, to the extent permitted by law.\n" -"You may redistribute copies of this program\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING." - -#: lib/getopt.c:693 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s: option `%s' rancu\n" - -#: lib/getopt.c:718 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: option `--%s' tidak mengijinkan ada argumen\n" - -#: lib/getopt.c:723 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: option `%c%s' tidak mengijinkan ada argumen\n" - -#: lib/getopt.c:741 lib/getopt.c:914 -#, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s: option `%s' butuh sebuah argumen\n" - -#: lib/getopt.c:770 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: option tidak dikenal `--%s'\n" - -#: lib/getopt.c:774 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: option tidak dikenal `%c%s'\n" - -#: lib/getopt.c:800 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: option ilegal -- %c\n" - -#: lib/getopt.c:803 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: option invalid -- %c\n" - -#: lib/getopt.c:833 lib/getopt.c:963 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: option membutuhkan sebuah argumen -- %c\n" - -#: lib/getopt.c:880 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "%s: option `-W %s' rancu\n" - -#: lib/getopt.c:898 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: option `-W %s' tidak memboleh ada argumen\n" - -#: lib/regex.c:1367 -msgid "Success" -msgstr "Sukses" - -#: lib/regex.c:1370 -msgid "No match" -msgstr "Tidak ada kecocokan" - -#: lib/regex.c:1373 -msgid "Invalid regular expression" -msgstr "Ekspresi reguler tidak valid" - -#: lib/regex.c:1376 -msgid "Invalid collation character" -msgstr "Karakter collation tidak valid" - -#: lib/regex.c:1379 -msgid "Invalid character class name" -msgstr "Nama karakter kelas tidak valid" - -#: lib/regex.c:1382 -msgid "Trailing backslash" -msgstr "Trailing backslash" - -#: lib/regex.c:1385 -msgid "Invalid back reference" -msgstr "Back reference tidak valid" - -#: lib/regex.c:1388 -msgid "Unmatched [ or [^" -msgstr "Tidak cocok [ atau [^" - -#: lib/regex.c:1391 -msgid "Unmatched ( or \\(" -msgstr "Tidak cocok ( atau \\(" - -#: lib/regex.c:1394 -msgid "Unmatched \\{" -msgstr "Tidak cocok \\{" - -#: lib/regex.c:1397 -msgid "Invalid content of \\{\\}" -msgstr "Isi \\\\{\\\\} tidak valid" - -#: lib/regex.c:1400 -msgid "Invalid range end" -msgstr "Batas akhir tidak valid" - -#: lib/regex.c:1403 -msgid "Memory exhausted" -msgstr "Memori habis" - -#: lib/regex.c:1406 -msgid "Invalid preceding regular expression" -msgstr "Ekspresi reguler terdahulu tidak valid" - -#: lib/regex.c:1409 -msgid "Premature end of regular expression" -msgstr "Akhir ekspresi reguler prematur" - -#: lib/regex.c:1412 -msgid "Regular expression too big" -msgstr "Ekspresi reguler terlalu besar" - -#: lib/regex.c:1415 -msgid "Unmatched ) or \\)" -msgstr "Tidak cocok ) atau \\)" - -#: lib/regex.c:8034 -msgid "No previous regular expression" -msgstr "Tidak ada ekspresi reguler sebelumnya" - -#: lib/xmalloc.c:63 -msgid "memory exhausted" -msgstr "memori habis" - -#: src/analyze.c:809 src/diff.c:1283 -#, c-format -msgid "Files %s and %s differ\n" -msgstr "File %s dan %s berbeda\n" - -#: src/analyze.c:812 -#, c-format -msgid "Binary files %s and %s differ\n" -msgstr "File biner %s dan %s berbeda\n" - -#: src/analyze.c:1058 src/diff3.c:1413 src/util.c:526 -msgid "No newline at end of file" -msgstr "Tidak ada newline pada akhir file" - -#: src/cmp.c:43 -msgid "Written by Torbjorn Granlund and David MacKenzie." -msgstr "Ditulis oleh Torbjorn Granlund dan David MacKenzie." - -#: src/cmp.c:118 src/diff.c:817 src/diff3.c:427 src/sdiff.c:168 -#, c-format -msgid "Try `%s --help' for more information." -msgstr "Coba `%s --help' untuk informasi lebih jauh." - -#: src/cmp.c:137 -#, c-format -msgid "invalid --ignore-initial value `%s'" -msgstr "tidak valid --ignore-initial value `%s'" - -#: src/cmp.c:146 -msgid "options -l and -s are incompatible" -msgstr "option -l dan -s tidak kompatibel" - -#: src/cmp.c:154 src/diff.c:826 src/diff3.c:435 src/sdiff.c:177 -#: src/sdiff.c:313 src/sdiff.c:320 src/sdiff.c:910 src/util.c:194 -#: src/util.c:286 src/util.c:293 -msgid "write failed" -msgstr "gagal menulis" - -#: src/cmp.c:156 src/diff.c:828 src/diff.c:1354 src/diff3.c:437 -#: src/sdiff.c:179 -msgid "standard output" -msgstr "output standar" - -#: src/cmp.c:160 -msgid "-b --print-bytes Print differing bytes." -msgstr "-b --print-bytes Cetak byte berbeda." - -#: src/cmp.c:161 -msgid "-i SKIP --ignore-initial=SKIP Skip the first SKIP bytes of input." -msgstr "-i SKIP --ignore-initial=SKIP Lewati SKIP byte pertama input." - -#: src/cmp.c:162 -msgid "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2" -msgstr "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2" - -#: src/cmp.c:163 -msgid "" -" Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2." -msgstr " Lewati SKIP1 byte pertama FILE1 dan SKIP2 byte pertama FILE2." - -#: src/cmp.c:164 -msgid "-l --verbose Output byte numbers and values of all differing bytes." -msgstr "-l --verbose Output nomor byte dan nilai semua byte yang berbeda." - -#: src/cmp.c:165 -msgid "-n LIMIT --bytes=LIMIT Compare at most LIMIT bytes." -msgstr "-n LIMIT --bytes=LIMIT Bandingkan paling banyak LIMIT byte." - -#: src/cmp.c:166 -msgid "-s --quiet --silent Output nothing; yield exit status only." -msgstr "-s --quiet --silent Tidak ada output; hanya beri status keluar." - -#: src/cmp.c:167 src/diff.c:904 src/diff3.c:455 src/sdiff.c:204 -msgid "-v --version Output version info." -msgstr "-v --version Tampilkan info versi." - -#: src/cmp.c:168 src/diff.c:905 src/diff3.c:456 src/sdiff.c:205 -msgid "--help Output this help." -msgstr "--help Tampilkan bantuan ini." - -#: src/cmp.c:177 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n" -msgstr "Penggunaan: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n" - -#: src/cmp.c:179 -msgid "Compare two files byte by byte." -msgstr "Bandingkan dua file byte per byte" - -#: src/cmp.c:183 -msgid "SKIP1 and SKIP2 are the number of bytes to skip in each file." -msgstr "SKIP1 dan SKIP2 adalah jumlah byte yang harus dilewati di tiap file." - -#: src/cmp.c:184 -msgid "" -"SKIP values may be followed by the following multiplicative suffixes:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y." -msgstr "" -"Nilai SKIP dapat diikuti oleh suffiks perkalian berikut:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, dan seterusnya untuk T, P, E, Z, Y." - -#: src/cmp.c:187 -msgid "If a FILE is `-' or missing, read standard input." -msgstr "Jika sebuah FILE adalah `-' atau tidak ada, baca input standar" - -#: src/cmp.c:188 src/diff.c:911 src/diff3.c:475 src/sdiff.c:223 -msgid "Report bugs to ." -msgstr "Laporkan bug ke " - -#: src/cmp.c:231 -#, c-format -msgid "invalid --bytes value `%s'" -msgstr "nilai --byte tidak valid `%s'" - -#: src/cmp.c:258 src/diff.c:734 src/diff3.c:333 src/sdiff.c:558 -#, c-format -msgid "missing operand after `%s'" -msgstr "tidak ada operand setelah `%s'" - -#: src/cmp.c:270 src/diff.c:736 src/diff3.c:335 src/sdiff.c:560 -#, c-format -msgid "extra operand `%s'" -msgstr "operand ekstra `%s'" - -#: src/cmp.c:477 -#, c-format -msgid "%s %s differ: byte %s, line %s\n" -msgstr "%s %s berbeda: byte %s, baris %s\n" - -#: src/cmp.c:495 -#, c-format -msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n" -msgstr "%s %s berbeda: byte %s, baris %s adalah %3o %s %3o %s\n" - -#: src/cmp.c:543 -#, c-format -msgid "cmp: EOF on %s\n" -msgstr "cmp: EOF pada %s\n" - -#: src/diff.c:41 -msgid "" -"Written by Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman, and Len Tower." -msgstr "" -"Ditulis oleh Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman, dan Len Tower." - -#: src/diff.c:322 -#, c-format -msgid "invalid context length `%s'" -msgstr "panjang context tidak valid `%s'" - -#: src/diff.c:405 -msgid "pagination not supported on this host" -msgstr "paginasi tidak didukung pada host ini" - -#: src/diff.c:420 src/diff3.c:315 -msgid "too many file label options" -msgstr "terlalu banyak option label file" - -#: src/diff.c:498 -#, c-format -msgid "invalid width `%s'" -msgstr "lebar tidak valid `%s'" - -#: src/diff.c:502 -msgid "conflicting width options" -msgstr "option lebar konflik" - -#: src/diff.c:526 -#, c-format -msgid "invalid horizon length `%s'" -msgstr "panjang horizon tidak valid `%s'" - -#: src/diff.c:629 -#, c-format -msgid "`-%ld' option is obsolete; use `-%c %ld'" -msgstr "`-%ld' option kuno; gunakan `-%c %ld'" - -#: src/diff.c:641 -#, c-format -msgid "`-%ld' option is obsolete; omit it" -msgstr "`-%ld' option kuno, hilangkan saja" - -#: src/diff.c:709 -msgid "--from-file and --to-file both specified" -msgstr "--from-file dan --to-file keduanya disebutkan" - -#: src/diff.c:832 -msgid "Compare files line by line." -msgstr "Bandingkan file baris per baris" - -#: src/diff.c:834 -msgid "-i --ignore-case Ignore case differences in file contents." -msgstr "-i --ignore-case Abaikan beda case dalam isi file." - -#: src/diff.c:835 -msgid "--ignore-file-name-case Ignore case when comparing file names." -msgstr "--ignore-file-name-case Abaikan case saat membandingkan nama file." - -#: src/diff.c:836 -msgid "--no-ignore-file-name-case Consider case when comparing file names." -msgstr "" -"--no-ignore-file-name-case Pertimbangkan case saat membandingkan nama file." - -#: src/diff.c:837 src/sdiff.c:186 -msgid "-E --ignore-tab-expansion Ignore changes due to tab expansion." -msgstr "-E --ignore-tab-expansion Abaikan perubahan akibat ekspansi tab." - -#: src/diff.c:838 src/sdiff.c:187 -msgid "-b --ignore-space-change Ignore changes in the amount of white space." -msgstr "-b --ignore-space-change Abaikan perubahan sejumlah white space." - -#: src/diff.c:839 -msgid "-w --ignore-all-space Ignore all white space." -msgstr "-w --ignore-all-space Abaikan seluruh white space." - -#: src/diff.c:840 src/sdiff.c:189 -msgid "-B --ignore-blank-lines Ignore changes whose lines are all blank." -msgstr "-B --ignore-blank-lines Abaikan perubahan baris kosong." - -#: src/diff.c:841 src/sdiff.c:190 -msgid "" -"-I RE --ignore-matching-lines=RE Ignore changes whose lines all match RE." -msgstr "" -"-I RE --ignore-matching-lines=RE Abaikan perubahan baris yang cocok dg RE." - -#: src/diff.c:842 src/sdiff.c:191 -msgid "--strip-trailing-cr Strip trailing carriage return on input." -msgstr "--strip-trailing-cr Hapus trailing carriage return pada input." - -#: src/diff.c:844 -msgid "--binary Read and write data in binary mode." -msgstr "--binary Baca dan tulis data dalam mode biner." - -#: src/diff.c:846 src/diff3.c:451 src/sdiff.c:192 -msgid "-a --text Treat all files as text." -msgstr "-a --text Perlakukan seluruh file sebagai teks." - -#: src/diff.c:848 -msgid "" -"-c -C NUM --context[=NUM] Output NUM (default 3) lines of copied " -"context.\n" -"-u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified " -"context.\n" -" --label LABEL Use LABEL instead of file name.\n" -" -p --show-c-function Show which C function each change is in.\n" -" -F RE --show-function-line=RE Show the most recent line matching RE." -msgstr "" -"-c -C NUM --context[=NUM] Output NUM (baku 3) baris isi yang disalin.\n" -"-u -U NUM --unified[=NUM] Output NUM (baku 3) baris unified context.\n" -" --label LABEL Gunakan LABEL alih-alih nama file.\n" -" -p --show-c-function Tampilkan setiap fungsi C yang berubah.\n" -" -F RE --show-function-line=RE Tampilkan baris paling akhir yang cocok " -"dengan RE." - -#: src/diff.c:853 -msgid "-q --brief Output only whether files differ." -msgstr "-q --brief Tampilkan hanya apakah file berbeda." - -#: src/diff.c:854 -msgid "-e --ed Output an ed script." -msgstr "-e --ed Output adalah script ed." - -#: src/diff.c:855 -msgid "--normal Output a normal diff." -msgstr "--normal Output normal diff." - -#: src/diff.c:856 -msgid "-n --rcs Output an RCS format diff." -msgstr "-n --rcs Output dalam format RCS diff." - -#: src/diff.c:857 -msgid "" -"-y --side-by-side Output in two columns.\n" -" -W NUM --width=NUM Output at most NUM (default 130) print columns.\n" -" --left-column Output only the left column of common lines.\n" -" --suppress-common-lines Do not output common lines." -msgstr "" -"-y --side-by-side Output dalam dua kolom.\n" -" -W NUM --width=NUM Output paling banyak NUM (baku 130) kolom.\n" -" --left-column Output hanya kolom kiri baris bersama.\n" -" --suppress-common-lines Jangan hasilkan baris bersama." - -#: src/diff.c:861 -msgid "-D NAME --ifdef=NAME Output merged file to show `#ifdef NAME' diffs." -msgstr "" -"-D NAME --ifdef=NAME Output file merge untuk tampilkan `#ifdef NAME' diffs." - -#: src/diff.c:862 -msgid "" -"--GTYPE-group-format=GFMT Similar, but format GTYPE input groups with GFMT." -msgstr "" -"--GTYPE-group-format=GFMT Serupa, tapi format input kelompok GTYPE dg GFMT. " - -#: src/diff.c:863 -msgid "--line-format=LFMT Similar, but format all input lines with LFMT." -msgstr "--line-format=LFMT Serupa, tapi format seluruh baris input dg LFMT." - -#: src/diff.c:864 -msgid "" -"--LTYPE-line-format=LFMT Similar, but format LTYPE input lines with LFMT." -msgstr "" -"--LTYPE-line-format=LFMT Serupa, tapi format baris input LTYPE dg LFMT." - -#: src/diff.c:865 -msgid " LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'." -msgstr "" -" LTYPE adalah `old', `new', atau `unchanged'. GTYPE adalah LTYPE atau " -"`changed'." - -#: src/diff.c:866 -msgid "" -" GFMT may contain:\n" -" %< lines from FILE1\n" -" %> lines from FILE2\n" -" %= lines common to FILE1 and FILE2\n" -" %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" -" LETTERs are as follows for new group, lower case for old group:\n" -" F first line number\n" -" L last line number\n" -" N number of lines = L-F+1\n" -" E F-1\n" -" M L+1" -msgstr "" -" GFMT dapat berisi:\n" -" %< baris dari FILE1\n" -" %> baris dari FILE2\n" -" %= baris bersama FILE1 dan FILE2\n" -" %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec untuk LETTER\n" -" LETTERs adalah sebagai berikut untuk grup baru, huruf kecil untuk grup " -"tua:\n" -" F nomor baris pertama\n" -" L nomor baris terakhir\n" -" N jumlah baris = L-F+1\n" -" E F-1\n" -" M L+1" - -#: src/diff.c:877 -msgid "" -" LFMT may contain:\n" -" %L contents of line\n" -" %l contents of line, excluding any trailing newline\n" -" %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number" -msgstr "" -" LFMT dapat berisi:\n" -" %L isi baris\n" -" %l isi baris, tanpa baris baru\n" -" %[-][WIDTH][.[PREC]]{doxX}n printf-style spec untuk nomor baris input" - -#: src/diff.c:881 -msgid "" -" Either GFMT or LFMT may contain:\n" -" %% %\n" -" %c'C' the single character C\n" -" %c'\\OOO' the character with octal code OOO" -msgstr "" -" GFMT atau LFMT dapat berisikan:\n" -" %% %\n" -" %c'C' karakter tunggal C\n" -" %c'\\OOO' karakter dengan kode oktal OOO" - -#: src/diff.c:886 -msgid "-l --paginate Pass the output through `pr' to paginate it." -msgstr "-l --paginate Berikan output ke `pr' untuk di-paginate." - -#: src/diff.c:887 src/sdiff.c:198 -msgid "-t --expand-tabs Expand tabs to spaces in output." -msgstr "-t --expand-tabs Ekspansi tab ke spasi dalam output." - -#: src/diff.c:888 src/diff3.c:452 -msgid "-T --initial-tab Make tabs line up by prepending a tab." -msgstr "-T --initial-tab Buat tab beraturan dg menambahkan sebuah tab." - -#: src/diff.c:890 -msgid "-r --recursive Recursively compare any subdirectories found." -msgstr "-r --recursive Membandingkan subdirektori secara rekursif." - -#: src/diff.c:891 -msgid "-N --new-file Treat absent files as empty." -msgstr "-N --new-file Perlakukan tiada file sebagai kosong." - -#: src/diff.c:892 -msgid "--unidirectional-new-file Treat absent first files as empty." -msgstr "" -"--unidirectional-new-file Anggap file tidak ada pertama sebagai kosong." - -#: src/diff.c:893 -msgid "-s --report-identical-files Report when two files are the same." -msgstr "-s --report-identical-files Laporkan ketika dua file sama." - -#: src/diff.c:894 -msgid "-x PAT --exclude=PAT Exclude files that match PAT." -msgstr "-x PAT --exclude=PAT Tanpa file yang cocok dengan PAT." - -#: src/diff.c:895 -msgid "" -"-X FILE --exclude-from=FILE Exclude files that match any pattern in FILE." -msgstr "" -"-X FILE --exclude-from=FILE Abaikan file yang cocok dengan pola dalam FILE" - -#: src/diff.c:896 -msgid "" -"-S FILE --starting-file=FILE Start with FILE when comparing directories." -msgstr "" -"-S FILE --starting-file=FILE Mulai dengan FILE ketika membandingkan " -"direktori." - -#: src/diff.c:897 -msgid "" -"--from-file=FILE1 Compare FILE1 to all operands. FILE1 can be a directory." -msgstr "" -"--from-file=FILE1 Bandingkan FILE1 ke semua operand. FILE1 dapat berupa " -"direktori." - -#: src/diff.c:898 -msgid "" -"--to-file=FILE2 Compare all operands to FILE2. FILE2 can be a directory." -msgstr "" -"--to-file=FILE2 Bandingkan semua operand dengan FILE2. FILE2 dapat berupa " -"direktori." - -#: src/diff.c:900 -msgid "--horizon-lines=NUM Keep NUM lines of the common prefix and suffix." -msgstr "--horizon-lines=NUM Pertahankan NUM baris prefiks dan suffiks umum." - -#: src/diff.c:901 src/sdiff.c:200 -msgid "-d --minimal Try hard to find a smaller set of changes." -msgstr "-d --minimal Usahakan mencari perubahan terkecil." - -#: src/diff.c:902 -msgid "" -"--speed-large-files Assume large files and many scattered small changes." -msgstr "--speed-large-files Asumsikan file besar dan banyak perubahan kecil." - -#: src/diff.c:907 -msgid "" -"FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'." -msgstr "" -"FILES adalah `FILE1 FILE2' atau `DIR1 DIR2' atau `DIR FILE...' atau `FILE... " -"DIR'." - -#: src/diff.c:908 -msgid "" -"If --from-file or --to-file is given, there are no restrictions on FILES." -msgstr "" -"Bila --from-file atau --to-file diberikan, tidak ada batasan untuk FILES." - -#: src/diff.c:909 src/diff3.c:474 src/sdiff.c:222 -msgid "If a FILE is `-', read standard input." -msgstr "Jika sebuah file FILE adalah `-', baca standard input." - -#: src/diff.c:920 -#, c-format -msgid "Usage: %s [OPTION]... FILES\n" -msgstr "Penggunaan: %s [OPTION]... FILES\n" - -#: src/diff.c:949 -#, c-format -msgid "conflicting %s option value `%s'" -msgstr "Nilai option %s konflik dengan `%s'" - -#: src/diff.c:962 -msgid "conflicting output style options" -msgstr "option gaya output konflik" - -#: src/diff.c:976 -msgid "regular empty file" -msgstr "file reguler kosong" - -#: src/diff.c:976 -msgid "regular file" -msgstr "file reguler" - -#: src/diff.c:978 -msgid "directory" -msgstr "direktori" - -#: src/diff.c:981 -msgid "block special file" -msgstr "blok file khusus" - -#: src/diff.c:984 -msgid "character special file" -msgstr "karakter file khusus" - -#: src/diff.c:987 -msgid "fifo" -msgstr "fifo" - -#: src/diff.c:991 -msgid "socket" -msgstr "soket" - -#: src/diff.c:994 -msgid "message queue" -msgstr "antrian pesan" - -#: src/diff.c:997 -msgid "semaphore" -msgstr "semafor" - -#: src/diff.c:1000 -msgid "shared memory object" -msgstr "obyek memori bersama" - -#: src/diff.c:1003 -msgid "typed memory object" -msgstr "objek memori bertipe" - -#: src/diff.c:1006 -msgid "weird file" -msgstr "file aneh" - -#: src/diff.c:1070 src/diff.c:1256 -#, c-format -msgid "Only in %s: %s\n" -msgstr "Hanya dalam %s: %s\n" - -#: src/diff.c:1193 -msgid "cannot compare `-' to a directory" -msgstr "tidak dapat membandingkan `-' dg direktori" - -#: src/diff.c:1220 -msgid "-D option not supported with directories" -msgstr "-D option tidak didukung dg direktori" - -#: src/diff.c:1229 -#, c-format -msgid "Common subdirectories: %s and %s\n" -msgstr "Subdirektori sama: %s dan %s\n" - -#: src/diff.c:1266 -#, c-format -msgid "File %s is a %s while file %s is a %s\n" -msgstr "File %s adalah %s sementara file %s adalah %s\n" - -#: src/diff.c:1345 -#, c-format -msgid "Files %s and %s are identical\n" -msgstr "File %s dan %s identik\n" - -#: src/diff3.c:26 -msgid "Written by Randy Smith." -msgstr "Ditulis oleh Randy Smith" - -#: src/diff3.c:328 -msgid "incompatible options" -msgstr "option tidak kompatibel" - -#: src/diff3.c:368 -msgid "`-' specified for more than one input file" -msgstr "`-' dispesifikasikan lebih dari satu file input" - -#: src/diff3.c:408 src/diff3.c:1232 src/diff3.c:1645 src/diff3.c:1700 -#: src/sdiff.c:305 src/sdiff.c:879 src/sdiff.c:890 -msgid "read failed" -msgstr "gagal membaca" - -#: src/diff3.c:441 -msgid "-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE." -msgstr "" -"-e --ed Output perubahan tanpa dimerge dari OLDFILE ke YOURFILE ke dl " -"MYFILE." - -#: src/diff3.c:442 -msgid "-E --show-overlap Output unmerged changes, bracketing conflicts." -msgstr "-E --show-overlap Output perubahan unmerge, konflik dl tanda kurung." - -#: src/diff3.c:443 -msgid "-A --show-all Output all changes, bracketing conflicts." -msgstr "-A --show-all Output seluruh perubahan, konflik dalam tanda kurung." - -#: src/diff3.c:444 -msgid "-x --overlap-only Output overlapping changes." -msgstr "-x --overlap-only Tampilkan perubahan yang overlap." - -#: src/diff3.c:445 -msgid "-X Output overlapping changes, bracketing them." -msgstr "-X Output perubahan overlap, beri tanda kurung." - -#: src/diff3.c:446 -msgid "-3 --easy-only Output unmerged nonoverlapping changes." -msgstr "-3 --easy-only Output unmerged perubahan nonoverlap." - -#: src/diff3.c:448 -msgid "-m --merge Output merged file instead of ed script (default -A)." -msgstr "-m --merge Tampilkan file yang dimerge bukan script ed (baku -A)." - -#: src/diff3.c:449 -msgid "-L LABEL --label=LABEL Use LABEL instead of file name." -msgstr "-L LABEL --label=LABEL Gunakan LABEL bukan nama file." - -#: src/diff3.c:450 -msgid "-i Append `w' and `q' commands to ed scripts." -msgstr "-i Tambah perintah `w' dan `q' ke script ed." - -#: src/diff3.c:453 src/sdiff.c:202 -msgid "--diff-program=PROGRAM Use PROGRAM to compare files." -msgstr "--diff-program=PROGRAM Gunakan PROGRAM untuk membandingkan file." - -#: src/diff3.c:465 -#, c-format -msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n" -msgstr "Pemakaian: %s [OPTION]... MYFILE OLDFILE YOURFILE\n" - -#: src/diff3.c:467 -msgid "Compare three files line by line." -msgstr "Bandingkan tiga file baris per baris." - -#: src/diff3.c:673 -msgid "internal error: screwup in format of diff blocks" -msgstr "kesalahan internal: kacau dalam format blok diff" - -#: src/diff3.c:971 -#, c-format -msgid "%s: diff failed: " -msgstr "%s: diff gagal: " - -#: src/diff3.c:993 -msgid "internal error: invalid diff type in process_diff" -msgstr "kesalahan internal: tipe diff tidak valid dalam process_diff" - -#: src/diff3.c:1018 -msgid "invalid diff format; invalid change separator" -msgstr "format diff tidak valid; separator perubahan tidak valid" - -#: src/diff3.c:1242 -msgid "invalid diff format; incomplete last line" -msgstr "format diff tidak valid; baris akhir tidak lengkap" - -#: src/diff3.c:1265 src/sdiff.c:273 -#, c-format -msgid "subsidiary program `%s' not executable" -msgstr "program subsider `%s' tidak dapat dieksekusi" - -#: src/diff3.c:1268 src/sdiff.c:276 src/util.c:298 -#, c-format -msgid "subsidiary program `%s' not found" -msgstr "program subsider `%s' tidak ditemukan" - -#: src/diff3.c:1272 src/sdiff.c:268 src/util.c:301 -#, c-format -msgid "subsidiary program `%s' failed" -msgstr "program subsider `%s' gagal" - -#: src/diff3.c:1294 -msgid "invalid diff format; incorrect leading line chars" -msgstr "format diff tidak valid; karakter leading line tidak tepat" - -#: src/diff3.c:1370 -msgid "internal error: invalid diff type passed to output" -msgstr "kesalahan internal: tipe diff tidak valid dimasukkan ke output" - -#: src/diff3.c:1647 src/diff3.c:1704 -msgid "input file shrank" -msgstr "file input mengecil" - -#: src/dir.c:162 -#, c-format -msgid "cannot compare file names `%s' and `%s'" -msgstr "tidak dapat membandingkan nama file `%s' dan `%s'" - -#: src/sdiff.c:35 -msgid "Written by Thomas Lord." -msgstr "Ditulis oleh Thomas Lord." - -#: src/sdiff.c:183 -msgid "-o FILE --output=FILE Operate interactively, sending output to FILE." -msgstr "" -"-o FILE --output=FILE Operasi secara interaktif, kirim output ke FILE." - -#: src/sdiff.c:185 -msgid "-i --ignore-case Consider upper- and lower-case to be the same." -msgstr "-i --ignore-case Abaikan huruf kapital dan huruf kecil." - -#: src/sdiff.c:188 -msgid "-W --ignore-all-space Ignore all white space." -msgstr "-W --ignore-all-space Abaikan seluruh white space." - -#: src/sdiff.c:194 -msgid "-w NUM --width=NUM Output at most NUM (default 130) columns per line." -msgstr "" -"-w NUM --width=NUM Output paling banyak NUM (baku 130) kolom per baris." - -#: src/sdiff.c:195 -msgid "-l --left-column Output only the left column of common lines." -msgstr "-l --left-column Hanya tampilkan kolom kiri baris yang sama." - -#: src/sdiff.c:196 -msgid "-s --suppress-common-lines Do not output common lines." -msgstr "-s --suppress-common-lines Jangan tampilkan baris yang sama." - -#: src/sdiff.c:201 -msgid "" -"-H --speed-large-files Assume large files and many scattered small changes." -msgstr "" -"-H --speed-large-files Asumsikan file besar dan banyak sebaran perubahan " -"kecil." - -#: src/sdiff.c:214 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 FILE2\n" -msgstr "Pemakaian: %s [OPTION]... FILE1 FILE2\n" - -#: src/sdiff.c:215 -msgid "Side-by-side merge of file differences." -msgstr "Merge side-by-side beda file." - -#: src/sdiff.c:327 -msgid "cannot interactively merge standard input" -msgstr "tidak dapat menggabung input standar secara interaktif" - -#: src/sdiff.c:588 -msgid "both files to be compared are directories" -msgstr "kedua file yang dibandingkan adalah direktori" - -#: src/sdiff.c:853 -msgid "" -"ed:\tEdit then use both versions, each decorated with a header.\n" -"eb:\tEdit then use both versions.\n" -"el:\tEdit then use the left version.\n" -"er:\tEdit then use the right version.\n" -"e:\tEdit a new version.\n" -"l:\tUse the left version.\n" -"r:\tUse the right version.\n" -"s:\tSilently include common lines.\n" -"v:\tVerbosely include common lines.\n" -"q:\tQuit.\n" -msgstr "" -"ed:\tEdit lalu gunakan kedua versi, dekorasikan dengan header.\n" -"eb:\tEdit lalu gunakan kedua versi.\n" -"el:\tEdit lalu gunakan versi kiri.\n" -"er:\tEdit lalu gunakan versi kanan.\n" -"e:\tEdit versi baru.\n" -"l:\tGunakan versi kiri.\n" -"r:\tGunakan versi kanan.\n" -"s:\tSertakan baris bersama secara diam-diam.\n" -"v:\tSertakan baris bersama secara verbose.\n" -"q:\tKeluar.\n" diff --git a/gnu/dist/diffutils/po/insert-header.sin b/gnu/dist/diffutils/po/insert-header.sin deleted file mode 100644 index b26de01f6c8..00000000000 --- a/gnu/dist/diffutils/po/insert-header.sin +++ /dev/null @@ -1,23 +0,0 @@ -# Sed script that inserts the file called HEADER before the header entry. -# -# At each occurrence of a line starting with "msgid ", we execute the following -# commands. At the first occurrence, insert the file. At the following -# occurrences, do nothing. The distinction between the first and the following -# occurrences is achieved by looking at the hold space. -/^msgid /{ -x -# Test if the hold space is empty. -s/m/m/ -ta -# Yes it was empty. First occurrence. Read the file. -r HEADER -# Output the file's contents by reading the next line. But don't lose the -# current line while doing this. -g -N -bb -:a -# The hold space was nonempty. Following occurrences. Do nothing. -x -:b -} diff --git a/gnu/dist/diffutils/po/ja.gmo b/gnu/dist/diffutils/po/ja.gmo deleted file mode 100644 index 0ad1cef514d..00000000000 Binary files a/gnu/dist/diffutils/po/ja.gmo and /dev/null differ diff --git a/gnu/dist/diffutils/po/ja.po b/gnu/dist/diffutils/po/ja.po deleted file mode 100644 index d1d967d8709..00000000000 --- a/gnu/dist/diffutils/po/ja.po +++ /dev/null @@ -1,898 +0,0 @@ -# Japanese messages GNU diffutils -# Copyright (C) 2002 Free Software Foundation, Inc. -# IIDA Yosiaki , 2002. -# This file is distributed under the same license as the diffutils package. -# -msgid "" -msgstr "" -"Project-Id-Version: GNU diffutils 2.7.10\n" -"POT-Creation-Date: 2002-04-05 14:10-0800\n" -"PO-Revision-Date: 2002-03-14 12:16+0900\n" -"Last-Translator: IIDA Yosiaki \n" -"Language-Team: Japanese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=EUC-JP\n" -"Content-Transfer-Encoding: 8bit\n" - -#: lib/c-stack.c:188 -msgid "program error" -msgstr "¥×¥í¥°¥é¥à¡¦¥¨¥é¡¼" - -#: lib/c-stack.c:189 -msgid "stack overflow" -msgstr "¥¹¥¿¥Ã¥¯¡¦¥ª¡¼¥Ð¡¼¥Õ¥í¡¼" - -#: lib/error.c:128 lib/error.c:156 -msgid "Unknown system error" -msgstr "̤ÃΤΥ·¥¹¥Æ¥à¡¦¥¨¥é¡¼¤Ç¤¹" - -#: lib/freesoft.c:27 -msgid "" -"This program comes with NO WARRANTY, to the extent permitted by law.\n" -"You may redistribute copies of this program\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING." -msgstr "" -"This program comes with NO WARRANTY, to the extent permitted by law.\n" -"You may redistribute copies of this program\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING.\n" -"-- °Ê²¼¤Ï»²¹ÍÌõ¤Ç¤¹¡£Ë¡Åª¤Ê»ö¹à¤Ë¤Ä¤¤¤Æ¤Ï¾å¤Îµ­½Ò¤Ë¤·¤¿¤¬¤Ã¤Æ¤¯¤À¤µ¤¤¡£\n" -"Ë¡¤Îµö¤¹ÈϰϤˤª¤¤¤Æ¡¢°ìÀÚ¤ÎÊݾڤϤ¢¤ê¤Þ¤»¤ó¡£¤¢¤Ê¤¿¤Ï¡¢¤³¤Î¥×¥í¥°¥é¥à\n" -"¤ÎÊ£À½¤ò¡¢GNU General Public License¤Ë´ð¤Å¤¤¤ÆºÆÈÒÉۤǤ­¤Þ¤¹¡£¤³¤ì¤é¤Î\n" -"»ö¹à¤Ë¤Ä¤¤¤Æ¤Î¾Ü¤·¤¤¾ðÊó¤Ï¡¢COPYING¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ò¸«¤Æ¤¯¤À¤µ¤¤¡£" - -#: lib/getopt.c:693 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s: ¥ª¥×¥·¥ç¥ó¡Ö%s¡×¤ÏÛ£Ëæ¤Ç¤¹\n" - -#: lib/getopt.c:718 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: ¥ª¥×¥·¥ç¥ó¡Ö--%s¡×¤Ï°ú¿ô¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó\n" - -#: lib/getopt.c:723 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: ¥ª¥×¥·¥ç¥ó¡Ö%c%s¡×¤Ï°ú¿ô¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó\n" - -#: lib/getopt.c:741 lib/getopt.c:914 -#, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s: ¥ª¥×¥·¥ç¥ó¡Ö%s¡×¤Ë¤Ï°ú¿ô¤¬É¬ÍפǤ¹\n" - -#: lib/getopt.c:770 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: ǧ¼±¤Ç¤­¤Ê¤¤¥ª¥×¥·¥ç¥ó¡Ö--%s¡×¤Ç¤¹\n" - -#: lib/getopt.c:774 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: ǧ¼±¤Ç¤­¤Ê¤¤¥ª¥×¥·¥ç¥ó¡Ö%c%s¡×¤Ç¤¹\n" - -#: lib/getopt.c:800 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: ÉÔÀµ¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹ -- %c\n" - -#: lib/getopt.c:803 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: ̵¸ú¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹ -- %c\n" - -#: lib/getopt.c:833 lib/getopt.c:963 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: ¥ª¥×¥·¥ç¥ó¤Ï°ú¿ô¤òÍ׵ᤷ¤Þ¤¹ -- %c\n" - -#: lib/getopt.c:880 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "%s: ¥ª¥×¥·¥ç¥ó¡Ö-W %s¡×¤ÏÛ£Ëæ¤Ç¤¹\n" - -#: lib/getopt.c:898 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: ¥ª¥×¥·¥ç¥ó¡Ö-W %s¡×¤Ï¡¢°ú¿ô¤ò¼õ¤±ÉÕ¤±¤Þ¤»¤ó\n" - -#: lib/regex.c:1367 -msgid "Success" -msgstr "À®¸ù" - -#: lib/regex.c:1370 -msgid "No match" -msgstr "°ìÃפ·¤Þ¤»¤ó" - -#: lib/regex.c:1373 -msgid "Invalid regular expression" -msgstr "̵¸ú¤ÊÀµµ¬É½¸½¤Ç¤¹" - -#: lib/regex.c:1376 -msgid "Invalid collation character" -msgstr "̵¸ú¤ÊÀ°Îóʸ»ú¤Ç¤¹" - -#: lib/regex.c:1379 -msgid "Invalid character class name" -msgstr "̵¸ú¤Êʸ»ú¥¯¥é¥¹Ì¾¤Ç¤¹" - -#: lib/regex.c:1382 -msgid "Trailing backslash" -msgstr "¸å³¤¹¤ëµÕ¼ÐÀþ" - -#: lib/regex.c:1385 -msgid "Invalid back reference" -msgstr "̵¸ú¤ÊµÕ»²¾È" - -#: lib/regex.c:1388 -msgid "Unmatched [ or [^" -msgstr "Äà¤ê¹ç¤ï¤Ê¤¤[¤ä[^" - -#: lib/regex.c:1391 -msgid "Unmatched ( or \\(" -msgstr "Äà¤ê¹ç¤ï¤Ê¤¤(¤ä\\(" - -#: lib/regex.c:1394 -msgid "Unmatched \\{" -msgstr "Äà¤ê¹ç¤ï¤Ê¤¤\\{" - -#: lib/regex.c:1397 -msgid "Invalid content of \\{\\}" -msgstr "̵¸ú¤Ê\\{\\}¤ÎÆâÍÆ" - -#: lib/regex.c:1400 -msgid "Invalid range end" -msgstr "̵¸ú¤ÊÈϰϽªÎ»" - -#: lib/regex.c:1403 -msgid "Memory exhausted" -msgstr "²¾ÁÛ¥á¥â¥ê¤ò»È¤¤²Ì¤¿¤·¤Þ¤·¤¿" - -#: lib/regex.c:1406 -msgid "Invalid preceding regular expression" -msgstr "̵¸ú¤ÊÀè¹ÔÀµµ¬É½¸½" - -#: lib/regex.c:1409 -msgid "Premature end of regular expression" -msgstr "ͽ´ü¤»¤ÌÀµµ¬É½¸½¤Î½ªÎ»" - -#: lib/regex.c:1412 -msgid "Regular expression too big" -msgstr "Â礭¤¹¤®¤ëÀµµ¬É½¸½" - -#: lib/regex.c:1415 -msgid "Unmatched ) or \\)" -msgstr "Äà¤ê¹ç¤ï¤Ê¤¤)¤ä\\)" - -#: lib/regex.c:8034 -msgid "No previous regular expression" -msgstr "Á°¤ÎÀµµ¬É½¸½¤¬¤¢¤ê¤Þ¤»¤ó" - -#: lib/xmalloc.c:63 -msgid "memory exhausted" -msgstr "²¾ÁÛ¥á¥â¥ê¤ò»È¤¤²Ì¤¿¤·¤Þ¤·¤¿" - -#: src/analyze.c:809 src/diff.c:1283 -#, c-format -msgid "Files %s and %s differ\n" -msgstr "¥Õ¥¡¥¤¥ë%s¤È%s¤Ï°ã¤¤¤Þ¤¹\n" - -#: src/analyze.c:812 -#, c-format -msgid "Binary files %s and %s differ\n" -msgstr "¥Ð¥¤¥Ê¥ê¡¼¡¦¥Õ¥¡¥¤¥ë%s¤È%s¤Ï°ã¤¤¤Þ¤¹\n" - -#: src/analyze.c:1058 src/diff3.c:1413 src/util.c:526 -msgid "No newline at end of file" -msgstr "¥Õ¥¡¥¤¥ëËöÈø¤Ë²þ¹Ô¤¬¤¢¤ê¤Þ¤»¤ó" - -#: src/cmp.c:43 -msgid "Written by Torbjorn Granlund and David MacKenzie." -msgstr "ºîÀ®¤Ï¡¢Torbjorn Granlund¤ÈDavid MacKenzie¡£" - -#: src/cmp.c:118 src/diff.c:817 src/diff3.c:427 src/sdiff.c:168 -#, c-format -msgid "Try `%s --help' for more information." -msgstr "¡Ö%s --help¡×¤Ç¡¢¤è¤ê¾ÜºÙ¤Ê¾ðÊó¤òÄ´¤Ù¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£" - -#: src/cmp.c:137 -#, c-format -msgid "invalid --ignore-initial value `%s'" -msgstr "̵¸ú¤Ê--ignore-initial¤ÎÃÍ¡Ö%s¡×" - -#: src/cmp.c:146 -msgid "options -l and -s are incompatible" -msgstr "¥ª¥×¥·¥ç¥ó-l¤È-s¤ÏξΩ¤·¤Þ¤»¤ó" - -#: src/cmp.c:154 src/diff.c:826 src/diff3.c:435 src/sdiff.c:177 -#: src/sdiff.c:313 src/sdiff.c:320 src/sdiff.c:910 src/util.c:194 -#: src/util.c:286 src/util.c:293 -msgid "write failed" -msgstr "½ñ¹þ¤ß¼ºÇÔ" - -#: src/cmp.c:156 src/diff.c:828 src/diff.c:1354 src/diff3.c:437 -#: src/sdiff.c:179 -msgid "standard output" -msgstr "ɸ½à½ÐÎÏ" - -#: src/cmp.c:160 -msgid "-b --print-bytes Print differing bytes." -msgstr "-b --print-bytes °Û¤Ê¤ë¥Ð¥¤¥È¤òɽ¼¨¡£" - -#: src/cmp.c:161 -msgid "-i SKIP --ignore-initial=SKIP Skip the first SKIP bytes of input." -msgstr "-i SKIP --ignore-initial=SKIP ÆþÎϤÎÀèÆ¬SKIP¥Ð¥¤¥È¤ò¥¹¥­¥Ã¥×¡£" - -#: src/cmp.c:162 -msgid "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2" -msgstr "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2" - -#: src/cmp.c:163 -msgid "" -" Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2." -msgstr " FILE1¤ÎSKIP1¥Ð¥¤¥È¤ÈFILE2¤ÎSKIP2¥Ð¥¤¥È¤ò¥¹¥­¥Ã¥×¡£" - -#: src/cmp.c:164 -msgid "-l --verbose Output byte numbers and values of all differing bytes." -msgstr "-l --verbose ¤¹¤Ù¤Æ¤Î°Û¤Ê¤ë¥Ð¥¤¥È¤Î»Ø¿ô¤ÈÃͤò½ÐÎÏ¡£" - -#: src/cmp.c:165 -msgid "-n LIMIT --bytes=LIMIT Compare at most LIMIT bytes." -msgstr "-n LIMIT --bytes=LIMIT ¹â¡¹LIMIT¥Ð¥¤¥È¤òÈæ³Ó¡£" - -#: src/cmp.c:166 -msgid "-s --quiet --silent Output nothing; yield exit status only." -msgstr "-s --quiet --silent ½ÐÎϤʤ·¡£½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Î¤ß¡£" - -#: src/cmp.c:167 src/diff.c:904 src/diff3.c:455 src/sdiff.c:204 -msgid "-v --version Output version info." -msgstr "-v --version ¥Ð¡¼¥¸¥ç¥ó¾ðÊó¤ò½ÐÎÏ¡£" - -#: src/cmp.c:168 src/diff.c:905 src/diff3.c:456 src/sdiff.c:205 -msgid "--help Output this help." -msgstr "--help ¤³¤ÎÀâÌÀ¤ò½ÐÎÏ¡£" - -#: src/cmp.c:177 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n" -msgstr "" -"»ÈÍÑË¡: %s [¥ª¥×¥·¥ç¥ó]... ¥Õ¥¡¥¤¥ë1 [¥Õ¥¡¥¤¥ë2 [¥¹¥­¥Ã¥×1 [¥¹¥­¥Ã¥×2]]]\n" - -#: src/cmp.c:179 -msgid "Compare two files byte by byte." -msgstr "2¤Ä¤Î¥Õ¥¡¥¤¥ë¤ò¥Ð¥¤¥È¤´¤È¤ËÈæ³Ó¤·¤Þ¤¹¡£" - -#: src/cmp.c:183 -msgid "SKIP1 and SKIP2 are the number of bytes to skip in each file." -msgstr "¡Ö¥¹¥­¥Ã¥×1¡×¤È¡Ö¥¹¥­¥Ã¥×2¡×¤Ï¡¢³Æ¥Õ¥¡¥¤¥ë¤ò¥¹¥­¥Ã¥×¤¹¤ë¥Ð¥¤¥È¿ô¡£" - -#: src/cmp.c:184 -msgid "" -"SKIP values may be followed by the following multiplicative suffixes:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y." -msgstr "" -"¥¹¥­¥Ã¥×¤ÎÃͤˤϡ¢¼¡¤Î·¸¿ô¤ò³¤±¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£\n" -"kB 1000¡¢K 1024¡¢MB 1,000,000¡¢M 1,048,576¡¢\n" -"GB 1,000,000,000¡¢G 1,073,741,824¡¢¤Þ¤¿T¡¢P¡¢E¡¢Z¡¢Y¤Ë¤Ä¤¤¤Æ¤âƱÍÍ¡£" - -#: src/cmp.c:187 -msgid "If a FILE is `-' or missing, read standard input." -msgstr "¤â¤·¥Õ¥¡¥¤¥ë¤¬¤Ê¤¤¤«¡Ö-¡×¤Î¤È¤­¡¢É¸½àÆþÎϤòÆÉ¤ß¤Þ¤¹¡£" - -#: src/cmp.c:188 src/diff.c:911 src/diff3.c:475 src/sdiff.c:223 -msgid "Report bugs to ." -msgstr "¥Ð¥°¤ò¸«¤Ä¤±¤¿¤é¤ËÊó¹ð¤·¤Æ¤¯¤À¤µ¤¤¡£" - -#: src/cmp.c:231 -#, c-format -msgid "invalid --bytes value `%s'" -msgstr "̵¸ú¤Ê--bytes¤ÎÃÍ¡Ö%s¡×" - -#: src/cmp.c:258 src/diff.c:734 src/diff3.c:333 src/sdiff.c:558 -#, c-format -msgid "missing operand after `%s'" -msgstr "¡Ö%s¡×¤Î¸å¤Î¥ª¥Ú¥é¥ó¥É¤¬¤¢¤ê¤Þ¤»¤ó" - -#: src/cmp.c:270 src/diff.c:736 src/diff3.c:335 src/sdiff.c:560 -#, c-format -msgid "extra operand `%s'" -msgstr ";·×¤Ê¥ª¥Ú¥é¥ó¥É¡Ö%s¡×" - -#: src/cmp.c:477 -#, c-format -msgid "%s %s differ: byte %s, line %s\n" -msgstr "%s %s °Û¤Ê¤ê¤Þ¤¹: ¥Ð¥¤¥È %s¡¢¹Ô %s\n" - -#: src/cmp.c:495 -#, c-format -msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n" -msgstr "%s %s °Û¤Ê¤ê¤Þ¤¹: ¥Ð¥¤¥È %s¡¢¹Ô %s %3o %s %3o %s\n" - -#: src/cmp.c:543 -#, c-format -msgid "cmp: EOF on %s\n" -msgstr "cmp: ¥Õ¥¡¥¤¥ë%s¤ÎËöÈø\n" - -#: src/diff.c:41 -msgid "" -"Written by Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman, and Len Tower." -msgstr "" -"ºîÀ®¤Ï¡¢Paul Eggert¡¢Mike Haertel¡¢David Hayes¡¢\n" -"Richard Stallman¡¢Len Tower¡£" - -#: src/diff.c:322 -#, c-format -msgid "invalid context length `%s'" -msgstr "̵¸ú¤ÊÁ°¸å¤ÎÉý¡Ö%s¡×" - -#: src/diff.c:405 -msgid "pagination not supported on this host" -msgstr "¤³¤Î¥Û¥¹¥È¤Ç¤Ï¥Ú¡¼¥¸³äÉÕ¤±¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤»¤ó" - -#: src/diff.c:420 src/diff3.c:315 -msgid "too many file label options" -msgstr "¥Õ¥¡¥¤¥ë¡¦¥é¥Ù¥ë¡¦¥ª¥×¥·¥ç¥ó¤¬Â¿¤¹¤®¤Þ¤¹" - -#: src/diff.c:498 -#, c-format -msgid "invalid width `%s'" -msgstr "̵¸ú¤ÊÉý¡Ö%s¡×" - -#: src/diff.c:502 -msgid "conflicting width options" -msgstr "Éý¤Î¥ª¥×¥·¥ç¥ó¤¬¾×ÆÍ¤·¤Æ¤¤¤Þ¤¹" - -#: src/diff.c:526 -#, c-format -msgid "invalid horizon length `%s'" -msgstr "̵¸ú¤Ê²£Éý¡Ö%s¡×" - -#: src/diff.c:629 -#, c-format -msgid "`-%ld' option is obsolete; use `-%c %ld'" -msgstr "¡Ö-%ld¡×¥ª¥×¥·¥ç¥ó¤Ï¡¢»þÂåÃÙ¤ì¤Ç¤¹¡£¡Ö-%c %ld¡×¤ò»È¤¤¤Þ¤·¤ç¤¦" - -#: src/diff.c:641 -#, c-format -msgid "`-%ld' option is obsolete; omit it" -msgstr "¡Ö-%ld¡×¥ª¥×¥·¥ç¥ó¤Ï¡¢»þÂåÃÙ¤ì¤Ç¤¹¡£¾Êά¤·¤Þ¤·¤ç¤¦" - -#: src/diff.c:709 -msgid "--from-file and --to-file both specified" -msgstr "--from-file¤È--to-file¤ÎξÊý¤ò»ØÄꤷ¤Þ¤·¤¿" - -#: src/diff.c:832 -msgid "Compare files line by line." -msgstr "2¤Ä¤Î¥Õ¥¡¥¤¥ë¤ò¹Ô¤´¤È¤ËÈæ³Ó¤·¤Þ¤¹¡£" - -#: src/diff.c:834 -msgid "-i --ignore-case Ignore case differences in file contents." -msgstr "-i --ignore-case ¥Õ¥¡¥¤¥ëÆâÍÆ¤ÎÂçʸ»ú¾®Ê¸»ú¤ò̵»ë¡£" - -#: src/diff.c:835 -msgid "--ignore-file-name-case Ignore case when comparing file names." -msgstr "--ignore-file-name-case ¥Õ¥¡¥¤¥ë̾¤ÎÂçʸ»ú¾®Ê¸»ú¤ò̵»ë¡£" - -#: src/diff.c:836 -msgid "--no-ignore-file-name-case Consider case when comparing file names." -msgstr "--no-ignore-file-name-case ¥Õ¥¡¥¤¥ë̾¤ÎÂçʸ»ú¾®Ê¸»ú¤ò¶èÊÌ¡£" - -#: src/diff.c:837 src/sdiff.c:186 -msgid "-E --ignore-tab-expansion Ignore changes due to tab expansion." -msgstr "-E --ignore-tab-expansion ¥¿¥ÖŸ³«¤Îº¹¤ò̵»ë¡£" - -#: src/diff.c:838 src/sdiff.c:187 -msgid "-b --ignore-space-change Ignore changes in the amount of white space." -msgstr "-b --ignore-space-change ¶õÇò¿ô¤Îº¹¤ò̵»ë¡£" - -#: src/diff.c:839 -msgid "-w --ignore-all-space Ignore all white space." -msgstr "-w --ignore-all-space Á´¶õÇò¤ò̵»ë¡£" - -#: src/diff.c:840 src/sdiff.c:189 -msgid "-B --ignore-blank-lines Ignore changes whose lines are all blank." -msgstr "-B --ignore-blank-lines ¶õÇò¤À¤±¤Î¹Ô¤Îº¹¤ò̵»ë¡£" - -#: src/diff.c:841 src/sdiff.c:190 -msgid "" -"-I RE --ignore-matching-lines=RE Ignore changes whose lines all match RE." -msgstr "-i RE --ignore-matching-lines=RE RE¤Ë°ìÃפ¹¤ë¤¹¤Ù¤Æ¤Î¹Ô¤Îº¹¤ò̵»ë¡£" - -#: src/diff.c:842 src/sdiff.c:191 -msgid "--strip-trailing-cr Strip trailing carriage return on input." -msgstr "--strip-trailing-cr ÆþÎϤ«¤é¹ÔËö¥­¥ã¥ê¥Ã¥¸¡¦¥ê¥¿¡¼¥ó¤òºï½ü¡£" - -#: src/diff.c:844 -msgid "--binary Read and write data in binary mode." -msgstr "--binary ¥Ð¥¤¥Ê¥ê¡¼¡¦¥â¡¼¥É¤ÇÆÉ¤ß½ñ¤­¡£" - -#: src/diff.c:846 src/diff3.c:451 src/sdiff.c:192 -msgid "-a --text Treat all files as text." -msgstr "-a --text ¤¹¤Ù¤Æ¥Æ¥­¥¹¥È¤È¤·¤Æ½èÍý¡£" - -#: src/diff.c:848 -msgid "" -"-c -C NUM --context[=NUM] Output NUM (default 3) lines of copied " -"context.\n" -"-u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified " -"context.\n" -" --label LABEL Use LABEL instead of file name.\n" -" -p --show-c-function Show which C function each change is in.\n" -" -F RE --show-function-line=RE Show the most recent line matching RE." -msgstr "" -"-c -C NUM --context[=NUM] ¥³¥Ô¡¼¤·¤¿Á°¸åNUM¹Ô (´ûÄê¤Ï3) ¤ò½ÐÎÏ¡£\n" -"-u -U NUM --unified[=NUM] Åý¹ç¤·¤¿Á°¸åNUM¹Ô (´ûÄê¤Ï3) ¤ò½ÐÎÏ¡£\n" -" --label LABEL ¥Õ¥¡¥¤¥ë̾¤ÎÂå¤ï¤ê¤ËLABEL¤ò»ÈÍÑ¡£\n" -" -p --show-c-function ³ÆÊѹ¹¤ò´Þ¤àC¤Î´Ø¿ô̾¤òɽ¼¨¡£\n" -" -F RE --show-function-line=RE RE¤È°ìÃפ¹¤ëľ¶á¤Î¹Ô¤òɽ¼¨¡£" - -#: src/diff.c:853 -msgid "-q --brief Output only whether files differ." -msgstr "-q --brief ¥Õ¥¡¥¤¥ë¤¬°Û¤Ê¤ë¤«¤É¤¦¤«¤À¤±¤ò½ÐÎÏ¡£" - -#: src/diff.c:854 -msgid "-e --ed Output an ed script." -msgstr "-e --ed ed¥¹¥¯¥ê¥×¥È¤ò½ÐÎÏ¡£" - -#: src/diff.c:855 -msgid "--normal Output a normal diff." -msgstr "--normal ɸ½àŪ¤Êº¹Ê¬¤ò½ÐÎÏ¡£" - -#: src/diff.c:856 -msgid "-n --rcs Output an RCS format diff." -msgstr "-n --rcs RCS·Á¼°¤Îº¹Ê¬¤ò½ÐÎÏ¡£" - -#: src/diff.c:857 -msgid "" -"-y --side-by-side Output in two columns.\n" -" -W NUM --width=NUM Output at most NUM (default 130) print columns.\n" -" --left-column Output only the left column of common lines.\n" -" --suppress-common-lines Do not output common lines." -msgstr "" -"-y --side-by-side ½ÄÎó½ÐÎÏ¡£\n" -" -W NUM --width=NUM ¹â¡¹NUM (´ûÄê¤Ï130) °õ»ú·å¤Ç½ÐÎÏ¡£\n" -" --left-column ¶¦Ä̹ԤϺ¸Îó¤À¤±½ÐÎÏ¡£\n" -" --suppress-common-lines ¶¦Ä̹ԤνÐÎϤòÍ޻ߡ£" - -#: src/diff.c:861 -msgid "-D NAME --ifdef=NAME Output merged file to show `#ifdef NAME' diffs." -msgstr "-D NAME --ifdef=NAME º¹Ê¬¤ò¡Ö#ifdef NAME¡×¤Ç¼¨¤¹Ê»¹ç¥Õ¥¡¥¤¥ë¤ò½ÐÎÏ¡£" - -#: src/diff.c:862 -msgid "" -"--GTYPE-group-format=GFMT Similar, but format GTYPE input groups with GFMT." -msgstr "--GTYPE-group-format=GFMT ƱÍͤÀ¤¬¡¢GTYPE¤ÎÆþÎÏ·²¤òGFMT¤ÇÀ°·Á¡£" - -#: src/diff.c:863 -msgid "--line-format=LFMT Similar, but format all input lines with LFMT." -msgstr "--line-format=LFMT ƱÍͤÀ¤¬¡¢Á´ÆþÎϹԤòLFMT¤ÇÀ°·Á¡£" - -#: src/diff.c:864 -msgid "" -"--LTYPE-line-format=LFMT Similar, but format LTYPE input lines with LFMT." -msgstr "--LTYPE-line-format=LFMT ƱÍͤÀ¤¬¡¢LTYPEÆþÎϹԤòLFMT¤ÇÀ°·Á¡£" - -#: src/diff.c:865 -msgid " LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'." -msgstr "" -" ¤³¤³¤ÇLTYPE¤Ï¡Öold¡×¡Önew¡×¡Öunchanged¡×¡£GTYPE¤ÏLTYPE¤«¡Öchanged¡×¡£" - -#: src/diff.c:866 -msgid "" -" GFMT may contain:\n" -" %< lines from FILE1\n" -" %> lines from FILE2\n" -" %= lines common to FILE1 and FILE2\n" -" %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" -" LETTERs are as follows for new group, lower case for old group:\n" -" F first line number\n" -" L last line number\n" -" N number of lines = L-F+1\n" -" E F-1\n" -" M L+1" -msgstr "" -" GFMT¤Ë¤Ï°Ê²¼¤ò»ØÄê¤Ç¤­¤Þ¤¹:\n" -" %< FILE1¤Î¹Ô\n" -" %> FILE2¤Î¹Ô\n" -" %= FILE1¤ÈFILE2¤Î¶¦Ä̹Ô\n" -" %[-][WIDTH][.[PREC]]{doxX}LETTER printfÉ÷»ØÄê¤Ç¤ÎLETTER\n" -" LETTER¤Ï¡¢°Ê²¼¤Îʸ»ú¤Ç¿·¤·¤¤Êý¡¢¾®Ê¸»ú¤Ç¸Å¤¤Êý:\n" -" F ºÇ½é¤Î¹ÔÈÖ¹æ\n" -" L ºÇ¸å¤Î¹ÔÈÖ¹æ\n" -" N ¹Ô¿ô = L-F+1\n" -" E F-1\n" -" M L+1" - -#: src/diff.c:877 -msgid "" -" LFMT may contain:\n" -" %L contents of line\n" -" %l contents of line, excluding any trailing newline\n" -" %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number" -msgstr "" -" LFMT¤Ë¤Ï°Ê²¼¤ò»ØÄê¤Ç¤­¤Þ¤¹:\n" -" %L ¹ÔÆâÍÆ\n" -" %l ¸å³¤¹¤ë²þ¹Ô¤ò¤Î¤¾¤¤¤¿¹ÔÆâÍÆ\n" -" %[-][WIDTH][.[PREC]]{doxX}n printfÉ÷»ØÄê¤Ç¤ÎÆþÎϹԿô" - -#: src/diff.c:881 -msgid "" -" Either GFMT or LFMT may contain:\n" -" %% %\n" -" %c'C' the single character C\n" -" %c'\\OOO' the character with octal code OOO" -msgstr "" -" GFMT¤äLFMT¤Ë¤Ï°Ê²¼¤ò»ØÄê¤Ç¤­¤Þ¤¹:\n" -" %% %\n" -" %c'C' ʸ»úC°ìʸ»ú\n" -" %c'\\OOO' 8¿Ê¥³¡¼¥ÉOOO¤Îʸ»ú" - -#: src/diff.c:886 -msgid "-l --paginate Pass the output through `pr' to paginate it." -msgstr "-l --paginate ½ÐÎϤò¡Öpr¡×¤Ç¥Ú¡¼¥¸Ê¬³ä¡£" - -#: src/diff.c:887 src/sdiff.c:198 -msgid "-t --expand-tabs Expand tabs to spaces in output." -msgstr "-t --expand-tabs ½ÐÎϤΥ¿¥Ö¤ò¶õÇò¤ËŸ³«¡£" - -#: src/diff.c:888 src/diff3.c:452 -msgid "-T --initial-tab Make tabs line up by prepending a tab." -msgstr "-T --initial-tab ¥¿¥Ö¤Ç»Ï¤Þ¤ë¹Ô¤Ï¡¢Á°¤Ë¥¿¥Ö¤òÃÖ¤¤¤ÆÂ·¤¨¤ë¡£" - -#: src/diff.c:890 -msgid "-r --recursive Recursively compare any subdirectories found." -msgstr "-r --recursive ¸«¤Ä¤«¤Ã¤¿²¼°Ì¥Ç¥£¥ì¥¯¥È¥ê¡¼¤òºÆµ¢Åª¤ËÈæ³Ó¡£" - -#: src/diff.c:891 -msgid "-N --new-file Treat absent files as empty." -msgstr "-N --new-file ¸ºß¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¤Ï¶õ¤È¤ß¤Ê¤¹¡£" - -#: src/diff.c:892 -msgid "--unidirectional-new-file Treat absent first files as empty." -msgstr "--unidirectional-new-file ¸ºß¤·¤Ê¤¤Á°¼Ô¤Î¥Õ¥¡¥¤¥ë¤Ï¶õ¤È¤ß¤Ê¤¹¡£" - -#: src/diff.c:893 -msgid "-s --report-identical-files Report when two files are the same." -msgstr "-s --report-identical-files ξ¥Õ¥¡¥¤¥ë¤¬Æ±¤¸¤È¤­¤ËÊó¹ð¡£" - -#: src/diff.c:894 -msgid "-x PAT --exclude=PAT Exclude files that match PAT." -msgstr "-x PAT --exclude=PAT PAT¤È°ìÃפ¹¤ë¥Õ¥¡¥¤¥ë¤ò½ü³°¡£" - -#: src/diff.c:895 -msgid "" -"-X FILE --exclude-from=FILE Exclude files that match any pattern in FILE." -msgstr "" -"-X FILE --exclude-from=FILE FILEÆâ¤Î³Æ¥Ñ¥¿¡¼¥ó¤È°ìÃפ¹¤ë¥Õ¥¡¥¤¥ë¤ò½ü³°¡£" - -#: src/diff.c:896 -msgid "" -"-S FILE --starting-file=FILE Start with FILE when comparing directories." -msgstr "" -"-S FILE --starting-file=FILE ¥Ç¥£¥ì¥¯¥È¥ê¡¼¤òÈæ³Ó¤¹¤ëºÝ¡¢FILE¤«¤é»Ï¤á¤ë¡£" - -#: src/diff.c:897 -msgid "" -"--from-file=FILE1 Compare FILE1 to all operands. FILE1 can be a directory." -msgstr "" -"--from-file=FILE1 Á´¥ª¥Ú¥é¥ó¥É¤ÈFILE1¤òÈæ³Ó¡£FILE1¤Ï¥Ç¥£¥ì¥¯¥È¥ê¡¼¤â²Ä¡£" - -#: src/diff.c:898 -msgid "" -"--to-file=FILE2 Compare all operands to FILE2. FILE2 can be a directory." -msgstr "" -"--to-file=FILE2 FILE2¤ÈÁ´¥ª¥Ú¥é¥ó¥É¤òÈæ³Ó¡£FILE2¤Ï¥Ç¥£¥ì¥¯¥È¥ê¡¼¤â²Ä¡£" - -#: src/diff.c:900 -msgid "--horizon-lines=NUM Keep NUM lines of the common prefix and suffix." -msgstr "--horizon-lines=NUM ÀèÆ¬¤ÈËöÈø¤Ë¤¢¤ë¶¦Ä̤ÊNUM¹Ô¤ò³ÎÊÝ¡£" - -#: src/diff.c:901 src/sdiff.c:200 -msgid "-d --minimal Try hard to find a smaller set of changes." -msgstr "-d --minimal ¤Ç¤­¤ë¤À¤±¤¬¤ó¤Ð¤Ã¤Æ¡¢¾®¤µ¤¤º¹Ê¬¤ò¸«¤Ä¤±¤ë¡£" - -#: src/diff.c:902 -msgid "" -"--speed-large-files Assume large files and many scattered small changes." -msgstr "--speed-large-files µðÂç¤Ê¥Õ¥¡¥¤¥ë¤Ëʬ»¶¤·¤¿Êѹ¹¤¬¤¢¤ë¤È²¾Äê¡£" - -#: src/diff.c:907 -msgid "" -"FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'." -msgstr "FILES¤Ï¡¢¡ÖFILE1 FILE2¡×¡ÖDIR1 DIR2¡×¡ÖDIR FILE...¡×¡ÖFILE... DIR¡×¡£" - -#: src/diff.c:908 -msgid "" -"If --from-file or --to-file is given, there are no restrictions on FILES." -msgstr "--from-file¤ä--to-file¤ò»ØÄꤹ¤ì¤Ð¡¢FILES¤ÎÀ©¸Â¤Ï¤¢¤ê¤Þ¤»¤ó¡£" - -#: src/diff.c:909 src/diff3.c:474 src/sdiff.c:222 -msgid "If a FILE is `-', read standard input." -msgstr "¥Õ¥¡¥¤¥ë¤¬¡Ö-¡×¤Î¤È¤­¡¢É¸½àÆþÎϤòÆÉ¤ß¤Þ¤¹¡£" - -#: src/diff.c:920 -#, c-format -msgid "Usage: %s [OPTION]... FILES\n" -msgstr "»ÈÍÑË¡: %s [¥ª¥×¥·¥ç¥ó]... FILES\n" - -#: src/diff.c:949 -#, c-format -msgid "conflicting %s option value `%s'" -msgstr "%s¥ª¥×¥·¥ç¥ó¤ÎÃÍ¡Ö%s¡×¤¬¾×ÆÍ¤·¤Æ¤¤¤Þ¤¹" - -#: src/diff.c:962 -msgid "conflicting output style options" -msgstr "½ÐÎÏ»ØÄꥪ¥×¥·¥ç¥ó¤¬¾×ÆÍ¤·¤Æ¤¤¤Þ¤¹" - -#: src/diff.c:976 -msgid "regular empty file" -msgstr "¶õ¤ÎÄ̾ï¥Õ¥¡¥¤¥ë" - -#: src/diff.c:976 -msgid "regular file" -msgstr "Ä̾ï¥Õ¥¡¥¤¥ë\"" - -#: src/diff.c:978 -msgid "directory" -msgstr "¥Ç¥£¥ì¥¯¥È¥ê¡¼" - -#: src/diff.c:981 -msgid "block special file" -msgstr "¥Ö¥í¥Ã¥¯ÆÃ¼ì¥Õ¥¡¥¤¥ë" - -#: src/diff.c:984 -msgid "character special file" -msgstr "¥­¥ã¥é¥¯¥¿ÆÃ¼ì¥Õ¥¡¥¤¥ë" - -#: src/diff.c:987 -msgid "fifo" -msgstr "̾Á°¤Ä¤­¥Ñ¥¤¥×" - -#: src/diff.c:991 -msgid "socket" -msgstr "¥½¥±¥Ã¥È" - -#: src/diff.c:994 -msgid "message queue" -msgstr "¥á¥Ã¥»¡¼¥¸¡¦¥­¥å¡¼" - -#: src/diff.c:997 -msgid "semaphore" -msgstr "¥»¥Þ¥Õ¥©¡¼" - -#: src/diff.c:1000 -msgid "shared memory object" -msgstr "¶¦Í­¥á¥â¥ê¡¼¡¦¥ª¥Ö¥¸¥§¥¯¥È" - -#: src/diff.c:1003 -msgid "typed memory object" -msgstr "·¿¤Ä¤­¥á¥â¥ê¡¼¡¦¥ª¥Ö¥¸¥§¥¯¥È" - -#: src/diff.c:1006 -msgid "weird file" -msgstr "¤¢¤ä¤·¤²¤Ê¥Õ¥¡¥¤¥ë" - -#: src/diff.c:1070 src/diff.c:1256 -#, c-format -msgid "Only in %s: %s\n" -msgstr "%s¤À¤±¤Ëȯ¸«: %s\n" - -#: src/diff.c:1193 -msgid "cannot compare `-' to a directory" -msgstr "¡Ö-¡×¤Ï¥Ç¥£¥ì¥¯¥È¥ê¡¼¤ÈÈæ³Ó¤Ç¤­¤Þ¤»¤ó" - -#: src/diff.c:1220 -msgid "-D option not supported with directories" -msgstr "-D¥ª¥×¥·¥ç¥ó¤Ï¥Ç¥£¥ì¥¯¥È¥ê¡¼¤Ç¤Î¥µ¥Ý¡¼¥È¤ò¤·¤Æ¤¤¤Þ¤»¤ó" - -#: src/diff.c:1229 -#, c-format -msgid "Common subdirectories: %s and %s\n" -msgstr "¶¦Ä̤β¼°Ì¥Ç¥£¥ì¥¯¥È¥ê¡¼: %s¤È%s\n" - -#: src/diff.c:1266 -#, c-format -msgid "File %s is a %s while file %s is a %s\n" -msgstr "¥Õ¥¡¥¤¥ë%s¤Ï%s¡¢¥Õ¥¡¥¤¥ë%s¤Ï%s\n" - -#: src/diff.c:1345 -#, c-format -msgid "Files %s and %s are identical\n" -msgstr "¥Õ¥¡¥¤¥ë%s¤È%s¤ÏƱ°ì\n" - -#: src/diff3.c:26 -msgid "Written by Randy Smith." -msgstr "ºîÀ®¤Ï¡¢Randy Smith¡£" - -#: src/diff3.c:328 -msgid "incompatible options" -msgstr "ξΩ¤·¤Ê¤¤¥ª¥×¥·¥ç¥ó" - -#: src/diff3.c:368 -msgid "`-' specified for more than one input file" -msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë¤Ë¡Ö-¡×¤¬Ê£¿ô²ó»ØÄꤵ¤ì¤Þ¤·¤¿" - -#: src/diff3.c:408 src/diff3.c:1232 src/diff3.c:1645 src/diff3.c:1700 -#: src/sdiff.c:305 src/sdiff.c:879 src/sdiff.c:890 -msgid "read failed" -msgstr "ÆÉ¹þ¤ß¼ºÇÔ" - -#: src/diff3.c:441 -msgid "-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE." -msgstr "-e --ed OLDFILE¤«¤éYOURFILE¤Ø¤ÎMYFILE¤Ë¤¿¤¤¤¹¤ë̤ʻ¹ç¤ÎÊѹ¹¤ò½ÐÎÏ¡£" - -#: src/diff3.c:442 -msgid "-E --show-overlap Output unmerged changes, bracketing conflicts." -msgstr "-E --show-overlap ¾×ÆÍ¤ò¤¯¤¯¤ê¡¢Ì¤Ê»¹ç¤ÎÊѹ¹¤ò½ÐÎÏ¡£" - -#: src/diff3.c:443 -msgid "-A --show-all Output all changes, bracketing conflicts." -msgstr "-A --show-all ¾×ÆÍ¤ò¤¯¤¯¤ê¡¢Á´Êѹ¹¤ò½ÐÎÏ¡£" - -#: src/diff3.c:444 -msgid "-x --overlap-only Output overlapping changes." -msgstr "-x --overlap-only ½ÅÊ£¤·¤¿Êѹ¹¤ò½ÐÎÏ¡£" - -#: src/diff3.c:445 -msgid "-X Output overlapping changes, bracketing them." -msgstr "-X ¾×ÆÍ¤ò¤¯¤¯¤ê¤Ê¤¬¤é¡¢Êѹ¹¤ò½ÐÎÏ¡£" - -#: src/diff3.c:446 -msgid "-3 --easy-only Output unmerged nonoverlapping changes." -msgstr "-3 --easy-only ¾×ÆÍ¤·¤Æ¤¤¤Ê¤¤¡¢Ì¤Ê»¹ç¤ÎÊѹ¹¤ò½ÐÎÏ¡£" - -#: src/diff3.c:448 -msgid "-m --merge Output merged file instead of ed script (default -A)." -msgstr "" -"-m --merge ed¥¹¥¯¥ê¥×¥È¤ÎÂå¤ï¤ê¤Ë¡¢Ê»¹ç¤·¤¿¥Õ¥¡¥¤¥ë¤ò½ÐÎÏ (´ûÄê¤Ï-A)¡£" - -#: src/diff3.c:449 -msgid "-L LABEL --label=LABEL Use LABEL instead of file name." -msgstr "-L LABEL --label=LABEL ¥Õ¥¡¥¤¥ë̾¤ÎÂå¤ï¤ê¤ËLABEL¤ò»ÈÍÑ¡£" - -#: src/diff3.c:450 -msgid "-i Append `w' and `q' commands to ed scripts." -msgstr "-i ed¥¹¥¯¥ê¥×¥È¤Î¸å¤Ë¡Öw¡×¤È¡Öq¡×¥³¥Þ¥ó¥É¤òÄɲá£" - -#: src/diff3.c:453 src/sdiff.c:202 -msgid "--diff-program=PROGRAM Use PROGRAM to compare files." -msgstr "--diff-program=PROGRAM ¥Õ¥¡¥¤¥ë¤ÎÈæ³Ó¤ËPROGRAM¤ò»ÈÍÑ¡£" - -#: src/diff3.c:465 -#, c-format -msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n" -msgstr "»ÈÍÑË¡: %s [¥ª¥×¥·¥ç¥ó]... MYFILE OLDFILE YOURFILE\n" - -#: src/diff3.c:467 -msgid "Compare three files line by line." -msgstr "3¤Ä¤Î¥Õ¥¡¥¤¥ë¤ò¹Ô¤´¤È¤ËÈæ³Ó¤·¤Þ¤¹¡£" - -#: src/diff3.c:673 -msgid "internal error: screwup in format of diff blocks" -msgstr "ÆâÉô¥¨¥é¡¼: º¹Ê¬¥Ö¥í¥Ã¥¯¤Î·Á¼°¤Ë¥Ï¥Þ¤ë" - -#: src/diff3.c:971 -#, c-format -msgid "%s: diff failed: " -msgstr "%s: diff¼ºÇÔ: " - -#: src/diff3.c:993 -msgid "internal error: invalid diff type in process_diff" -msgstr "ÆâÉô¥¨¥é¡¼: process_diffÆâ¤Ç̵¸ú¤Êº¹Ê¬·¿" - -#: src/diff3.c:1018 -msgid "invalid diff format; invalid change separator" -msgstr "̵¸ú¤Êº¹Ê¬·Á¼°; ̵¸ú¤ÊÊѹ¹¶èÀÚ¤ê" - -#: src/diff3.c:1242 -msgid "invalid diff format; incomplete last line" -msgstr "̵¸ú¤Êº¹Ê¬·Á¼°; ºÇ½ª¹Ô¤¬Ì¤½ªÃ¼" - -#: src/diff3.c:1265 src/sdiff.c:273 -#, c-format -msgid "subsidiary program `%s' not executable" -msgstr "²¼°Ì¥×¥í¥°¥é¥à¡Ö%s¡×¤¬¼Â¹ÔÉÔǽ¤Ç¤¹" - -#: src/diff3.c:1268 src/sdiff.c:276 src/util.c:298 -#, c-format -msgid "subsidiary program `%s' not found" -msgstr "²¼°Ì¥×¥í¥°¥é¥à¡Ö%s¡×¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó" - -#: src/diff3.c:1272 src/sdiff.c:268 src/util.c:301 -#, c-format -msgid "subsidiary program `%s' failed" -msgstr "²¼°Ì¥×¥í¥°¥é¥à¡Ö%s¡×¤¬¼ºÇÔ" - -#: src/diff3.c:1294 -msgid "invalid diff format; incorrect leading line chars" -msgstr "̵¸ú¤Êº¹Ê¬·Á¼°; ÉÔÀµ¤Ê¹ÔƬʸ»ú·²" - -#: src/diff3.c:1370 -msgid "internal error: invalid diff type passed to output" -msgstr "ÆâÉô¥¨¥é¡¼: ½ÐÎϤËÅϤµ¤ì¤ë̵¸ú¤Êº¹Ê¬·¿" - -#: src/diff3.c:1647 src/diff3.c:1704 -msgid "input file shrank" -msgstr "ÆþÎÏ¥Õ¥¡¥¤¥ë¤¬½Ì¤ó¤À" - -#: src/dir.c:162 -#, c-format -msgid "cannot compare file names `%s' and `%s'" -msgstr "¥Õ¥¡¥¤¥ë̾¡Ö%s¡×¤È¡Ö%s¡×¤òÈæ³Ó¤Ç¤­¤Þ¤»¤ó" - -#: src/sdiff.c:35 -msgid "Written by Thomas Lord." -msgstr "ºîÀ®¤Ï¡¢Thomas Lord¡£" - -#: src/sdiff.c:183 -msgid "-o FILE --output=FILE Operate interactively, sending output to FILE." -msgstr "-o FILE --output=FILE ÂÐÏÃŪ¤ËÁàºî¤·¡¢½ÐÎϤÏFILE¤Ø¡£" - -#: src/sdiff.c:185 -msgid "-i --ignore-case Consider upper- and lower-case to be the same." -msgstr "-i --ignore-case ¥Õ¥¡¥¤¥ëÆâÍÆ¤ÎÂçʸ»ú¾®Ê¸»ú¤òƱ°ì»ë¡£" - -#: src/sdiff.c:188 -msgid "-W --ignore-all-space Ignore all white space." -msgstr "-W --ignore-all-space Á´¶õÇò¤ò̵»ë¡£" - -#: src/sdiff.c:194 -msgid "-w NUM --width=NUM Output at most NUM (default 130) columns per line." -msgstr "-w NUM --width=NUM ¹ÔÅö¤ê¹â¡¹NUM (´ûÄê¤Ï130) ·å¤Ç½ÐÎÏ¡£" - -#: src/sdiff.c:195 -msgid "-l --left-column Output only the left column of common lines." -msgstr "-l --left-column ¶¦Ä̹ԤϺ¸Îó¤À¤±½ÐÎÏ¡£" - -#: src/sdiff.c:196 -msgid "-s --suppress-common-lines Do not output common lines." -msgstr "-s --suppress-common-lines ¶¦Ä̹ԤνÐÎϤòÍ޻ߡ£" - -#: src/sdiff.c:201 -msgid "" -"-H --speed-large-files Assume large files and many scattered small changes." -msgstr "-H --speed-large-files µðÂç¤Ê¥Õ¥¡¥¤¥ë¤Ëʬ»¶¤·¤¿Êѹ¹¤¬¤¢¤ë¤È²¾Äê¡£" - -#: src/sdiff.c:214 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 FILE2\n" -msgstr "»ÈÍÑË¡: %s [¥ª¥×¥·¥ç¥ó]... ¥Õ¥¡¥¤¥ë1 ¥Õ¥¡¥¤¥ë2\n" - -#: src/sdiff.c:215 -msgid "Side-by-side merge of file differences." -msgstr "¥Õ¥¡¥¤¥ëº¹Ê¬¤Î2ÃÊÁÈÊ»¹ç" - -#: src/sdiff.c:327 -msgid "cannot interactively merge standard input" -msgstr "ɸ½à½ÐÎϤÏÂÐÏÃŪ¤ËÊ»¹ç¤Ç¤­¤Þ¤»¤ó" - -#: src/sdiff.c:588 -msgid "both files to be compared are directories" -msgstr "Èæ³ÓÂоݤÏξÊý¤È¤â¥Ç¥£¥ì¥¯¥È¥ê¡¼" - -#: src/sdiff.c:853 -msgid "" -"ed:\tEdit then use both versions, each decorated with a header.\n" -"eb:\tEdit then use both versions.\n" -"el:\tEdit then use the left version.\n" -"er:\tEdit then use the right version.\n" -"e:\tEdit a new version.\n" -"l:\tUse the left version.\n" -"r:\tUse the right version.\n" -"s:\tSilently include common lines.\n" -"v:\tVerbosely include common lines.\n" -"q:\tQuit.\n" -msgstr "" -"ed:\tξÊý¤ÎÈǤ˥إåÀ¡¼¤Ç¾þ¤Ã¤Æ¡¢ÍøÍѤ·¡¢ÊÔ½¸¡£\n" -"eb:\tÎÈǤò»ÈÍѤ·¤ÆÊÔ½¸¡£\n" -"el:\tº¸Â¦¤ÎÈǤò»ÈÍѤ·¤ÆÊÔ½¸¡£\n" -"er:\t±¦Â¦¤ÎÈǤò»ÈÍѤ·¤ÆÊÔ½¸¡£\n" -"e:\t¿·ÈǤòÊÔ½¸¡£\n" -"l:\tº¸Â¦¤ÎÈǤò»ÈÍÑ¡£\n" -"r:\t±¦Â¦¤ÎÈǤò»ÈÍÑ¡£\n" -"s:\t¶¦Ä̹Ԥò²ÉÌۤ˴ޤࡣ\n" -"v:\t¶¦Ä̹ԤòñÁÀå¤Ë´Þ¤à¡£\n" -"q:\t½ªÎ»¡£\n" diff --git a/gnu/dist/diffutils/po/pl.gmo b/gnu/dist/diffutils/po/pl.gmo deleted file mode 100644 index 72a5bb98246..00000000000 Binary files a/gnu/dist/diffutils/po/pl.gmo and /dev/null differ diff --git a/gnu/dist/diffutils/po/pl.po b/gnu/dist/diffutils/po/pl.po deleted file mode 100644 index c764af984d9..00000000000 --- a/gnu/dist/diffutils/po/pl.po +++ /dev/null @@ -1,930 +0,0 @@ -# Polish translations for the GNU diffutils messages -# Copyright (C) 1996, 2002 Free Software Foundation, Inc. -# Rafa³ Maszkowski , 1996, 2002. -# corrections: Pawe³ Krawczyk , 1996 -# -msgid "" -msgstr "" -"Project-Id-Version: GNU diffutils 2.7.10\n" -"POT-Creation-Date: 2002-04-05 14:10-0800\n" -"PO-Revision-Date: 2002-03-12 15:00+0100\n" -"Last-Translator: Rafa³ Maszkowski \n" -"Language-Team: Polish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-2\n" -"Content-Transfer-Encoding: 8-bit\n" - -#: lib/c-stack.c:188 -msgid "program error" -msgstr "b³±d programu" - -#: lib/c-stack.c:189 -msgid "stack overflow" -msgstr "przepe³nienie stosu" - -#: lib/error.c:128 lib/error.c:156 -msgid "Unknown system error" -msgstr "Niezany b³±d systemu" - -#: lib/freesoft.c:27 -msgid "" -"This program comes with NO WARRANTY, to the extent permitted by law.\n" -"You may redistribute copies of this program\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING." -msgstr "" -"Autorzy nie daj± ¯ADNYCH gwarancji, do granic, na które zezwala prawo.\n" -"Program mo¿e byæ rozpowszechniany na warunkach Ogólnej Licencji Publicznej\n" -"GNU; szczególy s± opisane w pliku COPYING." - -#: lib/getopt.c:693 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s: opcja `%s' is ambiguous\n" - -#: lib/getopt.c:718 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: opcja `--%s' nie mo¿e mieæ argumentu\n" - -#: lib/getopt.c:723 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: opcja `%c%s' nie mo¿e mieæ argumentu\n" - -#: lib/getopt.c:741 lib/getopt.c:914 -#, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s: opcja `%s' wymaga argumentu\n" - -#: lib/getopt.c:770 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: nierozpoznana opcja `--%s'\n" - -#: lib/getopt.c:774 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: unrecognized option `%c%s'\n" - -#: lib/getopt.c:800 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: nielegalna opcja -- %c\n" - -#: lib/getopt.c:803 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: b³êdna opcja -- %c\n" - -#: lib/getopt.c:833 lib/getopt.c:963 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: opcja wymaga argumentu -- %c\n" - -#: lib/getopt.c:880 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "%s: opcja `-W %s' jest niejednoznaczna\n" - -#: lib/getopt.c:898 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: opcja `-W %s' nie mo¿e mieæ argumentu\n" - -#: lib/regex.c:1367 -msgid "Success" -msgstr "Powodzenie" - -#: lib/regex.c:1370 -msgid "No match" -msgstr "Nie pasuje" - -#: lib/regex.c:1373 -msgid "Invalid regular expression" -msgstr "Z³e wyra¿enie regularne" - -#: lib/regex.c:1376 -msgid "Invalid collation character" -msgstr "Zly znak zbiorczy" - -#: lib/regex.c:1379 -msgid "Invalid character class name" -msgstr "Z³a nazwa klasy znaków" - -#: lib/regex.c:1382 -msgid "Trailing backslash" -msgstr "Koñcowy uko¶nik odwrotny" - -#: lib/regex.c:1385 -msgid "Invalid back reference" -msgstr "Z³y odno¶nik wstecz" - -#: lib/regex.c:1388 -msgid "Unmatched [ or [^" -msgstr "Nie sparowany [ lub [^" - -#: lib/regex.c:1391 -msgid "Unmatched ( or \\(" -msgstr "Nie sparowany ( lub \\(" - -#: lib/regex.c:1394 -msgid "Unmatched \\{" -msgstr "Nie sparowany \\{" - -#: lib/regex.c:1397 -msgid "Invalid content of \\{\\}" -msgstr "Z³a zawarto¶æ \\{\\}" - -#: lib/regex.c:1400 -msgid "Invalid range end" -msgstr "Z³y koniec zakresu" - -#: lib/regex.c:1403 -msgid "Memory exhausted" -msgstr "Brak pamiêci" - -#: lib/regex.c:1406 -msgid "Invalid preceding regular expression" -msgstr "Z³e poprzedzj±ce wyra¿enie regularne" - -#: lib/regex.c:1409 -msgid "Premature end of regular expression" -msgstr "Przedwczesny koniec wyra¿enia regularnego" - -#: lib/regex.c:1412 -msgid "Regular expression too big" -msgstr "Wyra¿enia regularne jest za du¿e" - -#: lib/regex.c:1415 -msgid "Unmatched ) or \\)" -msgstr "Nie sparowany ) lub \\)" - -#: lib/regex.c:8034 -msgid "No previous regular expression" -msgstr "Brak porzedniego wyra¿enia regularnego" - -#: lib/xmalloc.c:63 -msgid "memory exhausted" -msgstr "brak pamiêci" - -#: src/analyze.c:809 src/diff.c:1283 -#, c-format -msgid "Files %s and %s differ\n" -msgstr "Pliki %s i %s ró¿ni± siê\n" - -#: src/analyze.c:812 -#, c-format -msgid "Binary files %s and %s differ\n" -msgstr "Pliki binarne %s i %s siê ró¿ni±\n" - -#: src/analyze.c:1058 src/diff3.c:1413 src/util.c:526 -msgid "No newline at end of file" -msgstr "Brak znaku nowej linii na koñcu pliku" - -#: src/cmp.c:43 -msgid "Written by Torbjorn Granlund and David MacKenzie." -msgstr "Napisany przez Torbjorna Gralunda i Davida MacKenzie." - -#: src/cmp.c:118 src/diff.c:817 src/diff3.c:427 src/sdiff.c:168 -#, c-format -msgid "Try `%s --help' for more information." -msgstr "Napisz `%s --help' ¿eby dowiedzieæ siê wiêcej." - -#: src/cmp.c:137 -#, c-format -msgid "invalid --ignore-initial value `%s'" -msgstr "b³êdna warto¶æ --ignore-initial `%s'" - -#: src/cmp.c:146 -msgid "options -l and -s are incompatible" -msgstr "sprzeczne opcje -l i -s" - -#: src/cmp.c:154 src/diff.c:826 src/diff3.c:435 src/sdiff.c:177 -#: src/sdiff.c:313 src/sdiff.c:320 src/sdiff.c:910 src/util.c:194 -#: src/util.c:286 src/util.c:293 -msgid "write failed" -msgstr "zapis nieudany" - -#: src/cmp.c:156 src/diff.c:828 src/diff.c:1354 src/diff3.c:437 -#: src/sdiff.c:179 -msgid "standard output" -msgstr "standardowe wyj¶cie" - -#: src/cmp.c:160 -msgid "-b --print-bytes Print differing bytes." -msgstr "-b --print-chars Wypisanie ró¿ni±cych siê bajtów." - -#: src/cmp.c:161 -msgid "-i SKIP --ignore-initial=SKIP Skip the first SKIP bytes of input." -msgstr "-i OMIÑ --ignore-initial=OMIÑ PRzeskoczenie pierwszych OMIÑ bajtów." - -#: src/cmp.c:162 -msgid "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2" -msgstr "-i SKOK1:SKOK2--ignore-initial=SKOK1:SKOK2" - -#: src/cmp.c:163 -msgid "" -" Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2." -msgstr " Przeskoczenie pierwszych SKOK1 bajtów PLIKU1 i SKOK2 bajtów PLIKU2." - -#: src/cmp.c:164 -msgid "-l --verbose Output byte numbers and values of all differing bytes." -msgstr "" -"-I --verbose Wypisanie po³o¿eñ i kodów wszystkich ró¿ni±cych siê bajtów." - -#: src/cmp.c:165 -msgid "-n LIMIT --bytes=LIMIT Compare at most LIMIT bytes." -msgstr "-n LIMIT --bytes=LIMIT Porównanie najwy¿ej LIMIT bajtów." - -#: src/cmp.c:166 -msgid "-s --quiet --silent Output nothing; yield exit status only." -msgstr "" -"-s --quiet --silnet Bez wypisania wyników; tylko przekazanie statusu." - -#: src/cmp.c:167 src/diff.c:904 src/diff3.c:455 src/sdiff.c:204 -msgid "-v --version Output version info." -msgstr "-v --version Wypisanie informacji o wersji." - -#: src/cmp.c:168 src/diff.c:905 src/diff3.c:456 src/sdiff.c:205 -msgid "--help Output this help." -msgstr "--help Wypisanie tego helpu." - -#: src/cmp.c:177 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n" -msgstr "U¿ycie: %s [OPCJA]... PLIK1 [PLIK2 [SKOK1 [SKOK2]]]\n" - -#: src/cmp.c:179 -msgid "Compare two files byte by byte." -msgstr "Porównanie plików bajt po bajcie." - -#: src/cmp.c:183 -msgid "SKIP1 and SKIP2 are the number of bytes to skip in each file." -msgstr "SKOK1 i SKOK2 to liczby bajtów do pominiêcia w ka¿dym z plików." - -#: src/cmp.c:184 -msgid "" -"SKIP values may be followed by the following multiplicative suffixes:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y." -msgstr "" -"Po warto¶ci SKOKU mog± byæ dodane nastêpuj±ce przyrostki:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, i tak dalej dla T, P, E, Z, Y." - -#: src/cmp.c:187 -msgid "If a FILE is `-' or missing, read standard input." -msgstr "Je¿eli PLIK to `-' lub go brak, czytane jest standardowe wej¶cie." - -#: src/cmp.c:188 src/diff.c:911 src/diff3.c:475 src/sdiff.c:223 -msgid "Report bugs to ." -msgstr "Inofmracje o b³êdach: bug-gnu-utils@gnu.org ." - -#: src/cmp.c:231 -#, c-format -msgid "invalid --bytes value `%s'" -msgstr "b³êdna warto¶æ --bytes `%s'" - -#: src/cmp.c:258 src/diff.c:734 src/diff3.c:333 src/sdiff.c:558 -#, c-format -msgid "missing operand after `%s'" -msgstr "brakuj±cy argument po `%s'" - -#: src/cmp.c:270 src/diff.c:736 src/diff3.c:335 src/sdiff.c:560 -#, c-format -msgid "extra operand `%s'" -msgstr "nadmiarowy argument `%s'" - -#: src/cmp.c:477 -#, c-format -msgid "%s %s differ: byte %s, line %s\n" -msgstr "%s %s ró¿ni± siê: bajt %s, linia %s\n" - -#: src/cmp.c:495 -#, c-format -msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n" -msgstr "%s %s ró¿ni± siê: bajt %s, linia %s zawiera %3o %s %3o %s\n" - -#: src/cmp.c:543 -#, c-format -msgid "cmp: EOF on %s\n" -msgstr "cmp: EOF przy %s\n" - -#: src/diff.c:41 -msgid "" -"Written by Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman, and Len Tower." -msgstr "" -"Napisany przez Paula Eggerta, Mike'a Haertela, Davida Hayesa,\n" -"Richarda Stallmana i Lena Towera." - -#: src/diff.c:322 -#, c-format -msgid "invalid context length `%s'" -msgstr "b³êdna d³ugo¶æ kontekstu `%s'" - -#: src/diff.c:405 -msgid "pagination not supported on this host" -msgstr "stronicowanie nie jest mo¿liwe na tej maszynie" - -#: src/diff.c:420 src/diff3.c:315 -msgid "too many file label options" -msgstr "za du¿o opcji etykietowania plików" - -#: src/diff.c:498 -#, c-format -msgid "invalid width `%s'" -msgstr "b³êdna szeroko¶æ `%s'" - -#: src/diff.c:502 -msgid "conflicting width options" -msgstr "sprzeczne opcje szeroko¶ci" - -#: src/diff.c:526 -#, c-format -msgid "invalid horizon length `%s'" -msgstr "b³êdna d³ugo¶æ horyzontu `%s'" - -#: src/diff.c:629 -#, c-format -msgid "`-%ld' option is obsolete; use `-%c %ld'" -msgstr "opcja `-%ld' jest przestarza³a, u¿yj `-%c %ld'" - -#: src/diff.c:641 -#, c-format -msgid "`-%ld' option is obsolete; omit it" -msgstr "opcja `-%ld' jest przestarza³a, opu¶æ j±" - -#: src/diff.c:709 -msgid "--from-file and --to-file both specified" -msgstr "równocze¶nie podane --from-file i --to-file" - -#: src/diff.c:832 -msgid "Compare files line by line." -msgstr "Porównanie plików kolejnymi liniami." - -#: src/diff.c:834 -msgid "-i --ignore-case Ignore case differences in file contents." -msgstr "" -"-i --ignore-case Ignorowanie ró¿nic miêdzy wielkimi i ma³ymi literami." - -#: src/diff.c:835 -msgid "--ignore-file-name-case Ignore case when comparing file names." -msgstr "" -"--ignore-space-change Zignorowanie wielko¶ci liter przy porównywaniu\n" -" nazw plików." - -#: src/diff.c:836 -msgid "--no-ignore-file-name-case Consider case when comparing file names." -msgstr "" -"--no-ignore-file-name-case Uwzglêdnianie wielko¶ci liter przy porównywaniu\n" -" nazw plików." - -#: src/diff.c:837 src/sdiff.c:186 -msgid "-E --ignore-tab-expansion Ignore changes due to tab expansion." -msgstr "" -"-E --ignore-tab-expansion Zignorowanie zmian spowodowanych rozwiniêciem\n" -" TABów." - -#: src/diff.c:838 src/sdiff.c:187 -msgid "-b --ignore-space-change Ignore changes in the amount of white space." -msgstr "-b --ignore-space-change Zignorowanie zmian ilo¶ci znaków odstêpu." - -#: src/diff.c:839 -msgid "-w --ignore-all-space Ignore all white space." -msgstr "-w --ignore-all-space Zignorowanie znaków odstêpu." - -#: src/diff.c:840 src/sdiff.c:189 -msgid "-B --ignore-blank-lines Ignore changes whose lines are all blank." -msgstr "-B --ignore-blank-lines Zignorowanie zmian ilo¶ci pustych linii." - -#: src/diff.c:841 src/sdiff.c:190 -msgid "" -"-I RE --ignore-matching-lines=RE Ignore changes whose lines all match RE." -msgstr "" -"-I RE --ignore-matching-lines=RE Zignorowanie zmian w liniach pasuj±cych\n" -" do RE." - -#: src/diff.c:842 src/sdiff.c:191 -msgid "--strip-trailing-cr Strip trailing carriage return on input." -msgstr "--strip-trailing-cr Pominiêcie znaków nowej linii na wej¶ciu." - -#: src/diff.c:844 -msgid "--binary Read and write data in binary mode." -msgstr "--binary Czytanie i zapisywanie danych binarnie." - -#: src/diff.c:846 src/diff3.c:451 src/sdiff.c:192 -msgid "-a --text Treat all files as text." -msgstr "-a --text Traktowanie plików jako tekstowych." - -#: src/diff.c:848 -msgid "" -"-c -C NUM --context[=NUM] Output NUM (default 3) lines of copied " -"context.\n" -"-u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified " -"context.\n" -" --label LABEL Use LABEL instead of file name.\n" -" -p --show-c-function Show which C function each change is in.\n" -" -F RE --show-function-line=RE Show the most recent line matching RE." -msgstr "" -"-c -C ILE --context[=ILE] Skopiowanie ILE (domy¶lnie 2) linii kontekstu.\n" -"-u -U ILE --unified[=ILE] ILE (domy¶lnie 2) linii zunifikowanego " -"kontekstu.\n" -" --label ETYKIETA U¿ycie ETYKIETY zamiast nazwy pilku.\n" -" -p --show-c-function Wskazanie funkcji C, w których s± zmiany.\n" -" -F RE --show-function-line=RE Pokazanie ostatniej linii pasuj±cej do RE." - -#: src/diff.c:853 -msgid "-q --brief Output only whether files differ." -msgstr "-q --brief Wypisanie wyniku tylko gdy pliki siê ró¿ni±." - -#: src/diff.c:854 -msgid "-e --ed Output an ed script." -msgstr "-e --ed Wynik w postaci komend ed-a" - -#: src/diff.c:855 -msgid "--normal Output a normal diff." -msgstr "--normal Wynik w postaci zwyk³ego diff-a." - -#: src/diff.c:856 -msgid "-n --rcs Output an RCS format diff." -msgstr "-n --rcs Wynik w postaci diff-a z RCS." - -#: src/diff.c:857 -msgid "" -"-y --side-by-side Output in two columns.\n" -" -W NUM --width=NUM Output at most NUM (default 130) print columns.\n" -" --left-column Output only the left column of common lines.\n" -" --suppress-common-lines Do not output common lines." -msgstr "" -"-y --side-by-side Wynik w dwóch kolumnach.\n" -" -W ILE --width=ILE Wypisanie najwy¿ej ILE (domy¶nie 130) znaków w " -"linii.\n" -" --left-column Wypisanie tylko lewej kolumny dla wspólnych linii.\n" -" --suppress-common-lines Bez wypisywania wspólnych linii." - -#: src/diff.c:861 -msgid "-D NAME --ifdef=NAME Output merged file to show `#ifdef NAME' diffs." -msgstr "" -"-D NAZWA --ifdef=NAZWA Wypisanie po³±czonego pliu dla pokazania ró¿nic\n" -" w `#ifdef NAZWA'." - -#: src/diff.c:862 -msgid "" -"--GTYPE-group-format=GFMT Similar, but format GTYPE input groups with GFMT." -msgstr "" -"--TYPG-group-format=GFMT Podobnie, ale z u¿yciem GFMT do sformatowania " -"grup\n" -" wej¶ciowych type TYPG" - -#: src/diff.c:863 -msgid "--line-format=LFMT Similar, but format all input lines with LFMT." -msgstr "" -"--line-format=LFMT Podobnie, ale z u¿yciem LFMT do sformatowania linii\n" -" wej¶ciowych." - -#: src/diff.c:864 -msgid "" -"--LTYPE-line-format=LFMT Similar, but format LTYPE input lines with LFMT." -msgstr "" -"--TYPL-group-format=LFMT Podobnie, ale z u¿yciem LFMT do sformatowania " -"grup\n" -" wej¶ciowych typu TYPL" - -#: src/diff.c:865 -msgid " LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'." -msgstr "TYPL to `old', `news' lub `unchanged'. TYPG to TYPL lub `changed'." - -#: src/diff.c:866 -msgid "" -" GFMT may contain:\n" -" %< lines from FILE1\n" -" %> lines from FILE2\n" -" %= lines common to FILE1 and FILE2\n" -" %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" -" LETTERs are as follows for new group, lower case for old group:\n" -" F first line number\n" -" L last line number\n" -" N number of lines = L-F+1\n" -" E F-1\n" -" M L+1" -msgstr "" -" GFMT mo¿e zawieraæ:\n" -" %< linie z PLIKU1\n" -" %> linie z PLIKU2\n" -" %= linie wspólne dla PLIKU1 i PLIKU2\n" -" %[-][SZER][.[DOK£]]{doxX}LITERA specyfikacja w stylu printf dla LITERY\n" -" LITERY s± nastêpuj±ce dla nowej grupy (ma³e dla starej grupy):\n" -" F numer pierwszej linii\n" -" L numer ostatniej linii\n" -" N ilo¶æ linii = L-F+1\n" -" E F-1\n" -" M L+1" - -#: src/diff.c:877 -msgid "" -" LFMT may contain:\n" -" %L contents of line\n" -" %l contents of line, excluding any trailing newline\n" -" %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number" -msgstr "" -" LFMT mo¿e zawieraæ:\n" -" %L zawarto¶æ linii\n" -" %l zawarto¶c linii, z wy³±czeniem znaku nowej linii\n" -" %[-][SZER][.[DOK£]]{doxX}n specyfikacjê numeru linii w stylu printf" - -#: src/diff.c:881 -msgid "" -" Either GFMT or LFMT may contain:\n" -" %% %\n" -" %c'C' the single character C\n" -" %c'\\OOO' the character with octal code OOO" -msgstr "" -" GFMT i LFMT mog± zawieraæ:\n" -" %% %\n" -" %c'C' pojedyñczy znak C\n" -" %c'\\OOO' znak o kodzie ósemkowym OOO" - -#: src/diff.c:886 -msgid "-l --paginate Pass the output through `pr' to paginate it." -msgstr "-I --paginate Przepuszczenie wyniku przez `pr' ¿eby go stronnicowaæ." - -#: src/diff.c:887 src/sdiff.c:198 -msgid "-t --expand-tabs Expand tabs to spaces in output." -msgstr "-t --expand-tabs Rozwiniêcie TABów w spacje w wyniku." - -#: src/diff.c:888 src/diff3.c:452 -msgid "-T --initial-tab Make tabs line up by prepending a tab." -msgstr "-T --initial-tab Wyrównanie linii przez u¿ycie TABów." - -#: src/diff.c:890 -msgid "-r --recursive Recursively compare any subdirectories found." -msgstr "-r --recursive Porównanie podkatalogów rekurencyjnie." - -#: src/diff.c:891 -msgid "-N --new-file Treat absent files as empty." -msgstr "-N --new-file Traktowanie brakuj±cych plików jak pustych." - -#: src/diff.c:892 -msgid "--unidirectional-new-file Treat absent first files as empty." -msgstr "" -"--unidirectional-new-file Traktowanie brakuj±cych pierwszych plików\n" -" w pierwszym zestawie jako pustych." - -#: src/diff.c:893 -msgid "-s --report-identical-files Report when two files are the same." -msgstr "" -"-s --report-identical-files Informowanie gdy dwa pliki s± takie same." - -#: src/diff.c:894 -msgid "-x PAT --exclude=PAT Exclude files that match PAT." -msgstr "-x WZÓR --exclude=WZÓR Wykluczenie plików pasuj±cych do WZORu." - -#: src/diff.c:895 -msgid "" -"-X FILE --exclude-from=FILE Exclude files that match any pattern in FILE." -msgstr "" -"-X PLIK --exclude-from=PLIK Pominiêcie plików pasuj±cych do wzorców w " -"PLIKu." - -#: src/diff.c:896 -msgid "" -"-S FILE --starting-file=FILE Start with FILE when comparing directories." -msgstr "" -"-S PLIK --starting-file=PLIK Zacznij od PLIKu przy porównywaniu katalogów." - -#: src/diff.c:897 -msgid "" -"--from-file=FILE1 Compare FILE1 to all operands. FILE1 can be a directory." -msgstr "" -"--from-file=PLIK1 Porównanie PLIKU1 z wszystkimi argumentami.\n" -" PLIK1 mo¿e byæ katalogiem." - -#: src/diff.c:898 -msgid "" -"--to-file=FILE2 Compare all operands to FILE2. FILE2 can be a directory." -msgstr "" -"--to-file=PLIK2 Porównanie wszystkich argumentów z PLIKIEM2.\n" -" PLIK2 mo¿e byæ katalogiem." - -#: src/diff.c:900 -msgid "--horizon-lines=NUM Keep NUM lines of the common prefix and suffix." -msgstr "" -"--horizon-lines=ILE Zostawienie ILE linii wspólnego przedrostka i " -"przyrostka." - -#: src/diff.c:901 src/sdiff.c:200 -msgid "-d --minimal Try hard to find a smaller set of changes." -msgstr "-d --minimal Usi³owanie znalezienia mniejszego zbioru zmian." - -#: src/diff.c:902 -msgid "" -"--speed-large-files Assume large files and many scattered small changes." -msgstr "--speed-large-files Du¿e pliki i rozrzucone ma³e zmiany." - -#: src/diff.c:907 -msgid "" -"FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'." -msgstr "" -"PLIKI to `PLIK1 PLIK2' albo `KATALOG1 KATALOG2' albo `KATALOG PLIK...' albo\n" -"PLIK... KATALOG'." - -#: src/diff.c:908 -msgid "" -"If --from-file or --to-file is given, there are no restrictions on FILES." -msgstr "" -"Je¿eli u¿yta jest opcja --from-file albo --to-file, nie ma ograniczeñ co do\n" -"PLIKÓW." - -#: src/diff.c:909 src/diff3.c:474 src/sdiff.c:222 -msgid "If a FILE is `-', read standard input." -msgstr "Je¿eli PLIK to `-', czytane jest standardowe wej¶cie." - -#: src/diff.c:920 -#, c-format -msgid "Usage: %s [OPTION]... FILES\n" -msgstr "U¿ycie: %s [OPCJA]... PLIKI\n" - -#: src/diff.c:949 -#, c-format -msgid "conflicting %s option value `%s'" -msgstr "sprzeczna warto¶æ opcji %s: `%s'" - -#: src/diff.c:962 -msgid "conflicting output style options" -msgstr "sprzeczne opcje stylu wyniku" - -#: src/diff.c:976 -msgid "regular empty file" -msgstr "zwyk³y pusty plik" - -#: src/diff.c:976 -msgid "regular file" -msgstr "zwyk³y plik" - -#: src/diff.c:978 -msgid "directory" -msgstr "katalog" - -#: src/diff.c:981 -msgid "block special file" -msgstr "specjalny plik blokowy" - -#: src/diff.c:984 -msgid "character special file" -msgstr "specjalny plik znakowy" - -#: src/diff.c:987 -msgid "fifo" -msgstr "fifo" - -#: src/diff.c:991 -msgid "socket" -msgstr "gniazdo" - -#: src/diff.c:994 -msgid "message queue" -msgstr "kolejka komunikatów" - -#: src/diff.c:997 -msgid "semaphore" -msgstr "semafor" - -#: src/diff.c:1000 -msgid "shared memory object" -msgstr "obiekt w pamiêci dzielonej" - -#: src/diff.c:1003 -msgid "typed memory object" -msgstr "obiekt w pamiêci z okre¶leniem typu" - -#: src/diff.c:1006 -msgid "weird file" -msgstr "dziwny plik" - -#: src/diff.c:1070 src/diff.c:1256 -#, c-format -msgid "Only in %s: %s\n" -msgstr "Tylko w %s: %s\n" - -#: src/diff.c:1193 -msgid "cannot compare `-' to a directory" -msgstr "nie mo¿na porównaæ `-' z katalogiem" - -#: src/diff.c:1220 -msgid "-D option not supported with directories" -msgstr "-D opcja nie dzia³a dla katalogów" - -#: src/diff.c:1229 -#, c-format -msgid "Common subdirectories: %s and %s\n" -msgstr "Wspólne podkatalogi: %s i %s\n" - -#: src/diff.c:1266 -#, c-format -msgid "File %s is a %s while file %s is a %s\n" -msgstr "Plik %s jest %s, podczas gdy plik %s jest %s\n" - -#: src/diff.c:1345 -#, c-format -msgid "Files %s and %s are identical\n" -msgstr "Pliki %s i %s s± identyczne\n" - -#: src/diff3.c:26 -msgid "Written by Randy Smith." -msgstr "Napisany przez Randiego Smitha." - -#: src/diff3.c:328 -msgid "incompatible options" -msgstr "niezgodne opcje" - -#: src/diff3.c:368 -msgid "`-' specified for more than one input file" -msgstr "`-' podany dla wiêcej ni¿ jednego pliku wej¶ciowego" - -#: src/diff3.c:408 src/diff3.c:1232 src/diff3.c:1645 src/diff3.c:1700 -#: src/sdiff.c:305 src/sdiff.c:879 src/sdiff.c:890 -msgid "read failed" -msgstr "nieudany odczyt" - -#: src/diff3.c:441 -msgid "-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE." -msgstr "" -"-e --ed Wypisanie niez³±czonych zmian miêdzy STARY_PLIK a NOWY_PLIK do\n" -" MÓJ_PLIK." - -#: src/diff3.c:442 -msgid "-E --show-overlap Output unmerged changes, bracketing conflicts." -msgstr "" -"-E --show-overlap Wypisanie niez³±czonych zmian, konflikty w nawiasach." - -#: src/diff3.c:443 -msgid "-A --show-all Output all changes, bracketing conflicts." -msgstr "-A --show-all Wypisanie wszystkich zmian, konflikty w nawiasach." - -#: src/diff3.c:444 -msgid "-x --overlap-only Output overlapping changes." -msgstr "-x --overlap-only Wypisanie nachodz±cych zmian." - -#: src/diff3.c:445 -msgid "-X Output overlapping changes, bracketing them." -msgstr "-X Wypisanie nachodz±cych zmian w nawiasach." - -#: src/diff3.c:446 -msgid "-3 --easy-only Output unmerged nonoverlapping changes." -msgstr "-3 --easy-only Wypisanie niez³±czonych nienachodz±cych zmian." - -#: src/diff3.c:448 -msgid "-m --merge Output merged file instead of ed script (default -A)." -msgstr "" -"-m -merge Wypisanie po³±czonych plików zamiast komend ed-a (domy¶lnie -A)." - -#: src/diff3.c:449 -msgid "-L LABEL --label=LABEL Use LABEL instead of file name." -msgstr "-L ETYKIETA --label=ETYKIETA U¿ycie ETYKIETY zamiast nazwy pliku." - -#: src/diff3.c:450 -msgid "-i Append `w' and `q' commands to ed scripts." -msgstr "-i Dodanie komendy `w' i `q' do komend ed-a." - -#: src/diff3.c:453 src/sdiff.c:202 -msgid "--diff-program=PROGRAM Use PROGRAM to compare files." -msgstr "--diff-program=PROGRAM U¿ycie PROGRAMU do porównania plików." - -#: src/diff3.c:465 -#, c-format -msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n" -msgstr "U¿ycie: %s [OPCJA]... MÓJ_PLIK STARY_PLIK TWÓJ_PLIK\n" - -#: src/diff3.c:467 -msgid "Compare three files line by line." -msgstr "Porównanie trzech plików linia po linii." - -#: src/diff3.c:673 -msgid "internal error: screwup in format of diff blocks" -msgstr "b³ad wewnêtrzny: spieprzony format bloków diff" - -#: src/diff3.c:971 -#, c-format -msgid "%s: diff failed: " -msgstr "%s: diff nie zadzia³a³: " - -#: src/diff3.c:993 -msgid "internal error: invalid diff type in process_diff" -msgstr "b³±d wewnêtrzny: b³êdny typ diff w process_diff" - -#: src/diff3.c:1018 -msgid "invalid diff format; invalid change separator" -msgstr "b³êdny format diff; b³êdny separator zmian" - -#: src/diff3.c:1242 -msgid "invalid diff format; incomplete last line" -msgstr "b³êdny format diff; niekompletna ostatnia linia" - -#: src/diff3.c:1265 src/sdiff.c:273 -#, c-format -msgid "subsidiary program `%s' not executable" -msgstr "program pomocniczy `%s' nie jest wykonywalny" - -#: src/diff3.c:1268 src/sdiff.c:276 src/util.c:298 -#, c-format -msgid "subsidiary program `%s' not found" -msgstr "nie znaleziono programu pomocniczego `%s'" - -#: src/diff3.c:1272 src/sdiff.c:268 src/util.c:301 -#, c-format -msgid "subsidiary program `%s' failed" -msgstr "nie zadzia³a³ program pomocniczy `%s'" - -#: src/diff3.c:1294 -msgid "invalid diff format; incorrect leading line chars" -msgstr "b³êdny format diff; nieprawid³owe znaki na pocz±tku linii" - -#: src/diff3.c:1370 -msgid "internal error: invalid diff type passed to output" -msgstr "b³±d wenwêtrzny: b³êdny typ diff-a przekazany na wyj¶cie" - -#: src/diff3.c:1647 src/diff3.c:1704 -msgid "input file shrank" -msgstr "plik wej¶ciowy siê zmiejszy³" - -#: src/dir.c:162 -#, c-format -msgid "cannot compare file names `%s' and `%s'" -msgstr "nie mo¿na porównaæ nazw plików `%s' i `%s'" - -#: src/sdiff.c:35 -msgid "Written by Thomas Lord." -msgstr "Napisany przez Thomasa Lorda." - -#: src/sdiff.c:183 -msgid "-o FILE --output=FILE Operate interactively, sending output to FILE." -msgstr "-o PLIK --output=PLIK Tryb interakcyjny, wyniki wysy³ane do PLIKu." - -#: src/sdiff.c:185 -msgid "-i --ignore-case Consider upper- and lower-case to be the same." -msgstr "-i --ignore-case Traktowanie ma³ych i wielkich liter tak samo." - -#: src/sdiff.c:188 -msgid "-W --ignore-all-space Ignore all white space." -msgstr "-W --ignore-all-space Ignorowanie wszystkich znaków odstêpu." - -#: src/sdiff.c:194 -msgid "-w NUM --width=NUM Output at most NUM (default 130) columns per line." -msgstr "" -"-w ILE --width=ILE Wypisanie najwy¿ej ILE (domy¶nie 130) znaków w linii." - -#: src/sdiff.c:195 -msgid "-l --left-column Output only the left column of common lines." -msgstr "-I --left-column Wypisanie tylko lewej kolumny dla wspólnych linii." - -#: src/sdiff.c:196 -msgid "-s --suppress-common-lines Do not output common lines." -msgstr "-s --suppress-common-lines Bez wypisania wspólnych linii." - -#: src/sdiff.c:201 -msgid "" -"-H --speed-large-files Assume large files and many scattered small changes." -msgstr "-H --speed-large-files Du¿e pliki i rozrzucone ma³e zmiany." - -#: src/sdiff.c:214 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 FILE2\n" -msgstr "U¿ycie: %s [OPCJA]... PLIK1 PLIK2\n" - -#: src/sdiff.c:215 -msgid "Side-by-side merge of file differences." -msgstr "Interaktywne po³±czenie plików." - -#: src/sdiff.c:327 -msgid "cannot interactively merge standard input" -msgstr "nie mogê interakcyjnie ³±czyæ standardowego wej¶cia" - -#: src/sdiff.c:588 -msgid "both files to be compared are directories" -msgstr "oba maj±ce byæ porównane pliki to katalogi" - -#: src/sdiff.c:853 -msgid "" -"ed:\tEdit then use both versions, each decorated with a header.\n" -"eb:\tEdit then use both versions.\n" -"el:\tEdit then use the left version.\n" -"er:\tEdit then use the right version.\n" -"e:\tEdit a new version.\n" -"l:\tUse the left version.\n" -"r:\tUse the right version.\n" -"s:\tSilently include common lines.\n" -"v:\tVerbosely include common lines.\n" -"q:\tQuit.\n" -msgstr "" -"ed:\tEdycja i u¿ycie obu wersji, ka¿dej z nag³ówkiem.\n" -"eb:\tEdycja i u¿ycie obu wersji.\n" -"el:\tiU¿ycie wersji po lewej.\n" -"er:\tEdycja i u¿ycie wersji po prawej.\n" -"e:\tEdycja nowej wersji.\n" -"l:\tU¿ycie wersji po lewej.\n" -"r:\tU¿ycie wersji po prawej.\n" -"s:\tDo³±czenie wspólnych linii bez informoawania o tym.\n" -"v:\tDo³±czenie wspólnych linii z podaniem informacji.\n" -"q:\tZakoñczenie.\n" diff --git a/gnu/dist/diffutils/po/quot.sed b/gnu/dist/diffutils/po/quot.sed deleted file mode 100644 index 0122c46318d..00000000000 --- a/gnu/dist/diffutils/po/quot.sed +++ /dev/null @@ -1,6 +0,0 @@ -s/"\([^"]*\)"/“\1â€/g -s/`\([^`']*\)'/‘\1’/g -s/ '\([^`']*\)' / ‘\1’ /g -s/ '\([^`']*\)'$/ ‘\1’/g -s/^'\([^`']*\)' /‘\1’ /g -s/“â€/""/g diff --git a/gnu/dist/diffutils/po/remove-potcdate.sin b/gnu/dist/diffutils/po/remove-potcdate.sin deleted file mode 100644 index 2436c49e786..00000000000 --- a/gnu/dist/diffutils/po/remove-potcdate.sin +++ /dev/null @@ -1,19 +0,0 @@ -# Sed script that remove the POT-Creation-Date line in the header entry -# from a POT file. -# -# The distinction between the first and the following occurrences of the -# pattern is achieved by looking at the hold space. -/^"POT-Creation-Date: .*"$/{ -x -# Test if the hold space is empty. -s/P/P/ -ta -# Yes it was empty. First occurrence. Remove the line. -g -d -bb -:a -# The hold space was nonempty. Following occurrences. Do nothing. -x -:b -} diff --git a/gnu/dist/diffutils/po/ru.gmo b/gnu/dist/diffutils/po/ru.gmo deleted file mode 100644 index 3c67e6d2a83..00000000000 Binary files a/gnu/dist/diffutils/po/ru.gmo and /dev/null differ diff --git a/gnu/dist/diffutils/po/ru.po b/gnu/dist/diffutils/po/ru.po deleted file mode 100644 index d76daabb28f..00000000000 --- a/gnu/dist/diffutils/po/ru.po +++ /dev/null @@ -1,942 +0,0 @@ -# ðÅÒÅ×ÏÄ ÓÏÏÂÝÅÎÉÊ diffutils -# Copyright (C) 1998 Free Software Foundation, Inc. -# Oleg S. Tihonov , 1998, 2001, 2002. -# -msgid "" -msgstr "" -"Project-Id-Version: diffutils 2.8\n" -"POT-Creation-Date: 2002-04-05 14:10-0800\n" -"PO-Revision-Date: 2002-04-03 14:06+0400\n" -"Last-Translator: Oleg S. Tihonov \n" -"Language-Team: Russian \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=koi8-r\n" -"Content-Transfer-Encoding: 8bit\n" - -#: lib/c-stack.c:188 -msgid "program error" -msgstr "ÏÛÉÂËÁ ÐÒÏÇÒÁÍÍÙ" - -#: lib/c-stack.c:189 -msgid "stack overflow" -msgstr "ÐÅÒÅÐÏÌÎÅÎÉÅ ÓÔÅËÁ" - -#: lib/error.c:128 lib/error.c:156 -msgid "Unknown system error" -msgstr "îÅÉÚ×ÅÓÔÎÁÑ ÓÉÓÔÅÍÎÁÑ ÏÛÉÂËÁ" - -#: lib/freesoft.c:27 -msgid "" -"This program comes with NO WARRANTY, to the extent permitted by law.\n" -"You may redistribute copies of this program\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING." -msgstr "" -"Copyright (C) %s Free Software Foundation, Inc.\n" -"íÙ îå ÐÒÅÄÏÓÔÁ×ÌÑÅÍ ÇÁÒÁÎÔÉÊ, × ÔÏÊ ÍÅÒÅ, ËÏÔÏÒÁÑ ÄÏÐÕÓÔÉÍÁ ÚÁËÏÎÏÍ.\n" -"÷Ù ÍÏÖÅÔÅ ÒÁÓÐÒÏÓÔÒÁÎÑÔØ ÜÔÉ ÐÒÏÇÒÁÍÍÙ ÐÒÉ ÓÏÂÌÀÄÅÎÉÉ\n" -"ÕÓÌÏ×ÉÊ õÎÉ×ÅÒÓÁÌØÎÏÊ ïÂÝÅÓÔ×ÅÎÎÏÊ ìÉÃÅÎÚÉÉ GNU.\n" -"äÌÑ ÐÏÌÕÞÅÎÉÑ ÐÏÄÒÏÂÎÏÊ ÉÎÆÏÒÍÁÃÉÉ Ï ×ÏÚÍÏÖÎÏÓÔÉ ÒÁÓÐÒÏÓÔÒÁÎÅÎÉÑ ÓÍÏÔÒÉÔÅ\n" -"ÆÁÊÌ COPYING." - -#: lib/getopt.c:693 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `%s'\n" - -#: lib/getopt.c:718 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: ËÌÀÞ `--%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n" - -#: lib/getopt.c:723 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: ËÌÀÞ `%c%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n" - -#: lib/getopt.c:741 lib/getopt.c:914 -#, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s: ËÌÀÞ `%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ c ÁÒÇÕÍÅÎÔÏÍ\n" - -#: lib/getopt.c:770 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `--%s'\n" - -#: lib/getopt.c:774 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `%c%s'\n" - -#: lib/getopt.c:800 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÙÊ ËÌÀÞ -- %c\n" - -#: lib/getopt.c:803 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: ÎÅ×ÅÒÎÙÊ ËÌÀÞ -- %c\n" - -#: lib/getopt.c:833 lib/getopt.c:963 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: ËÌÀÞ %c ÄÏÌÖÅÎ ÂÙ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ c ÁÒÇÕÍÅÎÔÏÍ\n" - -#: lib/getopt.c:880 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "%s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `-W %s'\n" - -#: lib/getopt.c:898 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: ËÌÀÞ `-W %s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n" - -#: lib/regex.c:1367 -msgid "Success" -msgstr "õÓÐÅÈ" - -#: lib/regex.c:1370 -msgid "No match" -msgstr "óÏ×ÐÁÄÅÎÉÊ ÎÅÔ" - -#: lib/regex.c:1373 -msgid "Invalid regular expression" -msgstr "îÅ×ÅÒÎÏÅ ÒÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ" - -#: lib/regex.c:1376 -msgid "Invalid collation character" -msgstr "îÅÄÏÐÕÓÔÉÍÙÊ ÄÌÑ ÓÏÒÔÉÒÏ×ËÉ ÓÉÍ×ÏÌ" - -#: lib/regex.c:1379 -msgid "Invalid character class name" -msgstr "îÅ×ÅÒÎÏÅ ÉÍÑ ËÌÁÓÓÁ ÓÉÍ×ÏÌÁ" - -#: lib/regex.c:1382 -msgid "Trailing backslash" -msgstr "ïÂÒÁÔÎÁÑ ËÏÓÁÑ ÞÅÒÔÁ ÓÔÏÉÔ ÐÏÓÌÅÄÎÅÊ" - -#: lib/regex.c:1385 -msgid "Invalid back reference" -msgstr "îÅ×ÅÒÎÁÑ ÓÓÙÌËÁ" - -#: lib/regex.c:1388 -msgid "Unmatched [ or [^" -msgstr "îÅÐÁÒÎÁÑ [ ÉÌÉ [^" - -#: lib/regex.c:1391 -msgid "Unmatched ( or \\(" -msgstr "îÅÐÁÒÎÁÑ ( ÉÌÉ \\(" - -#: lib/regex.c:1394 -msgid "Unmatched \\{" -msgstr "îÅÐÁÒÎÁÑ \\{" - -#: lib/regex.c:1397 -msgid "Invalid content of \\{\\}" -msgstr "îÅ×ÅÒÎÏÅ ÓÏÄÅÒÖÉÍÏÅ \\{\\}" - -#: lib/regex.c:1400 -msgid "Invalid range end" -msgstr "îÅ×ÅÒÎÙÊ ÎÉÖÎÉÊ ÐÒÅÄÅÌ" - -#: lib/regex.c:1403 -msgid "Memory exhausted" -msgstr "ïÐÅÒÁÔÉ×ÎÁÑ ÐÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ" - -#: lib/regex.c:1406 -msgid "Invalid preceding regular expression" -msgstr "îÅ×ÅÒÎÏÅ ÐÒÅÄÛÅÓÔ×ÕÀÝÅÅ ÒÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ" - -#: lib/regex.c:1409 -msgid "Premature end of regular expression" -msgstr "ðÒÅÖÄÅ×ÒÅÍÅÎÎÙÊ ËÏÎÅà ÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ" - -#: lib/regex.c:1412 -msgid "Regular expression too big" -msgstr "òÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ ÓÌÉÛËÏÍ ×ÅÌÉËÏ" - -#: lib/regex.c:1415 -msgid "Unmatched ) or \\)" -msgstr "îÅÐÁÒÎÁÑ ) ÉÌÉ \\)" - -#: lib/regex.c:8034 -msgid "No previous regular expression" -msgstr "òÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ ÎÅ ÂÙÌÏ ÚÁÄÁÎÏ ÒÁÎØÛÅ" - -#: lib/xmalloc.c:63 -msgid "memory exhausted" -msgstr "ÐÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ" - -#: src/analyze.c:809 src/diff.c:1283 -#, c-format -msgid "Files %s and %s differ\n" -msgstr "æÁÊÌÙ %s É %s ÒÁÚÌÉÞÁÀÔÓÑ\n" - -#: src/analyze.c:812 -#, c-format -msgid "Binary files %s and %s differ\n" -msgstr "ä×ÏÉÞÎÙÅ ÆÁÊÌÙ %s É %s ÒÁÚÌÉÞÁÀÔÓÑ\n" - -#: src/analyze.c:1058 src/diff3.c:1413 src/util.c:526 -msgid "No newline at end of file" -msgstr "÷ ËÏÎÃÅ ÆÁÊÌÁ ÎÅÔ ÎÏ×ÏÊ ÓÔÒÏËÉ" - -#: src/cmp.c:43 -msgid "Written by Torbjorn Granlund and David MacKenzie." -msgstr "á×ÔÏÒÙ Torbjorn Granlund É David MacKenzie." - -#: src/cmp.c:118 src/diff.c:817 src/diff3.c:427 src/sdiff.c:168 -#, c-format -msgid "Try `%s --help' for more information." -msgstr "ðÏÐÒÏÂÕÊÔÅ `%s --help' ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÂÏÌÅÅ ÐÏÄÒÏÂÎÏÇÏ ÏÐÉÓÁÎÉÑ." - -#: src/cmp.c:137 -#, c-format -msgid "invalid --ignore-initial value `%s'" -msgstr "ÎÅÄÏÐÕÓÔÉÍÏÅ ÚÎÁÞÅÎÉÅ --ignore-initial `%s'" - -#: src/cmp.c:146 -msgid "options -l and -s are incompatible" -msgstr "ËÌÀÞÉ -l É -s ÎÅÓÏ×ÍÅÓÔÉÍÙ" - -#: src/cmp.c:154 src/diff.c:826 src/diff3.c:435 src/sdiff.c:177 -#: src/sdiff.c:313 src/sdiff.c:320 src/sdiff.c:910 src/util.c:194 -#: src/util.c:286 src/util.c:293 -msgid "write failed" -msgstr "ÚÁÐÉÓØ ÎÅÕÓÐÅÛÎÁ" - -#: src/cmp.c:156 src/diff.c:828 src/diff.c:1354 src/diff3.c:437 -#: src/sdiff.c:179 -msgid "standard output" -msgstr "ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ" - -#: src/cmp.c:160 -msgid "-b --print-bytes Print differing bytes." -msgstr "-b --print-bytes ÷Ù×ÏÄÉÔØ ÒÁÚÌÉÞÁÀÝÉÅÓÑ ÂÁÊÔÙ." - -#: src/cmp.c:161 -msgid "-i SKIP --ignore-initial=SKIP Skip the first SKIP bytes of input." -msgstr "" -"-i î --ignore-initial=î éÇÎÏÒÉÒÏ×ÁÔØ ÒÁÚÌÉÞÉÑ × ÐÅÒ×ÙÈ î ÂÁÊÔÁÈ ××ÏÄÁ." - -#: src/cmp.c:162 -msgid "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2" -msgstr "-i î1:î2 --ignore-initial=î1:î2" - -#: src/cmp.c:163 -msgid "" -" Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2." -msgstr "ðÒÏÐÕÓÔÉÔØ ÐÅÒ×ÙÅ î1 ÂÁÊÔ ÆÁÊÌÁ æáêì1 É ÐÅÒ×ÙÅ î2 ÂÁÊÔ ÆÁÊÌÁ æáêì2." - -#: src/cmp.c:164 -msgid "-l --verbose Output byte numbers and values of all differing bytes." -msgstr "-l --verbose ÷Ù×ÏÄÉÔØ ÎÏÍÅÒÁ É ÚÎÁÞÅÎÉÑ ×ÓÅÈ ÒÁÚÌÉÞÁÀÝÉÈÓÑ ÂÁÊÔ." - -#: src/cmp.c:165 -msgid "-n LIMIT --bytes=LIMIT Compare at most LIMIT bytes." -msgstr "-n ðòåäåì --bytes=ðòåäåì óÒÁ×ÎÉ×ÁÔØ ÎÅ ÂÏÌÅÅ ÕËÁÚÁÎÎÏÇÏ ÞÉÓÌÁ ÂÁÊÔ." - -#: src/cmp.c:166 -msgid "-s --quiet --silent Output nothing; yield exit status only." -msgstr "" -"-s --quiet --silent îÅ ×Ù×ÏÄÉÔØ, ÔÏÌØËÏ ÓÏÏÂÝÉÔØ ×ÏÚ×ÒÁÝÁÅÍÏÅ ÚÎÁÞÅÎÉÅ." - -#: src/cmp.c:167 src/diff.c:904 src/diff3.c:455 src/sdiff.c:204 -msgid "-v --version Output version info." -msgstr "-v --version ðÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ É ×ÙÊÔÉ." - -#: src/cmp.c:168 src/diff.c:905 src/diff3.c:456 src/sdiff.c:205 -msgid "--help Output this help." -msgstr "--help ðÏËÁÚÁÔØ ÜÔÕ ÓÐÒÁ×ËÕ É ×ÙÊÔÉ." - -#: src/cmp.c:177 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n" -msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþ]... æáêì1 [æáêì2 [î1 [î2]]]\n" - -#: src/cmp.c:179 -msgid "Compare two files byte by byte." -msgstr "ðÏÂÁÊÔÏ×Ï ÓÒÁ×ÎÉ×ÁÅÔ Ä×Á ÆÁÊÌÁ." - -#: src/cmp.c:183 -msgid "SKIP1 and SKIP2 are the number of bytes to skip in each file." -msgstr "î1 É î2 -- ÜÔÏ ÞÉÓÌÏ ÂÁÊÔ, ËÏÔÏÒÙÅ ÓÌÅÄÕÅÔ ÐÒÏÐÕÓÔÉÔØ × ËÁÖÄÏÍ ÆÁÊÌÅ." - -#: src/cmp.c:184 -msgid "" -"SKIP values may be followed by the following multiplicative suffixes:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y." -msgstr "" -"ë ÚÎÁÞÅÎÉÑÍ î ÍÏÖÎÏ ÐÒÉÐÉÓÙ×ÁÔØ ÏÄÉÎ ÉÚ ÓÌÅÄÕÀÝÉÈ ÍÎÏÖÉÔÅÌØÎÙÈ ÓÕÆÆÉËÓÏ×:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, É ÔÁË ÄÁÌÅÅ ÄÌÑ T, P, E, Z, Y." - -#: src/cmp.c:187 -msgid "If a FILE is `-' or missing, read standard input." -msgstr "åÓÌÉ æáêì ÎÅ ÚÁÄÁÎ ÉÌÉ ÚÁÄÁÎ ËÁË `-', ÞÉÔÁÅÔ ÓÔÁÎÄÁÒÔÎÙÊ ××ÏÄ." - -#: src/cmp.c:188 src/diff.c:911 src/diff3.c:475 src/sdiff.c:223 -msgid "Report bugs to ." -msgstr "ï ÏÛÉÂËÁÈ ÓÏÏÂÝÁÊÔÅ ." - -#: src/cmp.c:231 -#, c-format -msgid "invalid --bytes value `%s'" -msgstr "ÎÅÄÏÐÕÓÔÉÍÏÅ ÚÎÁÞÅÎÉÅ --bytes `%s'" - -#: src/cmp.c:258 src/diff.c:734 src/diff3.c:333 src/sdiff.c:558 -#, c-format -msgid "missing operand after `%s'" -msgstr "ÐÒÏÐÕÝÅÎ ÏÐÅÒÁÎÄ ÐÏÓÌÅ `%s'" - -#: src/cmp.c:270 src/diff.c:736 src/diff3.c:335 src/sdiff.c:560 -#, c-format -msgid "extra operand `%s'" -msgstr "ÉÚÌÉÛÎÉÊ ÏÐÅÒÁÎÄ `%s'" - -#: src/cmp.c:477 -#, c-format -msgid "%s %s differ: byte %s, line %s\n" -msgstr "%s %s ÒÁÚÌÉÞÁÀÔÓÑ: ÂÁÊÔ %s, ÓÔÒÏËÁ %s\n" - -#: src/cmp.c:495 -#, c-format -msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n" -msgstr "%s %s ÒÁÚÌÉÞÁÀÔÓÑ: ÂÁÊÔ %s, ÓÔÒÏËÁ %s ÒÁ×ÅÎ %3o %s %3o %s\n" - -#: src/cmp.c:543 -#, c-format -msgid "cmp: EOF on %s\n" -msgstr "cmp: ËÏÎÅÊ ÆÁÊÌÁ × %s\n" - -#: src/diff.c:41 -msgid "" -"Written by Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman, and Len Tower." -msgstr "" -"á×ÔÏÒÙ Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman, É Len Tower." - -#: src/diff.c:322 -#, c-format -msgid "invalid context length `%s'" -msgstr "ÎÅÄÏÐÕÓÔÉÍÁÑ ÄÌÉÎÁ ËÏÎÔÅËÓÔÁ `%s'" - -#: src/diff.c:405 -msgid "pagination not supported on this host" -msgstr "ÒÁÚÂÉÅÎÉÅ ÎÁ ÓÔÒÁÎÉÃÙ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ ÎÁ ÄÁÎÎÏÊ ÍÁÛÉÎÅ" - -#: src/diff.c:420 src/diff3.c:315 -msgid "too many file label options" -msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ËÌÀÞÅÊ ÚÁÄÁÀÝÉÈ ÍÅÔËÉ ÆÁÊÌÏ×" - -#: src/diff.c:498 -#, c-format -msgid "invalid width `%s'" -msgstr "ÎÅÄÏÐÕÓÔÉÍÁÑ ÛÉÒÉÎÁ `%s'" - -#: src/diff.c:502 -msgid "conflicting width options" -msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ËÌÀÞÉ ÚÁÄÁÎÉÑ ÛÉÒÉÎÙ" - -#: src/diff.c:526 -#, c-format -msgid "invalid horizon length `%s'" -msgstr "ÎÅÄÏÐÕÓÔÉÍÁÑ ÄÌÉÎÁ ÇÏÒÉÚÏÎÔÁ `%s'" - -#: src/diff.c:629 -#, c-format -msgid "`-%ld' option is obsolete; use `-%c %ld'" -msgstr "ËÌÀÞ `-%ld' ÕÓÔÁÒÅÌ; ÉÓÐÏÌØÚÕÊÔÅ `-%c %ld'" - -#: src/diff.c:641 -#, c-format -msgid "`-%ld' option is obsolete; omit it" -msgstr "ËÌÀÞ `-%ld' ÕÓÔÁÒÅÌ; ÏÐÕÓËÁÊÔÅ ÅÇÏ" - -#: src/diff.c:709 -msgid "--from-file and --to-file both specified" -msgstr "ÎÅÏÂÈÏÄÉÍÏ ÚÁÄÁÔØ ËÁË --from-file, ÔÁË É --to-file" - -#: src/diff.c:832 -msgid "Compare files line by line." -msgstr "ðÏÓÔÒÏÞÎÏ ÓÒÁ×ÎÉ×ÁÅÔ Ä×Á ÆÁÊÌÁ." - -#: src/diff.c:834 -msgid "-i --ignore-case Ignore case differences in file contents." -msgstr "-i --ignore-case éÇÎÏÒÉÒÏ×ÁÔØ ÒÅÇÉÓÔÒ ÂÕË× × ÓÏÄÅÒÖÉÍÏÍ ÆÁÊÌÏ×." - -#: src/diff.c:835 -msgid "--ignore-file-name-case Ignore case when comparing file names." -msgstr "--ignore-file-name-case éÇÎÏÒÉÒÏ×ÁÔØ ÒÅÇÉÓÔÒ ÂÕË× × ÉÍÅÎÁÈ ÆÁÊÌÏ×." - -#: src/diff.c:836 -msgid "--no-ignore-file-name-case Consider case when comparing file names." -msgstr "--no-ignore-file-name-case õÞÉÔÙ×ÁÔØ ÒÅÇÉÓÔÒ ÂÕË× × ÉÍÅÎÁÈ ÆÁÊÌÏ×." - -#: src/diff.c:837 src/sdiff.c:186 -msgid "-E --ignore-tab-expansion Ignore changes due to tab expansion." -msgstr "" -"-E --ignore-tab-expansion éÇÎÏÒÉÒÏ×ÁÔØ ÉÚÍÅÎÅÎÉÑ, ×ÙÚ×ÁÎÎÙÅ ÒÁÓËÒÙÔÉÅÍ " -"ÔÁÂÕÌÑÃÉÉ." - -#: src/diff.c:838 src/sdiff.c:187 -msgid "-b --ignore-space-change Ignore changes in the amount of white space." -msgstr "" -"-b --ignore-space-change éÇÎÏÒÉÒÏ×ÁÔØ ÉÚÍÅÎÅÎÉÑ ÞÉÓÌÁ ÐÒÏÂÅÌØÎÙÈ ÓÉÍ×ÏÌÏ×." - -#: src/diff.c:839 -msgid "-w --ignore-all-space Ignore all white space." -msgstr "-w --ignore-all-space éÇÎÏÒÉÒÏ×ÁÔØ ×ÓÅ ÐÒÏÂÅÌØÎÙÅ ÓÉÍ×ÏÌÙ." - -#: src/diff.c:840 src/sdiff.c:189 -msgid "-B --ignore-blank-lines Ignore changes whose lines are all blank." -msgstr "-B --ignore-blank-lines éÇÎÏÒÉÒÏ×ÁÔØ ÉÚÍÅÎÅÎÉÑ ÞÉÓÌÁ ÐÕÓÔÙÈ ÓÔÒÏË." - -#: src/diff.c:841 src/sdiff.c:190 -msgid "" -"-I RE --ignore-matching-lines=RE Ignore changes whose lines all match RE." -msgstr "" -"-I ò÷ --ignore-matching-lines=ò÷ éÇÎÏÒÉÒÏ×ÁÔØ ÉÚÍÅÎÅÎÉÑ, ÓÔÒÏËÉ ËÏÔÏÒÙÈ\n" -" ÐÏÌÎÏÓÔØÀ ÓÏÏÔ×ÅÔÓÔ×ÕÀÔ ÚÁÄÁÎÎÏÍÕ ÒÅÇÕÌÑÒÎÏÍÕ " -"×ÙÒÁÖÅÎÉÀ" - -#: src/diff.c:842 src/sdiff.c:191 -msgid "--strip-trailing-cr Strip trailing carriage return on input." -msgstr "--strip-trailing-cr õÄÁÌÉÔØ ÎÁ ×Ù×ÏÄÅ ÚÁ×ÅÒÛÁÀÝÉÊ ×ÏÚ×ÒÁÔ ËÁÒÅÔËÉ." - -#: src/diff.c:844 -msgid "--binary Read and write data in binary mode." -msgstr "--binary þÉÔÁÔØ É ÚÁÐÉÓÙ×ÁÔØ ÆÁÊÌÙ × Ä×ÏÉÞÎÏÊ ÆÏÒÍÅ." - -#: src/diff.c:846 src/diff3.c:451 src/sdiff.c:192 -msgid "-a --text Treat all files as text." -msgstr "-a --text óÞÉÔÁÔØ ×ÓÅ ÆÁÊÌÙ ÔÅËÓÔÏ×ÙÍÉ." - -#: src/diff.c:848 -msgid "" -"-c -C NUM --context[=NUM] Output NUM (default 3) lines of copied " -"context.\n" -"-u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified " -"context.\n" -" --label LABEL Use LABEL instead of file name.\n" -" -p --show-c-function Show which C function each change is in.\n" -" -F RE --show-function-line=RE Show the most recent line matching RE." -msgstr "" -"-c -C þéóìï --context[=þéóìï] ëÏÐÉÒÏ×ÁÔØ þéóìï (ÐÏ ÕÍÏÌÞÁÎÉÀ 3) ÓÔÒÏË " -"ËÏÎÔÅËÓÔÁ.\n" -"-u -U þéóìï --unified[=þéóìï] ÷Ù×ÏÄÉÔØ þéóìï (ÐÏ ÕÍÏÌÞÁÎÉÀ 3) ÓÔÒÏË\n" -" ÏÂßÅÄÉÎÅÎÎÏÇÏ ËÏÎÔÅËÓÔÁ.\n" -" -L íåôëá --label íåôëá éÓÐÏÌØÚÏ×ÁÔØ íåôëõ ×ÍÅÓÔÏ ÉÍÅÎÉ ÆÁÊÌÁ.\n" -" -p --show-c-function ðÏËÁÚÙ×ÁÔØ C-ÆÕÎËÃÉÀ, ÓÏÄÅÒÖÁÝÕÀ ÉÚÍÅÎÅÎÉÅ.\n" -" -F ò÷ --show-function-line=ò÷ ðÏËÁÚÙ×ÁÔØ ÐÒÅÄÛÅÓÔ×ÕÀÝÕÀ ÓÔÒÏËÕ, " -"ÓÏ×ÐÁÄÁÀÝÕÀ\n" -" Ó ÚÁÄÁÎÎÙÍ ÒÅÇÕÌÑÒÎÙÍ ×ÙÒÁÖÅÎÉÅÍ." - -#: src/diff.c:853 -msgid "-q --brief Output only whether files differ." -msgstr "-q --brief îÁÐÅÞÁÔÁÔØ ÔÏÌØËÏ ÒÁÚÌÉÞÁÀÔÓÑ ÌÉ ÆÁÊÌÙ." - -#: src/diff.c:854 -msgid "-e --ed Output an ed script." -msgstr "-e --ed ÷Ù×ÏÄÉÔØ ÓÃÅÎÁÒÉÊ ed." - -#: src/diff.c:855 -msgid "--normal Output a normal diff." -msgstr "--normal ÷Ù×ÏÄÉÔØ × ÏÂÙÞÎÏÍ ÆÏÒÍÁÔÅ diff." - -#: src/diff.c:856 -msgid "-n --rcs Output an RCS format diff." -msgstr "-n --rcs ÷Ù×ÏÄÉÔØ × ÆÏÒÍÁÔÅ RCS." - -#: src/diff.c:857 -msgid "" -"-y --side-by-side Output in two columns.\n" -" -W NUM --width=NUM Output at most NUM (default 130) print columns.\n" -" --left-column Output only the left column of common lines.\n" -" --suppress-common-lines Do not output common lines." -msgstr "" -"-y --side-by-side ÷Ù×ÏÄÉÔØ × Ä×Å ËÏÌÏÎËÉ.\n" -" -W þéóìï --width=þéóìï ÷Ù×ÏÄÉÔØ ÍÁËÓÉÍÕÍ ÚÁÄÁÎÎÏÅ þéóìï ÚÎÁËÏ× × " -"ÓÔÒÏËÅ.\n" -" (ÐÏ ÕÍÏÌÞÁÎÉÀ 130)\n" -" --left-column ÷Ù×ÏÄÉÔØ ÔÏÌØËÏ ÌÅ×ÕÀ ËÏÌÏÎËÕ ÏÂÝÉÈ ÓÔÒÏË.\n" -" --suppress-common-lines îÅ ×Ù×ÏÄÉÔØ ÏÂÝÉÅ ÓÔÒÏËÉ." - -#: src/diff.c:861 -msgid "-D NAME --ifdef=NAME Output merged file to show `#ifdef NAME' diffs." -msgstr "" -"-D éíñ --ifdef=éíñ ÷Ù×ÏÄÉÔØ ÚÁÐÌÁÔÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ËÏÎÓÔÒÕËÃÉÀ `#ifdef éíñ'." - -#: src/diff.c:862 -msgid "" -"--GTYPE-group-format=GFMT Similar, but format GTYPE input groups with GFMT." -msgstr "" -"--çôéð-group-format=çæíô áÎÁÌÏÇÉÞÎÏ, ÎÏ ÆÏÒÍÁÔÉÒÏ×ÁÔØ ×ÈÏÄÎÙÅ ÇÒÕÐÐÙ ÔÉÐÁ " -"çôéð\n" -" × ÓÏÏÔ×ÅÔÓÔ×ÉÉ Ó ÆÏÒÍÁÔÏÍ çæíô." - -#: src/diff.c:863 -msgid "--line-format=LFMT Similar, but format all input lines with LFMT." -msgstr "" -"--line-format=óæíô áÎÁÌÏÇÉÞÎÏ, ÎÏ ÆÏÒÍÁÔÉÒÏ×ÁÔØ ×ÓÅ ×ÈÏÄÎÙÅ ÓÔÒÏËÉ Ó óæíô." - -#: src/diff.c:864 -msgid "" -"--LTYPE-line-format=LFMT Similar, but format LTYPE input lines with LFMT." -msgstr "" -"--óôéð-group-format=óæíô áÎÁÌÏÇÉÞÎÏ, ÎÏ ÆÏÒÍÁÔÉÒÏ×ÁÔØ ×ÈÏÄÎÙÅ ÓÔÒÏËÉ ÔÉÐÁ " -"óôéð\n" -" × ÓÏÏÔ×ÅÔÓÔ×ÉÉ Ó ÆÏÒÍÁÔÏÍ óæíô." - -#: src/diff.c:865 -msgid " LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'." -msgstr "" -" óôéð ÍÏÖÅÔ ÂÙÔØ `old', `new', ÉÌÉ `unchanged', çôéð -- ÔÏ ÖÅ É `changed'." - -#: src/diff.c:866 -msgid "" -" GFMT may contain:\n" -" %< lines from FILE1\n" -" %> lines from FILE2\n" -" %= lines common to FILE1 and FILE2\n" -" %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" -" LETTERs are as follows for new group, lower case for old group:\n" -" F first line number\n" -" L last line number\n" -" N number of lines = L-F+1\n" -" E F-1\n" -" M L+1" -msgstr "" -" çæíô ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ:\n" -" %< ÓÔÒÏËÉ ÉÚ æáêìá1\n" -" %> ÓÔÒÏËÉ ÉÚ æáêìá2\n" -" %= ÓÔÒÏËÉ, ÏÂÝÉÅ ÄÌÑ æáêìá1 É æáêìá2\n" -" %[-][ûéòéîá][.[ôïþî]]{doxX}âõë÷á ÆÏÒÍÁÔ ÄÌÑ âõë÷ù × ÓÔÉÌÅ printf\n" -" âõë÷á ÐÒÉÎÉÍÁÅÔ ÓÌÅÄÕÀÝÉÅ ÚÎÁÞÅÎÉÑ ÄÌÑ ÎÏ×ÙÈ ÇÒÕÐÐ, ÄÌÑ ÓÔÁÒÙÈ " -"ÓÔÒÏÞÎÙÅ:\n" -" F ÎÏÍÅÒ ÐÅÒ×ÏÊ ÓÔÒÏËÉ\n" -" L ÎÏÍÅÒ ÐÏÓÌÅÄÎÅÊ ÓÔÒÏËÉ\n" -" N ÞÉÓÌÏ ÓÔÒÏË = L-F+1\n" -" E F-1\n" -" M L+1" - -#: src/diff.c:877 -msgid "" -" LFMT may contain:\n" -" %L contents of line\n" -" %l contents of line, excluding any trailing newline\n" -" %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number" -msgstr "" -" óæíô ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ:\n" -" %L ÓÏÄÅÒÖÉÍÏÅ ÓÔÒÏËÉ\n" -" %l ÓÏÄÅÒÖÉÍÏÅ ÓÔÒÏËÉ, ÉÓËÌÀÞÁÑ ×ÓÅ ÎÏ×ÙÅ ÓÔÒÏËÉ × ËÏÎÃÅ\n" -" %[-][ûéòéîá][.[ôïþî]]{doxX}n ÆÏÒÍÁÔ ÎÏÍÅÒÁ ×ÈÏÄÎÏÊ ÓÔÒÏËÉ × ÓÔÉÌÅ printf" - -#: src/diff.c:881 -msgid "" -" Either GFMT or LFMT may contain:\n" -" %% %\n" -" %c'C' the single character C\n" -" %c'\\OOO' the character with octal code OOO" -msgstr "" -" ïÂÁ çæíô É óæíô ÍÏÇÕÔ ÓÏÄÅÒÖÁÔØ:\n" -" %% %\n" -" %c'ó' ÏÄÉÎ ÓÉÍ×ÏÌ ó\n" -" %c'\\OOO' ÏÄÉÎ ÓÉÍ×ÏÌ Ó ×ÏÓØÍÅÒÉÞÎÙÍ ËÏÄÏÍ OOO" - -#: src/diff.c:886 -msgid "-l --paginate Pass the output through `pr' to paginate it." -msgstr "" -"-l --paginate îÁÐÒÁ×ÉÔØ ×Ù×ÏÄ ÐÒÏÇÒÁÍÍÅ `pr' ÄÌÑ ÒÁÚÂÉÅÎÉÑ ÎÁ ÓÔÒÁÎÉÃÙ." - -#: src/diff.c:887 src/sdiff.c:198 -msgid "-t --expand-tabs Expand tabs to spaces in output." -msgstr "-t --expand-tabs òÁÓËÒÙ×ÁÔØ ÐÒÉ ×Ù×ÏÄÅ ÓÉÍ×ÏÌÙ ÔÁÂÕÌÑÃÉÉ × ÐÒÏÂÅÌÙ." - -#: src/diff.c:888 src/diff3.c:452 -msgid "-T --initial-tab Make tabs line up by prepending a tab." -msgstr "" -"-T --initial-tab ÷ÙÒÁ×ÎÉ×ÁÔØ ÔÁÂÕÌÑÃÉÀ ÄÏÂÁ×ÌÑÑ × ÎÁÞÁÌÏ ÓÉÍ×ÏÌ ÔÁÂÕÌÑÃÉÉ." - -#: src/diff.c:890 -msgid "-r --recursive Recursively compare any subdirectories found." -msgstr "-r --recursive òÅËÕÒÓÉ×ÎÏ ÓÒÁ×ÎÉ×ÁÔØ ÐÏÄËÁÔÁÌÏÇÉ." - -#: src/diff.c:891 -msgid "-N --new-file Treat absent files as empty." -msgstr "-N --new-file ÷ÏÓÐÒÉÎÉÍÁÔØ ÎÅÓÕÝÅÓÔ×ÕÀÝÉÅ ÆÁÊÌÙ ËÁË ÐÕÓÔÙÅ." - -#: src/diff.c:892 -msgid "--unidirectional-new-file Treat absent first files as empty." -msgstr "" -"--unidirectional-new-file ÷ÏÓÐÒÉÎÉÍÁÔØ ÎÅÓÕÝÅÓÔ×ÕÀÝÉÅ ÐÅÒ×ÙÅ ÆÁÊÌÙ ËÁË " -"ÐÕÓÔÙÅ." - -#: src/diff.c:893 -msgid "-s --report-identical-files Report when two files are the same." -msgstr "-s --report-identical-files óÏÏÂÝÁÔØ Ï ÏÄÉÎÁËÏ×ÙÈ ÆÁÊÌÁÈ." - -#: src/diff.c:894 -msgid "-x PAT --exclude=PAT Exclude files that match PAT." -msgstr "" -"-x ïâòáúåã --exclude=ïâòáúåã éÓËÌÀÞÉÔØ ÆÁÊÌÙ, ÞØÉ ÉÍÅÎÁ ÓÏ×ÐÁÄÁÀÔ Ó " -"ïâòáúãïí." - -#: src/diff.c:895 -msgid "" -"-X FILE --exclude-from=FILE Exclude files that match any pattern in FILE." -msgstr "" -"-X æáêì --exclude-from=æáêì éÓËÌÀÞÉÔØ ÆÁÊÌÙ, ÞØÉ ÉÍÅÎÁ ÓÏ×ÐÁÄÁÀÔ Ó ËÁËÉÍ-" -"ÌÉÂÏ\n" -" ÏÂÒÁÚÃÏÍ ÉÚ ÚÁÐÉÓÁÎÎÙÈ × æáêìå." - -#: src/diff.c:896 -msgid "" -"-S FILE --starting-file=FILE Start with FILE when comparing directories." -msgstr "-S æáêì --starting-file=æáêì ðÒÉ ÓÒÁ×ÎÅÎÉÉ ËÁÔÁÌÏÇÏ× ÎÁÞÁÔØ Ó æáêìá." - -#: src/diff.c:897 -msgid "" -"--from-file=FILE1 Compare FILE1 to all operands. FILE1 can be a directory." -msgstr "" -"--from-file=æáêì1 óÒÁ×ÎÉÔØ æáêì1 ÓÏ ×ÓÅÍÉ ÏÐÅÒÁÎÄÁÍÉ.\n" -" æáêì1 ÍÏÖÅÔ ÂÙÔØ ËÁÔÁÌÏÇÏÍ." - -#: src/diff.c:898 -msgid "" -"--to-file=FILE2 Compare all operands to FILE2. FILE2 can be a directory." -msgstr "" -"--to-file=æáêì2 óÒÁ×ÎÉÔØ ×ÓÅ ÏÐÅÒÁÎÄÙ Ó æáêìïí2. æáêì2 ÍÏÖÅÔ ÂÙÔØ " -"ËÁÔÁÌÏÇÏÍ." - -#: src/diff.c:900 -msgid "--horizon-lines=NUM Keep NUM lines of the common prefix and suffix." -msgstr "" -"--horizon-lines=þéóìï ÷Ù×ÏÄÉÔØ þéóìï ÏÂÝÉÈ ÓÔÒÏË ÄÏ É ÐÏÓÌÅ ÒÁÚÌÉÞÁÀÝÉÈÓÑ." - -#: src/diff.c:901 src/sdiff.c:200 -msgid "-d --minimal Try hard to find a smaller set of changes." -msgstr "-d --minimal ðÙÔÁÔØÓÑ ÎÁÊÔÉ ÎÁÉÍÅÎØÛÉÊ ÎÁÂÏÒ ÉÚÍÅÎÅÎÉÊ." - -#: src/diff.c:902 -msgid "" -"--speed-large-files Assume large files and many scattered small changes." -msgstr "" -"--speed-large-files ðÒÅÄÐÏÌÁÇÁÔØ, ÞÔÏ ÆÁÊÌÙ ÂÏÌØÛÉÅ ÓÏ ÍÎÏÇÉÍÉ\n" -" ÒÁÚÂÒÏÓÁÎÎÙÍÉ ÍÅÌËÉÍÉ ÉÚÍÅÎÅÎÉÑÍÉ." - -#: src/diff.c:907 -msgid "" -"FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'." -msgstr "" -"æáêìù ÜÔÏ `æáêì1 æáêì2', ÉÌÉ `ëáôáìïç1 ëáôáìïç2', ÉÌÉ `ëáôáìïç æáêì...',\n" -"ÉÌÉ `æáêì... ëáôáìïç'." - -#: src/diff.c:908 -msgid "" -"If --from-file or --to-file is given, there are no restrictions on FILES." -msgstr "åÓÌÉ ÚÁÄÁÎ --from-file ÉÌÉ --to-file, ÎÁ æáêìù ÎÅÔ ÏÇÒÁÎÉÞÅÎÉÊ." - -#: src/diff.c:909 src/diff3.c:474 src/sdiff.c:222 -msgid "If a FILE is `-', read standard input." -msgstr "åÓÌÉ æáêì ÚÁÄÁÎ ËÁË `-', ÞÉÔÁÅÔ ÓÔÁÎÄÁÒÔÎÙÊ ××ÏÄ." - -#: src/diff.c:920 -#, c-format -msgid "Usage: %s [OPTION]... FILES\n" -msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþ]... æáêìù\n" - -#: src/diff.c:949 -#, c-format -msgid "conflicting %s option value `%s'" -msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÏÅ ÚÎÁÞÅÎÉÅ %s ÄÌÑ ËÌÀÞÁ `%s'" - -#: src/diff.c:962 -msgid "conflicting output style options" -msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ËÌÀÞÉ ÚÁÄÁÎÉÑ ÓÔÉÌÑ ×Ù×ÏÄÁ" - -#: src/diff.c:976 -msgid "regular empty file" -msgstr "ÏÂÙÞÎÙÊ ÐÕÓÔÏÊ ÆÁÊÌ" - -#: src/diff.c:976 -msgid "regular file" -msgstr "ÏÂÙÞÎÙÊ ÆÁÊÌ" - -#: src/diff.c:978 -msgid "directory" -msgstr "ËÁÔÁÌÏÇ" - -#: src/diff.c:981 -msgid "block special file" -msgstr "ÓÐÅÃÉÁÌØÎÙÊ ÆÁÊÌ Ó ÐÏÂÌÏÞÎÙÍ ÄÏÓÔÕÐÏÍ" - -#: src/diff.c:984 -msgid "character special file" -msgstr "ÓÐÅÃÉÁÌØÎÙÊ ÆÁÊÌ Ó ÐÏÓÉÍ×ÏÌØÎÙÍ ÄÏÓÔÕÐÏÍ" - -#: src/diff.c:987 -msgid "fifo" -msgstr "ÏÞÅÒÅÄØ" - -#: src/diff.c:991 -msgid "socket" -msgstr "ÓÏËÅÔ" - -#: src/diff.c:994 -msgid "message queue" -msgstr "ÏÞÅÒÅÄØ ÓÏÏÂÝÅÎÉÊ" - -#: src/diff.c:997 -msgid "semaphore" -msgstr "ÓÅÍÁÆÏÒ" - -#: src/diff.c:1000 -msgid "shared memory object" -msgstr "ÒÁÚÄÅÌÑÅÍÙÊ ÏÂßÅËÔ" - -#: src/diff.c:1003 -msgid "typed memory object" -msgstr "" - -#: src/diff.c:1006 -msgid "weird file" -msgstr "ÓÔÒÁÎÎÙÊ ÆÁÊÌ" - -#: src/diff.c:1070 src/diff.c:1256 -#, c-format -msgid "Only in %s: %s\n" -msgstr "ôÏÌØËÏ × %s: %s\n" - -#: src/diff.c:1193 -msgid "cannot compare `-' to a directory" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÒÁ×ÎÉÔØ `-' Ó ËÁÔÁÌÏÇÏÍ" - -#: src/diff.c:1220 -msgid "-D option not supported with directories" -msgstr "-D option not supported with directories" - -#: src/diff.c:1229 -#, c-format -msgid "Common subdirectories: %s and %s\n" -msgstr "ïÂÝÉÅ ÐÏÄËÁÔÁÌÏÇÉ: %s É %s\n" - -#: src/diff.c:1266 -#, c-format -msgid "File %s is a %s while file %s is a %s\n" -msgstr "æÁÊÌ %s ÜÔÏ %s, ÔÏÇÄÁ ËÁË ÆÁÊÌ %s -- %s\n" - -#: src/diff.c:1345 -#, c-format -msgid "Files %s and %s are identical\n" -msgstr "æÁÊÌÙ %s É %s ÉÄÅÎÔÉÞÎÙ\n" - -#: src/diff3.c:26 -msgid "Written by Randy Smith." -msgstr "á×ÔÏÒ Randy Smith." - -#: src/diff3.c:328 -msgid "incompatible options" -msgstr "ÎÅÓÏ×ÍÅÓÔÉÍÙÅ ËÌÀÞÉ" - -#: src/diff3.c:368 -msgid "`-' specified for more than one input file" -msgstr "`-' ÚÁÄÁÎ ÄÌÑ ÂÏÌÅÅ ÏÄÎÏÇÏ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ" - -#: src/diff3.c:408 src/diff3.c:1232 src/diff3.c:1645 src/diff3.c:1700 -#: src/sdiff.c:305 src/sdiff.c:879 src/sdiff.c:890 -msgid "read failed" -msgstr "ÞÔÅÎÉÅ ÎÅÕÓÐÅÛÎÏ" - -#: src/diff3.c:441 -msgid "-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE." -msgstr "" -"-e --ed ÷Ù×ÏÄÉÔØ ÎÅ ÏÂßÅÄÉÎÅÎÎÙÅ ÉÚÍÅÎÅÎÉÑ × óôïòïí-æáêìå ÉÚ ÷áûåçï-æáêìá\n" -" × íïê-æáêì." - -#: src/diff3.c:442 -msgid "-E --show-overlap Output unmerged changes, bracketing conflicts." -msgstr "" -"-E --show-overlap ÷Ù×ÏÄÉÔØ ÎÅ ÏÂßÅÄÉÎÅÎÎÙÅ ÉÚÍÅÎÅÎÉÑ,\n" -" ÚÁËÌÀÞÁÑ ËÏÎÆÌÉËÔÎÙÅ ÍÅÓÔÁ × ÓËÏÂËÉ." - -#: src/diff3.c:443 -msgid "-A --show-all Output all changes, bracketing conflicts." -msgstr "" -"-A --show-all ÷Ù×ÏÄÉÔØ ×ÓÅ ÉÚÍÅÎÅÎÉÑ, ÚÁËÌÀÞÁÑ ËÏÎÆÌÉËÔÎÙÅ ÍÅÓÔÁ × ÓËÏÂËÉ." - -#: src/diff3.c:444 -msgid "-x --overlap-only Output overlapping changes." -msgstr "-x --overlap-only ÷Ù×ÏÄÉÔØ ÐÅÒÅËÒÙ×ÁÀÝÉÅÓÑ ÉÚÍÅÎÅÎÉÑ." - -#: src/diff3.c:445 -msgid "-X Output overlapping changes, bracketing them." -msgstr "-X ÷Ù×ÏÄÉÔØ ÐÅÒÅÓÅËÁÀÝÉÅÓÑ ÉÚÍÅÎÅÎÉÑ, ÚÁËÌÀÞÁÑ ÉÈ × ÓËÏÂËÉ." - -#: src/diff3.c:446 -msgid "-3 --easy-only Output unmerged nonoverlapping changes." -msgstr "-3 --easy-only ÷Ù×ÏÄÉÔØ ÎÅ ÏÂßÅÄÉÎÅÎÎÙÅ ÎÅÐÅÒÅÓÅËÁÀÝÉÅÓÑ ÉÚÍÅÎÅÎÉÑ." - -#: src/diff3.c:448 -msgid "-m --merge Output merged file instead of ed script (default -A)." -msgstr "" -"-m --merge ÷Ù×ÏÄÉÔØ ÏÂßÅÄÉÎÅÎÎÙÊ ÆÁÊÌ ×ÍÅÓÔÏ ÓÃÅÎÁÒÉÑ ed (ÐÏ ÕÍÏÌÞÁÎÉÀ -A)." - -#: src/diff3.c:449 -msgid "-L LABEL --label=LABEL Use LABEL instead of file name." -msgstr "-L íåôëá --label=íåôëá éÓÐÏÌØÚÏ×ÁÔØ íåôëõ ×ÍÅÓÔÏ ÉÍÅÎÉ ÆÁÊÌÁ." - -#: src/diff3.c:450 -msgid "-i Append `w' and `q' commands to ed scripts." -msgstr "-i äÏÂÁ×ÉÔØ ËÏÍÁÎÄÙ `w' É `q' × ËÏÎÅà ÓÃÅÎÁÒÉÑ ed." - -#: src/diff3.c:453 src/sdiff.c:202 -msgid "--diff-program=PROGRAM Use PROGRAM to compare files." -msgstr "" -"--diff-program=ðòïçòáííá éÓÐÏÌØÚÏ×ÁÔØ ÄÌÑ ÓÒÁ×ÎÉÑ ÆÁÊÌÏ× ÕËÁÚÁÎÎÕÀ " -"ðòïçòáííõ." - -#: src/diff3.c:465 -#, c-format -msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n" -msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþ]... íïê-æáêì óôáòùê-æáêì ÷áû-æáêì\n" - -#: src/diff3.c:467 -msgid "Compare three files line by line." -msgstr "ðÏÓÔÒÏÞÎÏ ÓÒÁ×ÎÉ×ÁÅÔ ÔÒÉ ÆÁÊÌÁ." - -#: src/diff3.c:673 -msgid "internal error: screwup in format of diff blocks" -msgstr "×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ: ÐÏ×ÒÅÖÄÅÎÎÙÊ ÆÏÒÍÁÔ ÂÌÏËÏ× ÚÁÐÌÁÔÙ" - -#: src/diff3.c:971 -#, c-format -msgid "%s: diff failed: " -msgstr "%s: ÐÏÉÓË ÒÁÚÌÉÞÉÊ ÎÅÕÓÐÅÛÅÎ: " - -#: src/diff3.c:993 -msgid "internal error: invalid diff type in process_diff" -msgstr "×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ: ÎÅ×ÅÒÎÙÊ ÔÉÐ ÚÁÐÌÁÔÙ × ÆÕÎËÃÉÉ `process_diff'" - -#: src/diff3.c:1018 -msgid "invalid diff format; invalid change separator" -msgstr "ÎÅ×ÅÒÎÙÊ ÆÏÒÍÁÔ ÚÁÐÌÁÔÙ; ÎÅ×ÅÒÎÙÊ ÒÁÚÄÅÌÉÔÅÌØ ÉÚÍÅÎÅÎÉÑ" - -#: src/diff3.c:1242 -msgid "invalid diff format; incomplete last line" -msgstr "ÎÅ×ÅÒÎÙÊ ÆÏÒÍÁÔ ÚÁÐÌÁÔÙ; ÎÅÐÏÌÎÁÑ ÐÏÓÌÅÄÎÑÑ ÓÔÒÏËÁ" - -#: src/diff3.c:1265 src/sdiff.c:273 -#, c-format -msgid "subsidiary program `%s' not executable" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ×ÙÐÏÌÎÉÔØ ×ÓÐÏÍÏÇÁÔÅÌØÎÕÀ ÐÒÏÇÒÁÍÍÁ `%s'" - -#: src/diff3.c:1268 src/sdiff.c:276 src/util.c:298 -#, c-format -msgid "subsidiary program `%s' not found" -msgstr "ÎÅ ÎÁÊÄÅÎÁ ×ÓÐÏÍÏÇÁÔÅÌØÎÁÑ ÐÒÏÇÒÁÍÍÁ `%s'" - -#: src/diff3.c:1272 src/sdiff.c:268 src/util.c:301 -#, c-format -msgid "subsidiary program `%s' failed" -msgstr "ÄÏÞÅÒÎÑÑ ÐÒÏÇÒÁÍÍÁ `%s' ÚÁ×ÅÒÛÉÌÁÓØ ÎÅÕÓÐÅÛÎÏ" - -#: src/diff3.c:1294 -msgid "invalid diff format; incorrect leading line chars" -msgstr "ÎÅ×ÅÒÎÙÊ ÆÏÒÍÁÔ ÚÁÐÌÁÔÙ; ÎÅÐÒÁ×ÌØÎÙÅ ÐÅÒ×ÙÅ ÓÉÍ×ÏÌÙ ÓÔÒÏËÉ" - -#: src/diff3.c:1370 -msgid "internal error: invalid diff type passed to output" -msgstr "×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ: ÎÁ ×ÙÈÏÄ ÐÅÒÅÄÁÎ ÎÅ×ÅÒÎÙÊ ÔÉÐ ÚÁÐÌÁÔÙ" - -#: src/diff3.c:1647 src/diff3.c:1704 -msgid "input file shrank" -msgstr "×ÈÏÄÎÏÊ ÆÁÊÌ ÕÍÅÎØÛÉÌÓÑ" - -#: src/dir.c:162 -#, c-format -msgid "cannot compare file names `%s' and `%s'" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÒÁ×ÎÉÔØ ÉÍÅÎÁ ÆÁÊÌÏ× `%s' É `%s'" - -#: src/sdiff.c:35 -msgid "Written by Thomas Lord." -msgstr "á×ÔÏÒ ôÏÍÁÓ ìÏÒÄ." - -#: src/sdiff.c:183 -msgid "-o FILE --output=FILE Operate interactively, sending output to FILE." -msgstr "-o æáêì --output=æáêì òÁÂÏÔÁÔØ ÉÎÔÅÒÁËÔÉ×ÎÏ, ÚÁÐÉÓÙ×ÁÑ ×Ù×ÏÄ × æáêì." - -#: src/sdiff.c:185 -msgid "-i --ignore-case Consider upper- and lower-case to be the same." -msgstr "-i --ignore-case éÇÎÏÒÉÒÏ×ÁÔØ ÒÅÇÉÓÔÒ ÂÕË×." - -#: src/sdiff.c:188 -msgid "-W --ignore-all-space Ignore all white space." -msgstr "-W --ignore-all-space éÇÎÏÒÉÒÏ×ÁÔØ ×ÓÅ ÐÒÏÂÅÌØÎÙÅ ÓÉÍ×ÏÌÙ." - -#: src/sdiff.c:194 -msgid "-w NUM --width=NUM Output at most NUM (default 130) columns per line." -msgstr "" -"-w þéóìï --width=þéóìï ÷Ù×ÏÄÉÔØ ÍÁËÓÉÍÕÍ ÚÁÄÁÎÎÏÅ þéóìï ÚÎÁËÏ× × ÓÔÒÏËÅ.\n" -" (ÐÏ ÕÍÏÌÞÁÎÉÀ 130)" - -#: src/sdiff.c:195 -msgid "-l --left-column Output only the left column of common lines." -msgstr "-l --left-column ÷Ù×ÏÄÉÔØ ÔÏÌØËÏ ÌÅ×ÕÀ ËÏÌÏÎËÕ ÏÂÝÉÈ ÓÔÒÏË." - -#: src/sdiff.c:196 -msgid "-s --suppress-common-lines Do not output common lines." -msgstr "-s --suppress-common-lines îÅ ×Ù×ÏÄÉÔØ ÏÂÝÉÅ ÓÔÒÏËÉ." - -#: src/sdiff.c:201 -msgid "" -"-H --speed-large-files Assume large files and many scattered small changes." -msgstr "" -"-H --speed-large-files ðÒÅÄÐÏÌÁÇÁÔØ, ÞÔÏ ÆÁÊÌÙ ÂÏÌØÛÉÅ ÓÏ ÍÎÏÇÉÍÉ\n" -" ÒÁÚÂÒÏÓÁÎÎÙÍÉ ÍÅÌËÉÍÉ ÉÚÍÅÎÅÎÉÑÍÉ." - -#: src/sdiff.c:214 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 FILE2\n" -msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþ]... æáêì1 æáêì2\n" - -#: src/sdiff.c:215 -msgid "Side-by-side merge of file differences." -msgstr "éÎÔÅÒÁËÔÉ×ÎÏ ÓÌÉ×ÁÅÔ ÒÁÚÌÉÞÉÑ ÆÁÊÌÏ×." - -#: src/sdiff.c:327 -msgid "cannot interactively merge standard input" -msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÉÎÔÅÒÁËÔÉ×ÎÏ ÓÌÉ×ÁÔØ ÓÔÁÎÄÁÒÔÎÙÊ ××ÏÄ" - -#: src/sdiff.c:588 -msgid "both files to be compared are directories" -msgstr "ÏÂÁ ÓÒÁ×ÎÉ×ÁÅÍÙÈ ÆÁÊÌÁ -- ËÁÔÁÌÏÇÉ" - -#: src/sdiff.c:853 -msgid "" -"ed:\tEdit then use both versions, each decorated with a header.\n" -"eb:\tEdit then use both versions.\n" -"el:\tEdit then use the left version.\n" -"er:\tEdit then use the right version.\n" -"e:\tEdit a new version.\n" -"l:\tUse the left version.\n" -"r:\tUse the right version.\n" -"s:\tSilently include common lines.\n" -"v:\tVerbosely include common lines.\n" -"q:\tQuit.\n" -msgstr "" -"ed:\tòÅÄÁËÔÉÒÏ×ÁÔØ É ÉÓÐÏÌØÚÏ×ÁÔØ ÏÂÅ ×ÅÒÓÉÉ, ×ËÌÀÞÉ× × ËÁÖÄÕÀ ÚÁÇÏÌÏ×ÏË.\n" -"eb:\tòÅÄÁËÔÉÒÏ×ÁÔØ É ÉÓÐÏÌØÚÏ×ÁÔØ ÏÂÅ ×ÅÒÓÉÉ.\n" -"el:\tòÅÄÁËÔÉÒÏ×ÁÔØ É ÉÓÐÏÌØÚÏ×ÁÔØ ÌÅ×ÕÀ ×ÅÒÓÉÀ.\n" -"er:\tòÅÄÁËÔÉÒÏ×ÁÔØ É ÉÓÐÏÌØÚÏ×ÁÔØ ÐÒÁ×ÕÀ ×ÅÒÓÉÀ.\n" -"e:\téÓÐÏÌØÚÏ×ÁÔØ ÎÏ×ÕÀ ×ÅÒÓÉÀ.\n" -"l:\téÓÐÏÌØÚÏ×ÁÔØ ÐÒÁ×ÕÀ ×ÅÒÓÉÀ.\n" -"r:\téÓÐÏÌØÚÏ×ÁÔØ ÐÒÁ×ÕÀ ×ÅÒÓÉÀ.\n" -"s:\t÷ËÌÀÞÁÔØ ÏÂÝÉÅ ÓÔÒÏËÉ, ÎÅ ×ÙÄÁ×ÁÑ ÓÏÏÂÝÅÎÉÑ.\n" -"v:\t÷ËÌÀÞÁÔØ ÏÂÝÉÅ ÓÔÒÏËÉ, ×ÙÄÁ×ÁÑ ÓÏÏÂÝÅÎÉÅ.\n" -"q:\t÷ÙÊÔÉ.\n" diff --git a/gnu/dist/diffutils/po/sv.gmo b/gnu/dist/diffutils/po/sv.gmo deleted file mode 100644 index e17c11372b2..00000000000 Binary files a/gnu/dist/diffutils/po/sv.gmo and /dev/null differ diff --git a/gnu/dist/diffutils/po/sv.po b/gnu/dist/diffutils/po/sv.po deleted file mode 100644 index cfd18c3a398..00000000000 --- a/gnu/dist/diffutils/po/sv.po +++ /dev/null @@ -1,921 +0,0 @@ -# Swedish messages for diffutils. -# Copyright © 1996, 2001, 2002 Free Software Foundation, Inc. -# Göran Uddeborg , 1996, 2001, 2002. -# Revision: 1.21 -# -msgid "" -msgstr "" -"Project-Id-Version: diffutils 2.7.10\n" -"POT-Creation-Date: 2002-04-05 14:10-0800\n" -"PO-Revision-Date: 2002-03-12 17:03+0100\n" -"Last-Translator: Göran Uddeborg \n" -"Language-Team: Swedish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" - -#: lib/c-stack.c:188 -msgid "program error" -msgstr "programfel" - -#: lib/c-stack.c:189 -msgid "stack overflow" -msgstr "stackspill" - -#: lib/error.c:128 lib/error.c:156 -msgid "Unknown system error" -msgstr "Okänt systemfel" - -#: lib/freesoft.c:27 -msgid "" -"This program comes with NO WARRANTY, to the extent permitted by law.\n" -"You may redistribute copies of this program\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING." -msgstr "" -"Detta program kommer UTAN GARANTI, så långt lagen tillåter. Du kan\n" -"distribuera kopior av detta program i enlighet med villkoren i GNU\n" -"General Public License. För mer information om detta, se filen som\n" -"heter COPYING." - -#: lib/getopt.c:693 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s: flaggan \"%s\" är tvetydig\n" - -#: lib/getopt.c:718 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: flaggan \"--%s\" tar inget argument\n" - -#: lib/getopt.c:723 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: flaggan \"%c%s\" tar inget argument\n" - -#: lib/getopt.c:741 lib/getopt.c:914 -#, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s: flaggan \"%s\" behöver ett argument\n" - -#: lib/getopt.c:770 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: okänd flagga \"--%s\"\n" - -#: lib/getopt.c:774 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: okänd flagga \"%c%s\"\n" - -#: lib/getopt.c:800 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: otillåten flagga -- %c\n" - -#: lib/getopt.c:803 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: ogiltig flagga -- %c\n" - -#: lib/getopt.c:833 lib/getopt.c:963 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: flaggan behöver ett argument -- %c\n" - -#: lib/getopt.c:880 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "%s: flaggan \"-W %s\" är tvetydig\n" - -#: lib/getopt.c:898 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: flaggan \"-W %s\" tar inget argument\n" - -#: lib/regex.c:1367 -msgid "Success" -msgstr "Lyckades" - -#: lib/regex.c:1370 -msgid "No match" -msgstr "Ingen match" - -#: lib/regex.c:1373 -msgid "Invalid regular expression" -msgstr "Ogiltigt reguljäruttryck" - -#: lib/regex.c:1376 -msgid "Invalid collation character" -msgstr "Ogiltigt sorteringstecken" - -#: lib/regex.c:1379 -msgid "Invalid character class name" -msgstr "Ogiltigt namn på teckenklass" - -#: lib/regex.c:1382 -msgid "Trailing backslash" -msgstr "Avslutande omvänt snedstreck" - -#: lib/regex.c:1385 -msgid "Invalid back reference" -msgstr "Ogiltig bakåtreferens" - -#: lib/regex.c:1388 -msgid "Unmatched [ or [^" -msgstr "Oparad [ eller [^" - -#: lib/regex.c:1391 -msgid "Unmatched ( or \\(" -msgstr "Oparad ( eller \\(" - -#: lib/regex.c:1394 -msgid "Unmatched \\{" -msgstr "Oparad \\{" - -#: lib/regex.c:1397 -msgid "Invalid content of \\{\\}" -msgstr "Ogiltigt innehåll i \\{\\}" - -#: lib/regex.c:1400 -msgid "Invalid range end" -msgstr "Ogiltigt intervallslut" - -#: lib/regex.c:1403 -msgid "Memory exhausted" -msgstr "Minnet slut" - -#: lib/regex.c:1406 -msgid "Invalid preceding regular expression" -msgstr "Föregående reguljäruttryck ogiltigt" - -#: lib/regex.c:1409 -msgid "Premature end of regular expression" -msgstr "Förtida slut på reguljäruttryck" - -#: lib/regex.c:1412 -msgid "Regular expression too big" -msgstr "För stort reguljäruttryck" - -#: lib/regex.c:1415 -msgid "Unmatched ) or \\)" -msgstr "Oparad ) eller \\)" - -#: lib/regex.c:8034 -msgid "No previous regular expression" -msgstr "Inget föregående reguljäruttryck" - -#: lib/xmalloc.c:63 -msgid "memory exhausted" -msgstr "minnet slut" - -#: src/analyze.c:809 src/diff.c:1283 -#, c-format -msgid "Files %s and %s differ\n" -msgstr "Filerna %s och %s skiljer\n" - -#: src/analyze.c:812 -#, c-format -msgid "Binary files %s and %s differ\n" -msgstr "Binärfilerna %s och %s skiljer\n" - -#: src/analyze.c:1058 src/diff3.c:1413 src/util.c:526 -msgid "No newline at end of file" -msgstr "Ingen nyrad vid filslut" - -#: src/cmp.c:43 -msgid "Written by Torbjorn Granlund and David MacKenzie." -msgstr "Skrivet av Torbjörn Granlund och David MacKenzie." - -#: src/cmp.c:118 src/diff.c:817 src/diff3.c:427 src/sdiff.c:168 -#, c-format -msgid "Try `%s --help' for more information." -msgstr "Försök med \"%s --help\" för mer information." - -#: src/cmp.c:137 -#, c-format -msgid "invalid --ignore-initial value `%s'" -msgstr "ogiltigt --ignore-initial-värde \"%s\"" - -#: src/cmp.c:146 -msgid "options -l and -s are incompatible" -msgstr "flaggorna -l och -s är motstridiga" - -#: src/cmp.c:154 src/diff.c:826 src/diff3.c:435 src/sdiff.c:177 -#: src/sdiff.c:313 src/sdiff.c:320 src/sdiff.c:910 src/util.c:194 -#: src/util.c:286 src/util.c:293 -msgid "write failed" -msgstr "skrivning misslyckades" - -#: src/cmp.c:156 src/diff.c:828 src/diff.c:1354 src/diff3.c:437 -#: src/sdiff.c:179 -msgid "standard output" -msgstr "standard ut" - -#: src/cmp.c:160 -msgid "-b --print-bytes Print differing bytes." -msgstr "-b --print-bytes Skriv ut byte som skiljer." - -#: src/cmp.c:161 -msgid "-i SKIP --ignore-initial=SKIP Skip the first SKIP bytes of input." -msgstr "" -"-i HOPP --ignore-initial=HOPP Hoppa över de HOPP första byten i indata." - -#: src/cmp.c:162 -msgid "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2" -msgstr "-i HOPP1:HOPP2 --ignore-initial=HOPP1:HOPP2" - -#: src/cmp.c:163 -msgid "" -" Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2." -msgstr "" -" Hoppa över de HOPP1 första byten i FIL1 och de HOPP2 första byten i FIL2." - -#: src/cmp.c:164 -msgid "-l --verbose Output byte numbers and values of all differing bytes." -msgstr "-l --verbose Skriv ut bytenummer och värde för alla skiljande byte." - -#: src/cmp.c:165 -msgid "-n LIMIT --bytes=LIMIT Compare at most LIMIT bytes." -msgstr "-n GRÄNS --bytes=GRÄNS Jämför högst GRÄNS byte." - -#: src/cmp.c:166 -msgid "-s --quiet --silent Output nothing; yield exit status only." -msgstr "-s --quiet --silent Skriv inget; ge endast en slutstatus." - -#: src/cmp.c:167 src/diff.c:904 src/diff3.c:455 src/sdiff.c:204 -msgid "-v --version Output version info." -msgstr "-v --version Visa versionsinformation." - -#: src/cmp.c:168 src/diff.c:905 src/diff3.c:456 src/sdiff.c:205 -msgid "--help Output this help." -msgstr "--help Visa detta hjälpmeddelande." - -#: src/cmp.c:177 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n" -msgstr "Användning: %s [FLAGGA]... FIL1 [FIL2 [HOPP1 [HOPP2]]]\n" - -#: src/cmp.c:179 -msgid "Compare two files byte by byte." -msgstr "Jämför två filer byte för byte." - -#: src/cmp.c:183 -msgid "SKIP1 and SKIP2 are the number of bytes to skip in each file." -msgstr "HOPP1 och HOPP2 är antalet byte att hoppa över i varje fil." - -#: src/cmp.c:184 -msgid "" -"SKIP values may be followed by the following multiplicative suffixes:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y." -msgstr "" -"HOPP-värden kan följas av följande mutiplikativa suffix:\n" -"kB 1000, K 1024, MB 1 000 000, M 1 048 576\n" -"GB 1 000 000 000, G 1 073 741 824, och så vidare för T, P, E, Z, Y." - -#: src/cmp.c:187 -msgid "If a FILE is `-' or missing, read standard input." -msgstr "Om FIL är \"-\" eller utelämnats, läs standard in." - -#: src/cmp.c:188 src/diff.c:911 src/diff3.c:475 src/sdiff.c:223 -msgid "Report bugs to ." -msgstr "" -"Rapportera fel till .\n" -"Rapportera synpunkter på den svenska översättningen till ." - -#: src/cmp.c:231 -#, c-format -msgid "invalid --bytes value `%s'" -msgstr "ogiltigt --bytes-värde \"%s\"" - -#: src/cmp.c:258 src/diff.c:734 src/diff3.c:333 src/sdiff.c:558 -#, c-format -msgid "missing operand after `%s'" -msgstr "saknad operand efter \"%s\"" - -#: src/cmp.c:270 src/diff.c:736 src/diff3.c:335 src/sdiff.c:560 -#, c-format -msgid "extra operand `%s'" -msgstr "extra operand \"%s\"" - -#: src/cmp.c:477 -#, c-format -msgid "%s %s differ: byte %s, line %s\n" -msgstr "%s %s skiljer: byte %s, rad %s\n" - -#: src/cmp.c:495 -#, c-format -msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n" -msgstr "%s %s skiljer: byte %s, rad %s är %3o %s %3o %s\n" - -#: src/cmp.c:543 -#, c-format -msgid "cmp: EOF on %s\n" -msgstr "cmp: EOF i %s\n" - -#: src/diff.c:41 -msgid "" -"Written by Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman, and Len Tower." -msgstr "" -"Skrivet av Paul Eggert, Mike Haertel, DAvid Hayes,\n" -"Richard Stallman och Len Tower." - -#: src/diff.c:322 -#, c-format -msgid "invalid context length `%s'" -msgstr "ogiltig omgivningslängd \"%s\"" - -#: src/diff.c:405 -msgid "pagination not supported on this host" -msgstr "sidvisning stödjs ej på denna värd" - -#: src/diff.c:420 src/diff3.c:315 -msgid "too many file label options" -msgstr "för många etikettflaggor" - -#: src/diff.c:498 -#, c-format -msgid "invalid width `%s'" -msgstr "ogiltig bredd \"%s\"" - -#: src/diff.c:502 -msgid "conflicting width options" -msgstr "konflikt mellan breddflaggor" - -#: src/diff.c:526 -#, c-format -msgid "invalid horizon length `%s'" -msgstr "ogiltig horisontlängd \"%s\"" - -#: src/diff.c:629 -#, c-format -msgid "`-%ld' option is obsolete; use `-%c %ld'" -msgstr "flaggan \"-%ld\" är föråldrad; använd \"-%c %ld\"" - -#: src/diff.c:641 -#, c-format -msgid "`-%ld' option is obsolete; omit it" -msgstr "flaggan \"-%ld\" är föråldrad; använd den inte" - -#: src/diff.c:709 -msgid "--from-file and --to-file both specified" -msgstr "både --from-file och --to-file angavs" - -#: src/diff.c:832 -msgid "Compare files line by line." -msgstr "Jämför filer rad för rad." - -#: src/diff.c:834 -msgid "-i --ignore-case Ignore case differences in file contents." -msgstr "-i --ignore-case Bortse från skiftläge i filinnehåll." - -#: src/diff.c:835 -msgid "--ignore-file-name-case Ignore case when comparing file names." -msgstr "--ignore-file-name-case Bortse från skiftläge när filnamn jämförs." - -#: src/diff.c:836 -msgid "--no-ignore-file-name-case Consider case when comparing file names." -msgstr "" -"--no-ignore-file-name-case Ta hänsyn till skiftläge när filnamn jämförs." - -#: src/diff.c:837 src/sdiff.c:186 -msgid "-E --ignore-tab-expansion Ignore changes due to tab expansion." -msgstr "" -"-E --ignore-tab-expansion Ignorera ändringar på grund av " -"tabulatorexpansion." - -#: src/diff.c:838 src/sdiff.c:187 -msgid "-b --ignore-space-change Ignore changes in the amount of white space." -msgstr "-b --ignore-space-change Bortse från ändringar i antalet blanka." - -#: src/diff.c:839 -msgid "-w --ignore-all-space Ignore all white space." -msgstr "-w --ignore-all-space Ignorera alla blanktecken." - -#: src/diff.c:840 src/sdiff.c:189 -msgid "-B --ignore-blank-lines Ignore changes whose lines are all blank." -msgstr "" -"-B --ignore-blank-lines Ignorera ändringar i form av enbart blanka rader." - -#: src/diff.c:841 src/sdiff.c:190 -msgid "" -"-I RE --ignore-matching-lines=RE Ignore changes whose lines all match RE." -msgstr "" -"-I RU --ignore-matching-lines=RU Ignorera ändringar vars rader matchar RU." - -#: src/diff.c:842 src/sdiff.c:191 -msgid "--strip-trailing-cr Strip trailing carriage return on input." -msgstr "--strip-trailing-cr Tag bort avslutande vagnreturer i indata." - -#: src/diff.c:844 -msgid "--binary Read and write data in binary mode." -msgstr "--binary Läs och skriv data binärt." - -#: src/diff.c:846 src/diff3.c:451 src/sdiff.c:192 -msgid "-a --text Treat all files as text." -msgstr "-a --text Betrakta alla filer som text." - -#: src/diff.c:848 -msgid "" -"-c -C NUM --context[=NUM] Output NUM (default 3) lines of copied " -"context.\n" -"-u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified " -"context.\n" -" --label LABEL Use LABEL instead of file name.\n" -" -p --show-c-function Show which C function each change is in.\n" -" -F RE --show-function-line=RE Show the most recent line matching RE." -msgstr "" -"-c -C ANT --context[=ANT] Skriv ut ANT (normalt 3) rader kopierad " -"omgivning.\n" -"-u -U ANT --unified[=ANT] Skriv ut ANT (normalt 3) rader sammanslagen\n" -" omgivning.\n" -" --label ETIKETT Använd ETIKETT istället för filnamn.\n" -" -p --show-c-function Visa vilken C-funktion varje ändring finns i.\n" -" -F RU --show-function-line=RU Visa den senaste raden som matchar RU." - -#: src/diff.c:853 -msgid "-q --brief Output only whether files differ." -msgstr "-q --brief Skriv ut endast huruvida filer skiljer sig." - -# Finns det någon bättre översättning av "script" än "program"? -#: src/diff.c:854 -msgid "-e --ed Output an ed script." -msgstr "-e --ed Skriv ut ett ed-program." - -#: src/diff.c:855 -msgid "--normal Output a normal diff." -msgstr "--normal Skriv ut en normal diff." - -#: src/diff.c:856 -msgid "-n --rcs Output an RCS format diff." -msgstr "-n --rcs Skriv ut skillnader i RCS-format." - -#: src/diff.c:857 -msgid "" -"-y --side-by-side Output in two columns.\n" -" -W NUM --width=NUM Output at most NUM (default 130) print columns.\n" -" --left-column Output only the left column of common lines.\n" -" --suppress-common-lines Do not output common lines." -msgstr "" -"-y --side-by-side Skriv ut i två kolumner.\n" -" -W ANT --width=ANT Skriv ut högst ANT (130 om inget anges) kolumner.\n" -" --left-column Skriv ut endast vänstra kolumnen av gemensamma rader.\n" -" --suppress-common-lines Skriv inte ut gemensamma rader." - -#: src/diff.c:861 -msgid "-D NAME --ifdef=NAME Output merged file to show `#ifdef NAME' diffs." -msgstr "" -"-D NAMN --ifdef=NAMN Skriv ut sammanslagen fil med skillnader inom " -"\"#ifdef NAMN\"." - -#: src/diff.c:862 -msgid "" -"--GTYPE-group-format=GFMT Similar, but format GTYPE input groups with GFMT." -msgstr "--GTYP-group-format=GFMT Dito, men formatera GTYP ingrupper med GFMT." - -#: src/diff.c:863 -msgid "--line-format=LFMT Similar, but format all input lines with LFMT." -msgstr "--line-format=RFMT Dito, men formatera alla inrader med RFMT." - -#: src/diff.c:864 -msgid "" -"--LTYPE-line-format=LFMT Similar, but format LTYPE input lines with LFMT." -msgstr "--RTYP-line-format=RFMT Dito, men formatera RTYP inrader med RFMT." - -#: src/diff.c:865 -msgid " LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'." -msgstr "" -" RTYP är \"old\", \"new\" eller \"unchanged\". GTYP är RTYP eller \"changed" -"\"." - -#: src/diff.c:866 -msgid "" -" GFMT may contain:\n" -" %< lines from FILE1\n" -" %> lines from FILE2\n" -" %= lines common to FILE1 and FILE2\n" -" %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" -" LETTERs are as follows for new group, lower case for old group:\n" -" F first line number\n" -" L last line number\n" -" N number of lines = L-F+1\n" -" E F-1\n" -" M L+1" -msgstr "" -" GFMT kan innehålla:\n" -" %< rader från FIL1\n" -" %> rader från FIL2\n" -" %= gemensamma rader i FIL1 och FIL2\n" -" %[-][BREDD][.[PREC]]{doxX}BOKSTAV printf-lik spec. för BOKSTAV\n" -" BOKSTÄVER är enligt följande för ny grupp, gemen för gammal grupp:\n" -" F första radnumret\n" -" L sista radnumret\n" -" N antal rader = L-F+1\n" -" E F-1\n" -" M L+1" - -#: src/diff.c:877 -msgid "" -" LFMT may contain:\n" -" %L contents of line\n" -" %l contents of line, excluding any trailing newline\n" -" %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number" -msgstr "" -" RFMT kan innehålla:\n" -" %L radinnehåll\n" -" %l radinnehåll exklusive avslutande nyrad\n" -" %[-][BREDD][.[PREC]]{doxX}n printf-stil spec. för inradnummer" - -#: src/diff.c:881 -msgid "" -" Either GFMT or LFMT may contain:\n" -" %% %\n" -" %c'C' the single character C\n" -" %c'\\OOO' the character with octal code OOO" -msgstr "" -" Både GFMT eller RFMT kan innehålla:\n" -" %% %\n" -" %c'C' det ensamma tecknet C\n" -" %c'\\OOO' tecknet med oktalkod OOO" - -#: src/diff.c:886 -msgid "-l --paginate Pass the output through `pr' to paginate it." -msgstr "-l --paginate Skicka utdata till \"pr\" för paginering." - -#: src/diff.c:887 src/sdiff.c:198 -msgid "-t --expand-tabs Expand tabs to spaces in output." -msgstr "-t --expand-tabs Expandera tabulatorer till blanksteg." - -#: src/diff.c:888 src/diff3.c:452 -msgid "-T --initial-tab Make tabs line up by prepending a tab." -msgstr "" -"-T --initial-tab Justera tabulatorer genom att skjuta in en tabulator " -"först." - -#: src/diff.c:890 -msgid "-r --recursive Recursively compare any subdirectories found." -msgstr "-r --recursive Jämför underkataloger rekursivt." - -#: src/diff.c:891 -msgid "-N --new-file Treat absent files as empty." -msgstr "-N --new-file Betrakta saknade filer som tomma." - -#: src/diff.c:892 -msgid "--unidirectional-new-file Treat absent first files as empty." -msgstr "--unidirectional-new-file Behandla saknade förstafiler som tomma." - -#: src/diff.c:893 -msgid "-s --report-identical-files Report when two files are the same." -msgstr "-s --report-identical-files Rapportera om två filer är lika." - -#: src/diff.c:894 -msgid "-x PAT --exclude=PAT Exclude files that match PAT." -msgstr "-x MNS --exclude=MNS Ta inte med filer som matchar MNS." - -#: src/diff.c:895 -msgid "" -"-X FILE --exclude-from=FILE Exclude files that match any pattern in FILE." -msgstr "" -"-X FIL --exclude-from=FIL Ta inte med filer med namn som matchar mönstren " -"i FIL." - -#: src/diff.c:896 -msgid "" -"-S FILE --starting-file=FILE Start with FILE when comparing directories." -msgstr "-S FIL --starting-file=FIL Börja med FIL när kataloger jämförs." - -#: src/diff.c:897 -msgid "" -"--from-file=FILE1 Compare FILE1 to all operands. FILE1 can be a directory." -msgstr "" -"--from-file=FIL1 Jämför FIL1 medd alla operander. FIL1 kan vara en " -"katalog." - -#: src/diff.c:898 -msgid "" -"--to-file=FILE2 Compare all operands to FILE2. FILE2 can be a directory." -msgstr "" -"--to-file=FIL2 Jämför alla operander med FIL2. FIL2 kan vara en katalog." - -#: src/diff.c:900 -msgid "--horizon-lines=NUM Keep NUM lines of the common prefix and suffix." -msgstr "" -"--horizon-lines=ANT Spara ANT rader av det gemensamma prefixet och suffixet." - -#: src/diff.c:901 src/sdiff.c:200 -msgid "-d --minimal Try hard to find a smaller set of changes." -msgstr "-d --minimal Arbeta hårt för att hitta en mindre mängd av ändringar." - -#: src/diff.c:902 -msgid "" -"--speed-large-files Assume large files and many scattered small changes." -msgstr "--speed-large-files Antag stora filer och små spridda ändringar." - -#: src/diff.c:907 -msgid "" -"FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'." -msgstr "" -"FILER är \"FIL1 FIL2\" eller \"KAT1 KAT2\" eller \"KAT FIL...\" eller " -"\"FIL... KAT\"." - -#: src/diff.c:908 -msgid "" -"If --from-file or --to-file is given, there are no restrictions on FILES." -msgstr "" -"Om --from-file eller --to-file är angivet, finns det inga begränsningar på\n" -"FILER." - -#: src/diff.c:909 src/diff3.c:474 src/sdiff.c:222 -msgid "If a FILE is `-', read standard input." -msgstr "Om FIL är \"-\", läs standard in." - -#: src/diff.c:920 -#, c-format -msgid "Usage: %s [OPTION]... FILES\n" -msgstr "Användning: %s [FLAGGA]... FILER\n" - -#: src/diff.c:949 -#, c-format -msgid "conflicting %s option value `%s'" -msgstr "motstridigt %s-flaggsvärde \"%s\"" - -#: src/diff.c:962 -msgid "conflicting output style options" -msgstr "motstridig utmatningsstilsflagga" - -#: src/diff.c:976 -msgid "regular empty file" -msgstr "tom normal fil" - -#: src/diff.c:976 -msgid "regular file" -msgstr "normal fil" - -#: src/diff.c:978 -msgid "directory" -msgstr "katalog" - -#: src/diff.c:981 -msgid "block special file" -msgstr "blockspecialfil" - -#: src/diff.c:984 -msgid "character special file" -msgstr "teckenspecialfil" - -#: src/diff.c:987 -msgid "fifo" -msgstr "fifo" - -#: src/diff.c:991 -msgid "socket" -msgstr "uttag (socket)" - -#: src/diff.c:994 -msgid "message queue" -msgstr "meddelandekö" - -#: src/diff.c:997 -msgid "semaphore" -msgstr "semafor" - -#: src/diff.c:1000 -msgid "shared memory object" -msgstr "delatminneobjekt" - -#: src/diff.c:1003 -msgid "typed memory object" -msgstr "typat minnes-objekt" - -#: src/diff.c:1006 -msgid "weird file" -msgstr "konstig fil" - -#: src/diff.c:1070 src/diff.c:1256 -#, c-format -msgid "Only in %s: %s\n" -msgstr "Endast i %s: %s\n" - -#: src/diff.c:1193 -msgid "cannot compare `-' to a directory" -msgstr "kan inte jämföra \"-\" med en katalog" - -#: src/diff.c:1220 -msgid "-D option not supported with directories" -msgstr "-D flaggan stödjs ej för kataloger" - -#: src/diff.c:1229 -#, c-format -msgid "Common subdirectories: %s and %s\n" -msgstr "Lika underkataloger: %s och %s\n" - -#: src/diff.c:1266 -#, c-format -msgid "File %s is a %s while file %s is a %s\n" -msgstr "Fil %s är en %s medan fil %s är en %s\n" - -#: src/diff.c:1345 -#, c-format -msgid "Files %s and %s are identical\n" -msgstr "Filerna %s och %s är lika\n" - -#: src/diff3.c:26 -msgid "Written by Randy Smith." -msgstr "Skrivet av Randy Smith." - -#: src/diff3.c:328 -msgid "incompatible options" -msgstr "oförenliga flaggor" - -#: src/diff3.c:368 -msgid "`-' specified for more than one input file" -msgstr "\"-\" angivet för mer än en infil" - -#: src/diff3.c:408 src/diff3.c:1232 src/diff3.c:1645 src/diff3.c:1700 -#: src/sdiff.c:305 src/sdiff.c:879 src/sdiff.c:890 -msgid "read failed" -msgstr "läsning misslyckades" - -#: src/diff3.c:441 -msgid "-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE." -msgstr "" -"-e --ed Skriv ut separata ändringar från GAMMALFIL till DINFIL i MINFIL." - -#: src/diff3.c:442 -msgid "-E --show-overlap Output unmerged changes, bracketing conflicts." -msgstr "" -"-E --show-overlap Skriv ut ändringar separat med markeringar runt " -"konflikter." - -#: src/diff3.c:443 -msgid "-A --show-all Output all changes, bracketing conflicts." -msgstr "-A --show-all Skriv ut alla ändringar med markering runt konflikter." - -#: src/diff3.c:444 -msgid "-x --overlap-only Output overlapping changes." -msgstr "-x --overlap-only Skriv ut överlappande ändringar." - -#: src/diff3.c:445 -msgid "-X Output overlapping changes, bracketing them." -msgstr "-X Skriv ut ändringar separat, markerade." - -#: src/diff3.c:446 -msgid "-3 --easy-only Output unmerged nonoverlapping changes." -msgstr "-3 --easy-only Skriv ut ej överlappande ändringar separat." - -#: src/diff3.c:448 -msgid "-m --merge Output merged file instead of ed script (default -A)." -msgstr "" -"-m --merge Skriv ut sammanslagen fil istället för ed-program (normalt -A)." - -#: src/diff3.c:449 -msgid "-L LABEL --label=LABEL Use LABEL instead of file name." -msgstr "-L ETIKETT --label=ETIKETT Använd ETIKETT istället för filnamn." - -#: src/diff3.c:450 -msgid "-i Append `w' and `q' commands to ed scripts." -msgstr "-i Lägg till \"w\"- och \"q\"-kommandon till ed-program." - -#: src/diff3.c:453 src/sdiff.c:202 -msgid "--diff-program=PROGRAM Use PROGRAM to compare files." -msgstr "--diff-program=PROGRAM Använd PROGRAM för att jämföra filer." - -#: src/diff3.c:465 -#, c-format -msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n" -msgstr "Användning: %s [FLAGGA]... MINFIL GAMMALFIL DINFIL\n" - -#: src/diff3.c:467 -msgid "Compare three files line by line." -msgstr "Jämför tre filer rad för rad." - -#: src/diff3.c:673 -msgid "internal error: screwup in format of diff blocks" -msgstr "internt fel: trasigt format i diff-block" - -#: src/diff3.c:971 -#, c-format -msgid "%s: diff failed: " -msgstr "%s: diff misslyckades: " - -#: src/diff3.c:993 -msgid "internal error: invalid diff type in process_diff" -msgstr "internt fel: ogiltig diff-typ i process_diff" - -#: src/diff3.c:1018 -msgid "invalid diff format; invalid change separator" -msgstr "ogiltigt diff-format; ogiltig ändringsseparator" - -#: src/diff3.c:1242 -msgid "invalid diff format; incomplete last line" -msgstr "ogiltigt diff-format; ofullständig sista rad" - -#: src/diff3.c:1265 src/sdiff.c:273 -#, c-format -msgid "subsidiary program `%s' not executable" -msgstr "underprogram \"%s\" inte körbart" - -#: src/diff3.c:1268 src/sdiff.c:276 src/util.c:298 -#, c-format -msgid "subsidiary program `%s' not found" -msgstr "underprogram \"%s\" hittades inte" - -#: src/diff3.c:1272 src/sdiff.c:268 src/util.c:301 -#, c-format -msgid "subsidiary program `%s' failed" -msgstr "underprogram \"%s\" misslyckades" - -#: src/diff3.c:1294 -msgid "invalid diff format; incorrect leading line chars" -msgstr "ogiltigt diff-format; felaktiga starttecken på rad" - -#: src/diff3.c:1370 -msgid "internal error: invalid diff type passed to output" -msgstr "internt fel: ogiltig diff-typ utskickad" - -#: src/diff3.c:1647 src/diff3.c:1704 -msgid "input file shrank" -msgstr "infilen krympte" - -#: src/dir.c:162 -#, c-format -msgid "cannot compare file names `%s' and `%s'" -msgstr "kan inte jämföra filnamn \"%s\" och \"%s\"" - -#: src/sdiff.c:35 -msgid "Written by Thomas Lord." -msgstr "Skrivet av Thomas Lord." - -#: src/sdiff.c:183 -msgid "-o FILE --output=FILE Operate interactively, sending output to FILE." -msgstr "-o FIL --output=FIL Kör interaktivt, med utdata till FIL." - -#: src/sdiff.c:185 -msgid "-i --ignore-case Consider upper- and lower-case to be the same." -msgstr "-i --ignore-case Betrakta versaler och gemena som lika." - -#: src/sdiff.c:188 -msgid "-W --ignore-all-space Ignore all white space." -msgstr "-W --ignore-all-space Ignorera alla blanktecken." - -#: src/sdiff.c:194 -msgid "-w NUM --width=NUM Output at most NUM (default 130) columns per line." -msgstr "" -"-w ANT --width=ANT Skriv ut högst ANT (130 om inget anges) tecken per rad." - -#: src/sdiff.c:195 -msgid "-l --left-column Output only the left column of common lines." -msgstr "" -"-l --left-column Skriv ut endast vänstra kolumnen av gemensamma rader." - -#: src/sdiff.c:196 -msgid "-s --suppress-common-lines Do not output common lines." -msgstr "-s --suppress-common-lines Skriv inte ut gemensamma rader." - -#: src/sdiff.c:201 -msgid "" -"-H --speed-large-files Assume large files and many scattered small changes." -msgstr "-H --speed-large-files Antag stora filer och små spridda ändringar." - -#: src/sdiff.c:214 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 FILE2\n" -msgstr "Användning: %s [FLAGGA]... FIL1 FIL2\n" - -#: src/sdiff.c:215 -msgid "Side-by-side merge of file differences." -msgstr "Sammanslagning sida-vid-sida av filskillnader." - -#: src/sdiff.c:327 -msgid "cannot interactively merge standard input" -msgstr "kan inte slå samman standard in interaktivt" - -#: src/sdiff.c:588 -msgid "both files to be compared are directories" -msgstr "båda filerna som skall jämföras är kataloger" - -#: src/sdiff.c:853 -msgid "" -"ed:\tEdit then use both versions, each decorated with a header.\n" -"eb:\tEdit then use both versions.\n" -"el:\tEdit then use the left version.\n" -"er:\tEdit then use the right version.\n" -"e:\tEdit a new version.\n" -"l:\tUse the left version.\n" -"r:\tUse the right version.\n" -"s:\tSilently include common lines.\n" -"v:\tVerbosely include common lines.\n" -"q:\tQuit.\n" -msgstr "" -"ed:\tRedigera och använd sedan båda versioner, dekorerade med huvuden.\n" -"eb:\tRedigera och använd sedan båda versioner.\n" -"el:\tRedigera och använd sedan vänstra versionen.\n" -"er:\tRedigera och använd sedan högra versionen.\n" -"e:\tRedigera en ny version.\n" -"l:\tAnvänd vänstra versionen.\n" -"r:\tAnvänd högra versionen.\n" -"s:\tInkludera tyst gemensamma rader.\n" -"v:\tInkludera och tillkännage gemensamma rader.\n" -"q:\tAvsluta.\n" diff --git a/gnu/dist/diffutils/po/tr.gmo b/gnu/dist/diffutils/po/tr.gmo deleted file mode 100644 index 2e9abdaeea0..00000000000 Binary files a/gnu/dist/diffutils/po/tr.gmo and /dev/null differ diff --git a/gnu/dist/diffutils/po/tr.po b/gnu/dist/diffutils/po/tr.po deleted file mode 100644 index 976f6948df0..00000000000 --- a/gnu/dist/diffutils/po/tr.po +++ /dev/null @@ -1,956 +0,0 @@ -# Diffutils Turkish translation -# Copyright (C) 2001 Free Software Foundation, Inc. -# Deniz Akkus Kanca , 2001. -# -msgid "" -msgstr "" -"Project-Id-Version: diffutils 2.8\n" -"POT-Creation-Date: 2002-04-05 14:10-0800\n" -"PO-Revision-Date: 2002-04-03 07:35EET\n" -"Last-Translator: Deniz Akkus Kanca \n" -"Language-Team: Turkish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 0.9.5\n" - -#: lib/c-stack.c:188 -msgid "program error" -msgstr "yazılım hatası" - -#: lib/c-stack.c:189 -msgid "stack overflow" -msgstr "yığıt taÅŸması" - -#: lib/error.c:128 lib/error.c:156 -msgid "Unknown system error" -msgstr "Bilinmeyen sistem hatası" - -#: lib/freesoft.c:27 -msgid "" -"This program comes with NO WARRANTY, to the extent permitted by law.\n" -"You may redistribute copies of this program\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING." -msgstr "" -"Bu yazılım, kanunun izin verdiÄŸi ölçüde, HİÇ BİR GARANTİ içermez.\n" -"Bu yazılımın kopyalarını GNU Genel Kamu Lisansı'nın koÅŸulları altında\n" -"dağıtabilirsiniz. Bu konular ile ilgili daha fazla bilgi için lütfen " -"COPYING\n" -"adındaki dosyaya bakın." - -#: lib/getopt.c:693 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s: `%s' seçeneÄŸi belirsiz\n" - -#: lib/getopt.c:718 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s: `--%s' seçeneÄŸi argümansız kullanılır\n" - -#: lib/getopt.c:723 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s: seçenek `%c%s' argümansız kullanılır\n" - -#: lib/getopt.c:741 lib/getopt.c:914 -#, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s: `%s' seçeneÄŸi bir argümanla kullanılır\n" - -#: lib/getopt.c:770 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s: `--%s' seçeneÄŸi bilinmiyor\n" - -#: lib/getopt.c:774 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s: `%c%s' seçeneÄŸi bilinmiyor\n" - -#: lib/getopt.c:800 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s: kuraldışı seçenek -- %c\n" - -#: lib/getopt.c:803 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s: geçersiz seçenek -- %c\n" - -#: lib/getopt.c:833 lib/getopt.c:963 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s: seçenek bir argümanla kullanılır -- %c\n" - -#: lib/getopt.c:880 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "%s: `-W %s' seçeneÄŸi belirsiz\n" - -#: lib/getopt.c:898 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s: `-W %s' seçeneÄŸi argümansız kullanılır\n" - -#: lib/regex.c:1367 -msgid "Success" -msgstr "BaÅŸarılı" - -#: lib/regex.c:1370 -msgid "No match" -msgstr "EÅŸleme yok" - -#: lib/regex.c:1373 -msgid "Invalid regular expression" -msgstr "Düzenli ifade geçersiz" - -#: lib/regex.c:1376 -msgid "Invalid collation character" -msgstr "Harmanlama karakteri geçersiz" - -#: lib/regex.c:1379 -msgid "Invalid character class name" -msgstr "Karakter sınıf ismi geçersiz" - -#: lib/regex.c:1382 -msgid "Trailing backslash" -msgstr "İzleyen ters kesme" - -#: lib/regex.c:1385 -msgid "Invalid back reference" -msgstr "Geriye baÅŸvuru geçersiz" - -#: lib/regex.c:1388 -msgid "Unmatched [ or [^" -msgstr "[ ya da [^ eÅŸleÅŸmiyor" - -#: lib/regex.c:1391 -msgid "Unmatched ( or \\(" -msgstr "( ya da \\( eÅŸleÅŸmiyor" - -#: lib/regex.c:1394 -msgid "Unmatched \\{" -msgstr "\\{ eÅŸleÅŸmiyor" - -#: lib/regex.c:1397 -msgid "Invalid content of \\{\\}" -msgstr "\\{\\} içeriÄŸi geçersiz" - -#: lib/regex.c:1400 -msgid "Invalid range end" -msgstr "Kapsam sonu geçersiz" - -#: lib/regex.c:1403 -msgid "Memory exhausted" -msgstr "Bellek tükendi" - -#: lib/regex.c:1406 -msgid "Invalid preceding regular expression" -msgstr "Önceki düzenli ifade geçersiz" - -#: lib/regex.c:1409 -msgid "Premature end of regular expression" -msgstr "Düzenli ifadenin sonu eksik kalmış" - -#: lib/regex.c:1412 -msgid "Regular expression too big" -msgstr "Düzenli ifade çok büyük" - -#: lib/regex.c:1415 -msgid "Unmatched ) or \\)" -msgstr ") ya da \\) eÅŸleÅŸmiyor" - -#: lib/regex.c:8034 -msgid "No previous regular expression" -msgstr "Daha önce düzenli ifade yok" - -#: lib/xmalloc.c:63 -msgid "memory exhausted" -msgstr "bellek tükendi" - -#: src/analyze.c:809 src/diff.c:1283 -#, c-format -msgid "Files %s and %s differ\n" -msgstr "%s ve %s dosyaları birbirinden farklı\n" - -#: src/analyze.c:812 -#, c-format -msgid "Binary files %s and %s differ\n" -msgstr "İkilik dosyalar %s ve %s birbirinden farklı\n" - -#: src/analyze.c:1058 src/diff3.c:1413 src/util.c:526 -msgid "No newline at end of file" -msgstr "Dosya sonunda yenisatır yok." - -#: src/cmp.c:43 -msgid "Written by Torbjorn Granlund and David MacKenzie." -msgstr "Torbjorn Granlund ve David MacKenzie tarafından yazılmıştır." - -#: src/cmp.c:118 src/diff.c:817 src/diff3.c:427 src/sdiff.c:168 -#, c-format -msgid "Try `%s --help' for more information." -msgstr "Daha fazla bilgi için `%s --help' komutunu kullanın." - -#: src/cmp.c:137 -#, c-format -msgid "invalid --ignore-initial value `%s'" -msgstr "geçersiz -- ilk deÄŸer `%s' yoksayılmış" - -#: src/cmp.c:146 -msgid "options -l and -s are incompatible" -msgstr "-l ve -s seçenekleri beraber kullanılamaz" - -#: src/cmp.c:154 src/diff.c:826 src/diff3.c:435 src/sdiff.c:177 -#: src/sdiff.c:313 src/sdiff.c:320 src/sdiff.c:910 src/util.c:194 -#: src/util.c:286 src/util.c:293 -msgid "write failed" -msgstr "yazma baÅŸarısız oldu" - -#: src/cmp.c:156 src/diff.c:828 src/diff.c:1354 src/diff3.c:437 -#: src/sdiff.c:179 -msgid "standard output" -msgstr "standart çıktı" - -#: src/cmp.c:160 -msgid "-b --print-bytes Print differing bytes." -msgstr "-b --print-bytes Bayt farklarını çıktılar." - -#: src/cmp.c:161 -msgid "-i SKIP --ignore-initial=SKIP Skip the first SKIP bytes of input." -msgstr "-i ATLA --ignore-initial=ATLA Girdinin ilk ATLA baytını atlar." - -#: src/cmp.c:162 -msgid "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2" -msgstr "-i ATLA1:ATLA2 --ignore-initial=ATLA1:ATLA2" - -#: src/cmp.c:163 -msgid "" -" Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2." -msgstr " DOSYA1'in ilk ATLA1 baytını ve DOSYA2'nin ilk ATLA2 baytını atlar." - -#: src/cmp.c:164 -msgid "-l --verbose Output byte numbers and values of all differing bytes." -msgstr "" -"-l --verbose Bütün farklı baytların numaralarını ve deÄŸerlerini gösterir." - -#: src/cmp.c:165 -msgid "-n LIMIT --bytes=LIMIT Compare at most LIMIT bytes." -msgstr "-n LİMİT --bytes=LİMİT En fazla LİMİT baytı karşılaÅŸtırır." - -#: src/cmp.c:166 -msgid "-s --quiet --silent Output nothing; yield exit status only." -msgstr "" -"-s --quiet --silent Hiç bir ÅŸey çıktılamaz, yalnızca çıkış durumunu " -"bildirir." - -#: src/cmp.c:167 src/diff.c:904 src/diff3.c:455 src/sdiff.c:204 -msgid "-v --version Output version info." -msgstr "-v --version Sürüm bilgisini gösterir." - -#: src/cmp.c:168 src/diff.c:905 src/diff3.c:456 src/sdiff.c:205 -msgid "--help Output this help." -msgstr "--help Bu yardımı gösterir." - -#: src/cmp.c:177 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n" -msgstr "Kullanım: %s [SEÇENEK]... DOSYA1 [DOSYA2 [ATLA1 [ATLA2]]]\n" - -#: src/cmp.c:179 -msgid "Compare two files byte by byte." -msgstr "İki dosyayı bayt bayt karşılaÅŸtırır." - -#: src/cmp.c:183 -msgid "SKIP1 and SKIP2 are the number of bytes to skip in each file." -msgstr "ATLA1 ve ATLA2 her dosyada atlanacak bayt sayısını gösterir." - -#: src/cmp.c:184 -msgid "" -"SKIP values may be followed by the following multiplicative suffixes:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y." -msgstr "" -"ATLA deÄŸerleri aÅŸağıdaki çarpanlarla sonlanabilir:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, ve T, P, E, Z, Y için devam eder." - -#: src/cmp.c:187 -msgid "If a FILE is `-' or missing, read standard input." -msgstr "EÄŸer DOSYA `-' ise veya yoksa, standart girdi okunur." - -#: src/cmp.c:188 src/diff.c:911 src/diff3.c:475 src/sdiff.c:223 -msgid "Report bugs to ." -msgstr "" -"Yazılım hatalarını adresine, \n" -"çeviri hatalarını adresine bildirin." - -#: src/cmp.c:231 -#, c-format -msgid "invalid --bytes value `%s'" -msgstr "geçersiz --bytes deÄŸeri `%s'" - -#: src/cmp.c:258 src/diff.c:734 src/diff3.c:333 src/sdiff.c:558 -#, c-format -msgid "missing operand after `%s'" -msgstr "`%s'den sonra iÅŸlenen eksik" - -#: src/cmp.c:270 src/diff.c:736 src/diff3.c:335 src/sdiff.c:560 -#, c-format -msgid "extra operand `%s'" -msgstr "fazla iÅŸlenen `%s'" - -#: src/cmp.c:477 -#, c-format -msgid "%s %s differ: byte %s, line %s\n" -msgstr "%s %s farklı: bayt %s, satır %s\n" - -#: src/cmp.c:495 -#, c-format -msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n" -msgstr "%s %s farklı: bayt %s, satır %s: %3o %s %3o %s\n" - -#: src/cmp.c:543 -#, c-format -msgid "cmp: EOF on %s\n" -msgstr "cmp: %s'da EOF (dosyasonu)\n" - -#: src/diff.c:41 -msgid "" -"Written by Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman, and Len Tower." -msgstr "" -"Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, ve Len Tower\n" -"tarafından yazılmıştır." - -#: src/diff.c:322 -#, c-format -msgid "invalid context length `%s'" -msgstr "`%s' içerik uzunluÄŸu geçersiz" - -#: src/diff.c:405 -msgid "pagination not supported on this host" -msgstr "sayfalama bu makina üzerinde desteklenmiyor" - -#: src/diff.c:420 src/diff3.c:315 -msgid "too many file label options" -msgstr "çok fazla dosya etiket seçeneÄŸi" - -#: src/diff.c:498 -#, c-format -msgid "invalid width `%s'" -msgstr "geçersiz geniÅŸlik `%s'" - -#: src/diff.c:502 -msgid "conflicting width options" -msgstr "çeliÅŸkili geniÅŸlik seçenekleri" - -#: src/diff.c:526 -#, c-format -msgid "invalid horizon length `%s'" -msgstr "geçersiz ufuk uzunluÄŸu `%s'" - -#: src/diff.c:629 -#, c-format -msgid "`-%ld' option is obsolete; use `-%c %ld'" -msgstr "`-%ld' seçeneÄŸi kullanımdan kalktı; `-%c %ld' kullanın" - -#: src/diff.c:641 -#, c-format -msgid "`-%ld' option is obsolete; omit it" -msgstr "`-%ld' seçeneÄŸi kullanımdan kalktı; kullanmayın" - -#: src/diff.c:709 -msgid "--from-file and --to-file both specified" -msgstr "hem --from-file hem de --to-file belirtilmiÅŸ" - -#: src/diff.c:832 -msgid "Compare files line by line." -msgstr "Dosyaları satır satır karşılaÅŸtırır." - -#: src/diff.c:834 -msgid "-i --ignore-case Ignore case differences in file contents." -msgstr "" -"-i --ignore-case Dosya içeriÄŸinde büyük/küçük harf farklarını yoksayar." - -#: src/diff.c:835 -msgid "--ignore-file-name-case Ignore case when comparing file names." -msgstr "" -"--ignore-file-name-case Dosya isimlerinde büyük/küçük harf farklarını " -"yoksayar." - -#: src/diff.c:836 -msgid "--no-ignore-file-name-case Consider case when comparing file names." -msgstr "" -"--no-ignore-file-name-case Dosya isimlerinde büyük/küçük harf farkı gözetir." - -#: src/diff.c:837 src/sdiff.c:186 -msgid "-E --ignore-tab-expansion Ignore changes due to tab expansion." -msgstr "" -"-E --ignore-tab-expansion Sekmelerin açılmasından doÄŸan farkları yoksayar." - -#: src/diff.c:838 src/sdiff.c:187 -msgid "-b --ignore-space-change Ignore changes in the amount of white space." -msgstr "" -"-b --ignore-space-change BoÅŸluk miktarındaki deÄŸiÅŸiklikleri yoksayar." - -#: src/diff.c:839 -msgid "-w --ignore-all-space Ignore all white space." -msgstr "-w --ignore-all-space Bütün boÅŸlukları yoksayar." - -#: src/diff.c:840 src/sdiff.c:189 -msgid "-B --ignore-blank-lines Ignore changes whose lines are all blank." -msgstr "" -"-B --ignore-blank-lines Satırları boÅŸ olan deÄŸiÅŸiklikleri dikkate almaz." - -#: src/diff.c:841 src/sdiff.c:190 -msgid "" -"-I RE --ignore-matching-lines=RE Ignore changes whose lines all match RE." -msgstr "" -"-I DÜZİF --ignore-matching-lines=DÜZİF Satırları DÜZİF kalıbına uyan\n" -" farkları yok sayar." - -#: src/diff.c:842 src/sdiff.c:191 -msgid "--strip-trailing-cr Strip trailing carriage return on input." -msgstr "--strip-trailing-cr Girdiden en sonda sarkan satır başını soyar." - -#: src/diff.c:844 -msgid "--binary Read and write data in binary mode." -msgstr "--binary Datayı ikilik kipte yazar ve okur." - -#: src/diff.c:846 src/diff3.c:451 src/sdiff.c:192 -msgid "-a --text Treat all files as text." -msgstr "-a --text Bütün dosyaları metin imiÅŸcesine iÅŸler." - -#: src/diff.c:848 -msgid "" -"-c -C NUM --context[=NUM] Output NUM (default 3) lines of copied " -"context.\n" -"-u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified " -"context.\n" -" --label LABEL Use LABEL instead of file name.\n" -" -p --show-c-function Show which C function each change is in.\n" -" -F RE --show-function-line=RE Show the most recent line matching RE." -msgstr "" -"-c -C SAYI --context[=SAYI] SAYI kadar baÄŸlam satırı kopyalar (öntanımlı " -"3)\n" -"-u -U SAYI --unified[=SAYI] SAYI kadar birleÅŸmiÅŸ baÄŸlam satırı kopyalar\n" -" (öntanımlı 3)\n" -" --label ETİKET Dosya adı yerine ETİKET'i kullanır.\n" -" -p --show-c-function Her farkın hangi C iÅŸlevi içinde olduÄŸunu " -"gösterir.\n" -" -F DÜZİF --show-function-line=DÜZİF DÜZİF düzenli ifade kalıbına uygun " -"olan\n" -" en son satırı gösterir." - -#: src/diff.c:853 -msgid "-q --brief Output only whether files differ." -msgstr "-q --brief Yalnızca dosyaların farklı olup olmadığını gösterir." - -#: src/diff.c:854 -msgid "-e --ed Output an ed script." -msgstr "-e --ed Bir ed betiÄŸi çıktılar." - -#: src/diff.c:855 -msgid "--normal Output a normal diff." -msgstr "--normal Normal bir diff çıktılar." - -#: src/diff.c:856 -msgid "-n --rcs Output an RCS format diff." -msgstr "-n --rcs RCS biçeminde diff çıktılar." - -#: src/diff.c:857 -msgid "" -"-y --side-by-side Output in two columns.\n" -" -W NUM --width=NUM Output at most NUM (default 130) print columns.\n" -" --left-column Output only the left column of common lines.\n" -" --suppress-common-lines Do not output common lines." -msgstr "" -"-y --side-by-side İki sütun halinde çıktı verir.\n" -" -w SAYI --width=SAYI Satır başına en fazla SAYI kadar karakter çıktılar\n" -" (öntanımlı 130).\n" -" --left-column Ortak satırlarda yalnız sol sütunu gösterir.\n" -" --suppress-common-lines Ortak satırları göstermez." - -#: src/diff.c:861 -msgid "-D NAME --ifdef=NAME Output merged file to show `#ifdef NAME' diffs." -msgstr "" -"-D İSİM --ifdef=İSİM #ifdef İSİM farklarını gösteren harmanlanmış\n" -" dosya çıktılar." - -#: src/diff.c:862 -msgid "" -"--GTYPE-group-format=GFMT Similar, but format GTYPE input groups with GFMT." -msgstr "" -"--GTÜR-group-format=GBÇ Benzer, fakat GTÜR biçeminde girdi grupları\n" -" GBÇ ile biçemlendirilir." - -#: src/diff.c:863 -msgid "--line-format=LFMT Similar, but format all input lines with LFMT." -msgstr "" -"--line-format=LBÇ Benzer, fakat bütün girdi satırları LBÇ ile " -"biçemlendirilir." - -#: src/diff.c:864 -msgid "" -"--LTYPE-line-format=LFMT Similar, but format LTYPE input lines with LFMT." -msgstr "" -"--LTÜR-line-format=LBÇ Benzer, fakat LTÜR girdi satırları \n" -" LBÇ ile biçemlendirilir." - -#: src/diff.c:865 -msgid " LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'." -msgstr "" -" LTÜR, `old' (eski), `new' (yeni) veya `unchanged' (deÄŸiÅŸmemiÅŸ) olabilir. \n" -" GTÜR, LTÜR veya `changed' (deÄŸiÅŸmiÅŸ) olabilir." - -#: src/diff.c:866 -msgid "" -" GFMT may contain:\n" -" %< lines from FILE1\n" -" %> lines from FILE2\n" -" %= lines common to FILE1 and FILE2\n" -" %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" -" LETTERs are as follows for new group, lower case for old group:\n" -" F first line number\n" -" L last line number\n" -" N number of lines = L-F+1\n" -" E F-1\n" -" M L+1" -msgstr "" -" GBÇ aÅŸağıdakileri içerebilir:\n" -" %< DOSYA1'den satırlar\n" -" %> DOSYA2'den satırlar\n" -" %= DOSYA1 ve DOSYA2'de ortak olan satırlar\n" -" %[-][GENİŞLİK][.[KESİNLİK]]{doxX}HARF HARF için printf tarzı biçem\n" -" HARF'ler yeni grup için aÅŸağıdaki gibi, eski grup için ise\n" -" küçük harf olurlar:\n" -" F ilk satır numarası\n" -" L son satır numarası\n" -" N satır sayısı = L-F+1\n" -" E F-1\n" -" M L+1" - -#: src/diff.c:877 -msgid "" -" LFMT may contain:\n" -" %L contents of line\n" -" %l contents of line, excluding any trailing newline\n" -" %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number" -msgstr "" -" LBÇ aÅŸağıdakileri içerebilir:\n" -" %L satırın içeriÄŸi\n" -" %l sonlayan yenisatır karakteri hariç, satırın içeriÄŸi\n" -" %[-][GENİŞLİK][.[KESİNLİK]]{doxX}n girdi satır sayısı için printf\n" -" tarzı biçem" - -#: src/diff.c:881 -msgid "" -" Either GFMT or LFMT may contain:\n" -" %% %\n" -" %c'C' the single character C\n" -" %c'\\OOO' the character with octal code OOO" -msgstr "" -" GBÇ veya LBÇ aÅŸağıdakileri içerebilir:\n" -" %% %\n" -" %c'C' tekli karakter C\n" -" %c'\\OOO' Sekizlik kodu OOO olan karakter" - -#: src/diff.c:886 -msgid "-l --paginate Pass the output through `pr' to paginate it." -msgstr "-l --paginate Çıktıyı `pr' komutundan geçirerek sayfalar." - -#: src/diff.c:887 src/sdiff.c:198 -msgid "-t --expand-tabs Expand tabs to spaces in output." -msgstr "-t --expand-tabs Çıktıda sekmeleri boÅŸluk haline getirir." - -#: src/diff.c:888 src/diff3.c:452 -msgid "-T --initial-tab Make tabs line up by prepending a tab." -msgstr "" -"-T --initial-tab BaÅŸlarına bir sekme ilave ederek sekmelerin " -"hizalanmasını\n" -" saÄŸlar." - -#: src/diff.c:890 -msgid "-r --recursive Recursively compare any subdirectories found." -msgstr "" -"-r --recursive Çevrimli olarak bulunan bütün alt dizinleri karşılaÅŸtırır." - -#: src/diff.c:891 -msgid "-N --new-file Treat absent files as empty." -msgstr "-N --new-file Var olmayan dosyaları boÅŸ varsayar." - -#: src/diff.c:892 -msgid "--unidirectional-new-file Treat absent first files as empty." -msgstr "--unidirectional-new-file Var olmayan birinci dosyayı boÅŸ varsayar." - -#: src/diff.c:893 -msgid "-s --report-identical-files Report when two files are the same." -msgstr "" -"-s --report-identical-files iki dosyanın birbirinin aynısı olup " -"olmadığını\n" -" bildirir." - -#: src/diff.c:894 -msgid "-x PAT --exclude=PAT Exclude files that match PAT." -msgstr "-x KALIP --exclude=KALIP KALIP'a uyan dosyaları iÅŸleme dahil etmez." - -#: src/diff.c:895 -msgid "" -"-X FILE --exclude-from=FILE Exclude files that match any pattern in FILE." -msgstr "" -"-X DOSYA --exclude-from=DOSYA DOSYA'da bulunan kalıplara uyan dosyaları\n" -" iÅŸlem dışı tutar." - -#: src/diff.c:896 -msgid "" -"-S FILE --starting-file=FILE Start with FILE when comparing directories." -msgstr "" -"-S DOSYA --starting-file=DOSYA Dizinleri karşılaÅŸtırırken DOSYA'dan baÅŸlar." - -#: src/diff.c:897 -msgid "" -"--from-file=FILE1 Compare FILE1 to all operands. FILE1 can be a directory." -msgstr "" -"--from-file=DOSYA1 DOSYA1'i bütün iÅŸlenenlerle karşılaÅŸtırır. DOSYA1 dizin\n" -" olabilir." - -#: src/diff.c:898 -msgid "" -"--to-file=FILE2 Compare all operands to FILE2. FILE2 can be a directory." -msgstr "" -"--to-file=DOSYA2 Bütün iÅŸlenenleri DOSYA2 ile karşılaÅŸtırı. DOSYA2 dizin\n" -" olabilir." - -#: src/diff.c:900 -msgid "--horizon-lines=NUM Keep NUM lines of the common prefix and suffix." -msgstr "--horizon-lines=SAYI ortak ilkek ve soneklerin SAYI satırını tutar." - -#: src/diff.c:901 src/sdiff.c:200 -msgid "-d --minimal Try hard to find a smaller set of changes." -msgstr "-d --minimal Daha küçük bir fark kümesi bulmaya çalışır." - -#: src/diff.c:902 -msgid "" -"--speed-large-files Assume large files and many scattered small changes." -msgstr "" -"--speed-large-files Büyük dosyalar ve çok sayıda dağınık küçük \n" -" farklar olduÄŸunu farzeder." - -#: src/diff.c:907 -msgid "" -"FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'." -msgstr "" -"DOSYAlar: `DOSYA1 DOSYA2' veya `DİZİN1 DİZİN2' veya `DİZİN DOSYA...' \n" -" veya `DOSYA...DİZİN';" - -#: src/diff.c:908 -msgid "" -"If --from-file or --to-file is given, there are no restrictions on FILES." -msgstr "" -"eÄŸer --from-file veya --to-file kullanılmışsa, DOSYAlar üzerinde \n" -"kısıtlama yoktur." - -#: src/diff.c:909 src/diff3.c:474 src/sdiff.c:222 -msgid "If a FILE is `-', read standard input." -msgstr "EÄŸer bir DOSYA `-' ise, standart girdi okunur." - -#: src/diff.c:920 -#, c-format -msgid "Usage: %s [OPTION]... FILES\n" -msgstr "Kullanım: %s [SEÇENEK]... DOSYAlar\n" - -#: src/diff.c:949 -#, c-format -msgid "conflicting %s option value `%s'" -msgstr "çeliÅŸkili %s seçeneÄŸi deÄŸeri: `%s'" - -#: src/diff.c:962 -msgid "conflicting output style options" -msgstr "çeliÅŸkili çıktı tarz seçenekleri" - -#: src/diff.c:976 -msgid "regular empty file" -msgstr "normal boÅŸ dosya" - -#: src/diff.c:976 -msgid "regular file" -msgstr "normal dosya" - -#: src/diff.c:978 -msgid "directory" -msgstr "dizin" - -#: src/diff.c:981 -msgid "block special file" -msgstr "blok özel dosyası" - -#: src/diff.c:984 -msgid "character special file" -msgstr "karakter özel dosyası" - -#: src/diff.c:987 -msgid "fifo" -msgstr "fifo" - -#: src/diff.c:991 -msgid "socket" -msgstr "soket" - -#: src/diff.c:994 -msgid "message queue" -msgstr "ileti kuyruÄŸu" - -#: src/diff.c:997 -msgid "semaphore" -msgstr "semafor" - -#: src/diff.c:1000 -msgid "shared memory object" -msgstr "ortak bellek nesnesi" - -#: src/diff.c:1003 -msgid "typed memory object" -msgstr "türlenmiÅŸ bellek nesnesi" - -#: src/diff.c:1006 -msgid "weird file" -msgstr "dosya garip" - -#: src/diff.c:1070 src/diff.c:1256 -#, c-format -msgid "Only in %s: %s\n" -msgstr "Yalnızca %s'da: %s\n" - -#: src/diff.c:1193 -msgid "cannot compare `-' to a directory" -msgstr "`-', bir dizinle karşılaÅŸtırılamaz" - -#: src/diff.c:1220 -msgid "-D option not supported with directories" -msgstr "-D seçenek dizinler için kullanılamaz." - -#: src/diff.c:1229 -#, c-format -msgid "Common subdirectories: %s and %s\n" -msgstr "Ortak alt dizinler: %s ve %s\n" - -#: src/diff.c:1266 -#, c-format -msgid "File %s is a %s while file %s is a %s\n" -msgstr "%s dosyası, bir %s, halbuki %s dosyası bir %s\n" - -#: src/diff.c:1345 -#, c-format -msgid "Files %s and %s are identical\n" -msgstr "%s ve %s dosyaları birbirinin aynı\n" - -#: src/diff3.c:26 -msgid "Written by Randy Smith." -msgstr "Randy Smith tarafından yazılmıştır." - -#: src/diff3.c:328 -msgid "incompatible options" -msgstr "uyumsuz seçenekler" - -#: src/diff3.c:368 -msgid "`-' specified for more than one input file" -msgstr "`-' birden fazla girdi dosyası için belirtilmiÅŸ" - -#: src/diff3.c:408 src/diff3.c:1232 src/diff3.c:1645 src/diff3.c:1700 -#: src/sdiff.c:305 src/sdiff.c:879 src/sdiff.c:890 -msgid "read failed" -msgstr "okuma baÅŸarısız oldu" - -#: src/diff3.c:441 -msgid "-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE." -msgstr "" -"-e --ed ESKİDOSYA ile SİZİNDOSYA arasındaki harmanlanmamış farkları\n" -" BENİMDOSYA'ya çıktılar." - -#: src/diff3.c:442 -msgid "-E --show-overlap Output unmerged changes, bracketing conflicts." -msgstr "" -"-E --show-overlap Harmanlanmamış deÄŸiÅŸiklikleri çıktılar, ihtilafları \n" -" köşeli parantez içinde gösterir." - -#: src/diff3.c:443 -msgid "-A --show-all Output all changes, bracketing conflicts." -msgstr "" -"-A --show-all Bütün deÄŸiÅŸiklikleri çıktılar, ihtilafları köşeli parantez\n" -" içine alır." - -#: src/diff3.c:444 -msgid "-x --overlap-only Output overlapping changes." -msgstr "-x --overlap-only Birbiri ile örtüşen farkları gösterir." - -#: src/diff3.c:445 -msgid "-X Output overlapping changes, bracketing them." -msgstr "" -"-X Birbiriyle örtüşen farkları köşeli parantez içinde göstererek çıktılar." - -#: src/diff3.c:446 -msgid "-3 --easy-only Output unmerged nonoverlapping changes." -msgstr "" -"-3 --easy-only Harmanlanmamış, tekrarlanmayan deÄŸiÅŸiklikleri çıktılar." - -#: src/diff3.c:448 -msgid "-m --merge Output merged file instead of ed script (default -A)." -msgstr "" -"-m --merge Ed betiÄŸi yerine harmanlanmış dosya çıktılar. (öntanımlı -A)" - -#: src/diff3.c:449 -msgid "-L LABEL --label=LABEL Use LABEL instead of file name." -msgstr "-L ETİKET --label=ETİKET Dosya adı yerine ETİKET'i kullanır." - -#: src/diff3.c:450 -msgid "-i Append `w' and `q' commands to ed scripts." -msgstr "-i Ed betiklerinin sonuna `w' ve `q' komutlarını ekler." - -#: src/diff3.c:453 src/sdiff.c:202 -msgid "--diff-program=PROGRAM Use PROGRAM to compare files." -msgstr "" -"--diff-program=YAZILIM Dosyaları karşılaÅŸtırmak için YAZILIM'ı kullanır." - -#: src/diff3.c:465 -#, c-format -msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n" -msgstr "Kullanım: %s [SEÇENEK]... BENİMDOSYA ESKİDOSYA SİZİNDOSYA\n" - -#: src/diff3.c:467 -msgid "Compare three files line by line." -msgstr "Üç dosyayı satır satır karşılaÅŸtırır." - -#: src/diff3.c:673 -msgid "internal error: screwup in format of diff blocks" -msgstr "iç hata: diff blokları biçemlemesinde hata oluÅŸtu" - -#: src/diff3.c:971 -#, c-format -msgid "%s: diff failed: " -msgstr "%s: diff baÅŸarısız oldu:" - -#: src/diff3.c:993 -msgid "internal error: invalid diff type in process_diff" -msgstr "iç hata: process_diff iÅŸlevi içinde geçersiz diff türü" - -#: src/diff3.c:1018 -msgid "invalid diff format; invalid change separator" -msgstr "geçersiz diff biçemi; geçersiz fark ayracı" - -#: src/diff3.c:1242 -msgid "invalid diff format; incomplete last line" -msgstr "geçersiz diff biçemi; tamamlanmamış son satır" - -#: src/diff3.c:1265 src/sdiff.c:273 -#, c-format -msgid "subsidiary program `%s' not executable" -msgstr "alt yazılım `%s' çalışır deÄŸil" - -#: src/diff3.c:1268 src/sdiff.c:276 src/util.c:298 -#, c-format -msgid "subsidiary program `%s' not found" -msgstr "alt yazılım `%s' bulunamadı" - -#: src/diff3.c:1272 src/sdiff.c:268 src/util.c:301 -#, c-format -msgid "subsidiary program `%s' failed" -msgstr "alt yazılım `%s' baÅŸarısız oldu" - -#: src/diff3.c:1294 -msgid "invalid diff format; incorrect leading line chars" -msgstr "geçersiz diff biçemi; geçersiz satır başı karakterleri" - -#: src/diff3.c:1370 -msgid "internal error: invalid diff type passed to output" -msgstr "iç hata: çıktıya geçersiz diff türü geçirildi" - -#: src/diff3.c:1647 src/diff3.c:1704 -msgid "input file shrank" -msgstr "girdi dosyası küçüldü" - -#: src/dir.c:162 -#, c-format -msgid "cannot compare file names `%s' and `%s'" -msgstr "dosya isimleri `%s' ve `%s' karşılaÅŸtırılamıyor" - -#: src/sdiff.c:35 -msgid "Written by Thomas Lord." -msgstr "Thomas Lord tarafından yazılmıştır." - -#: src/sdiff.c:183 -msgid "-o FILE --output=FILE Operate interactively, sending output to FILE." -msgstr "" -"-o DOSYA --output=DOSYA Interaktif olarak çalışır, çıktıyı DOSYA'ya\n" -" yönlendirir." - -#: src/sdiff.c:185 -msgid "-i --ignore-case Consider upper- and lower-case to be the same." -msgstr "-i --ignore-case Büyük harf/küçük harf farkı gözetmez." - -#: src/sdiff.c:188 -msgid "-W --ignore-all-space Ignore all white space." -msgstr "-W --ignore-all-space Bütün boÅŸlukları yok sayar." - -#: src/sdiff.c:194 -msgid "-w NUM --width=NUM Output at most NUM (default 130) columns per line." -msgstr "" -"-w SAYI --width=SAYI Satır başına en fazla SAYI kadar karakter çıktılar\n" -" (öntanımlı 130)." - -#: src/sdiff.c:195 -msgid "-l --left-column Output only the left column of common lines." -msgstr "-l --left-column Ortak satırları yalnızca sol sütunda çıktılar." - -#: src/sdiff.c:196 -msgid "-s --suppress-common-lines Do not output common lines." -msgstr "-s --suppress-common-lines Ortak satırları göstermez." - -#: src/sdiff.c:201 -msgid "" -"-H --speed-large-files Assume large files and many scattered small changes." -msgstr "" -"-H --speed-large-files Büyük dosyalar ve çok sayıda dağınık küçük \n" -" farklar olduÄŸunu farzeder." - -#: src/sdiff.c:214 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 FILE2\n" -msgstr "Kullanım: %s [SEÇENEK]... DOSYA1 DOSYA2\n" - -#: src/sdiff.c:215 -msgid "Side-by-side merge of file differences." -msgstr "Dosya farklarının yanyana katıştırılması." - -#: src/sdiff.c:327 -msgid "cannot interactively merge standard input" -msgstr "interaktif olarak standart girdi harmanlanamaz" - -#: src/sdiff.c:588 -msgid "both files to be compared are directories" -msgstr "karşılaÅŸtırılacak her iki dosya da dizin" - -#: src/sdiff.c:853 -msgid "" -"ed:\tEdit then use both versions, each decorated with a header.\n" -"eb:\tEdit then use both versions.\n" -"el:\tEdit then use the left version.\n" -"er:\tEdit then use the right version.\n" -"e:\tEdit a new version.\n" -"l:\tUse the left version.\n" -"r:\tUse the right version.\n" -"s:\tSilently include common lines.\n" -"v:\tVerbosely include common lines.\n" -"q:\tQuit.\n" -msgstr "" -"ed:\tDüzenler, sonra iki tarafı da kullanır, bir baÅŸlıkla süsler.\n" -"eb:\tDüzenler, sonra iki tarafı da kullanır.\n" -"el:\tDüzenler, sonra sol tarafı kullanır.\n" -"er:\tDüzenler, sonra saÄŸ tarafı kullanır.\n" -"e:\tYeni bir sürüm düzenler.\n" -"l:\tSol tarafı kullanır.\n" -"r:\tSaÄŸ tarafı kullanır.\n" -"s:\tOrtak satırları sessizce dahil eder.\n" -"v:\tOrtak satırları bilgi vererek dahil eder.\n" -"q:\tÇıkar.\n" diff --git a/gnu/dist/diffutils/po/zh_TW.gmo b/gnu/dist/diffutils/po/zh_TW.gmo deleted file mode 100644 index c09ca46a577..00000000000 Binary files a/gnu/dist/diffutils/po/zh_TW.gmo and /dev/null differ diff --git a/gnu/dist/diffutils/po/zh_TW.po b/gnu/dist/diffutils/po/zh_TW.po deleted file mode 100644 index aff39f96028..00000000000 --- a/gnu/dist/diffutils/po/zh_TW.po +++ /dev/null @@ -1,922 +0,0 @@ -# traditional Chinese translation for diffutils. -# Copyright (C) 2002 Free Software Foundation, Inc. -# Abel Cheung , 2002. -# -msgid "" -msgstr "" -"Project-Id-Version: diffutils 2.7.10\n" -"POT-Creation-Date: 2002-04-05 14:10-0800\n" -"PO-Revision-Date: 2002-03-13 06:06+0800\n" -"Last-Translator: Abel Cheung \n" -"Language-Team: Chinese (traditional) \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=Big5\n" -"Content-Transfer-Encoding: 8bit\n" - -#: lib/c-stack.c:188 -msgid "program error" -msgstr "µ{¦¡¿ù»~" - -#: lib/c-stack.c:189 -msgid "stack overflow" -msgstr "°ïÅ|·¸¦ì" - -#: lib/error.c:128 lib/error.c:156 -msgid "Unknown system error" -msgstr "¤£©úªº¨t²Î¿ù»~" - -#: lib/freesoft.c:27 -msgid "" -"This program comes with NO WARRANTY, to the extent permitted by law.\n" -"You may redistribute copies of this program\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING." -msgstr "" -"¦¹³nÅé¦bªk«ß¤¹³\ªº­­«×¤§¤U¤£ªþ±a¥ô¦ó«OÃÒ¡C§A¥i¥H®Ú¾Ú GNU General Public\n" -"License ¤¤ªº±ø´Ú­«·s´²§G¦¹³nÅé¡C¸Ô½Ð½Ð°Ñ¦ÒÀÉ®× COPYING¡C" - -#: lib/getopt.c:693 -#, c-format -msgid "%s: option `%s' is ambiguous\n" -msgstr "%s¡G¿ï¶µ¡¥%s¡¦¬O¤£©ú½Tªº\n" - -#: lib/getopt.c:718 -#, c-format -msgid "%s: option `--%s' doesn't allow an argument\n" -msgstr "%s¡G¿ï¶µ¡¥--%s¡¦¤£¥i°t¦X°Ñ¼Æ¨Ï¥Î\n" - -#: lib/getopt.c:723 -#, c-format -msgid "%s: option `%c%s' doesn't allow an argument\n" -msgstr "%s¡G¿ï¶µ¡¥%c%s¡¦¤£¥i°t¦X°Ñ¼Æ¨Ï¥Î\n" - -#: lib/getopt.c:741 lib/getopt.c:914 -#, c-format -msgid "%s: option `%s' requires an argument\n" -msgstr "%s¡G¿ï¶µ¡¥%s¡¦»Ý­n°Ñ¼Æ\n" - -#: lib/getopt.c:770 -#, c-format -msgid "%s: unrecognized option `--%s'\n" -msgstr "%s¡GµLªkÃѧOªº¿ï¶µ¡¥--%s¡¦\n" - -#: lib/getopt.c:774 -#, c-format -msgid "%s: unrecognized option `%c%s'\n" -msgstr "%s¡GµLªkÃѧOªº¿ï¶µ¡¥%c%s¡¦\n" - -#: lib/getopt.c:800 -#, c-format -msgid "%s: illegal option -- %c\n" -msgstr "%s¡G¤£¦Xªkªº¿ï¶µ ¢w %c\n" - -#: lib/getopt.c:803 -#, c-format -msgid "%s: invalid option -- %c\n" -msgstr "%s¡GµL®Äªº¿ï¶µ ¢w %c\n" - -#: lib/getopt.c:833 lib/getopt.c:963 -#, c-format -msgid "%s: option requires an argument -- %c\n" -msgstr "%s¡G¿ï¶µ»Ý­n°Ñ¼Æ ¢w %c\n" - -#: lib/getopt.c:880 -#, c-format -msgid "%s: option `-W %s' is ambiguous\n" -msgstr "%s¡G¿ï¶µ¡¥-W %s¡¦¬O¤£©ú½Tªº\n" - -#: lib/getopt.c:898 -#, c-format -msgid "%s: option `-W %s' doesn't allow an argument\n" -msgstr "%s¡G¿ï¶µ¡¥-W %s¡¦¤£¥i°t¦X°Ñ¼Æ¨Ï¥Î\n" - -#: lib/regex.c:1367 -msgid "Success" -msgstr "¦¨¥\" - -#: lib/regex.c:1370 -msgid "No match" -msgstr "¨S¦³²Å¦Xªº¦r¦ê" - -#: lib/regex.c:1373 -msgid "Invalid regular expression" -msgstr "¤£¥¿½Tªº¥¿³Wªí¥Ü¦¡" - -#: lib/regex.c:1376 -msgid "Invalid collation character" -msgstr "µL®Äªº collation ¦r¤¸" - -#: lib/regex.c:1379 -msgid "Invalid character class name" -msgstr "µL®Äªº¦r¤¸ºØÃþ¦WºÙ" - -#: lib/regex.c:1382 -msgid "Trailing backslash" -msgstr "¥½ºÝ¦³¦h¾lªº¤Ï±×¸¹" - -#: lib/regex.c:1385 -msgid "Invalid back reference" -msgstr "µL®Äªº back reference" - -#: lib/regex.c:1388 -msgid "Unmatched [ or [^" -msgstr "¨S¦³¹ïÀ³ªº [ ©Î [^" - -#: lib/regex.c:1391 -msgid "Unmatched ( or \\(" -msgstr "¨S¦³¹ïÀ³ªº ( ©Î \\(" - -#: lib/regex.c:1394 -msgid "Unmatched \\{" -msgstr "¨S¦³¹ïÀ³ªº \\{" - -#: lib/regex.c:1397 -msgid "Invalid content of \\{\\}" -msgstr "\\{\\} ¤¤ªº¤º®eµL®Ä" - -#: lib/regex.c:1400 -msgid "Invalid range end" -msgstr "½d³ò¥½ºÝ¦r¤¸µL®Ä" - -#: lib/regex.c:1403 -msgid "Memory exhausted" -msgstr "°O¾ÐÅé¯ÓºÉ" - -#: lib/regex.c:1406 -msgid "Invalid preceding regular expression" -msgstr "¤§«eªº¥¿³Wªí¥Ü¦¡µL®Ä" - -#: lib/regex.c:1409 -msgid "Premature end of regular expression" -msgstr "¥¿³Wªí¥Ü¦¡¹L¦­µ²§ô" - -#: lib/regex.c:1412 -msgid "Regular expression too big" -msgstr "¥¿³Wªí¥Ü¦¡¹Lªø" - -#: lib/regex.c:1415 -msgid "Unmatched ) or \\)" -msgstr "¨S¦³¹ïÀ³ªº ) ©Î \\)" - -#: lib/regex.c:8034 -msgid "No previous regular expression" -msgstr "¤§«e¨S¦³¥ô¦ó¥¿³Wªí¥Ü¦¡" - -#: lib/xmalloc.c:63 -msgid "memory exhausted" -msgstr "°O¾ÐÅé¯ÓºÉ" - -#: src/analyze.c:809 src/diff.c:1283 -#, c-format -msgid "Files %s and %s differ\n" -msgstr "ÀÉ®× %s »P %s ¤£¦P\n" - -#: src/analyze.c:812 -#, c-format -msgid "Binary files %s and %s differ\n" -msgstr "¤G¤¸½XÀÉ %s »P %s ¤£¦P\n" - -#: src/analyze.c:1058 src/diff3.c:1413 src/util.c:526 -msgid "No newline at end of file" -msgstr "ÀÉ®×¥½¨S¦³ newline ¦r¤¸" - -#: src/cmp.c:43 -msgid "Written by Torbjorn Granlund and David MacKenzie." -msgstr "¥Ñ Torbjorn Granlund ¤Î David MacKenzie ½s¼g¡C" - -#: src/cmp.c:118 src/diff.c:817 src/diff3.c:427 src/sdiff.c:168 -#, c-format -msgid "Try `%s --help' for more information." -msgstr "½Ð¹Á¸Õ¡¥%s --help¡¦¨ÓÀò¨ú§ó¦h¸ê°T¡C" - -#: src/cmp.c:137 -#, c-format -msgid "invalid --ignore-initial value `%s'" -msgstr "µL®Äªº --ignore-initial ­È¡¥%s¡¦" - -#: src/cmp.c:146 -msgid "options -l and -s are incompatible" -msgstr "-l ©M -s ¿ï¶µ¤£­Ý®e" - -#: src/cmp.c:154 src/diff.c:826 src/diff3.c:435 src/sdiff.c:177 -#: src/sdiff.c:313 src/sdiff.c:320 src/sdiff.c:910 src/util.c:194 -#: src/util.c:286 src/util.c:293 -msgid "write failed" -msgstr "¼g¤J¥¢±Ñ" - -#: src/cmp.c:156 src/diff.c:828 src/diff.c:1354 src/diff3.c:437 -#: src/sdiff.c:179 -msgid "standard output" -msgstr "¼Ð·Ç¿é¥X" - -#: src/cmp.c:160 -msgid "-b --print-bytes Print differing bytes." -msgstr "-b --print-bytes ¦L¥X¬Û²§¦ì¸mªº¦ì¤¸²Õ¡C" - -#: src/cmp.c:161 -msgid "-i SKIP --ignore-initial=SKIP Skip the first SKIP bytes of input." -msgstr "-i SKIP --ignore-initial=SKIP ²¤¹L¿é¤J¸ê®Æªº³Ìªì SKIP ­Ó¦ì¤¸²Õ¡C" - -#: src/cmp.c:162 -msgid "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2" -msgstr "-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2" - -#: src/cmp.c:163 -msgid "" -" Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2." -msgstr " ²¤¹L FILE1 ªº³Ìªì SKIP1 ­Ó¦ì¤¸²Õ©M FILE2 ªº³Ìªì SKIP2 ­Ó¦ì¤¸²Õ¡C" - -#: src/cmp.c:164 -msgid "-l --verbose Output byte numbers and values of all differing bytes." -msgstr "-l --verbose Åã¥Ü¨âªÌ©Ò¦³¬Û²§ªº¦ì¸m©M¥¦­Ìªº¦ì¤¸²Õ¼Æ­È¡C" - -#: src/cmp.c:165 -msgid "-n LIMIT --bytes=LIMIT Compare at most LIMIT bytes." -msgstr "-n LIMIT --bytes=LIMIT ³Ì¦h¤ñ¸û LIMIT ­Ó¦ì¤¸²Õ¡C" - -#: src/cmp.c:166 -msgid "-s --quiet --silent Output nothing; yield exit status only." -msgstr "-s --quiet --silent ¤£¿é¥X¥ô¦ó¸ê°T¡F¥u²£¥Í¦^¶Ç­È¡C" - -#: src/cmp.c:167 src/diff.c:904 src/diff3.c:455 src/sdiff.c:204 -msgid "-v --version Output version info." -msgstr "-v --version Åã¥Üª©¥»¸ê°T¡C" - -#: src/cmp.c:168 src/diff.c:905 src/diff3.c:456 src/sdiff.c:205 -msgid "--help Output this help." -msgstr "--help Åã¥Ü¦¹¨D§U»¡©ú¡C" - -#: src/cmp.c:177 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n" -msgstr "¥Îªk¡G%s [¿ï¶µ]... ÀÉ®×1 [ÀÉ®×2 [SKIP1 [SKIP2]]]\n" - -#: src/cmp.c:179 -msgid "Compare two files byte by byte." -msgstr "¤ñ¸û¨â­ÓÀɮתº¨C¤@­Ó¦ì¤¸²Õ¡C" - -#: src/cmp.c:183 -msgid "SKIP1 and SKIP2 are the number of bytes to skip in each file." -msgstr "SKIP1 ©M SKIP2 ¬O¨C­ÓÀÉ®×·|²¤¹Lªº¦ì¤¸²Õ¼Æ¥Ø¡C" - -#: src/cmp.c:184 -msgid "" -"SKIP values may be followed by the following multiplicative suffixes:\n" -"kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -"GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y." -msgstr "" -"SKIP ­È¥i¥H¥[¤W¥H¤Uªº³æ¦ì¡G\n" -"kB=1000¡BK=1024¡BMB=1000000¡BM=1048576¡BGB=1000000000¡BG=1073741824¡A\n" -"ÁÙ¦³ T¡BP¡BE¡BZ¡BY ¦p¦¹Ãþ±À¡C" - -#: src/cmp.c:187 -msgid "If a FILE is `-' or missing, read standard input." -msgstr "¦pªGÀɮ׬O¡¥-¡¦©Î¨S¦³«ü©w¡A«h¥Ñ¼Ð·Ç¿é¤JŪ¤J¸ê®Æ¡C" - -#: src/cmp.c:188 src/diff.c:911 src/diff3.c:475 src/sdiff.c:223 -msgid "Report bugs to ." -msgstr "½Ð¦V ¦^³ø¿ù»~¡C" - -#: src/cmp.c:231 -#, c-format -msgid "invalid --bytes value `%s'" -msgstr "µL®Äªº --bytes ­È¡¥%s¡¦" - -#: src/cmp.c:258 src/diff.c:734 src/diff3.c:333 src/sdiff.c:558 -#, c-format -msgid "missing operand after `%s'" -msgstr "¡¥%s¡¦«á¯Ê¤Ö¤F°Ñ¼Æ" - -#: src/cmp.c:270 src/diff.c:736 src/diff3.c:335 src/sdiff.c:560 -#, c-format -msgid "extra operand `%s'" -msgstr "¦h¾lªº°Ñ¼Æ¡¥%s¡¦" - -#: src/cmp.c:477 -#, c-format -msgid "%s %s differ: byte %s, line %s\n" -msgstr "%s %s ¤£¦P¡G²Ä %s ¦ì¤¸²Õ¡A²Ä %s ¦æ\n" - -#: src/cmp.c:495 -#, c-format -msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n" -msgstr "%s %s ¤£¦P¡G²Ä %s ¦æ¡A²Ä %s ¦ì¤¸²Õ¬° %3o %s %3o %s\n" - -#: src/cmp.c:543 -#, c-format -msgid "cmp: EOF on %s\n" -msgstr "cmp¡G%s ¤wµ²§ô\n" - -#: src/diff.c:41 -msgid "" -"Written by Paul Eggert, Mike Haertel, David Hayes,\n" -"Richard Stallman, and Len Tower." -msgstr "" -"¥Ñ Paul Eggert¡BMike Haertel¡BDavid Hayes¡B\n" -"Richard Stallman ©M Len Tower ½s¼g¡C" - -#: src/diff.c:322 -#, c-format -msgid "invalid context length `%s'" -msgstr "µL®Äªº¤W¤U¤å¦æ¼Æ¡¥%s¡¦" - -#: src/diff.c:405 -msgid "pagination not supported on this host" -msgstr "¦¹¨t²Î¤£¤ä´©¤À­¶" - -#: src/diff.c:420 src/diff3.c:315 -msgid "too many file label options" -msgstr "¤Ó¦h¦³ÃöÀɮ׼лxªº¿ï¶µ" - -#: src/diff.c:498 -#, c-format -msgid "invalid width `%s'" -msgstr "µL®Äªº¼e«×¡¥%s¡¦" - -#: src/diff.c:502 -msgid "conflicting width options" -msgstr "¤¬¬Û©èIJªº¼e«×¿ï¶µ" - -#: src/diff.c:526 -#, c-format -msgid "invalid horizon length `%s'" -msgstr "µL®Äªº¤ô¥­ªø«×¡¥%s¡¦" - -#: src/diff.c:629 -#, c-format -msgid "`-%ld' option is obsolete; use `-%c %ld'" -msgstr "¡¥-%ld¡¦¿ï¶µ¤w¹L®É¡F½Ð¨Ï¥Î¡¥-%c %ld¡¦" - -#: src/diff.c:641 -#, c-format -msgid "`-%ld' option is obsolete; omit it" -msgstr "¡¥-%ld¡¦¿ï¶µ¤w¹L®É¡F·|©¿²¤¦¹¿ï¶µ" - -#: src/diff.c:709 -msgid "--from-file and --to-file both specified" -msgstr "¦P®É«ü©w¤F --from-file ¤Î --to-file ¿ï¶µ" - -#: src/diff.c:832 -msgid "Compare files line by line." -msgstr "¤ñ¸û¨â­ÓÀɮתº¨C¤@¦æ¡C" - -#: src/diff.c:834 -msgid "-i --ignore-case Ignore case differences in file contents." -msgstr "-i --ignore-case ¤£¤À¿ëÀɮפº®e¤¤ªº¤j¤p¼g¡C" - -#: src/diff.c:835 -msgid "--ignore-file-name-case Ignore case when comparing file names." -msgstr "--ignore-file-name-case ·í¤ñ¸ûÀɮצWºÙ®É¤£¤À¿ë¤j¤p¼g¡C" - -#: src/diff.c:836 -msgid "--no-ignore-file-name-case Consider case when comparing file names." -msgstr "--no-ignore-file-name-case ·í¤ñ¸ûÀɮצWºÙ®É·|¤À¿ë¤j¤p¼g¡C" - -#: src/diff.c:837 src/sdiff.c:186 -msgid "-E --ignore-tab-expansion Ignore changes due to tab expansion." -msgstr "-E --ignore-tab-expansion ©¿²¤¦]±N tab Âà´«¬°ªÅ®æ¦Ó³y¦¨ªº®t²§¡C" - -#: src/diff.c:838 src/sdiff.c:187 -msgid "-b --ignore-space-change Ignore changes in the amount of white space." -msgstr "-b --ignore-space-change ©¿²¤¦]ªÅ¥Õ¦r¤¸¼Æ¥Ø¤£¦P¦Ó³y¦¨ªº®t²§¡C" - -#: src/diff.c:839 -msgid "-w --ignore-all-space Ignore all white space." -msgstr "-w --ignore-all-space ©¿²¤©Ò¦³ªÅ¥Õ¦r¤¸¡C" - -#: src/diff.c:840 src/sdiff.c:189 -msgid "-B --ignore-blank-lines Ignore changes whose lines are all blank." -msgstr "-B --ignore-blank-lines ©¿²¤¥ô¦ó¦]ªÅ¦æ¦Ó³y¦¨ªº®t²§¡C" - -#: src/diff.c:841 src/sdiff.c:190 -msgid "" -"-I RE --ignore-matching-lines=RE Ignore changes whose lines all match RE." -msgstr "" -"-I RE --ignore-matching-lines=RE ©¿²¤¥ô¦ó²Å¦X«ü©wªº<¥¿³Wªí¥Ü¦¡>ªº¦a¤è¡C" - -#: src/diff.c:842 src/sdiff.c:191 -msgid "--strip-trailing-cr Strip trailing carriage return on input." -msgstr "--strip-trailing-cr ¥h°£¿é¤J¸ê®Æ¨C¦æ¥½ºÝªº carriage return ¦r¤¸¡C" - -#: src/diff.c:844 -msgid "--binary Read and write data in binary mode." -msgstr "--binary ¥H¤G¤¸½XÀɼҦ¡Åª¼g¸ê®Æ¡C" - -#: src/diff.c:846 src/diff3.c:451 src/sdiff.c:192 -msgid "-a --text Treat all files as text." -msgstr "-a --text ©Ò¦³Àɮ׳£¥H¤å¦rÀɤ覡³B²z¡C" - -#: src/diff.c:848 -msgid "" -"-c -C NUM --context[=NUM] Output NUM (default 3) lines of copied " -"context.\n" -"-u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified " -"context.\n" -" --label LABEL Use LABEL instead of file name.\n" -" -p --show-c-function Show which C function each change is in.\n" -" -F RE --show-function-line=RE Show the most recent line matching RE." -msgstr "" -"-c -C ¦æ¼Æ --context[=¦æ¼Æ] Åã¥Ü«ü©w<¦æ¼Æ>(¹w³] 3 ¦æ)copied ®æ¦¡ªº¤W¤U¤å\n" -"-u -U ¦æ¼Æ --unified[=¦æ¼Æ] Åã¥Ü«ü©w<¦æ¼Æ>(¹w³] 3 ¦æ)unified ®æ¦¡ªº¤W¤U" -"¤å\n" -" --label ¼Ð»x ¨Ï¥Î<¼Ð»x>¥N´ÀÀɮצWºÙ¡C\n" -" -p --show-c-function Åã¥Ü©M¨C­Ó®t²§¦³Ãöªº C ¨ç¦¡¦WºÙ¡C\n" -" -F RE --show-function-line=RE Åã¥Ü³Ì±µªñ¦Ó²Å¦X<¥¿³Wªí¥Ü¦¡>ªº¤@¦æ¡C" - -#: src/diff.c:853 -msgid "-q --brief Output only whether files differ." -msgstr "-q --brief ¥uÅã¥ÜÀɮ׬O§_¤£¦P¡C" - -#: src/diff.c:854 -msgid "-e --ed Output an ed script." -msgstr "-e --ed ¥H ed script ¤è¦¡¿é¥X¡C" - -#: src/diff.c:855 -msgid "--normal Output a normal diff." -msgstr "--normal ¥H¥¿±`ªº diff ¤è¦¡¿é¥X¡C" - -#: src/diff.c:856 -msgid "-n --rcs Output an RCS format diff." -msgstr "-n --rcs ¥H RCS diff ®æ¦¡¿é¥X¡C" - -#: src/diff.c:857 -msgid "" -"-y --side-by-side Output in two columns.\n" -" -W NUM --width=NUM Output at most NUM (default 130) print columns.\n" -" --left-column Output only the left column of common lines.\n" -" --suppress-common-lines Do not output common lines." -msgstr "" -"-y --side-by-side ¥H¨â¦C¨Ã±Æªº¤è¦¡Åã¥Ü¡C\n" -" -W NUM --width=NUM ¨C¦æÅã¥Ü³Ì¦h NUM (¹w³] 130) ­Ó¦r¤¸¡C\n" -" --left-column ·í¦³¨â¦æ¬Û¦P®É¥uÅã¥Ü¥ªÃ䪺¤@¦æ¡C\n" -" --suppress-common-lines ·í¦³¨â¦æ¬Û¦P®É¤£·|Åã¥Ü¡C" - -#: src/diff.c:861 -msgid "-D NAME --ifdef=NAME Output merged file to show `#ifdef NAME' diffs." -msgstr "-D NAME --ifdef=NAME ¿é¥Xªº¸ê®Æ¥H¡¥#ifdef NAME¡¦¤è¦¡¼Ð©ú®t²§¡C" - -#: src/diff.c:862 -msgid "" -"--GTYPE-group-format=GFMT Similar, but format GTYPE input groups with GFMT." -msgstr "" -"--GTYPE-group-format=GFMT ®ÄªGÃþ¦ü¡A¦ý·|¥H GFMT ®æ¦¡³B²z GTYPE ¿é¤J¦æ²Õ¡C" - -#: src/diff.c:863 -msgid "--line-format=LFMT Similar, but format all input lines with LFMT." -msgstr "--line-format=LFMT ®ÄªGÃþ¦ü¡A¦ý·|¥H LFMT ®æ¦¡³B²z¨C¤@¦æ¸ê®Æ¡C" - -#: src/diff.c:864 -msgid "" -"--LTYPE-line-format=LFMT Similar, but format LTYPE input lines with LFMT." -msgstr "" -"--LTYPE-line-format=LFMT ®ÄªGÃþ¦ü¡A¦ý·|¥H LFMT ®æ¦¡³B²z LTYPE ¿é¤J¦æ²Õ¡C" - -#: src/diff.c:865 -msgid " LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'." -msgstr "" -" LTYPE ¥i¥H¬O¡¥old¡¦¡B¡¥new¡¦©Î¡¥unchanged¡¦¡CGTYPE ¥i¥H¬O LTYPE ªº¿ï¾Ü\n" -" ©Î¬O¡¥changed¡¦¡C" - -#: src/diff.c:866 -msgid "" -" GFMT may contain:\n" -" %< lines from FILE1\n" -" %> lines from FILE2\n" -" %= lines common to FILE1 and FILE2\n" -" %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n" -" LETTERs are as follows for new group, lower case for old group:\n" -" F first line number\n" -" L last line number\n" -" N number of lines = L-F+1\n" -" E F-1\n" -" M L+1" -msgstr "" -" GFMT ¥i¥]¬A¡G\n" -" %< ¸Ó²Õ¤¤¨C¦æÄÝ©ó FILE1 ªº®t²§\n" -" %> ¸Ó²Õ¤¤¨C¦æÄÝ©ó FILE2 ªº®t²§\n" -" %= ¸Ó²Õ¤¤¦P®É¦b FILE1 ©M FILE2 ¥X²{ªº¨C¤@¦æ\n" -" %[-][¼e«×][.[ºë½T«×]]{doxX}¦r¤¸ ¥H printf ®æ¦¡ªí¥Ü¸Ó<¦r¤¸>¥Nªíªº¸ê®Æ\n" -" ¤j¼g<¦r¤¸>ªí¥ÜÄÝ©ó·sªºÀɮסA¤p¼gªí¥ÜÄÝ©óªºÀɮסC<¦r¤¸>ªº·N¸q¦p¤U¡G\n" -" F ¦æ²Õ¤¤²Ä¤@¦æªº¦æ¸¹\n" -" L ¦æ²Õ¤¤³Ì«á¤@¦æªº¦æ¸¹\n" -" N ¦æ¼Æ ( =L-F+1 )\n" -" E F-1\n" -" M L+1" - -#: src/diff.c:877 -msgid "" -" LFMT may contain:\n" -" %L contents of line\n" -" %l contents of line, excluding any trailing newline\n" -" %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number" -msgstr "" -" LFMT ¥i¥]¬A¡G\n" -" %L ¸Ó¦æªº¤º®e\n" -" %l ¸Ó¦æªº¤º®e¡A¦ý¤£¥]¬Aµ²§ôªº newline ¦r¤¸\n" -" %[-][¼e«×][.[ºë½T«×]]{doxX}n ¥H printf ®æ¦¡ªí¥Üªº¿é¤J¸ê®Æ¦æ¸¹" - -#: src/diff.c:881 -msgid "" -" Either GFMT or LFMT may contain:\n" -" %% %\n" -" %c'C' the single character C\n" -" %c'\\OOO' the character with octal code OOO" -msgstr "" -" GFMT ©Î LFMT ¥i¥]¬A¡G\n" -" %% %\n" -" %c'C' ¦r¤¸ C\n" -" %c'\\OOO' ¤K¶i¦ì¼Æ¦r OOO ©Ò¥Nªíªº¦r¤¸" - -#: src/diff.c:886 -msgid "-l --paginate Pass the output through `pr' to paginate it." -msgstr "-l --paginate ±N¿é¥X°e¦Ü¡¥pr¡¦«ü¥O¨Ó¤À­¶¡C" - -#: src/diff.c:887 src/sdiff.c:198 -msgid "-t --expand-tabs Expand tabs to spaces in output." -msgstr "-t --expand-tabs ±N¿é¥X¤¤ªº tab ´«¦¨ªÅ®æ¡C" - -#: src/diff.c:888 src/diff3.c:452 -msgid "-T --initial-tab Make tabs line up by prepending a tab." -msgstr "-T --initial-tab ¨C¦æ¥ý¥[¤W tab ¦r¤¸¡A¨Ï tab ¦r¤¸¥i¥H¹ï»ô¡C" - -#: src/diff.c:890 -msgid "-r --recursive Recursively compare any subdirectories found." -msgstr "-r --recursive ³s¦P©Ò¦³°Æ¥Ø¿ý¤@°_¤ñ¸û¡C" - -#: src/diff.c:891 -msgid "-N --new-file Treat absent files as empty." -msgstr "-N --new-file ¤£¦s¦bªºÀÉ®×¥HªÅ¥ÕÀɮפ覡³B²z¡C" - -#: src/diff.c:892 -msgid "--unidirectional-new-file Treat absent first files as empty." -msgstr "--unidirectional-new-file ­Y²Ä¤@­ÓÀɮפ£¦s¦b¡A¥HªÅ¥ÕÀɮ׳B²z¡C" - -#: src/diff.c:893 -msgid "-s --report-identical-files Report when two files are the same." -msgstr "-s --report-identical-files ·í¨â­ÓÀɮפ@¼Ë®É¤´µMÅã¥Üµ²ªG¡C" - -#: src/diff.c:894 -msgid "-x PAT --exclude=PAT Exclude files that match PAT." -msgstr "-x PAT --exclude=PAT ±Æ°£¼Ë¦¡¬° PAT ªºÀɮסC" - -#: src/diff.c:895 -msgid "" -"-X FILE --exclude-from=FILE Exclude files that match any pattern in FILE." -msgstr "-X FILE --exclude-from=FILE ±Æ°£©Ò¦³¦b FILE ¤¤¦C¥Xªº¼Ë¦¡ªºÀɮסC" - -#: src/diff.c:896 -msgid "" -"-S FILE --starting-file=FILE Start with FILE when comparing directories." -msgstr "-S FILE --starting-file=FILE ·í¤ñ¸û¥Ø¿ý®É¡A¥Ñ FILE ¶}©l¤ñ¸û¡C" - -#: src/diff.c:897 -msgid "" -"--from-file=FILE1 Compare FILE1 to all operands. FILE1 can be a directory." -msgstr "" -"--from-file=FILE1 ±N FILE1 ©M°Ñ¼Æ¤¤ªº©Ò¦³ÀÉ®×/¥Ø¿ý§@¤ñ¸û¡CFILE1 ¥i¥H¬O¥Ø¿ý¡C" - -#: src/diff.c:898 -msgid "" -"--to-file=FILE2 Compare all operands to FILE2. FILE2 can be a directory." -msgstr "" -"--to-file=FILE2 ±N°Ñ¼Æ¤¤ªº©Ò¦³ÀÉ®×/¥Ø¿ý©M FILE2 §@¤ñ¸û¡CFILE2 ¥i¥H¬O¥Ø¿ý¡C" - -#: src/diff.c:900 -msgid "--horizon-lines=NUM Keep NUM lines of the common prefix and suffix." -msgstr "--horizon-lines=NUM (¦¹¿ï¶µ¤£§@³B²z)" - -#: src/diff.c:901 src/sdiff.c:200 -msgid "-d --minimal Try hard to find a smaller set of changes." -msgstr "-d --minimal ºÉ¥i¯à§ä¥X³Ì¤pªº®t²§¡C" - -#: src/diff.c:902 -msgid "" -"--speed-large-files Assume large files and many scattered small changes." -msgstr "--speed-large-files °²³]ÀɮפQ¤À¤j¦Ó¥B·í¤¤§t¦³³\¦h¨Ç·Lªº®t²§¡C" - -#: src/diff.c:907 -msgid "" -"FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'." -msgstr "" -"FILES ªº®æ¦¡¥i¥H¬O¡¥FILE1 FILE2¡¦¡B¡¥DIR1 DIR2¡¦¡B¡¥DIR FILE...¡¦©Î\n" -" ¡¥FILE... DIR¡¦¡C" - -#: src/diff.c:908 -msgid "" -"If --from-file or --to-file is given, there are no restrictions on FILES." -msgstr "¦pªG¨Ï¥Î --from-file ©Î --to-file ¿ï¶µ¡AFILES ªº®æ¦¡«h¤£¨ü­­¨î¡C" - -#: src/diff.c:909 src/diff3.c:474 src/sdiff.c:222 -msgid "If a FILE is `-', read standard input." -msgstr "¦pªG FILE ¬O¡¥-¡¦¡A«h¥Ñ¼Ð·Ç¿é¤JŪ¨ú¸ê®Æ¡C" - -# It is intentional *not* to translate FILES -- maddog -#: src/diff.c:920 -#, c-format -msgid "Usage: %s [OPTION]... FILES\n" -msgstr "¥Îªk¡G%s [¿ï¶µ]... FILES\n" - -#: src/diff.c:949 -#, c-format -msgid "conflicting %s option value `%s'" -msgstr "¤¬¬Û¥Ù¬Þªº %s ¿ï¶µ¡A°Ñ¼Æ­È¬°¡¥%s¡¦" - -#: src/diff.c:962 -msgid "conflicting output style options" -msgstr "¤¬¬Û¥Ù¬Þªº¿é¥X¼Ò¦¡¿ï¶µ" - -#: src/diff.c:976 -msgid "regular empty file" -msgstr "´¶³qªÅ¥ÕÀÉ®×" - -#: src/diff.c:976 -msgid "regular file" -msgstr "´¶³qÀÉ®×" - -#: src/diff.c:978 -msgid "directory" -msgstr "¥Ø¿ý" - -#: src/diff.c:981 -msgid "block special file" -msgstr "°Ï¶ô¯S®íÀÉ®×" - -#: src/diff.c:984 -msgid "character special file" -msgstr "¦r¤¸¯S®íÀÉ®×" - -#: src/diff.c:987 -msgid "fifo" -msgstr "fifo" - -#: src/diff.c:991 -msgid "socket" -msgstr "socket" - -#: src/diff.c:994 -msgid "message queue" -msgstr "°T®§¦î¦C" - -#: src/diff.c:997 -msgid "semaphore" -msgstr "semaphore" - -#: src/diff.c:1000 -msgid "shared memory object" -msgstr "¤À¨É°O¾Ðª«¥ó" - -#: src/diff.c:1003 -msgid "typed memory object" -msgstr "¤ÀÃþ°O¾Ðª«¥ó" - -#: src/diff.c:1006 -msgid "weird file" -msgstr "¤£´M±`ªºÀÉ®×" - -#: src/diff.c:1070 src/diff.c:1256 -#, c-format -msgid "Only in %s: %s\n" -msgstr "¥u¦b %s ¦s¦b¡G%s\n" - -#: src/diff.c:1193 -msgid "cannot compare `-' to a directory" -msgstr "¡¥-¡¦µLªk»P¥Ø¿ý§@¤ñ¸û" - -#: src/diff.c:1220 -msgid "-D option not supported with directories" -msgstr "-D ¿ï¶µ¤£¥i°t¦X¥Ø¿ý¨Ï¥Î" - -#: src/diff.c:1229 -#, c-format -msgid "Common subdirectories: %s and %s\n" -msgstr "%s ©M %s ¦³¦@¦Pªº°Æ¥Ø¿ý\n" - -#: src/diff.c:1266 -#, c-format -msgid "File %s is a %s while file %s is a %s\n" -msgstr "ÀÉ®× %s ¬O%s¦ÓÀÉ®× %s ¬O%s\n" - -#: src/diff.c:1345 -#, c-format -msgid "Files %s and %s are identical\n" -msgstr "ÀÉ®× %s ©M %s ¬Û¦P\n" - -#: src/diff3.c:26 -msgid "Written by Randy Smith." -msgstr "¥Ñ Randy Smith ½s¼g¡C" - -#: src/diff3.c:328 -msgid "incompatible options" -msgstr "¤£­Ý®eªº¿ï¶µ" - -#: src/diff3.c:368 -msgid "`-' specified for more than one input file" -msgstr "¦h©ó¤@­Óªº¿é¤JÀɬO¡¥-¡¦" - -#: src/diff3.c:408 src/diff3.c:1232 src/diff3.c:1645 src/diff3.c:1700 -#: src/sdiff.c:305 src/sdiff.c:879 src/sdiff.c:890 -msgid "read failed" -msgstr "Ū¨ú¸ê®Æ¥¢±Ñ" - -#: src/diff3.c:441 -msgid "-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE." -msgstr "" -"-e --ed ¨ú¥X¥Ñ OLDFILE ¦Ü YOURFILE ªº§ó§ï³¡¥÷¡A¨Ã¿é¥X¥i±N¦¹\n" -" §ïÅÜ®M¥Î¦Ü MYFILE ªº ed script¡C" - -#: src/diff3.c:442 -msgid "-E --show-overlap Output unmerged changes, bracketing conflicts." -msgstr "-E --show-overlap Åã¥Ü¥¼¦X¨Öªº§ó§ï³¡¥÷¡A¨Ã¬A¤W¤¬¬Û©èIJªº¦a¤è¡C" - -#: src/diff3.c:443 -msgid "-A --show-all Output all changes, bracketing conflicts." -msgstr "-A --show-all Åã¥Ü©Ò¦³­n§ó§ïªº³¡¥÷¡A¨Ã¬A¤W¤¬¬Û©èIJªº¦a¤è¡C" - -#: src/diff3.c:444 -msgid "-x --overlap-only Output overlapping changes." -msgstr "-x --overlap-only ¥uÅã¥Ü­«Å|ªº§ó§ï³¡¥÷¡C" - -#: src/diff3.c:445 -msgid "-X Output overlapping changes, bracketing them." -msgstr "-X Åã¥Ü­«Å|ªº§ó§ï³¡¥÷¡A¨Ã¬A¤W°O¸¹¡C" - -#: src/diff3.c:446 -msgid "-3 --easy-only Output unmerged nonoverlapping changes." -msgstr "-3 --easy-only Åã¥Ü¥¼¦X¨Ö¦Ó¥B¤£­«Å|ªº§ó§ï³¡¥÷¡C" - -#: src/diff3.c:448 -msgid "-m --merge Output merged file instead of ed script (default -A)." -msgstr "-m --merge Åã¥Ü¦X¨Ö«áªºÀɮצӤ£¬O ed script (¹w³]¥[¤W -A)¡C" - -#: src/diff3.c:449 -msgid "-L LABEL --label=LABEL Use LABEL instead of file name." -msgstr "-L ¼Ð»x --label=¼Ð»x ¥H<¼Ð»x>¥N´ÀÀɮצWºÙ¡C" - -#: src/diff3.c:450 -msgid "-i Append `w' and `q' commands to ed scripts." -msgstr "-i ¦b ed script ¤¤ªþ¥[¡¥w¡¦©M¡¥q¡¦«ü¥O¡C" - -#: src/diff3.c:453 src/sdiff.c:202 -msgid "--diff-program=PROGRAM Use PROGRAM to compare files." -msgstr "--diff-program=µ{¦¡ ¨Ï¥Î<µ{¦¡>¨Ó¤ñ¸ûÀɮסC" - -#: src/diff3.c:465 -#, c-format -msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n" -msgstr "¥Îªk¡G%s [¿ï¶µ]... MYFILE OLDFILE YOURFILE\n" - -#: src/diff3.c:467 -msgid "Compare three files line by line." -msgstr "¤ñ¸û¤T­ÓÀɮתº¨C¤@¦æ¡C" - -#: src/diff3.c:673 -msgid "internal error: screwup in format of diff blocks" -msgstr "¤º³¡¿ù»~¡Gdiff °Ï¬qªº®æ¦¡¥X¿ù" - -#: src/diff3.c:971 -#, c-format -msgid "%s: diff failed: " -msgstr "%s¡Gdiff ¥¢±Ñ¡G" - -#: src/diff3.c:993 -msgid "internal error: invalid diff type in process_diff" -msgstr "¤º³¡¿ù»~¡Gprocess_diff ¤¤ªº diff Ãþ«¬µL®Ä" - -#: src/diff3.c:1018 -msgid "invalid diff format; invalid change separator" -msgstr "µL®Äªº diff ®æ¦¡¡Fªí¥Ü¸ê®ÆÅܧ󪺤À¹j¦r¦êµL®Ä" - -#: src/diff3.c:1242 -msgid "invalid diff format; incomplete last line" -msgstr "µL®Äªº diff ®æ¦¡¡F³Ì«á¤@¦æ¤£§¹¾ã" - -#: src/diff3.c:1265 src/sdiff.c:273 -#, c-format -msgid "subsidiary program `%s' not executable" -msgstr "©Ò»Ýªºµ{¦¡¡¥%s¡¦µLªk°õ¦æ" - -#: src/diff3.c:1268 src/sdiff.c:276 src/util.c:298 -#, c-format -msgid "subsidiary program `%s' not found" -msgstr "§ä¤£¨ì©Ò»Ýªºµ{¦¡¡¥%s¡¦" - -#: src/diff3.c:1272 src/sdiff.c:268 src/util.c:301 -#, c-format -msgid "subsidiary program `%s' failed" -msgstr "µ{¦¡¡¥%s¡¦¦^¶Ç¿ù»~" - -#: src/diff3.c:1294 -msgid "invalid diff format; incorrect leading line chars" -msgstr "diff ®æ¦¡µL®Ä¡F¬Y¦æªº²Ä¤@­Ó¦r¤¸¤£¥¿½T" - -#: src/diff3.c:1370 -msgid "internal error: invalid diff type passed to output" -msgstr "¤º³¡¿ù»~¡G·Ç³Æ¿é¥Xªº diff ¸ê®ÆÃþ«¬µL®Ä" - -#: src/diff3.c:1647 src/diff3.c:1704 -msgid "input file shrank" -msgstr "¿é¤JÀÉÁY¤p" - -#: src/dir.c:162 -#, c-format -msgid "cannot compare file names `%s' and `%s'" -msgstr "µLªk¤ñ¸ûÀɮצWºÙ¡¥%s¡¦©M¡¥%s¡¦" - -#: src/sdiff.c:35 -msgid "Written by Thomas Lord." -msgstr "¥Ñ Thomas Lord ½s¼g¡C" - -#: src/sdiff.c:183 -msgid "-o FILE --output=FILE Operate interactively, sending output to FILE." -msgstr "-o ÀÉ®× --output=ÀÉ®× ¤¬°Ê¦¡¾Þ§@¡A¨Ã±Nµ²ªG¼g¤J¦Ü<ÀÉ®×>¡C" - -#: src/sdiff.c:185 -msgid "-i --ignore-case Consider upper- and lower-case to be the same." -msgstr "-i --ignore-case ¤£¤À¿ëÀɮפº®e¤¤ªº¤j¤p¼g¡C" - -#: src/sdiff.c:188 -msgid "-W --ignore-all-space Ignore all white space." -msgstr "-W --ignore-all-space ©¿²¤©Ò¦³ªÅ¥Õ¦r¤¸¡C" - -#: src/sdiff.c:194 -msgid "-w NUM --width=NUM Output at most NUM (default 130) columns per line." -msgstr "-w NUM --width=NUM ¨C¦æÅã¥Ü³Ì¦h NUM¡]¹w³] 130¡^­Ó¦r¤¸¡C" - -#: src/sdiff.c:195 -msgid "-l --left-column Output only the left column of common lines." -msgstr "-l --left-column ·í¦³¨â¦æ¬Û¦P®É¥uÅã¥Ü¥ªÃ䪺¤@¦æ¡C" - -#: src/sdiff.c:196 -msgid "-s --suppress-common-lines Do not output common lines." -msgstr "-s --suppress-common-lines ·í¦³¨â¦æ¬Û¦P®É¤£·|Åã¥Ü¡C" - -#: src/sdiff.c:201 -msgid "" -"-H --speed-large-files Assume large files and many scattered small changes." -msgstr "-H --speed-large-files °²³]ÀɮפQ¤À¤j¦Ó¥B·í¤¤§t¦³³\¦h¨Ç·Lªº®t²§¡C" - -#: src/sdiff.c:214 -#, c-format -msgid "Usage: %s [OPTION]... FILE1 FILE2\n" -msgstr "¥Îªk¡G%s [¿ï¶µ]... ÀÉ®×1 ÀÉ®×2\n" - -#: src/sdiff.c:215 -msgid "Side-by-side merge of file differences." -msgstr "¥H¨Ã±Æ¤è¦¡¦X¨ÖÀɮפ§¶¡ªº®t²§¡C" - -#: src/sdiff.c:327 -msgid "cannot interactively merge standard input" -msgstr "¤£¤¹³\¥H¤¬°Ê¤è¦¡¦X¨Ö¼Ð·Ç¿é¤Jªº¸ê®Æ" - -#: src/sdiff.c:588 -msgid "both files to be compared are directories" -msgstr "¨â­Ó­n¤ñ¸ûªº³£¬O¥Ø¿ý" - -#: src/sdiff.c:853 -msgid "" -"ed:\tEdit then use both versions, each decorated with a header.\n" -"eb:\tEdit then use both versions.\n" -"el:\tEdit then use the left version.\n" -"er:\tEdit then use the right version.\n" -"e:\tEdit a new version.\n" -"l:\tUse the left version.\n" -"r:\tUse the right version.\n" -"s:\tSilently include common lines.\n" -"v:\tVerbosely include common lines.\n" -"q:\tQuit.\n" -msgstr "" -"ed¡G\t½s¿è¨âÃ䪺ª©¥»¦X¨Ö«áªº¸ê®Æ¡A¦Uª©¥»¤À§O¥[¤W¼ÐÀY¥H¸êÃѧO¡C\n" -"eb¡G\t½s¿è¨âÃ䪺ª©¥»¦X¨Ö«áªº¸ê®Æ¡C\n" -"el¡G\t¨Ï¥Î¥ªÃ䪺ª©¥»¨Ó¶i¦æ½s¿è¡C\n" -"er¡G\t¨Ï¥Î¥kÃ䪺ª©¥»¨Ó¶i¦æ½s¿è¡C\n" -"e ¡G\t½s¿è·sªºª©¥»¡C\n" -"l ¡G\t¨Ï¥Î¥ªÃ䪺ª©¥»¡C\n" -"r ¡G\t¨Ï¥Î¥kÃ䪺ª©¥»¡C\n" -"s ¡G\t¥[¤W¨âÃä¤@¼Ëªº¦æ²Õ®É¤£¦bµe­±Åã¥Ü¡C\n" -"v ¡G\t¥[¤W¨âÃä¤@¼Ëªº¦æ²Õ®É·|¦bµe­±Åã¥Ü¡C\n" -"q ¡G\tÂ÷¶}¡C\n" - -#~ msgid "--inhibit-hunk-merge Do not merge hunks." -#~ msgstr "--inhibit-hunk-merge (¦¹¿ï¶µ¤£§@³B²z)" - -#~ msgid "" -#~ "SKIP values may be followed by the following multiplicative suffixes:\n" -#~ msgstr "SKIP ­È¥i¥H¥[¤W¥H¤Uªº³æ¦ì¡G\n" - -#~ msgid "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n" -#~ msgstr "kB 1000¡BK 1024¡BMB 1,000,000¡BM 1,048,576¡B\n" - -#~ msgid "GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y.\n" -#~ msgstr "GB 1,000,000,000¡BG 1,073,741,824¡BÁÙ¦³ T¡BP¡BE¡BZ¡BY ¦p¦¹Ãþ±À¡C\n" - -#~ msgid "multiple `--from-file' options" -#~ msgstr "¡¥--from-file¡¦¿ï¶µ¤£¥i¨Ï¥Î¦h©ó¤@¦¸" - -#~ msgid "multiple `--to-file' options" -#~ msgstr "¡¥--to-file¡¦¿ï¶µ¤£¥i¨Ï¥Î¦h©ó¤@¦¸" - -#~ msgid "regular executable file" -#~ msgstr "¥¿±`¥i°õ¦æÀÉ" - -#~ msgid "If a FILE is `-', read standard input.\n" -#~ msgstr "¦pªGÀɮ׬O¡¥-¡¦¡A«h¥Ñ¼Ð·Ç¿é¤JŪ¤J¸ê®Æ¡C\n" diff --git a/gnu/dist/diffutils/src/Makefile.am b/gnu/dist/diffutils/src/Makefile.am deleted file mode 100644 index 9d382a5af0e..00000000000 --- a/gnu/dist/diffutils/src/Makefile.am +++ /dev/null @@ -1,44 +0,0 @@ -# Automakefile for GNU diffutils programs. - -# Copyright (C) 2001, 2002 Free Software Foundation, Inc. - -## This program is free software; you can redistribute it and/or modify -## it under the terms of the GNU General Public License as published by -## the Free Software Foundation; either version 2, or (at your option) -## any later version. - -## This program is distributed in the hope that it will be useful, -## but WITHOUT ANY WARRANTY; without even the implied warranty of -## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -## GNU General Public License for more details. - -## You should have received a copy of the GNU General Public License -## along with this program; if not, write to the Free Software -## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -## 02111-1307, USA. - -bin_PROGRAMS = cmp diff diff3 sdiff - -noinst_HEADERS = diff.h system.h - -localedir = $(datadir)/locale - -AM_CPPFLAGS = -I../lib -I$(top_srcdir)/lib -DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ - -LDADD = ../lib/libdiffutils.a @LIBINTL@ -diff_LDADD = $(LDADD) @LIB_CLOCK_GETTIME@ - -cmp_SOURCES = cmp.c version.c -diff3_SOURCES = diff3.c version.c -sdiff_SOURCES = sdiff.c version.c -diff_SOURCES = \ - analyze.c context.c diff.c dir.c ed.c ifdef.c io.c \ - normal.c side.c util.c version.c - -MAINTAINERCLEANFILES = $(srcdir)/version.c - -$(srcdir)/version.c: $(top_srcdir)/configure.ac - (echo '#include ' && \ - echo 'char const version_string[] = "(GNU $(PACKAGE)) $(VERSION)";') \ - >$@ diff --git a/gnu/dist/diffutils/src/Makefile.in b/gnu/dist/diffutils/src/Makefile.in deleted file mode 100644 index 287f368da82..00000000000 --- a/gnu/dist/diffutils/src/Makefile.in +++ /dev/null @@ -1,418 +0,0 @@ -# Makefile.in generated by automake 1.6 from Makefile.am. -# @configure_input@ - -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 -# 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. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# Automakefile for GNU diffutils programs. - -# Copyright (C) 2001, 2002 Free Software Foundation, Inc. -SHELL = @SHELL@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -sbindir = @sbindir@ -libexecdir = @libexecdir@ -datadir = @datadir@ -sysconfdir = @sysconfdir@ -sharedstatedir = @sharedstatedir@ -localstatedir = @localstatedir@ -libdir = @libdir@ -infodir = @infodir@ -mandir = @mandir@ -includedir = @includedir@ -oldincludedir = /usr/include -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = .. - -ACLOCAL = @ACLOCAL@ -AUTOCONF = @AUTOCONF@ -AUTOMAKE = @AUTOMAKE@ -AUTOHEADER = @AUTOHEADER@ - -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_DATA = @INSTALL_DATA@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_HEADER = $(INSTALL_DATA) -transform = @program_transform_name@ -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -host_alias = @host_alias@ -host_triplet = @host@ - -EXEEXT = @EXEEXT@ -OBJEXT = @OBJEXT@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -AMTAR = @AMTAR@ -AWK = @AWK@ -BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ -CATOBJEXT = @CATOBJEXT@ -CC = @CC@ -CPP = @CPP@ -DATADIRNAME = @DATADIRNAME@ -DEPDIR = @DEPDIR@ -GENCAT = @GENCAT@ -GLIBC21 = @GLIBC21@ -GMSGFMT = @GMSGFMT@ -HAVE_LIB = @HAVE_LIB@ -HELP2MAN = @HELP2MAN@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -INSTOBJEXT = @INSTOBJEXT@ -INTLBISON = @INTLBISON@ -INTLLIBS = @INTLLIBS@ -INTLOBJS = @INTLOBJS@ -INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ -LIB = @LIB@ -LIBICONV = @LIBICONV@ -LIBINTL = @LIBINTL@ -LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@ -LTLIB = @LTLIB@ -LTLIBICONV = @LTLIBICONV@ -LTLIBINTL = @LTLIBINTL@ -MKINSTALLDIRS = @MKINSTALLDIRS@ -PACKAGE = @PACKAGE@ -POSUB = @POSUB@ -PR_PROGRAM = @PR_PROGRAM@ -RANLIB = @RANLIB@ -STRIP = @STRIP@ -U = @U@ -USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ -USE_NLS = @USE_NLS@ -VERSION = @VERSION@ -am__include = @am__include@ -am__quote = @am__quote@ -install_sh = @install_sh@ - -bin_PROGRAMS = cmp diff diff3 sdiff - -noinst_HEADERS = diff.h system.h - -localedir = $(datadir)/locale - -AM_CPPFLAGS = -I../lib -I$(top_srcdir)/lib -DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@ - -LDADD = ../lib/libdiffutils.a @LIBINTL@ -diff_LDADD = $(LDADD) @LIB_CLOCK_GETTIME@ - -cmp_SOURCES = cmp.c version.c -diff3_SOURCES = diff3.c version.c -sdiff_SOURCES = sdiff.c version.c -diff_SOURCES = \ - analyze.c context.c diff.c dir.c ed.c ifdef.c io.c \ - normal.c side.c util.c version.c - - -MAINTAINERCLEANFILES = $(srcdir)/version.c -subdir = src -mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs -CONFIG_HEADER = $(top_builddir)/config.h -CONFIG_CLEAN_FILES = -bin_PROGRAMS = cmp$(EXEEXT) diff$(EXEEXT) diff3$(EXEEXT) sdiff$(EXEEXT) -PROGRAMS = $(bin_PROGRAMS) - -am_cmp_OBJECTS = cmp.$(OBJEXT) version.$(OBJEXT) -cmp_OBJECTS = $(am_cmp_OBJECTS) -cmp_LDADD = $(LDADD) -cmp_DEPENDENCIES = ../lib/libdiffutils.a -cmp_LDFLAGS = -am_diff_OBJECTS = analyze.$(OBJEXT) context.$(OBJEXT) diff.$(OBJEXT) \ - dir.$(OBJEXT) ed.$(OBJEXT) ifdef.$(OBJEXT) io.$(OBJEXT) \ - normal.$(OBJEXT) side.$(OBJEXT) util.$(OBJEXT) \ - version.$(OBJEXT) -diff_OBJECTS = $(am_diff_OBJECTS) -diff_DEPENDENCIES = ../lib/libdiffutils.a -diff_LDFLAGS = -am_diff3_OBJECTS = diff3.$(OBJEXT) version.$(OBJEXT) -diff3_OBJECTS = $(am_diff3_OBJECTS) -diff3_LDADD = $(LDADD) -diff3_DEPENDENCIES = ../lib/libdiffutils.a -diff3_LDFLAGS = -am_sdiff_OBJECTS = sdiff.$(OBJEXT) version.$(OBJEXT) -sdiff_OBJECTS = $(am_sdiff_OBJECTS) -sdiff_LDADD = $(LDADD) -sdiff_DEPENDENCIES = ../lib/libdiffutils.a -sdiff_LDFLAGS = -DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) -CPPFLAGS = @CPPFLAGS@ -LDFLAGS = @LDFLAGS@ -LIBS = @LIBS@ -depcomp = $(SHELL) $(top_srcdir)/config/depcomp -am__depfiles_maybe = depfiles -@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/analyze.Po ./$(DEPDIR)/cmp.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/context.Po ./$(DEPDIR)/diff.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/diff3.Po ./$(DEPDIR)/dir.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/ed.Po ./$(DEPDIR)/ifdef.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/io.Po ./$(DEPDIR)/normal.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/sdiff.Po ./$(DEPDIR)/side.Po \ -@AMDEP_TRUE@ ./$(DEPDIR)/util.Po ./$(DEPDIR)/version.Po -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -CFLAGS = @CFLAGS@ -DIST_SOURCES = $(cmp_SOURCES) $(diff_SOURCES) $(diff3_SOURCES) \ - $(sdiff_SOURCES) -HEADERS = $(noinst_HEADERS) - -DIST_COMMON = $(noinst_HEADERS) Makefile.am Makefile.in -SOURCES = $(cmp_SOURCES) $(diff_SOURCES) $(diff3_SOURCES) $(sdiff_SOURCES) - -all: all-am - -.SUFFIXES: -.SUFFIXES: .c .o .obj -$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) - cd $(top_srcdir) && \ - $(AUTOMAKE) --gnits src/Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) -binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - $(mkinstalldirs) $(DESTDIR)$(bindir) - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ - if test -f $$p \ - ; then \ - p1=`echo "$$p1" | sed -e 's,^.*/,,'`; \ - f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \ - echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \ - $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f; \ - else :; fi; \ - done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ - f=`echo "$$f" | sed -e 's,^.*/,,'`; \ - echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ - rm -f $(DESTDIR)$(bindir)/$$f; \ - done - -clean-binPROGRAMS: - -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) -cmp$(EXEEXT): $(cmp_OBJECTS) $(cmp_DEPENDENCIES) - @rm -f cmp$(EXEEXT) - $(LINK) $(cmp_LDFLAGS) $(cmp_OBJECTS) $(cmp_LDADD) $(LIBS) -diff$(EXEEXT): $(diff_OBJECTS) $(diff_DEPENDENCIES) - @rm -f diff$(EXEEXT) - $(LINK) $(diff_LDFLAGS) $(diff_OBJECTS) $(diff_LDADD) $(LIBS) -diff3$(EXEEXT): $(diff3_OBJECTS) $(diff3_DEPENDENCIES) - @rm -f diff3$(EXEEXT) - $(LINK) $(diff3_LDFLAGS) $(diff3_OBJECTS) $(diff3_LDADD) $(LIBS) -sdiff$(EXEEXT): $(sdiff_OBJECTS) $(sdiff_DEPENDENCIES) - @rm -f sdiff$(EXEEXT) - $(LINK) $(sdiff_LDFLAGS) $(sdiff_OBJECTS) $(sdiff_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) core *.core - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/analyze.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmp.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/context.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diff.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diff3.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ed.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ifdef.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/normal.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sdiff.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/side.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version.Po@am__quote@ - -distclean-depend: - -rm -rf ./$(DEPDIR) - -.c.o: -@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - $(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$< - -.c.obj: -@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ -@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ - $(COMPILE) -c `cygpath -w $<` -CCDEPMODE = @CCDEPMODE@ -uninstall-info-am: - -ETAGS = etags -ETAGSFLAGS = - -tags: TAGS - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique - -TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(ETAGS_ARGS)$$tags$$unique" \ - || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) - -top_distdir = .. -distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) - -distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkinstalldirs) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - cp -pR $$d/$$file $(distdir)$$dir \ - || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) $(HEADERS) - -installdirs: - $(mkinstalldirs) $(DESTDIR)$(bindir) - -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-binPROGRAMS clean-generic mostlyclean-am - -distclean: distclean-am - -distclean-am: clean-am distclean-compile distclean-depend \ - distclean-generic distclean-tags - -dvi: dvi-am - -dvi-am: - -info: info-am - -info-am: - -install-data-am: - -install-exec-am: install-binPROGRAMS - -install-info: install-info-am - -install-man: - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -uninstall-am: uninstall-binPROGRAMS uninstall-info-am - -.PHONY: GTAGS all all-am check check-am clean clean-binPROGRAMS \ - clean-generic distclean distclean-compile distclean-depend \ - distclean-generic distclean-tags distdir dvi dvi-am info \ - info-am install install-am install-binPROGRAMS install-data \ - install-data-am install-exec install-exec-am install-info \ - install-info-am install-man install-strip installcheck \ - installcheck-am installdirs maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-compile \ - mostlyclean-generic tags uninstall uninstall-am \ - uninstall-binPROGRAMS uninstall-info-am - - -$(srcdir)/version.c: $(top_srcdir)/configure.ac - (echo '#include ' && \ - echo 'char const version_string[] = "(GNU $(PACKAGE)) $(VERSION)";') \ - >$@ -# 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/gnu/dist/diffutils/src/analyze.c b/gnu/dist/diffutils/src/analyze.c deleted file mode 100644 index 4271d23bf2f..00000000000 --- a/gnu/dist/diffutils/src/analyze.c +++ /dev/null @@ -1,1070 +0,0 @@ -/* $NetBSD: analyze.c,v 1.1.1.1 2003/01/26 00:43:16 wiz Exp $ */ - -/* Analyze file differences for GNU DIFF. - - Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1998, 2001, 2002 - Free Software Foundation, Inc. - - This file is part of GNU DIFF. - - GNU DIFF is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU DIFF is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -/* The basic algorithm is described in: - "An O(ND) Difference Algorithm and its Variations", Eugene Myers, - Algorithmica Vol. 1 No. 2, 1986, pp. 251-266; - see especially section 4.2, which describes the variation used below. - Unless the --minimal option is specified, this code uses the TOO_EXPENSIVE - heuristic, by Paul Eggert, to limit the cost to O(N**1.5 log N) - at the price of producing suboptimal output for large inputs with - many differences. - - The basic algorithm was independently discovered as described in: - "Algorithms for Approximate String Matching", E. Ukkonen, - Information and Control Vol. 64, 1985, pp. 100-118. */ - -#include "diff.h" -#include -#include -#include -#include - -static lin *xvec, *yvec; /* Vectors being compared. */ -static lin *fdiag; /* Vector, indexed by diagonal, containing - 1 + the X coordinate of the point furthest - along the given diagonal in the forward - search of the edit matrix. */ -static lin *bdiag; /* Vector, indexed by diagonal, containing - the X coordinate of the point furthest - along the given diagonal in the backward - search of the edit matrix. */ -static lin too_expensive; /* Edit scripts longer than this are too - expensive to compute. */ - -#define SNAKE_LIMIT 20 /* Snakes bigger than this are considered `big'. */ - -struct partition -{ - lin xmid, ymid; /* Midpoints of this partition. */ - bool lo_minimal; /* Nonzero if low half will be analyzed minimally. */ - bool hi_minimal; /* Likewise for high half. */ -}; - -/* Find the midpoint of the shortest edit script for a specified - portion of the two files. - - Scan from the beginnings of the files, and simultaneously from the ends, - doing a breadth-first search through the space of edit-sequence. - When the two searches meet, we have found the midpoint of the shortest - edit sequence. - - If FIND_MINIMAL is nonzero, find the minimal edit script regardless - of expense. Otherwise, if the search is too expensive, use - heuristics to stop the search and report a suboptimal answer. - - Set PART->(xmid,ymid) to the midpoint (XMID,YMID). The diagonal number - XMID - YMID equals the number of inserted lines minus the number - of deleted lines (counting only lines before the midpoint). - Return the approximate edit cost; this is the total number of - lines inserted or deleted (counting only lines before the midpoint), - unless a heuristic is used to terminate the search prematurely. - - Set PART->lo_minimal to true iff the minimal edit script for the - left half of the partition is known; similarly for PART->hi_minimal. - - This function assumes that the first lines of the specified portions - of the two files do not match, and likewise that the last lines do not - match. The caller must trim matching lines from the beginning and end - of the portions it is going to specify. - - If we return the "wrong" partitions, - the worst this can do is cause suboptimal diff output. - It cannot cause incorrect diff output. */ - -static lin -diag (lin xoff, lin xlim, lin yoff, lin ylim, bool find_minimal, - struct partition *part) -{ - lin *const fd = fdiag; /* Give the compiler a chance. */ - lin *const bd = bdiag; /* Additional help for the compiler. */ - lin const *const xv = xvec; /* Still more help for the compiler. */ - lin const *const yv = yvec; /* And more and more . . . */ - lin const dmin = xoff - ylim; /* Minimum valid diagonal. */ - lin const dmax = xlim - yoff; /* Maximum valid diagonal. */ - lin const fmid = xoff - yoff; /* Center diagonal of top-down search. */ - lin const bmid = xlim - ylim; /* Center diagonal of bottom-up search. */ - lin fmin = fmid, fmax = fmid; /* Limits of top-down search. */ - lin bmin = bmid, bmax = bmid; /* Limits of bottom-up search. */ - lin c; /* Cost. */ - bool odd = (fmid - bmid) & 1; /* True if southeast corner is on an odd - diagonal with respect to the northwest. */ - - fd[fmid] = xoff; - bd[bmid] = xlim; - - for (c = 1;; ++c) - { - lin d; /* Active diagonal. */ - bool big_snake = 0; - - /* Extend the top-down search by an edit step in each diagonal. */ - fmin > dmin ? fd[--fmin - 1] = -1 : ++fmin; - fmax < dmax ? fd[++fmax + 1] = -1 : --fmax; - for (d = fmax; d >= fmin; d -= 2) - { - lin x, y, oldx, tlo = fd[d - 1], thi = fd[d + 1]; - - if (tlo >= thi) - x = tlo + 1; - else - x = thi; - oldx = x; - y = x - d; - while (x < xlim && y < ylim && xv[x] == yv[y]) - ++x, ++y; - if (x - oldx > SNAKE_LIMIT) - big_snake = 1; - fd[d] = x; - if (odd && bmin <= d && d <= bmax && bd[d] <= x) - { - part->xmid = x; - part->ymid = y; - part->lo_minimal = part->hi_minimal = 1; - return 2 * c - 1; - } - } - - /* Similarly extend the bottom-up search. */ - bmin > dmin ? bd[--bmin - 1] = LIN_MAX : ++bmin; - bmax < dmax ? bd[++bmax + 1] = LIN_MAX : --bmax; - for (d = bmax; d >= bmin; d -= 2) - { - lin x, y, oldx, tlo = bd[d - 1], thi = bd[d + 1]; - - if (tlo < thi) - x = tlo; - else - x = thi - 1; - oldx = x; - y = x - d; - while (x > xoff && y > yoff && xv[x - 1] == yv[y - 1]) - --x, --y; - if (oldx - x > SNAKE_LIMIT) - big_snake = 1; - bd[d] = x; - if (!odd && fmin <= d && d <= fmax && x <= fd[d]) - { - part->xmid = x; - part->ymid = y; - part->lo_minimal = part->hi_minimal = 1; - return 2 * c; - } - } - - if (find_minimal) - continue; - - /* Heuristic: check occasionally for a diagonal that has made - lots of progress compared with the edit distance. - If we have any such, find the one that has made the most - progress and return it as if it had succeeded. - - With this heuristic, for files with a constant small density - of changes, the algorithm is linear in the file size. */ - - if (200 < c && big_snake && speed_large_files) - { - lin best; - - best = 0; - for (d = fmax; d >= fmin; d -= 2) - { - lin dd = d - fmid; - lin x = fd[d]; - lin y = x - d; - lin v = (x - xoff) * 2 - dd; - if (v > 12 * (c + (dd < 0 ? -dd : dd))) - { - if (v > best - && xoff + SNAKE_LIMIT <= x && x < xlim - && yoff + SNAKE_LIMIT <= y && y < ylim) - { - /* We have a good enough best diagonal; - now insist that it end with a significant snake. */ - int k; - - for (k = 1; xv[x - k] == yv[y - k]; k++) - if (k == SNAKE_LIMIT) - { - best = v; - part->xmid = x; - part->ymid = y; - break; - } - } - } - } - if (best > 0) - { - part->lo_minimal = 1; - part->hi_minimal = 0; - return 2 * c - 1; - } - - best = 0; - for (d = bmax; d >= bmin; d -= 2) - { - lin dd = d - bmid; - lin x = bd[d]; - lin y = x - d; - lin v = (xlim - x) * 2 + dd; - if (v > 12 * (c + (dd < 0 ? -dd : dd))) - { - if (v > best - && xoff < x && x <= xlim - SNAKE_LIMIT - && yoff < y && y <= ylim - SNAKE_LIMIT) - { - /* We have a good enough best diagonal; - now insist that it end with a significant snake. */ - int k; - - for (k = 0; xv[x + k] == yv[y + k]; k++) - if (k == SNAKE_LIMIT - 1) - { - best = v; - part->xmid = x; - part->ymid = y; - break; - } - } - } - } - if (best > 0) - { - part->lo_minimal = 0; - part->hi_minimal = 1; - return 2 * c - 1; - } - } - - /* Heuristic: if we've gone well beyond the call of duty, - give up and report halfway between our best results so far. */ - if (c >= too_expensive) - { - lin fxybest, fxbest; - lin bxybest, bxbest; - - fxbest = bxbest = 0; /* Pacify `gcc -Wall'. */ - - /* Find forward diagonal that maximizes X + Y. */ - fxybest = -1; - for (d = fmax; d >= fmin; d -= 2) - { - lin x = MIN (fd[d], xlim); - lin y = x - d; - if (ylim < y) - x = ylim + d, y = ylim; - if (fxybest < x + y) - { - fxybest = x + y; - fxbest = x; - } - } - - /* Find backward diagonal that minimizes X + Y. */ - bxybest = LIN_MAX; - for (d = bmax; d >= bmin; d -= 2) - { - lin x = MAX (xoff, bd[d]); - lin y = x - d; - if (y < yoff) - x = yoff + d, y = yoff; - if (x + y < bxybest) - { - bxybest = x + y; - bxbest = x; - } - } - - /* Use the better of the two diagonals. */ - if ((xlim + ylim) - bxybest < fxybest - (xoff + yoff)) - { - part->xmid = fxbest; - part->ymid = fxybest - fxbest; - part->lo_minimal = 1; - part->hi_minimal = 0; - } - else - { - part->xmid = bxbest; - part->ymid = bxybest - bxbest; - part->lo_minimal = 0; - part->hi_minimal = 1; - } - return 2 * c - 1; - } - } -} - -/* Compare in detail contiguous subsequences of the two files - which are known, as a whole, to match each other. - - The results are recorded in the vectors files[N].changed, by - storing 1 in the element for each line that is an insertion or deletion. - - The subsequence of file 0 is [XOFF, XLIM) and likewise for file 1. - - Note that XLIM, YLIM are exclusive bounds. - All line numbers are origin-0 and discarded lines are not counted. - - If FIND_MINIMAL, find a minimal difference no matter how - expensive it is. */ - -static void -compareseq (lin xoff, lin xlim, lin yoff, lin ylim, bool find_minimal) -{ - lin * const xv = xvec; /* Help the compiler. */ - lin * const yv = yvec; - - /* Slide down the bottom initial diagonal. */ - while (xoff < xlim && yoff < ylim && xv[xoff] == yv[yoff]) - ++xoff, ++yoff; - /* Slide up the top initial diagonal. */ - while (xlim > xoff && ylim > yoff && xv[xlim - 1] == yv[ylim - 1]) - --xlim, --ylim; - - /* Handle simple cases. */ - if (xoff == xlim) - while (yoff < ylim) - files[1].changed[files[1].realindexes[yoff++]] = 1; - else if (yoff == ylim) - while (xoff < xlim) - files[0].changed[files[0].realindexes[xoff++]] = 1; - else - { - lin c; - struct partition part; - - /* Find a point of correspondence in the middle of the files. */ - - c = diag (xoff, xlim, yoff, ylim, find_minimal, &part); - - if (c == 1) - { - /* This should be impossible, because it implies that - one of the two subsequences is empty, - and that case was handled above without calling `diag'. - Let's verify that this is true. */ - abort (); -#if 0 - /* The two subsequences differ by a single insert or delete; - record it and we are done. */ - if (part.xmid - part.ymid < xoff - yoff) - files[1].changed[files[1].realindexes[part.ymid - 1]] = 1; - else - files[0].changed[files[0].realindexes[part.xmid]] = 1; -#endif - } - else - { - /* Use the partitions to split this problem into subproblems. */ - compareseq (xoff, part.xmid, yoff, part.ymid, part.lo_minimal); - compareseq (part.xmid, xlim, part.ymid, ylim, part.hi_minimal); - } - } -} - -/* Discard lines from one file that have no matches in the other file. - - A line which is discarded will not be considered by the actual - comparison algorithm; it will be as if that line were not in the file. - The file's `realindexes' table maps virtual line numbers - (which don't count the discarded lines) into real line numbers; - this is how the actual comparison algorithm produces results - that are comprehensible when the discarded lines are counted. - - When we discard a line, we also mark it as a deletion or insertion - so that it will be printed in the output. */ - -static void -discard_confusing_lines (struct file_data filevec[]) -{ - int f; - lin i; - char *discarded[2]; - lin *equiv_count[2]; - lin *p; - - /* Allocate our results. */ - p = xmalloc ((filevec[0].buffered_lines + filevec[1].buffered_lines) - * (2 * sizeof *p)); - for (f = 0; f < 2; f++) - { - filevec[f].undiscarded = p; p += filevec[f].buffered_lines; - filevec[f].realindexes = p; p += filevec[f].buffered_lines; - } - - /* Set up equiv_count[F][I] as the number of lines in file F - that fall in equivalence class I. */ - - p = zalloc (filevec[0].equiv_max * (2 * sizeof *p)); - equiv_count[0] = p; - equiv_count[1] = p + filevec[0].equiv_max; - - for (i = 0; i < filevec[0].buffered_lines; ++i) - ++equiv_count[0][filevec[0].equivs[i]]; - for (i = 0; i < filevec[1].buffered_lines; ++i) - ++equiv_count[1][filevec[1].equivs[i]]; - - /* Set up tables of which lines are going to be discarded. */ - - discarded[0] = zalloc (filevec[0].buffered_lines - + filevec[1].buffered_lines); - discarded[1] = discarded[0] + filevec[0].buffered_lines; - - /* Mark to be discarded each line that matches no line of the other file. - If a line matches many lines, mark it as provisionally discardable. */ - - for (f = 0; f < 2; f++) - { - size_t end = filevec[f].buffered_lines; - char *discards = discarded[f]; - lin *counts = equiv_count[1 - f]; - lin *equivs = filevec[f].equivs; - size_t many = 5; - size_t tem = end / 64; - - /* Multiply MANY by approximate square root of number of lines. - That is the threshold for provisionally discardable lines. */ - while ((tem = tem >> 2) > 0) - many *= 2; - - for (i = 0; i < end; i++) - { - lin nmatch; - if (equivs[i] == 0) - continue; - nmatch = counts[equivs[i]]; - if (nmatch == 0) - discards[i] = 1; - else if (nmatch > many) - discards[i] = 2; - } - } - - /* Don't really discard the provisional lines except when they occur - in a run of discardables, with nonprovisionals at the beginning - and end. */ - - for (f = 0; f < 2; f++) - { - lin end = filevec[f].buffered_lines; - register char *discards = discarded[f]; - - for (i = 0; i < end; i++) - { - /* Cancel provisional discards not in middle of run of discards. */ - if (discards[i] == 2) - discards[i] = 0; - else if (discards[i] != 0) - { - /* We have found a nonprovisional discard. */ - register lin j; - lin length; - lin provisional = 0; - - /* Find end of this run of discardable lines. - Count how many are provisionally discardable. */ - for (j = i; j < end; j++) - { - if (discards[j] == 0) - break; - if (discards[j] == 2) - ++provisional; - } - - /* Cancel provisional discards at end, and shrink the run. */ - while (j > i && discards[j - 1] == 2) - discards[--j] = 0, --provisional; - - /* Now we have the length of a run of discardable lines - whose first and last are not provisional. */ - length = j - i; - - /* If 1/4 of the lines in the run are provisional, - cancel discarding of all provisional lines in the run. */ - if (provisional * 4 > length) - { - while (j > i) - if (discards[--j] == 2) - discards[j] = 0; - } - else - { - register lin consec; - lin minimum = 1; - lin tem = length >> 2; - - /* MINIMUM is approximate square root of LENGTH/4. - A subrun of two or more provisionals can stand - when LENGTH is at least 16. - A subrun of 4 or more can stand when LENGTH >= 64. */ - while (0 < (tem >>= 2)) - minimum <<= 1; - minimum++; - - /* Cancel any subrun of MINIMUM or more provisionals - within the larger run. */ - for (j = 0, consec = 0; j < length; j++) - if (discards[i + j] != 2) - consec = 0; - else if (minimum == ++consec) - /* Back up to start of subrun, to cancel it all. */ - j -= consec; - else if (minimum < consec) - discards[i + j] = 0; - - /* Scan from beginning of run - until we find 3 or more nonprovisionals in a row - or until the first nonprovisional at least 8 lines in. - Until that point, cancel any provisionals. */ - for (j = 0, consec = 0; j < length; j++) - { - if (j >= 8 && discards[i + j] == 1) - break; - if (discards[i + j] == 2) - consec = 0, discards[i + j] = 0; - else if (discards[i + j] == 0) - consec = 0; - else - consec++; - if (consec == 3) - break; - } - - /* I advances to the last line of the run. */ - i += length - 1; - - /* Same thing, from end. */ - for (j = 0, consec = 0; j < length; j++) - { - if (j >= 8 && discards[i - j] == 1) - break; - if (discards[i - j] == 2) - consec = 0, discards[i - j] = 0; - else if (discards[i - j] == 0) - consec = 0; - else - consec++; - if (consec == 3) - break; - } - } - } - } - } - - /* Actually discard the lines. */ - for (f = 0; f < 2; f++) - { - char *discards = discarded[f]; - lin end = filevec[f].buffered_lines; - lin j = 0; - for (i = 0; i < end; ++i) - if (minimal || discards[i] == 0) - { - filevec[f].undiscarded[j] = filevec[f].equivs[i]; - filevec[f].realindexes[j++] = i; - } - else - filevec[f].changed[i] = 1; - filevec[f].nondiscarded_lines = j; - } - - free (discarded[0]); - free (equiv_count[0]); -} - -/* Adjust inserts/deletes of identical lines to join changes - as much as possible. - - We do something when a run of changed lines include a - line at one end and have an excluded, identical line at the other. - We are free to choose which identical line is included. - `compareseq' usually chooses the one at the beginning, - but usually it is cleaner to consider the following identical line - to be the "change". */ - -static void -shift_boundaries (struct file_data filevec[]) -{ - int f; - - for (f = 0; f < 2; f++) - { - bool *changed = filevec[f].changed; - bool const *other_changed = filevec[1 - f].changed; - lin const *equivs = filevec[f].equivs; - lin i = 0; - lin j = 0; - lin i_end = filevec[f].buffered_lines; - - while (1) - { - lin runlength, start, corresponding; - - /* Scan forwards to find beginning of another run of changes. - Also keep track of the corresponding point in the other file. */ - - while (i < i_end && !changed[i]) - { - while (other_changed[j++]) - continue; - i++; - } - - if (i == i_end) - break; - - start = i; - - /* Find the end of this run of changes. */ - - while (changed[++i]) - continue; - while (other_changed[j]) - j++; - - do - { - /* Record the length of this run of changes, so that - we can later determine whether the run has grown. */ - runlength = i - start; - - /* Move the changed region back, so long as the - previous unchanged line matches the last changed one. - This merges with previous changed regions. */ - - while (start && equivs[start - 1] == equivs[i - 1]) - { - changed[--start] = 1; - changed[--i] = 0; - while (changed[start - 1]) - start--; - while (other_changed[--j]) - continue; - } - - /* Set CORRESPONDING to the end of the changed run, at the last - point where it corresponds to a changed run in the other file. - CORRESPONDING == I_END means no such point has been found. */ - corresponding = other_changed[j - 1] ? i : i_end; - - /* Move the changed region forward, so long as the - first changed line matches the following unchanged one. - This merges with following changed regions. - Do this second, so that if there are no merges, - the changed region is moved forward as far as possible. */ - - while (i != i_end && equivs[start] == equivs[i]) - { - changed[start++] = 0; - changed[i++] = 1; - while (changed[i]) - i++; - while (other_changed[++j]) - corresponding = i; - } - } - while (runlength != i - start); - - /* If possible, move the fully-merged run of changes - back to a corresponding run in the other file. */ - - while (corresponding < i) - { - changed[--start] = 1; - changed[--i] = 0; - while (other_changed[--j]) - continue; - } - } - } -} - -/* Cons an additional entry onto the front of an edit script OLD. - LINE0 and LINE1 are the first affected lines in the two files (origin 0). - DELETED is the number of lines deleted here from file 0. - INSERTED is the number of lines inserted here in file 1. - - If DELETED is 0 then LINE0 is the number of the line before - which the insertion was done; vice versa for INSERTED and LINE1. */ - -static struct change * -add_change (lin line0, lin line1, lin deleted, lin inserted, - struct change *old) -{ - struct change *new = xmalloc (sizeof *new); - - new->line0 = line0; - new->line1 = line1; - new->inserted = inserted; - new->deleted = deleted; - new->link = old; - return new; -} - -/* Scan the tables of which lines are inserted and deleted, - producing an edit script in reverse order. */ - -static struct change * -build_reverse_script (struct file_data const filevec[]) -{ - struct change *script = 0; - bool *changed0 = filevec[0].changed; - bool *changed1 = filevec[1].changed; - lin len0 = filevec[0].buffered_lines; - lin len1 = filevec[1].buffered_lines; - - /* Note that changedN[len0] does exist, and is 0. */ - - lin i0 = 0, i1 = 0; - - while (i0 < len0 || i1 < len1) - { - if (changed0[i0] | changed1[i1]) - { - lin line0 = i0, line1 = i1; - - /* Find # lines changed here in each file. */ - while (changed0[i0]) ++i0; - while (changed1[i1]) ++i1; - - /* Record this change. */ - script = add_change (line0, line1, i0 - line0, i1 - line1, script); - } - - /* We have reached lines in the two files that match each other. */ - i0++, i1++; - } - - return script; -} - -/* Scan the tables of which lines are inserted and deleted, - producing an edit script in forward order. */ - -static struct change * -build_script (struct file_data const filevec[]) -{ - struct change *script = 0; - bool *changed0 = filevec[0].changed; - bool *changed1 = filevec[1].changed; - lin i0 = filevec[0].buffered_lines, i1 = filevec[1].buffered_lines; - - /* Note that changedN[-1] does exist, and is 0. */ - - while (i0 >= 0 || i1 >= 0) - { - if (changed0[i0 - 1] | changed1[i1 - 1]) - { - lin line0 = i0, line1 = i1; - - /* Find # lines changed here in each file. */ - while (changed0[i0 - 1]) --i0; - while (changed1[i1 - 1]) --i1; - - /* Record this change. */ - script = add_change (i0, i1, line0 - i0, line1 - i1, script); - } - - /* We have reached lines in the two files that match each other. */ - i0--, i1--; - } - - return script; -} - -/* If CHANGES, briefly report that two files differed. - Return 2 if trouble, CHANGES otherwise. */ -static int -briefly_report (int changes, struct file_data const filevec[]) -{ - if (changes) - { - char const *label0 = file_label[0] ? file_label[0] : filevec[0].name; - char const *label1 = file_label[1] ? file_label[1] : filevec[1].name; - - if (brief) - message ("Files %s and %s differ\n", label0, label1); - else - { - message ("Binary files %s and %s differ\n", label0, label1); - changes = 2; - } - } - - return changes; -} - -/* Report the differences of two files. */ -int -diff_2_files (struct comparison *cmp) -{ - lin diags; - int f; - struct change *e, *p; - struct change *script; - int changes; - - - /* If we have detected that either file is binary, - compare the two files as binary. This can happen - only when the first chunk is read. - Also, --brief without any --ignore-* options means - we can speed things up by treating the files as binary. */ - - if (read_files (cmp->file, files_can_be_treated_as_binary)) - { - /* Files with different lengths must be different. */ - if (cmp->file[0].stat.st_size != cmp->file[1].stat.st_size - && (cmp->file[0].desc < 0 || S_ISREG (cmp->file[0].stat.st_mode)) - && (cmp->file[1].desc < 0 || S_ISREG (cmp->file[1].stat.st_mode))) - changes = 1; - - /* Standard input equals itself. */ - else if (cmp->file[0].desc == cmp->file[1].desc) - changes = 0; - - else - /* Scan both files, a buffer at a time, looking for a difference. */ - { - /* Allocate same-sized buffers for both files. */ - size_t lcm_max = PTRDIFF_MAX - 1; - size_t buffer_size = - buffer_lcm (sizeof (word), - buffer_lcm (STAT_BLOCKSIZE (cmp->file[0].stat), - STAT_BLOCKSIZE (cmp->file[1].stat), - lcm_max), - lcm_max); - for (f = 0; f < 2; f++) - cmp->file[f].buffer = xrealloc (cmp->file[f].buffer, buffer_size); - - for (;; cmp->file[0].buffered = cmp->file[1].buffered = 0) - { - /* Read a buffer's worth from both files. */ - for (f = 0; f < 2; f++) - if (0 <= cmp->file[f].desc) - file_block_read (&cmp->file[f], - buffer_size - cmp->file[f].buffered); - - /* If the buffers differ, the files differ. */ - if (cmp->file[0].buffered != cmp->file[1].buffered - || memcmp (cmp->file[0].buffer, - cmp->file[1].buffer, - cmp->file[0].buffered)) - { - changes = 1; - break; - } - - /* If we reach end of file, the files are the same. */ - if (cmp->file[0].buffered != buffer_size) - { - changes = 0; - break; - } - } - } - - changes = briefly_report (changes, cmp->file); - } - else - { - /* Allocate vectors for the results of comparison: - a flag for each line of each file, saying whether that line - is an insertion or deletion. - Allocate an extra element, always 0, at each end of each vector. */ - - size_t s = cmp->file[0].buffered_lines + cmp->file[1].buffered_lines + 4; - bool *flag_space = zalloc (s * sizeof *flag_space); - cmp->file[0].changed = flag_space + 1; - cmp->file[1].changed = flag_space + cmp->file[0].buffered_lines + 3; - - /* Some lines are obviously insertions or deletions - because they don't match anything. Detect them now, and - avoid even thinking about them in the main comparison algorithm. */ - - discard_confusing_lines (cmp->file); - - /* Now do the main comparison algorithm, considering just the - undiscarded lines. */ - - xvec = cmp->file[0].undiscarded; - yvec = cmp->file[1].undiscarded; - diags = (cmp->file[0].nondiscarded_lines - + cmp->file[1].nondiscarded_lines + 3); - fdiag = xmalloc (diags * (2 * sizeof *fdiag)); - bdiag = fdiag + diags; - fdiag += cmp->file[1].nondiscarded_lines + 1; - bdiag += cmp->file[1].nondiscarded_lines + 1; - - /* Set TOO_EXPENSIVE to be approximate square root of input size, - bounded below by 256. */ - too_expensive = 1; - for (; diags != 0; diags >>= 2) - too_expensive <<= 1; - too_expensive = MAX (256, too_expensive); - - files[0] = cmp->file[0]; - files[1] = cmp->file[1]; - - compareseq (0, cmp->file[0].nondiscarded_lines, - 0, cmp->file[1].nondiscarded_lines, minimal); - - free (fdiag - (cmp->file[1].nondiscarded_lines + 1)); - - /* Modify the results slightly to make them prettier - in cases where that can validly be done. */ - - shift_boundaries (cmp->file); - - /* Get the results of comparison in the form of a chain - of `struct change's -- an edit script. */ - - if (output_style == OUTPUT_ED) - script = build_reverse_script (cmp->file); - else - script = build_script (cmp->file); - - /* Set CHANGES if we had any diffs. - If some changes are ignored, we must scan the script to decide. */ - if (ignore_blank_lines || ignore_regexp.fastmap) - { - struct change *next = script; - changes = 0; - - while (next && changes == 0) - { - struct change *this, *end; - lin first0, last0, first1, last1; - - /* Find a set of changes that belong together. */ - this = next; - end = find_change (next); - - /* Disconnect them from the rest of the changes, making them - a hunk, and remember the rest for next iteration. */ - next = end->link; - end->link = 0; - - /* Determine whether this hunk is really a difference. */ - if (analyze_hunk (this, &first0, &last0, &first1, &last1)) - changes = 1; - - /* Reconnect the script so it will all be freed properly. */ - end->link = next; - } - } - else - changes = (script != 0); - - if (brief) - changes = briefly_report (changes, cmp->file); - else - { - if (changes | !no_diff_means_no_output) - { - /* Record info for starting up output, - to be used if and when we have some output to print. */ - setup_output (file_label[0] ? file_label[0] : cmp->file[0].name, - file_label[1] ? file_label[1] : cmp->file[1].name, - cmp->parent != 0); - - switch (output_style) - { - case OUTPUT_CONTEXT: - print_context_script (script, 0); - break; - - case OUTPUT_UNIFIED: - print_context_script (script, 1); - break; - - case OUTPUT_ED: - print_ed_script (script); - break; - - case OUTPUT_FORWARD_ED: - pr_forward_ed_script (script); - break; - - case OUTPUT_RCS: - print_rcs_script (script); - break; - - case OUTPUT_NORMAL: - print_normal_script (script); - break; - - case OUTPUT_IFDEF: - print_ifdef_script (script); - break; - - case OUTPUT_SDIFF: - print_sdiff_script (script); - break; - - default: - abort (); - } - - finish_output (); - } - } - - free (cmp->file[0].undiscarded); - - free (flag_space); - - for (f = 0; f < 2; f++) - { - free (cmp->file[f].equivs); - free (cmp->file[f].linbuf + cmp->file[f].linbuf_base); - } - - for (e = script; e; e = p) - { - p = e->link; - free (e); - } - - if (! ROBUST_OUTPUT_STYLE (output_style)) - for (f = 0; f < 2; ++f) - if (cmp->file[f].missing_newline) - { - error (0, 0, "%s: %s\n", - file_label[f] ? file_label[f] : cmp->file[f].name, - _("No newline at end of file")); - changes = 2; - } - } - - if (cmp->file[0].buffer != cmp->file[1].buffer) - free (cmp->file[0].buffer); - free (cmp->file[1].buffer); - - return changes; -} diff --git a/gnu/dist/diffutils/src/cmp.c b/gnu/dist/diffutils/src/cmp.c deleted file mode 100644 index d033829dfc6..00000000000 --- a/gnu/dist/diffutils/src/cmp.c +++ /dev/null @@ -1,676 +0,0 @@ -/* $NetBSD: cmp.c,v 1.1.1.1 2003/01/26 00:43:16 wiz Exp $ */ - -/* cmp - compare two files byte by byte - - Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 2001, - 2002 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#include "system.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined LC_MESSAGES && ENABLE_NLS -# define hard_locale_LC_MESSAGES hard_locale (LC_MESSAGES) -#else -# define hard_locale_LC_MESSAGES 0 -#endif - -static char const authorship_msgid[] = - N_("Written by Torbjorn Granlund and David MacKenzie."); - -static char const copyright_string[] = - "Copyright (C) 2002 Free Software Foundation, Inc."; - -extern char const version_string[]; - -static int cmp (void); -static off_t file_position (int); -static size_t block_compare (word const *, word const *); -static size_t block_compare_and_count (word const *, word const *, off_t *); -static void sprintc (char *, unsigned char); - -/* Name under which this program was invoked. */ -char *program_name; - -/* Filenames of the compared files. */ -static char const *file[2]; - -/* File descriptors of the files. */ -static int file_desc[2]; - -/* Status of the files. */ -static struct stat stat_buf[2]; - -/* Read buffers for the files. */ -static word *buffer[2]; - -/* Optimal block size for the files. */ -static size_t buf_size; - -/* Initial prefix to ignore for each file. */ -static off_t ignore_initial[2]; - -/* Number of bytes to compare. */ -static uintmax_t bytes = UINTMAX_MAX; - -/* Output format. */ -static enum comparison_type - { - type_first_diff, /* Print the first difference. */ - type_all_diffs, /* Print all differences. */ - type_status /* Exit status only. */ - } comparison_type; - -/* If nonzero, print values of bytes quoted like cat -t does. */ -static bool opt_print_bytes; - -/* Values for long options that do not have single-letter equivalents. */ -enum -{ - HELP_OPTION = CHAR_MAX + 1 -}; - -static struct option const long_options[] = -{ - {"print-bytes", 0, 0, 'b'}, - {"print-chars", 0, 0, 'c'}, /* obsolescent as of diffutils 2.7.3 */ - {"ignore-initial", 1, 0, 'i'}, - {"verbose", 0, 0, 'l'}, - {"bytes", 1, 0, 'n'}, - {"silent", 0, 0, 's'}, - {"quiet", 0, 0, 's'}, - {"version", 0, 0, 'v'}, - {"help", 0, 0, HELP_OPTION}, - {0, 0, 0, 0} -}; - -static void try_help (char const *, char const *) __attribute__((noreturn)); -static void -try_help (char const *reason_msgid, char const *operand) -{ - if (reason_msgid) - error (0, 0, _(reason_msgid), operand); - error (EXIT_TROUBLE, 0, - _("Try `%s --help' for more information."), program_name); - abort (); -} - -static char const valid_suffixes[] = "kKMGTPEZY0"; - -/* Parse an operand *ARGPTR of --ignore-initial, updating *ARGPTR to - point after the operand. If DELIMITER is nonzero, the operand may - be followed by DELIMITER; otherwise it must be null-terminated. */ -static off_t -parse_ignore_initial (char **argptr, char delimiter) -{ - uintmax_t val; - off_t o; - char const *arg = *argptr; - strtol_error e = xstrtoumax (arg, argptr, 0, &val, valid_suffixes); - if (! (e == LONGINT_OK - || (e == LONGINT_INVALID_SUFFIX_CHAR && **argptr == delimiter)) - || (o = val) < 0 || o != val || val == UINTMAX_MAX) - try_help ("invalid --ignore-initial value `%s'", arg); - return o; -} - -/* Specify the output format. */ -static void -specify_comparison_type (enum comparison_type t) -{ - if (comparison_type) - try_help ("options -l and -s are incompatible", 0); - comparison_type = t; -} - -static void -check_stdout (void) -{ - if (ferror (stdout)) - error (EXIT_TROUBLE, 0, "%s", _("write failed")); - else if (fclose (stdout) != 0) - error (EXIT_TROUBLE, errno, "%s", _("standard output")); -} - -static char const * const option_help_msgid[] = { - N_("-b --print-bytes Print differing bytes."), - N_("-i SKIP --ignore-initial=SKIP Skip the first SKIP bytes of input."), - N_("-i SKIP1:SKIP2 --ignore-initial=SKIP1:SKIP2"), - N_(" Skip the first SKIP1 bytes of FILE1 and the first SKIP2 bytes of FILE2."), - N_("-l --verbose Output byte numbers and values of all differing bytes."), - N_("-n LIMIT --bytes=LIMIT Compare at most LIMIT bytes."), - N_("-s --quiet --silent Output nothing; yield exit status only."), - N_("-v --version Output version info."), - N_("--help Output this help."), - 0 -}; - -static void -usage (void) -{ - char const * const *p; - - printf (_("Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"), - program_name); - printf ("%s\n\n", _("Compare two files byte by byte.")); - for (p = option_help_msgid; *p; p++) - printf (" %s\n", _(*p)); - printf ("\n%s\n%s\n\n%s\n\n%s\n", - _("SKIP1 and SKIP2 are the number of bytes to skip in each file."), - _("SKIP values may be followed by the following multiplicative suffixes:\n\ -kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n\ -GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y."), - _("If a FILE is `-' or missing, read standard input."), - _("Report bugs to .")); -} - -int -main (int argc, char **argv) -{ - int c, f, exit_status; - size_t words_per_buffer; - - exit_failure = EXIT_TROUBLE; - initialize_main (&argc, &argv); - program_name = argv[0]; - setlocale (LC_ALL, ""); - bindtextdomain (PACKAGE, LOCALEDIR); - textdomain (PACKAGE); - c_stack_action (c_stack_die); - - /* Parse command line options. */ - - while ((c = getopt_long (argc, argv, "bci:ln:sv", long_options, 0)) - != -1) - switch (c) - { - case 'b': - case 'c': /* 'c' is obsolescent as of diffutils 2.7.3 */ - opt_print_bytes = 1; - break; - - case 'i': - ignore_initial[0] = parse_ignore_initial (&optarg, ':'); - ignore_initial[1] = (*optarg++ == ':' - ? parse_ignore_initial (&optarg, 0) - : ignore_initial[0]); - break; - - case 'l': - specify_comparison_type (type_all_diffs); - break; - - case 'n': - { - uintmax_t n; - if (xstrtoumax (optarg, 0, 0, &n, valid_suffixes) != LONGINT_OK) - try_help ("invalid --bytes value `%s'", optarg); - if (n < bytes) - bytes = n; - } - break; - - case 's': - specify_comparison_type (type_status); - break; - - case 'v': - printf ("cmp %s\n%s\n\n%s\n\n%s\n", - version_string, copyright_string, - _(free_software_msgid), _(authorship_msgid)); - check_stdout (); - return EXIT_SUCCESS; - - case HELP_OPTION: - usage (); - check_stdout (); - return EXIT_SUCCESS; - - default: - try_help (0, 0); - } - - if (optind == argc) - try_help ("missing operand after `%s'", argv[argc - 1]); - - file[0] = argv[optind++]; - file[1] = optind < argc ? argv[optind++] : "-"; - - for (f = 0; f < 2 && optind < argc; f++) - { - char *arg = argv[optind++]; - ignore_initial[f] = parse_ignore_initial (&arg, 0); - } - - if (optind < argc) - try_help ("extra operand `%s'", argv[optind]); - - for (f = 0; f < 2; f++) - { - /* If file[1] is "-", treat it first; this avoids a misdiagnostic if - stdin is closed and opening file[0] yields file descriptor 0. */ - int f1 = f ^ (strcmp (file[1], "-") == 0); - - /* Two files with the same name are identical. - But wait until we open the file once, for proper diagnostics. */ - if (f && file_name_cmp (file[0], file[1]) == 0) - return EXIT_SUCCESS; - - file_desc[f1] = (strcmp (file[f1], "-") == 0 - ? STDIN_FILENO - : open (file[f1], O_RDONLY, 0)); - if (file_desc[f1] < 0 || fstat (file_desc[f1], stat_buf + f1) != 0) - { - if (file_desc[f1] < 0 && comparison_type == type_status) - exit (EXIT_TROUBLE); - else - error (EXIT_TROUBLE, errno, "%s", file[f1]); - } - - set_binary_mode (file_desc[f1], 1); - } - - /* If the files are links to the same inode and have the same file position, - they are identical. */ - - if (0 < same_file (&stat_buf[0], &stat_buf[1]) - && same_file_attributes (&stat_buf[0], &stat_buf[1]) - && file_position (0) == file_position (1)) - return EXIT_SUCCESS; - - /* If output is redirected to the null device, we may assume `-s'. */ - - if (comparison_type != type_status) - { - struct stat outstat, nullstat; - - if (fstat (STDOUT_FILENO, &outstat) == 0 - && stat (NULL_DEVICE, &nullstat) == 0 - && 0 < same_file (&outstat, &nullstat)) - comparison_type = type_status; - } - - /* If only a return code is needed, - and if both input descriptors are associated with plain files, - conclude that the files differ if they have different sizes - and if more bytes will be compared than are in the smaller file. */ - - if (comparison_type == type_status - && S_ISREG (stat_buf[0].st_mode) - && S_ISREG (stat_buf[1].st_mode)) - { - off_t s0 = stat_buf[0].st_size - file_position (0); - off_t s1 = stat_buf[1].st_size - file_position (1); - if (s0 < 0) - s0 = 0; - if (s1 < 0) - s1 = 0; - if (s0 != s1 && MIN (s0, s1) < bytes) - exit (EXIT_FAILURE); - } - - /* Get the optimal block size of the files. */ - - buf_size = buffer_lcm (STAT_BLOCKSIZE (stat_buf[0]), - STAT_BLOCKSIZE (stat_buf[1]), - PTRDIFF_MAX - sizeof (word)); - - /* Allocate word-aligned buffers, with space for sentinels at the end. */ - - words_per_buffer = (buf_size + 2 * sizeof (word) - 1) / sizeof (word); - buffer[0] = xmalloc (2 * sizeof (word) * words_per_buffer); - buffer[1] = buffer[0] + words_per_buffer; - - exit_status = cmp (); - - for (f = 0; f < 2; f++) - if (close (file_desc[f]) != 0) - error (EXIT_TROUBLE, errno, "%s", file[f]); - if (exit_status != 0 && comparison_type != type_status) - check_stdout (); - exit (exit_status); - return exit_status; -} - -/* Compare the two files already open on `file_desc[0]' and `file_desc[1]', - using `buffer[0]' and `buffer[1]'. - Return EXIT_SUCCESS if identical, EXIT_FAILURE if different, - >1 if error. */ - -static int -cmp (void) -{ - off_t line_number = 1; /* Line number (1...) of difference. */ - off_t byte_number = 1; /* Byte number (1...) of difference. */ - uintmax_t remaining = bytes; /* Remaining number of bytes to compare. */ - size_t read0, read1; /* Number of bytes read from each file. */ - size_t first_diff; /* Offset (0...) in buffers of 1st diff. */ - size_t smaller; /* The lesser of `read0' and `read1'. */ - word *buffer0 = buffer[0]; - word *buffer1 = buffer[1]; - char *buf0 = (char *) buffer0; - char *buf1 = (char *) buffer1; - int ret = EXIT_SUCCESS; - int f; - int offset_width; - - if (comparison_type == type_all_diffs) - { - off_t byte_number_max = MIN (bytes, TYPE_MAXIMUM (off_t)); - - for (f = 0; f < 2; f++) - if (S_ISREG (stat_buf[f].st_mode)) - { - off_t file_bytes = stat_buf[f].st_size - file_position (f); - if (file_bytes < byte_number_max) - byte_number_max = file_bytes; - } - - for (offset_width = 1; (byte_number_max /= 10) != 0; offset_width++) - continue; - } - - for (f = 0; f < 2; f++) - { - off_t ig = ignore_initial[f]; - if (ig && file_position (f) == -1) - { - /* lseek failed; read and discard the ignored initial prefix. */ - do - { - size_t bytes_to_read = MIN (ig, buf_size); - size_t r = block_read (file_desc[f], buf0, bytes_to_read); - if (r != bytes_to_read) - { - if (r == SIZE_MAX) - error (EXIT_TROUBLE, errno, "%s", file[f]); - break; - } - ig -= r; - } - while (ig); - } - } - - do - { - size_t bytes_to_read = buf_size; - - if (remaining != UINTMAX_MAX) - { - if (remaining < bytes_to_read) - bytes_to_read = remaining; - remaining -= bytes_to_read; - } - - read0 = block_read (file_desc[0], buf0, bytes_to_read); - if (read0 == SIZE_MAX) - error (EXIT_TROUBLE, errno, "%s", file[0]); - read1 = block_read (file_desc[1], buf1, bytes_to_read); - if (read1 == SIZE_MAX) - error (EXIT_TROUBLE, errno, "%s", file[1]); - - /* Insert sentinels for the block compare. */ - - buf0[read0] = ~buf1[read0]; - buf1[read1] = ~buf0[read1]; - - /* If the line number should be written for differing files, - compare the blocks and count the number of newlines - simultaneously. */ - first_diff = (comparison_type == type_first_diff - ? block_compare_and_count (buffer0, buffer1, &line_number) - : block_compare (buffer0, buffer1)); - - byte_number += first_diff; - smaller = MIN (read0, read1); - - if (first_diff < smaller) - { - switch (comparison_type) - { - case type_first_diff: - { - char byte_buf[INT_BUFSIZE_BOUND (off_t)]; - char line_buf[INT_BUFSIZE_BOUND (off_t)]; - char const *byte_num = offtostr (byte_number, byte_buf); - char const *line_num = offtostr (line_number, line_buf); - if (!opt_print_bytes) - { - /* See POSIX 1003.1-2001 for this format. This - message is used only in the POSIX locale, so it - need not be translated. */ - static char const char_message[] = - "%s %s differ: char %s, line %s\n"; - - /* The POSIX rationale recommends using the word - "byte" outside the POSIX locale. Some gettext - implementations translate even in the POSIX - locale if certain other environment variables - are set, so use "byte" if a translation is - available, or if outside the POSIX locale. */ - static char const byte_msgid[] = - N_("%s %s differ: byte %s, line %s\n"); - char const *byte_message = _(byte_msgid); - bool use_byte_message = (byte_message != byte_msgid - || hard_locale_LC_MESSAGES); - - printf ((use_byte_message - ? byte_message - : "%s %s differ: char %s, line %s\n"), - file[0], file[1], byte_num, line_num); - } - else - { - unsigned char c0 = buf0[first_diff]; - unsigned char c1 = buf1[first_diff]; - char s0[5]; - char s1[5]; - sprintc (s0, c0); - sprintc (s1, c1); - printf (_("%s %s differ: byte %s, line %s is %3o %s %3o %s\n"), - file[0], file[1], byte_num, line_num, - c0, s0, c1, s1); - } - } - /* Fall through. */ - case type_status: - return EXIT_FAILURE; - - case type_all_diffs: - do - { - unsigned char c0 = buf0[first_diff]; - unsigned char c1 = buf1[first_diff]; - if (c0 != c1) - { - char byte_buf[INT_BUFSIZE_BOUND (off_t)]; - char const *byte_num = offtostr (byte_number, byte_buf); - if (!opt_print_bytes) - { - /* See POSIX 1003.1-2001 for this format. */ - printf ("%*s %3o %3o\n", - offset_width, byte_num, c0, c1); - } - else - { - char s0[5]; - char s1[5]; - sprintc (s0, c0); - sprintc (s1, c1); - printf ("%*s %3o %-4s %3o %s\n", - offset_width, byte_num, c0, s0, c1, s1); - } - } - byte_number++; - first_diff++; - } - while (first_diff < smaller); - ret = EXIT_FAILURE; - break; - } - } - - if (read0 != read1) - { - if (comparison_type != type_status) - { - /* See POSIX 1003.1-2001 for this format. */ - fprintf (stderr, _("cmp: EOF on %s\n"), file[read1 < read0]); - } - - return EXIT_FAILURE; - } - } - while (read0 == buf_size); - - return ret; -} - -/* Compare two blocks of memory P0 and P1 until they differ, - and count the number of '\n' occurrences in the common - part of P0 and P1. - If the blocks are not guaranteed to be different, put sentinels at the ends - of the blocks before calling this function. - - Return the offset of the first byte that differs. - Increment *COUNT by the count of '\n' occurrences. */ - -static size_t -block_compare_and_count (word const *p0, word const *p1, off_t *count) -{ - word l; /* One word from first buffer. */ - word const *l0, *l1; /* Pointers into each buffer. */ - char const *c0, *c1; /* Pointers for finding exact address. */ - size_t cnt = 0; /* Number of '\n' occurrences. */ - word nnnn; /* Newline, sizeof (word) times. */ - int i; - - nnnn = 0; - for (i = 0; i < sizeof nnnn; i++) - nnnn = (nnnn << CHAR_BIT) | '\n'; - - /* Find the rough position of the first difference by reading words, - not bytes. */ - - for (l0 = p0, l1 = p1; (l = *l0) == *l1; l0++, l1++) - { - l ^= nnnn; - for (i = 0; i < sizeof l; i++) - { - cnt += ! (unsigned char) l; - l >>= CHAR_BIT; - } - } - - /* Find the exact differing position (endianness independent). */ - - for (c0 = (char const *) l0, c1 = (char const *) l1; - *c0 == *c1; - c0++, c1++) - cnt += *c0 == '\n'; - - *count += cnt; - return c0 - (char const *) p0; -} - -/* Compare two blocks of memory P0 and P1 until they differ. - If the blocks are not guaranteed to be different, put sentinels at the ends - of the blocks before calling this function. - - Return the offset of the first byte that differs. */ - -static size_t -block_compare (word const *p0, word const *p1) -{ - word const *l0, *l1; - char const *c0, *c1; - - /* Find the rough position of the first difference by reading words, - not bytes. */ - - for (l0 = p0, l1 = p1; *l0 == *l1; l0++, l1++) - continue; - - /* Find the exact differing position (endianness independent). */ - - for (c0 = (char const *) l0, c1 = (char const *) l1; - *c0 == *c1; - c0++, c1++) - continue; - - return c0 - (char const *) p0; -} - -/* Put into BUF the unsigned char C, making unprintable bytes - visible by quoting like cat -t does. */ - -static void -sprintc (char *buf, unsigned char c) -{ - if (! ISPRINT (c)) - { - if (c >= 128) - { - *buf++ = 'M'; - *buf++ = '-'; - c -= 128; - } - if (c < 32) - { - *buf++ = '^'; - c += 64; - } - else if (c == 127) - { - *buf++ = '^'; - c = '?'; - } - } - - *buf++ = c; - *buf = 0; -} - -/* Position file F to ignore_initial[F] bytes from its initial position, - and yield its new position. Don't try more than once. */ - -static off_t -file_position (int f) -{ - static bool positioned[2]; - static off_t position[2]; - - if (! positioned[f]) - { - positioned[f] = 1; - position[f] = lseek (file_desc[f], ignore_initial[f], SEEK_CUR); - } - return position[f]; -} diff --git a/gnu/dist/diffutils/src/context.c b/gnu/dist/diffutils/src/context.c deleted file mode 100644 index bd03010171b..00000000000 --- a/gnu/dist/diffutils/src/context.c +++ /dev/null @@ -1,480 +0,0 @@ -/* $NetBSD: context.c,v 1.2 2008/12/29 04:09:25 christos Exp $ */ - -/* Context-format output routines for GNU DIFF. - - Copyright (C) 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1998, 2001, - 2002 Free Software Foundation, Inc. - - This file is part of GNU DIFF. - - GNU DIFF is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU DIFF is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#include "diff.h" -#include -#include - -#ifdef ST_MTIM_NSEC -# define TIMESPEC_NS(timespec) ((timespec).ST_MTIM_NSEC) -#else -# define TIMESPEC_NS(timespec) 0 -#endif - -size_t nstrftime (char *, size_t, char const *, struct tm const *, int, int); - -static char const *find_function (char const * const *, lin); -static struct change *find_hunk (struct change *); -static void mark_ignorable (struct change *); -static void pr_context_hunk (struct change *); -static void pr_unidiff_hunk (struct change *); - -/* Last place find_function started searching from. */ -static lin find_function_last_search; - -/* The value find_function returned when it started searching there. */ -static lin find_function_last_match; - -/* Print a label for a context diff, with a file name and date or a label. */ - -static void -print_context_label (char const *mark, - struct file_data *inf, - char const *label) -{ - if (label) - fprintf (outfile, "%s %s\n", mark, label); - else - { - char buf[MAX (INT_STRLEN_BOUND (int) + 32, - INT_STRLEN_BOUND (time_t) + 11)]; - struct tm const *tm = localtime (&inf->stat.st_mtime); - int nsec = TIMESPEC_NS (inf->stat.st_mtim); - if (! (tm && nstrftime (buf, sizeof buf, time_format, tm, 0, nsec))) - { - long long sec = inf->stat.st_mtime; - verify (info_preserved, sizeof inf->stat.st_mtime <= sizeof sec); - sprintf (buf, "%lld.%.9d", sec, nsec); - } - fprintf (outfile, "%s %s\t%s\n", mark, inf->name, buf); - } -} - -/* Print a header for a context diff, with the file names and dates. */ - -void -print_context_header (struct file_data inf[], bool unidiff) -{ - if (unidiff) - { - print_context_label ("---", &inf[0], file_label[0]); - print_context_label ("+++", &inf[1], file_label[1]); - } - else - { - print_context_label ("***", &inf[0], file_label[0]); - print_context_label ("---", &inf[1], file_label[1]); - } -} - -/* Print an edit script in context format. */ - -void -print_context_script (struct change *script, bool unidiff) -{ - if (ignore_blank_lines || ignore_regexp.fastmap) - mark_ignorable (script); - else - { - struct change *e; - for (e = script; e; e = e->link) - e->ignore = 0; - } - - find_function_last_search = - files[0].prefix_lines; - find_function_last_match = LIN_MAX; - - if (unidiff) - print_script (script, find_hunk, pr_unidiff_hunk); - else - print_script (script, find_hunk, pr_context_hunk); -} - -/* Print a pair of line numbers with a comma, translated for file FILE. - If the second number is not greater, use the first in place of it. - - Args A and B are internal line numbers. - We print the translated (real) line numbers. */ - -static void -print_context_number_range (struct file_data const *file, lin a, lin b) -{ - long trans_a, trans_b; - translate_range (file, a, b, &trans_a, &trans_b); - - /* We can have B <= A in the case of a range of no lines. - In this case, we should print the line number before the range, - which is B. - - POSIX 1003.1-2001 requires two line numbers separated by a comma - even if the line numbers are the same. However, this does not - match existing practice and is surely an error in the - specification. */ - - if (trans_b <= trans_a) - fprintf (outfile, "%ld", trans_b); - else - fprintf (outfile, "%ld,%ld", trans_a, trans_b); -} - -/* Print FUNCTION in a context header. */ -static void -print_context_function (FILE *out, char const *function) -{ - int i; - putc (' ', out); - for (i = 0; i < 40 && function[i] != '\n'; i++) - continue; - fwrite (function, 1, i, out); -} - -/* Print a portion of an edit script in context format. - HUNK is the beginning of the portion to be printed. - The end is marked by a `link' that has been nulled out. - - Prints out lines from both files, and precedes each - line with the appropriate flag-character. */ - -static void -pr_context_hunk (struct change *hunk) -{ - lin first0, last0, first1, last1, i; - char const *prefix; - char const *function; - FILE *out; - - /* Determine range of line numbers involved in each file. */ - - enum changes changes = analyze_hunk (hunk, &first0, &last0, &first1, &last1); - if (! changes) - return; - - /* Include a context's width before and after. */ - - i = - files[0].prefix_lines; - first0 = MAX (first0 - context, i); - first1 = MAX (first1 - context, i); - if (last0 < files[0].valid_lines - context) - last0 += context; - else - last0 = files[0].valid_lines - 1; - if (last1 < files[1].valid_lines - context) - last1 += context; - else - last1 = files[1].valid_lines - 1; - - /* If desired, find the preceding function definition line in file 0. */ - function = 0; - if (function_regexp.fastmap) - function = find_function (files[0].linbuf, first0); - - begin_output (); - out = outfile; - - fprintf (out, "***************"); - - if (function) - print_context_function (out, function); - - fprintf (out, "\n*** "); - print_context_number_range (&files[0], first0, last0); - fprintf (out, " ****\n"); - - if (changes & OLD) - { - struct change *next = hunk; - - for (i = first0; i <= last0; i++) - { - /* Skip past changes that apply (in file 0) - only to lines before line I. */ - - while (next && next->line0 + next->deleted <= i) - next = next->link; - - /* Compute the marking for line I. */ - - prefix = " "; - if (next && next->line0 <= i) - /* The change NEXT covers this line. - If lines were inserted here in file 1, this is "changed". - Otherwise it is "deleted". */ - prefix = (next->inserted > 0 ? "!" : "-"); - - print_1_line (prefix, &files[0].linbuf[i]); - } - } - - fprintf (out, "--- "); - print_context_number_range (&files[1], first1, last1); - fprintf (out, " ----\n"); - - if (changes & NEW) - { - struct change *next = hunk; - - for (i = first1; i <= last1; i++) - { - /* Skip past changes that apply (in file 1) - only to lines before line I. */ - - while (next && next->line1 + next->inserted <= i) - next = next->link; - - /* Compute the marking for line I. */ - - prefix = " "; - if (next && next->line1 <= i) - /* The change NEXT covers this line. - If lines were deleted here in file 0, this is "changed". - Otherwise it is "inserted". */ - prefix = (next->deleted > 0 ? "!" : "+"); - - print_1_line (prefix, &files[1].linbuf[i]); - } - } -} - -/* Print a pair of line numbers with a comma, translated for file FILE. - If the second number is smaller, use the first in place of it. - If the numbers are equal, print just one number. - - Args A and B are internal line numbers. - We print the translated (real) line numbers. */ - -static void -print_unidiff_number_range (struct file_data const *file, lin a, lin b) -{ - long trans_a, trans_b; - translate_range (file, a, b, &trans_a, &trans_b); - - /* We can have B < A in the case of a range of no lines. - In this case, we should print the line number before the range, - which is B. */ - if (trans_b <= trans_a) - fprintf (outfile, trans_b < trans_a ? "%ld,0" : "%ld", trans_b); - else - fprintf (outfile, "%ld,%ld", trans_a, trans_b - trans_a + 1); -} - -/* Print a portion of an edit script in unidiff format. - HUNK is the beginning of the portion to be printed. - The end is marked by a `link' that has been nulled out. - - Prints out lines from both files, and precedes each - line with the appropriate flag-character. */ - -static void -pr_unidiff_hunk (struct change *hunk) -{ - lin first0, last0, first1, last1; - lin i, j, k; - struct change *next; - char const *function; - FILE *out; - - /* Determine range of line numbers involved in each file. */ - - if (! analyze_hunk (hunk, &first0, &last0, &first1, &last1)) - return; - - /* Include a context's width before and after. */ - - i = - files[0].prefix_lines; - first0 = MAX (first0 - context, i); - first1 = MAX (first1 - context, i); - if (last0 < files[0].valid_lines - context) - last0 += context; - else - last0 = files[0].valid_lines - 1; - if (last1 < files[1].valid_lines - context) - last1 += context; - else - last1 = files[1].valid_lines - 1; - - /* If desired, find the preceding function definition line in file 0. */ - function = 0; - if (function_regexp.fastmap) - function = find_function (files[0].linbuf, first0); - - begin_output (); - out = outfile; - - fprintf (out, "@@ -"); - print_unidiff_number_range (&files[0], first0, last0); - fprintf (out, " +"); - print_unidiff_number_range (&files[1], first1, last1); - fprintf (out, " @@"); - - if (function) - print_context_function (out, function); - - putc ('\n', out); - - next = hunk; - i = first0; - j = first1; - - while (i <= last0 || j <= last1) - { - - /* If the line isn't a difference, output the context from file 0. */ - - if (!next || i < next->line0) - { - putc (initial_tab ? '\t' : ' ', out); - print_1_line (0, &files[0].linbuf[i++]); - j++; - } - else - { - /* For each difference, first output the deleted part. */ - - k = next->deleted; - while (k--) - { - putc ('-', out); - if (initial_tab) - putc ('\t', out); - print_1_line (0, &files[0].linbuf[i++]); - } - - /* Then output the inserted part. */ - - k = next->inserted; - while (k--) - { - putc ('+', out); - if (initial_tab) - putc ('\t', out); - print_1_line (0, &files[1].linbuf[j++]); - } - - /* We're done with this hunk, so on to the next! */ - - next = next->link; - } - } -} - -/* Scan a (forward-ordered) edit script for the first place that more than - 2*CONTEXT unchanged lines appear, and return a pointer - to the `struct change' for the last change before those lines. */ - -static struct change * -find_hunk (struct change *start) -{ - struct change *prev; - lin top0, top1; - lin thresh; - - /* Threshold distance is 2 * CONTEXT + 1 between two non-ignorable - changes, but only CONTEXT if one is ignorable. Watch out for - integer overflow, though. */ - lin non_ignorable_threshold = - (LIN_MAX - 1) / 2 < context ? LIN_MAX : 2 * context + 1; - lin ignorable_threshold = context; - - do - { - /* Compute number of first line in each file beyond this changed. */ - top0 = start->line0 + start->deleted; - top1 = start->line1 + start->inserted; - prev = start; - start = start->link; - thresh = (prev->ignore || (start && start->ignore) - ? ignorable_threshold - : non_ignorable_threshold); - /* It is not supposed to matter which file we check in the end-test. - If it would matter, crash. */ - if (start && start->line0 - top0 != start->line1 - top1) - abort (); - } while (start - /* Keep going if less than THRESH lines - elapse before the affected line. */ - && start->line0 - top0 < thresh); - - return prev; -} - -/* Set the `ignore' flag properly in each change in SCRIPT. - It should be 1 if all the lines inserted or deleted in that change - are ignorable lines. */ - -static void -mark_ignorable (struct change *script) -{ - while (script) - { - struct change *next = script->link; - lin first0, last0, first1, last1; - - /* Turn this change into a hunk: detach it from the others. */ - script->link = 0; - - /* Determine whether this change is ignorable. */ - script->ignore = ! analyze_hunk (script, - &first0, &last0, &first1, &last1); - - /* Reconnect the chain as before. */ - script->link = next; - - /* Advance to the following change. */ - script = next; - } -} - -/* Find the last function-header line in LINBUF prior to line number LINENUM. - This is a line containing a match for the regexp in `function_regexp'. - Return the address of the text, or 0 if no function-header is found. */ - -static char const * -find_function (char const * const *linbuf, lin linenum) -{ - lin i = linenum; - lin last = find_function_last_search; - find_function_last_search = i; - - while (last <= --i) - { - /* See if this line is what we want. */ - char const *line = linbuf[i]; - size_t linelen = linbuf[i + 1] - line - 1; - - /* FIXME: re_search's size args should be size_t, not int. */ - int len = MIN (linelen, INT_MAX); - - if (0 <= re_search (&function_regexp, line, len, 0, len, 0)) - { - find_function_last_match = i; - return line; - } - } - /* If we search back to where we started searching the previous time, - find the line we found last time. */ - if (find_function_last_match != LIN_MAX) - return linbuf[find_function_last_match]; - - return 0; -} diff --git a/gnu/dist/diffutils/src/diff.c b/gnu/dist/diffutils/src/diff.c deleted file mode 100644 index 057d70ef055..00000000000 --- a/gnu/dist/diffutils/src/diff.c +++ /dev/null @@ -1,1367 +0,0 @@ -/* $NetBSD: diff.c,v 1.3 2011/05/15 13:55:21 christos Exp $ */ - -/* diff - compare files line by line - - Copyright (C) 1988, 1989, 1992, 1993, 1994, 1996, 1998, 2001, 2002 - Free Software Foundation, Inc. - - This file is part of GNU DIFF. - - GNU DIFF is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU DIFF is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with GNU DIFF; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#define GDIFF_MAIN -#include "diff.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static char const authorship_msgid[] = - N_("Written by Paul Eggert, Mike Haertel, David Hayes,\n\ -Richard Stallman, and Len Tower."); - -static char const copyright_string[] = - "Copyright (C) 2002 Free Software Foundation, Inc."; - -#ifndef GUTTER_WIDTH_MINIMUM -# define GUTTER_WIDTH_MINIMUM 3 -#endif - -struct regexp_list -{ - char *regexps; /* chars representing disjunction of the regexps */ - size_t len; /* chars used in `regexps' */ - size_t size; /* size malloc'ed for `regexps'; 0 if not malloc'ed */ - bool multiple_regexps;/* Does `regexps' represent a disjunction? */ - struct re_pattern_buffer *buf; -}; - -static int compare_files (struct comparison const *, char const *, char const *); -static void add_regexp (struct regexp_list *, char const *); -static void summarize_regexp_list (struct regexp_list *); -static void specify_style (enum output_style); -static void specify_value (char const **, char const *, char const *); -static void try_help (char const *, char const *) __attribute__((noreturn)); -static void check_stdout (void); -static void usage (void); - -/* If comparing directories, compare their common subdirectories - recursively. */ -static bool recursive; - -/* In context diffs, show previous lines that match these regexps. */ -static struct regexp_list function_regexp_list; - -/* Ignore changes affecting only lines that match these regexps. */ -static struct regexp_list ignore_regexp_list; - -#if HAVE_SETMODE_DOS -/* Use binary I/O when reading and writing data (--binary). - On POSIX hosts, this has no effect. */ -static bool binary; -#endif - -/* When comparing directories, if a file appears only in one - directory, treat it as present but empty in the other (-N). - Then `patch' would create the file with appropriate contents. */ -static bool new_file; - -/* When comparing directories, if a file appears only in the second - directory of the two, treat it as present but empty in the other - (--unidirectional-new-file). - Then `patch' would create the file with appropriate contents. */ -static bool unidirectional_new_file; - -/* Report files compared that are the same (-s). - Normally nothing is output when that happens. */ -static bool report_identical_files; - - -/* Return a string containing the command options with which diff was invoked. - Spaces appear between what were separate ARGV-elements. - There is a space at the beginning but none at the end. - If there were no options, the result is an empty string. - - Arguments: OPTIONVEC, a vector containing separate ARGV-elements, and COUNT, - the length of that vector. */ - -static char * -option_list (char **optionvec, int count) -{ - int i; - size_t size = 1; - char *result; - char *p; - - for (i = 0; i < count; i++) - size += 1 + quote_system_arg ((char *) 0, optionvec[i]); - - p = result = xmalloc (size); - - for (i = 0; i < count; i++) - { - *p++ = ' '; - p += quote_system_arg (p, optionvec[i]); - } - - *p = 0; - return result; -} - - -/* Return an option value suitable for add_exclude. */ - -static int -exclude_options (void) -{ - return EXCLUDE_WILDCARDS | (ignore_file_name_case ? FNM_CASEFOLD : 0); -} - -static char const shortopts[] = -"0123456789abBcC:dD:eEfF:hHiI:lL:nNpPqrsS:tTuU:vwW:x:X:y"; - -/* Values for long options that do not have single-letter equivalents. */ -enum -{ - BINARY_OPTION = CHAR_MAX + 1, - FROM_FILE_OPTION, - HELP_OPTION, - HORIZON_LINES_OPTION, - IGNORE_FILE_NAME_CASE_OPTION, - INHIBIT_HUNK_MERGE_OPTION, - LEFT_COLUMN_OPTION, - LINE_FORMAT_OPTION, - NO_IGNORE_FILE_NAME_CASE_OPTION, - NORMAL_OPTION, - SDIFF_MERGE_ASSIST_OPTION, - STRIP_TRAILING_CR_OPTION, - SUPPRESS_COMMON_LINES_OPTION, - TO_FILE_OPTION, - - /* These options must be in sequence. */ - UNCHANGED_LINE_FORMAT_OPTION, - OLD_LINE_FORMAT_OPTION, - NEW_LINE_FORMAT_OPTION, - - /* These options must be in sequence. */ - UNCHANGED_GROUP_FORMAT_OPTION, - OLD_GROUP_FORMAT_OPTION, - NEW_GROUP_FORMAT_OPTION, - CHANGED_GROUP_FORMAT_OPTION -}; - -static char const group_format_option[][sizeof "--unchanged-group-format"] = - { - "--unchanged-group-format", - "--old-group-format", - "--new-group-format", - "--changed-group-format" - }; - -static char const line_format_option[][sizeof "--unchanged-line-format"] = - { - "--unchanged-line-format", - "--old-line-format", - "--new-line-format" - }; - -static struct option const longopts[] = -{ - {"binary", 0, 0, BINARY_OPTION}, - {"brief", 0, 0, 'q'}, - {"changed-group-format", 1, 0, CHANGED_GROUP_FORMAT_OPTION}, - {"context", 2, 0, 'C'}, - {"ed", 0, 0, 'e'}, - {"exclude", 1, 0, 'x'}, - {"exclude-from", 1, 0, 'X'}, - {"expand-tabs", 0, 0, 't'}, - {"forward-ed", 0, 0, 'f'}, - {"from-file", 1, 0, FROM_FILE_OPTION}, - {"help", 0, 0, HELP_OPTION}, - {"horizon-lines", 1, 0, HORIZON_LINES_OPTION}, - {"ifdef", 1, 0, 'D'}, - {"ignore-all-space", 0, 0, 'w'}, - {"ignore-blank-lines", 0, 0, 'B'}, - {"ignore-case", 0, 0, 'i'}, - {"ignore-file-name-case", 0, 0, IGNORE_FILE_NAME_CASE_OPTION}, - {"ignore-matching-lines", 1, 0, 'I'}, - {"ignore-space-change", 0, 0, 'b'}, - {"ignore-tab-expansion", 0, 0, 'E'}, - {"inhibit-hunk-merge", 0, 0, INHIBIT_HUNK_MERGE_OPTION}, - {"initial-tab", 0, 0, 'T'}, - {"label", 1, 0, 'L'}, - {"left-column", 0, 0, LEFT_COLUMN_OPTION}, - {"line-format", 1, 0, LINE_FORMAT_OPTION}, - {"minimal", 0, 0, 'd'}, - {"new-file", 0, 0, 'N'}, - {"new-group-format", 1, 0, NEW_GROUP_FORMAT_OPTION}, - {"new-line-format", 1, 0, NEW_LINE_FORMAT_OPTION}, - {"no-ignore-file-name-case", 0, 0, NO_IGNORE_FILE_NAME_CASE_OPTION}, - {"normal", 0, 0, NORMAL_OPTION}, - {"old-group-format", 1, 0, OLD_GROUP_FORMAT_OPTION}, - {"old-line-format", 1, 0, OLD_LINE_FORMAT_OPTION}, - {"paginate", 0, 0, 'l'}, - {"rcs", 0, 0, 'n'}, - {"recursive", 0, 0, 'r'}, - {"report-identical-files", 0, 0, 's'}, - {"sdiff-merge-assist", 0, 0, SDIFF_MERGE_ASSIST_OPTION}, - {"show-c-function", 0, 0, 'p'}, - {"show-function-line", 1, 0, 'F'}, - {"side-by-side", 0, 0, 'y'}, - {"speed-large-files", 0, 0, 'H'}, - {"starting-file", 1, 0, 'S'}, - {"strip-trailing-cr", 0, 0, STRIP_TRAILING_CR_OPTION}, - {"suppress-common-lines", 0, 0, SUPPRESS_COMMON_LINES_OPTION}, - {"text", 0, 0, 'a'}, - {"to-file", 1, 0, TO_FILE_OPTION}, - {"unchanged-group-format", 1, 0, UNCHANGED_GROUP_FORMAT_OPTION}, - {"unchanged-line-format", 1, 0, UNCHANGED_LINE_FORMAT_OPTION}, - {"unidirectional-new-file", 0, 0, 'P'}, - {"unified", 2, 0, 'U'}, - {"version", 0, 0, 'v'}, - {"width", 1, 0, 'W'}, - {0, 0, 0, 0} -}; - -int -main (int argc, char **argv) -{ - int exit_status = EXIT_SUCCESS; - int c; - int i; - int prev = -1; - lin ocontext = -1; - bool explicit_context = 0; - int width = 0; - bool show_c_function = 0; - char const *from_file = 0; - char const *to_file = 0; - uintmax_t numval; - char *numend; - - /* Do our initializations. */ - exit_failure = 2; - initialize_main (&argc, &argv); - program_name = argv[0]; - setlocale (LC_ALL, ""); - bindtextdomain (PACKAGE, LOCALEDIR); - textdomain (PACKAGE); - c_stack_action (c_stack_die); - function_regexp_list.buf = &function_regexp; - ignore_regexp_list.buf = &ignore_regexp; - re_set_syntax (RE_SYNTAX_GREP | RE_NO_POSIX_BACKTRACKING); - excluded = new_exclude (); - - /* Decode the options. */ - - while ((c = getopt_long (argc, argv, shortopts, longopts, 0)) != -1) - { - switch (c) - { - case 0: - break; - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - if (! ISDIGIT (prev)) - ocontext = c - '0'; - else if (LIN_MAX / 10 < ocontext - || ((ocontext = 10 * ocontext + c - '0') < 0)) - ocontext = LIN_MAX; - break; - - case 'a': - text = 1; - break; - - case 'b': - if (ignore_white_space < IGNORE_SPACE_CHANGE) - ignore_white_space = IGNORE_SPACE_CHANGE; - break; - - case 'B': - ignore_blank_lines = 1; - break; - - case 'C': /* +context[=lines] */ - case 'U': /* +unified[=lines] */ - { - if (optarg) - { - numval = strtoumax (optarg, &numend, 10); - if (*numend) - try_help ("invalid context length `%s'", optarg); - if (LIN_MAX < numval) - numval = LIN_MAX; - } - else - numval = 3; - - specify_style (c == 'U' ? OUTPUT_UNIFIED : OUTPUT_CONTEXT); - if (context < numval) - context = numval; - explicit_context = 1; - } - break; - - case 'c': - specify_style (OUTPUT_CONTEXT); - if (context < 3) - context = 3; - break; - - case 'd': - minimal = 1; - break; - - case 'D': - specify_style (OUTPUT_IFDEF); - { - static char const C_ifdef_group_formats[] = - "%%=%c#ifndef %s\n%%<#endif /* ! %s */\n%c#ifdef %s\n%%>#endif /* %s */\n%c#ifndef %s\n%%<#else /* %s */\n%%>#endif /* %s */\n"; - char *b = xmalloc (sizeof C_ifdef_group_formats - + 7 * strlen (optarg) - 14 /* 7*"%s" */ - - 8 /* 5*"%%" + 3*"%c" */); - sprintf (b, C_ifdef_group_formats, - 0, - optarg, optarg, 0, - optarg, optarg, 0, - optarg, optarg, optarg); - for (i = 0; i < sizeof group_format / sizeof *group_format; i++) - { - specify_value (&group_format[i], b, "-D"); - b += strlen (b) + 1; - } - } - break; - - case 'e': - specify_style (OUTPUT_ED); - break; - - case 'E': - if (ignore_white_space < IGNORE_TAB_EXPANSION) - ignore_white_space = IGNORE_TAB_EXPANSION; - break; - - case 'f': - specify_style (OUTPUT_FORWARD_ED); - break; - - case 'F': - add_regexp (&function_regexp_list, optarg); - break; - - case 'h': - /* Split the files into chunks for faster processing. - Usually does not change the result. - - This currently has no effect. */ - break; - - case 'H': - speed_large_files = 1; - break; - - case 'i': - ignore_case = 1; - break; - - case 'I': - add_regexp (&ignore_regexp_list, optarg); - break; - - case 'l': - if (!pr_program[0]) - try_help ("pagination not supported on this host", 0); - paginate = 1; -#ifdef SIGCHLD - /* Pagination requires forking and waiting, and - System V fork+wait does not work if SIGCHLD is ignored. */ - signal (SIGCHLD, SIG_DFL); -#endif - break; - - case 'L': - if (!file_label[0]) - file_label[0] = optarg; - else if (!file_label[1]) - file_label[1] = optarg; - else - fatal ("too many file label options"); - break; - - case 'n': - specify_style (OUTPUT_RCS); - break; - - case 'N': - new_file = 1; - break; - - case 'p': - show_c_function = 1; - add_regexp (&function_regexp_list, "^[[:alpha:]$_]"); - break; - - case 'P': - unidirectional_new_file = 1; - break; - - case 'q': - brief = 1; - break; - - case 'r': - recursive = 1; - break; - - case 's': - report_identical_files = 1; - break; - - case 'S': - specify_value (&starting_file, optarg, "-S"); - break; - - case 't': - expand_tabs = 1; - break; - - case 'T': - initial_tab = 1; - break; - - case 'u': - specify_style (OUTPUT_UNIFIED); - if (context < 3) - context = 3; - break; - - case 'v': - printf ("diff %s\n%s\n\n%s\n\n%s\n", - version_string, copyright_string, - _(free_software_msgid), _(authorship_msgid)); - check_stdout (); - return EXIT_SUCCESS; - - case 'w': - ignore_white_space = IGNORE_ALL_SPACE; - break; - - case 'x': - add_exclude (excluded, optarg, exclude_options ()); - break; - - case 'X': - if (add_exclude_file (add_exclude, excluded, optarg, - exclude_options (), '\n')) - pfatal_with_name (optarg); - break; - - case 'y': - specify_style (OUTPUT_SDIFF); - break; - - case 'W': - numval = strtoumax (optarg, &numend, 10); - if (! (0 < numval && numval <= INT_MAX) || *numend) - try_help ("invalid width `%s'", optarg); - if (width != numval) - { - if (width) - fatal ("conflicting width options"); - width = numval; - } - break; - - case BINARY_OPTION: -#if HAVE_SETMODE_DOS - binary = 1; - set_binary_mode (STDOUT_FILENO, 1); -#endif - break; - - case FROM_FILE_OPTION: - specify_value (&from_file, optarg, "--from-file"); - break; - - case HELP_OPTION: - usage (); - check_stdout (); - return EXIT_SUCCESS; - - case HORIZON_LINES_OPTION: - numval = strtoumax (optarg, &numend, 10); - if (*numend) - try_help ("invalid horizon length `%s'", optarg); - horizon_lines = MAX (horizon_lines, MIN (numval, LIN_MAX)); - break; - - case IGNORE_FILE_NAME_CASE_OPTION: - ignore_file_name_case = 1; - break; - - case INHIBIT_HUNK_MERGE_OPTION: - /* This option is obsolete, but accept it for backward - compatibility. */ - break; - - case LEFT_COLUMN_OPTION: - left_column = 1; - break; - - case LINE_FORMAT_OPTION: - specify_style (OUTPUT_IFDEF); - for (i = 0; i < sizeof line_format / sizeof *line_format; i++) - specify_value (&line_format[i], optarg, "--line-format"); - break; - - case NO_IGNORE_FILE_NAME_CASE_OPTION: - ignore_file_name_case = 0; - break; - - case NORMAL_OPTION: - specify_style (OUTPUT_NORMAL); - break; - - case SDIFF_MERGE_ASSIST_OPTION: - specify_style (OUTPUT_SDIFF); - sdiff_merge_assist = 1; - break; - - case STRIP_TRAILING_CR_OPTION: - strip_trailing_cr = 1; - break; - - case SUPPRESS_COMMON_LINES_OPTION: - suppress_common_lines = 1; - break; - - case TO_FILE_OPTION: - specify_value (&to_file, optarg, "--to-file"); - break; - - case UNCHANGED_LINE_FORMAT_OPTION: - case OLD_LINE_FORMAT_OPTION: - case NEW_LINE_FORMAT_OPTION: - specify_style (OUTPUT_IFDEF); - c -= UNCHANGED_LINE_FORMAT_OPTION; - specify_value (&line_format[c], optarg, line_format_option[c]); - break; - - case UNCHANGED_GROUP_FORMAT_OPTION: - case OLD_GROUP_FORMAT_OPTION: - case NEW_GROUP_FORMAT_OPTION: - case CHANGED_GROUP_FORMAT_OPTION: - specify_style (OUTPUT_IFDEF); - c -= UNCHANGED_GROUP_FORMAT_OPTION; - specify_value (&group_format[c], optarg, group_format_option[c]); - break; - - default: - try_help (0, 0); - } - prev = c; - } - - if (output_style == OUTPUT_UNSPECIFIED) - { - if (show_c_function) - { - specify_style (OUTPUT_CONTEXT); - if (ocontext < 0) - context = 3; - } - else - specify_style (OUTPUT_NORMAL); - } - - if (output_style != OUTPUT_CONTEXT || hard_locale (LC_TIME)) - time_format = "%Y-%m-%d %H:%M:%S.%N %z"; - else - { - /* See POSIX 1003.1-2001 for this format. */ - time_format = "%a %b %e %T %Y"; - } - - if (0 <= ocontext) - { - bool modern_usage = 200112 <= posix2_version (); - - if ((output_style == OUTPUT_CONTEXT - || output_style == OUTPUT_UNIFIED) - && (context < ocontext - || (ocontext < context && ! explicit_context))) - { - if (modern_usage) - { - error (0, 0, - _("`-%ld' option is obsolete; use `-%c %ld'"), - (long) ocontext, - output_style == OUTPUT_CONTEXT ? 'C' : 'U', - (long) ocontext); - try_help (0, 0); - } - context = ocontext; - } - else - { - if (modern_usage) - { - error (0, 0, _("`-%ld' option is obsolete; omit it"), - (long) ocontext); - try_help (0, 0); - } - } - } - - { - /* - * We maximize first the half line width, and then the gutter width, - * according to the following constraints: - * 1. Two half lines plus a gutter must fit in a line. - * 2. If the half line width is nonzero: - * a. The gutter width is at least GUTTER_WIDTH_MINIMUM. - * b. If tabs are not expanded to spaces, - * a half line plus a gutter is an integral number of tabs, - * so that tabs in the right column line up. - */ - unsigned int t = expand_tabs ? 1 : TAB_WIDTH; - int w = width ? width : 130; - int off = (w + t + GUTTER_WIDTH_MINIMUM) / (2 * t) * t; - sdiff_half_width = MAX (0, MIN (off - GUTTER_WIDTH_MINIMUM, w - off)), - sdiff_column2_offset = sdiff_half_width ? off : w; - } - - /* Make the horizon at least as large as the context, so that - shift_boundaries has more freedom to shift the first and last hunks. */ - if (horizon_lines < context) - horizon_lines = context; - - summarize_regexp_list (&function_regexp_list); - summarize_regexp_list (&ignore_regexp_list); - - if (output_style == OUTPUT_IFDEF) - { - for (i = 0; i < sizeof line_format / sizeof *line_format; i++) - if (!line_format[i]) - line_format[i] = "%l\n"; - if (!group_format[OLD]) - group_format[OLD] - = group_format[CHANGED] ? group_format[CHANGED] : "%<"; - if (!group_format[NEW]) - group_format[NEW] - = group_format[CHANGED] ? group_format[CHANGED] : "%>"; - if (!group_format[UNCHANGED]) - group_format[UNCHANGED] = "%="; - if (!group_format[CHANGED]) - group_format[CHANGED] = concat (group_format[OLD], - group_format[NEW], ""); - } - - no_diff_means_no_output = - (output_style == OUTPUT_IFDEF ? - (!*group_format[UNCHANGED] - || (strcmp (group_format[UNCHANGED], "%=") == 0 - && !*line_format[UNCHANGED])) - : (output_style != OUTPUT_SDIFF) | suppress_common_lines); - - files_can_be_treated_as_binary = - (brief - & ~ (ignore_blank_lines | ignore_case | strip_trailing_cr - | (ignore_regexp_list.regexps || ignore_white_space))); - - switch_string = option_list (argv + 1, optind - 1); - - if (from_file) - { - if (to_file) - fatal ("--from-file and --to-file both specified"); - else - for (; optind < argc; optind++) - { - int status = compare_files ((struct comparison *) 0, - from_file, argv[optind]); - if (exit_status < status) - exit_status = status; - } - } - else - { - if (to_file) - for (; optind < argc; optind++) - { - int status = compare_files ((struct comparison *) 0, - argv[optind], to_file); - if (exit_status < status) - exit_status = status; - } - else - { - if (argc - optind != 2) - { - if (argc - optind < 2) - try_help ("missing operand after `%s'", argv[argc - 1]); - else - try_help ("extra operand `%s'", argv[optind + 2]); - } - - exit_status = compare_files ((struct comparison *) 0, - argv[optind], argv[optind + 1]); - } - } - - /* Print any messages that were saved up for last. */ - print_message_queue (); - - check_stdout (); - exit (exit_status); - return exit_status; -} - -/* Append to REGLIST the regexp PATTERN. */ - -static void -add_regexp (struct regexp_list *reglist, char const *pattern) -{ - size_t patlen = strlen (pattern); - char const *m = re_compile_pattern (pattern, patlen, reglist->buf); - - if (m != 0) - error (0, 0, "%s: %s", pattern, m); - else - { - char *regexps = reglist->regexps; - size_t len = reglist->len; - bool multiple_regexps = reglist->multiple_regexps = regexps != 0; - size_t newlen = reglist->len = len + 2 * multiple_regexps + patlen; - size_t size = reglist->size; - - if (size <= newlen) - { - if (!size) - size = 1; - - do size *= 2; - while (size <= newlen); - - reglist->size = size; - reglist->regexps = regexps = xrealloc (regexps, size); - } - if (multiple_regexps) - { - regexps[len++] = '\\'; - regexps[len++] = '|'; - } - memcpy (regexps + len, pattern, patlen + 1); - } -} - -/* Ensure that REGLIST represents the disjunction of its regexps. - This is done here, rather than earlier, to avoid O(N^2) behavior. */ - -static void -summarize_regexp_list (struct regexp_list *reglist) -{ - if (reglist->regexps) - { - /* At least one regexp was specified. Allocate a fastmap for it. */ - reglist->buf->fastmap = xmalloc (1 << CHAR_BIT); - if (reglist->multiple_regexps) - { - /* Compile the disjunction of the regexps. - (If just one regexp was specified, it is already compiled.) */ - char const *m = re_compile_pattern (reglist->regexps, reglist->len, - reglist->buf); - if (m != 0) - error (EXIT_TROUBLE, 0, "%s: %s", reglist->regexps, m); - } - } -} - -static void -try_help (char const *reason_msgid, char const *operand) -{ - if (reason_msgid) - error (0, 0, _(reason_msgid), operand); - error (EXIT_TROUBLE, 0, _("Try `%s --help' for more information."), - program_name); - abort (); -} - -static void -check_stdout (void) -{ - if (ferror (stdout)) - fatal ("write failed"); - else if (fclose (stdout) != 0) - pfatal_with_name (_("standard output")); -} - -static char const * const option_help_msgid[] = { - N_("Compare files line by line."), - "", - N_("-i --ignore-case Ignore case differences in file contents."), - N_("--ignore-file-name-case Ignore case when comparing file names."), - N_("--no-ignore-file-name-case Consider case when comparing file names."), - N_("-E --ignore-tab-expansion Ignore changes due to tab expansion."), - N_("-b --ignore-space-change Ignore changes in the amount of white space."), - N_("-w --ignore-all-space Ignore all white space."), - N_("-B --ignore-blank-lines Ignore changes whose lines are all blank."), - N_("-I RE --ignore-matching-lines=RE Ignore changes whose lines all match RE."), - N_("--strip-trailing-cr Strip trailing carriage return on input."), -#if HAVE_SETMODE_DOS - N_("--binary Read and write data in binary mode."), -#endif - N_("-a --text Treat all files as text."), - "", - N_("-c -C NUM --context[=NUM] Output NUM (default 3) lines of copied context.\n\ --u -U NUM --unified[=NUM] Output NUM (default 3) lines of unified context.\n\ - --label LABEL Use LABEL instead of file name.\n\ - -p --show-c-function Show which C function each change is in.\n\ - -F RE --show-function-line=RE Show the most recent line matching RE."), - N_("-q --brief Output only whether files differ."), - N_("-e --ed Output an ed script."), - N_("--normal Output a normal diff."), - N_("-n --rcs Output an RCS format diff."), - N_("-y --side-by-side Output in two columns.\n\ - -W NUM --width=NUM Output at most NUM (default 130) print columns.\n\ - --left-column Output only the left column of common lines.\n\ - --suppress-common-lines Do not output common lines."), - N_("-D NAME --ifdef=NAME Output merged file to show `#ifdef NAME' diffs."), - N_("--GTYPE-group-format=GFMT Similar, but format GTYPE input groups with GFMT."), - N_("--line-format=LFMT Similar, but format all input lines with LFMT."), - N_("--LTYPE-line-format=LFMT Similar, but format LTYPE input lines with LFMT."), - N_(" LTYPE is `old', `new', or `unchanged'. GTYPE is LTYPE or `changed'."), - N_(" GFMT may contain:\n\ - %< lines from FILE1\n\ - %> lines from FILE2\n\ - %= lines common to FILE1 and FILE2\n\ - %[-][WIDTH][.[PREC]]{doxX}LETTER printf-style spec for LETTER\n\ - LETTERs are as follows for new group, lower case for old group:\n\ - F first line number\n\ - L last line number\n\ - N number of lines = L-F+1\n\ - E F-1\n\ - M L+1"), - N_(" LFMT may contain:\n\ - %L contents of line\n\ - %l contents of line, excluding any trailing newline\n\ - %[-][WIDTH][.[PREC]]{doxX}n printf-style spec for input line number"), - N_(" Either GFMT or LFMT may contain:\n\ - %% %\n\ - %c'C' the single character C\n\ - %c'\\OOO' the character with octal code OOO"), - "", - N_("-l --paginate Pass the output through `pr' to paginate it."), - N_("-t --expand-tabs Expand tabs to spaces in output."), - N_("-T --initial-tab Make tabs line up by prepending a tab."), - "", - N_("-r --recursive Recursively compare any subdirectories found."), - N_("-N --new-file Treat absent files as empty."), - N_("--unidirectional-new-file Treat absent first files as empty."), - N_("-s --report-identical-files Report when two files are the same."), - N_("-x PAT --exclude=PAT Exclude files that match PAT."), - N_("-X FILE --exclude-from=FILE Exclude files that match any pattern in FILE."), - N_("-S FILE --starting-file=FILE Start with FILE when comparing directories."), - N_("--from-file=FILE1 Compare FILE1 to all operands. FILE1 can be a directory."), - N_("--to-file=FILE2 Compare all operands to FILE2. FILE2 can be a directory."), - "", - N_("--horizon-lines=NUM Keep NUM lines of the common prefix and suffix."), - N_("-d --minimal Try hard to find a smaller set of changes."), - N_("--speed-large-files Assume large files and many scattered small changes."), - "", - N_("-v --version Output version info."), - N_("--help Output this help."), - "", - N_("FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'."), - N_("If --from-file or --to-file is given, there are no restrictions on FILES."), - N_("If a FILE is `-', read standard input."), - "", - N_("Report bugs to ."), - 0 -}; - -static void -usage (void) -{ - char const * const *p; - - printf (_("Usage: %s [OPTION]... FILES\n"), program_name); - - for (p = option_help_msgid; *p; p++) - { - if (!**p) - putchar ('\n'); - else - { - char const *msg = _(*p); - char const *nl; - while ((nl = strchr (msg, '\n'))) - { - int msglen = nl + 1 - msg; - printf (" %.*s", msglen, msg); - msg = nl + 1; - } - - printf (" %s\n" + 2 * (*msg != ' ' && *msg != '-'), msg); - } - } -} - -/* Set VAR to VALUE, reporting an OPTION error if this is a - conflict. */ -static void -specify_value (char const **var, char const *value, char const *option) -{ - if (*var && strcmp (*var, value) != 0) - { - error (0, 0, _("conflicting %s option value `%s'"), option, value); - try_help (0, 0); - } - *var = value; -} - -/* Set the output style to STYLE, diagnosing conflicts. */ -static void -specify_style (enum output_style style) -{ - if (output_style != style) - { - if (output_style != OUTPUT_UNSPECIFIED) - try_help ("conflicting output style options", 0); - output_style = style; - } -} - -static char const * -filetype (struct stat const *st) -{ - /* See POSIX 1003.1-2001 for these formats. - - To keep diagnostics grammatical in English, the returned string - must start with a consonant. */ - - if (S_ISREG (st->st_mode)) - return st->st_size == 0 ? _("regular empty file") : _("regular file"); - - if (S_ISDIR (st->st_mode)) return _("directory"); - -#ifdef S_ISBLK - if (S_ISBLK (st->st_mode)) return _("block special file"); -#endif -#ifdef S_ISCHR - if (S_ISCHR (st->st_mode)) return _("character special file"); -#endif -#ifdef S_ISFIFO - if (S_ISFIFO (st->st_mode)) return _("fifo"); -#endif - /* S_ISLNK is impossible with `fstat' and `stat'. */ -#ifdef S_ISSOCK - if (S_ISSOCK (st->st_mode)) return _("socket"); -#endif -#ifdef S_TYPEISMQ - if (S_TYPEISMQ (st)) return _("message queue"); -#endif -#ifdef S_TYPEISSEM - if (S_TYPEISSEM (st)) return _("semaphore"); -#endif -#ifdef S_TYPEISSHM - if (S_TYPEISSHM (st)) return _("shared memory object"); -#endif -#ifdef S_TYPEISTMO - if (S_TYPEISTMO (st)) return _("typed memory object"); -#endif - - return _("weird file"); -} - -/* Set the last-modified time of *ST to be the current time. */ - -static void -set_mtime_to_now (struct stat *st) -{ -#ifdef ST_MTIM_NSEC - -# if HAVE_CLOCK_GETTIME && defined CLOCK_REALTIME - if (clock_gettime (CLOCK_REALTIME, &st->st_mtim) == 0) - return; -# endif - -# if HAVE_GETTIMEOFDAY - { - struct timeval timeval; - if (gettimeofday (&timeval, NULL) == 0) - { - st->st_mtime = timeval.tv_sec; - st->st_mtim.ST_MTIM_NSEC = timeval.tv_usec * 1000; - return; - } - } -# endif - -#endif /* ST_MTIM_NSEC */ - - time (&st->st_mtime); -} - -/* Compare two files (or dirs) with parent comparison PARENT - and names NAME0 and NAME1. - (If PARENT is 0, then the first name is just NAME0, etc.) - This is self-contained; it opens the files and closes them. - - Value is EXIT_SUCCESS if files are the same, EXIT_FAILURE if - different, EXIT_TROUBLE if there is a problem opening them. */ - -static int -compare_files (struct comparison const *parent, - char const *name0, - char const *name1) -{ - struct comparison cmp; -#define DIR_P(f) (S_ISDIR (cmp.file[f].stat.st_mode) != 0) - register int f; - int status = EXIT_SUCCESS; - bool same_files; - char *free0, *free1; - - /* If this is directory comparison, perhaps we have a file - that exists only in one of the directories. - If so, just print a message to that effect. */ - - if (! ((name0 && name1) - || (unidirectional_new_file && name1) - || new_file)) - { - char const *name = name0 == 0 ? name1 : name0; - char const *dir = parent->file[name0 == 0].name; - - /* See POSIX 1003.1-2001 for this format. */ - message ("Only in %s: %s\n", dir, name); - - /* Return EXIT_FAILURE so that diff_dirs will return - EXIT_FAILURE ("some files differ"). */ - return EXIT_FAILURE; - } - - memset (cmp.file, 0, sizeof cmp.file); - cmp.parent = parent; - - /* cmp.file[f].desc markers */ -#define NONEXISTENT (-1) /* nonexistent file */ -#define UNOPENED (-2) /* unopened file (e.g. directory) */ -#define ERRNO_ENCODE(errno) (-3 - (errno)) /* encoded errno value */ - -#define ERRNO_DECODE(desc) (-3 - (desc)) /* inverse of ERRNO_ENCODE */ - - cmp.file[0].desc = name0 == 0 ? NONEXISTENT : UNOPENED; - cmp.file[1].desc = name1 == 0 ? NONEXISTENT : UNOPENED; - - /* Now record the full name of each file, including nonexistent ones. */ - - if (name0 == 0) - name0 = name1; - if (name1 == 0) - name1 = name0; - - if (!parent) - { - free0 = 0; - free1 = 0; - cmp.file[0].name = name0; - cmp.file[1].name = name1; - } - else - { - cmp.file[0].name = free0 - = dir_file_pathname (parent->file[0].name, name0); - cmp.file[1].name = free1 - = dir_file_pathname (parent->file[1].name, name1); - } - - /* Stat the files. */ - - for (f = 0; f < 2; f++) - { - if (cmp.file[f].desc != NONEXISTENT) - { - if (f && file_name_cmp (cmp.file[f].name, cmp.file[0].name) == 0) - { - cmp.file[f].desc = cmp.file[0].desc; - cmp.file[f].stat = cmp.file[0].stat; - } - else if (strcmp (cmp.file[f].name, "-") == 0) - { - cmp.file[f].desc = STDIN_FILENO; - if (fstat (STDIN_FILENO, &cmp.file[f].stat) != 0) - cmp.file[f].desc = ERRNO_ENCODE (errno); - else - { - if (S_ISREG (cmp.file[f].stat.st_mode)) - { - off_t pos = lseek (STDIN_FILENO, (off_t) 0, SEEK_CUR); - if (pos < 0) - cmp.file[f].desc = ERRNO_ENCODE (errno); - else - cmp.file[f].stat.st_size = - MAX (0, cmp.file[f].stat.st_size - pos); - } - - /* POSIX 1003.1-2001 requires current time for - stdin. */ - set_mtime_to_now (&cmp.file[f].stat); - } - } - else if (stat (cmp.file[f].name, &cmp.file[f].stat) != 0) - cmp.file[f].desc = ERRNO_ENCODE (errno); - } - } - - /* Mark files as nonexistent at the top level as needed for -N and - --unidirectional-new-file. */ - if (! parent) - { - if ((new_file | unidirectional_new_file) - && cmp.file[0].desc == ERRNO_ENCODE (ENOENT) - && cmp.file[1].desc == UNOPENED) - cmp.file[0].desc = NONEXISTENT; - - if (new_file - && cmp.file[0].desc == UNOPENED - && cmp.file[1].desc == ERRNO_ENCODE (ENOENT)) - cmp.file[1].desc = NONEXISTENT; - } - - for (f = 0; f < 2; f++) - if (cmp.file[f].desc == NONEXISTENT) - cmp.file[f].stat.st_mode = cmp.file[1 - f].stat.st_mode; - - for (f = 0; f < 2; f++) - { - int e = ERRNO_DECODE (cmp.file[f].desc); - if (0 <= e) - { - errno = e; - perror_with_name (cmp.file[f].name); - status = EXIT_TROUBLE; - } - } - - if (status == EXIT_SUCCESS && ! parent && DIR_P (0) != DIR_P (1)) - { - /* If one is a directory, and it was specified in the command line, - use the file in that dir with the other file's basename. */ - - int fnm_arg = DIR_P (0); - int dir_arg = 1 - fnm_arg; - char const *fnm = cmp.file[fnm_arg].name; - char const *dir = cmp.file[dir_arg].name; - char const *filename = cmp.file[dir_arg].name = free0 - = dir_file_pathname (dir, base_name (fnm)); - - if (strcmp (fnm, "-") == 0) - fatal ("cannot compare `-' to a directory"); - - if (stat (filename, &cmp.file[dir_arg].stat) != 0) - { - perror_with_name (filename); - status = EXIT_TROUBLE; - } - } - - if (status != EXIT_SUCCESS) - { - /* One of the files should exist but does not. */ - } - else if ((same_files - = (cmp.file[0].desc != NONEXISTENT - && cmp.file[1].desc != NONEXISTENT - && (same_special_file (&cmp.file[0].stat, &cmp.file[1].stat) - || (0 < same_file (&cmp.file[0].stat, &cmp.file[1].stat) - && same_file_attributes (&cmp.file[0].stat, - &cmp.file[1].stat))))) - && no_diff_means_no_output) - { - /* The two named files are actually the same physical file. - We know they are identical without actually reading them. */ - } - else if (DIR_P (0) & DIR_P (1)) - { - if (output_style == OUTPUT_IFDEF) - fatal ("-D option not supported with directories"); - - /* If both are directories, compare the files in them. */ - - if (parent && !recursive) - { - /* But don't compare dir contents one level down - unless -r was specified. - See POSIX 1003.1-2001 for this format. */ - message ("Common subdirectories: %s and %s\n", - cmp.file[0].name, cmp.file[1].name); - } - else - status = diff_dirs (&cmp, compare_files); - } - else if ((DIR_P (0) | DIR_P (1)) - || (parent - && (! S_ISREG (cmp.file[0].stat.st_mode) - || ! S_ISREG (cmp.file[1].stat.st_mode)))) - { - if (cmp.file[0].desc == NONEXISTENT || cmp.file[1].desc == NONEXISTENT) - { - /* We have a subdirectory that exists only in one directory. */ - - if ((DIR_P (0) | DIR_P (1)) - && recursive - && (new_file - || (unidirectional_new_file - && cmp.file[0].desc == NONEXISTENT))) - status = diff_dirs (&cmp, compare_files); - else - { - char const *dir - = parent->file[cmp.file[0].desc == NONEXISTENT].name; - - /* See POSIX 1003.1-2001 for this format. */ - message ("Only in %s: %s\n", dir, name0); - - status = EXIT_FAILURE; - } - } - else - { - /* We have two files that are not to be compared. */ - - /* See POSIX 1003.1-2001 for this format. */ - message5 ("File %s is a %s while file %s is a %s\n", - file_label[0] ? file_label[0] : cmp.file[0].name, - filetype (&cmp.file[0].stat), - file_label[1] ? file_label[1] : cmp.file[1].name, - filetype (&cmp.file[1].stat)); - - /* This is a difference. */ - status = EXIT_FAILURE; - } - } - else if (files_can_be_treated_as_binary - && cmp.file[0].stat.st_size != cmp.file[1].stat.st_size - && (cmp.file[0].desc == NONEXISTENT - || S_ISREG (cmp.file[0].stat.st_mode)) - && (cmp.file[1].desc == NONEXISTENT - || S_ISREG (cmp.file[1].stat.st_mode))) - { - message ("Files %s and %s differ\n", - file_label[0] ? file_label[0] : cmp.file[0].name, - file_label[1] ? file_label[1] : cmp.file[1].name); - status = EXIT_FAILURE; - } - else - { - /* Both exist and neither is a directory. */ - - /* Open the files and record their descriptors. */ - - if (cmp.file[0].desc == UNOPENED) - if ((cmp.file[0].desc = open (cmp.file[0].name, O_RDONLY, 0)) < 0) - { - perror_with_name (cmp.file[0].name); - status = EXIT_TROUBLE; - } - if (cmp.file[1].desc == UNOPENED) - { - if (same_files) - cmp.file[1].desc = cmp.file[0].desc; - else if ((cmp.file[1].desc = open (cmp.file[1].name, O_RDONLY, 0)) - < 0) - { - perror_with_name (cmp.file[1].name); - status = EXIT_TROUBLE; - } - } - -#if HAVE_SETMODE_DOS - if (binary) - for (f = 0; f < 2; f++) - if (0 <= cmp.file[f].desc) - set_binary_mode (cmp.file[f].desc, 1); -#endif - - /* Compare the files, if no error was found. */ - - if (status == EXIT_SUCCESS) - status = diff_2_files (&cmp); - - /* Close the file descriptors. */ - - if (0 <= cmp.file[0].desc && close (cmp.file[0].desc) != 0) - { - perror_with_name (cmp.file[0].name); - status = EXIT_TROUBLE; - } - if (0 <= cmp.file[1].desc && cmp.file[0].desc != cmp.file[1].desc - && close (cmp.file[1].desc) != 0) - { - perror_with_name (cmp.file[1].name); - status = EXIT_TROUBLE; - } - } - - /* Now the comparison has been done, if no error prevented it, - and STATUS is the value this function will return. */ - - if (status == EXIT_SUCCESS) - { - if (report_identical_files && !DIR_P (0)) - message ("Files %s and %s are identical\n", - file_label[0] ? file_label[0] : cmp.file[0].name, - file_label[1] ? file_label[1] : cmp.file[1].name); - } - else - { - /* Flush stdout so that the user sees differences immediately. - This can hurt performance, unfortunately. */ - if (fflush (stdout) != 0) - pfatal_with_name (_("standard output")); - } - - if (free0) - free (free0); - if (free1) - free (free1); - - return status; -} diff --git a/gnu/dist/diffutils/src/diff.h b/gnu/dist/diffutils/src/diff.h deleted file mode 100644 index deb561a6931..00000000000 --- a/gnu/dist/diffutils/src/diff.h +++ /dev/null @@ -1,377 +0,0 @@ -/* $NetBSD: diff.h,v 1.1.1.1 2003/01/26 00:43:16 wiz Exp $ */ - -/* Shared definitions for GNU DIFF - - Copyright (C) 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1998, 2001, - 2002 Free Software Foundation, Inc. - - This file is part of GNU DIFF. - - GNU DIFF is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU DIFF is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#include "system.h" -#include - -#define TAB_WIDTH 8 - -/* What kind of changes a hunk contains. */ -enum changes -{ - /* No changes: lines common to both files. */ - UNCHANGED, - - /* Deletes only: lines taken from just the first file. */ - OLD, - - /* Inserts only: lines taken from just the second file. */ - NEW, - - /* Both deletes and inserts: a hunk containing both old and new lines. */ - CHANGED -}; - -/* Variables for command line options */ - -#ifndef GDIFF_MAIN -# define XTERN extern -#else -# define XTERN -#endif - -enum output_style -{ - /* No output style specified. */ - OUTPUT_UNSPECIFIED, - - /* Default output style. */ - OUTPUT_NORMAL, - - /* Output the differences with lines of context before and after (-c). */ - OUTPUT_CONTEXT, - - /* Output the differences in a unified context diff format (-u). */ - OUTPUT_UNIFIED, - - /* Output the differences as commands suitable for `ed' (-e). */ - OUTPUT_ED, - - /* Output the diff as a forward ed script (-f). */ - OUTPUT_FORWARD_ED, - - /* Like -f, but output a count of changed lines in each "command" (-n). */ - OUTPUT_RCS, - - /* Output merged #ifdef'd file (-D). */ - OUTPUT_IFDEF, - - /* Output sdiff style (-y). */ - OUTPUT_SDIFF -}; - -/* True for output styles that are robust, - i.e. can handle a file that ends in a non-newline. */ -#define ROBUST_OUTPUT_STYLE(S) ((S) != OUTPUT_ED && (S) != OUTPUT_FORWARD_ED) - -XTERN enum output_style output_style; - -/* Nonzero if output cannot be generated for identical files. */ -XTERN bool no_diff_means_no_output; - -/* Number of lines of context to show in each set of diffs. - This is zero when context is not to be shown. */ -XTERN lin context; - -/* Consider all files as text files (-a). - Don't interpret codes over 0177 as implying a "binary file". */ -XTERN bool text; - -/* Number of lines to keep in identical prefix and suffix. */ -XTERN lin horizon_lines; - -/* The significance of white space during comparisons. */ -XTERN enum -{ - /* All white space is significant (the default). */ - IGNORE_NO_WHITE_SPACE, - - /* Ignore changes due to tab expansion (-E). */ - IGNORE_TAB_EXPANSION, - - /* Ignore changes in horizontal white space (-b). */ - IGNORE_SPACE_CHANGE, - - /* Ignore all horizontal white space (-w). */ - IGNORE_ALL_SPACE -} ignore_white_space; - -/* Ignore changes that affect only blank lines (-B). */ -XTERN bool ignore_blank_lines; - -/* Files can be compared byte-by-byte, as if they were binary. - This depends on various options. */ -XTERN bool files_can_be_treated_as_binary; - -/* Ignore differences in case of letters (-i). */ -XTERN bool ignore_case; - -/* Ignore differences in case of letters in file names. */ -XTERN bool ignore_file_name_case; - -/* File labels for `-c' output headers (--label). */ -XTERN char *file_label[2]; - -/* Regexp to identify function-header lines (-F). */ -XTERN struct re_pattern_buffer function_regexp; - -/* Ignore changes that affect only lines matching this regexp (-I). */ -XTERN struct re_pattern_buffer ignore_regexp; - -/* Say only whether files differ, not how (-q). */ -XTERN bool brief; - -/* Expand tabs in the output so the text lines up properly - despite the characters added to the front of each line (-t). */ -XTERN bool expand_tabs; - -/* Use a tab in the output, rather than a space, before the text of an - input line, so as to keep the proper alignment in the input line - without changing the characters in it (-T). */ -XTERN bool initial_tab; - -/* Remove trailing carriage returns from input. */ -XTERN bool strip_trailing_cr; - -/* In directory comparison, specify file to start with (-S). - This is used for resuming an aborted comparison. - All file names less than this name are ignored. */ -XTERN char const *starting_file; - -/* Pipe each file's output through pr (-l). */ -XTERN bool paginate; - -/* Line group formats for unchanged, old, new, and changed groups. */ -XTERN char const *group_format[CHANGED + 1]; - -/* Line formats for unchanged, old, and new lines. */ -XTERN char const *line_format[NEW + 1]; - -/* If using OUTPUT_SDIFF print extra information to help the sdiff filter. */ -XTERN bool sdiff_merge_assist; - -/* Tell OUTPUT_SDIFF to show only the left version of common lines. */ -XTERN bool left_column; - -/* Tell OUTPUT_SDIFF to not show common lines. */ -XTERN bool suppress_common_lines; - -/* The half line width and column 2 offset for OUTPUT_SDIFF. */ -XTERN unsigned int sdiff_half_width; -XTERN unsigned int sdiff_column2_offset; - -/* String containing all the command options diff received, - with spaces between and at the beginning but none at the end. - If there were no options given, this string is empty. */ -XTERN char *switch_string; - -/* Use heuristics for better speed with large files with a small - density of changes. */ -XTERN bool speed_large_files; - -/* Patterns that match file names to be excluded. */ -XTERN struct exclude *excluded; - -/* Don't discard lines. This makes things slower (sometimes much - slower) but will find a guaranteed minimal set of changes. */ -XTERN bool minimal; - -/* Name of program the user invoked (for error messages). */ -XTERN char *program_name; - -/* The strftime format to use for time strings. */ -XTERN char const *time_format; - -/* The result of comparison is an "edit script": a chain of `struct change'. - Each `struct change' represents one place where some lines are deleted - and some are inserted. - - LINE0 and LINE1 are the first affected lines in the two files (origin 0). - DELETED is the number of lines deleted here from file 0. - INSERTED is the number of lines inserted here in file 1. - - If DELETED is 0 then LINE0 is the number of the line before - which the insertion was done; vice versa for INSERTED and LINE1. */ - -struct change -{ - struct change *link; /* Previous or next edit command */ - lin inserted; /* # lines of file 1 changed here. */ - lin deleted; /* # lines of file 0 changed here. */ - lin line0; /* Line number of 1st deleted line. */ - lin line1; /* Line number of 1st inserted line. */ - bool ignore; /* Flag used in context.c. */ -}; - -/* Structures that describe the input files. */ - -/* Data on one input file being compared. */ - -struct file_data { - int desc; /* File descriptor */ - char const *name; /* File name */ - struct stat stat; /* File status */ - - /* Buffer in which text of file is read. */ - word *buffer; - - /* Allocated size of buffer, in bytes. Always a multiple of - sizeof *buffer. */ - size_t bufsize; - - /* Number of valid bytes now in the buffer. */ - size_t buffered; - - /* Array of pointers to lines in the file. */ - char const **linbuf; - - /* linbuf_base <= buffered_lines <= valid_lines <= alloc_lines. - linebuf[linbuf_base ... buffered_lines - 1] are possibly differing. - linebuf[linbuf_base ... valid_lines - 1] contain valid data. - linebuf[linbuf_base ... alloc_lines - 1] are allocated. */ - lin linbuf_base, buffered_lines, valid_lines, alloc_lines; - - /* Pointer to end of prefix of this file to ignore when hashing. */ - char const *prefix_end; - - /* Count of lines in the prefix. - There are this many lines in the file before linbuf[0]. */ - lin prefix_lines; - - /* Pointer to start of suffix of this file to ignore when hashing. */ - char const *suffix_begin; - - /* Vector, indexed by line number, containing an equivalence code for - each line. It is this vector that is actually compared with that - of another file to generate differences. */ - lin *equivs; - - /* Vector, like the previous one except that - the elements for discarded lines have been squeezed out. */ - lin *undiscarded; - - /* Vector mapping virtual line numbers (not counting discarded lines) - to real ones (counting those lines). Both are origin-0. */ - lin *realindexes; - - /* Total number of nondiscarded lines. */ - lin nondiscarded_lines; - - /* Vector, indexed by real origin-0 line number, - containing TRUE for a line that is an insertion or a deletion. - The results of comparison are stored here. */ - bool *changed; - - /* 1 if file ends in a line with no final newline. */ - bool missing_newline; - - /* 1 if at end of file. */ - bool eof; - - /* 1 more than the maximum equivalence value used for this or its - sibling file. */ - lin equiv_max; -}; - -/* The file buffer, considered as an array of bytes rather than - as an array of words. */ -#define FILE_BUFFER(f) ((char *) (f)->buffer) - -/* Data on two input files being compared. */ - -struct comparison - { - struct file_data file[2]; - struct comparison const *parent; /* parent, if a recursive comparison */ - }; - -/* Describe the two files currently being compared. */ - -XTERN struct file_data files[2]; - -/* Stdio stream to output diffs to. */ - -XTERN FILE *outfile; - -/* Declare various functions. */ - -/* analyze.c */ -int diff_2_files (struct comparison *); - -/* context.c */ -void print_context_header (struct file_data[], bool); -void print_context_script (struct change *, bool); - -/* dir.c */ -int diff_dirs (struct comparison const *, int (*) (struct comparison const *, char const *, char const *)); - -/* ed.c */ -void print_ed_script (struct change *); -void pr_forward_ed_script (struct change *); - -/* ifdef.c */ -void print_ifdef_script (struct change *); - -/* io.c */ -void file_block_read (struct file_data *, size_t); -bool read_files (struct file_data[], bool); - -/* normal.c */ -void print_normal_script (struct change *); - -/* rcs.c */ -void print_rcs_script (struct change *); - -/* side.c */ -void print_sdiff_script (struct change *); - -/* util.c */ -extern char const change_letter[4]; -extern char const pr_program[]; -char *concat (char const *, char const *, char const *); -char *dir_file_pathname (char const *, char const *); -bool lines_differ (char const *, char const *); -lin translate_line_number (struct file_data const *, lin); -struct change *find_change (struct change *); -struct change *find_reverse_change (struct change *); -void *zalloc (size_t); -enum changes analyze_hunk (struct change *, lin *, lin *, lin *, lin *); -void begin_output (void); -void debug_script (struct change *); -void fatal (char const *) __attribute__((noreturn)); -void finish_output (void); -void message (char const *, char const *, char const *); -void message5 (char const *, char const *, char const *, char const *, char const *); -void output_1_line (char const *, char const *, char const *, char const *); -void perror_with_name (char const *); -void pfatal_with_name (char const *) __attribute__((noreturn)); -void print_1_line (char const *, char const * const *); -void print_message_queue (void); -void print_number_range (char, struct file_data *, lin, lin); -void print_script (struct change *, struct change * (*) (struct change *), void (*) (struct change *)); -void setup_output (char const *, char const *, bool); -void translate_range (struct file_data const *, lin, lin, long *, long *); - -/* version.c */ -extern char const version_string[]; diff --git a/gnu/dist/diffutils/src/diff3.c b/gnu/dist/diffutils/src/diff3.c deleted file mode 100644 index eb42761b9c0..00000000000 --- a/gnu/dist/diffutils/src/diff3.c +++ /dev/null @@ -1,1747 +0,0 @@ -/* $NetBSD: diff3.c,v 1.2 2011/05/23 22:17:50 joerg Exp $ */ - -/* diff3 - compare three files line by line - - Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1998, 2001, - 2002 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#include "system.h" - -static char const copyright_string[] = - "Copyright (C) 2002 Free Software Foundation, Inc."; - -static char const authorship_msgid[] = N_("Written by Randy Smith."); - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -extern char const version_string[]; - -/* - * Internal data structures and macros for the diff3 program; includes - * data structures for both diff3 diffs and normal diffs. - */ - -/* Different files within a three way diff. */ -#define FILE0 0 -#define FILE1 1 -#define FILE2 2 - -/* - * A three way diff is built from two two-way diffs; the file which - * the two two-way diffs share is: - */ -#define FILEC FILE2 - -/* - * Different files within a two way diff. - * FC is the common file, FO the other file. - */ -#define FO 0 -#define FC 1 - -/* The ranges are indexed by */ -#define RANGE_START 0 -#define RANGE_END 1 - -enum diff_type { - ERROR, /* Should not be used */ - ADD, /* Two way diff add */ - CHANGE, /* Two way diff change */ - DELETE, /* Two way diff delete */ - DIFF_ALL, /* All three are different */ - DIFF_1ST, /* Only the first is different */ - DIFF_2ND, /* Only the second */ - DIFF_3RD /* Only the third */ -}; - -/* Two way diff */ -struct diff_block { - lin ranges[2][2]; /* Ranges are inclusive */ - char **lines[2]; /* The actual lines (may contain nulls) */ - size_t *lengths[2]; /* Line lengths (including newlines, if any) */ - struct diff_block *next; -}; - -/* Three way diff */ - -struct diff3_block { - enum diff_type correspond; /* Type of diff */ - lin ranges[3][2]; /* Ranges are inclusive */ - char **lines[3]; /* The actual lines (may contain nulls) */ - size_t *lengths[3]; /* Line lengths (including newlines, if any) */ - struct diff3_block *next; -}; - -/* - * Access the ranges on a diff block. - */ -#define D_LOWLINE(diff, filenum) \ - ((diff)->ranges[filenum][RANGE_START]) -#define D_HIGHLINE(diff, filenum) \ - ((diff)->ranges[filenum][RANGE_END]) -#define D_NUMLINES(diff, filenum) \ - (D_HIGHLINE (diff, filenum) - D_LOWLINE (diff, filenum) + 1) - -/* - * Access the line numbers in a file in a diff by relative line - * numbers (i.e. line number within the diff itself). Note that these - * are lvalues and can be used for assignment. - */ -#define D_RELNUM(diff, filenum, linenum) \ - ((diff)->lines[filenum][linenum]) -#define D_RELLEN(diff, filenum, linenum) \ - ((diff)->lengths[filenum][linenum]) - -/* - * And get at them directly, when that should be necessary. - */ -#define D_LINEARRAY(diff, filenum) \ - ((diff)->lines[filenum]) -#define D_LENARRAY(diff, filenum) \ - ((diff)->lengths[filenum]) - -/* - * Next block. - */ -#define D_NEXT(diff) ((diff)->next) - -/* - * Access the type of a diff3 block. - */ -#define D3_TYPE(diff) ((diff)->correspond) - -/* - * Line mappings based on diffs. The first maps off the top of the - * diff, the second off of the bottom. - */ -#define D_HIGH_MAPLINE(diff, fromfile, tofile, linenum) \ - ((linenum) \ - - D_HIGHLINE ((diff), (fromfile)) \ - + D_HIGHLINE ((diff), (tofile))) - -#define D_LOW_MAPLINE(diff, fromfile, tofile, linenum) \ - ((linenum) \ - - D_LOWLINE ((diff), (fromfile)) \ - + D_LOWLINE ((diff), (tofile))) - -/* Options variables for flags set on command line. */ - -/* If nonzero, treat all files as text files, never as binary. */ -static bool text; - -/* If nonzero, write out an ed script instead of the standard diff3 format. */ -static bool edscript; - -/* If nonzero, in the case of overlapping diffs (type DIFF_ALL), - preserve the lines which would normally be deleted from - file 1 with a special flagging mechanism. */ -static bool flagging; - -/* Use a tab to align output lines (-T). */ -static bool initial_tab; - -/* If nonzero, do not output information for overlapping diffs. */ -static bool simple_only; - -/* If nonzero, do not output information for non-overlapping diffs. */ -static bool overlap_only; - -/* If nonzero, show information for DIFF_2ND diffs. */ -static bool show_2nd; - -/* If nonzero, include `:wq' at the end of the script - to write out the file being edited. */ -static bool finalwrite; - -/* If nonzero, output a merged file. */ -static bool merge; - -char *program_name; - -static char *read_diff (char const *, char const *, char **); -static char *scan_diff_line (char *, char **, size_t *, char *, char); -static enum diff_type process_diff_control (char **, struct diff_block *); -static bool compare_line_list (char * const[], size_t const[], char * const[], size_t const[], lin); -static bool copy_stringlist (char * const[], size_t const[], char *[], size_t[], lin); -static bool output_diff3_edscript (FILE *, struct diff3_block *, int const[3], int const[3], char const *, char const *, char const *); -static bool output_diff3_merge (FILE *, FILE *, struct diff3_block *, int const[3], int const[3], char const *, char const *, char const *); -static struct diff3_block *create_diff3_block (lin, lin, lin, lin, lin, lin); -static struct diff3_block *make_3way_diff (struct diff_block *, struct diff_block *); -static struct diff3_block *reverse_diff3_blocklist (struct diff3_block *); -static struct diff3_block *using_to_diff3_block (struct diff_block *[2], struct diff_block *[2], int, int, struct diff3_block const *); -static struct diff_block *process_diff (char const *, char const *, struct diff_block **); -static void check_stdout (void); -static void fatal (char const *) __attribute__((noreturn)); -static void output_diff3 (FILE *, struct diff3_block *, int const[3], int const[3]); -static void perror_with_exit (char const *) __attribute__((noreturn)); -static void try_help (char const *, char const *) __attribute__((noreturn)); -static void usage (void); - -static char const *diff_program = DEFAULT_DIFF_PROGRAM; - -/* Values for long options that do not have single-letter equivalents. */ -enum -{ - DIFF_PROGRAM_OPTION = CHAR_MAX + 1, - HELP_OPTION -}; - -static struct option const longopts[] = -{ - {"text", 0, 0, 'a'}, - {"show-all", 0, 0, 'A'}, - {"ed", 0, 0, 'e'}, - {"diff-program", 1, 0, DIFF_PROGRAM_OPTION}, - {"show-overlap", 0, 0, 'E'}, - {"label", 1, 0, 'L'}, - {"merge", 0, 0, 'm'}, - {"initial-tab", 0, 0, 'T'}, - {"overlap-only", 0, 0, 'x'}, - {"easy-only", 0, 0, '3'}, - {"version", 0, 0, 'v'}, - {"help", 0, 0, HELP_OPTION}, - {0, 0, 0, 0} -}; - -/* - * Main program. Calls diff twice on two pairs of input files, - * combines the two diffs, and outputs them. - */ -int -main (int argc, char **argv) -{ - int c, i; - int common; - int mapping[3]; - int rev_mapping[3]; - int incompat = 0; - bool conflicts_found; - struct diff_block *thread0, *thread1, *last_block; - struct diff3_block *diff3; - int tag_count = 0; - char *tag_strings[3]; - char *commonname; - char **file; - struct stat statb; - - exit_failure = 2; - initialize_main (&argc, &argv); - program_name = argv[0]; - setlocale (LC_ALL, ""); - bindtextdomain (PACKAGE, LOCALEDIR); - textdomain (PACKAGE); - c_stack_action (c_stack_die); - - while ((c = getopt_long (argc, argv, "aeimvx3AEL:TX", longopts, 0)) != -1) - { - switch (c) - { - case 'a': - text = 1; - break; - case 'A': - show_2nd = 1; - flagging = 1; - incompat++; - break; - case 'x': - overlap_only = 1; - incompat++; - break; - case '3': - simple_only = 1; - incompat++; - break; - case 'i': - finalwrite = 1; - break; - case 'm': - merge = 1; - break; - case 'X': - overlap_only = 1; - /* Fall through. */ - case 'E': - flagging = 1; - /* Fall through. */ - case 'e': - incompat++; - break; - case 'T': - initial_tab = 1; - break; - case 'v': - printf ("diff3 %s\n%s\n\n%s\n\n%s\n", - version_string, copyright_string, - _(free_software_msgid), _(authorship_msgid)); - check_stdout (); - return EXIT_SUCCESS; - case DIFF_PROGRAM_OPTION: - diff_program = optarg; - break; - case HELP_OPTION: - usage (); - check_stdout (); - return EXIT_SUCCESS; - case 'L': - /* Handle up to three -L options. */ - if (tag_count < 3) - { - tag_strings[tag_count++] = optarg; - break; - } - try_help ("too many file label options", 0); - default: - try_help (0, 0); - } - } - - edscript = incompat & ~merge; /* -AeExX3 without -m implies ed script. */ - show_2nd |= ~incompat & merge; /* -m without -AeExX3 implies -A. */ - flagging |= ~incompat & merge; - - if (incompat > 1 /* Ensure at most one of -AeExX3. */ - || finalwrite & merge /* -i -m would rewrite input file. */ - || (tag_count && ! flagging)) /* -L requires one of -AEX. */ - try_help ("incompatible options", 0); - - if (argc - optind != 3) - { - if (argc - optind < 3) - try_help ("missing operand after `%s'", argv[argc - 1]); - else - try_help ("extra operand `%s'", argv[optind + 3]); - } - - file = &argv[optind]; - - for (i = tag_count; i < 3; i++) - tag_strings[i] = file[i]; - - /* Always compare file1 to file2, even if file2 is "-". - This is needed for -mAeExX3. Using the file0 as - the common file would produce wrong results, because if the - file0-file1 diffs didn't line up with the file0-file2 diffs - (which is entirely possible since we don't use diff's -n option), - diff3 might report phantom changes from file1 to file2. - - Also, try to compare file0 to file1, because this is where - changes are expected to come from. Diffing between these pairs - of files is more likely to avoid phantom changes from file0 to file1. - - Historically, the default common file was file2, so some older - applications (e.g. Emacs ediff) used file2 as the ancestor. So, - for compatibility, if this is a 3-way diff (not a merge or - edscript), prefer file2 as the common file. */ - - common = 2 - (edscript | merge); - - if (strcmp (file[common], "-") == 0) - { - /* Sigh. We've got standard input as the common file. We can't - call diff twice on stdin. Use the other arg as the common - file instead. */ - common = 3 - common; - if (strcmp (file[0], "-") == 0 || strcmp (file[common], "-") == 0) - fatal ("`-' specified for more than one input file"); - } - - mapping[0] = 0; - mapping[1] = 3 - common; - mapping[2] = common; - - for (i = 0; i < 3; i++) - rev_mapping[mapping[i]] = i; - - for (i = 0; i < 3; i++) - if (strcmp (file[i], "-") != 0) - { - if (stat (file[i], &statb) < 0) - perror_with_exit (file[i]); - else if (S_ISDIR (statb.st_mode)) - error (EXIT_TROUBLE, EISDIR, "%s", file[i]); - } - -#ifdef SIGCHLD - /* System V fork+wait does not work if SIGCHLD is ignored. */ - signal (SIGCHLD, SIG_DFL); -#endif - - commonname = file[rev_mapping[FILEC]]; - thread1 = process_diff (file[rev_mapping[FILE1]], commonname, &last_block); - thread0 = process_diff (file[rev_mapping[FILE0]], commonname, &last_block); - diff3 = make_3way_diff (thread0, thread1); - if (edscript) - conflicts_found - = output_diff3_edscript (stdout, diff3, mapping, rev_mapping, - tag_strings[0], tag_strings[1], tag_strings[2]); - else if (merge) - { - if (! freopen (file[rev_mapping[FILE0]], "r", stdin)) - perror_with_exit (file[rev_mapping[FILE0]]); - conflicts_found - = output_diff3_merge (stdin, stdout, diff3, mapping, rev_mapping, - tag_strings[0], tag_strings[1], tag_strings[2]); - if (ferror (stdin)) - fatal ("read failed"); - } - else - { - output_diff3 (stdout, diff3, mapping, rev_mapping); - conflicts_found = 0; - } - - check_stdout (); - exit (conflicts_found); - return conflicts_found; -} - -static void -try_help (char const *reason_msgid, char const *operand) -{ - if (reason_msgid) - error (0, 0, _(reason_msgid), operand); - error (EXIT_TROUBLE, 0, - _("Try `%s --help' for more information."), program_name); - abort (); -} - -static void -check_stdout (void) -{ - if (ferror (stdout)) - fatal ("write failed"); - else if (fclose (stdout) != 0) - perror_with_exit (_("standard output")); -} - -static char const * const option_help_msgid[] = { - N_("-e --ed Output unmerged changes from OLDFILE to YOURFILE into MYFILE."), - N_("-E --show-overlap Output unmerged changes, bracketing conflicts."), - N_("-A --show-all Output all changes, bracketing conflicts."), - N_("-x --overlap-only Output overlapping changes."), - N_("-X Output overlapping changes, bracketing them."), - N_("-3 --easy-only Output unmerged nonoverlapping changes."), - "", - N_("-m --merge Output merged file instead of ed script (default -A)."), - N_("-L LABEL --label=LABEL Use LABEL instead of file name."), - N_("-i Append `w' and `q' commands to ed scripts."), - N_("-a --text Treat all files as text."), - N_("-T --initial-tab Make tabs line up by prepending a tab."), - N_("--diff-program=PROGRAM Use PROGRAM to compare files."), - "", - N_("-v --version Output version info."), - N_("--help Output this help."), - 0 -}; - -static void -usage (void) -{ - char const * const *p; - - printf (_("Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"), - program_name); - printf ("%s\n\n", _("Compare three files line by line.")); - for (p = option_help_msgid; *p; p++) - if (**p) - printf (" %s\n", _(*p)); - else - putchar ('\n'); - printf ("\n%s\n\n%s\n", - _("If a FILE is `-', read standard input."), - _("Report bugs to .")); -} - -/* - * Routines that combine the two diffs together into one. The - * algorithm used follows: - * - * File2 is shared in common between the two diffs. - * Diff02 is the diff between 0 and 2. - * Diff12 is the diff between 1 and 2. - * - * 1) Find the range for the first block in File2. - * a) Take the lowest of the two ranges (in File2) in the two - * current blocks (one from each diff) as being the low - * water mark. Assign the upper end of this block as - * being the high water mark and move the current block up - * one. Mark the block just moved over as to be used. - * b) Check the next block in the diff that the high water - * mark is *not* from. - * - * *If* the high water mark is above - * the low end of the range in that block, - * - * mark that block as to be used and move the current - * block up. Set the high water mark to the max of - * the high end of this block and the current. Repeat b. - * - * 2) Find the corresponding ranges in File0 (from the blocks - * in diff02; line per line outside of diffs) and in File1. - * Create a diff3_block, reserving space as indicated by the ranges. - * - * 3) Copy all of the pointers for file2 in. At least for now, - * do memcmp's between corresponding strings in the two diffs. - * - * 4) Copy all of the pointers for file0 and 1 in. Get what you - * need from file2 (when there isn't a diff block, it's - * identical to file2 within the range between diff blocks). - * - * 5) If the diff blocks you used came from only one of the two - * strings of diffs, then that file (i.e. the one other than - * the common file in that diff) is the odd person out. If you used - * diff blocks from both sets, check to see if files 0 and 1 match: - * - * Same number of lines? If so, do a set of memcmp's (if a - * memcmp matches; copy the pointer over; it'll be easier later - * if you have to do any compares). If they match, 0 & 1 are - * the same. If not, all three different. - * - * Then you do it again, until you run out of blocks. - * - */ - -/* - * This routine makes a three way diff (chain of diff3_block's) from two - * two way diffs (chains of diff_block's). It is assumed that each of - * the two diffs passed are onto the same file (i.e. that each of the - * diffs were made "to" the same file). The three way diff pointer - * returned will have numbering FILE0--the other file in diff02, - * FILE1--the other file in diff12, and FILEC--the common file. - */ -static struct diff3_block * -make_3way_diff (struct diff_block *thread0, struct diff_block *thread1) -{ -/* - * This routine works on the two diffs passed to it as threads. - * Thread number 0 is diff02, thread number 1 is diff12. The USING - * array is set to the base of the list of blocks to be used to - * construct each block of the three way diff; if no blocks from a - * particular thread are to be used, that element of the using array - * is set to 0. The elements LAST_USING array are set to the last - * elements on each of the using lists. - * - * The HIGH_WATER_MARK is set to the highest line number in the common file - * described in any of the diffs in either of the USING lists. The - * HIGH_WATER_THREAD names the thread. Similarly the BASE_WATER_MARK - * and BASE_WATER_THREAD describe the lowest line number in the common file - * described in any of the diffs in either of the USING lists. The - * HIGH_WATER_DIFF is the diff from which the HIGH_WATER_MARK was - * taken. - * - * The HIGH_WATER_DIFF should always be equal to LAST_USING - * [HIGH_WATER_THREAD]. The OTHER_DIFF is the next diff to check for - * higher water, and should always be equal to - * CURRENT[HIGH_WATER_THREAD ^ 0x1]. The OTHER_THREAD is the thread - * in which the OTHER_DIFF is, and hence should always be equal to - * HIGH_WATER_THREAD ^ 0x1. - * - * The variable LAST_DIFF is kept set to the last diff block produced - * by this routine, for line correspondence purposes between that diff - * and the one currently being worked on. It is initialized to - * ZERO_DIFF before any blocks have been created. - */ - - struct diff_block *using[2]; - struct diff_block *last_using[2]; - struct diff_block *current[2]; - - lin high_water_mark; - - int high_water_thread; - int base_water_thread; - int other_thread; - - struct diff_block *high_water_diff; - struct diff_block *other_diff; - - struct diff3_block *result; - struct diff3_block *tmpblock; - struct diff3_block **result_end; - - struct diff3_block const *last_diff3; - - static struct diff3_block const zero_diff3; - - /* Initialization */ - result = 0; - result_end = &result; - current[0] = thread0; current[1] = thread1; - last_diff3 = &zero_diff3; - - /* Sniff up the threads until we reach the end */ - - while (current[0] || current[1]) - { - using[0] = using[1] = last_using[0] = last_using[1] = 0; - - /* Setup low and high water threads, diffs, and marks. */ - if (!current[0]) - base_water_thread = 1; - else if (!current[1]) - base_water_thread = 0; - else - base_water_thread = - (D_LOWLINE (current[0], FC) > D_LOWLINE (current[1], FC)); - - high_water_thread = base_water_thread; - - high_water_diff = current[high_water_thread]; - - high_water_mark = D_HIGHLINE (high_water_diff, FC); - - /* Make the diff you just got info from into the using class */ - using[high_water_thread] - = last_using[high_water_thread] - = high_water_diff; - current[high_water_thread] = high_water_diff->next; - last_using[high_water_thread]->next = 0; - - /* And mark the other diff */ - other_thread = high_water_thread ^ 0x1; - other_diff = current[other_thread]; - - /* Shuffle up the ladder, checking the other diff to see if it - needs to be incorporated. */ - while (other_diff - && D_LOWLINE (other_diff, FC) <= high_water_mark + 1) - { - - /* Incorporate this diff into the using list. Note that - this doesn't take it off the current list */ - if (using[other_thread]) - last_using[other_thread]->next = other_diff; - else - using[other_thread] = other_diff; - last_using[other_thread] = other_diff; - - /* Take it off the current list. Note that this following - code assumes that other_diff enters it equal to - current[high_water_thread ^ 0x1] */ - current[other_thread] = current[other_thread]->next; - other_diff->next = 0; - - /* Set the high_water stuff - If this comparison is equal, then this is the last pass - through this loop; since diff blocks within a given - thread cannot overlap, the high_water_mark will be - *below* the range_start of either of the next diffs. */ - - if (high_water_mark < D_HIGHLINE (other_diff, FC)) - { - high_water_thread ^= 1; - high_water_diff = other_diff; - high_water_mark = D_HIGHLINE (other_diff, FC); - } - - /* Set the other diff */ - other_thread = high_water_thread ^ 0x1; - other_diff = current[other_thread]; - } - - /* The using lists contain a list of all of the blocks to be - included in this diff3_block. Create it. */ - - tmpblock = using_to_diff3_block (using, last_using, - base_water_thread, high_water_thread, - last_diff3); - - if (!tmpblock) - fatal ("internal error: screwup in format of diff blocks"); - - /* Put it on the list. */ - *result_end = tmpblock; - result_end = &tmpblock->next; - - /* Set up corresponding lines correctly. */ - last_diff3 = tmpblock; - } - return result; -} - -/* - * using_to_diff3_block: - * This routine takes two lists of blocks (from two separate diff - * threads) and puts them together into one diff3 block. - * It then returns a pointer to this diff3 block or 0 for failure. - * - * All arguments besides using are for the convenience of the routine; - * they could be derived from the using array. - * LAST_USING is a pair of pointers to the last blocks in the using - * structure. - * LOW_THREAD and HIGH_THREAD tell which threads contain the lowest - * and highest line numbers for File0. - * last_diff3 contains the last diff produced in the calling routine. - * This is used for lines mappings which would still be identical to - * the state that diff ended in. - * - * A distinction should be made in this routine between the two diffs - * that are part of a normal two diff block, and the three diffs that - * are part of a diff3_block. - */ -static struct diff3_block * -using_to_diff3_block (struct diff_block *using[2], - struct diff_block *last_using[2], - int low_thread, int high_thread, - struct diff3_block const *last_diff3) -{ - lin low[2], high[2]; - struct diff3_block *result; - struct diff_block *ptr; - int d; - lin i; - - /* Find the range in the common file. */ - lin lowc = D_LOWLINE (using[low_thread], FC); - lin highc = D_HIGHLINE (last_using[high_thread], FC); - - /* Find the ranges in the other files. - If using[d] is null, that means that the file to which that diff - refers is equivalent to the common file over this range. */ - - for (d = 0; d < 2; d++) - if (using[d]) - { - low[d] = D_LOW_MAPLINE (using[d], FC, FO, lowc); - high[d] = D_HIGH_MAPLINE (last_using[d], FC, FO, highc); - } - else - { - low[d] = D_HIGH_MAPLINE (last_diff3, FILEC, FILE0 + d, lowc); - high[d] = D_HIGH_MAPLINE (last_diff3, FILEC, FILE0 + d, highc); - } - - /* Create a block with the appropriate sizes */ - result = create_diff3_block (low[0], high[0], low[1], high[1], lowc, highc); - - /* Copy information for the common file. - Return with a zero if any of the compares failed. */ - - for (d = 0; d < 2; d++) - for (ptr = using[d]; ptr; ptr = D_NEXT (ptr)) - { - lin result_offset = D_LOWLINE (ptr, FC) - lowc; - - if (!copy_stringlist (D_LINEARRAY (ptr, FC), - D_LENARRAY (ptr, FC), - D_LINEARRAY (result, FILEC) + result_offset, - D_LENARRAY (result, FILEC) + result_offset, - D_NUMLINES (ptr, FC))) - return 0; - } - - /* Copy information for file d. First deal with anything that might be - before the first diff. */ - - for (d = 0; d < 2; d++) - { - struct diff_block *u = using[d]; - lin lo = low[d], hi = high[d]; - - for (i = 0; - i + lo < (u ? D_LOWLINE (u, FO) : hi + 1); - i++) - { - D_RELNUM (result, FILE0 + d, i) = D_RELNUM (result, FILEC, i); - D_RELLEN (result, FILE0 + d, i) = D_RELLEN (result, FILEC, i); - } - - for (ptr = u; ptr; ptr = D_NEXT (ptr)) - { - lin result_offset = D_LOWLINE (ptr, FO) - lo; - lin linec; - - if (!copy_stringlist (D_LINEARRAY (ptr, FO), - D_LENARRAY (ptr, FO), - D_LINEARRAY (result, FILE0 + d) + result_offset, - D_LENARRAY (result, FILE0 + d) + result_offset, - D_NUMLINES (ptr, FO))) - return 0; - - /* Catch the lines between here and the next diff */ - linec = D_HIGHLINE (ptr, FC) + 1 - lowc; - for (i = D_HIGHLINE (ptr, FO) + 1 - lo; - i < (D_NEXT (ptr) ? D_LOWLINE (D_NEXT (ptr), FO) : hi + 1) - lo; - i++) - { - D_RELNUM (result, FILE0 + d, i) = D_RELNUM (result, FILEC, linec); - D_RELLEN (result, FILE0 + d, i) = D_RELLEN (result, FILEC, linec); - linec++; - } - } - } - - /* Set correspond */ - if (!using[0]) - D3_TYPE (result) = DIFF_2ND; - else if (!using[1]) - D3_TYPE (result) = DIFF_1ST; - else - { - lin nl0 = D_NUMLINES (result, FILE0); - lin nl1 = D_NUMLINES (result, FILE1); - - if (nl0 != nl1 - || !compare_line_list (D_LINEARRAY (result, FILE0), - D_LENARRAY (result, FILE0), - D_LINEARRAY (result, FILE1), - D_LENARRAY (result, FILE1), - nl0)) - D3_TYPE (result) = DIFF_ALL; - else - D3_TYPE (result) = DIFF_3RD; - } - - return result; -} - -/* - * This routine copies pointers from a list of strings to a different list - * of strings. If a spot in the second list is already filled, it - * makes sure that it is filled with the same string; if not it - * returns 0, the copy incomplete. - * Upon successful completion of the copy, it returns 1. - */ -static bool -copy_stringlist (char * const fromptrs[], size_t const fromlengths[], - char *toptrs[], size_t tolengths[], - lin copynum) -{ - register char * const *f = fromptrs; - register char **t = toptrs; - register size_t const *fl = fromlengths; - register size_t *tl = tolengths; - - while (copynum--) - { - if (*t) - { if (*fl != *tl || memcmp (*f, *t, *fl)) return 0; } - else - { *t = *f ; *tl = *fl; } - - t++; f++; tl++; fl++; - } - return 1; -} - -/* - * Create a diff3_block, with ranges as specified in the arguments. - * Allocate the arrays for the various pointers (and zero them) based - * on the arguments passed. Return the block as a result. - */ -static struct diff3_block * -create_diff3_block (lin low0, lin high0, - lin low1, lin high1, - lin low2, lin high2) -{ - struct diff3_block *result = xmalloc (sizeof *result); - lin numlines; - - D3_TYPE (result) = ERROR; - D_NEXT (result) = 0; - - /* Assign ranges */ - D_LOWLINE (result, FILE0) = low0; - D_HIGHLINE (result, FILE0) = high0; - D_LOWLINE (result, FILE1) = low1; - D_HIGHLINE (result, FILE1) = high1; - D_LOWLINE (result, FILE2) = low2; - D_HIGHLINE (result, FILE2) = high2; - - /* Allocate and zero space */ - numlines = D_NUMLINES (result, FILE0); - if (numlines) - { - D_LINEARRAY (result, FILE0) = xcalloc (numlines, sizeof (char *)); - D_LENARRAY (result, FILE0) = xcalloc (numlines, sizeof (size_t)); - } - else - { - D_LINEARRAY (result, FILE0) = 0; - D_LENARRAY (result, FILE0) = 0; - } - - numlines = D_NUMLINES (result, FILE1); - if (numlines) - { - D_LINEARRAY (result, FILE1) = xcalloc (numlines, sizeof (char *)); - D_LENARRAY (result, FILE1) = xcalloc (numlines, sizeof (size_t)); - } - else - { - D_LINEARRAY (result, FILE1) = 0; - D_LENARRAY (result, FILE1) = 0; - } - - numlines = D_NUMLINES (result, FILE2); - if (numlines) - { - D_LINEARRAY (result, FILE2) = xcalloc (numlines, sizeof (char *)); - D_LENARRAY (result, FILE2) = xcalloc (numlines, sizeof (size_t)); - } - else - { - D_LINEARRAY (result, FILE2) = 0; - D_LENARRAY (result, FILE2) = 0; - } - - /* Return */ - return result; -} - -/* - * Compare two lists of lines of text. - * Return 1 if they are equivalent, 0 if not. - */ -static bool -compare_line_list (char * const list1[], size_t const lengths1[], - char * const list2[], size_t const lengths2[], - lin nl) -{ - char - * const *l1 = list1, - * const *l2 = list2; - size_t const - *lgths1 = lengths1, - *lgths2 = lengths2; - - while (nl--) - if (!*l1 || !*l2 || *lgths1 != *lgths2++ - || memcmp (*l1++, *l2++, *lgths1++)) - return 0; - return 1; -} - -/* - * Routines to input and parse two way diffs. - */ - -static struct diff_block * -process_diff (char const *filea, - char const *fileb, - struct diff_block **last_block) -{ - char *diff_contents; - char *diff_limit; - char *scan_diff; - enum diff_type dt; - lin i; - struct diff_block *block_list, **block_list_end, *bptr; - size_t too_many_lines = (PTRDIFF_MAX - / MIN (sizeof *bptr->lines[1], - sizeof *bptr->lengths[1])); - - diff_limit = read_diff (filea, fileb, &diff_contents); - scan_diff = diff_contents; - block_list_end = &block_list; - bptr = 0; /* Pacify `gcc -W'. */ - - while (scan_diff < diff_limit) - { - bptr = xmalloc (sizeof *bptr); - bptr->lines[0] = bptr->lines[1] = 0; - bptr->lengths[0] = bptr->lengths[1] = 0; - - dt = process_diff_control (&scan_diff, bptr); - if (dt == ERROR || *scan_diff != '\n') - { - fprintf (stderr, _("%s: diff failed: "), program_name); - do - { - putc (*scan_diff, stderr); - } - while (*scan_diff++ != '\n'); - exit (EXIT_TROUBLE); - } - scan_diff++; - - /* Force appropriate ranges to be null, if necessary */ - switch (dt) - { - case ADD: - bptr->ranges[0][0]++; - break; - case DELETE: - bptr->ranges[1][0]++; - break; - case CHANGE: - break; - default: - fatal ("internal error: invalid diff type in process_diff"); - break; - } - - /* Allocate space for the pointers for the lines from filea, and - parcel them out among these pointers */ - if (dt != ADD) - { - lin numlines = D_NUMLINES (bptr, 0); - if (too_many_lines <= numlines) - xalloc_die (); - bptr->lines[0] = xmalloc (numlines * sizeof *bptr->lines[0]); - bptr->lengths[0] = xmalloc (numlines * sizeof *bptr->lengths[0]); - for (i = 0; i < numlines; i++) - scan_diff = scan_diff_line (scan_diff, - &(bptr->lines[0][i]), - &(bptr->lengths[0][i]), - diff_limit, - '<'); - } - - /* Get past the separator for changes */ - if (dt == CHANGE) - { - if (strncmp (scan_diff, "---\n", 4)) - fatal ("invalid diff format; invalid change separator"); - scan_diff += 4; - } - - /* Allocate space for the pointers for the lines from fileb, and - parcel them out among these pointers */ - if (dt != DELETE) - { - lin numlines = D_NUMLINES (bptr, 1); - if (too_many_lines <= numlines) - xalloc_die (); - bptr->lines[1] = xmalloc (numlines * sizeof *bptr->lines[1]); - bptr->lengths[1] = xmalloc (numlines * sizeof *bptr->lengths[1]); - for (i = 0; i < numlines; i++) - scan_diff = scan_diff_line (scan_diff, - &(bptr->lines[1][i]), - &(bptr->lengths[1][i]), - diff_limit, - '>'); - } - - /* Place this block on the blocklist. */ - *block_list_end = bptr; - block_list_end = &bptr->next; - } - - *block_list_end = 0; - *last_block = bptr; - return block_list; -} - -/* - * This routine will parse a normal format diff control string. It - * returns the type of the diff (ERROR if the format is bad). All of - * the other important information is filled into to the structure - * pointed to by db, and the string pointer (whose location is passed - * to this routine) is updated to point beyond the end of the string - * parsed. Note that only the ranges in the diff_block will be set by - * this routine. - * - * If some specific pair of numbers has been reduced to a single - * number, then both corresponding numbers in the diff block are set - * to that number. In general these numbers are interpreted as ranges - * inclusive, unless being used by the ADD or DELETE commands. It is - * assumed that these will be special cased in a superior routine. - */ - -static enum diff_type -process_diff_control (char **string, struct diff_block *db) -{ - char *s = *string; - lin holdnum; - enum diff_type type; - -/* These macros are defined here because they can use variables - defined in this function. Don't try this at home kids, we're - trained professionals! - - Also note that SKIPWHITE only recognizes tabs and spaces, and - that READNUM can only read positive, integral numbers */ - -#define SKIPWHITE(s) { while (*s == ' ' || *s == '\t') s++; } -#define READNUM(s, num) \ - { unsigned char c = *s; if (!ISDIGIT (c)) return ERROR; holdnum = 0; \ - do { holdnum = (c - '0' + holdnum * 10); } \ - while (ISDIGIT (c = *++s)); (num) = holdnum; } - - /* Read first set of digits */ - SKIPWHITE (s); - READNUM (s, db->ranges[0][RANGE_START]); - - /* Was that the only digit? */ - SKIPWHITE (s); - if (*s == ',') - { - /* Get the next digit */ - s++; - READNUM (s, db->ranges[0][RANGE_END]); - } - else - db->ranges[0][RANGE_END] = db->ranges[0][RANGE_START]; - - /* Get the letter */ - SKIPWHITE (s); - switch (*s) - { - case 'a': - type = ADD; - break; - case 'c': - type = CHANGE; - break; - case 'd': - type = DELETE; - break; - default: - return ERROR; /* Bad format */ - } - s++; /* Past letter */ - - /* Read second set of digits */ - SKIPWHITE (s); - READNUM (s, db->ranges[1][RANGE_START]); - - /* Was that the only digit? */ - SKIPWHITE (s); - if (*s == ',') - { - /* Get the next digit */ - s++; - READNUM (s, db->ranges[1][RANGE_END]); - SKIPWHITE (s); /* To move to end */ - } - else - db->ranges[1][RANGE_END] = db->ranges[1][RANGE_START]; - - *string = s; - return type; -} - -static char * -read_diff (char const *filea, - char const *fileb, - char **output_placement) -{ - char *diff_result; - size_t current_chunk_size, total; - int fd, wstatus; - int werrno = 0; - struct stat pipestat; - -#if HAVE_WORKING_FORK || HAVE_WORKING_VFORK - - char const *argv[8]; - char const **ap; - int fds[2]; - pid_t pid; - - ap = argv; - *ap++ = diff_program; - if (text) - *ap++ = "-a"; - *ap++ = "--horizon-lines=100"; - *ap++ = "--"; - *ap++ = filea; - *ap++ = fileb; - *ap = 0; - - if (pipe (fds) != 0) - perror_with_exit ("pipe"); - - pid = vfork (); - if (pid == 0) - { - /* Child */ - close (fds[0]); - if (fds[1] != STDOUT_FILENO) - { - dup2 (fds[1], STDOUT_FILENO); - close (fds[1]); - } - - /* The cast to (char **) is needed for portability to older - hosts with a nonstandard prototype for execvp. */ - execvp (diff_program, (char **) argv); - - _exit (errno == ENOEXEC ? 126 : 127); - } - - if (pid == -1) - perror_with_exit ("fork"); - - close (fds[1]); /* Prevent erroneous lack of EOF */ - fd = fds[0]; - -#else - - FILE *fpipe; - char const args[] = " -a --horizon-lines=100 -- "; - char *command = xmalloc (quote_system_arg (0, diff_program) - + sizeof args - 1 - + quote_system_arg (0, filea) + 1 - + quote_system_arg (0, fileb) + 1); - char *p = command; - p += quote_system_arg (p, diff_program); - strcpy (p, args + (text ? 0 : 3)); - p += strlen (p); - p += quote_system_arg (p, filea); - *p++ = ' '; - p += quote_system_arg (p, fileb); - *p = 0; - errno = 0; - fpipe = popen (command, "r"); - if (!fpipe) - perror_with_exit (command); - free (command); - fd = fileno (fpipe); - -#endif - - if (fstat (fd, &pipestat) != 0) - perror_with_exit ("fstat"); - current_chunk_size = MAX (1, STAT_BLOCKSIZE (pipestat)); - diff_result = xmalloc (current_chunk_size); - total = 0; - - for (;;) - { - size_t bytes_to_read = current_chunk_size - total; - size_t bytes = block_read (fd, diff_result + total, bytes_to_read); - total += bytes; - if (bytes != bytes_to_read) - { - if (bytes == SIZE_MAX) - perror_with_exit (_("read failed")); - break; - } - if (PTRDIFF_MAX / 2 <= current_chunk_size) - xalloc_die (); - current_chunk_size *= 2; - diff_result = xrealloc (diff_result, current_chunk_size); - } - - if (total != 0 && diff_result[total-1] != '\n') - fatal ("invalid diff format; incomplete last line"); - - *output_placement = diff_result; - -#if ! (HAVE_WORKING_FORK || HAVE_WORKING_VFORK) - - wstatus = pclose (fpipe); - if (wstatus == -1) - werrno = errno; - -#else - - if (close (fd) != 0) - perror_with_exit ("close"); - if (waitpid (pid, &wstatus, 0) < 0) - perror_with_exit ("waitpid"); - -#endif - - if (! werrno && WIFEXITED (wstatus)) - switch (WEXITSTATUS (wstatus)) - { - case 126: - error (EXIT_TROUBLE, 0, _("subsidiary program `%s' not executable"), - diff_program); - case 127: - error (EXIT_TROUBLE, 0, _("subsidiary program `%s' not found"), - diff_program); - } - if (werrno || ! (WIFEXITED (wstatus) && WEXITSTATUS (wstatus) < 2)) - error (EXIT_TROUBLE, werrno, _("subsidiary program `%s' failed"), - diff_program); - - return diff_result + total; -} - - -/* - * Scan a regular diff line (consisting of > or <, followed by a - * space, followed by text (including nulls) up to a newline. - * - * This next routine began life as a macro and many parameters in it - * are used as call-by-reference values. - */ -static char * -scan_diff_line (char *scan_ptr, char **set_start, size_t *set_length, - char *limit, char leadingchar) -{ - char *line_ptr; - - if (!(scan_ptr[0] == leadingchar - && scan_ptr[1] == ' ')) - fatal ("invalid diff format; incorrect leading line chars"); - - *set_start = line_ptr = scan_ptr + 2; - while (*line_ptr++ != '\n') - continue; - - /* Include newline if the original line ended in a newline, - or if an edit script is being generated. - Copy any missing newline message to stderr if an edit script is being - generated, because edit scripts cannot handle missing newlines. - Return the beginning of the next line. */ - *set_length = line_ptr - *set_start; - if (line_ptr < limit && *line_ptr == '\\') - { - if (edscript) - fprintf (stderr, "%s:", program_name); - else - --*set_length; - line_ptr++; - do - { - if (edscript) - putc (*line_ptr, stderr); - } - while (*line_ptr++ != '\n'); - } - - return line_ptr; -} - -/* - * This routine outputs a three way diff passed as a list of - * diff3_block's. - * The argument MAPPING is indexed by external file number (in the - * argument list) and contains the internal file number (from the - * diff passed). This is important because the user expects his - * outputs in terms of the argument list number, and the diff passed - * may have been done slightly differently (if the last argument - * was "-", for example). - * REV_MAPPING is the inverse of MAPPING. - */ -static void -output_diff3 (FILE *outputfile, struct diff3_block *diff, - int const mapping[3], int const rev_mapping[3]) -{ - int i; - int oddoneout; - char *cp; - struct diff3_block *ptr; - lin line; - size_t length; - int dontprint; - static int skew_increment[3] = { 2, 3, 1 }; /* 0==>2==>1==>3 */ - char const *line_prefix = initial_tab ? "\t" : " "; - - for (ptr = diff; ptr; ptr = D_NEXT (ptr)) - { - char x[2]; - - switch (ptr->correspond) - { - case DIFF_ALL: - x[0] = 0; - dontprint = 3; /* Print them all */ - oddoneout = 3; /* Nobody's odder than anyone else */ - break; - case DIFF_1ST: - case DIFF_2ND: - case DIFF_3RD: - oddoneout = rev_mapping[ptr->correspond - DIFF_1ST]; - - x[0] = oddoneout + '1'; - x[1] = 0; - dontprint = oddoneout == 0; - break; - default: - fatal ("internal error: invalid diff type passed to output"); - } - fprintf (outputfile, "====%s\n", x); - - /* Go 0, 2, 1 if the first and third outputs are equivalent. */ - for (i = 0; i < 3; - i = (oddoneout == 1 ? skew_increment[i] : i + 1)) - { - int realfile = mapping[i]; - lin lowt = D_LOWLINE (ptr, realfile); - lin hight = D_HIGHLINE (ptr, realfile); - long llowt = lowt; - long lhight = hight; - - fprintf (outputfile, "%d:", i + 1); - switch (lowt - hight) - { - case 1: - fprintf (outputfile, "%lda\n", llowt - 1); - break; - case 0: - fprintf (outputfile, "%ldc\n", llowt); - break; - default: - fprintf (outputfile, "%ld,%ldc\n", llowt, lhight); - break; - } - - if (i == dontprint) continue; - - if (lowt <= hight) - { - line = 0; - do - { - fprintf (outputfile, "%s", line_prefix); - cp = D_RELNUM (ptr, realfile, line); - length = D_RELLEN (ptr, realfile, line); - fwrite (cp, sizeof (char), length, outputfile); - } - while (++line < hight - lowt + 1); - if (cp[length - 1] != '\n') - fprintf (outputfile, "\n\\ %s\n", - _("No newline at end of file")); - } - } - } -} - - -/* - * Output to OUTPUTFILE the lines of B taken from FILENUM. - * Double any initial '.'s; yield nonzero if any initial '.'s were doubled. - */ -static bool -dotlines (FILE *outputfile, struct diff3_block *b, int filenum) -{ - lin i; - bool leading_dot = 0; - - for (i = 0; - i < D_NUMLINES (b, filenum); - i++) - { - char *line = D_RELNUM (b, filenum, i); - if (line[0] == '.') - { - leading_dot = 1; - fprintf (outputfile, "."); - } - fwrite (line, sizeof (char), - D_RELLEN (b, filenum, i), outputfile); - } - - return leading_dot; -} - -/* - * Output to OUTPUTFILE a '.' line. If LEADING_DOT is nonzero, - * also output a command that removes initial '.'s - * starting with line START and continuing for NUM lines. - * (START is long, not lin, for convenience with printf %ld formats.) - */ -static void -undotlines (FILE *outputfile, bool leading_dot, long start, lin num) -{ - fprintf (outputfile, ".\n"); - if (leading_dot) - { - if (num == 1) - fprintf (outputfile, "%lds/^\\.//\n", start); - else - fprintf (outputfile, "%ld,%lds/^\\.//\n", start, start + num - 1); - } -} - -/* - * This routine outputs a diff3 set of blocks as an ed script. This - * script applies the changes between file's 2 & 3 to file 1. It - * takes the precise format of the ed script to be output from global - * variables set during options processing. Note that it does - * destructive things to the set of diff3 blocks it is passed; it - * reverses their order (this gets around the problems involved with - * changing line numbers in an ed script). - * - * Note that this routine has the same problem of mapping as the last - * one did; the variable MAPPING maps from file number according to - * the argument list to file number according to the diff passed. All - * files listed below are in terms of the argument list. - * REV_MAPPING is the inverse of MAPPING. - * - * The arguments FILE0, FILE1 and FILE2 are the strings to print - * as the names of the three files. These may be the actual names, - * or may be the arguments specified with -L. - * - * Returns 1 if conflicts were found. - */ - -static bool -output_diff3_edscript (FILE *outputfile, struct diff3_block *diff, - int const mapping[3], int const rev_mapping[3], - char const *file0, char const *file1, char const *file2) -{ - bool leading_dot; - bool conflicts_found = 0, conflict; - struct diff3_block *b; - - for (b = reverse_diff3_blocklist (diff); b; b = b->next) - { - /* Must do mapping correctly. */ - enum diff_type type - = (b->correspond == DIFF_ALL - ? DIFF_ALL - : DIFF_1ST + rev_mapping[b->correspond - DIFF_1ST]); - - long low0, high0; - - /* If we aren't supposed to do this output block, skip it. */ - switch (type) - { - default: continue; - case DIFF_2ND: if (!show_2nd) continue; conflict = 1; break; - case DIFF_3RD: if (overlap_only) continue; conflict = 0; break; - case DIFF_ALL: if (simple_only) continue; conflict = flagging; break; - } - - low0 = D_LOWLINE (b, mapping[FILE0]); - high0 = D_HIGHLINE (b, mapping[FILE0]); - - if (conflict) - { - conflicts_found = 1; - - - /* Mark end of conflict. */ - - fprintf (outputfile, "%lda\n", high0); - leading_dot = 0; - if (type == DIFF_ALL) - { - if (show_2nd) - { - /* Append lines from FILE1. */ - fprintf (outputfile, "||||||| %s\n", file1); - leading_dot = dotlines (outputfile, b, mapping[FILE1]); - } - /* Append lines from FILE2. */ - fprintf (outputfile, "=======\n"); - leading_dot |= dotlines (outputfile, b, mapping[FILE2]); - } - fprintf (outputfile, ">>>>>>> %s\n", file2); - undotlines (outputfile, leading_dot, high0 + 2, - (D_NUMLINES (b, mapping[FILE1]) - + D_NUMLINES (b, mapping[FILE2]) + 1)); - - - /* Mark start of conflict. */ - - fprintf (outputfile, "%lda\n<<<<<<< %s\n", low0 - 1, - type == DIFF_ALL ? file0 : file1); - leading_dot = 0; - if (type == DIFF_2ND) - { - /* Prepend lines from FILE1. */ - leading_dot = dotlines (outputfile, b, mapping[FILE1]); - fprintf (outputfile, "=======\n"); - } - undotlines (outputfile, leading_dot, low0 + 1, - D_NUMLINES (b, mapping[FILE1])); - } - else if (D_NUMLINES (b, mapping[FILE2]) == 0) - /* Write out a delete */ - { - if (low0 == high0) - fprintf (outputfile, "%ldd\n", low0); - else - fprintf (outputfile, "%ld,%ldd\n", low0, high0); - } - else - /* Write out an add or change */ - { - switch (high0 - low0) - { - case -1: - fprintf (outputfile, "%lda\n", high0); - break; - case 0: - fprintf (outputfile, "%ldc\n", high0); - break; - default: - fprintf (outputfile, "%ld,%ldc\n", low0, high0); - break; - } - - undotlines (outputfile, dotlines (outputfile, b, mapping[FILE2]), - low0, D_NUMLINES (b, mapping[FILE2])); - } - } - if (finalwrite) fprintf (outputfile, "w\nq\n"); - return conflicts_found; -} - -/* - * Read from INFILE and output to OUTPUTFILE a set of diff3_ blocks DIFF - * as a merged file. This acts like 'ed file0 <[output_diff3_edscript]', - * except that it works even for binary data or incomplete lines. - * - * As before, MAPPING maps from arg list file number to diff file number, - * REV_MAPPING is its inverse, - * and FILE0, FILE1, and FILE2 are the names of the files. - * - * Returns 1 if conflicts were found. - */ - -static bool -output_diff3_merge (FILE *infile, FILE *outputfile, struct diff3_block *diff, - int const mapping[3], int const rev_mapping[3], - char const *file0, char const *file1, char const *file2) -{ - int c; - lin i; - bool conflicts_found = 0, conflict; - struct diff3_block *b; - lin linesread = 0; - - for (b = diff; b; b = b->next) - { - /* Must do mapping correctly. */ - enum diff_type type - = ((b->correspond == DIFF_ALL) - ? DIFF_ALL - : DIFF_1ST + rev_mapping[b->correspond - DIFF_1ST]); - char const *format_2nd = "<<<<<<< %s\n"; - - /* If we aren't supposed to do this output block, skip it. */ - switch (type) - { - default: continue; - case DIFF_2ND: if (!show_2nd) continue; conflict = 1; break; - case DIFF_3RD: if (overlap_only) continue; conflict = 0; break; - case DIFF_ALL: if (simple_only) continue; conflict = flagging; - format_2nd = "||||||| %s\n"; - break; - } - - /* Copy I lines from file 0. */ - i = D_LOWLINE (b, FILE0) - linesread - 1; - linesread += i; - while (0 <= --i) - do - { - c = getc (infile); - if (c == EOF) - { - if (ferror (infile)) - perror_with_exit (_("read failed")); - else if (feof (infile)) - fatal ("input file shrank"); - } - putc (c, outputfile); - } - while (c != '\n'); - - if (conflict) - { - conflicts_found = 1; - - if (type == DIFF_ALL) - { - /* Put in lines from FILE0 with bracket. */ - fprintf (outputfile, "<<<<<<< %s\n", file0); - for (i = 0; - i < D_NUMLINES (b, mapping[FILE0]); - i++) - fwrite (D_RELNUM (b, mapping[FILE0], i), sizeof (char), - D_RELLEN (b, mapping[FILE0], i), outputfile); - } - - if (show_2nd) - { - /* Put in lines from FILE1 with bracket. */ - fprintf (outputfile, format_2nd, file1); - for (i = 0; - i < D_NUMLINES (b, mapping[FILE1]); - i++) - fwrite (D_RELNUM (b, mapping[FILE1], i), sizeof (char), - D_RELLEN (b, mapping[FILE1], i), outputfile); - } - - fprintf (outputfile, "=======\n"); - } - - /* Put in lines from FILE2. */ - for (i = 0; - i < D_NUMLINES (b, mapping[FILE2]); - i++) - fwrite (D_RELNUM (b, mapping[FILE2], i), sizeof (char), - D_RELLEN (b, mapping[FILE2], i), outputfile); - - if (conflict) - fprintf (outputfile, ">>>>>>> %s\n", file2); - - /* Skip I lines in file 0. */ - i = D_NUMLINES (b, FILE0); - linesread += i; - while (0 <= --i) - while ((c = getc (infile)) != '\n') - if (c == EOF) - { - if (ferror (infile)) - perror_with_exit (_("read failed")); - else if (feof (infile)) - { - if (i || b->next) - fatal ("input file shrank"); - return conflicts_found; - } - } - } - /* Copy rest of common file. */ - while ((c = getc (infile)) != EOF || !(ferror (infile) | feof (infile))) - putc (c, outputfile); - return conflicts_found; -} - -/* - * Reverse the order of the list of diff3 blocks. - */ -static struct diff3_block * -reverse_diff3_blocklist (struct diff3_block *diff) -{ - register struct diff3_block *tmp, *next, *prev; - - for (tmp = diff, prev = 0; tmp; tmp = next) - { - next = tmp->next; - tmp->next = prev; - prev = tmp; - } - - return prev; -} - -static void -fatal (char const *msgid) -{ - error (EXIT_TROUBLE, 0, "%s", _(msgid)); - abort (); -} - -static void -perror_with_exit (char const *string) -{ - error (EXIT_TROUBLE, errno, "%s", string); - abort (); -} diff --git a/gnu/dist/diffutils/src/dir.c b/gnu/dist/diffutils/src/dir.c deleted file mode 100644 index 61410d07323..00000000000 --- a/gnu/dist/diffutils/src/dir.c +++ /dev/null @@ -1,291 +0,0 @@ -/* $NetBSD: dir.c,v 1.1.1.1 2003/01/26 00:43:17 wiz Exp $ */ - -/* Read, sort and compare two directories. Used for GNU DIFF. - - Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1998, 2001, 2002 - Free Software Foundation, Inc. - - This file is part of GNU DIFF. - - GNU DIFF is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU DIFF is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#include "diff.h" -#include -#include -#include -#include - -/* Read the directory named by DIR and store into DIRDATA a sorted vector - of filenames for its contents. DIR->desc == -1 means this directory is - known to be nonexistent, so set DIRDATA to an empty vector. - Return -1 (setting errno) if error, 0 otherwise. */ - -struct dirdata -{ - size_t nnames; /* Number of names. */ - char const **names; /* Sorted names of files in dir, followed by 0. */ - char *data; /* Allocated storage for file names. */ -}; - -/* Whether file names in directories should be compared with strcoll. */ -static bool locale_specific_sorting; - -/* Where to go if strcoll fails. */ -static jmp_buf failed_strcoll; - -static bool dir_loop (struct comparison const *, int); -static int compare_names_for_qsort (void const *, void const *); - - -/* Read a directory and get its vector of names. */ - -static bool -dir_read (struct file_data const *dir, struct dirdata *dirdata) -{ - register struct dirent *next; - register size_t i; - - /* Address of block containing the files that are described. */ - char const **names; - - /* Number of files in directory. */ - size_t nnames; - - /* Allocated and used storage for file name data. */ - char *data; - size_t data_alloc, data_used; - - dirdata->names = 0; - dirdata->data = 0; - nnames = 0; - data = 0; - - if (dir->desc != -1) - { - /* Open the directory and check for errors. */ - register DIR *reading = opendir (dir->name); - if (!reading) - return 0; - - /* Initialize the table of filenames. */ - - data_alloc = 512; - data_used = 0; - dirdata->data = data = xmalloc (data_alloc); - - /* Read the directory entries, and insert the subfiles - into the `data' table. */ - - while ((errno = 0, (next = readdir (reading)) != 0)) - { - char *d_name = next->d_name; - size_t d_size = NAMLEN (next) + 1; - - /* Ignore "." and "..". */ - if (d_name[0] == '.' - && (d_name[1] == 0 || (d_name[1] == '.' && d_name[2] == 0))) - continue; - - if (excluded_filename (excluded, d_name)) - continue; - - while (data_alloc < data_used + d_size) - { - if (PTRDIFF_MAX / 2 <= data_alloc) - xalloc_die (); - dirdata->data = data = xrealloc (data, data_alloc *= 2); - } - - memcpy (data + data_used, d_name, d_size); - data_used += d_size; - nnames++; - } - if (errno) - { - int e = errno; - closedir (reading); - errno = e; - return 0; - } -#if CLOSEDIR_VOID - closedir (reading); -#else - if (closedir (reading) != 0) - return 0; -#endif - } - - /* Create the `names' table from the `data' table. */ - if (PTRDIFF_MAX / sizeof *names - 1 <= nnames) - xalloc_die (); - dirdata->names = names = xmalloc ((nnames + 1) * sizeof *names); - dirdata->nnames = nnames; - for (i = 0; i < nnames; i++) - { - names[i] = data; - data += strlen (data) + 1; - } - names[nnames] = 0; - return 1; -} - -/* Compare file names, returning a value compatible with strcmp. */ - -static int -compare_names (char const *name1, char const *name2) -{ - if (ignore_file_name_case) - { - int r = strcasecmp (name1, name2); - if (r) - return r; - } - - if (locale_specific_sorting) - { - int r; - errno = 0; - r = strcoll (name1, name2); - if (errno) - { - error (0, errno, _("cannot compare file names `%s' and `%s'"), - name1, name2); - longjmp (failed_strcoll, 1); - } - if (r) - return r; - } - - return file_name_cmp (name1, name2); -} - -/* A wrapper for compare_names suitable as an argument for qsort. */ - -static int -compare_names_for_qsort (void const *file1, void const *file2) -{ - char const *const *f1 = file1; - char const *const *f2 = file2; - return compare_names (*f1, *f2); -} - -/* Compare the contents of two directories named in CMP. - This is a top-level routine; it does everything necessary for diff - on two directories. - - CMP->file[0].desc == -1 says directory CMP->file[0] doesn't exist, - but pretend it is empty. Likewise for CMP->file[1]. - - HANDLE_FILE is a caller-provided subroutine called to handle each file. - It gets three operands: CMP, name of file in dir 0, name of file in dir 1. - These names are relative to the original working directory. - - For a file that appears in only one of the dirs, one of the name-args - to HANDLE_FILE is zero. - - Returns the maximum of all the values returned by HANDLE_FILE, - or EXIT_TROUBLE if trouble is encountered in opening files. */ - -int -diff_dirs (struct comparison const *cmp, - int (*handle_file) (struct comparison const *, - char const *, char const *)) -{ - struct dirdata dirdata[2]; - int volatile val = EXIT_SUCCESS; - int i; - - if ((cmp->file[0].desc == -1 || dir_loop (cmp, 0)) - && (cmp->file[1].desc == -1 || dir_loop (cmp, 1))) - { - error (0, 0, "%s: recursive directory loop", - cmp->file[cmp->file[0].desc == -1].name); - return EXIT_TROUBLE; - } - - /* Get contents of both dirs. */ - for (i = 0; i < 2; i++) - if (! dir_read (&cmp->file[i], &dirdata[i])) - { - perror_with_name (cmp->file[i].name); - val = EXIT_TROUBLE; - } - - if (val == EXIT_SUCCESS) - { - char const **volatile names[2]; - names[0] = dirdata[0].names; - names[1] = dirdata[1].names; - - /* Use locale-specific sorting if possible, else native byte order. */ - locale_specific_sorting = 1; - if (setjmp (failed_strcoll)) - locale_specific_sorting = 0; - - /* Sort the directories. */ - for (i = 0; i < 2; i++) - qsort (names[i], dirdata[i].nnames, sizeof *dirdata[i].names, - compare_names_for_qsort); - - /* If `-S name' was given, and this is the topmost level of comparison, - ignore all file names less than the specified starting name. */ - - if (starting_file && ! cmp->parent) - { - while (*names[0] && compare_names (*names[0], starting_file) < 0) - names[0]++; - while (*names[1] && compare_names (*names[1], starting_file) < 0) - names[1]++; - } - - /* Loop while files remain in one or both dirs. */ - while (*names[0] || *names[1]) - { - /* Compare next name in dir 0 with next name in dir 1. - At the end of a dir, - pretend the "next name" in that dir is very large. */ - int nameorder = (!*names[0] ? 1 : !*names[1] ? -1 - : compare_names (*names[0], *names[1])); - int v1 = (*handle_file) (cmp, - 0 < nameorder ? 0 : *names[0]++, - nameorder < 0 ? 0 : *names[1]++); - if (val < v1) - val = v1; - } - } - - for (i = 0; i < 2; i++) - { - if (dirdata[i].names) - free (dirdata[i].names); - if (dirdata[i].data) - free (dirdata[i].data); - } - - return val; -} - -/* Return nonzero if CMP is looping recursively in argument I. */ - -static bool -dir_loop (struct comparison const *cmp, int i) -{ - struct comparison const *p = cmp; - while ((p = p->parent)) - if (0 < same_file (&p->file[i].stat, &cmp->file[i].stat)) - return 1; - return 0; -} diff --git a/gnu/dist/diffutils/src/ed.c b/gnu/dist/diffutils/src/ed.c deleted file mode 100644 index 42e47edbbb4..00000000000 --- a/gnu/dist/diffutils/src/ed.c +++ /dev/null @@ -1,171 +0,0 @@ -/* $NetBSD: ed.c,v 1.1.1.1 2003/01/26 00:43:17 wiz Exp $ */ - -/* Output routines for ed-script format. - - Copyright (C) 1988, 1989, 1991, 1992, 1993, 1995, 1998, 2001 Free - Software Foundation, Inc. - - This file is part of GNU DIFF. - - GNU DIFF is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU DIFF is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#include "diff.h" - -static void print_ed_hunk (struct change *); -static void print_rcs_hunk (struct change *); -static void pr_forward_ed_hunk (struct change *); - -/* Print our script as ed commands. */ - -void -print_ed_script (struct change *script) -{ - print_script (script, find_reverse_change, print_ed_hunk); -} - -/* Print a hunk of an ed diff */ - -static void -print_ed_hunk (struct change *hunk) -{ - lin f0, l0, f1, l1; - enum changes changes; - -#ifdef DEBUG - debug_script (hunk); -#endif - - /* Determine range of line numbers involved in each file. */ - changes = analyze_hunk (hunk, &f0, &l0, &f1, &l1); - if (!changes) - return; - - begin_output (); - - /* Print out the line number header for this hunk */ - print_number_range (',', &files[0], f0, l0); - fprintf (outfile, "%c\n", change_letter[changes]); - - /* Print new/changed lines from second file, if needed */ - if (changes != OLD) - { - lin i; - for (i = f1; i <= l1; i++) - { - if (files[1].linbuf[i][0] == '.' && files[1].linbuf[i][1] == '\n') - { - /* The file's line is just a dot, and it would exit - insert mode. Precede the dot with another dot, exit - insert mode, remove the extra dot, and then resume - insert mode. */ - fprintf (outfile, "..\n.\ns/.//\na\n"); - } - else - print_1_line ("", &files[1].linbuf[i]); - } - - fprintf (outfile, ".\n"); - } -} - -/* Print change script in the style of ed commands, - but print the changes in the order they appear in the input files, - which means that the commands are not truly useful with ed. */ - -void -pr_forward_ed_script (struct change *script) -{ - print_script (script, find_change, pr_forward_ed_hunk); -} - -static void -pr_forward_ed_hunk (struct change *hunk) -{ - lin i, f0, l0, f1, l1; - - /* Determine range of line numbers involved in each file. */ - enum changes changes = analyze_hunk (hunk, &f0, &l0, &f1, &l1); - if (!changes) - return; - - begin_output (); - - fprintf (outfile, "%c", change_letter[changes]); - print_number_range (' ', files, f0, l0); - fprintf (outfile, "\n"); - - /* If deletion only, print just the number range. */ - - if (changes == OLD) - return; - - /* For insertion (with or without deletion), print the number range - and the lines from file 2. */ - - for (i = f1; i <= l1; i++) - print_1_line ("", &files[1].linbuf[i]); - - fprintf (outfile, ".\n"); -} - -/* Print in a format somewhat like ed commands - except that each insert command states the number of lines it inserts. - This format is used for RCS. */ - -void -print_rcs_script (struct change *script) -{ - print_script (script, find_change, print_rcs_hunk); -} - -/* Print a hunk of an RCS diff */ - -static void -print_rcs_hunk (struct change *hunk) -{ - lin i, f0, l0, f1, l1; - long tf0, tl0, tf1, tl1; - - /* Determine range of line numbers involved in each file. */ - enum changes changes = analyze_hunk (hunk, &f0, &l0, &f1, &l1); - if (!changes) - return; - - begin_output (); - - translate_range (&files[0], f0, l0, &tf0, &tl0); - - if (changes & OLD) - { - fprintf (outfile, "d"); - /* For deletion, print just the starting line number from file 0 - and the number of lines deleted. */ - fprintf (outfile, "%ld %ld\n", tf0, tf0 <= tl0 ? tl0 - tf0 + 1 : 1); - } - - if (changes & NEW) - { - fprintf (outfile, "a"); - - /* Take last-line-number from file 0 and # lines from file 1. */ - translate_range (&files[1], f1, l1, &tf1, &tl1); - fprintf (outfile, "%ld %ld\n", tl0, tf1 <= tl1 ? tl1 - tf1 + 1 : 1); - - /* Print the inserted lines. */ - for (i = f1; i <= l1; i++) - print_1_line ("", &files[1].linbuf[i]); - } -} diff --git a/gnu/dist/diffutils/src/ifdef.c b/gnu/dist/diffutils/src/ifdef.c deleted file mode 100644 index f8e3f4e4044..00000000000 --- a/gnu/dist/diffutils/src/ifdef.c +++ /dev/null @@ -1,426 +0,0 @@ -/* $NetBSD: ifdef.c,v 1.1.1.1 2003/01/26 00:43:17 wiz Exp $ */ - -/* #ifdef-format output routines for GNU DIFF. - - Copyright (C) 1989, 1991, 1992, 1993, 1994, 2001, 2002 Free - Software Foundation, Inc. - - This file is part of GNU DIFF. - - GNU DIFF is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY. No author or distributor - accepts responsibility to anyone for the consequences of using it - or for whether it serves any particular purpose or works at all, - unless he says so in writing. Refer to the GNU DIFF General Public - License for full details. - - Everyone is granted permission to copy, modify and redistribute - GNU DIFF, but only under the conditions described in the - GNU DIFF General Public License. A copy of this license is - supposed to have been given to you along with GNU DIFF so you - can know your rights and responsibilities. It should be in a - file named COPYING. Among other things, the copyright notice - and this notice must be preserved on all copies. */ - -#include "diff.h" - -#include - -struct group -{ - struct file_data const *file; - lin from, upto; /* start and limit lines for this group of lines */ -}; - -static char const *format_group (FILE *, char const *, char, - struct group const *); -static char const *do_printf_spec (FILE *, char const *, - struct file_data const *, lin, - struct group const *); -static char const *scan_char_literal (char const *, char *); -static lin groups_letter_value (struct group const *, char); -static void format_ifdef (char const *, lin, lin, lin, lin); -static void print_ifdef_hunk (struct change *); -static void print_ifdef_lines (FILE *, char const *, struct group const *); - -static lin next_line; - -/* Print the edit-script SCRIPT as a merged #ifdef file. */ - -void -print_ifdef_script (struct change *script) -{ - next_line = - files[0].prefix_lines; - print_script (script, find_change, print_ifdef_hunk); - if (next_line < files[0].valid_lines) - { - begin_output (); - format_ifdef (group_format[UNCHANGED], next_line, files[0].valid_lines, - next_line - files[0].valid_lines + files[1].valid_lines, - files[1].valid_lines); - } -} - -/* Print a hunk of an ifdef diff. - This is a contiguous portion of a complete edit script, - describing changes in consecutive lines. */ - -static void -print_ifdef_hunk (struct change *hunk) -{ - lin first0, last0, first1, last1; - - /* Determine range of line numbers involved in each file. */ - enum changes changes = analyze_hunk (hunk, &first0, &last0, &first1, &last1); - if (!changes) - return; - - begin_output (); - - /* Print lines up to this change. */ - if (next_line < first0) - format_ifdef (group_format[UNCHANGED], next_line, first0, - next_line - first0 + first1, first1); - - /* Print this change. */ - next_line = last0 + 1; - format_ifdef (group_format[changes], first0, next_line, first1, last1 + 1); -} - -/* Print a set of lines according to FORMAT. - Lines BEG0 up to END0 are from the first file; - lines BEG1 up to END1 are from the second file. */ - -static void -format_ifdef (char const *format, lin beg0, lin end0, lin beg1, lin end1) -{ - struct group groups[2]; - - groups[0].file = &files[0]; - groups[0].from = beg0; - groups[0].upto = end0; - groups[1].file = &files[1]; - groups[1].from = beg1; - groups[1].upto = end1; - format_group (outfile, format, 0, groups); -} - -/* Print to file OUT a set of lines according to FORMAT. - The format ends at the first free instance of ENDCHAR. - Yield the address of the terminating character. - GROUPS specifies which lines to print. - If OUT is zero, do not actually print anything; just scan the format. */ - -static char const * -format_group (register FILE *out, char const *format, char endchar, - struct group const *groups) -{ - register char c; - register char const *f = format; - - while ((c = *f) != endchar && c != 0) - { - char const *f1 = ++f; - if (c == '%') - switch ((c = *f++)) - { - case '%': - break; - - case '(': - /* Print if-then-else format e.g. `%(n=1?thenpart:elsepart)'. */ - { - int i; - uintmax_t value[2]; - FILE *thenout, *elseout; - - for (i = 0; i < 2; i++) - { - if (ISDIGIT (*f)) - { - char *fend; - errno = 0; - value[i] = strtoumax (f, &fend, 10); - if (errno) - goto bad_format; - f = fend; - } - else - { - value[i] = groups_letter_value (groups, *f); - if (value[i] == -1) - goto bad_format; - f++; - } - if (*f++ != "=?"[i]) - goto bad_format; - } - if (value[0] == value[1]) - thenout = out, elseout = 0; - else - thenout = 0, elseout = out; - f = format_group (thenout, f, ':', groups); - if (*f) - { - f = format_group (elseout, f + 1, ')', groups); - if (*f) - f++; - } - } - continue; - - case '<': - /* Print lines deleted from first file. */ - print_ifdef_lines (out, line_format[OLD], &groups[0]); - continue; - - case '=': - /* Print common lines. */ - print_ifdef_lines (out, line_format[UNCHANGED], &groups[0]); - continue; - - case '>': - /* Print lines inserted from second file. */ - print_ifdef_lines (out, line_format[NEW], &groups[1]); - continue; - - default: - f = do_printf_spec (out, f - 2, 0, 0, groups); - if (f) - continue; - /* Fall through. */ - bad_format: - c = '%'; - f = f1; - break; - } - - if (out) - putc (c, out); - } - - return f; -} - -/* For the line group pair G, return the number corresponding to LETTER. - Return -1 if LETTER is not a group format letter. */ -static lin -groups_letter_value (struct group const *g, char letter) -{ - switch (letter) - { - case 'E': letter = 'e'; g++; break; - case 'F': letter = 'f'; g++; break; - case 'L': letter = 'l'; g++; break; - case 'M': letter = 'm'; g++; break; - case 'N': letter = 'n'; g++; break; - } - - switch (letter) - { - case 'e': return translate_line_number (g->file, g->from) - 1; - case 'f': return translate_line_number (g->file, g->from); - case 'l': return translate_line_number (g->file, g->upto) - 1; - case 'm': return translate_line_number (g->file, g->upto); - case 'n': return g->upto - g->from; - default: return -1; - } -} - -/* Print to file OUT, using FORMAT to print the line group GROUP. - But do nothing if OUT is zero. */ -static void -print_ifdef_lines (register FILE *out, char const *format, - struct group const *group) -{ - struct file_data const *file = group->file; - char const * const *linbuf = file->linbuf; - lin from = group->from, upto = group->upto; - - if (!out) - return; - - /* If possible, use a single fwrite; it's faster. */ - if (!expand_tabs && format[0] == '%') - { - if (format[1] == 'l' && format[2] == '\n' && !format[3] && from < upto) - { - fwrite (linbuf[from], sizeof (char), - linbuf[upto] + (linbuf[upto][-1] != '\n') - linbuf[from], - out); - return; - } - if (format[1] == 'L' && !format[2]) - { - fwrite (linbuf[from], sizeof (char), - linbuf[upto] - linbuf[from], out); - return; - } - } - - for (; from < upto; from++) - { - register char c; - register char const *f = format; - - while ((c = *f++) != 0) - { - char const *f1 = f; - if (c == '%') - switch ((c = *f++)) - { - case '%': - break; - - case 'l': - output_1_line (linbuf[from], - (linbuf[from + 1] - - (linbuf[from + 1][-1] == '\n')), - 0, 0); - continue; - - case 'L': - output_1_line (linbuf[from], linbuf[from + 1], 0, 0); - continue; - - default: - f = do_printf_spec (out, f - 2, file, from, 0); - if (f) - continue; - c = '%'; - f = f1; - break; - } - - putc (c, out); - } - } -} - -static char const * -do_printf_spec (FILE *out, char const *spec, - struct file_data const *file, lin n, - struct group const *groups) -{ - char const *f = spec; - char c; - char c1; - - /* Scan printf-style SPEC of the form %[-'0]*[0-9]*(.[0-9]*)?[cdoxX]. */ - /* assert (*f == '%'); */ - f++; - while ((c = *f++) == '-' || c == '\'' || c == '0') - continue; - while (ISDIGIT (c)) - c = *f++; - if (c == '.') - while (ISDIGIT (c = *f++)) - continue; - c1 = *f++; - - switch (c) - { - case 'c': - if (c1 != '\'') - return 0; - else - { - char value; - f = scan_char_literal (f, &value); - if (!f) - return 0; - if (out) - putc (value, out); - } - break; - - case 'd': case 'o': case 'x': case 'X': - { - lin value; - - if (file) - { - if (c1 != 'n') - return 0; - value = translate_line_number (file, n); - } - else - { - value = groups_letter_value (groups, c1); - if (value < 0) - return 0; - } - - if (out) - { - /* For example, if the spec is "%3xn", use the printf - format spec "%3lx". Here the spec prefix is "%3". */ - long long_value = value; - size_t spec_prefix_len = f - spec - 2; -#if HAVE_C_VARARRAYS - char format[spec_prefix_len + 3]; -#else - char *format = xmalloc (spec_prefix_len + 3); -#endif - char *p = format + spec_prefix_len; - memcpy (format, spec, spec_prefix_len); - *p++ = 'l'; - *p++ = c; - *p = '\0'; - fprintf (out, format, long_value); -#if ! HAVE_C_VARARRAYS - free (format); -#endif - } - } - break; - - default: - return 0; - } - - return f; -} - -/* Scan the character literal represented in the string LIT; LIT points just - after the initial apostrophe. Put the literal's value into *VALPTR. - Yield the address of the first character after the closing apostrophe, - or zero if the literal is ill-formed. */ -static char const * -scan_char_literal (char const *lit, char *valptr) -{ - register char const *p = lit; - char value; - ptrdiff_t digits; - char c = *p++; - - switch (c) - { - case 0: - case '\'': - return 0; - - case '\\': - value = 0; - while ((c = *p++) != '\'') - { - unsigned int digit = c - '0'; - if (8 <= digit) - return 0; - value = 8 * value + digit; - } - digits = p - lit - 2; - if (! (1 <= digits && digits <= 3)) - return 0; - break; - - default: - value = c; - if (*p++ != '\'') - return 0; - break; - } - - *valptr = value; - return p; -} diff --git a/gnu/dist/diffutils/src/io.c b/gnu/dist/diffutils/src/io.c deleted file mode 100644 index 47d75a535b6..00000000000 --- a/gnu/dist/diffutils/src/io.c +++ /dev/null @@ -1,857 +0,0 @@ -/* $NetBSD: io.c,v 1.1.1.1 2003/01/26 00:43:17 wiz Exp $ */ - -/* File I/O for GNU DIFF. - - Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1998, 2001, 2002 - Free Software Foundation, Inc. - - This file is part of GNU DIFF. - - GNU DIFF is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU DIFF is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#include "diff.h" -#include -#include -#include -#include - -/* Rotate an unsigned value to the left. */ -#define ROL(v, n) ((v) << (n) | (v) >> (sizeof (v) * CHAR_BIT - (n))) - -/* Given a hash value and a new character, return a new hash value. */ -#define HASH(h, c) ((c) + ROL (h, 7)) - -/* The type of a hash value. */ -typedef size_t hash_value; -verify (hash_value_is_unsigned, ! TYPE_SIGNED (hash_value)); - -/* Lines are put into equivalence classes of lines that match in lines_differ. - Each equivalence class is represented by one of these structures, - but only while the classes are being computed. - Afterward, each class is represented by a number. */ -struct equivclass -{ - lin next; /* Next item in this bucket. */ - hash_value hash; /* Hash of lines in this class. */ - char const *line; /* A line that fits this class. */ - size_t length; /* That line's length, not counting its newline. */ -}; - -/* Hash-table: array of buckets, each being a chain of equivalence classes. - buckets[-1] is reserved for incomplete lines. */ -static lin *buckets; - -/* Number of buckets in the hash table array, not counting buckets[-1]. */ -static size_t nbuckets; - -/* Array in which the equivalence classes are allocated. - The bucket-chains go through the elements in this array. - The number of an equivalence class is its index in this array. */ -static struct equivclass *equivs; - -/* Index of first free element in the array `equivs'. */ -static lin equivs_index; - -/* Number of elements allocated in the array `equivs'. */ -static lin equivs_alloc; - -/* Read a block of data into a file buffer, checking for EOF and error. */ - -void -file_block_read (struct file_data *current, size_t size) -{ - if (size && ! current->eof) - { - size_t s = block_read (current->desc, - FILE_BUFFER (current) + current->buffered, size); - if (s == SIZE_MAX) - pfatal_with_name (current->name); - current->buffered += s; - current->eof = s < size; - } -} - -/* Check for binary files and compare them for exact identity. */ - -/* Return 1 if BUF contains a non text character. - SIZE is the number of characters in BUF. */ - -#define binary_file_p(buf, size) (memchr (buf, 0, size) != 0) - -/* Get ready to read the current file. - Return nonzero if SKIP_TEST is zero, - and if it appears to be a binary file. */ - -static bool -sip (struct file_data *current, bool skip_test) -{ - /* If we have a nonexistent file at this stage, treat it as empty. */ - if (current->desc < 0) - { - /* Leave room for a sentinel. */ - current->bufsize = sizeof (word); - current->buffer = xmalloc (current->bufsize); - } - else - { - current->bufsize = buffer_lcm (sizeof (word), - STAT_BLOCKSIZE (current->stat), - PTRDIFF_MAX - 2 * sizeof (word)); - current->buffer = xmalloc (current->bufsize); - - if (! skip_test) - { - /* Check first part of file to see if it's a binary file. */ - - bool was_binary = set_binary_mode (current->desc, 1); - off_t buffered; - file_block_read (current, current->bufsize); - buffered = current->buffered; - - if (! was_binary) - { - /* Revert to text mode and seek back to the beginning to - reread the file. Use relative seek, since file - descriptors like stdin might not start at offset - zero. */ - - if (lseek (current->desc, - buffered, SEEK_CUR) == -1) - pfatal_with_name (current->name); - set_binary_mode (current->desc, 0); - current->buffered = 0; - current->eof = 0; - } - - return binary_file_p (current->buffer, buffered); - } - } - - current->buffered = 0; - current->eof = 0; - return 0; -} - -/* Slurp the rest of the current file completely into memory. */ - -static void -slurp (struct file_data *current) -{ - size_t cc; - - if (current->desc < 0) - { - /* The file is nonexistent. */ - return; - } - - if (S_ISREG (current->stat.st_mode)) - { - /* It's a regular file; slurp in the rest all at once. */ - - /* Get the size out of the stat block. - Allocate just enough room for appended newline plus word sentinel, - plus word-alignment since we want the buffer word-aligned. */ - size_t file_size = current->stat.st_size; - cc = file_size + 2 * sizeof (word) - file_size % sizeof (word); - if (file_size != current->stat.st_size || cc < file_size - || PTRDIFF_MAX <= cc) - xalloc_die (); - - if (current->bufsize < cc) - { - current->bufsize = cc; - current->buffer = xrealloc (current->buffer, cc); - } - - /* Try to read at least 1 more byte than the size indicates, to - detect whether the file is growing. This is a nicety for - users who run 'diff' on files while they are changing. */ - - if (current->buffered <= file_size) - { - file_block_read (current, file_size + 1 - current->buffered); - if (current->buffered <= file_size) - return; - } - } - - /* It's not a regular file, or it's a growing regular file; read it, - growing the buffer as needed. */ - - file_block_read (current, current->bufsize - current->buffered); - - if (current->buffered) - { - while (current->buffered == current->bufsize) - { - if (PTRDIFF_MAX / 2 - sizeof (word) < current->bufsize) - xalloc_die (); - current->bufsize *= 2; - current->buffer = xrealloc (current->buffer, current->bufsize); - file_block_read (current, current->bufsize - current->buffered); - } - - /* Allocate just enough room for appended newline plus word - sentinel, plus word-alignment. */ - cc = current->buffered + 2 * sizeof (word); - current->bufsize = cc - cc % sizeof (word); - current->buffer = xrealloc (current->buffer, current->bufsize); - } -} - -/* Split the file into lines, simultaneously computing the equivalence - class for each line. */ - -static void -find_and_hash_each_line (struct file_data *current) -{ - hash_value h; - unsigned char const *p = (unsigned char const *) current->prefix_end; - unsigned char c; - lin i, *bucket; - size_t length; - - /* Cache often-used quantities in local variables to help the compiler. */ - char const **linbuf = current->linbuf; - lin alloc_lines = current->alloc_lines; - lin line = 0; - lin linbuf_base = current->linbuf_base; - lin *cureqs = xmalloc (alloc_lines * sizeof *cureqs); - struct equivclass *eqs = equivs; - lin eqs_index = equivs_index; - lin eqs_alloc = equivs_alloc; - char const *suffix_begin = current->suffix_begin; - char const *bufend = FILE_BUFFER (current) + current->buffered; - bool diff_length_compare_anyway = - ignore_white_space != IGNORE_NO_WHITE_SPACE; - bool same_length_diff_contents_compare_anyway = - diff_length_compare_anyway | ignore_case; - - while ((char const *) p < suffix_begin) - { - char const *ip = (char const *) p; - - h = 0; - - /* Hash this line until we find a newline. */ - if (ignore_case) - switch (ignore_white_space) - { - case IGNORE_ALL_SPACE: - while ((c = *p++) != '\n') - if (! ISSPACE (c)) - h = HASH (h, TOLOWER (c)); - break; - - case IGNORE_SPACE_CHANGE: - while ((c = *p++) != '\n') - { - if (ISSPACE (c)) - { - do - if ((c = *p++) == '\n') - goto hashing_done; - while (ISSPACE (c)); - - h = HASH (h, ' '); - } - - /* C is now the first non-space. */ - h = HASH (h, TOLOWER (c)); - } - break; - - case IGNORE_TAB_EXPANSION: - { - size_t column = 0; - while ((c = *p++) != '\n') - { - int repetitions = 1; - - switch (c) - { - case '\b': - column -= 0 < column; - break; - - case '\t': - c = ' '; - repetitions = TAB_WIDTH - column % TAB_WIDTH; - column += repetitions; - break; - - case '\r': - column = 0; - break; - - default: - c = TOLOWER (c); - column++; - break; - } - - do - h = HASH (h, c); - while (--repetitions != 0); - } - } - break; - - default: - while ((c = *p++) != '\n') - h = HASH (h, TOLOWER (c)); - break; - } - else - switch (ignore_white_space) - { - case IGNORE_ALL_SPACE: - while ((c = *p++) != '\n') - if (! ISSPACE (c)) - h = HASH (h, c); - break; - - case IGNORE_SPACE_CHANGE: - while ((c = *p++) != '\n') - { - if (ISSPACE (c)) - { - do - if ((c = *p++) == '\n') - goto hashing_done; - while (ISSPACE (c)); - - h = HASH (h, ' '); - } - - /* C is now the first non-space. */ - h = HASH (h, c); - } - break; - - case IGNORE_TAB_EXPANSION: - { - size_t column = 0; - while ((c = *p++) != '\n') - { - int repetitions = 1; - - switch (c) - { - case '\b': - column -= 0 < column; - break; - - case '\t': - c = ' '; - repetitions = TAB_WIDTH - column % TAB_WIDTH; - column += repetitions; - break; - - case '\r': - column = 0; - break; - - default: - column++; - break; - } - - do - h = HASH (h, c); - while (--repetitions != 0); - } - } - break; - - default: - while ((c = *p++) != '\n') - h = HASH (h, c); - break; - } - - hashing_done:; - - bucket = &buckets[h % nbuckets]; - length = (char const *) p - ip - 1; - - if ((char const *) p == bufend - && current->missing_newline - && ROBUST_OUTPUT_STYLE (output_style)) - { - /* This line is incomplete. If this is significant, - put the line into buckets[-1]. */ - if (ignore_white_space < IGNORE_SPACE_CHANGE) - bucket = &buckets[-1]; - - /* Omit the inserted newline when computing linbuf later. */ - p--; - bufend = suffix_begin = (char const *) p; - } - - for (i = *bucket; ; i = eqs[i].next) - if (!i) - { - /* Create a new equivalence class in this bucket. */ - i = eqs_index++; - if (i == eqs_alloc) - { - if (PTRDIFF_MAX / (2 * sizeof *eqs) <= eqs_alloc) - xalloc_die (); - eqs_alloc *= 2; - eqs = xrealloc (eqs, eqs_alloc * sizeof *eqs); - } - eqs[i].next = *bucket; - eqs[i].hash = h; - eqs[i].line = ip; - eqs[i].length = length; - *bucket = i; - break; - } - else if (eqs[i].hash == h) - { - char const *eqline = eqs[i].line; - - /* Reuse existing class if lines_differ reports the lines - equal. */ - if (eqs[i].length == length) - { - /* Reuse existing equivalence class if the lines are identical. - This detects the common case of exact identity - faster than lines_differ would. */ - if (memcmp (eqline, ip, length) == 0) - break; - if (!same_length_diff_contents_compare_anyway) - continue; - } - else if (!diff_length_compare_anyway) - continue; - - if (! lines_differ (eqline, ip)) - break; - } - - /* Maybe increase the size of the line table. */ - if (line == alloc_lines) - { - /* Double (alloc_lines - linbuf_base) by adding to alloc_lines. */ - if (PTRDIFF_MAX / 3 <= alloc_lines - || PTRDIFF_MAX / sizeof *cureqs <= 2 * alloc_lines - linbuf_base - || PTRDIFF_MAX / sizeof *linbuf <= alloc_lines - linbuf_base) - xalloc_die (); - alloc_lines = 2 * alloc_lines - linbuf_base; - cureqs = xrealloc (cureqs, alloc_lines * sizeof *cureqs); - linbuf += linbuf_base; - linbuf = xrealloc (linbuf, - (alloc_lines - linbuf_base) * sizeof *linbuf); - linbuf -= linbuf_base; - } - linbuf[line] = ip; - cureqs[line] = i; - ++line; - } - - current->buffered_lines = line; - - for (i = 0; ; i++) - { - /* Record the line start for lines in the suffix that we care about. - Record one more line start than lines, - so that we can compute the length of any buffered line. */ - if (line == alloc_lines) - { - /* Double (alloc_lines - linbuf_base) by adding to alloc_lines. */ - if (PTRDIFF_MAX / 3 <= alloc_lines - || PTRDIFF_MAX / sizeof *cureqs <= 2 * alloc_lines - linbuf_base - || PTRDIFF_MAX / sizeof *linbuf <= alloc_lines - linbuf_base) - xalloc_die (); - alloc_lines = 2 * alloc_lines - linbuf_base; - linbuf += linbuf_base; - linbuf = xrealloc (linbuf, - (alloc_lines - linbuf_base) * sizeof *linbuf); - linbuf -= linbuf_base; - } - linbuf[line] = (char const *) p; - - if ((char const *) p == bufend) - break; - - if (context <= i && no_diff_means_no_output) - break; - - line++; - - while (*p++ != '\n') - continue; - } - - /* Done with cache in local variables. */ - current->linbuf = linbuf; - current->valid_lines = line; - current->alloc_lines = alloc_lines; - current->equivs = cureqs; - equivs = eqs; - equivs_alloc = eqs_alloc; - equivs_index = eqs_index; -} - -/* Prepare the text. Make sure the text end is initialized. - Make sure text ends in a newline, - but remember that we had to add one. - Strip trailing CRs, if that was requested. */ - -static void -prepare_text (struct file_data *current) -{ - size_t buffered = current->buffered; - char *p = FILE_BUFFER (current); - char *dst; - - if (buffered == 0 || p[buffered - 1] == '\n') - current->missing_newline = 0; - else - { - p[buffered++] = '\n'; - current->missing_newline = 1; - } - - if (!p) - return; - - /* Don't use uninitialized storage when planting or using sentinels. */ - memset (p + buffered, 0, sizeof (word)); - - if (strip_trailing_cr && (dst = memchr (p, '\r', buffered))) - { - char const *src = dst; - char const *srclim = p + buffered; - - do - dst += ! ((*dst = *src++) == '\r' && *src == '\n'); - while (src < srclim); - - buffered -= src - dst; - } - - current->buffered = buffered; -} - -/* We have found N lines in a buffer of size S; guess the - proportionate number of lines that will be found in a buffer of - size T. However, do not guess a number of lines so large that the - resulting line table might cause overflow in size calculations. */ -static lin -guess_lines (lin n, size_t s, size_t t) -{ - size_t guessed_bytes_per_line = n < 10 ? 32 : s / (n - 1); - lin guessed_lines = MAX (1, t / guessed_bytes_per_line); - return MIN (guessed_lines, PTRDIFF_MAX / (2 * sizeof (char *) + 1) - 5) + 5; -} - -/* Given a vector of two file_data objects, find the identical - prefixes and suffixes of each object. */ - -static void -find_identical_ends (struct file_data filevec[]) -{ - word *w0, *w1; - char *p0, *p1, *buffer0, *buffer1; - char const *end0, *beg0; - char const **linbuf0, **linbuf1; - lin i, lines; - size_t n0, n1; - lin alloc_lines0, alloc_lines1; - lin buffered_prefix, prefix_count, prefix_mask; - lin middle_guess, suffix_guess; - - slurp (&filevec[0]); - prepare_text (&filevec[0]); - if (filevec[0].desc != filevec[1].desc) - { - slurp (&filevec[1]); - prepare_text (&filevec[1]); - } - else - { - filevec[1].buffer = filevec[0].buffer; - filevec[1].bufsize = filevec[0].bufsize; - filevec[1].buffered = filevec[0].buffered; - filevec[1].missing_newline = filevec[0].missing_newline; - } - - /* Find identical prefix. */ - - w0 = filevec[0].buffer; - w1 = filevec[1].buffer; - p0 = buffer0 = (char *) w0; - p1 = buffer1 = (char *) w1; - n0 = filevec[0].buffered; - n1 = filevec[1].buffered; - - if (p0 == p1) - /* The buffers are the same; sentinels won't work. */ - p0 = p1 += n1; - else - { - /* Insert end sentinels, in this case characters that are guaranteed - to make the equality test false, and thus terminate the loop. */ - - if (n0 < n1) - p0[n0] = ~p1[n0]; - else - p1[n1] = ~p0[n1]; - - /* Loop until first mismatch, or to the sentinel characters. */ - - /* Compare a word at a time for speed. */ - while (*w0 == *w1) - w0++, w1++; - - /* Do the last few bytes of comparison a byte at a time. */ - p0 = (char *) w0; - p1 = (char *) w1; - while (*p0 == *p1) - p0++, p1++; - - /* Don't mistakenly count missing newline as part of prefix. */ - if (ROBUST_OUTPUT_STYLE (output_style) - && ((buffer0 + n0 - filevec[0].missing_newline < p0) - != - (buffer1 + n1 - filevec[1].missing_newline < p1))) - p0--, p1--; - } - - /* Now P0 and P1 point at the first nonmatching characters. */ - - /* Skip back to last line-beginning in the prefix, - and then discard up to HORIZON_LINES lines from the prefix. */ - i = horizon_lines; - while (p0 != buffer0 && (p0[-1] != '\n' || i--)) - p0--, p1--; - - /* Record the prefix. */ - filevec[0].prefix_end = p0; - filevec[1].prefix_end = p1; - - /* Find identical suffix. */ - - /* P0 and P1 point beyond the last chars not yet compared. */ - p0 = buffer0 + n0; - p1 = buffer1 + n1; - - if (! ROBUST_OUTPUT_STYLE (output_style) - || filevec[0].missing_newline == filevec[1].missing_newline) - { - end0 = p0; /* Addr of last char in file 0. */ - - /* Get value of P0 at which we should stop scanning backward: - this is when either P0 or P1 points just past the last char - of the identical prefix. */ - beg0 = filevec[0].prefix_end + (n0 < n1 ? 0 : n0 - n1); - - /* Scan back until chars don't match or we reach that point. */ - for (; p0 != beg0; p0--, p1--) - if (*p0 != *p1) - { - /* Point at the first char of the matching suffix. */ - beg0 = p0; - break; - } - - /* Are we at a line-beginning in both files? If not, add the rest of - this line to the main body. Discard up to HORIZON_LINES lines from - the identical suffix. Also, discard one extra line, - because shift_boundaries may need it. */ - i = horizon_lines + !((buffer0 == p0 || p0[-1] == '\n') - && - (buffer1 == p1 || p1[-1] == '\n')); - while (i-- && p0 != end0) - while (*p0++ != '\n') - continue; - - p1 += p0 - beg0; - } - - /* Record the suffix. */ - filevec[0].suffix_begin = p0; - filevec[1].suffix_begin = p1; - - /* Calculate number of lines of prefix to save. - - prefix_count == 0 means save the whole prefix; - we need this for options like -D that output the whole file, - or for enormous contexts (to avoid worrying about arithmetic overflow). - We also need it for options like -F that output some preceding line; - at least we will need to find the last few lines, - but since we don't know how many, it's easiest to find them all. - - Otherwise, prefix_count != 0. Save just prefix_count lines at start - of the line buffer; they'll be moved to the proper location later. - Handle 1 more line than the context says (because we count 1 too many), - rounded up to the next power of 2 to speed index computation. */ - - if (no_diff_means_no_output && ! function_regexp.fastmap - && context < LIN_MAX / 4 && context < n0) - { - middle_guess = guess_lines (0, 0, p0 - filevec[0].prefix_end); - suffix_guess = guess_lines (0, 0, buffer0 + n0 - p0); - for (prefix_count = 1; prefix_count <= context; prefix_count *= 2) - continue; - alloc_lines0 = (prefix_count + middle_guess - + MIN (context, suffix_guess)); - } - else - { - prefix_count = 0; - alloc_lines0 = guess_lines (0, 0, n0); - } - - prefix_mask = prefix_count - 1; - lines = 0; - linbuf0 = xmalloc (alloc_lines0 * sizeof *linbuf0); - p0 = buffer0; - - /* If the prefix is needed, find the prefix lines. */ - if (! (no_diff_means_no_output - && filevec[0].prefix_end == p0 - && filevec[1].prefix_end == p1)) - { - end0 = filevec[0].prefix_end; - while (p0 != end0) - { - lin l = lines++ & prefix_mask; - if (l == alloc_lines0) - { - if (PTRDIFF_MAX / (2 * sizeof *linbuf0) <= alloc_lines0) - xalloc_die (); - alloc_lines0 *= 2; - linbuf0 = xrealloc (linbuf0, alloc_lines0 * sizeof *linbuf0); - } - linbuf0[l] = p0; - while (*p0++ != '\n') - continue; - } - } - buffered_prefix = prefix_count && context < lines ? context : lines; - - /* Allocate line buffer 1. */ - - middle_guess = guess_lines (lines, p0 - buffer0, p1 - filevec[1].prefix_end); - suffix_guess = guess_lines (lines, p0 - buffer0, buffer1 + n1 - p1); - alloc_lines1 = buffered_prefix + middle_guess + MIN (context, suffix_guess); - if (alloc_lines1 < buffered_prefix - || PTRDIFF_MAX / sizeof *linbuf1 <= alloc_lines1) - xalloc_die (); - linbuf1 = xmalloc (alloc_lines1 * sizeof *linbuf1); - - if (buffered_prefix != lines) - { - /* Rotate prefix lines to proper location. */ - for (i = 0; i < buffered_prefix; i++) - linbuf1[i] = linbuf0[(lines - context + i) & prefix_mask]; - for (i = 0; i < buffered_prefix; i++) - linbuf0[i] = linbuf1[i]; - } - - /* Initialize line buffer 1 from line buffer 0. */ - for (i = 0; i < buffered_prefix; i++) - linbuf1[i] = linbuf0[i] - buffer0 + buffer1; - - /* Record the line buffer, adjusted so that - linbuf[0] points at the first differing line. */ - filevec[0].linbuf = linbuf0 + buffered_prefix; - filevec[1].linbuf = linbuf1 + buffered_prefix; - filevec[0].linbuf_base = filevec[1].linbuf_base = - buffered_prefix; - filevec[0].alloc_lines = alloc_lines0 - buffered_prefix; - filevec[1].alloc_lines = alloc_lines1 - buffered_prefix; - filevec[0].prefix_lines = filevec[1].prefix_lines = lines; -} - -/* If 1 < k, then (2**k - prime_offset[k]) is the largest prime less - than 2**k. This table is derived from Chris K. Caldwell's list - . */ - -static unsigned char const prime_offset[] = -{ - 0, 0, 1, 1, 3, 1, 3, 1, 5, 3, 3, 9, 3, 1, 3, 19, 15, 1, 5, 1, 3, 9, 3, - 15, 3, 39, 5, 39, 57, 3, 35, 1, 5, 9, 41, 31, 5, 25, 45, 7, 87, 21, - 11, 57, 17, 55, 21, 115, 59, 81, 27, 129, 47, 111, 33, 55, 5, 13, 27, - 55, 93, 1, 57, 25 -}; - -/* Verify that this host's size_t is not too wide for the above table. */ - -verify (enough_prime_offsets, - sizeof (size_t) * CHAR_BIT <= sizeof prime_offset); - -/* Given a vector of two file_data objects, read the file associated - with each one, and build the table of equivalence classes. - Return nonzero if either file appears to be a binary file. - If PRETEND_BINARY is nonzero, pretend they are binary regardless. */ - -bool -read_files (struct file_data filevec[], bool pretend_binary) -{ - int i; - bool skip_test = text | pretend_binary; - bool appears_binary = pretend_binary | sip (&filevec[0], skip_test); - - if (filevec[0].desc != filevec[1].desc) - appears_binary |= sip (&filevec[1], skip_test | appears_binary); - else - { - filevec[1].buffer = filevec[0].buffer; - filevec[1].bufsize = filevec[0].bufsize; - filevec[1].buffered = filevec[0].buffered; - } - if (appears_binary) - { - set_binary_mode (filevec[0].desc, 1); - set_binary_mode (filevec[1].desc, 1); - return 1; - } - - find_identical_ends (filevec); - - equivs_alloc = filevec[0].alloc_lines + filevec[1].alloc_lines + 1; - if (PTRDIFF_MAX / sizeof *equivs <= equivs_alloc) - xalloc_die (); - equivs = xmalloc (equivs_alloc * sizeof *equivs); - /* Equivalence class 0 is permanently safe for lines that were not - hashed. Real equivalence classes start at 1. */ - equivs_index = 1; - - /* Allocate (one plus) a prime number of hash buckets. Use a prime - number between 1/3 and 2/3 of the value of equiv_allocs, - approximately. */ - for (i = 9; (size_t) 1 << i < equivs_alloc / 3; i++) - continue; - nbuckets = ((size_t) 1 << i) - prime_offset[i]; - if (PTRDIFF_MAX / sizeof *buckets <= nbuckets) - xalloc_die (); - buckets = zalloc ((nbuckets + 1) * sizeof *buckets); - buckets++; - - for (i = 0; i < 2; i++) - find_and_hash_each_line (&filevec[i]); - - filevec[0].equiv_max = filevec[1].equiv_max = equivs_index; - - free (equivs); - free (buckets - 1); - - return 0; -} diff --git a/gnu/dist/diffutils/src/normal.c b/gnu/dist/diffutils/src/normal.c deleted file mode 100644 index be0a216115d..00000000000 --- a/gnu/dist/diffutils/src/normal.c +++ /dev/null @@ -1,73 +0,0 @@ -/* $NetBSD: normal.c,v 1.1.1.1 2003/01/26 00:43:17 wiz Exp $ */ - -/* Normal-format output routines for GNU DIFF. - - Copyright (C) 1988, 1989, 1993, 1995, 1998, 2001 Free Software - Foundation, Inc. - - This file is part of GNU DIFF. - - GNU DIFF is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU DIFF is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#include "diff.h" - -static void print_normal_hunk (struct change *); - -/* Print the edit-script SCRIPT as a normal diff. - INF points to an array of descriptions of the two files. */ - -void -print_normal_script (struct change *script) -{ - print_script (script, find_change, print_normal_hunk); -} - -/* Print a hunk of a normal diff. - This is a contiguous portion of a complete edit script, - describing changes in consecutive lines. */ - -static void -print_normal_hunk (struct change *hunk) -{ - lin first0, last0, first1, last1; - register lin i; - - /* Determine range of line numbers involved in each file. */ - enum changes changes = analyze_hunk (hunk, &first0, &last0, &first1, &last1); - if (!changes) - return; - - begin_output (); - - /* Print out the line number header for this hunk */ - print_number_range (',', &files[0], first0, last0); - fprintf (outfile, "%c", change_letter[changes]); - print_number_range (',', &files[1], first1, last1); - fprintf (outfile, "\n"); - - /* Print the lines that the first file has. */ - if (changes & OLD) - for (i = first0; i <= last0; i++) - print_1_line ("<", &files[0].linbuf[i]); - - if (changes == CHANGED) - fprintf (outfile, "---\n"); - - /* Print the lines that the second file has. */ - if (changes & NEW) - for (i = first1; i <= last1; i++) - print_1_line (">", &files[1].linbuf[i]); -} diff --git a/gnu/dist/diffutils/src/sdiff.c b/gnu/dist/diffutils/src/sdiff.c deleted file mode 100644 index b69fecec789..00000000000 --- a/gnu/dist/diffutils/src/sdiff.c +++ /dev/null @@ -1,1225 +0,0 @@ -/* $NetBSD: sdiff.c,v 1.2 2006/02/18 22:42:12 apb Exp $ */ - -/* sdiff - side-by-side merge of file differences - - Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 2001, 2002 Free - Software Foundation, Inc. - - This file is part of GNU DIFF. - - GNU DIFF is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU DIFF is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#include "system.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static char const authorship_msgid[] = N_("Written by Thomas Lord."); - -static char const copyright_string[] = - "Copyright (C) 2002 Free Software Foundation, Inc."; - -extern char const version_string[]; - -/* Size of chunks read from files which must be parsed into lines. */ -#define SDIFF_BUFSIZE ((size_t) 65536) - -char *program_name; - -static char const *editor_program = DEFAULT_EDITOR_PROGRAM; -static char const **diffargv; - -static char * volatile tmpname; -static FILE *tmp; - -#if HAVE_WORKING_FORK || HAVE_WORKING_VFORK -static pid_t volatile diffpid; -#endif - -struct line_filter; - -static RETSIGTYPE catchsig (int); -static bool edit (struct line_filter *, char const *, lin, lin, struct line_filter *, char const *, lin, lin, FILE *); -static bool interact (struct line_filter *, struct line_filter *, char const *, struct line_filter *, char const *, FILE *); -static void checksigs (void); -static void diffarg (char const *); -static void fatal (char const *) __attribute__((noreturn)); -static void perror_fatal (char const *) __attribute__((noreturn)); -static void trapsigs (void); -static void untrapsig (int); - -#define NUM_SIGS (sizeof sigs / sizeof *sigs) -static int const sigs[] = { -#ifdef SIGHUP - SIGHUP, -#endif -#ifdef SIGQUIT - SIGQUIT, -#endif -#ifdef SIGTERM - SIGTERM, -#endif -#ifdef SIGXCPU - SIGXCPU, -#endif -#ifdef SIGXFSZ - SIGXFSZ, -#endif - SIGINT, - SIGPIPE -}; -#define handler_index_of_SIGINT (NUM_SIGS - 2) -#define handler_index_of_SIGPIPE (NUM_SIGS - 1) - -#if HAVE_SIGACTION - /* Prefer `sigaction' if available, since `signal' can lose signals. */ - static struct sigaction initial_action[NUM_SIGS]; -# define initial_handler(i) (initial_action[i].sa_handler) - static void signal_handler (int, RETSIGTYPE (*) (int)); -#else - static RETSIGTYPE (*initial_action[NUM_SIGS]) (); -# define initial_handler(i) (initial_action[i]) -# define signal_handler(sig, handler) signal (sig, handler) -#endif - -#if ! HAVE_SIGPROCMASK -# define sigset_t int -# define sigemptyset(s) (*(s) = 0) -# ifndef sigmask -# define sigmask(sig) (1 << ((sig) - 1)) -# endif -# define sigaddset(s, sig) (*(s) |= sigmask (sig)) -# ifndef SIG_BLOCK -# define SIG_BLOCK 0 -# endif -# ifndef SIG_SETMASK -# define SIG_SETMASK (! SIG_BLOCK) -# endif -# define sigprocmask(how, n, o) \ - ((how) == SIG_BLOCK ? *(o) = sigblock (*(n)) : sigsetmask (*(n))) -#endif - -static bool diraccess (char const *); -static int temporary_file (void); - -/* Options: */ - -/* Name of output file if -o specified. */ -static char const *output; - -/* Do not print common lines. */ -static bool suppress_common_lines; - -/* Value for the long option that does not have single-letter equivalents. */ -enum -{ - DIFF_PROGRAM_OPTION = CHAR_MAX + 1, - HELP_OPTION, - STRIP_TRAILING_CR_OPTION -}; - -static struct option const longopts[] = -{ - {"diff-program", 1, 0, DIFF_PROGRAM_OPTION}, - {"expand-tabs", 0, 0, 't'}, - {"help", 0, 0, HELP_OPTION}, - {"ignore-all-space", 0, 0, 'W'}, /* swap W and w for historical reasons */ - {"ignore-blank-lines", 0, 0, 'B'}, - {"ignore-case", 0, 0, 'i'}, - {"ignore-matching-lines", 1, 0, 'I'}, - {"ignore-space-change", 0, 0, 'b'}, - {"ignore-tab-expansion", 0, 0, 'E'}, - {"left-column", 0, 0, 'l'}, - {"minimal", 0, 0, 'd'}, - {"output", 1, 0, 'o'}, - {"speed-large-files", 0, 0, 'H'}, - {"strip-trailing-cr", 0, 0, STRIP_TRAILING_CR_OPTION}, - {"suppress-common-lines", 0, 0, 's'}, - {"text", 0, 0, 'a'}, - {"version", 0, 0, 'v'}, - {"width", 1, 0, 'w'}, - {0, 0, 0, 0} -}; - -static void try_help (char const *, char const *) __attribute__((noreturn)); -static void -try_help (char const *reason_msgid, char const *operand) -{ - if (reason_msgid) - error (0, 0, _(reason_msgid), operand); - error (EXIT_TROUBLE, 0, _("Try `%s --help' for more information."), - program_name); - abort (); -} - -static void -check_stdout (void) -{ - if (ferror (stdout)) - fatal ("write failed"); - else if (fclose (stdout) != 0) - perror_fatal (_("standard output")); -} - -static char const * const option_help_msgid[] = { - N_("-o FILE --output=FILE Operate interactively, sending output to FILE."), - "", - N_("-i --ignore-case Consider upper- and lower-case to be the same."), - N_("-E --ignore-tab-expansion Ignore changes due to tab expansion."), - N_("-b --ignore-space-change Ignore changes in the amount of white space."), - N_("-W --ignore-all-space Ignore all white space."), - N_("-B --ignore-blank-lines Ignore changes whose lines are all blank."), - N_("-I RE --ignore-matching-lines=RE Ignore changes whose lines all match RE."), - N_("--strip-trailing-cr Strip trailing carriage return on input."), - N_("-a --text Treat all files as text."), - "", - N_("-w NUM --width=NUM Output at most NUM (default 130) columns per line."), - N_("-l --left-column Output only the left column of common lines."), - N_("-s --suppress-common-lines Do not output common lines."), - "", - N_("-t --expand-tabs Expand tabs to spaces in output."), - "", - N_("-d --minimal Try hard to find a smaller set of changes."), - N_("-H --speed-large-files Assume large files and many scattered small changes."), - N_("--diff-program=PROGRAM Use PROGRAM to compare files."), - "", - N_("-v --version Output version info."), - N_("--help Output this help."), - 0 -}; - -static void -usage (void) -{ - char const * const *p; - - printf (_("Usage: %s [OPTION]... FILE1 FILE2\n"), program_name); - printf ("%s\n\n", _("Side-by-side merge of file differences.")); - for (p = option_help_msgid; *p; p++) - if (**p) - printf (" %s\n", _(*p)); - else - putchar ('\n'); - printf ("\n%s\n\n%s\n", - _("If a FILE is `-', read standard input."), - _("Report bugs to .")); -} - -static void -cleanup (void) -{ -#if HAVE_WORKING_FORK || HAVE_WORKING_VFORK - if (0 < diffpid) - kill (diffpid, SIGPIPE); -#endif - if (tmpname) - unlink (tmpname); -} - -static void exiterr (void) __attribute__((noreturn)); -static void -exiterr (void) -{ - cleanup (); - untrapsig (0); - checksigs (); - exit (EXIT_TROUBLE); -} - -static void -fatal (char const *msgid) -{ - error (0, 0, "%s", _(msgid)); - exiterr (); -} - -static void -perror_fatal (char const *msg) -{ - int e = errno; - checksigs (); - error (0, e, "%s", msg); - exiterr (); -} - -static void -check_child_status (int werrno, int wstatus, int max_ok_status, - char const *subsidiary_program) -{ - int status = (! werrno && WIFEXITED (wstatus) - ? WEXITSTATUS (wstatus) - : INT_MAX); - - if (max_ok_status < status) - { - error (0, werrno, - _(status == 126 - ? "subsidiary program `%s' could not be invoked" - : status == 127 - ? "subsidiary program `%s' not found" - : status == INT_MAX - ? "subsidiary program `%s' failed" - : "subsidiary program `%s' failed (exit status %d)"), - subsidiary_program, status); - exiterr (); - } -} - -static FILE * -ck_fopen (char const *fname, char const *type) -{ - FILE *r = fopen (fname, type); - if (! r) - perror_fatal (fname); - return r; -} - -static void -ck_fclose (FILE *f) -{ - if (fclose (f)) - perror_fatal ("fclose"); -} - -static size_t -ck_fread (char *buf, size_t size, FILE *f) -{ - size_t r = fread (buf, sizeof (char), size, f); - if (r == 0 && ferror (f)) - perror_fatal (_("read failed")); - return r; -} - -static void -ck_fwrite (char const *buf, size_t size, FILE *f) -{ - if (fwrite (buf, sizeof (char), size, f) != size) - perror_fatal (_("write failed")); -} - -static void -ck_fflush (FILE *f) -{ - if (fflush (f) != 0) - perror_fatal (_("write failed")); -} - -static char const * -expand_name (char *name, bool is_dir, char const *other_name) -{ - if (strcmp (name, "-") == 0) - fatal ("cannot interactively merge standard input"); - if (! is_dir) - return name; - else - { - /* Yield NAME/BASE, where BASE is OTHER_NAME's basename. */ - char const *base = base_name (other_name); - size_t namelen = strlen (name), baselen = strlen (base); - bool insert_slash = *base_name (name) && name[namelen - 1] != '/'; - char *r = xmalloc (namelen + insert_slash + baselen + 1); - memcpy (r, name, namelen); - r[namelen] = '/'; - memcpy (r + namelen + insert_slash, base, baselen + 1); - return r; - } -} - - - -struct line_filter { - FILE *infile; - char *bufpos; - char *buffer; - char *buflim; -}; - -static void -lf_init (struct line_filter *lf, FILE *infile) -{ - lf->infile = infile; - lf->bufpos = lf->buffer = lf->buflim = xmalloc (SDIFF_BUFSIZE + 1); - lf->buflim[0] = '\n'; -} - -/* Fill an exhausted line_filter buffer from its INFILE */ -static size_t -lf_refill (struct line_filter *lf) -{ - size_t s = ck_fread (lf->buffer, SDIFF_BUFSIZE, lf->infile); - lf->bufpos = lf->buffer; - lf->buflim = lf->buffer + s; - lf->buflim[0] = '\n'; - checksigs (); - return s; -} - -/* Advance LINES on LF's infile, copying lines to OUTFILE */ -static void -lf_copy (struct line_filter *lf, lin lines, FILE *outfile) -{ - char *start = lf->bufpos; - - while (lines) - { - lf->bufpos = (char *) memchr (lf->bufpos, '\n', lf->buflim - lf->bufpos); - if (! lf->bufpos) - { - ck_fwrite (start, lf->buflim - start, outfile); - if (! lf_refill (lf)) - return; - start = lf->bufpos; - } - else - { - --lines; - ++lf->bufpos; - } - } - - ck_fwrite (start, lf->bufpos - start, outfile); -} - -/* Advance LINES on LF's infile without doing output */ -static void -lf_skip (struct line_filter *lf, lin lines) -{ - while (lines) - { - lf->bufpos = (char *) memchr (lf->bufpos, '\n', lf->buflim - lf->bufpos); - if (! lf->bufpos) - { - if (! lf_refill (lf)) - break; - } - else - { - --lines; - ++lf->bufpos; - } - } -} - -/* Snarf a line into a buffer. Return EOF if EOF, 0 if error, 1 if OK. */ -static int -lf_snarf (struct line_filter *lf, char *buffer, size_t bufsize) -{ - for (;;) - { - char *start = lf->bufpos; - char *next = (char *) memchr (start, '\n', lf->buflim + 1 - start); - size_t s = next - start; - if (bufsize <= s) - return 0; - memcpy (buffer, start, s); - if (next < lf->buflim) - { - buffer[s] = 0; - lf->bufpos = next + 1; - return 1; - } - if (! lf_refill (lf)) - return s ? 0 : EOF; - buffer += s; - bufsize -= s; - } -} - - - -int -main (int argc, char *argv[]) -{ - int opt; - char const *prog; - - exit_failure = EXIT_TROUBLE; - initialize_main (&argc, &argv); - program_name = argv[0]; - setlocale (LC_ALL, ""); - bindtextdomain (PACKAGE, LOCALEDIR); - textdomain (PACKAGE); - c_stack_action (c_stack_die); - - prog = getenv ("EDITOR"); - if (prog) - editor_program = prog; - - diffarg (DEFAULT_DIFF_PROGRAM); - - /* parse command line args */ - while ((opt = getopt_long (argc, argv, "abBdHiI:lo:stvw:W", longopts, 0)) - != -1) - { - switch (opt) - { - case 'a': - diffarg ("-a"); - break; - - case 'b': - diffarg ("-b"); - break; - - case 'B': - diffarg ("-B"); - break; - - case 'd': - diffarg ("-d"); - break; - - case 'E': - diffarg ("-E"); - break; - - case 'H': - diffarg ("-H"); - break; - - case 'i': - diffarg ("-i"); - break; - - case 'I': - diffarg ("-I"); - diffarg (optarg); - break; - - case 'l': - diffarg ("--left-column"); - break; - - case 'o': - output = optarg; - break; - - case 's': - suppress_common_lines = 1; - break; - - case 't': - diffarg ("-t"); - break; - - case 'v': - printf ("sdiff %s\n%s\n\n%s\n\n%s\n", - version_string, copyright_string, - _(free_software_msgid), _(authorship_msgid)); - check_stdout (); - return EXIT_SUCCESS; - - case 'w': - diffarg ("-W"); - diffarg (optarg); - break; - - case 'W': - diffarg ("-w"); - break; - - case DIFF_PROGRAM_OPTION: - diffargv[0] = optarg; - break; - - case HELP_OPTION: - usage (); - check_stdout (); - return EXIT_SUCCESS; - - case STRIP_TRAILING_CR_OPTION: - diffarg ("--strip-trailing-cr"); - break; - - default: - try_help (0, 0); - } - } - - if (argc - optind != 2) - { - if (argc - optind < 2) - try_help ("missing operand after `%s'", argv[argc - 1]); - else - try_help ("extra operand `%s'", argv[optind + 2]); - } - - if (! output) - { - /* easy case: diff does everything for us */ - if (suppress_common_lines) - diffarg ("--suppress-common-lines"); - diffarg ("-y"); - diffarg ("--"); - diffarg (argv[optind]); - diffarg (argv[optind + 1]); - diffarg (0); - execvp (diffargv[0], (char **) diffargv); - perror_fatal (diffargv[0]); - } - else - { - char const *lname, *rname; - FILE *left, *right, *out, *diffout; - bool interact_ok; - struct line_filter lfilt; - struct line_filter rfilt; - struct line_filter diff_filt; - bool leftdir = diraccess (argv[optind]); - bool rightdir = diraccess (argv[optind + 1]); - - if (leftdir & rightdir) - fatal ("both files to be compared are directories"); - - lname = expand_name (argv[optind], leftdir, argv[optind + 1]); - left = ck_fopen (lname, "r"); - rname = expand_name (argv[optind + 1], rightdir, argv[optind]); - right = ck_fopen (rname, "r"); - out = ck_fopen (output, "w"); - - diffarg ("--sdiff-merge-assist"); - diffarg ("--"); - diffarg (argv[optind]); - diffarg (argv[optind + 1]); - diffarg (0); - - trapsigs (); - -#if ! (HAVE_WORKING_FORK || HAVE_WORKING_VFORK) - { - size_t cmdsize = 1; - char *p, *command; - int i; - - for (i = 0; diffargv[i]; i++) - cmdsize += quote_system_arg (0, diffargv[i]) + 1; - command = p = xmalloc (cmdsize); - for (i = 0; diffargv[i]; i++) - { - p += quote_system_arg (p, diffargv[i]); - *p++ = ' '; - } - p[-1] = 0; - errno = 0; - diffout = popen (command, "r"); - if (! diffout) - perror_fatal (command); - free (command); - } -#else - { - int diff_fds[2]; -# if HAVE_WORKING_VFORK - sigset_t procmask; - sigset_t blocked; -# endif - - if (pipe (diff_fds) != 0) - perror_fatal ("pipe"); - -# if HAVE_WORKING_VFORK - /* Block SIGINT and SIGPIPE. */ - sigemptyset (&blocked); - sigaddset (&blocked, SIGINT); - sigaddset (&blocked, SIGPIPE); - sigprocmask (SIG_BLOCK, &blocked, &procmask); -# endif - diffpid = vfork (); - if (diffpid < 0) - perror_fatal ("fork"); - if (! diffpid) - { - /* Alter the child's SIGINT and SIGPIPE handlers; - this may munge the parent. - The child ignores SIGINT in case the user interrupts the editor. - The child does not ignore SIGPIPE, even if the parent does. */ - if (initial_handler (handler_index_of_SIGINT) != SIG_IGN) - signal_handler (SIGINT, SIG_IGN); - signal_handler (SIGPIPE, SIG_DFL); -# if HAVE_WORKING_VFORK - /* Stop blocking SIGINT and SIGPIPE in the child. */ - sigprocmask (SIG_SETMASK, &procmask, 0); -# endif - close (diff_fds[0]); - if (diff_fds[1] != STDOUT_FILENO) - { - dup2 (diff_fds[1], STDOUT_FILENO); - close (diff_fds[1]); - } - - execvp (diffargv[0], (char **) diffargv); - _exit (errno == ENOEXEC ? 126 : 127); - } - -# if HAVE_WORKING_VFORK - /* Restore the parent's SIGINT and SIGPIPE behavior. */ - if (initial_handler (handler_index_of_SIGINT) != SIG_IGN) - signal_handler (SIGINT, catchsig); - if (initial_handler (handler_index_of_SIGPIPE) != SIG_IGN) - signal_handler (SIGPIPE, catchsig); - else - signal_handler (SIGPIPE, SIG_IGN); - - /* Stop blocking SIGINT and SIGPIPE in the parent. */ - sigprocmask (SIG_SETMASK, &procmask, 0); -# endif - - close (diff_fds[1]); - diffout = fdopen (diff_fds[0], "r"); - if (! diffout) - perror_fatal ("fdopen"); - } -#endif - - lf_init (&diff_filt, diffout); - lf_init (&lfilt, left); - lf_init (&rfilt, right); - - interact_ok = interact (&diff_filt, &lfilt, lname, &rfilt, rname, out); - - ck_fclose (left); - ck_fclose (right); - ck_fclose (out); - - { - int wstatus; - int werrno = 0; - -#if ! (HAVE_WORKING_FORK || HAVE_WORKING_VFORK) - wstatus = pclose (diffout); - if (wstatus == -1) - werrno = errno; -#else - ck_fclose (diffout); - while (waitpid (diffpid, &wstatus, 0) < 0) - if (errno == EINTR) - checksigs (); - else - perror_fatal ("waitpid"); - diffpid = 0; -#endif - - if (tmpname) - { - unlink (tmpname); - tmpname = 0; - } - - if (! interact_ok) - exiterr (); - - check_child_status (werrno, wstatus, EXIT_FAILURE, diffargv[0]); - untrapsig (0); - checksigs (); - exit (WEXITSTATUS (wstatus)); - } - } - return EXIT_SUCCESS; /* Fool `-Wall'. */ -} - -static void -diffarg (char const *a) -{ - static size_t diffargs, diffarglim; - - if (diffargs == diffarglim) - { - if (! diffarglim) - diffarglim = 16; - else if (PTRDIFF_MAX / (2 * sizeof *diffargv) <= diffarglim) - xalloc_die (); - else - diffarglim *= 2; - diffargv = xrealloc (diffargv, diffarglim * sizeof *diffargv); - } - diffargv[diffargs++] = a; -} - - - - -/* Signal handling */ - -static bool volatile ignore_SIGINT; -static int volatile signal_received; -static bool sigs_trapped; - -static RETSIGTYPE -catchsig (int s) -{ -#if ! HAVE_SIGACTION - signal (s, SIG_IGN); -#endif - if (! (s == SIGINT && ignore_SIGINT)) - signal_received = s; -} - -#if HAVE_SIGACTION -static struct sigaction catchaction; - -static void -signal_handler (int sig, RETSIGTYPE (*handler) (int)) -{ - catchaction.sa_handler = handler; - sigaction (sig, &catchaction, 0); -} -#endif - -static void -trapsigs (void) -{ - int i; - -#if HAVE_SIGACTION - catchaction.sa_flags = SA_RESTART; - sigemptyset (&catchaction.sa_mask); - for (i = 0; i < NUM_SIGS; i++) - sigaddset (&catchaction.sa_mask, sigs[i]); -#endif - - for (i = 0; i < NUM_SIGS; i++) - { -#if HAVE_SIGACTION - sigaction (sigs[i], 0, &initial_action[i]); -#else - initial_action[i] = signal (sigs[i], SIG_IGN); -#endif - if (initial_handler (i) != SIG_IGN) - signal_handler (sigs[i], catchsig); - } - -#ifdef SIGCHLD - /* System V fork+wait does not work if SIGCHLD is ignored. */ - signal (SIGCHLD, SIG_DFL); -#endif - - sigs_trapped = 1; -} - -/* Untrap signal S, or all trapped signals if S is zero. */ -static void -untrapsig (int s) -{ - int i; - - if (sigs_trapped) - for (i = 0; i < NUM_SIGS; i++) - if ((! s || sigs[i] == s) && initial_handler (i) != SIG_IGN) -#if HAVE_SIGACTION - sigaction (sigs[i], &initial_action[i], 0); -#else - signal (sigs[i], initial_action[i]); -#endif -} - -/* Exit if a signal has been received. */ -static void -checksigs (void) -{ - int s = signal_received; - if (s) - { - cleanup (); - - /* Yield an exit status indicating that a signal was received. */ - untrapsig (s); - kill (getpid (), s); - - /* That didn't work, so exit with error status. */ - exit (EXIT_TROUBLE); - } -} - - -static void -give_help (void) -{ - fprintf (stderr, "%s", _("\ -ed:\tEdit then use both versions, each decorated with a header.\n\ -eb:\tEdit then use both versions.\n\ -el:\tEdit then use the left version.\n\ -er:\tEdit then use the right version.\n\ -e:\tEdit a new version.\n\ -l:\tUse the left version.\n\ -r:\tUse the right version.\n\ -s:\tSilently include common lines.\n\ -v:\tVerbosely include common lines.\n\ -q:\tQuit.\n\ -")); -} - -static int -skip_white (void) -{ - int c; - for (;;) - { - c = getchar (); - if (! ISSPACE (c) || c == '\n') - break; - checksigs (); - } - if (ferror (stdin)) - perror_fatal (_("read failed")); - return c; -} - -static void -flush_line (void) -{ - int c; - while ((c = getchar ()) != '\n' && c != EOF) - continue; - if (ferror (stdin)) - perror_fatal (_("read failed")); -} - - -/* interpret an edit command */ -static bool -edit (struct line_filter *left, char const *lname, lin lline, lin llen, - struct line_filter *right, char const *rname, lin rline, lin rlen, - FILE *outfile) -{ - for (;;) - { - int cmd0, cmd1; - bool gotcmd = 0; - - cmd1 = 0; /* Pacify `gcc -W'. */ - - while (! gotcmd) - { - if (putchar ('%') != '%') - perror_fatal (_("write failed")); - ck_fflush (stdout); - - cmd0 = skip_white (); - switch (cmd0) - { - case 'l': case 'r': case 's': case 'v': case 'q': - if (skip_white () != '\n') - { - give_help (); - flush_line (); - continue; - } - gotcmd = 1; - break; - - case 'e': - cmd1 = skip_white (); - switch (cmd1) - { - case 'b': case 'd': case 'l': case 'r': - if (skip_white () != '\n') - { - give_help (); - flush_line (); - continue; - } - gotcmd = 1; - break; - case '\n': - gotcmd = 1; - break; - default: - give_help (); - flush_line (); - continue; - } - break; - - case EOF: - if (feof (stdin)) - { - gotcmd = 1; - cmd0 = 'q'; - break; - } - /* Fall through. */ - default: - flush_line (); - /* Fall through. */ - case '\n': - give_help (); - continue; - } - } - - switch (cmd0) - { - case 'l': - lf_copy (left, llen, outfile); - lf_skip (right, rlen); - return 1; - case 'r': - lf_copy (right, rlen, outfile); - lf_skip (left, llen); - return 1; - case 's': - suppress_common_lines = 1; - break; - case 'v': - suppress_common_lines = 0; - break; - case 'q': - return 0; - case 'e': - { - int fd; - - if (tmpname) - tmp = fopen (tmpname, "w"); - else - { - if ((fd = temporary_file ()) < 0) - perror_fatal ("mkstemp"); - tmp = fdopen (fd, "w"); - } - - if (! tmp) - perror_fatal (tmpname); - - switch (cmd1) - { - case 'd': - if (llen) - { - if (llen == 1) - fprintf (tmp, "--- %s %ld\n", lname, (long) lline); - else - fprintf (tmp, "--- %s %ld,%ld\n", lname, - (long) lline, (long) (lline + llen - 1)); - } - /* Fall through. */ - case 'b': case 'l': - lf_copy (left, llen, tmp); - break; - - default: - lf_skip (left, llen); - break; - } - - switch (cmd1) - { - case 'd': - if (rlen) - { - if (rlen == 1) - fprintf (tmp, "+++ %s %ld\n", rname, (long) rline); - else - fprintf (tmp, "+++ %s %ld,%ld\n", rname, - (long) rline, (long) (rline + rlen - 1)); - } - /* Fall through. */ - case 'b': case 'r': - lf_copy (right, rlen, tmp); - break; - - default: - lf_skip (right, rlen); - break; - } - - ck_fclose (tmp); - - { - int wstatus; - int werrno = 0; - ignore_SIGINT = 1; - checksigs (); - - { -#if ! (HAVE_WORKING_FORK || HAVE_WORKING_VFORK) - char *command = - xmalloc (quote_system_arg (0, editor_program) - + 1 + strlen (tmpname) + 1); - sprintf (command + quote_system_arg (command, editor_program), - " %s", tmpname); - wstatus = system (command); - if (wstatus == -1) - werrno = errno; - free (command); -#else - pid_t pid; - - pid = vfork (); - if (pid == 0) - { - char const *argv[3]; - int i = 0; - - argv[i++] = editor_program; - argv[i++] = tmpname; - argv[i] = 0; - - execvp (editor_program, (char **) argv); - _exit (errno == ENOEXEC ? 126 : 127); - } - - if (pid < 0) - perror_fatal ("fork"); - - while (waitpid (pid, &wstatus, 0) < 0) - if (errno == EINTR) - checksigs (); - else - perror_fatal ("waitpid"); -#endif - } - - ignore_SIGINT = 0; - check_child_status (werrno, wstatus, EXIT_SUCCESS, - editor_program); - } - - { - char buf[SDIFF_BUFSIZE]; - size_t size; - tmp = ck_fopen (tmpname, "r"); - while ((size = ck_fread (buf, SDIFF_BUFSIZE, tmp)) != 0) - { - checksigs (); - ck_fwrite (buf, size, outfile); - } - ck_fclose (tmp); - } - return 1; - } - default: - give_help (); - break; - } - } -} - - - -/* Alternately reveal bursts of diff output and handle user commands. */ -static bool -interact (struct line_filter *diff, - struct line_filter *left, char const *lname, - struct line_filter *right, char const *rname, - FILE *outfile) -{ - lin lline = 1, rline = 1; - - for (;;) - { - char diff_help[256]; - int snarfed = lf_snarf (diff, diff_help, sizeof diff_help); - - if (snarfed <= 0) - return snarfed != 0; - - checksigs (); - - if (diff_help[0] == ' ') - puts (diff_help + 1); - else - { - char *numend; - uintmax_t val; - lin llen, rlen, lenmax; - errno = 0; - llen = val = strtoumax (diff_help + 1, &numend, 10); - if (llen < 0 || llen != val || errno || *numend != ',') - fatal (diff_help); - rlen = val = strtoumax (numend + 1, &numend, 10); - if (rlen < 0 || rlen != val || errno || *numend) - fatal (diff_help); - - lenmax = MAX (llen, rlen); - - switch (diff_help[0]) - { - case 'i': - if (suppress_common_lines) - lf_skip (diff, lenmax); - else - lf_copy (diff, lenmax, stdout); - - lf_copy (left, llen, outfile); - lf_skip (right, rlen); - break; - - case 'c': - lf_copy (diff, lenmax, stdout); - if (! edit (left, lname, lline, llen, - right, rname, rline, rlen, - outfile)) - return 0; - break; - - default: - fatal (diff_help); - } - - lline += llen; - rline += rlen; - } - } -} - -/* Return nonzero if DIR is an existing directory. */ -static bool -diraccess (char const *dir) -{ - struct stat buf; - return stat (dir, &buf) == 0 && S_ISDIR (buf.st_mode); -} - -#ifndef P_tmpdir -# define P_tmpdir "/tmp" -#endif -#ifndef TMPDIR_ENV -# define TMPDIR_ENV "TMPDIR" -#endif - -/* Open a temporary file and return its file descriptor. Put into - tmpname the address of a newly allocated buffer that holds the - file's name. Use the prefix "sdiff". */ -static int -temporary_file (void) -{ - char const *tmpdir = getenv (TMPDIR_ENV); - char const *dir = tmpdir ? tmpdir : P_tmpdir; - char *buf = xmalloc (strlen (dir) + 1 + 5 + 6 + 1); - int fd; - int e; - sigset_t procmask; - sigset_t blocked; - sprintf (buf, "%s/sdiffXXXXXX", dir); - sigemptyset (&blocked); - sigaddset (&blocked, SIGINT); - sigprocmask (SIG_BLOCK, &blocked, &procmask); - fd = mkstemp (buf); - e = errno; - if (0 <= fd) - tmpname = buf; - sigprocmask (SIG_SETMASK, &procmask, 0); - errno = e; - return fd; -} diff --git a/gnu/dist/diffutils/src/side.c b/gnu/dist/diffutils/src/side.c deleted file mode 100644 index 1ad8c4ec86e..00000000000 --- a/gnu/dist/diffutils/src/side.c +++ /dev/null @@ -1,285 +0,0 @@ -/* $NetBSD: side.c,v 1.1.1.1 2003/01/26 00:43:17 wiz Exp $ */ - -/* sdiff-format output routines for GNU DIFF. - - Copyright (C) 1991, 1992, 1993, 1998, 2001, 2002 Free Software - Foundation, Inc. - - This file is part of GNU DIFF. - - GNU DIFF is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY. No author or distributor - accepts responsibility to anyone for the consequences of using it - or for whether it serves any particular purpose or works at all, - unless he says so in writing. Refer to the GNU DIFF General Public - License for full details. - - Everyone is granted permission to copy, modify and redistribute - GNU DIFF, but only under the conditions described in the - GNU DIFF General Public License. A copy of this license is - supposed to have been given to you along with GNU DIFF so you - can know your rights and responsibilities. It should be in a - file named COPYING. Among other things, the copyright notice - and this notice must be preserved on all copies. */ - -#include "diff.h" - -static void print_sdiff_common_lines (lin, lin); -static void print_sdiff_hunk (struct change *); - -/* Next line number to be printed in the two input files. */ -static lin next0, next1; - -/* Print the edit-script SCRIPT as a sdiff style output. */ - -void -print_sdiff_script (struct change *script) -{ - begin_output (); - - next0 = next1 = - files[0].prefix_lines; - print_script (script, find_change, print_sdiff_hunk); - - print_sdiff_common_lines (files[0].valid_lines, files[1].valid_lines); -} - -/* Tab from column FROM to column TO, where FROM <= TO. Yield TO. */ - -static unsigned int -tab_from_to (unsigned int from, unsigned int to) -{ - FILE *out = outfile; - unsigned int tab; - - if (!expand_tabs) - for (tab = from + TAB_WIDTH - from % TAB_WIDTH; tab <= to; tab += TAB_WIDTH) - { - putc ('\t', out); - from = tab; - } - while (from++ < to) - putc (' ', out); - return to; -} - -/* - * Print the text for half an sdiff line. This means truncate to width - * observing tabs, and trim a trailing newline. Returns the last column - * written (not the number of chars). - */ -static unsigned int -print_half_line (char const *const *line, unsigned int indent, - unsigned int out_bound) -{ - FILE *out = outfile; - register unsigned int in_position = 0; - register unsigned int out_position = 0; - register char const *text_pointer = line[0]; - register char const *text_limit = line[1]; - - while (text_pointer < text_limit) - { - register unsigned char c = *text_pointer++; - - switch (c) - { - case '\t': - { - unsigned int spaces = TAB_WIDTH - in_position % TAB_WIDTH; - if (in_position == out_position) - { - unsigned int tabstop = out_position + spaces; - if (expand_tabs) - { - if (out_bound < tabstop) - tabstop = out_bound; - for (; out_position < tabstop; out_position++) - putc (' ', out); - } - else - if (tabstop < out_bound) - { - out_position = tabstop; - putc (c, out); - } - } - in_position += spaces; - } - break; - - case '\r': - { - putc (c, out); - tab_from_to (0, indent); - in_position = out_position = 0; - } - break; - - case '\b': - if (in_position != 0 && --in_position < out_bound) - { - if (out_position <= in_position) - /* Add spaces to make up for suppressed tab past out_bound. */ - for (; out_position < in_position; out_position++) - putc (' ', out); - else - { - out_position = in_position; - putc (c, out); - } - } - break; - - case '\f': - case '\v': - control_char: - if (in_position < out_bound) - putc (c, out); - break; - - default: - if (! ISPRINT (c)) - goto control_char; - /* falls through */ - case ' ': - if (in_position++ < out_bound) - { - out_position = in_position; - putc (c, out); - } - break; - - case '\n': - return out_position; - } - } - - return out_position; -} - -/* - * Print side by side lines with a separator in the middle. - * 0 parameters are taken to indicate white space text. - * Blank lines that can easily be caught are reduced to a single newline. - */ - -static void -print_1sdiff_line (char const *const *left, char sep, - char const *const *right) -{ - FILE *out = outfile; - unsigned int hw = sdiff_half_width, c2o = sdiff_column2_offset; - unsigned int col = 0; - bool put_newline = 0; - - if (left) - { - put_newline |= left[1][-1] == '\n'; - col = print_half_line (left, 0, hw); - } - - if (sep != ' ') - { - col = tab_from_to (col, (hw + c2o - 1) / 2) + 1; - if (sep == '|' && put_newline != (right[1][-1] == '\n')) - sep = put_newline ? '/' : '\\'; - putc (sep, out); - } - - if (right) - { - put_newline |= right[1][-1] == '\n'; - if (**right != '\n') - { - col = tab_from_to (col, c2o); - print_half_line (right, col, hw); - } - } - - if (put_newline) - putc ('\n', out); -} - -/* Print lines common to both files in side-by-side format. */ -static void -print_sdiff_common_lines (lin limit0, lin limit1) -{ - lin i0 = next0, i1 = next1; - - if (!suppress_common_lines && (i0 != limit0 || i1 != limit1)) - { - if (sdiff_merge_assist) - { - long len0 = limit0 - i0; - long len1 = limit1 - i1; - fprintf (outfile, "i%ld,%ld\n", len0, len1); - } - - if (!left_column) - { - while (i0 != limit0 && i1 != limit1) - print_1sdiff_line (&files[0].linbuf[i0++], ' ', - &files[1].linbuf[i1++]); - while (i1 != limit1) - print_1sdiff_line (0, ')', &files[1].linbuf[i1++]); - } - while (i0 != limit0) - print_1sdiff_line (&files[0].linbuf[i0++], '(', 0); - } - - next0 = limit0; - next1 = limit1; -} - -/* Print a hunk of an sdiff diff. - This is a contiguous portion of a complete edit script, - describing changes in consecutive lines. */ - -static void -print_sdiff_hunk (struct change *hunk) -{ - lin first0, last0, first1, last1; - register lin i, j; - - /* Determine range of line numbers involved in each file. */ - enum changes changes = - analyze_hunk (hunk, &first0, &last0, &first1, &last1); - if (!changes) - return; - - /* Print out lines up to this change. */ - print_sdiff_common_lines (first0, first1); - - if (sdiff_merge_assist) - { - long len0 = last0 - first0 + 1; - long len1 = last1 - first1 + 1; - fprintf (outfile, "c%ld,%ld\n", len0, len1); - } - - /* Print ``xxx | xxx '' lines */ - if (changes == CHANGED) - { - for (i = first0, j = first1; i <= last0 && j <= last1; i++, j++) - print_1sdiff_line (&files[0].linbuf[i], '|', &files[1].linbuf[j]); - changes = (i <= last0 ? OLD : 0) + (j <= last1 ? NEW : 0); - next0 = first0 = i; - next1 = first1 = j; - } - - /* Print `` > xxx '' lines */ - if (changes & NEW) - { - for (j = first1; j <= last1; ++j) - print_1sdiff_line (0, '>', &files[1].linbuf[j]); - next1 = j; - } - - /* Print ``xxx < '' lines */ - if (changes & OLD) - { - for (i = first0; i <= last0; ++i) - print_1sdiff_line (&files[0].linbuf[i], '<', 0); - next0 = i; - } -} diff --git a/gnu/dist/diffutils/src/system.h b/gnu/dist/diffutils/src/system.h deleted file mode 100644 index 790f239fba6..00000000000 --- a/gnu/dist/diffutils/src/system.h +++ /dev/null @@ -1,403 +0,0 @@ -/* $NetBSD: system.h,v 1.2 2006/01/14 09:18:17 apb Exp $ */ - -/* System dependent declarations. - - Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1998, 2001, 2002 - Free Software Foundation, Inc. - - This file is part of GNU DIFF. - - GNU DIFF is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU DIFF is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#include - -/* Don't bother to support K&R C compilers any more; it's not worth - the trouble. These macros prevent some library modules from being - compiled in K&R C mode. */ -#define PARAMS(Args) Args -#define PROTOTYPES 1 - -/* Define `__attribute__' and `volatile' first - so that they're used consistently in all system includes. */ -#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 6) || __STRICT_ANSI__ -# define __attribute__(x) -#endif -#if defined const && !defined volatile -# define volatile -#endif - -/* Verify a requirement at compile-time (unlike assert, which is runtime). */ -#define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; } - - -/* Determine whether an integer type is signed, and its bounds. - This code assumes two's (or one's!) complement with no holes. */ - -/* The extra casts work around common compiler bugs, - e.g. Cray C 5.0.3.0 when t == time_t. */ -#ifndef TYPE_SIGNED -# define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) -#endif -#ifndef TYPE_MINIMUM -# define TYPE_MINIMUM(t) ((t) (TYPE_SIGNED (t) \ - ? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) \ - : (t) 0)) -#endif -#ifndef TYPE_MAXIMUM -# define TYPE_MAXIMUM(t) ((t) (~ (t) 0 - TYPE_MINIMUM (t))) -#endif - -#include -#include - -#if STAT_MACROS_BROKEN -# undef S_ISBLK -# undef S_ISCHR -# undef S_ISDIR -# undef S_ISFIFO -# undef S_ISREG -# undef S_ISSOCK -#endif -#ifndef S_ISDIR -# define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) -#endif -#ifndef S_ISREG -# define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG) -#endif -#if !defined S_ISBLK && defined S_IFBLK -# define S_ISBLK(mode) (((mode) & S_IFMT) == S_IFBLK) -#endif -#if !defined S_ISCHR && defined S_IFCHR -# define S_ISCHR(mode) (((mode) & S_IFMT) == S_IFCHR) -#endif -#if !defined S_ISFIFO && defined S_IFFIFO -# define S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFFIFO) -#endif -#if !defined S_ISSOCK && defined S_IFSOCK -# define S_ISSOCK(mode) (((mode) & S_IFMT) == S_IFSOCK) -#endif -#ifndef S_IXUSR -# define S_IXUSR 0100 -#endif -#ifndef S_IXGRP -# define S_IXGRP 0010 -#endif -#ifndef S_IXOTH -# define S_IXOTH 0001 -#endif - -#if HAVE_UNISTD_H -# include -#endif - -#ifndef SEEK_SET -# define SEEK_SET 0 -#endif -#ifndef SEEK_CUR -# define SEEK_CUR 1 -#endif - -#ifndef STDIN_FILENO -# define STDIN_FILENO 0 -#endif -#ifndef STDOUT_FILENO -# define STDOUT_FILENO 1 -#endif -#ifndef STDERR_FILENO -# define STDERR_FILENO 2 -#endif - -#if HAVE_TIME_H -# include -#else -# include -#endif - -#if HAVE_FCNTL_H -# include -#else -# if HAVE_SYS_FILE_H -# include -# endif -#endif - -#if !HAVE_DUP2 -# define dup2(f, t) (close (t), fcntl (f, F_DUPFD, t)) -#endif - -#ifndef O_RDONLY -# define O_RDONLY 0 -#endif -#ifndef O_RDWR -# define O_RDWR 2 -#endif -#ifndef S_IRUSR -# define S_IRUSR 0400 -#endif -#ifndef S_IWUSR -# define S_IWUSR 0200 -#endif - -#if HAVE_SYS_WAIT_H -# include -#endif -#ifndef WEXITSTATUS -# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8) -#endif -#ifndef WIFEXITED -# define WIFEXITED(stat_val) (((stat_val) & 255) == 0) -#endif - -#ifndef STAT_BLOCKSIZE -# if HAVE_STRUCT_STAT_ST_BLKSIZE -# define STAT_BLOCKSIZE(s) ((s).st_blksize) -# else -# define STAT_BLOCKSIZE(s) (8 * 1024) -# endif -#endif - -#if HAVE_DIRENT_H -# include -# define NAMLEN(dirent) strlen ((dirent)->d_name) -#else -# define dirent direct -# define NAMLEN(dirent) ((dirent)->d_namlen) -# if HAVE_SYS_NDIR_H -# include -# endif -# if HAVE_SYS_DIR_H -# include -# endif -# if HAVE_NDIR_H -# include -# endif -#endif - -#if HAVE_STDLIB_H -# include -#else -# ifndef getenv - char *getenv (); -# endif -#endif -#ifndef EXIT_SUCCESS -# define EXIT_SUCCESS 0 -#endif -#if !EXIT_FAILURE -# undef EXIT_FAILURE /* Sony NEWS-OS 4.0C defines EXIT_FAILURE to 0. */ -# define EXIT_FAILURE 1 -#endif -#define EXIT_TROUBLE 2 - -#include -#ifndef SSIZE_MAX -# define SSIZE_MAX TYPE_MAXIMUM (ssize_t) -#endif - -#if HAVE_INTTYPES_H -# include -#endif -#ifndef PTRDIFF_MAX -# define PTRDIFF_MAX TYPE_MAXIMUM (ptrdiff_t) -#endif -#ifndef SIZE_MAX -# define SIZE_MAX TYPE_MAXIMUM (size_t) -#endif -#ifndef UINTMAX_MAX -# define UINTMAX_MAX TYPE_MAXIMUM (uintmax_t) -#endif -#if ! HAVE_STRTOUMAX && ! defined strtoumax -uintmax_t strtoumax (char const *, char **, int); -#endif - -#include - -#if STDC_HEADERS || HAVE_STRING_H -# include -#else -# if !HAVE_STRCHR -# define strchr index -# define strrchr rindex -# endif -char *strchr (), *strrchr (); -# if !HAVE_MEMCHR -# define memcmp(s1, s2, n) bcmp (s1, s2, n) -# define memcpy(d, s, n) bcopy (s, d, n) -void *memchr (); -# endif -#endif - -#if HAVE_LOCALE_H -# include -#else -# define setlocale(category, locale) -#endif - -#include - -#define _(msgid) gettext (msgid) -#define N_(msgid) msgid - -#include - -/* CTYPE_DOMAIN (C) is nonzero if the unsigned char C can safely be given - as an argument to macros like `isspace'. */ -#if STDC_HEADERS -# define CTYPE_DOMAIN(c) 1 -#else -# define CTYPE_DOMAIN(c) ((unsigned int) (c) <= 0177) -#endif -#define ISPRINT(c) (CTYPE_DOMAIN (c) && isprint (c)) -#define ISSPACE(c) (CTYPE_DOMAIN (c) && isspace (c)) - -#if STDC_HEADERS -# define TOLOWER(c) tolower (c) -#else -# ifndef _tolower -# define _tolower(c) tolower (c) -# endif -# define TOLOWER(c) (CTYPE_DOMAIN (c) && isupper (c) ? _tolower (c) : (c)) -#endif - -/* ISDIGIT differs from isdigit, as follows: - - Its arg may be any int or unsigned int; it need not be an unsigned char. - - It's guaranteed to evaluate its argument exactly once. - - It's typically faster. - POSIX 1003.1-2001 says that only '0' through '9' are digits. - Prefer ISDIGIT to isdigit unless it's important to use the locale's - definition of `digit' even when the host does not conform to POSIX. */ -#define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9) - -#include -#if !STDC_HEADERS - extern int errno; -#endif - -#include -#ifndef SA_RESTART -# ifdef SA_INTERRUPT /* e.g. SunOS 4.1.x */ -# define SA_RESTART SA_INTERRUPT -# else -# define SA_RESTART 0 -# endif -#endif -#if !defined SIGCHLD && defined SIGCLD -# define SIGCHLD SIGCLD -#endif - -#undef MIN -#undef MAX -#define MIN(a, b) ((a) <= (b) ? (a) : (b)) -#define MAX(a, b) ((a) >= (b) ? (a) : (b)) - -#if HAVE_STDBOOL_H -# include -#else -# define bool unsigned char -#endif - -#if HAVE_VFORK_H -# include -#endif - -#if ! HAVE_WORKING_VFORK -# define vfork fork -#endif - -/* Type used for fast comparison of several bytes at a time. */ - -#ifndef word -# define word uintmax_t -#endif - -/* The integer type of a line number. Since files are read into main - memory, ptrdiff_t should be wide enough. */ - -typedef ptrdiff_t lin; -#define LIN_MAX PTRDIFF_MAX -verify (lin_is_signed, TYPE_SIGNED (lin)); -verify (lin_is_wide_enough, sizeof (ptrdiff_t) <= sizeof (lin)); -verify (lin_is_printable_as_long, sizeof (lin) <= sizeof (long)); - -/* This section contains POSIX-compliant defaults for macros - that are meant to be overridden by hand in config.h as needed. */ - -#ifndef file_name_cmp -# define file_name_cmp strcmp -#endif - -#ifndef initialize_main -# define initialize_main(argcp, argvp) -#endif - -#ifndef NULL_DEVICE -# define NULL_DEVICE "/dev/null" -#endif - -/* Do struct stat *S, *T describe the same special file? */ -#ifndef same_special_file -# if HAVE_STRUCT_STAT_ST_RDEV && defined S_ISBLK && defined S_ISCHR -# define same_special_file(s, t) \ - (((S_ISBLK ((s)->st_mode) && S_ISBLK ((t)->st_mode)) \ - || (S_ISCHR ((s)->st_mode) && S_ISCHR ((t)->st_mode))) \ - && (s)->st_rdev == (t)->st_rdev) -# else -# define same_special_file(s, t) 0 -# endif -#endif - -/* Do struct stat *S, *T describe the same file? Answer -1 if unknown. */ -#ifndef same_file -# define same_file(s, t) \ - ((((s)->st_ino == (t)->st_ino) && ((s)->st_dev == (t)->st_dev)) \ - || same_special_file (s, t)) -#endif - -/* Do struct stat *S, *T have the same file attributes? - - POSIX says that two files are identical if st_ino and st_dev are - the same, but many filesystems incorrectly assign the same (device, - inode) pair to two distinct files, including: - - - GNU/Linux NFS servers that export all local filesystems as a - single NFS filesystem, if a local device number (st_dev) exceeds - 255, or if a local inode number (st_ino) exceeds 16777215. - - - Network Appliance NFS servers in snapshot directories; see - Network Appliance bug #195. - - - ClearCase MVFS; see bug id ATRia04618. - - Check whether two files that purport to be the same have the same - attributes, to work around instances of this common bug. Do not - inspect all attributes, only attributes useful in checking for this - bug. - - It's possible for two distinct files on a buggy filesystem to have - the same attributes, but it's not worth slowing down all - implementations (or complicating the configuration) to cater to - these rare cases in buggy implementations. */ - -#ifndef same_file_attributes -# define same_file_attributes(s, t) \ - ((s)->st_mode == (t)->st_mode \ - && (s)->st_nlink == (t)->st_nlink \ - && (s)->st_uid == (t)->st_uid \ - && (s)->st_gid == (t)->st_gid \ - && (s)->st_size == (t)->st_size \ - && (s)->st_mtime == (t)->st_mtime \ - && (s)->st_ctime == (t)->st_ctime) -#endif diff --git a/gnu/dist/diffutils/src/util.c b/gnu/dist/diffutils/src/util.c deleted file mode 100644 index 0208c7efb18..00000000000 --- a/gnu/dist/diffutils/src/util.c +++ /dev/null @@ -1,758 +0,0 @@ -/* $NetBSD: util.c,v 1.1.1.1 2003/01/26 00:43:17 wiz Exp $ */ - -/* Support routines for GNU DIFF. - - Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1998, 2001, 2002 - Free Software Foundation, Inc. - - This file is part of GNU DIFF. - - GNU DIFF is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - GNU DIFF is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; see the file COPYING. - If not, write to the Free Software Foundation, - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -#include "diff.h" -#include -#include -#include -#include -#include - -char const pr_program[] = PR_PROGRAM; - -/* Queue up one-line messages to be printed at the end, - when -l is specified. Each message is recorded with a `struct msg'. */ - -struct msg -{ - struct msg *next; - char args[1]; /* Format + 4 args, each '\0' terminated, concatenated. */ -}; - -/* Head of the chain of queues messages. */ - -static struct msg *msg_chain; - -/* Tail of the chain of queues messages. */ - -static struct msg **msg_chain_end = &msg_chain; - -/* Use when a system call returns non-zero status. - NAME should normally be the file name. */ - -void -perror_with_name (char const *name) -{ - error (0, errno, "%s", name); -} - -/* Use when a system call returns non-zero status and that is fatal. */ - -void -pfatal_with_name (char const *name) -{ - int e = errno; - print_message_queue (); - error (EXIT_TROUBLE, e, "%s", name); - abort (); -} - -/* Print an error message containing MSGID, then exit. */ - -void -fatal (char const *msgid) -{ - print_message_queue (); - error (EXIT_TROUBLE, 0, "%s", _(msgid)); - abort (); -} - -/* Like printf, except if -l in effect then save the message and print later. - This is used for things like "Only in ...". */ - -void -message (char const *format_msgid, char const *arg1, char const *arg2) -{ - message5 (format_msgid, arg1, arg2, 0, 0); -} - -void -message5 (char const *format_msgid, char const *arg1, char const *arg2, - char const *arg3, char const *arg4) -{ - if (paginate) - { - char *p; - char const *arg[5]; - int i; - size_t size[5]; - size_t total_size = offsetof (struct msg, args); - struct msg *new; - - arg[0] = format_msgid; - arg[1] = arg1; - arg[2] = arg2; - arg[3] = arg3 ? arg3 : ""; - arg[4] = arg4 ? arg4 : ""; - - for (i = 0; i < 5; i++) - total_size += size[i] = strlen (arg[i]) + 1; - - new = xmalloc (total_size); - - for (i = 0, p = new->args; i < 5; p += size[i++]) - memcpy (p, arg[i], size[i]); - - *msg_chain_end = new; - new->next = 0; - msg_chain_end = &new->next; - } - else - { - if (sdiff_merge_assist) - putchar (' '); - printf (_(format_msgid), arg1, arg2, arg3, arg4); - } -} - -/* Output all the messages that were saved up by calls to `message'. */ - -void -print_message_queue (void) -{ - char const *arg[5]; - int i; - struct msg *m = msg_chain; - - while (m) - { - struct msg *next = m->next; - arg[0] = m->args; - for (i = 0; i < 4; i++) - arg[i + 1] = arg[i] + strlen (arg[i]) + 1; - printf (_(arg[0]), arg[1], arg[2], arg[3], arg[4]); - free (m); - m = next; - } -} - -/* Call before outputting the results of comparing files NAME0 and NAME1 - to set up OUTFILE, the stdio stream for the output to go to. - - Usually, OUTFILE is just stdout. But when -l was specified - we fork off a `pr' and make OUTFILE a pipe to it. - `pr' then outputs to our stdout. */ - -static char const *current_name0; -static char const *current_name1; -static bool currently_recursive; - -void -setup_output (char const *name0, char const *name1, bool recursive) -{ - current_name0 = name0; - current_name1 = name1; - currently_recursive = recursive; - outfile = 0; -} - -#if HAVE_WORKING_FORK || HAVE_WORKING_VFORK -static pid_t pr_pid; -#endif - -void -begin_output (void) -{ - char *name; - - if (outfile != 0) - return; - - /* Construct the header of this piece of diff. */ - name = xmalloc (strlen (current_name0) + strlen (current_name1) - + strlen (switch_string) + 7); - - /* POSIX 1003.1-2001 specifies this format. But there are some bugs in - the standard: it says that we must print only the last component - of the pathnames, and it requires two spaces after "diff" if - there are no options. These requirements are silly and do not - match historical practice. */ - sprintf (name, "diff%s %s %s", switch_string, current_name0, current_name1); - - if (paginate) - { - if (fflush (stdout) != 0) - pfatal_with_name (_("write failed")); - - /* Make OUTFILE a pipe to a subsidiary `pr'. */ - { -#if HAVE_WORKING_FORK || HAVE_WORKING_VFORK - int pipes[2]; - - if (pipe (pipes) != 0) - pfatal_with_name ("pipe"); - - pr_pid = vfork (); - if (pr_pid < 0) - pfatal_with_name ("fork"); - - if (pr_pid == 0) - { - close (pipes[1]); - if (pipes[0] != STDIN_FILENO) - { - if (dup2 (pipes[0], STDIN_FILENO) < 0) - pfatal_with_name ("dup2"); - close (pipes[0]); - } - - execl (pr_program, pr_program, "-h", name, 0); - _exit (errno == ENOEXEC ? 126 : 127); - } - else - { - close (pipes[0]); - outfile = fdopen (pipes[1], "w"); - if (!outfile) - pfatal_with_name ("fdopen"); - } -#else - char *command = xmalloc (sizeof pr_program - 1 + 7 - + quote_system_arg ((char *) 0, name) + 1); - char *p; - sprintf (command, "%s -f -h ", pr_program); - p = command + sizeof pr_program - 1 + 7; - p += quote_system_arg (p, name); - *p = 0; - errno = 0; - outfile = popen (command, "w"); - if (!outfile) - pfatal_with_name (command); - free (command); -#endif - } - } - else - { - - /* If -l was not specified, output the diff straight to `stdout'. */ - - outfile = stdout; - - /* If handling multiple files (because scanning a directory), - print which files the following output is about. */ - if (currently_recursive) - printf ("%s\n", name); - } - - free (name); - - /* A special header is needed at the beginning of context output. */ - switch (output_style) - { - case OUTPUT_CONTEXT: - print_context_header (files, 0); - break; - - case OUTPUT_UNIFIED: - print_context_header (files, 1); - break; - - default: - break; - } -} - -/* Call after the end of output of diffs for one file. - Close OUTFILE and get rid of the `pr' subfork. */ - -void -finish_output (void) -{ - if (outfile != 0 && outfile != stdout) - { - int wstatus; - int werrno = 0; - if (ferror (outfile)) - fatal ("write failed"); -#if ! (HAVE_WORKING_FORK || HAVE_WORKING_VFORK) - wstatus = pclose (outfile); - if (wstatus == -1) - werrno = errno; -#else - if (fclose (outfile) != 0) - pfatal_with_name (_("write failed")); - if (waitpid (pr_pid, &wstatus, 0) < 0) - pfatal_with_name ("waitpid"); -#endif - if (! werrno && WIFEXITED (wstatus) && WEXITSTATUS (wstatus) == 127) - error (EXIT_TROUBLE, 0, _("subsidiary program `%s' not found"), - pr_program); - if (wstatus != 0) - error (EXIT_TROUBLE, werrno, _("subsidiary program `%s' failed"), - pr_program); - } - - outfile = 0; -} - -/* Compare two lines (typically one from each input file) - according to the command line options. - For efficiency, this is invoked only when the lines do not match exactly - but an option like -i might cause us to ignore the difference. - Return nonzero if the lines differ. */ - -bool -lines_differ (char const *s1, char const *s2) -{ - register unsigned char const *t1 = (unsigned char const *) s1; - register unsigned char const *t2 = (unsigned char const *) s2; - size_t column = 0; - - while (1) - { - register unsigned char c1 = *t1++; - register unsigned char c2 = *t2++; - - /* Test for exact char equality first, since it's a common case. */ - if (c1 != c2) - { - switch (ignore_white_space) - { - case IGNORE_ALL_SPACE: - /* For -w, just skip past any white space. */ - while (ISSPACE (c1) && c1 != '\n') c1 = *t1++; - while (ISSPACE (c2) && c2 != '\n') c2 = *t2++; - break; - - case IGNORE_SPACE_CHANGE: - /* For -b, advance past any sequence of white space in - line 1 and consider it just one space, or nothing at - all if it is at the end of the line. */ - if (ISSPACE (c1)) - { - while (c1 != '\n') - { - c1 = *t1++; - if (! ISSPACE (c1)) - { - --t1; - c1 = ' '; - break; - } - } - } - - /* Likewise for line 2. */ - if (ISSPACE (c2)) - { - while (c2 != '\n') - { - c2 = *t2++; - if (! ISSPACE (c2)) - { - --t2; - c2 = ' '; - break; - } - } - } - - if (c1 != c2) - { - /* If we went too far when doing the simple test - for equality, go back to the first non-white-space - character in both sides and try again. */ - if (c2 == ' ' && c1 != '\n' - && (unsigned char const *) s1 + 1 < t1 - && ISSPACE (t1[-2])) - { - --t1; - continue; - } - if (c1 == ' ' && c2 != '\n' - && (unsigned char const *) s2 + 1 < t2 - && ISSPACE (t2[-2])) - { - --t2; - continue; - } - } - - break; - - case IGNORE_TAB_EXPANSION: - if ((c1 == ' ' && c2 == '\t') - || (c1 == '\t' && c2 == ' ')) - { - size_t column2 = column; - for (;; c1 = *t1++) - { - if (c1 == ' ') - column++; - else if (c1 == '\t') - column += TAB_WIDTH - column % TAB_WIDTH; - else - break; - } - for (;; c2 = *t2++) - { - if (c2 == ' ') - column2++; - else if (c2 == '\t') - column2 += TAB_WIDTH - column2 % TAB_WIDTH; - else - break; - } - if (column != column2) - return 1; - } - break; - - case IGNORE_NO_WHITE_SPACE: - break; - } - - /* Lowercase all letters if -i is specified. */ - - if (ignore_case) - { - c1 = TOLOWER (c1); - c2 = TOLOWER (c2); - } - - if (c1 != c2) - break; - } - if (c1 == '\n') - return 0; - - column += c1 == '\t' ? TAB_WIDTH - column % TAB_WIDTH : 1; - } - - return 1; -} - -/* Find the consecutive changes at the start of the script START. - Return the last link before the first gap. */ - -struct change * -find_change (struct change *start) -{ - return start; -} - -struct change * -find_reverse_change (struct change *start) -{ - return start; -} - -/* Divide SCRIPT into pieces by calling HUNKFUN and - print each piece with PRINTFUN. - Both functions take one arg, an edit script. - - HUNKFUN is called with the tail of the script - and returns the last link that belongs together with the start - of the tail. - - PRINTFUN takes a subscript which belongs together (with a null - link at the end) and prints it. */ - -void -print_script (struct change *script, - struct change * (*hunkfun) (struct change *), - void (*printfun) (struct change *)) -{ - struct change *next = script; - - while (next) - { - struct change *this, *end; - - /* Find a set of changes that belong together. */ - this = next; - end = (*hunkfun) (next); - - /* Disconnect them from the rest of the changes, - making them a hunk, and remember the rest for next iteration. */ - next = end->link; - end->link = 0; -#ifdef DEBUG - debug_script (this); -#endif - - /* Print this hunk. */ - (*printfun) (this); - - /* Reconnect the script so it will all be freed properly. */ - end->link = next; - } -} - -/* Print the text of a single line LINE, - flagging it with the characters in LINE_FLAG (which say whether - the line is inserted, deleted, changed, etc.). */ - -void -print_1_line (char const *line_flag, char const *const *line) -{ - char const *base = line[0], *limit = line[1]; /* Help the compiler. */ - FILE *out = outfile; /* Help the compiler some more. */ - char const *flag_format = 0; - - /* If -T was specified, use a Tab between the line-flag and the text. - Otherwise use a Space (as Unix diff does). - Print neither space nor tab if line-flags are empty. */ - - if (line_flag && *line_flag) - { - flag_format = initial_tab ? "%s\t" : "%s "; - fprintf (out, flag_format, line_flag); - } - - output_1_line (base, limit, flag_format, line_flag); - - if ((!line_flag || line_flag[0]) && limit[-1] != '\n') - fprintf (out, "\n\\ %s\n", _("No newline at end of file")); -} - -/* Output a line from BASE up to LIMIT. - With -t, expand white space characters to spaces, and if FLAG_FORMAT - is nonzero, output it with argument LINE_FLAG after every - internal carriage return, so that tab stops continue to line up. */ - -void -output_1_line (char const *base, char const *limit, char const *flag_format, - char const *line_flag) -{ - if (!expand_tabs) - fwrite (base, limit - base, 1, outfile); - else - { - register FILE *out = outfile; - register unsigned char c; - register char const *t = base; - register unsigned int column = 0; - - while (t < limit) - switch ((c = *t++)) - { - case '\t': - { - unsigned int spaces = TAB_WIDTH - column % TAB_WIDTH; - column += spaces; - do - putc (' ', out); - while (--spaces); - } - break; - - case '\r': - putc (c, out); - if (flag_format && t < limit && *t != '\n') - fprintf (out, flag_format, line_flag); - column = 0; - break; - - case '\b': - if (column == 0) - continue; - column--; - putc (c, out); - break; - - default: - if (ISPRINT (c)) - column++; - putc (c, out); - break; - } - } -} - -char const change_letter[] = { 0, 'd', 'a', 'c' }; - -/* Translate an internal line number (an index into diff's table of lines) - into an actual line number in the input file. - The internal line number is I. FILE points to the data on the file. - - Internal line numbers count from 0 starting after the prefix. - Actual line numbers count from 1 within the entire file. */ - -lin -translate_line_number (struct file_data const *file, lin i) -{ - return i + file->prefix_lines + 1; -} - -/* Translate a line number range. This is always done for printing, - so for convenience translate to long rather than lin, so that the - caller can use printf with "%ld" without casting. */ - -void -translate_range (struct file_data const *file, - lin a, lin b, - long *aptr, long *bptr) -{ - *aptr = translate_line_number (file, a - 1) + 1; - *bptr = translate_line_number (file, b + 1) - 1; -} - -/* Print a pair of line numbers with SEPCHAR, translated for file FILE. - If the two numbers are identical, print just one number. - - Args A and B are internal line numbers. - We print the translated (real) line numbers. */ - -void -print_number_range (char sepchar, struct file_data *file, lin a, lin b) -{ - long trans_a, trans_b; - translate_range (file, a, b, &trans_a, &trans_b); - - /* Note: we can have B < A in the case of a range of no lines. - In this case, we should print the line number before the range, - which is B. */ - if (trans_b > trans_a) - fprintf (outfile, "%ld%c%ld", trans_a, sepchar, trans_b); - else - fprintf (outfile, "%ld", trans_b); -} - -/* Look at a hunk of edit script and report the range of lines in each file - that it applies to. HUNK is the start of the hunk, which is a chain - of `struct change'. The first and last line numbers of file 0 are stored in - *FIRST0 and *LAST0, and likewise for file 1 in *FIRST1 and *LAST1. - Note that these are internal line numbers that count from 0. - - If no lines from file 0 are deleted, then FIRST0 is LAST0+1. - - Return UNCHANGED if only ignorable lines are inserted or deleted, - OLD if lines of file 0 are deleted, - NEW if lines of file 1 are inserted, - and CHANGED if both kinds of changes are found. */ - -enum changes -analyze_hunk (struct change *hunk, - lin *first0, lin *last0, - lin *first1, lin *last1) -{ - struct change *next; - lin l0, l1; - lin show_from, show_to; - lin i; - bool trivial = ignore_blank_lines || ignore_regexp.fastmap; - size_t trivial_length = (int) ignore_blank_lines - 1; - /* If 0, ignore zero-length lines; - if SIZE_MAX, do not ignore lines just because of their length. */ - - char const * const *linbuf0 = files[0].linbuf; /* Help the compiler. */ - char const * const *linbuf1 = files[1].linbuf; - - show_from = show_to = 0; - - *first0 = hunk->line0; - *first1 = hunk->line1; - - next = hunk; - do - { - l0 = next->line0 + next->deleted - 1; - l1 = next->line1 + next->inserted - 1; - show_from += next->deleted; - show_to += next->inserted; - - for (i = next->line0; i <= l0 && trivial; i++) - { - char const *line = linbuf0[i]; - size_t len = linbuf0[i + 1] - line - 1; - if (len != trivial_length - && (! ignore_regexp.fastmap - || re_search (&ignore_regexp, line, len, 0, len, 0) < 0)) - trivial = 0; - } - - for (i = next->line1; i <= l1 && trivial; i++) - { - char const *line = linbuf1[i]; - size_t len = linbuf1[i + 1] - line - 1; - if (len != trivial_length - && (! ignore_regexp.fastmap - || re_search (&ignore_regexp, line, len, 0, len, 0) < 0)) - trivial = 0; - } - } - while ((next = next->link) != 0); - - *last0 = l0; - *last1 = l1; - - /* If all inserted or deleted lines are ignorable, - tell the caller to ignore this hunk. */ - - if (trivial) - return UNCHANGED; - - return (show_from ? OLD : UNCHANGED) | (show_to ? NEW : UNCHANGED); -} - -/* Concatenate three strings, returning a newly malloc'd string. */ - -char * -concat (char const *s1, char const *s2, char const *s3) -{ - char *new = xmalloc (strlen (s1) + strlen (s2) + strlen (s3) + 1); - sprintf (new, "%s%s%s", s1, s2, s3); - return new; -} - -/* Yield a new block of SIZE bytes, initialized to zero. */ - -void * -zalloc (size_t size) -{ - void *p = xmalloc (size); - memset (p, 0, size); - return p; -} - -/* Yield the newly malloc'd pathname - of the file in DIR whose filename is FILE. */ - -char * -dir_file_pathname (char const *dir, char const *file) -{ - char const *base = base_name (dir); - bool omit_slash = !*base || base[strlen (base) - 1] == '/'; - return concat (dir, "/" + omit_slash, file); -} - -void -debug_script (struct change *sp) -{ - fflush (stdout); - - for (; sp; sp = sp->link) - { - long line0 = sp->line0; - long line1 = sp->line1; - long deleted = sp->deleted; - long inserted = sp->inserted; - fprintf (stderr, "%3ld %3ld delete %ld insert %ld\n", - line0, line1, deleted, inserted); - } - - fflush (stderr); -} diff --git a/gnu/dist/diffutils/src/version.c b/gnu/dist/diffutils/src/version.c deleted file mode 100644 index b3cc515c7cd..00000000000 --- a/gnu/dist/diffutils/src/version.c +++ /dev/null @@ -1,4 +0,0 @@ -/* $NetBSD: version.c,v 1.1.1.1 2003/01/26 00:43:16 wiz Exp $ */ - -#include -char const version_string[] = "(GNU diffutils) 2.8.1"; -- cgit