diff --git a/Versions/day.txt b/Versions/day.txt
index 9be0dc9a9..bf18240ed 100644
--- a/Versions/day.txt
+++ b/Versions/day.txt
@@ -1 +1 @@
-228
+229
diff --git a/res/Notepad3.exe.manifest.conf b/res/Notepad3.exe.manifest.conf
index 838d1d791..df8f99436 100644
--- a/res/Notepad3.exe.manifest.conf
+++ b/res/Notepad3.exe.manifest.conf
@@ -3,7 +3,7 @@
Notepad3 RC2
diff --git a/src/Config/Config.cpp b/src/Config/Config.cpp
index 429dbe70c..29df8238d 100644
--- a/src/Config/Config.cpp
+++ b/src/Config/Config.cpp
@@ -2154,285 +2154,3 @@ extern "C" bool EditSetDocumentBuffer(const char* lpstrText, DocPosU lenText)
return true;
}
-
-
-////////////////////////////////////////////////////////////////////////////////
-// Feature Detector by Mysticle (Alexander Yee)
-// https://github.com/Mysticial/FeatureDetector
-////////////////////////////////////////////////////////////////////////////////
-
-
-struct cpu_x86 {
- // Vendor
- bool Vendor_AMD;
- bool Vendor_Intel;
-
- // OS Features
- bool OS_x64;
- bool OS_AVX;
- bool OS_AVX512;
-
- // Misc.
- bool HW_MMX;
- bool HW_x64;
- bool HW_ABM;
- bool HW_RDRAND;
- bool HW_BMI1;
- bool HW_BMI2;
- bool HW_ADX;
- bool HW_PREFETCHWT1;
- bool HW_MPX;
-
- // SIMD: 128-bit
- bool HW_SSE;
- bool HW_SSE2;
- bool HW_SSE3;
- bool HW_SSSE3;
- bool HW_SSE41;
- bool HW_SSE42;
- bool HW_SSE4a;
- bool HW_AES;
- bool HW_SHA;
-
- // SIMD: 256-bit
- bool HW_AVX;
- bool HW_XOP;
- bool HW_FMA3;
- bool HW_FMA4;
- bool HW_AVX2;
-
- // SIMD: 512-bit
- bool HW_AVX512_F;
- bool HW_AVX512_PF;
- bool HW_AVX512_ER;
- bool HW_AVX512_CD;
- bool HW_AVX512_VL;
- bool HW_AVX512_BW;
- bool HW_AVX512_DQ;
- bool HW_AVX512_IFMA;
- bool HW_AVX512_VBMI;
-
-public:
- cpu_x86();
- void detect_host();
- static void cpuid(int32_t out[4], int32_t x);
- static const char* get_vendor_string();
-
-private:
- static bool detect_OS_x64();
- static bool detect_OS_AVX();
- static bool detect_OS_AVX512();
-};
-
-////////////////////////////////////////////////////////////////////////////////
-
-#if defined(__x86_64__) || defined(_M_X64) || defined(__i386) || defined(_M_IX86)
-#include
-#else
-# error "No cpuid intrinsic defined for processor architecture."
-#endif
-
-////////////////////////////////////////////////////////////////////////////////
-
-void cpu_x86::cpuid(int32_t out[4], int32_t x) {
- __cpuidex(out, x, 0);
-}
-
-__int64 xgetbv(unsigned int x) {
- return _xgetbv(x);
-}
-////////////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////////////
-// Detect 64-bit - Note that this snippet of code for detecting 64-bit has been copied from MSDN.
-using LPFN_ISWOW64PROCESS = BOOL(WINAPI*) (HANDLE, PBOOL);
-BOOL IsWow64()
-{
- BOOL bIsWow64 = FALSE;
-
- LPFN_ISWOW64PROCESS fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress(
- GetModuleHandle(TEXT("kernel32")), "IsWow64Process");
-
- if (NULL != fnIsWow64Process)
- {
- if (!fnIsWow64Process(GetCurrentProcess(), &bIsWow64))
- {
- printf("Error Detecting Operating System.\n");
- printf("Defaulting to 32-bit OS.\n\n");
- bIsWow64 = FALSE;
- }
- }
- return bIsWow64;
-}
-bool cpu_x86::detect_OS_x64() {
-#ifdef _M_X64
- return true;
-#else
- return IsWow64() != 0;
-#endif
-}
-////////////////////////////////////////////////////////////////////////////////
-
-
-////////////////////////////////////////////////////////////////////////////////
-
-cpu_x86::cpu_x86() {
- memset(this, 0, sizeof(*this));
-}
-
-
-bool cpu_x86::detect_OS_AVX() {
- // Copied from: http://stackoverflow.com/a/22521619/922184
-
- bool avxSupported = false;
-
- int cpuInfo[4];
- cpuid(cpuInfo, 1);
-
- bool osUsesXSAVE_XRSTORE = (cpuInfo[2] & (1 << 27)) != 0;
- bool cpuAVXSuport = (cpuInfo[2] & (1 << 28)) != 0;
-
- if (osUsesXSAVE_XRSTORE && cpuAVXSuport)
- {
- uint64_t xcrFeatureMask = xgetbv(_XCR_XFEATURE_ENABLED_MASK);
- avxSupported = (xcrFeatureMask & 0x6) == 0x6;
- }
- return avxSupported;
-}
-
-
-bool cpu_x86::detect_OS_AVX512() {
- if (!detect_OS_AVX())
- return false;
-
- uint64_t xcrFeatureMask = xgetbv(_XCR_XFEATURE_ENABLED_MASK);
- return (xcrFeatureMask & 0xe6) == 0xe6;
-}
-
-const char* cpu_x86::get_vendor_string()
-{
- static char name[13];
- int32_t CPUInfo[4];
-
- cpuid(CPUInfo, 0);
- memcpy(name + 0, &CPUInfo[1], 4);
- memcpy(name + 4, &CPUInfo[3], 4);
- memcpy(name + 8, &CPUInfo[2], 4);
- name[12] = '\0';
-
- return name;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////
-
-void cpu_x86::detect_host()
-{
- // OS Features
- OS_x64 = detect_OS_x64();
- OS_AVX = detect_OS_AVX();
- OS_AVX512 = detect_OS_AVX512();
-
- // Vendor
- const char* vendor = get_vendor_string();
- if (strcmp(vendor, "GenuineIntel") == 0) {
- Vendor_Intel = true;
- }
- else if (strcmp(vendor, "AuthenticAMD") == 0) {
- Vendor_AMD = true;
- }
-
- int info[4];
- cpuid(info, 0);
- int nIds = info[0];
-
- cpuid(info, 0x80000000);
- uint32_t nExIds = info[0];
-
- // Detect Features
- if (nIds >= 0x00000001) {
- cpuid(info, 0x00000001);
- HW_MMX = (info[3] & ((int)1 << 23)) != 0;
- HW_SSE = (info[3] & ((int)1 << 25)) != 0;
- HW_SSE2 = (info[3] & ((int)1 << 26)) != 0;
- HW_SSE3 = (info[2] & ((int)1 << 0)) != 0;
-
- HW_SSSE3 = (info[2] & ((int)1 << 9)) != 0;
- HW_SSE41 = (info[2] & ((int)1 << 19)) != 0;
- HW_SSE42 = (info[2] & ((int)1 << 20)) != 0;
- HW_AES = (info[2] & ((int)1 << 25)) != 0;
-
- HW_AVX = (info[2] & ((int)1 << 28)) != 0;
- HW_FMA3 = (info[2] & ((int)1 << 12)) != 0;
-
- HW_RDRAND = (info[2] & ((int)1 << 30)) != 0;
- }
- if (nIds >= 0x00000007) {
- cpuid(info, 0x00000007);
- HW_AVX2 = (info[1] & ((int)1 << 5)) != 0;
-
- HW_BMI1 = (info[1] & ((int)1 << 3)) != 0;
- HW_BMI2 = (info[1] & ((int)1 << 8)) != 0;
- HW_ADX = (info[1] & ((int)1 << 19)) != 0;
- HW_MPX = (info[1] & ((int)1 << 14)) != 0;
- HW_SHA = (info[1] & ((int)1 << 29)) != 0;
- HW_PREFETCHWT1 = (info[2] & ((int)1 << 0)) != 0;
-
- HW_AVX512_F = (info[1] & ((int)1 << 16)) != 0;
- HW_AVX512_CD = (info[1] & ((int)1 << 28)) != 0;
- HW_AVX512_PF = (info[1] & ((int)1 << 26)) != 0;
- HW_AVX512_ER = (info[1] & ((int)1 << 27)) != 0;
- HW_AVX512_VL = (info[1] & ((int)1 << 31)) != 0;
- HW_AVX512_BW = (info[1] & ((int)1 << 30)) != 0;
- HW_AVX512_DQ = (info[1] & ((int)1 << 17)) != 0;
- HW_AVX512_IFMA = (info[1] & ((int)1 << 21)) != 0;
- HW_AVX512_VBMI = (info[2] & ((int)1 << 1)) != 0;
- }
- if (nExIds >= 0x80000001) {
- cpuid(info, 0x80000001);
- HW_x64 = (info[3] & ((int)1 << 29)) != 0;
- HW_ABM = (info[2] & ((int)1 << 5)) != 0;
- HW_SSE4a = (info[2] & ((int)1 << 6)) != 0;
- HW_FMA4 = (info[2] & ((int)1 << 16)) != 0;
- HW_XOP = (info[2] & ((int)1 << 11)) != 0;
- }
-}
-
-
-extern "C" bool CanUseCPUFeature(const CPU_OS_FEATURES featToUse)
-{
- cpu_x86 features;
- features.detect_host();
-
- switch (featToUse)
- {
- case OS_x64:
- return (features.OS_x64);
-
- case CPU_SSE2:
- return (features.HW_SSE2);
-
- case CPU_OS_AVX2:
- #ifdef __AVX__
- return (features.HW_AVX2 && features.OS_AVX);
- #else
- return false;
- #endif
-
- case CPU_OS_AVX512:
- #ifdef __AVX__
- return (features.HW_AVX512_F && features.OS_AVX512);
- #else
- return false;
- #endif
-
- default:
- break;
- }
- return false;
-}
-
-
-////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////
-
diff --git a/src/Config/Config.h b/src/Config/Config.h
index 9010486e9..acea6a710 100644
--- a/src/Config/Config.h
+++ b/src/Config/Config.h
@@ -136,25 +136,6 @@ bool MRU_MergeSave(LPMRULIST pmru, bool, bool, bool);
// ----------------------------------------------------------------------------
-////////////////////////////////////////////////////////////////////////////////
-// Feature Detector by Mysticle (Alexander Yee)
-// https://github.com/Mysticial/FeatureDetector
-////////////////////////////////////////////////////////////////////////////////
-
-typedef enum
-{
- OS_x64 = 1,
- CPU_SSE2 = 2,
- CPU_OS_AVX2 = 3,
- CPU_OS_AVX512 = 4
-}
-CPU_OS_FEATURES;
-
-bool CanUseCPUFeature(const CPU_OS_FEATURES feature);
-
-////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////
-
#ifdef __cplusplus
}
#endif
diff --git a/src/Edit.c b/src/Edit.c
index a55bb6fe6..840aff38f 100644
--- a/src/Edit.c
+++ b/src/Edit.c
@@ -24,11 +24,6 @@
#include
#include
-#include
-#ifdef __AVX__
-#include
-#endif
-
#include "Styles.h"
#include "Dialogs.h"
#include "resource.h"
@@ -831,26 +826,6 @@ bool EditCopyAppend(HWND hwnd, bool bAppend)
// EditDetectEOLMode() - moved here to handle Unicode files correctly
// by zufuliu (https://github.com/zufuliu/notepad2)
//
-//=============================================================================
-
-// https://docs.microsoft.com/en-us/cpp/intrinsics/popcnt16-popcnt-popcnt64
-// use __popcnt() or _mm_popcnt_u32() require testing __cpuid():
-/*
-* int cpuInfo[4];
-* __cpuid(cpuInfo, 0x00000001);
-* const BOOL cpuPOPCNT = cpuInfo[2] & (1 << 23);
-*/
-
-// https://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetParallel
-// Bit Twiddling Hacks copyright 1997-2005 Sean Eron Anderson
-static __forceinline unsigned int bth_popcount(unsigned int v) {
- v = v - ((v >> 1) & 0x55555555U);
- v = (v & 0x33333333U) + ((v >> 2) & 0x33333333U);
- return (((v + (v >> 4)) & 0x0F0F0F0FU) * 0x01010101U) >> 24;
-}
-
-// ----------------------------------------------------------------------------
-
void EditDetectEOLMode(LPCSTR lpData, size_t cbData, EditFileIOStatus* const status)
{
if (!lpData || (cbData == 0)) { return; }
@@ -869,152 +844,46 @@ void EditDetectEOLMode(LPCSTR lpData, size_t cbData, EditFileIOStatus* const sta
const uint8_t* ptr = (const uint8_t*)lpData;
// No NULL-terminated requirement for *ptr == '\n'
- const uint8_t* const end = ptr + cbData - 1;
+ const uint8_t* const end = (const uint8_t*)lpData + cbData - 1;
-#ifdef __AVX__
- if (Flags.bHas_AVX2_CPU_OS)
- {
- #define LAST_CR_MASK (1U << (sizeof(__m256i) - 1))
- const __m256i vectCR = _mm256_set1_epi8('\r');
- const __m256i vectLF = _mm256_set1_epi8('\n');
- while (ptr + sizeof(__m256i) <= end) {
- // unaligned loading: line starts at random position.
- const __m256i chunk = _mm256_loadu_si256((__m256i*)ptr);
- uint32_t maskCR = _mm256_movemask_epi8(_mm256_cmpeq_epi8(chunk, vectCR));
- uint32_t maskLF = _mm256_movemask_epi8(_mm256_cmpeq_epi8(chunk, vectLF));
-
- ptr += sizeof(__m256i);
- if (maskCR) {
- if (maskCR & LAST_CR_MASK) {
- maskCR &= LAST_CR_MASK - 1;
- if (*ptr == '\n') {
- // CR+LF across boundary
- ++ptr;
- ++lineCountCRLF;
- }
- else {
- // clear highest bit (last CR) to avoid using following code:
- // maskCR = (maskCR_LF ^ maskLF) | (maskCR & LAST_CR_MASK);
- ++lineCountCR;
- }
+ do {
+ // skip to line end
+ uint8_t ch;
+ uint8_t type = 0;
+ while (ptr < end && ((ch = *ptr++) > '\r' || (type = eol_table[ch]) == 0)) {} // nop
+ switch (type) {
+ case 1: //'\n'
+ ++lineCountLF;
+ break;
+ case 2: //'\r'
+ if (*ptr == '\n') {
+ ++ptr;
+ ++lineCountCRLF;
}
-
- // maskCR and maskLF never have some bit set. after shifting maskCR by 1 bit,
- // the bits both set in maskCR and maskLF represents CR+LF;
- // the bits only set in maskCR or maskLF represents individual CR or LF.
- const uint32_t maskCRLF = (maskCR << 1) & maskLF; // CR+LF
- const uint32_t maskCR_LF = (maskCR << 1) ^ maskLF;// CR alone or LF alone
- maskLF = maskCR_LF & maskLF; // LF alone
- maskCR = maskCR_LF ^ maskLF; // CR alone (with one position offset)
- if (maskCRLF) {
- lineCountCRLF += _mm_popcnt_u32(maskCRLF);
- }
- if (maskCR) {
- lineCountCR += _mm_popcnt_u32(maskCR);
- }
- }
- if (maskLF) {
- lineCountLF += _mm_popcnt_u32(maskLF);
- }
- }
- #undef LAST_CR_MASK
- }
- else
-#endif
- if (Flags.bHas_SSE2_CPU)
- {
- #define LAST_CR_MASK (1U << (2*sizeof(__m128i) - 1))
- const __m128i vectCR = _mm_set1_epi8('\r');
- const __m128i vectLF = _mm_set1_epi8('\n');
- while (ptr + 2 * sizeof(__m128i) <= end) {
- // unaligned loading: line starts at random position.
- __m128i chunk = _mm_loadu_si128((__m128i*)ptr);
- uint32_t maskCR = _mm_movemask_epi8(_mm_cmpeq_epi8(chunk, vectCR));
- uint32_t maskLF = _mm_movemask_epi8(_mm_cmpeq_epi8(chunk, vectLF));
- chunk = _mm_loadu_si128((__m128i*)(ptr + sizeof(__m128i)));
- maskCR |= ((uint32_t)_mm_movemask_epi8(_mm_cmpeq_epi8(chunk, vectCR))) << sizeof(__m128i);
- maskLF |= ((uint32_t)_mm_movemask_epi8(_mm_cmpeq_epi8(chunk, vectLF))) << sizeof(__m128i);
-
- ptr += 2 * sizeof(__m128i);
- if (maskCR) {
- if (maskCR & LAST_CR_MASK) {
- maskCR &= LAST_CR_MASK - 1;
- if (*ptr == '\n') {
- // CR+LF across boundary
- ++ptr;
- ++lineCountCRLF;
- }
- else {
- // clear highest bit (last CR) to avoid using following code:
- // maskCR = (maskCR_LF ^ maskLF) | (maskCR & LAST_CR_MASK);
- ++lineCountCR;
- }
- }
-
- // maskCR and maskLF never have some bit set. after shifting maskCR by 1 bit,
- // the bits both set in maskCR and maskLF represents CR+LF;
- // the bits only set in maskCR or maskLF represents individual CR or LF.
- const uint32_t maskCRLF = (maskCR << 1) & maskLF; // CR+LF
- const uint32_t maskCR_LF = (maskCR << 1) ^ maskLF;// CR alone or LF alone
- maskLF = maskCR_LF & maskLF; // LF alone
- maskCR = maskCR_LF ^ maskLF; // CR alone (with one position offset)
- if (maskCRLF) {
- lineCountCRLF += bth_popcount(maskCRLF);
- }
- if (maskCR) {
- lineCountCR += bth_popcount(maskCR);
- }
- }
- if (maskLF) {
- lineCountLF += bth_popcount(maskLF);
- }
- }
- #undef LAST_CR_MASK
- }
- else { // no intrinsic optimization
-
- do {
- // skip to line end
- uint8_t ch;
- uint8_t type = 0;
- while (ptr < end && ((ch = *ptr++) > '\r' || (type = eol_table[ch]) == 0)) {
- // nop
- }
- switch (type) {
- case 1: //'\n'
- ++lineCountLF;
- break;
- case 2: //'\r'
- if (*ptr == '\n') {
- ++ptr;
- ++lineCountCRLF;
- }
- else {
- ++lineCountCR;
- }
- break;
- }
- } while (ptr < end);
-
- if (ptr == end) {
- switch (*ptr) {
- case '\n':
- ++lineCountLF;
- break;
- case '\r':
+ else {
++lineCountCR;
- break;
- }
+ }
+ break;
}
+ } while (ptr < end);
+ if (ptr == end) {
+ switch (*ptr) {
+ case '\n':
+ ++lineCountLF;
+ break;
+ case '\r':
+ ++lineCountCR;
+ break;
+ }
}
// values must kept in same order as SC_EOL_CRLF(0), SC_EOL_CR(1), SC_EOL_LF(2)
DocLn const linesMax = max_ln(max_ln(lineCountCRLF, lineCountCR), lineCountLF);
DocLn linesCount[3] = { 0, 0, 0 };
linesCount[SC_EOL_CRLF] = lineCountCRLF;
- linesCount[SC_EOL_CR] = lineCountCR;
- linesCount[SC_EOL_LF] = lineCountLF;
+ linesCount[SC_EOL_CR] = lineCountCR;
+ linesCount[SC_EOL_LF] = lineCountLF;
int iEOLMode = status->iEOLMode;
if (linesMax != linesCount[iEOLMode])
@@ -6365,7 +6234,7 @@ static INT_PTR CALLBACK EditFindReplaceDlgProcW(HWND hwnd,UINT umsg,WPARAM wPara
{
WCHAR* wszFind = s_tchBuf;
WCHAR wszRepl[FNDRPL_BUFFER] = { L'\0' };
- GetDlgItemTextW(hwnd, IDC_FINDTEXT, wszFind, COUNTOF(wszFind));
+ GetDlgItemTextW(hwnd, IDC_FINDTEXT, wszFind, COUNTOF(s_tchBuf));
GetDlgItemTextW(hwnd, IDC_REPLACETEXT, wszRepl, COUNTOF(wszRepl));
SetDlgItemTextW(hwnd, IDC_FINDTEXT, wszRepl);
SetDlgItemTextW(hwnd, IDC_REPLACETEXT, wszFind);
@@ -6846,8 +6715,6 @@ static char* _GetReplaceString(HWND hwnd, LPCEDITFINDREPLACE lpefr, int* iRepla
//
bool EditReplace(HWND hwnd, LPCEDITFINDREPLACE lpefr)
{
- _BEGIN_UNDO_ACTION_
-
int iReplaceMsg = SCI_REPLACETARGET;
char* pszReplace = _GetReplaceString(hwnd, lpefr, &iReplaceMsg);
if (!pszReplace) {
@@ -6887,6 +6754,8 @@ bool EditReplace(HWND hwnd, LPCEDITFINDREPLACE lpefr)
return EditFindNext(hwnd, lpefr, false, false);
}
+ _BEGIN_UNDO_ACTION_
+
DocPos const saveTargetBeg = SciCall_GetTargetStart();
DocPos const saveTargetEnd = SciCall_GetTargetEnd();
@@ -6926,8 +6795,6 @@ int EditReplaceAllInRange(HWND hwnd, LPCEDITFINDREPLACE lpefr, DocPos iStartPos,
{
int iCount = 0;
- _BEGIN_UNDO_ACTION_
-
if (iStartPos > iEndPos) { swapos(&iStartPos, &iEndPos); }
char szFind[FNDRPL_BUFFER];
@@ -6981,6 +6848,8 @@ int EditReplaceAllInRange(HWND hwnd, LPCEDITFINDREPLACE lpefr, DocPos iStartPos,
DocPos searchStart = iStartPos;
DocPos totalReplLength = 0;
+ _BEGIN_UNDO_ACTION_
+
_IGNORE_NOTIFY_CHANGE_;
for (ReplPos_t* pPosPair = (ReplPos_t*)utarray_front(ReplPosUTArray);
diff --git a/src/Notepad3.c b/src/Notepad3.c
index 3c37f412f..8085b36c8 100644
--- a/src/Notepad3.c
+++ b/src/Notepad3.c
@@ -676,9 +676,6 @@ static void _InitGlobals()
Flags.bSettingsFileLocked = DefaultFlags.bSettingsFileLocked = false;
- Flags.bHas_SSE2_CPU = DefaultFlags.bHas_SSE2_CPU = false;
- Flags.bHas_AVX2_CPU_OS = DefaultFlags.bHas_AVX2_CPU_OS = false;
-
FocusedView.HideNonMatchedLines = false;
FocusedView.CodeFoldingAvailable = false;
FocusedView.ShowCodeFolding = true;
@@ -807,9 +804,6 @@ int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance,
Globals.hPrevInst = hPrevInstance;
Globals.hndlProcessHeap = GetProcessHeap();
- Flags.bHas_SSE2_CPU = CanUseCPUFeature(CPU_SSE2);
- Flags.bHas_AVX2_CPU_OS = CanUseCPUFeature(CPU_OS_AVX2);
-
WCHAR wchAppDir[2 * MAX_PATH + 4] = { L'\0' };
GetModuleFileName(NULL,wchAppDir,COUNTOF(wchAppDir));
PathCchRemoveFileSpec(wchAppDir, COUNTOF(wchAppDir));
diff --git a/src/Notepad3.vcxproj b/src/Notepad3.vcxproj
index e28cd2e2b..7690282d6 100644
--- a/src/Notepad3.vcxproj
+++ b/src/Notepad3.vcxproj
@@ -240,7 +240,6 @@
Level4
None
true
- AdvancedVectorExtensions2
Fast
stdcpp17
Speed
@@ -250,6 +249,8 @@
AnySuitable
true
Sync
+ true
+ false
comctl32.lib;imm32.lib;shlwapi.lib;uxtheme.lib;muiload.lib;dwrite.lib;scintilla.lib;%(AdditionalDependencies)
@@ -318,7 +319,8 @@
AnySuitable
true
Sync
- AdvancedVectorExtensions2
+ true
+ false
comctl32.lib;imm32.lib;shlwapi.lib;uxtheme.lib;muiload.lib;dwrite.lib;scintilla.lib;%(AdditionalDependencies)
diff --git a/src/TypeDefs.h b/src/TypeDefs.h
index 332086f52..6912121f6 100644
--- a/src/TypeDefs.h
+++ b/src/TypeDefs.h
@@ -507,8 +507,6 @@ typedef struct _flags_t
bool bSearchPathIfRelative;
bool bSettingsFileLocked;
- bool bHas_SSE2_CPU;
- bool bHas_AVX2_CPU_OS;
} FLAGS_T, *PFLAGS_T;
diff --git a/src/VersionEx.h b/src/VersionEx.h
index 533ba4ab6..4f0835c37 100644
--- a/src/VersionEx.h
+++ b/src/VersionEx.h
@@ -8,7 +8,7 @@
#define SAPPNAME "Notepad3"
#define VERSION_MAJOR 5
#define VERSION_MINOR 20
-#define VERSION_REV 228
+#define VERSION_REV 229
#define VERSION_BUILD 1
#define SCINTILLA_VER 430
#define ONIGURUMA_REGEX_VER 6.9.4
@@ -16,4 +16,4 @@
#define TINYEXPR_VER 2018.05.11
#define UTHASH_VER 2.1.0
#define VERSION_PATCH RC2
-#define VERSION_COMMIT_ID t7820-rk
+#define VERSION_COMMIT_ID nebukadn