]> Creatis software - creaImageIO.git/commitdiff
no message
authorEduardo Davila <Eduardo.Davila@creatis.insa-lyon.fr>
Wed, 17 Jun 2009 17:10:59 +0000 (17:10 +0000)
committerEduardo Davila <Eduardo.Davila@creatis.insa-lyon.fr>
Wed, 17 Jun 2009 17:10:59 +0000 (17:10 +0000)
src2/creaImageIOGimmick.cpp
src2/creaImageIOGimmick.h

index 413a83699eff2d0adbec0f279f2746cfd7ccdca2..5aa2c105cb4b5985cdc797719bd622403cd3038b 100644 (file)
@@ -209,129 +209,6 @@ namespace creaImageIO
   }
   //================================================================
 
-  //================================================================
-  int Gimmick::GetBinaryDirectory(char *pname, size_t pathsize)
-  {
-
-       #ifdef LINUX    
-               /* Oddly, the readlink(2) man page says no NULL is appended. */
-               /* So you have to do it yourself, based on the return value: */
-               pathsize --; /* Preserve a space to add the trailing NULL */
-               long result = readlink("/proc/self/exe", pname, pathsize);
-               if (result > 0)
-               {
-                       pname[result] = 0; /* add the #@!%ing NULL */
-                       
-                       if ((access(pname, 0) == 0))
-                               return 0; /* file exists, return OK */
-                       /*else name doesn't seem to exist, return FAIL (falls
-                       through) */
-               }
-       #endif /* LINUX */
-           
-       #ifdef WIN32
-               long result = GetModuleFileName(NULL, pname, pathsize);
-               if (result > 0)
-               {
-                       /* fix up the dir slashes... */
-                       int len = strlen(pname);
-                       int idx;
-                       for (idx = 0; idx < len; idx++)
-                       {
-                               if (pname[idx] == '\\') pname[idx] = '/';
-                       }
-                       
-                       for (idx = len-1; idx >=0 ; idx--)
-                       {
-                               if (pname[idx] == '/')
-                               { 
-                                       pname[idx+1] = '\0';
-                                       idx = -1;
-                               }
-                       }
-                       
-                       if ((access(pname, 0) == 0))
-                               return 0; /* file exists, return OK */
-                       /*else name doesn't seem to exist, return FAIL (falls
-                       through) */
-               }
-       #endif /* WIN32 */
-           
-       #ifdef SOLARIS
-               char *p = getexecname();
-               if (p)
-               {
-                       /* According to the Sun manpages, getexecname will
-                       "normally" return an */
-                       /* absolute path - BUT might not... AND that IF it is not,
-                       pre-pending */
-                       /* getcwd() will "usually" be the correct thing... Urgh!
-                       */
-                       
-                       /* check pathname is absolute (begins with a / ???) */
-                       if (p[0] == '/') /* assume this means we have an
-                       absolute path */
-                       {
-                               strncpy(pname, p, pathsize);
-                               if ((access(pname, 0) == 0))
-                                       return 0; /* file exists, return OK */
-                       }
-                       else /* if not, prepend getcwd() then check if file
-                       exists */
-                       {
-                               getcwd(pname, pathsize);
-                               long result = strlen(pname);
-                               strncat(pname, "/", (pathsize - result));
-                               result ++;
-                               strncat(pname, p, (pathsize - result));
-                               
-                               if ((access(pname, 0) == 0))
-                                       return 0; /* file exists, return OK */
-                               /*else name doesn't seem to exist, return FAIL
-                               (falls through) */
-                       }
-               }
-       #endif /* SOLARIS */
-           
-       #ifdef MACOSX /* assume this is OSX */
-               /*
-               from http://www.hmug.org/man/3/NSModule.html
-                
-               extern int _NSGetExecutablePath(char *buf, unsigned long
-               *bufsize);
-                
-               _NSGetExecutablePath  copies  the  path  of the executable
-               into the buffer and returns 0 if the path was successfully
-               copied  in the provided buffer. If the buffer is not large
-               enough, -1 is returned and the  expected  buffer  size  is
-               copied  in  *bufsize.  Note that _NSGetExecutablePath will
-               return "a path" to the executable not a "real path" to the
-               executable.  That  is  the path may be a symbolic link and
-               not the real file. And with  deep  directories  the  total
-               bufsize needed could be more than MAXPATHLEN.
-               */
-               
-               int status = -1;
-               char *given_path = (char*)malloc(MAXPATHLEN * 2);
-               if (!given_path) return status;
-           
-               uint32_t npathsize = MAXPATHLEN * 2;
-               long result = _NSGetExecutablePath(given_path, &npathsize);
-               if (result == 0)
-               { /* OK, we got something - now try and resolve the real path...
-               */
-                       if (realpath(given_path, pname) != NULL)
-                       {
-                               if ((access(pname, 0) == 0))
-                                       status = 0; /* file exists, return OK */
-                       }
-               }
-               free (given_path);
-               return status;
-       #endif /* MACOSX */
-           
-               return -1; /* Path Lookup Failed */
-  }
 
   //================================================================
   const std::string& Gimmick::GetLocalDatabasePath()
@@ -387,7 +264,9 @@ namespace creaImageIO
        if(!boost::filesystem::is_regular(setDir))
        {
                char name[PATH_MAX];
-               int err = GetBinaryDirectory(name, PATH_MAX);
+//EED          int err = GetBinaryDirectory(name, PATH_MAX);
+               crea::System::GetAppPath(name,PATH_MAX);
+               
                std::string path=name;
                path=path.substr(0,path.size()-1);
                path=path.substr(0,path.find_last_of("/"));
index 99908d6077e8e9e7c6227bc261edb5e3f41665b3..458720b39a93633811eb71464f948d4734625a05 100644 (file)
@@ -151,7 +151,6 @@ namespace creaImageIO
     /// 
     const std::string& GetHomeDirectory();
     const std::string& GetUserSettingsDirectory();
-       int GetBinaryDirectory(char *pname, size_t pathsize);
     void CreateUserSettingsDirectory();
     const std::string& GetLocalDatabasePath();
        const std::string& GetTimestampDatabasePath();