diff options
author | Warren Dukes <warren.dukes@gmail.com> | 2004-06-21 04:11:23 +0000 |
---|---|---|
committer | Warren Dukes <warren.dukes@gmail.com> | 2004-06-21 04:11:23 +0000 |
commit | 598162e395ca82db078ff306ba4f7adae3c8bf4b (patch) | |
tree | ffcb3698ec2f182bd50852276e241ee5b8fab1bb | |
parent | 49455434f4f04784c02d4d23cfaa7688a3d4edbf (diff) |
todo update
git-svn-id: https://svn.musicpd.org/mpd/trunk@1597 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-rw-r--r-- | TODO | 4 | ||||
-rw-r--r-- | src/ls.c | 59 | ||||
-rw-r--r-- | src/ls.h | 8 |
3 files changed, 30 insertions, 41 deletions
@@ -1,4 +1,8 @@ *) deal with recursive symlinks + *) only check symbolic links when updating adding! + *) don't keep track of inodes or devices in db + *) use inodes and devices for checking for recursive symlinks on the fly + *) implement this in updateDirectoryDb and exploreDirectory *) Optimize read() on cleints @@ -190,14 +190,19 @@ int lsPlaylists(FILE * fp, char * utf8path) { return 0; } -int isFile(char * utf8file, time_t * mtime) { - struct stat st; +int myStat(char * utf8file, struct stat * st) { char * file = utf8ToFsCharset(utf8file); char * actualFile = file; if(actualFile[0]!='/') actualFile = rmp2amp(file); - if(stat(actualFile,&st)==0) { + return stat(actualFile,st); +} + +int isFile(char * utf8file, time_t * mtime) { + struct stat st; + + if(myStat(utf8file,&st)) { if(S_ISREG(st.st_mode)) { if(mtime) *mtime = st.st_mtime; return 1; @@ -233,57 +238,31 @@ int isPlaylist(char * utf8file) { return 0; } -int hasWaveSuffix(char * utf8file) { - return hasSuffix(utf8file,"wav"); -} - -int hasFlacSuffix(char * utf8file) { - return hasSuffix(utf8file,"flac"); -} - -int hasOggSuffix(char * utf8file) { - return hasSuffix(utf8file,"ogg"); -} - -int hasAacSuffix(char * utf8file) { - return hasSuffix(utf8file,"aac"); -} - -int hasMp4Suffix(char * utf8file) { - if(hasSuffix(utf8file,"mp4")) return 1; - if(hasSuffix(utf8file,"m4a")) return 1; - return 0; -} - -int hasMp3Suffix(char * utf8file) { - return hasSuffix(utf8file,"mp3"); -} - int isDir(char * utf8name) { struct stat st; - if(stat(rmp2amp(utf8ToFsCharset(utf8name)),&st)==0) { + if(myStat(utf8name,&st)==0) { if(S_ISDIR(st.st_mode)) { return 1; } } - else { - DEBUG("isDir: unable to stat: %s (%s)\n",utf8name, - rmp2amp(utf8ToFsCharset(utf8name))); - } return 0; } -InputPlugin * isMusic(char * utf8file, time_t * mtime) { +InputPlugin * hasMusicSuffix(char * utf8file) { InputPlugin * ret = NULL; - if(isFile(utf8file,mtime)) { - char * s = getSuffix(utf8file); - if(s) ret = getInputPluginFromSuffix(s); - } + char * s = getSuffix(utf8file); + if(s) ret = getInputPluginFromSuffix(s); return ret; } -/* vim:set shiftwidth=4 tabstop=8 expandtab: */ +InputPlugin * isMusic(char * utf8file, time_t * mtime) { + if(isFile(utf8file,mtime)) { + return hasMusicSuffix(utf8file); + } + + return NULL; +} @@ -24,6 +24,9 @@ #include "inputPlugin.h" #include <stdio.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> #include <time.h> int lsPlaylists(FILE * fp, char * utf8path); @@ -34,12 +37,16 @@ int isValidRemoteUtf8Url(char * utf8url); int isRemoteUrl(char * url); +int myStat(char * utf8file, struct stat * st); + int isFile(char * utf8file, time_t * mtime); int isDir(char * utf8name); int isPlaylist(char * utf8file); +InputPlugin * hasMusicSuffix(char * utf8file); + InputPlugin * isMusic(char * utf8file, time_t * mtime); char * dupAndStripPlaylistSuffix(char * file); @@ -47,4 +54,3 @@ char * dupAndStripPlaylistSuffix(char * file); int printRemoteUrlHandlers(FILE * fp); #endif -/* vim:set shiftwidth=4 tabstop=8 expandtab: */ |