From 5bc83e433e2551f079863b828800c01d8bb27f29 Mon Sep 17 00:00:00 2001 From: Perry Rapp Date: Fri, 7 Mar 2003 22:43:02 +0000 Subject: [PATCH] Patch 699580: Fix paths.cpp --- Src/paths.cpp | 20 +++++++++++++++----- Src/readme.txt | 3 +++ 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/Src/paths.cpp b/Src/paths.cpp index a52af2397..990dd96d8 100644 --- a/Src/paths.cpp +++ b/Src/paths.cpp @@ -141,7 +141,7 @@ CString paths_GetLongPath(const CString & sPath) TCHAR curdir[_MAX_PATH]; if (!GetCurrentDirectory(sizeof(curdir)/sizeof(curdir[0]), curdir)) return sPath; - sBuffer = curdir + '\\' + sBuffer; + sBuffer = (CString)curdir + '\\' + sBuffer; } LPTSTR ptr = sBuffer.GetBuffer(0), end; // skip over root slash @@ -152,11 +152,21 @@ CString paths_GetLongPath(const CString & sPath) ptr = &end[1]; // now walk down each directory // using CFileFind to get its long name - while (0 != (end = _tcschr(ptr, '\\'))) + while (ptr) { - *end = 0; - sTemp = sLong + '\\' + ptr; - ptr = &end[1]; + end = _tcschr(ptr, '\\'); + if (!end) + { + // on last component (probably filename) + sTemp = sLong + '\\' + ptr; + ptr = 0; + } + else + { + *end = 0; + sTemp = sLong + _T("\\") + ptr; + ptr = &end[1]; + } // (Couldn't get info for just the directory from CFindFile) WIN32_FIND_DATA ffd; HANDLE h = FindFirstFile(sTemp, &ffd); diff --git a/Src/readme.txt b/Src/readme.txt index 8222045b7..d85112645 100644 --- a/Src/readme.txt +++ b/Src/readme.txt @@ -1,3 +1,6 @@ +2003-03-07 Perry + PATCH: [ 699580 ] Fix paths.cpp + WinMerge: paths.cpp 2003-03-07 Kimmo PATCH: [ 698754 ] Update filetimes after save WinMerge: DiffContext.h DiffContext.cpp DirDoc.h DirDoc.cpp MergeDoc.cpp -- 2.11.0