additional Andrew provided Termux mods +
[goodguy/cinelerra.git] / cinelerra-5.1 / guicast / filesystem.C
index ebc2007da9e145744e7d5b85dc05915ff79763f3..b1ace6fd7478d4eeda1fd2a83579ee5e43d430e6 100644 (file)
@@ -536,7 +536,7 @@ int FileSystem::parse_tildas(char *new_dir)
                                new_user[j] = new_dir[i];
                        }
                        new_user[j] = 0;
-
+#if !defined(__TERMUX__)
                        setpwent();
                        while( (pw = getpwent()) != 0 )
                        {
@@ -550,6 +550,7 @@ int FileSystem::parse_tildas(char *new_dir)
                        }
                        }
                        endpwent();
+#endif
                        return 0;
                }
        }
@@ -667,18 +668,12 @@ int FileSystem::extract_dir(char *out, const char *in)
 
 int FileSystem::extract_name(char *out, const char *in, int test_dir)
 {
-       int i;
-
        if(test_dir && is_dir(in))
                out[0] = 0; // complete string is directory
-       else
-       {
-               for(i = strlen(in)-1; i > 0 && in[i] != '/'; i--)
-               {
-                       ;
-               }
-               if(in[i] == '/') i++;
-               strcpy(out, &in[i]);
+       else {
+               const char *cp = strrchr(in, '/');
+               const char *bp = !cp ? in : cp + 1;
+               strcpy(out, bp);
        }
        return 0;
 }