diff options
author | Danny Smith <dannysmith@users.sourceforge.net> | 2005-04-24 10:26:37 +0000 |
---|---|---|
committer | Danny Smith <dannysmith@users.sourceforge.net> | 2005-04-24 10:26:37 +0000 |
commit | 4fc953d6a1448be843847bfbd29e022d78134eee (patch) | |
tree | bbd12869cd382f11ec0e25ea1a750376cbad070b | |
parent | bc79d164539c13d40ea7f3eac012bbabc17579cb (diff) | |
download | newlib-4fc953d6a1448be843847bfbd29e022d78134eee.zip newlib-4fc953d6a1448be843847bfbd29e022d78134eee.tar.gz newlib-4fc953d6a1448be843847bfbd29e022d78134eee.tar.bz2 |
2005-04-23 Wu Yongwei <adah@sh163.net>
mingwex/dirent.c: Formatting changes.
mingwex/dirent.c (_topendir): Make the end-of-path slash check
MBCS-safe.
-rw-r--r-- | winsup/mingw/ChangeLog | 7 | ||||
-rw-r--r-- | winsup/mingw/mingwex/dirent.c | 18 |
2 files changed, 18 insertions, 7 deletions
diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog index e8406b5..093b09d 100644 --- a/winsup/mingw/ChangeLog +++ b/winsup/mingw/ChangeLog @@ -1,3 +1,10 @@ +2005-04-23 Wu Yongwei <adah@sh163.net> + + mingwex/dirent.c: Formatting changes. + + mingwex/dirent.c (_topendir): Make the end-of-path slash check + MBCS-safe. + 2005-03-31 Danny Smith <dannysmith@users.sourceforge.net> * include/_mingw.h (__MINGW_ATTRIB_NONNULL): Define. diff --git a/winsup/mingw/mingwex/dirent.c b/winsup/mingw/mingwex/dirent.c index 4cfa9c7..3a841d2 100644 --- a/winsup/mingw/mingwex/dirent.c +++ b/winsup/mingw/mingwex/dirent.c @@ -75,8 +75,10 @@ _topendir (const _TCHAR *szPath) /* Allocate enough space to store DIR structure and the complete * directory path given. */ - nd = (_TDIR *) malloc (sizeof (_TDIR) + (_tcslen(szFullPath) + _tcslen (SLASH) + - _tcslen(SUFFIX) + 1) * sizeof(_TCHAR)); + nd = (_TDIR *) malloc (sizeof (_TDIR) + (_tcslen (szFullPath) + + _tcslen (SLASH) + + _tcslen (SUFFIX) + 1) + * sizeof (_TCHAR)); if (!nd) { @@ -89,9 +91,11 @@ _topendir (const _TCHAR *szPath) _tcscpy (nd->dd_name, szFullPath); /* Add on a slash if the path does not end with one. */ - if (nd->dd_name[0] != _T('\0') && - nd->dd_name[_tcslen (nd->dd_name) - 1] != _T('/') && - nd->dd_name[_tcslen (nd->dd_name) - 1] != _T('\\')) + if (nd->dd_name[0] != _T('\0') + && _tcsrchr (nd->dd_name, _T('/')) != nd->dd_name + + _tcslen (nd->dd_name) - 1 + && _tcsrchr (nd->dd_name, _T('\\')) != nd->dd_name + + _tcslen (nd->dd_name) - 1) { _tcscat (nd->dd_name, SLASH); } @@ -148,7 +152,7 @@ _treaddir (_TDIR * dirp) /* Start the search */ dirp->dd_handle = _tfindfirst (dirp->dd_name, &(dirp->dd_dta)); - if (dirp->dd_handle == -1) + if (dirp->dd_handle == -1) { /* Whoops! Seems there are no files in that * directory. */ @@ -167,7 +171,7 @@ _treaddir (_TDIR * dirp) /* We are off the end or otherwise error. _findnext sets errno to ENOENT if no more file Undo this. */ - DWORD winerr = GetLastError(); + DWORD winerr = GetLastError (); if (winerr == ERROR_NO_MORE_FILES) errno = 0; _findclose (dirp->dd_handle); |