diff --git a/actfcts.cpp b/actfcts.cpp index 48c70e4..df787e5 100644 --- a/actfcts.cpp +++ b/actfcts.cpp @@ -621,7 +621,7 @@ static DWORD CreateChecksumFiles_OnePerFile(CONST UINT uiMode, list * const TCHAR *szFilename = pFileinfo->szFilename; if(!g_program_options.bSaveAbsolutePaths[uiMode]) szFilename = GetFilenameWithoutPathPointer(pFileinfo->szFilename); - dwResult = WriteHashLine(hFile, szFilename, pFileinfo->hashInfo[uiMode].szResult, uiMode == MODE_SFV); + dwResult = WriteHashLine(hFile, szFilename, pFileinfo->hashInfo[uiMode].szResult, uiMode); CloseHandle(hFile); @@ -707,7 +707,7 @@ static DWORD CreateChecksumFiles_OnePerDir(CONST UINT uiMode,CONST TCHAR szChkSu if(!g_program_options.bSaveAbsolutePaths[uiMode]) szFilename = GetFilenameWithoutPathPointer((*it)->szFilenameShort); - dwResult = WriteHashLine(hFile, szFilename, (*it)->hashInfo[uiMode].szResult, uiMode == MODE_SFV); + dwResult = WriteHashLine(hFile, szFilename, (*it)->hashInfo[uiMode].szResult, uiMode); if(dwResult != NOERROR){ CloseHandle(hFile); @@ -841,10 +841,9 @@ static DWORD CreateChecksumFiles_OneFile(CONST HWND arrHwnd[ID_NUM_WINDOWS], CON } } - BOOL bIsSfv = (uiMode == MODE_SFV || uiMode == MODE_CRC32C); for(list::iterator it=finalList->begin();it!=finalList->end();it++) { - dwResult = WriteHashLine(hFile, (*it)->szFilename.GetString() + uiSameCharCount, (*it)->hashInfo[uiMode].szResult, bIsSfv); + dwResult = WriteHashLine(hFile, (*it)->szFilename.GetString() + uiSameCharCount, (*it)->hashInfo[uiMode].szResult, uiMode); if(dwResult != NOERROR){ CloseHandle(hFile); diff --git a/globals.h b/globals.h index 6b45d88..d612302 100644 --- a/globals.h +++ b/globals.h @@ -647,7 +647,7 @@ BOOL GetDataViaPipe(CONST HWND arrHwnd[ID_NUM_WINDOWS],lFILEINFO *fileList); //SFV and MD5 functions (sfvfcts.cpp) DWORD WriteSfvHeader(CONST HANDLE hFile); BOOL EnterHashMode(lFILEINFO *fileList, UINT uiMode); -DWORD WriteHashLine(CONST HANDLE hFile, CONST TCHAR szFilename[MAX_PATH_EX], CONST TCHAR szHashResult[RESULT_AS_STRING_MAX_LENGTH], BOOL bIsSfv); +DWORD WriteHashLine(CONST HANDLE hFile, CONST TCHAR szFilename[MAX_PATH_EX], CONST TCHAR szHashResult[RESULT_AS_STRING_MAX_LENGTH], UINT uiMode); DWORD WriteFileComment(CONST HANDLE hFile, CONST FILEINFO *pFileInfo, UINT startChar); #ifdef UNICODE BOOL WriteCurrentBOM(CONST HANDLE hFile); diff --git a/sfvfcts.cpp b/sfvfcts.cpp index 4359510..6dd5742 100644 --- a/sfvfcts.cpp +++ b/sfvfcts.cpp @@ -64,16 +64,16 @@ DWORD WriteSfvHeader(CONST HANDLE hFile) } /***************************************************************************** -DWORD WriteHashLine(CONST HANDLE hFile, CONST TCHAR szFilename[MAX_PATH_EX], CONST TCHAR szHashResult[RESULT_AS_STRING_MAX_LENGTH], BOOL bIsSfv) +DWORD WriteHashLine(CONST HANDLE hFile, CONST TCHAR szFilename[MAX_PATH_EX], CONST TCHAR szHashResult[RESULT_AS_STRING_MAX_LENGTH], UINT uiMode) hFile : (IN) handle to an open file szFilename : (IN) string of the filename that we want to write into the hash file szHashResult : (IN) string of the hash result - bIsSfv : (IN) is this a sfv hash + uiMode : (IN) type of hash file Return Value: - returns NOERROR or GetLastError() *****************************************************************************/ -DWORD WriteHashLine(CONST HANDLE hFile, CONST TCHAR szFilename[MAX_PATH_EX], CONST TCHAR szHashResult[RESULT_AS_STRING_MAX_LENGTH], BOOL bIsSfv) +DWORD WriteHashLine(CONST HANDLE hFile, CONST TCHAR szFilename[MAX_PATH_EX], CONST TCHAR szHashResult[RESULT_AS_STRING_MAX_LENGTH], UINT uiMode) { TCHAR szFilenameTemp[MAX_PATH_EX]; TCHAR szLine[MAX_LINE_LENGTH]; @@ -89,12 +89,15 @@ DWORD WriteHashLine(CONST HANDLE hFile, CONST TCHAR szFilename[MAX_PATH_EX], CON ReplaceChar(szFilenameTemp, MAX_PATH_EX, TEXT('\\'), TEXT('/')); } - if(bIsSfv) + if(uiMode == MODE_SFV || uiMode == MODE_CRC32C) StringCchPrintf(szLine, MAX_LINE_LENGTH, TEXT("%s %s%s"), szFilenameTemp, szHashResult, g_program_options.bCreateUnixStyle ? TEXT("\n") : TEXT("\r\n")); - else - StringCchPrintf(szLine, MAX_LINE_LENGTH, TEXT("%s *%s%s"), szHashResult, - szFilenameTemp, g_program_options.bCreateUnixStyle ? TEXT("\n") : TEXT("\r\n")); + else + { + const TCHAR *psz_format = uiMode == MODE_BLAKE3 ? TEXT("%s %s%s") : TEXT("%s *%s%s"); + StringCchPrintf(szLine, MAX_LINE_LENGTH, psz_format, szHashResult, + szFilenameTemp, g_program_options.bCreateUnixStyle ? TEXT("\n") : TEXT("\r\n")); + } StringCbLength(szLine, MAX_LINE_LENGTH, & stStringLength);