]> git.eshelyaron.com Git - emacs.git/commitdiff
Simplify symlink portability workaround.
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 25 Feb 2011 20:05:36 +0000 (12:05 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 25 Feb 2011 20:05:36 +0000 (12:05 -0800)
12 files changed:
ChangeLog
aclocal.m4
configure
lib/Makefile.in
lib/dosname.h [new file with mode: 0644]
lib/gnulib.mk
lib/stat.c
m4/dos.m4 [deleted file]
m4/gl-comp.m4
m4/stat.m4
src/ChangeLog
src/config.in

index d79576e3ecf19cc63be44cfb468d18766cac3c7c..8f439f369d7530c6d150414145a05153f6b0d8f4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2011-02-25  Paul Eggert  <eggert@cs.ucla.edu>
 
+       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.
 
index 7bc72240c80f24e616abc8be1e4ec92daa7cc163..1536f3b48b5a202122bfb6d727bcc51d280b5945 100644 (file)
@@ -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])
index 675cb56533dd7743c5c67ee900d18dc782ba8391..658fac9a35800eeadc3cc73923138f3de5845ecc 100755 (executable)
--- 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 :
index e9b9f2eb86ebb3b9f17cb510e66c9474c1150ca4..04ee541a09c897b1ade669bfdbafcabef8d73d49 100644 (file)
@@ -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 (file)
index 0000000..acdd03b
--- /dev/null
@@ -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_ */
index 1d918ff5fae3ae86bb5075b67bb546b741d4a4c1..b5fd4a358db61c7b6a20f06fab21681031494d5d 100644 (file)
@@ -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
index f16d9144afc5e3b613998ab55c096cfa05cdcd7d..cbc9100fd4d6b7d47809c78a3b91f34179bc88fe 100644 (file)
@@ -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 (file)
index ed9c4ce..0000000
--- 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.])
-  ])
index c495389af8f5d62278a23ad13e3933de1cc82353..8bf5a64a5f98126d8f7a3f0822bf78ff1eec59e4 100644 (file)
@@ -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
index 4883fe25eeaee32ed87360dab98bae55249773de..27f82d5a91aff206dfc0bbed455419d2521d355f 100644 (file)
@@ -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
index 3719b61b41394426f27bfa61d664d0e6e49c8598..0bfadcf1a911a648dfc3153e60d4f289ee4676c1 100644 (file)
@@ -1,5 +1,8 @@
 2011-02-25  Paul Eggert  <eggert@cs.ucla.edu>
 
+       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>.
index 2a2a71659f5cd40254fd7a0212492fd502442f8a..4e49b4df170a7a3f4a31ebe254f4fb250271bbd9 100644 (file)
@@ -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