[vlc-commits] vlc_path2ri: set errno to disthinguish errors (refs #10792)
Rémi Denis-Courmont
git at videolan.org
Wed Feb 26 17:24:59 CET 2014
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Wed Feb 26 18:22:43 2014 +0200| [74167c1e8ccab71e96909f09d825888eaeafdbdd] | committer: Rémi Denis-Courmont
vlc_path2ri: set errno to disthinguish errors (refs #10792)
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=74167c1e8ccab71e96909f09d825888eaeafdbdd
---
src/text/url.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/src/text/url.c b/src/text/url.c
index 40043ba..3492a54 100644
--- a/src/text/url.c
+++ b/src/text/url.c
@@ -23,6 +23,7 @@
# include "config.h"
#endif
+#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
@@ -147,12 +148,15 @@ char *encode_URI_component (const char *str)
* @param path path to convert (or URI to copy)
* @param scheme URI scheme to use (default is auto: "file", "fd" or "smb")
* @return a nul-terminated URI string (use free() to release it),
- * or NULL in case of error
+ * or NULL in case of error (errno will be set accordingly)
*/
char *vlc_path2uri (const char *path, const char *scheme)
{
if (path == NULL)
+ {
+ errno = EINVAL;
return NULL;
+ }
if (scheme == NULL && !strcmp (path, "-"))
return strdup ("fd://0"); // standard input
/* Note: VLC cannot handle URI schemes without double slash after the
@@ -180,7 +184,10 @@ char *vlc_path2uri (const char *path, const char *scheme)
path += 2;
# warning Drive letter-relative path not implemented!
if (path[0] != DIR_SEP_CHAR)
+ {
+ errno = ENOTSUP;
return NULL;
+ }
}
else
#endif
@@ -188,7 +195,10 @@ char *vlc_path2uri (const char *path, const char *scheme)
{ /* Windows UNC paths */
#if !defined( _WIN32 ) && !defined( __OS2__ )
if (scheme != NULL)
+ {
+ errno = ENOTSUP;
return NULL; /* remote files not supported */
+ }
/* \\host\share\path -> smb://host/share/path */
if (strchr (path + 2, '\\') != NULL)
More information about the vlc-commits
mailing list