aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert <[email protected]>2011-02-25 12:05:36 -0800
committerPaul Eggert <[email protected]>2011-02-25 12:05:36 -0800
commit36f13e1667c66073ef18c4ee3394865c3b7c6cbb (patch)
treebe36845ff1a7ffadcfa590589d099fb681d019ba
parent4394ee04741d5fe2fd4cc7a7ee821e1f8a3f2d32 (diff)
Simplify symlink portability workaround.
-rw-r--r--ChangeLog6
-rw-r--r--aclocal.m41
-rwxr-xr-xconfigure99
-rw-r--r--lib/Makefile.in20
-rw-r--r--lib/dosname.h53
-rw-r--r--lib/gnulib.mk7
-rw-r--r--lib/stat.c1
-rw-r--r--m4/dos.m471
-rw-r--r--m4/gl-comp.m44
-rw-r--r--m4/stat.m43
-rw-r--r--src/ChangeLog3
-rw-r--r--src/config.in19
12 files changed, 86 insertions, 201 deletions
diff --git a/ChangeLog b/ChangeLog
index d79576e3ec..8f439f369d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2011-02-25 Paul Eggert <[email protected]>
+ Simplify symlink portability workaround.
+ * m4/dos.m4: Remove.
+ * aclocal.m4, configure, lib/Makefile.in, lib/gnulib.mk, lib/stat.c:
+ * m4/gl-comp.m4, m4/stat.m4, src/config.in: Regenerate from gnulib.
+ * lib/dosname.h: New file, regenerated from gnulib.
+
* configure, lib/Makefile.in, lib/getopt_int.h, lib/gnulib.mk:
* lib/stdlib.in.h, m4/stdlib_h.m4: Regenerate.
diff --git a/aclocal.m4 b/aclocal.m4
index 7bc72240c8..1536f3b48b 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -986,7 +986,6 @@ AC_SUBST([am__untar])
m4_include([m4/00gnulib.m4])
m4_include([m4/c-strtod.m4])
-m4_include([m4/dos.m4])
m4_include([m4/extensions.m4])
m4_include([m4/filemode.m4])
m4_include([m4/getloadavg.m4])
diff --git a/configure b/configure
index 675cb56533..658fac9a35 100755
--- a/configure
+++ b/configure
@@ -6128,6 +6128,7 @@ $as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
# Code from module arg-nonnull:
# Code from module c++defs:
# Code from module crypto/md5:
+ # Code from module dosname:
# Code from module dtoastr:
# Code from module extensions:
@@ -14687,102 +14688,6 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether system is Windows or MSDOS" >&5
-$as_echo_n "checking whether system is Windows or MSDOS... " >&6; }
-if ${ac_cv_win_or_dos+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
-#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __CYGWIN__
-neither MSDOS nor Windows
-#endif
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_win_or_dos=yes
-else
- ac_cv_win_or_dos=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_win_or_dos" >&5
-$as_echo "$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
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether drive letter can start relative path" >&5
-$as_echo_n "checking whether drive letter can start relative path... " >&6; }
-if ${ac_cv_drive_letter_can_be_relative+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
-#if defined __CYGWIN__
-drive letters are always absolute
-#endif
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_drive_letter_can_be_relative=yes
-else
- ac_cv_drive_letter_can_be_relative=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_drive_letter_can_be_relative" >&5
-$as_echo "$ac_cv_drive_letter_can_be_relative" >&6; }
- if test x"$ac_cv_drive_letter_can_be_relative" = xyes; then
- ac_fs_drive_letter_can_be_relative=1
- else
- ac_fs_drive_letter_can_be_relative=0
- fi
- else
- ac_fs_accepts_drive_letter_prefix=0
- ac_fs_backslash_is_file_name_separator=0
- ac_fs_drive_letter_can_be_relative=0
- fi
-
-
-cat >>confdefs.h <<_ACEOF
-#define FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX $ac_fs_accepts_drive_letter_prefix
-_ACEOF
-
-
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR $ac_fs_backslash_is_file_name_separator
-_ACEOF
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE $ac_fs_drive_letter_can_be_relative
-_ACEOF
-
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; }
if ${ac_cv_header_stdbool_h+:} false; then :
@@ -15347,6 +15252,7 @@ fi
:
+ # Code from module dosname:
# Code from module dtoastr:
# Code from module extensions:
@@ -16358,7 +16264,6 @@ $as_echo "#define READLINK_TRAILING_SLASH_BUG 1" >>confdefs.h
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on directories" >&5
$as_echo_n "checking whether stat handles trailing slashes on directories... " >&6; }
if ${gl_cv_func_stat_dir_slash+:} false; then :
diff --git a/lib/Makefile.in b/lib/Makefile.in
index e9b9f2eb86..04ee541a09 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -50,10 +50,10 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
subdir = lib
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
- $(top_srcdir)/m4/c-strtod.m4 $(top_srcdir)/m4/dos.m4 \
- $(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/filemode.m4 \
- $(top_srcdir)/m4/getloadavg.m4 $(top_srcdir)/m4/getopt.m4 \
- $(top_srcdir)/m4/gl-comp.m4 $(top_srcdir)/m4/gnulib-common.m4 \
+ $(top_srcdir)/m4/c-strtod.m4 $(top_srcdir)/m4/extensions.m4 \
+ $(top_srcdir)/m4/filemode.m4 $(top_srcdir)/m4/getloadavg.m4 \
+ $(top_srcdir)/m4/getopt.m4 $(top_srcdir)/m4/gl-comp.m4 \
+ $(top_srcdir)/m4/gnulib-common.m4 \
$(top_srcdir)/m4/include_next.m4 $(top_srcdir)/m4/longlong.m4 \
$(top_srcdir)/m4/lstat.m4 $(top_srcdir)/m4/md5.m4 \
$(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/multiarch.m4 \
@@ -604,12 +604,12 @@ BUILT_SOURCES = arg-nonnull.h c++defs.h $(GETOPT_H) $(STDBOOL_H) \
$(STDDEF_H) $(STDINT_H) stdlib.h sys/stat.h time.h unistd.h \
warn-on-use.h
EXTRA_DIST = $(top_srcdir)/./arg-nonnull.h $(top_srcdir)/./c++defs.h \
- md5.c md5.h ftoastr.c ftoastr.h filemode.c filemode.h \
- getloadavg.c getopt.c getopt.in.h getopt1.c getopt_int.h \
- intprops.h lstat.c mktime-internal.h mktime.c readlink.c \
- stat.c stdbool.in.h stddef.in.h stdint.in.h stdlib.in.h \
- strftime.c strftime.h symlink.c sys_stat.in.h time.in.h \
- time_r.c unistd.in.h $(top_srcdir)/./warn-on-use.h
+ md5.c md5.h dosname.h ftoastr.c ftoastr.h filemode.c \
+ filemode.h getloadavg.c getopt.c getopt.in.h getopt1.c \
+ getopt_int.h intprops.h lstat.c mktime-internal.h mktime.c \
+ readlink.c stat.c stdbool.in.h stddef.in.h stdint.in.h \
+ stdlib.in.h strftime.c strftime.h symlink.c sys_stat.in.h \
+ time.in.h time_r.c unistd.in.h $(top_srcdir)/./warn-on-use.h
MOSTLYCLEANDIRS = sys
MOSTLYCLEANFILES = core *.stackdump arg-nonnull.h arg-nonnull.h-t \
c++defs.h c++defs.h-t getopt.h getopt.h-t stdbool.h \
diff --git a/lib/dosname.h b/lib/dosname.h
new file mode 100644
index 0000000000..acdd03b156
--- /dev/null
+++ b/lib/dosname.h
@@ -0,0 +1,53 @@
+/* File names on MS-DOS/Windows systems.
+
+ Copyright (C) 2000-2001, 2004-2006, 2009-2011 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 3 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, see <http://www.gnu.org/licenses/>.
+
+ From Paul Eggert and Jim Meyering. */
+
+#ifndef _DOSNAME_H
+#define _DOSNAME_H
+
+#if (defined _WIN32 || defined __WIN32__ || \
+ defined __MSDOS__ || defined __CYGWIN__ || \
+ defined __EMX__ || defined __DJGPP__)
+ /* This internal macro assumes ASCII, but all hosts that support drive
+ letters use ASCII. */
+# define _IS_DRIVE_LETTER(C) (((unsigned int) (C) | ('a' - 'A')) - 'a' \
+ <= 'z' - 'a')
+# define FILE_SYSTEM_PREFIX_LEN(Filename) \
+ (_IS_DRIVE_LETTER ((Filename)[0]) && (Filename)[1] == ':' ? 2 : 0)
+# ifndef __CYGWIN__
+# define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 1
+# endif
+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
+#else
+# define FILE_SYSTEM_PREFIX_LEN(Filename) 0
+# define ISSLASH(C) ((C) == '/')
+#endif
+
+#ifndef FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE
+# define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0
+#endif
+
+#if FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE
+# define IS_ABSOLUTE_FILE_NAME(F) ISSLASH ((F)[FILE_SYSTEM_PREFIX_LEN (F)])
+# else
+# define IS_ABSOLUTE_FILE_NAME(F) \
+ (ISSLASH ((F)[0]) || FILE_SYSTEM_PREFIX_LEN (F) != 0)
+#endif
+#define IS_RELATIVE_FILE_NAME(F) (! IS_ABSOLUTE_FILE_NAME (F))
+
+#endif /* DOSNAME_H_ */
diff --git a/lib/gnulib.mk b/lib/gnulib.mk
index 1d918ff5fa..b5fd4a358d 100644
--- a/lib/gnulib.mk
+++ b/lib/gnulib.mk
@@ -78,6 +78,13 @@ EXTRA_libgnu_a_SOURCES += md5.c
## end gnulib module crypto/md5
+## begin gnulib module dosname
+
+
+EXTRA_DIST += dosname.h
+
+## end gnulib module dosname
+
## begin gnulib module dtoastr
libgnu_a_SOURCES += dtoastr.c
diff --git a/lib/stat.c b/lib/stat.c
index f16d9144af..cbc9100fd4 100644
--- a/lib/stat.c
+++ b/lib/stat.c
@@ -37,6 +37,7 @@ orig_stat (const char *filename, struct stat *buf)
#include <limits.h>
#include <stdbool.h>
#include <string.h>
+#include "dosname.h"
/* Store information about NAME into ST. Work around bugs with
trailing slashes. Mingw has other bugs (such as st_ino always
diff --git a/m4/dos.m4 b/m4/dos.m4
deleted file mode 100644
index ed9c4cee67..0000000000
--- a/m4/dos.m4
+++ /dev/null
@@ -1,71 +0,0 @@
-#serial 11 -*- autoconf -*-
-
-# Define some macros required for proper operation of code in lib/*.c
-# on MSDOS/Windows systems.
-
-# Copyright (C) 2000-2001, 2004-2006, 2009-2011 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.
-
-# From Jim Meyering.
-
-AC_DEFUN([gl_AC_DOS],
- [
- AC_CACHE_CHECK([whether system is Windows or MSDOS], [ac_cv_win_or_dos],
- [
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[
-#if !defined _WIN32 && !defined __WIN32__ && !defined __MSDOS__ && !defined __CYGWIN__
-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
- AC_CACHE_CHECK([whether drive letter can start relative path],
- [ac_cv_drive_letter_can_be_relative],
- [
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[
-#if defined __CYGWIN__
-drive letters are always absolute
-#endif]])],
- [ac_cv_drive_letter_can_be_relative=yes],
- [ac_cv_drive_letter_can_be_relative=no])
- ])
- if test x"$ac_cv_drive_letter_can_be_relative" = xyes; then
- ac_fs_drive_letter_can_be_relative=1
- else
- ac_fs_drive_letter_can_be_relative=0
- fi
- else
- ac_fs_accepts_drive_letter_prefix=0
- ac_fs_backslash_is_file_name_separator=0
- ac_fs_drive_letter_can_be_relative=0
- fi
-
- AC_DEFINE_UNQUOTED([FILE_SYSTEM_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 FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR
-# define ISSLASH(C) ((C) == '/' || (C) == '\\')
-#else
-# define ISSLASH(C) ((C) == '/')
-#endif])
-
- AC_DEFINE_UNQUOTED([FILE_SYSTEM_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.])
-
- AC_DEFINE_UNQUOTED([FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE],
- $ac_fs_drive_letter_can_be_relative,
- [Define if a drive letter prefix denotes a relative path if it is
- not followed by a file name component separator.])
- ])
diff --git a/m4/gl-comp.m4 b/m4/gl-comp.m4
index c495389af8..8bf5a64a5f 100644
--- a/m4/gl-comp.m4
+++ b/m4/gl-comp.m4
@@ -29,6 +29,7 @@ AC_DEFUN([gl_EARLY],
# Code from module arg-nonnull:
# Code from module c++defs:
# Code from module crypto/md5:
+ # Code from module dosname:
# Code from module dtoastr:
# Code from module extensions:
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
@@ -78,6 +79,7 @@ AC_DEFUN([gl_INIT],
# Code from module c++defs:
# Code from module crypto/md5:
gl_MD5
+ # Code from module dosname:
# Code from module dtoastr:
AC_REQUIRE([gl_C99_STRTOLD])
# Code from module extensions:
@@ -279,6 +281,7 @@ AC_DEFUN([gl_FILE_LIST], [
build-aux/arg-nonnull.h
build-aux/c++defs.h
build-aux/warn-on-use.h
+ lib/dosname.h
lib/dtoastr.c
lib/filemode.c
lib/filemode.h
@@ -312,7 +315,6 @@ AC_DEFUN([gl_FILE_LIST], [
lib/unistd.in.h
m4/00gnulib.m4
m4/c-strtod.m4
- m4/dos.m4
m4/extensions.m4
m4/filemode.m4
m4/getloadavg.m4
diff --git a/m4/stat.m4 b/m4/stat.m4
index 4883fe25ee..27f82d5a91 100644
--- a/m4/stat.m4
+++ b/m4/stat.m4
@@ -1,4 +1,4 @@
-# serial 6
+# serial 7
# Copyright (C) 2009-2011 Free Software Foundation, Inc.
#
@@ -9,7 +9,6 @@
AC_DEFUN([gl_FUNC_STAT],
[
AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
- AC_REQUIRE([gl_AC_DOS])
AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
AC_CHECK_FUNCS_ONCE([lstat])
dnl mingw is the only known platform where stat(".") and stat("./") differ
diff --git a/src/ChangeLog b/src/ChangeLog
index 3719b61b41..0bfadcf1a9 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,8 @@
2011-02-25 Paul Eggert <[email protected]>
+ Simplify symlink portability workaround.
+ * config.in: Regenerate.
+
* dired.c (Ffile_attributes): Increase size of modes from 10 to 12
as per recent filemodestring API change. Reported by Jonas Ă–ster in
<http://lists.gnu.org/archive/html/emacs-devel/2011-02/msg01069.html>.
diff --git a/src/config.in b/src/config.in
index 2a2a71659f..4e49b4df17 100644
--- a/src/config.in
+++ b/src/config.in
@@ -72,19 +72,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Enable expensive run-time checking of data types? */
#undef ENABLE_CHECKING
-/* 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 FILE_SYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX
-
-/* Define if the backslash character may also serve as a file name component
- separator. */
-#undef FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR
-
-/* Define if a drive letter prefix denotes a relative path if it is not
- followed by a file name component separator. */
-#undef FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE
-
/* Define this to check for errors in cons list. */
#undef GC_CHECK_CONS_LIST
@@ -907,12 +894,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Define to support using a Hesiod database to find the POP server. */
#undef HESIOD
-#if FILE_SYSTEM_BACKSLASH_IS_FILE_NAME_SEPARATOR
-# define ISSLASH(C) ((C) == '/' || (C) == '\\')
-#else
-# define ISSLASH(C) ((C) == '/')
-#endif
-
/* Define to support Kerberos-authenticated POP mail retrieval. */
#undef KERBEROS