mapper, update, ...: use g_build_filename(), G_DIR_SEPARATOR, ...

Try to be as portable as possible, use GLib path name functions and
macros.
This commit is contained in:
Max Kellermann 2009-10-20 21:01:55 +02:00
parent 447e4d3583
commit c953d6409d
7 changed files with 10 additions and 11 deletions

View File

@ -74,7 +74,7 @@ decoder_file_decode(const struct decoder_plugin *plugin,
assert(decoder->stream_tag == NULL);
assert(decoder->decoder_tag == NULL);
assert(path != NULL);
assert(path[0] == '/');
assert(g_path_is_absolute(path));
assert(dc.state == DECODE_STATE_START);
decoder_unlock();

View File

@ -39,7 +39,7 @@ input_file_open(struct input_stream *is, const char *filename)
char* pathname = g_strdup(filename);
if (filename[0] != '/')
if (!g_path_is_absolute(filename))
{
g_free(pathname);
return false;

View File

@ -169,10 +169,10 @@ map_fs_to_utf8(const char *path_fs)
{
if (music_dir != NULL &&
strncmp(path_fs, music_dir, music_dir_length) == 0 &&
path_fs[music_dir_length] == '/')
G_IS_DIR_SEPARATOR(path_fs[music_dir_length]))
/* remove musicDir prefix */
path_fs += music_dir_length + 1;
else if (path_fs[0] == '/')
else if (G_IS_DIR_SEPARATOR(path_fs[0]))
/* not within musicDir */
return NULL;

View File

@ -54,7 +54,7 @@ playlist_print_uri(FILE *file, const char *uri)
char *s;
if (playlist_saveAbsolutePaths && !uri_has_scheme(uri) &&
uri[0] != '/')
!g_path_is_absolute(uri))
s = map_uri_fs(uri);
else
s = utf8_to_fs_charset(uri);

View File

@ -39,7 +39,7 @@ song_file_load(const char *path, struct directory *parent)
struct song *song;
bool ret;
assert((parent == NULL) == (*path == '/'));
assert((parent == NULL) == g_path_is_absolute(path));
assert(!uri_has_scheme(path));
assert(strchr(path, '\n') == NULL);

View File

@ -620,7 +620,7 @@ skip_symlink(const struct directory *directory, const char *utf8_name)
p = buffer;
while (*p == '.') {
if (p[1] == '.' && p[2] == '/') {
if (p[1] == '.' && G_IS_DIR_SEPARATOR(p[2])) {
/* "../" moves to parent directory */
directory = directory->parent;
if (directory == NULL) {
@ -630,7 +630,7 @@ skip_symlink(const struct directory *directory, const char *utf8_name)
return !follow_outside_symlinks;
}
p += 3;
} else if (p[1] == '/')
} else if (G_IS_DIR_SEPARATOR(p[1]))
/* eliminate "./" */
p += 2;
else
@ -675,8 +675,7 @@ updateDirectory(struct directory *directory, const struct stat *st)
return false;
}
exclude_path_fs = g_strconcat(path_fs, G_DIR_SEPARATOR_S,
".mpdignore", NULL);
exclude_path_fs = g_build_filename(path_fs, ".mpdignore", NULL);
exclude_list = exclude_list_load(exclude_path_fs);
g_free(exclude_path_fs);

View File

@ -44,7 +44,7 @@
char *parsePath(char *path)
{
#ifndef WIN32
if (path[0] != '/' && path[0] != '~') {
if (!g_path_is_absolute(path) && path[0] != '~') {
g_warning("\"%s\" is not an absolute path", path);
return NULL;
} else if (path[0] == '~') {