From fb26bfb662e7939b6646d290ad658fe1bdbffc8e Mon Sep 17 00:00:00 2001 From: Hardeep Sidhu Date: Mon, 14 Jun 2004 07:00:50 +0000 Subject: Fixed VC++ build. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4739 a1c6a512-1295-4272-9138-f99709370657 --- uisimulator/win32/dir-win32.c | 91 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 uisimulator/win32/dir-win32.c (limited to 'uisimulator/win32/dir-win32.c') diff --git a/uisimulator/win32/dir-win32.c b/uisimulator/win32/dir-win32.c new file mode 100644 index 0000000000..6f14e798be --- /dev/null +++ b/uisimulator/win32/dir-win32.c @@ -0,0 +1,91 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2002 by Felix Arends + * + * All files in this archive are subject to the GNU General Public License. + * See the file COPYING in the source tree root for full license agreement. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#include +#include +#include +#include "dir-win32.h" + +// Directory operations +// + +// opendir +// open directory for scanning +DIR *opendir ( + const char *dirname // directory name + ) +{ + DIR *p = (DIR*)malloc(sizeof(DIR)); + struct _finddata_t fd; + unsigned int i; + char *s = (char*)malloc(strlen(dirname) + 5); + wsprintf (s, "%s", dirname); + + for (i = 0; i < strlen(s); i++) + if (s[i] == '/') + s[i] = '\\'; + + if (s[i - 1] != '\\') + { + s[i] = '\\'; + s[++i] = '\0'; + } + + OutputDebugString (s); + + wsprintf (s, "%s*.*", s); + + if ((p->handle = _findfirst (s, &fd)) == -1) + { + free (s); + free (p); + return 0; + } + free (s); + return p; +} + +// closedir +// close directory +int closedir ( + DIR *dir // previously opened dir search + ) +{ + free(dir); + return 0; +} + +// read dir +// read next entry in directory +struct dirent *readdir ( + DIR *dir + ) +{ + struct _finddata_t fd; + if (_findnext (dir->handle, &fd) == -1) + return 0; + memcpy (dir->fd.d_name, fd.name, 256); + + dir->fd.attribute = fd.attrib & 0x3f; + dir->fd.size = fd.size; + dir->fd.startcluster = 0 ; + + + return &dir->fd; +} -- cgit v1.2.3