changeset 10172:96ed9db3345c

provide wrappers for mkdir and mkfifo
author John W. Eaton <jwe@octave.org>
date Thu, 21 Jan 2010 04:02:29 -0500
parents 22400682d3aa
children 2b1f3f156aaf
files liboctave/ChangeLog liboctave/file-ops.cc liboctave/file-ops.h liboctave/lo-cutils.c liboctave/lo-utils.h
diffstat 5 files changed, 48 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/ChangeLog	Thu Jan 21 02:07:32 2010 -0500
+++ b/liboctave/ChangeLog	Thu Jan 21 04:02:29 2010 -0500
@@ -1,3 +1,13 @@
+2010-01-21  John W. Eaton  <jwe@octave.org>
+
+	* file-ops.h (file_ops::mkdir): Move definitions to file-ops.cc.
+	(file_ops::mkfifo): Move definitions to file-ops.cc.
+	(file_ops::mkdir_internal, file_ops::mkfifo_internal): Delete decls.
+	* file-ops.cc (file_ops::mkdir): Call octave_mkdir.
+	(file_ops::mkfifo): Call octave_mkfifo.
+	* lo-cutils.c (octave_mkdir, octave_mkfifo): New functions.
+	* lo-utils.h: Provide decls.
+
 2010-01-21  John W. Eaton  <jwe@octave.org>
 
 	* Makefile.am (LIBOCTAVE_C_SOURCES): Remove strptime.c from the list.
--- a/liboctave/file-ops.cc	Thu Jan 21 02:07:32 2010 -0500
+++ b/liboctave/file-ops.cc	Thu Jan 21 04:02:29 2010 -0500
@@ -95,14 +95,20 @@
 // We provide a replacement for mkdir().
 
 int
-file_ops::mkdir_internal (const std::string& name, mode_t mode,
-                          std::string& msg)
+file_ops::mkdir (const std::string& nm, mode_t md)
+{
+  std::string msg;
+  return mkdir (nm, md, msg);
+}
+
+int
+file_ops::mkdir (const std::string& name, mode_t mode, std::string& msg)
 {
   msg = std::string ();
 
   int status = -1;
 
-  status = ::mkdir (name.c_str (), mode);
+  status = octave_mkdir (name.c_str (), mode);
 
   if (status < 0)
     {
@@ -116,8 +122,14 @@
 // I don't know how to emulate this on systems that don't provide it.
 
 int
-file_ops::mkfifo_internal (const std::string& name, mode_t mode,
-                           std::string& msg)
+file_ops::mkfifo (const std::string& nm, mode_t md)
+{
+  std::string msg;
+  return mkfifo (nm, md, msg);
+}
+
+int
+file_ops::mkfifo (const std::string& name, mode_t mode, std::string& msg)
 {
   msg = std::string ();
 
@@ -127,7 +139,7 @@
   // don't have working mkfifo functions.  On those systems, mkfifo will
   // always return -1 and set errno.
 
-  status = ::mkfifo (name.c_str (), mode);
+  status = octave_mkfifo (name.c_str (), mode);
 
   if (status < 0)
     {
--- a/liboctave/file-ops.h	Thu Jan 21 02:07:32 2010 -0500
+++ b/liboctave/file-ops.h	Thu Jan 21 04:02:29 2010 -0500
@@ -37,27 +37,11 @@
 {
 public:
 
-  static int mkdir (const std::string& nm, mode_t md)
-  {
-    std::string msg;
-    return mkdir_internal (nm, md, msg);
-  }
-
-  static int mkdir (const std::string& nm, mode_t md, std::string& msg)
-  {
-    return mkdir_internal (nm, md, msg);
-  }
+  static int mkdir (const std::string& nm, mode_t md);
+  static int mkdir (const std::string& nm, mode_t md, std::string& msg);
 
-  static int mkfifo (const std::string& nm, mode_t md)
-  {
-    std::string msg;
-    return mkfifo_internal (nm, md, msg);
-  }
-
-  static int mkfifo (const std::string& nm, mode_t md, std::string& msg)
-  {
-    return mkfifo_internal (nm, md, msg);
-  }
+  static int mkfifo (const std::string& nm, mode_t md);
+  static int mkfifo (const std::string& nm, mode_t md, std::string& msg);
 
   static int link (const std::string&, const std::string&);
   static int link (const std::string&, const std::string&, std::string&);
--- a/liboctave/lo-cutils.c	Thu Jan 21 02:07:32 2010 -0500
+++ b/liboctave/lo-cutils.c	Thu Jan 21 04:02:29 2010 -0500
@@ -52,6 +52,18 @@
 
 #include "syswait.h"
 
+OCTAVE_API int
+octave_mkdir (const char *name, mode_t mode)
+{
+  return mkdir (name, mode);
+}
+
+OCTAVE_API int
+octave_mkfifo (const char *name, mode_t mode)
+{
+  return mkfifo (name, mode);
+}
+
 OCTAVE_API void
 octave_qsort (void *base, size_t n, size_t size,
 	      int (*cmp) (const void *, const void *))
--- a/liboctave/lo-utils.h	Thu Jan 21 02:07:32 2010 -0500
+++ b/liboctave/lo-utils.h	Thu Jan 21 04:02:29 2010 -0500
@@ -51,6 +51,10 @@
 
 extern "C" OCTAVE_API int octave_gethostname (char *, int);
 
+extern "C" OCTAVE_API int octave_mkdir (const char *name, mode_t mode);
+
+extern "C" OCTAVE_API int octave_mkfifo (const char *name, mode_t mode);
+
 extern "C" OCTAVE_API void octave_qsort (void *base, size_t n, size_t size,
 			      int (*cmp) (const void *, const void *));