From 2c39191ef10d639da49fa0fcc7c61c6a59c12a06 Mon Sep 17 00:00:00 2001 From: Dave Belanger Date: Tue, 21 Oct 2003 23:51:06 +0000 Subject: [PATCH] Fix splitpath and wsplitpath for the file extension. --- dlls/msvcrt/dir.c | 7 +++++-- dlls/ntdll/string.c | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/dlls/msvcrt/dir.c b/dlls/msvcrt/dir.c index a5ba3da6567..ef32d046f51 100644 --- a/dlls/msvcrt/dir.c +++ b/dlls/msvcrt/dir.c @@ -463,8 +463,11 @@ void _wsplitpath(const MSVCRT_wchar_t *inpath, MSVCRT_wchar_t *drv, MSVCRT_wchar } else if (dir) dir[0] = 0; - /* look for extension */ - for (end = inpath; *end; end++) if (*end == '.') break; + /* look for extension: what's after the last dot */ + end = NULL; + for (p = inpath; *p; p++) if (*p == '.') end = p; + + if (!end) end = p; /* there's no extension */ if (fname) { diff --git a/dlls/ntdll/string.c b/dlls/ntdll/string.c index 45e96af7af7..d51a2965890 100644 --- a/dlls/ntdll/string.c +++ b/dlls/ntdll/string.c @@ -376,8 +376,11 @@ void __cdecl _splitpath(const char* inpath, char * drv, char * dir, } else if (dir) dir[0] = 0; - /* look for extension */ - for (end = inpath; *end; end++) if (*end == '.') break; + /* look for extension: what's after the last dot */ + end = NULL; + for (p = inpath; *p; p++) if (*p == '.') end = p; + + if (!end) end = p; /* there's no extension */ if (fname) {