changeset 18066:9f6c9f3f1b62

Use gnulib version of canonicalize_file_name across all systems. * configure.ac: Remove check for canonicalize_file_name since it is guaranteed to be supplied by gnulib. * file-ops.cc (octave_canonicalize_file_name): Simplify function by eliminating #ifdef tree and just using gnulib version of function.
author Rik <rik@octave.org>
date Tue, 03 Dec 2013 13:45:46 -0800
parents 5cc67f929d06
children ca72f1b73216
files configure.ac liboctave/system/file-ops.cc
diffstat 2 files changed, 1 insertions(+), 95 deletions(-) [+]
line wrap: on
line diff
--- a/configure.ac	Tue Dec 03 13:43:06 2013 -0800
+++ b/configure.ac	Tue Dec 03 13:45:46 2013 -0800
@@ -2152,7 +2152,7 @@
 dnl These checks define/undefine HAVE_FUNCNAME in config.h.
 dnl Code tests HAVE_FUNCNAME and either uses function or provides workaround.
 dnl Use multiple AC_CHECKs to avoid line continuations '\' in list
-AC_CHECK_FUNCS([canonicalize_file_name ctermid dup2])
+AC_CHECK_FUNCS([ctermid dup2])
 AC_CHECK_FUNCS([endgrent endpwent execvp expm1 expm1f fork])
 AC_CHECK_FUNCS([getegid geteuid getgid getgrent getgrgid getgrnam])
 AC_CHECK_FUNCS([getpgrp getpid getppid getpwent getpwuid getuid])
--- a/liboctave/system/file-ops.cc	Tue Dec 03 13:43:06 2013 -0800
+++ b/liboctave/system/file-ops.cc	Tue Dec 03 13:45:46 2013 -0800
@@ -689,8 +689,6 @@
 
   std::string retval;
 
-#if defined (HAVE_CANONICALIZE_FILE_NAME)
-
   char *tmp = gnulib::canonicalize_file_name (name.c_str ());
 
   if (tmp)
@@ -699,98 +697,6 @@
       free (tmp);
     }
 
-#elif defined (HAVE_RESOLVEPATH)
-
-#if !defined (errno)
-extern int errno;
-#endif
-
-#if !defined (__set_errno)
-# define __set_errno(Val) errno = (Val)
-#endif
-
-  if (name.empty ())
-    {
-      __set_errno (ENOENT);
-      return retval;
-    }
-
-  // All known hosts with resolvepath (e.g. Solaris 7) don't turn
-  // relative names into absolute ones, so prepend the working
-  // directory if the path is not absolute.
-
-  std::string absolute_name = octave_env::make_absolute (name);
-
-  size_t resolved_size = absolute_name.length ();
-
-  while (true)
-    {
-      resolved_size = 2 * resolved_size + 1;
-
-      OCTAVE_LOCAL_BUFFER (char, resolved, resolved_size);
-
-      int resolved_len
-        = resolvepath (absolute_name.c_str (), resolved, resolved_size);
-
-      if (resolved_len < 0)
-        break;
-
-      if (resolved_len < resolved_size)
-        {
-          retval = resolved;
-          break;
-        }
-    }
-
-#elif defined (__WIN32__)
-
-  int n = 1024;
-
-  std::string win_path (n, '\0');
-
-  while (true)
-    {
-      int status = GetFullPathName (name.c_str (), n, &win_path[0], 0);
-
-      if (status == 0)
-        break;
-      else if (status < n)
-        {
-          win_path.resize (status);
-          retval = win_path;
-          break;
-        }
-      else
-        {
-          n *= 2;
-          win_path.resize (n);
-        }
-    }
-
-#elif defined (HAVE_REALPATH)
-
-#if !defined (__set_errno)
-# define __set_errno(Val) errno = (Val)
-#endif
-
-  if (name.empty ())
-    {
-      __set_errno (ENOENT);
-      return retval;
-    }
-
-  OCTAVE_LOCAL_BUFFER (char, buf, PATH_MAX);
-
-  if (::realpath (name.c_str (), buf))
-    retval = buf;
-
-#else
-
-  // FIXME: provide replacement here...
-  retval = name;
-
-#endif
-
   if (retval.empty ())
     msg = gnulib::strerror (errno);