OSDN Git Service

VER0.1.0 final?
[lib1stclass/main.git] / rmkdir.c
index aa4ebe3..c8f0796 100755 (executable)
--- a/rmkdir.c
+++ b/rmkdir.c
@@ -1,3 +1,10 @@
+/*
+* See the file LICENSE for redistribution information.
+*
+* Copyright: 2010- 1stclass.co.jp.  All rights reserved.
+*
+* Created by Hajime Kurita
+*/
 #include <stdio.h>
 #include <sys/stat.h>
 #include <dirent.h>
 #ifdef __cplusplus
 #include "1stclass.hpp"
 int firstclass::rmkdir(const string in_dir){
-  char *check_dir=NULL;
-  try{
-  check_dir=new char[sizeof(char)*(in_dir.length()+1)];
-  safe_strcat(check_dir, in_dir.c_str());
+  char abs_dir[2048]="";
+  string abs_dir_str=rel2abs(in_dir);
+  safe_strcat(abs_dir, abs_dir_str.c_str());
 #else
 #include "1stclass.h"
 int rmkdir(const char *check_dir){
+  char abs_dir[2048]="";
+  rel2abs(check_dir, abs_dir);
 #endif
-
+  
   struct stat st;
   char *token_p=NULL;
-  char dir_path[512]="";
-  char moto[512]="";
-  if(stat(check_dir, &st)!=0){
-    if(mkdir(check_dir, 0755)==0){
+  char dir_path[2048]="";
+  char moto[2048]="";
+  if(stat(abs_dir, &st)!=0){
+    if(mkdir(abs_dir, 0755)==0){
     }
     else{
-      safe_strcat(moto, check_dir);
+      safe_strcat(moto, abs_dir);
       token_p=strtok(moto, "/");
       safe_strcat(dir_path, "/");
       safe_strcat(dir_path, token_p);
@@ -31,9 +39,6 @@ int rmkdir(const char *check_dir){
         if(mkdir(dir_path, 0755)==0){
         }
         else{
-#ifdef __cplusplus
-  delete check_dir;
-#endif
           return 1;
         }
       }
@@ -44,23 +49,11 @@ int rmkdir(const char *check_dir){
           if(mkdir(dir_path, 0755)==0){
           }
           else{
-#ifdef __cplusplus
-  delete check_dir;
-#endif
             return 1;
           }
         }
       }
     }
   }
-#ifdef __cplusplus
-  delete check_dir;
-  }
-  catch(...){
-    if(check_dir!=NULL)
-      delete check_dir;
-    return 1;
-  }
-#endif
   return 0;
 }