changeset 6694:3d913ba36b75

[project @ 2007-06-06 06:08:25 by jwe]
author jwe
date Wed, 06 Jun 2007 06:08:26 +0000
parents 768d3ad80bbf
children c45431c845f3
files ChangeLog configure.in liboctave/ChangeLog liboctave/file-ops.cc src/ChangeLog src/utils.cc
diffstat 6 files changed, 81 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Jun 06 05:18:54 2007 +0000
+++ b/ChangeLog	Wed Jun 06 06:08:26 2007 +0000
@@ -1,3 +1,8 @@
+2007-06-06  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* configure.in: Check for utime.h and sys/utime.h headers.
+	Check for utime, _chmod, _utime, and _utime32 functions.
+
 2007-06-03  David Bateman  <dbateman@free.fr>
 
 	* configure.in (AC_CONFIG_FILES): Add src/mxarray.h
@@ -118,7 +123,7 @@
 
 	* octMakefile.in (DISTDIRS): Eliminate variable.
 
-2007-02-26  From Michael Goffioul  <michael.goffioul@swing.be>
+2007-02-26  Michael Goffioul  <michael.goffioul@swing.be>
 
 	* octMakefile.in, dlfcn/Makefile.in, emacs/Makefile.in:
 	Use $(LN_S) instead of ln or ln -s.
--- a/configure.in	Wed Jun 06 05:18:54 2007 +0000
+++ b/configure.in	Wed Jun 06 06:08:26 2007 +0000
@@ -29,7 +29,7 @@
 EXTERN_CXXFLAGS="$CXXFLAGS"
 
 AC_INIT
-AC_REVISION($Revision: 1.563 $)
+AC_REVISION($Revision: 1.564 $)
 AC_PREREQ(2.57)
 AC_CONFIG_SRCDIR([src/octave.cc])
 AC_CONFIG_HEADER(config.h)
@@ -1348,8 +1348,8 @@
   floatingpoint.h grp.h ieeefp.h inttypes.h limits.h locale.h memory.h nan.h \
   ncurses.h poll.h pwd.h stdint.h stdlib.h string.h sys/ioctl.h \
   sys/param.h sys/poll.h sys/resource.h sys/select.h sys/stat.h \
-  sys/time.h sys/times.h sys/types.h sys/utsname.h termcap.h \
-  unistd.h varargs.h)
+  sys/time.h sys/times.h sys/types.h sys/utsname.h sys/utime.h termcap.h \
+  unistd.h utime.h varargs.h)
 
 ### C++ headers
 
@@ -1403,7 +1403,7 @@
 
 ### Checks for functions and variables.
 
-AC_CHECK_FUNCS(atexit basename bcopy bzero canonicalize_file_name \
+AC_CHECK_FUNCS(atexit basename bcopy bzero canonicalize_file_name chmod \
   dup2 endgrent endpwent execvp fcntl fork getcwd getegid geteuid \
   getgid getgrent getgrgid getgrnam getpgrp getpid getppid getpwent \
   getpwuid gettimeofday getuid getwd _kbhit kill link localtime_r \
@@ -1412,7 +1412,8 @@
   setlocale setpwent setvbuf sigaction siglongjmp sigpending sigprocmask \
   sigsuspend stat strcasecmp strdup strerror stricmp \
   strncasecmp strnicmp strsignal symlink tempnam umask \
-  uname unlink usleep vfprintf vsprintf vsnprintf waitpid)
+  uname unlink usleep utime vfprintf vsprintf vsnprintf waitpid \
+  _chmod _utime _utime32)
 
 case "$canonical_host_type" in
   *-*-msdosmsvc)
--- a/liboctave/ChangeLog	Wed Jun 06 05:18:54 2007 +0000
+++ b/liboctave/ChangeLog	Wed Jun 06 06:08:26 2007 +0000
@@ -1,5 +1,15 @@
 2007-06-06  Michael Goffioul  <michael.goffioul@swing.be>
 
+	* file-ops.cc: Include sys/stat.h, fcntl.h, and utime.h or
+	sys/utime.h if they are available.
+	If _chmod is available but chmod is not, define chmod to _chmod
+	and define HAVE_CHMOD.  Likewise for utime and utimbuf.
+	If _S_IFMT is defined but S_IFMT is not, define S_IFMT to _S_IFMT.
+	Likewise for _O_RDONLY, _O_WRONLY, _O_CREAT and _O_BINARY.
+	(tilde_find_suffix, isolate_tilde_prefix, tilde_expand_word):
+	Use file_ops::is_dir_sep instead of comparing with
+	file_ops::dir_sep_char.
+
 	* MArray-C.cc: Sprinkle with OCTINTERP_API as needed.
 
 2007-06-04  David Bateman  <dbateman@free.fr>
--- a/liboctave/file-ops.cc	Wed Jun 06 05:18:54 2007 +0000
+++ b/liboctave/file-ops.cc	Wed Jun 06 06:08:26 2007 +0000
@@ -41,6 +41,20 @@
 #include <unistd.h>
 #endif
 
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+
+#if defined (HAVE_UTIME_H)
+#include <utime.h>
+#elif defined (HAVE_SYS_UTIME_H)
+#include <sys/utime.h>
+#endif
+
 #include "dir-ops.h"
 #include "file-ops.h"
 #include "file-stat.h"
@@ -63,13 +77,48 @@
 std::string file_ops::dir_sep_str ("/");
 #endif
 
-#if (defined (OCTAVE_HAVE_WINDOWS_FILESYSTEM) \
-     && defined (OCTAVE_HAVE_POSIX_FILESYSTEM))
+#if (defined (OCTAVE_HAVE_WINDOWS_FILESYSTEM)
 std::string file_ops::dir_sep_chars ("/\\");
 #else
 std::string file_ops::dir_sep_chars (file_ops::dir_sep_str);
 #endif
 
+#if ! defined (HAVE_CHMOD) && defined (HAVE__CHMOD)
+#define chmod _chmod
+#define HAVE_CHMOD 1
+#endif
+
+#if ! defined (HAVE_UTIME) \
+	&& (defined (HAVE__UTIME) || defined (HAVE__UTIME32))
+#define utime _utime
+#define utimbuf _utimbuf
+#define HAVE_UTIME 1
+#endif
+
+#if ! defined (S_IFMT) && defined (_S_IFMT)
+#define S_IFMT _S_IFMT
+#endif
+
+#if ! defined (O_RDONLY) && defined (_O_RDONLY)
+#define O_RDONLY _O_RDONLY
+#endif
+
+#if ! defined (O_WRONLY) && defined (_O_WRONLY)
+#define O_WRONLY _O_WRONLY
+#endif
+
+#if ! defined (O_CREAT) && defined (_O_CREAT)
+#define O_CREAT _O_CREAT
+#endif
+
+#ifndef O_BINARY
+#ifdef _O_BINARY
+#define O_BINARY _O_BINARY
+#else
+#define O_BINARY 0
+#endif
+#endif
+
 // We provide a replacement for mkdir().
 
 int
@@ -644,7 +693,7 @@
 
   for ( ; i < s_len; i++)
     {
-      if (s[i] == file_ops::dir_sep_char)
+      if (file_ops::is_dir_sep (s[i]))
 	break;
 
       if (! suffixes.empty ())
@@ -671,7 +720,7 @@
 
   size_t len = 1;
 
-  while (len < f_len && fname[len] != file_ops::dir_sep_char)
+  while (len < f_len && ! file_ops::is_dir_sep (fname[len]))
     len++;
 
   return fname.substr (1, len);
@@ -692,7 +741,7 @@
   // of $HOME or the home directory of the current user, regardless of
   // any preexpansion hook.
 
-  if (f_len == 1 || filename[1] == file_ops::dir_sep_char)
+  if (f_len == 1 || file_ops::is_dir_sep (filename[1]))
     return octave_env::get_home_directory () + filename.substr (1);
 
   std::string username = isolate_tilde_prefix (filename);
--- a/src/ChangeLog	Wed Jun 06 05:18:54 2007 +0000
+++ b/src/ChangeLog	Wed Jun 06 06:08:26 2007 +0000
@@ -1,3 +1,7 @@
+2007-06-06  Benjamin Lindner  <lindnerben@gmx.net>
+
+	* utils.cc [__MINGW32__]: Don't define HAVE_C99_VSNPRINTF.
+
 2007-06-06  Michael Goffioul  <michael.goffioul@swing.be>
 
 	* defaults.h.in, ls-hdf5.h, ov-complex.h, ov-cx-mat.h, ov-intx.h,
--- a/src/utils.cc	Wed Jun 06 05:18:54 2007 +0000
+++ b/src/utils.cc	Wed Jun 06 06:08:26 2007 +0000
@@ -950,7 +950,7 @@
 
 /* FIXME -- we really need a configure test for this.  */
 
-#if defined __GNUC__ && __GNUC__ >= 3
+#if defined __GNUC__ && __GNUC__ >= 3 && ! defined __MINGW32__
 #define HAVE_C99_VSNPRINTF 1
 #endif