Skip to content

Commit

Permalink
Write .blake3 files without a * (b3sum compatible) (#93)
Browse files Browse the repository at this point in the history
  • Loading branch information
OV2 committed Oct 22, 2021
1 parent 4cdb140 commit dd91d84
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 12 deletions.
7 changes: 3 additions & 4 deletions actfcts.cpp
Expand Up @@ -621,7 +621,7 @@ static DWORD CreateChecksumFiles_OnePerFile(CONST UINT uiMode, list<FILEINFO*> *
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);

Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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<FILEINFO*>::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);
Expand Down
2 changes: 1 addition & 1 deletion globals.h
Expand Up @@ -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);
Expand Down
17 changes: 10 additions & 7 deletions sfvfcts.cpp
Expand Up @@ -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];
Expand All @@ -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);

Expand Down

0 comments on commit dd91d84

Please sign in to comment.