diff --git a/language/common_res.h b/language/common_res.h index 7628fa0f4..50628793b 100644 --- a/language/common_res.h +++ b/language/common_res.h @@ -125,6 +125,7 @@ #define IDS_MUI_TRANSL_AUTHOR 15031 #define IDS_MUI_ASSOCIATED_EXT 15032 #define IDS_MUI_EXAMPLE_TEXT 15033 +#define IDS_MUI_ZERO_LEN_MATCH 15034 #define IDR_MAINWND 16000 #define IDR_MAINWND48 16001 diff --git a/language/np3_af_za/strings_af_za.rc b/language/np3_af_za/strings_af_za.rc index f79524f89..a02ab17e7 100644 Binary files a/language/np3_af_za/strings_af_za.rc and b/language/np3_af_za/strings_af_za.rc differ diff --git a/language/np3_de_de/strings_de_de.rc b/language/np3_de_de/strings_de_de.rc index 89964ebc0..32a586658 100644 Binary files a/language/np3_de_de/strings_de_de.rc and b/language/np3_de_de/strings_de_de.rc differ diff --git a/language/np3_en_gb/strings_en_gb.rc b/language/np3_en_gb/strings_en_gb.rc index 301741dca..8e91e7d2d 100644 Binary files a/language/np3_en_gb/strings_en_gb.rc and b/language/np3_en_gb/strings_en_gb.rc differ diff --git a/language/np3_en_us/strings_en_us.rc b/language/np3_en_us/strings_en_us.rc index 38ad188c1..a3e63a7bb 100644 Binary files a/language/np3_en_us/strings_en_us.rc and b/language/np3_en_us/strings_en_us.rc differ diff --git a/language/np3_es_es/strings_es_es.rc b/language/np3_es_es/strings_es_es.rc index 13ab6ad6b..5c27686d5 100644 Binary files a/language/np3_es_es/strings_es_es.rc and b/language/np3_es_es/strings_es_es.rc differ diff --git a/language/np3_fr_fr/strings_fr_fr.rc b/language/np3_fr_fr/strings_fr_fr.rc index cfc9e3086..1c1d5ae88 100644 Binary files a/language/np3_fr_fr/strings_fr_fr.rc and b/language/np3_fr_fr/strings_fr_fr.rc differ diff --git a/language/np3_ja_jp/strings_ja_jp.rc b/language/np3_ja_jp/strings_ja_jp.rc index 6b58d3d9f..2c338112c 100644 Binary files a/language/np3_ja_jp/strings_ja_jp.rc and b/language/np3_ja_jp/strings_ja_jp.rc differ diff --git a/language/np3_nl_nl/strings_nl_nl.rc b/language/np3_nl_nl/strings_nl_nl.rc index 92835490e..c94662035 100644 Binary files a/language/np3_nl_nl/strings_nl_nl.rc and b/language/np3_nl_nl/strings_nl_nl.rc differ diff --git a/language/np3_zh_cn/strings_zh_cn.rc b/language/np3_zh_cn/strings_zh_cn.rc index b68402dd4..41d046b3a 100644 Binary files a/language/np3_zh_cn/strings_zh_cn.rc and b/language/np3_zh_cn/strings_zh_cn.rc differ diff --git a/np3portableapp/build_np3portableapp.cmd b/np3portableapp/build_np3portableapp.cmd index 1c9a06991..321b7e9fe 100644 --- a/np3portableapp/build_np3portableapp.cmd +++ b/np3portableapp/build_np3portableapp.cmd @@ -66,6 +66,7 @@ set FILEVER= call :GETFILEVER "%NP3_WIN32_DIR%\Notepad3.exe" if defined FILEVER set VERSION=%FILEVER% + ::echo.VERSION=%VERSION% ::pause ::goto :END @@ -110,16 +111,11 @@ copy /B "%NP3_X64_DIR%\ced.exe" /B "%NP3_PORTAPP_DIR%\App\Notepad3\x64\" /Y /V call :REPLACE "xxxVERSIONxxx" "%NP3_PORTAPP_INFO%_template.ini" "%VERSION%" "%NP3_PORTAPP_INFO%_tmp.ini" -:: DEVNAME need some mor PortableApps preparation, so set empty for now -set DEVNAME= - -if defined DEVNAME ( - call :REPLACE "xxxDEVNAMExxx" "%NP3_PORTAPP_INFO%_tmp.ini" "_%DEVNAME%" "%NP3_PORTAPP_INFO%.ini" - call :REPLACE "xxxDEVNAMExxx" "%NP3_PORTAPP_INSTALL%_template.ini" "_%DEVNAME%" "%NP3_PORTAPP_INSTALL%.ini" -) else ( - call :REPLACE "xxxDEVNAMExxx" "%NP3_PORTAPP_INFO%_tmp.ini" "" "%NP3_PORTAPP_INFO%.ini" - call :REPLACE "xxxDEVNAMExxx" "%NP3_PORTAPP_INSTALL%_template.ini" "" "%NP3_PORTAPP_INSTALL%.ini" -) +:: DEVNAME need some more PortableApps preparation +::~ call :REPLACE "xxxDEVNAMExxx" "%NP3_PORTAPP_INFO%_tmp.ini" "_%DEVNAME%" "%NP3_PORTAPP_INFO%.ini" +::~ call :REPLACE "xxxDEVNAMExxx" "%NP3_PORTAPP_INSTALL%_template.ini" "_%DEVNAME%" "%NP3_PORTAPP_INSTALL%.ini" +call :REPLACE "xxxDEVNAMExxx" "%NP3_PORTAPP_INFO%_tmp.ini" "" "%NP3_PORTAPP_INFO%.ini" +call :REPLACE "xxxDEVNAMExxx" "%NP3_PORTAPP_INSTALL%_template.ini" "" "%NP3_PORTAPP_INSTALL%.ini" del /F "%NP3_PORTAPP_INFO%_tmp.ini" @@ -136,8 +132,8 @@ del /F "%NP3_PORTAPP_INFO%_tmp.ini" :: - build Installer - "%PORTAPP_INSTALLER_CREATOR%" "%NP3_PORTAPP_DIR%" - - +:: rename +rename "%SCRIPT_DIR%Notepad3Portable_%VERSION%_English.paf.exe" "Notepad3Portable_%DEVNAME%_%VERSION%_English.paf.exe" :: ==================================================================================================================== goto :END @@ -181,7 +177,6 @@ for /F "tokens=2 delims==" %%a in (' goto:EOF :: -------------------------------------------------------------------------------------------------------------------- - :GETBUILD set /p nxbuild=<%NP3_BUILD_VER% set /a BUILD = %nxbuild% - 1 diff --git a/src/Edit.c b/src/Edit.c index a7378bbeb..40ae94b4d 100644 --- a/src/Edit.c +++ b/src/Edit.c @@ -5936,6 +5936,8 @@ bool EditFindNext(HWND hwnd, LPCEDITFINDREPLACE lpefr, bool bExtendSelection, bo bSuppressNotFound = true; } + SciCall_CallTipCancel(); + DocPos iPos = _FindInTarget(hwnd, szFind, slen, (int)(lpefr->fuFlags), &start, &end, true, FRMOD_NORM); if ((iPos < -1) && (lpefr->fuFlags & SCFIND_REGEXP)) { @@ -5975,6 +5977,10 @@ bool EditFindNext(HWND hwnd, LPCEDITFINDREPLACE lpefr, bool bExtendSelection, bo else { EditSelectEx(hwnd, start, end, -1, -1); } + + if (start == end) { + EditShowZeroLengthCallTip(hwnd, start); + } return true; } @@ -8320,6 +8326,23 @@ void EditShowZoomCallTip(HWND hwnd) } +//============================================================================= +// +// EditShowZoomCallTip() +// +static char s_chZeroLenCT[80] = { '\0' }; + +void EditShowZeroLengthCallTip(HWND hwnd, DocPos iPosition) +{ + UNUSED(hwnd); + if (s_chZeroLenCT[0] == '\0') { + GetLngStringW2MB(IDS_MUI_ZERO_LEN_MATCH, s_chZeroLenCT, COUNTOF(s_chZeroLenCT)); + } + SciCall_CallTipShow(iPosition, s_chZeroLenCT); + g_CallTipType = CT_ZEROLEN_MATCH; +} + + //============================================================================= // diff --git a/src/Edit.h b/src/Edit.h index dcf65d3e6..8a43ec58d 100644 --- a/src/Edit.h +++ b/src/Edit.h @@ -170,6 +170,7 @@ void EditFoldClick(DocLn, int); void EditFoldAltArrow(FOLD_MOVE, FOLD_ACTION); void EditShowZoomCallTip(HWND hwnd); +void EditShowZeroLengthCallTip(HWND hwnd, DocPos iPosition); #define NP3_BRACES_TO_MATCH "()[]{}" diff --git a/src/Helpers.c b/src/Helpers.c index 72e28dcb5..5798ca313 100644 --- a/src/Helpers.c +++ b/src/Helpers.c @@ -716,7 +716,6 @@ bool IsCmdEnabled(HWND hwnd,UINT uId) } - //============================================================================= // // LoadLngStringW() @@ -727,6 +726,19 @@ int LoadLngStringW(UINT uID, LPWSTR lpBuffer, int nBufferMax) return (nLen != 0) ? nLen : LoadStringW(g_hInstance, uID, lpBuffer, nBufferMax); } +//============================================================================= +// +// LoadLngStringW2MB() +// +static WCHAR s_tmpStringBuffer[512]; + +int LoadLngStringW2MB(UINT uID, LPSTR lpBuffer, int nBufferMax) +{ + const int nLen = LoadStringW(g_hLngResContainer, uID, s_tmpStringBuffer, COUNTOF(s_tmpStringBuffer)); + if (nLen == 0) { LoadStringW(g_hInstance, uID, s_tmpStringBuffer, COUNTOF(s_tmpStringBuffer)); } + return WideCharToMultiByte(CP_UTF8, 0, s_tmpStringBuffer, -1, lpBuffer, nBufferMax, NULL, NULL); +} + //============================================================================= // // LoadLngStringA() diff --git a/src/Helpers.h b/src/Helpers.h index c394b2660..5d5e3461a 100644 --- a/src/Helpers.h +++ b/src/Helpers.h @@ -220,12 +220,16 @@ bool IsCmdEnabled(HWND, UINT); if (GetFocus() == hctrl) { SendMessage((hdlg), WM_NEXTDLGCTL, 0, false); } }; EnableWindow(hctrl, (b)); } -#define GetLngString(id,pb,cb) LoadLngStringW((id),(pb),(cb)) -#define GetLngStringA(id,pb,cb) LoadLngStringA((id),(pb),(cb)) int LoadLngStringW(UINT uID, LPWSTR lpBuffer, int nBufferMax); int LoadLngStringA(UINT uID, LPSTR lpBuffer, int nBufferMax); int FormatLngStringW(LPWSTR, int, UINT, ...); int FormatLngStringA(LPSTR, int, UINT, ...); +int LoadLngStringW2MB(UINT uID, LPSTR lpBuffer, int nBufferMax); + +#define GetLngString(id,pb,cb) LoadLngStringW((id),(pb),(cb)) +#define GetLngStringA(id,pb,cb) LoadLngStringA((id),(pb),(cb)) +#define GetLngStringW2MB(id,pb,cb) LoadLngStringW2MB((id),(pb),(cb)) + bool GetKnownFolderPath(REFKNOWNFOLDERID, LPWSTR, size_t); diff --git a/src/Notepad3.c b/src/Notepad3.c index f19332780..5d907856e 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -6304,8 +6304,8 @@ LRESULT MsgNotify(HWND hwnd, WPARAM wParam, LPARAM lParam) case SCN_CHARADDED: { - if (g_CallTipType == CT_ZOOM) { - SciCall_CallTipCancel(); + if (g_CallTipType != CT_NONE) { + SciCall_CallTipCancel(); g_CallTipType = CT_NONE; } diff --git a/src/TypeDefs.h b/src/TypeDefs.h index 7b2346402..de6893cac 100644 --- a/src/TypeDefs.h +++ b/src/TypeDefs.h @@ -120,7 +120,7 @@ typedef enum { // -------------------------------------------------------------------------- -typedef enum { CT_NONE = 0, CT_ZOOM } CALLTIPTYPE; +typedef enum { CT_NONE = 0, CT_ZOOM, CT_ZEROLEN_MATCH } CALLTIPTYPE; // --------------------------------------------------------------------------