[vlc-commits] make_URI: use vlc_getcwd()

Rémi Denis-Courmont git at videolan.org
Mon Jul 11 17:52:25 CEST 2011


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Mon Jul 11 18:49:19 2011 +0300| [2e92359b381db4bd8f1fce7e6360bebc6f44d7c7] | committer: Rémi Denis-Courmont

make_URI: use vlc_getcwd()

This lifts the PATH_MAX characters limit, and should fix encoding on
POSIX non-UTF-8 systems.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=2e92359b381db4bd8f1fce7e6360bebc6f44d7c7
---

 src/text/strings.c |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/text/strings.c b/src/text/strings.c
index 830d8c4..ca56bcc 100644
--- a/src/text/strings.c
+++ b/src/text/strings.c
@@ -47,6 +47,7 @@
 #include <vlc_strings.h>
 #include <vlc_url.h>
 #include <vlc_charset.h>
+#include <vlc_fs.h>
 #include <libvlc.h>
 #include <errno.h>
 
@@ -1129,13 +1130,15 @@ char *make_URI (const char *path, const char *scheme)
     else
     if (path[0] != DIR_SEP_CHAR)
     {   /* Relative path: prepend the current working directory */
-        char cwd[PATH_MAX];
+        char *cwd, *ret;
 
-        if (getcwd (cwd, sizeof (cwd)) == NULL) /* FIXME: UTF8? */
+        if ((cwd = vlc_getcwd ()) == NULL)
             return NULL;
-        if (asprintf (&buf, "%s/%s", cwd, path) == -1)
-            return NULL;
-        char *ret = make_URI (buf, scheme);
+        if (asprintf (&buf, "%s"DIR_SEP"%s", cwd, path) == -1)
+            buf = NULL;
+
+        free (cwd);
+        ret = (buf != NULL) ? make_URI (buf, scheme) : NULL;
         free (buf);
         return ret;
     }



More information about the vlc-commits mailing list