Commit ae0c24fd authored by Alexandre Julliard's avatar Alexandre Julliard

shlwapi: Get rid of CharNextW/CharPrevW. Simplify some string functions.

parent 52e5d384
...@@ -369,7 +369,7 @@ LPWSTR WINAPI PathFindFileNameW(LPCWSTR lpszPath) ...@@ -369,7 +369,7 @@ LPWSTR WINAPI PathFindFileNameW(LPCWSTR lpszPath)
if ((*lpszPath == '\\' || *lpszPath == '/' || *lpszPath == ':') && if ((*lpszPath == '\\' || *lpszPath == '/' || *lpszPath == ':') &&
lpszPath[1] && lpszPath[1] != '\\' && lpszPath[1] != '/') lpszPath[1] && lpszPath[1] != '\\' && lpszPath[1] != '/')
lastSlash = lpszPath + 1; lastSlash = lpszPath + 1;
lpszPath = CharNextW(lpszPath); lpszPath++;
} }
return (LPWSTR)lastSlash; return (LPWSTR)lastSlash;
} }
...@@ -425,7 +425,7 @@ LPWSTR WINAPI PathFindExtensionW( LPCWSTR lpszPath ) ...@@ -425,7 +425,7 @@ LPWSTR WINAPI PathFindExtensionW( LPCWSTR lpszPath )
lastpoint = NULL; lastpoint = NULL;
else if (*lpszPath == '.') else if (*lpszPath == '.')
lastpoint = lpszPath; lastpoint = lpszPath;
lpszPath = CharNextW(lpszPath); lpszPath++;
} }
} }
return (LPWSTR)(lastpoint ? lastpoint : lpszPath); return (LPWSTR)(lastpoint ? lastpoint : lpszPath);
...@@ -484,7 +484,7 @@ LPWSTR WINAPI PathGetArgsW(LPCWSTR lpszPath) ...@@ -484,7 +484,7 @@ LPWSTR WINAPI PathGetArgsW(LPCWSTR lpszPath)
return (LPWSTR)lpszPath + 1; return (LPWSTR)lpszPath + 1;
if (*lpszPath == '"') if (*lpszPath == '"')
bSeenQuote = !bSeenQuote; bSeenQuote = !bSeenQuote;
lpszPath = CharNextW(lpszPath); lpszPath++;
} }
} }
return (LPWSTR)lpszPath; return (LPWSTR)lpszPath;
...@@ -610,8 +610,7 @@ BOOL WINAPI PathRemoveFileSpecW(LPWSTR lpszPath) ...@@ -610,8 +610,7 @@ BOOL WINAPI PathRemoveFileSpecW(LPWSTR lpszPath)
if (*lpszPath == '\\') if (*lpszPath == '\\')
lpszFileSpec++; lpszFileSpec++;
} }
if (!(lpszPath = CharNextW(lpszPath))) lpszPath++;
break;
} }
if (*lpszFileSpec) if (*lpszFileSpec)
...@@ -743,14 +742,8 @@ void WINAPI PathRemoveArgsW(LPWSTR lpszPath) ...@@ -743,14 +742,8 @@ void WINAPI PathRemoveArgsW(LPWSTR lpszPath)
if(lpszPath) if(lpszPath)
{ {
LPWSTR lpszArgs = PathGetArgsW(lpszPath); LPWSTR lpszArgs = PathGetArgsW(lpszPath);
if (*lpszArgs) if (*lpszArgs || (lpszArgs > lpszPath && lpszArgs[-1] == ' '))
lpszArgs[-1] = '\0'; lpszArgs[-1] = '\0';
else
{
LPWSTR lpszLastChar = CharPrevW(lpszPath, lpszArgs);
if(*lpszLastChar == ' ')
*lpszLastChar = '\0';
}
} }
} }
...@@ -832,7 +825,8 @@ LPWSTR WINAPI PathRemoveBackslashW( LPWSTR lpszPath ) ...@@ -832,7 +825,8 @@ LPWSTR WINAPI PathRemoveBackslashW( LPWSTR lpszPath )
if(lpszPath) if(lpszPath)
{ {
szTemp = CharPrevW(lpszPath, lpszPath + strlenW(lpszPath)); szTemp = lpszPath + strlenW(lpszPath);
if (szTemp > lpszPath) szTemp--;
if (!PathIsRootW(lpszPath) && *szTemp == '\\') if (!PathIsRootW(lpszPath) && *szTemp == '\\')
*szTemp = '\0'; *szTemp = '\0';
} }
...@@ -1606,7 +1600,7 @@ BOOL WINAPI PathIsRootW(LPCWSTR lpszPath) ...@@ -1606,7 +1600,7 @@ BOOL WINAPI PathIsRootW(LPCWSTR lpszPath)
return FALSE; return FALSE;
bSeenSlash = TRUE; bSeenSlash = TRUE;
} }
lpszPath = CharNextW(lpszPath); lpszPath++;
} }
return TRUE; return TRUE;
} }
...@@ -1844,8 +1838,8 @@ static BOOL WINAPI PathMatchSingleMaskW(LPCWSTR name, LPCWSTR mask) ...@@ -1844,8 +1838,8 @@ static BOOL WINAPI PathMatchSingleMaskW(LPCWSTR name, LPCWSTR mask)
if (toupperW(*mask) != toupperW(*name) && *mask != '?') if (toupperW(*mask) != toupperW(*name) && *mask != '?')
return FALSE; return FALSE;
name = CharNextW(name); name++;
mask = CharNextW(mask); mask++;
} }
if (!*name) if (!*name)
{ {
...@@ -2084,7 +2078,7 @@ BOOL WINAPI PathIsFileSpecW(LPCWSTR lpszPath) ...@@ -2084,7 +2078,7 @@ BOOL WINAPI PathIsFileSpecW(LPCWSTR lpszPath)
{ {
if (*lpszPath == '\\' || *lpszPath == ':') if (*lpszPath == '\\' || *lpszPath == ':')
return FALSE; return FALSE;
lpszPath = CharNextW(lpszPath); lpszPath++;
} }
return TRUE; return TRUE;
} }
...@@ -2249,15 +2243,9 @@ BOOL WINAPI PathIsUNCServerW(LPCWSTR lpszPath) ...@@ -2249,15 +2243,9 @@ BOOL WINAPI PathIsUNCServerW(LPCWSTR lpszPath)
{ {
TRACE("(%s)\n", debugstr_w(lpszPath)); TRACE("(%s)\n", debugstr_w(lpszPath));
if (lpszPath && *lpszPath++ == '\\' && *lpszPath++ == '\\') if (lpszPath && lpszPath[0] == '\\' && lpszPath[1] == '\\')
{ {
while (*lpszPath) return !strchrW( lpszPath + 2, '\\' );
{
if (*lpszPath == '\\')
return FALSE;
lpszPath = CharNextW(lpszPath);
}
return TRUE;
} }
return FALSE; return FALSE;
} }
...@@ -2321,7 +2309,7 @@ BOOL WINAPI PathIsUNCServerShareW(LPCWSTR lpszPath) ...@@ -2321,7 +2309,7 @@ BOOL WINAPI PathIsUNCServerShareW(LPCWSTR lpszPath)
return FALSE; return FALSE;
bSeenSlash = TRUE; bSeenSlash = TRUE;
} }
lpszPath = CharNextW(lpszPath); lpszPath++;
} }
return bSeenSlash; return bSeenSlash;
} }
...@@ -2842,8 +2830,7 @@ BOOL WINAPI PathCompactPathW(HDC hDC, LPWSTR lpszPath, UINT dx) ...@@ -2842,8 +2830,7 @@ BOOL WINAPI PathCompactPathW(HDC hDC, LPWSTR lpszPath, UINT dx)
DWORD dwEllipsesLen = 0, dwPathLen = 0; DWORD dwEllipsesLen = 0, dwPathLen = 0;
sFile = PathFindFileNameW(lpszPath); sFile = PathFindFileNameW(lpszPath);
if (sFile != lpszPath) if (sFile != lpszPath) sFile--;
sFile = CharPrevW(lpszPath, sFile);
/* Get the size of ellipses */ /* Get the size of ellipses */
GetTextExtentPointW(hDC, szEllipses, 3, &size); GetTextExtentPointW(hDC, szEllipses, 3, &size);
...@@ -2871,12 +2858,11 @@ BOOL WINAPI PathCompactPathW(HDC hDC, LPWSTR lpszPath, UINT dx) ...@@ -2871,12 +2858,11 @@ BOOL WINAPI PathCompactPathW(HDC hDC, LPWSTR lpszPath, UINT dx)
dwTotalLen += size.cx; dwTotalLen += size.cx;
if (dwTotalLen <= dx) if (dwTotalLen <= dx)
break; break;
sPath = CharPrevW(lpszPath, sPath); sPath--;
if (!bEllipses) if (!bEllipses)
{ {
bEllipses = TRUE; bEllipses = TRUE;
sPath = CharPrevW(lpszPath, sPath); sPath -= 2;
sPath = CharPrevW(lpszPath, sPath);
} }
} while (sPath > lpszPath); } while (sPath > lpszPath);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment