delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2005/07/01/18:37:20

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
To: Brendan Kehoe <brendan AT zen DOT org>
Cc: autoconf AT gnu DOT org, cygwin AT cygwin DOT com, autoconf-patches AT gnu DOT org
Subject: Re: should a space really be a "special character" ?
References: <42C45DB3 DOT 4030901 AT zen DOT org>
From: Paul Eggert <eggert AT CS DOT UCLA DOT EDU>
Date: Fri, 01 Jul 2005 15:33:55 -0700
In-Reply-To: <42C45DB3.4030901@zen.org> (Brendan Kehoe's message of "Thu, 30 Jun 2005 22:01:39 +0100")
Message-ID: <878y0qcg18.fsf@penguin.cs.ucla.edu>
User-Agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux)
MIME-Version: 1.0

Brendan Kehoe <brendan AT zen DOT org> writes:

> Thoughts?

I guess this check is causing more trouble than it cures.

> Oh, one thing that's got me mystified is that such a problem like not
> configuring in a directory 'foo bar' could possibly be a real
> outstanding bug, since it'd have to have happened to tons of Cygwin
> users.

Sometimes spaces work; sometimes they don't.  The same thing is true
for lots of other patterns in file names, including:

 " # $ % & ' * @%:@ @&t@ @S|@ \ ` |

as well as tab and newline.  This is true on both Cygwin and on POSIX
hosts.  Autoconf was playing it safe, but I guess it was too safe.

I've just sent off a bug report and patch to Automake-patches
about this; in a day or two it should appear at
<http://lists.gnu.org/archive/html/automake-patches/2005-07/>.

> P.S. I've just noticed that autoconf/aclocal.m4 also holds
> AM_MISSING_HAS_RUN.  Why?  To avoid dependencies?

Yes; someone who's installing Autoconf shouldn't need Automake,
to avoid the usual bootstrapping problems.

To work around the problem I installed the following Autoconf patch.
Thanks for reporting the problem.

2005-07-01  Paul Eggert  <eggert AT cs DOT ucla DOT edu>

	* lib/autoconf/general.m4 (_AC_INIT_DIRCHECK): Remove the tests for
	directories with weird names.  Apparently some people like living
	on the edge.  However, improve the test that "pwd" actually does
	report a name for the working directory.
	* NEWS: Remove the claim that we test for funny chars in dir names.

Index: NEWS
===================================================================
RCS file: /cvsroot/autoconf/autoconf/NEWS,v
retrieving revision 1.343
diff -p -u -r1.343 NEWS
--- NEWS	24 Jun 2005 02:13:39 -0000	1.343
+++ NEWS	1 Jul 2005 22:18:24 -0000
@@ -1,9 +1,5 @@
 * Major changes in Autoconf 2.59c
 
-** The configure command now diagnoses attempts to use a working or source
-  directory whose name contains a special character like space, newline, or "\".
-  Such names are not supported, and can cause "configure" to crash.
-
 ** The configure command now redirects standard input from /dev/null,
   to help avoid problems with subsidiary commands that might mistakenly
   read standard input.  AS_ORIGINAL_STDIN_FD points to the original
Index: lib/autoconf/general.m4
===================================================================
RCS file: /cvsroot/autoconf/autoconf/lib/autoconf/general.m4,v
retrieving revision 1.871
diff -p -u -r1.871 general.m4
--- lib/autoconf/general.m4	1 Jul 2005 08:45:22 -0000	1.871
+++ lib/autoconf/general.m4	1 Jul 2005 22:18:24 -0000
@@ -450,38 +450,13 @@ AC_DEFUN([AC_CONFIG_SRCDIR],
 m4_define([_AC_INIT_DIRCHECK],
 [m4_divert_push([PARSE_ARGS])dnl
 
-ac_pwd=`pwd` && test -n "$ac_pwd" ||
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
   AC_MSG_ERROR([Working directory cannot be determined])
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+  AC_MSG_ERROR([pwd does not report name of working directory])
 
-ac_pat="[[\$][{][_$as_cr_Letters][_$as_cr_alnum]*[}]]"
-ac_pat1='*[)]*'
-
-for ac_var in ac_pwd srcdir
-do
-  # Remove references to shell or make variables.
-  eval ac_dir=\$$ac_var
-  ac_dirx=$ac_dir
-  while :
-  do
-    case $ac_dirx in
-    *\${*}*)
-      ac_dirx=`
-	expr "X$ac_dirx" : "X\\(.*\\)$ac_pat"`X`
-	expr "X$ac_dirx" : "X.*$ac_pat\\(.*\\)"`;;
-    *) break;;
-    esac
-  done
-
-  # Check for newline, tab, space, and other weird possibilities.
-  # Preserve that tab character below!
-  case $ac_dirx in
-  '' | -* | */-* | *'
-'* | *'	'* | *' '* | *\"* | *\#* | *\$* | *\&* | *\'* | *\(* | $ac_pat1 | \
-  *\** | *\;* | *\<* | *\=* | *\>* | *\?* | *\@<:@* | *\\* | *\`* | \
-  *\|* | \~*)
-    AC_MSG_ERROR([$ac_var directory name `$ac_dir' has special characters]);;
-  esac
-done
 m4_divert_pop([PARSE_ARGS])dnl
 ])# _AC_INIT_DIRCHECK
 
@@ -512,7 +487,9 @@ fi
 dnl Remove unnecessary trailing slashes from srcdir.
 dnl Double slashes in file names in object file debugging info
 dnl mess up M-x gdb in Emacs.
-srcdir=`echo "$srcdir" | sed 's%\([[^/]]\)/*$%\1%'`
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[[^/]]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
 m4_divert_pop([PARSE_ARGS])dnl
 ])# _AC_INIT_SRCDIR
 

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019