# HG changeset patch # User Rik # Date 1386107146 28800 # Node ID 9f6c9f3f1b62806d55932596c979b21f8ef783df # Parent 5cc67f929d06d7af00526999aedcd201f96636bf 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. diff -r 5cc67f929d06 -r 9f6c9f3f1b62 configure.ac --- 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]) diff -r 5cc67f929d06 -r 9f6c9f3f1b62 liboctave/system/file-ops.cc --- 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);