]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
* lib/autoconf/programs.m4 (AC_PROG_SED): Catch script length
authorStepan Kasal <kasal@ucw.cz>
Mon, 22 May 2006 16:27:08 +0000 (16:27 +0000)
committerStepan Kasal <kasal@ucw.cz>
Mon, 22 May 2006 16:27:08 +0000 (16:27 +0000)
limits in Solaris 8 /usr/ucb/sed by testing a long script.

ChangeLog
lib/autoconf/programs.m4

index 393ba1b31c194cc5c33f1909284fd6ea68d5b13e..9f4c2039ac53c41521664eb9dffbb7fe834fc258 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-05-21  Paul Eggert  <eggert@cs.ucla.edu>
+       and Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * lib/autoconf/programs.m4 (AC_PROG_SED): Catch script length
+       limits in Solaris 8 /usr/ucb/sed by testing a long script.
+
 2006-05-22  Stepan Kasal  <kasal@ucw.cz>
 
        * doc/autoconf.texi (Defining Symbols): Literal parameter of
index 838ee86acd1af853913c71cab9a677f6b9d884ee..1bb9a0099286fd9784b3ee5843f4f44995e77e46 100644 (file)
@@ -812,11 +812,20 @@ adjust the code.])
 # as few characters as possible.  Prefer GNU sed if found.
 AC_DEFUN([AC_PROG_SED],
 [AC_CACHE_CHECK([for a sed that does not truncate output], ac_cv_path_SED,
-    [_AC_PATH_PROG_FEATURE_CHECK(SED, [sed gsed],
+    [dnl ac_script should not contain more than 99 commands (for HP-UX sed),
+     dnl but more than about 7000 bytes, to catch a limit in Solaris 8 /usr/ucb/sed.
+     ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+     for ac_i in 1 2 3 4 5 6 7; do
+       ac_script="$ac_script$as_nl$ac_script"
+     done
+     echo "$ac_script" | sed 99q >conftest.sed
+     $as_unset ac_script || ac_script= 
+     _AC_PATH_PROG_FEATURE_CHECK(SED, [sed gsed],
        [_AC_FEATURE_CHECK_LENGTH([ac_path_SED], [ac_cv_path_SED],
-               ["$ac_path_SED" -e 's/a$//'])])])
+               ["$ac_path_SED" -f conftest.sed])])])
  SED="$ac_cv_path_SED"
- AC_SUBST([SED])
+ AC_SUBST([SED])dnl
+ rm -f conftest.sed
 ])# AC_PROG_SED