summaryrefslogtreecommitdiff
path: root/src/libs/dutil/WixToolset.DUtil
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/dutil/WixToolset.DUtil')
-rw-r--r--src/libs/dutil/WixToolset.DUtil/inc/verutil.h4
-rw-r--r--src/libs/dutil/WixToolset.DUtil/verutil.cpp13
2 files changed, 17 insertions, 0 deletions
diff --git a/src/libs/dutil/WixToolset.DUtil/inc/verutil.h b/src/libs/dutil/WixToolset.DUtil/inc/verutil.h
index 4fdaa522..cab18be7 100644
--- a/src/libs/dutil/WixToolset.DUtil/inc/verutil.h
+++ b/src/libs/dutil/WixToolset.DUtil/inc/verutil.h
@@ -28,6 +28,10 @@ typedef struct _VERUTIL_VERSION
28 VERUTIL_VERSION_RELEASE_LABEL* rgReleaseLabels; 28 VERUTIL_VERSION_RELEASE_LABEL* rgReleaseLabels;
29 SIZE_T cchMetadataOffset; 29 SIZE_T cchMetadataOffset;
30 BOOL fInvalid; 30 BOOL fInvalid;
31 BOOL fHasMajor;
32 BOOL fHasMinor;
33 BOOL fHasPatch;
34 BOOL fHasRevision;
31} VERUTIL_VERSION; 35} VERUTIL_VERSION;
32 36
33/******************************************************************* 37/*******************************************************************
diff --git a/src/libs/dutil/WixToolset.DUtil/verutil.cpp b/src/libs/dutil/WixToolset.DUtil/verutil.cpp
index 30b979b1..276441b5 100644
--- a/src/libs/dutil/WixToolset.DUtil/verutil.cpp
+++ b/src/libs/dutil/WixToolset.DUtil/verutil.cpp
@@ -196,9 +196,13 @@ DAPI_(HRESULT) VerCopyVersion(
196 196
197 pCopy->chPrefix = pSource->chPrefix; 197 pCopy->chPrefix = pSource->chPrefix;
198 pCopy->dwMajor = pSource->dwMajor; 198 pCopy->dwMajor = pSource->dwMajor;
199 pCopy->fHasMajor = pSource->fHasMajor;
199 pCopy->dwMinor = pSource->dwMinor; 200 pCopy->dwMinor = pSource->dwMinor;
201 pCopy->fHasMinor = pSource->fHasMinor;
200 pCopy->dwPatch = pSource->dwPatch; 202 pCopy->dwPatch = pSource->dwPatch;
203 pCopy->fHasPatch = pSource->fHasPatch;
201 pCopy->dwRevision = pSource->dwRevision; 204 pCopy->dwRevision = pSource->dwRevision;
205 pCopy->fHasRevision = pSource->fHasRevision;
202 206
203 if (pSource->cReleaseLabels) 207 if (pSource->cReleaseLabels)
204 { 208 {
@@ -370,15 +374,19 @@ DAPI_(HRESULT) VerParseVersion(
370 { 374 {
371 case 0: 375 case 0:
372 pVersion->dwMajor = uPart; 376 pVersion->dwMajor = uPart;
377 pVersion->fHasMajor = TRUE;
373 break; 378 break;
374 case 1: 379 case 1:
375 pVersion->dwMinor = uPart; 380 pVersion->dwMinor = uPart;
381 pVersion->fHasMinor = TRUE;
376 break; 382 break;
377 case 2: 383 case 2:
378 pVersion->dwPatch = uPart; 384 pVersion->dwPatch = uPart;
385 pVersion->fHasPatch = TRUE;
379 break; 386 break;
380 case 3: 387 case 3:
381 pVersion->dwRevision = uPart; 388 pVersion->dwRevision = uPart;
389 pVersion->fHasRevision = TRUE;
382 break; 390 break;
383 } 391 }
384 392
@@ -549,6 +557,11 @@ DAPI_(HRESULT) VerVersionFromQword(
549 pVersion->dwPatch = (WORD)(qwVersion >> 16 & 0xffff); 557 pVersion->dwPatch = (WORD)(qwVersion >> 16 & 0xffff);
550 pVersion->dwRevision = (WORD)(qwVersion & 0xffff); 558 pVersion->dwRevision = (WORD)(qwVersion & 0xffff);
551 559
560 pVersion->fHasMajor = TRUE;
561 pVersion->fHasMinor = TRUE;
562 pVersion->fHasPatch = TRUE;
563 pVersion->fHasRevision = TRUE;
564
552 hr = StrAllocFormatted(&pVersion->sczVersion, L"%lu.%lu.%lu.%lu", pVersion->dwMajor, pVersion->dwMinor, pVersion->dwPatch, pVersion->dwRevision); 565 hr = StrAllocFormatted(&pVersion->sczVersion, L"%lu.%lu.%lu.%lu", pVersion->dwMajor, pVersion->dwMinor, pVersion->dwPatch, pVersion->dwRevision);
553 ExitOnFailure(hr, "Failed to allocate and format the version string."); 566 ExitOnFailure(hr, "Failed to allocate and format the version string.");
554 567