From 60b3db6b98bd91f2d5c7b6093c4df7ab4ba72c17 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Sat, 25 Apr 2020 22:53:36 -0500 Subject: [PATCH] cmd: Use _wsplitpath() from msvcrt. Signed-off-by: Zebediah Figura Signed-off-by: Alexandre Julliard --- programs/cmd/batch.c | 54 +--------------------------------------- programs/cmd/builtins.c | 10 ++++---- programs/cmd/directory.c | 6 ++--- programs/cmd/wcmd.h | 1 - 4 files changed, 9 insertions(+), 62 deletions(-) diff --git a/programs/cmd/batch.c b/programs/cmd/batch.c index 371f75af546..06437ecf1b5 100644 --- a/programs/cmd/batch.c +++ b/programs/cmd/batch.c @@ -301,58 +301,6 @@ WCHAR *WCMD_fgets(WCHAR *buf, DWORD noChars, HANDLE h) return buf; } -/* WCMD_splitpath - copied from winefile as no obvious way to use it otherwise */ -void WCMD_splitpath(const WCHAR* path, WCHAR* drv, WCHAR* dir, WCHAR* name, WCHAR* ext) -{ - const WCHAR* end; /* end of processed string */ - const WCHAR* p; /* search pointer */ - const WCHAR* s; /* copy pointer */ - - /* extract drive name */ - if (path[0] && path[1]==':') { - if (drv) { - *drv++ = *path++; - *drv++ = *path++; - *drv = '\0'; - } - } else if (drv) - *drv = '\0'; - - end = path + lstrlenW(path); - - /* search for begin of file extension */ - for(p=end; p>path && *--p!='\\' && *p!='/'; ) - if (*p == '.') { - end = p; - break; - } - - if (ext) - for(s=end; (*ext=*s++); ) - ext++; - - /* search for end of directory name */ - for(p=end; p>path; ) - if (*--p=='\\' || *p=='/') { - p++; - break; - } - - if (name) { - for(s=p; scFileName, drive, dir, fname, extA); - WCMD_splitpath(fileb->cFileName, drive, dir, fname, extB); + _wsplitpath(filea->cFileName, drive, dir, fname, extA); + _wsplitpath(fileb->cFileName, drive, dir, fname, extB); result = lstrcmpiW(extA, extB); } @@ -819,7 +819,7 @@ void WCMD_directory (WCHAR *args) thisEntry->next = NULL; /* Split into components */ - WCMD_splitpath(path, drive, dir, fname, ext); + _wsplitpath(path, drive, dir, fname, ext); WINE_TRACE("Path Parts: drive: '%s' dir: '%s' name: '%s' ext:'%s'\n", wine_dbgstr_w(drive), wine_dbgstr_w(dir), wine_dbgstr_w(fname), wine_dbgstr_w(ext)); diff --git a/programs/cmd/wcmd.h b/programs/cmd/wcmd.h index 112fc1a1ea0..247f3dfdf31 100644 --- a/programs/cmd/wcmd.h +++ b/programs/cmd/wcmd.h @@ -117,7 +117,6 @@ WCHAR *WCMD_skip_leading_spaces (WCHAR *string); BOOL WCMD_keyword_ws_found(const WCHAR *keyword, int len, const WCHAR *ptr); void WCMD_HandleTildaModifiers(WCHAR **start, BOOL atExecute); -void WCMD_splitpath(const WCHAR* path, WCHAR* drv, WCHAR* dir, WCHAR* name, WCHAR* ext); WCHAR *WCMD_strip_quotes(WCHAR *cmd); WCHAR *WCMD_LoadMessage(UINT id); void WCMD_strsubstW(WCHAR *start, const WCHAR* next, const WCHAR* insert, int len);