From e078eddff98e54e11dc3d59b248073d434d5da8b Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Fri, 10 May 2002 06:54:33 +0000 Subject: x11_opendir() now fails properly in case the dir doesn't exist git-svn-id: svn://svn.rockbox.org/rockbox/trunk@537 a1c6a512-1295-4272-9138-f99709370657 --- uisimulator/x11/io.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/uisimulator/x11/io.c b/uisimulator/x11/io.c index 1e2ebd76c0..17a0c94b70 100644 --- a/uisimulator/x11/io.c +++ b/uisimulator/x11/io.c @@ -19,18 +19,24 @@ typedef struct mydir MYDIR; MYDIR *x11_opendir(char *name) { char buffer[256]; /* sufficiently big */ - MYDIR *my = (MYDIR *)malloc(sizeof(MYDIR)); + DIR *dir; if(name[0] == '/') { sprintf(buffer, "%s%s", SIMULATOR_ARCHOS_ROOT, name); - my->dir=(DIR *)opendir(buffer); + dir=(DIR *)opendir(buffer); } else - my->dir=(DIR *)opendir(name); - - my->name = (char *)strdup(name); + dir=(DIR *)opendir(name); + + if(dir) { + MYDIR *my = (MYDIR *)malloc(sizeof(MYDIR)); + my->dir = dir; + my->name = (char *)strdup(name); - return my; + return my; + } + /* failed open, return NULL */ + return (MYDIR *)0; } struct x11_dirent *x11_readdir(MYDIR *dir) -- cgit v1.2.3