From 2f9f68ab1b99af01fcae20b26595df2380ea32c5 Mon Sep 17 00:00:00 2001 From: Pairi Daiza Date: Mon, 31 Aug 2020 16:08:33 +0200 Subject: [PATCH 1/6] MUI - Notepad3 Update Polish Translation (pl-PL) --- language/np3_pl_pl/lexer_pl_pl.rc | 6 +-- language/np3_pl_pl/menu_pl_pl.rc | 84 ++++++++++++++--------------- language/np3_pl_pl/strings_pl_pl.rc | 8 +-- 3 files changed, 49 insertions(+), 49 deletions(-) diff --git a/language/np3_pl_pl/lexer_pl_pl.rc b/language/np3_pl_pl/lexer_pl_pl.rc index 4024af426..6ac31af03 100644 --- a/language/np3_pl_pl/lexer_pl_pl.rc +++ b/language/np3_pl_pl/lexer_pl_pl.rc @@ -455,7 +455,7 @@ END STRINGTABLE BEGIN IDS_LEX_STR_63357 "Dla każdej definicji" - IDS_LEX_STR_63358 "While Definition" + IDS_LEX_STR_63358 "Cała definicja" IDS_LEX_STR_63359 "Matematyka" IDS_LEX_STR_63360 "Skalar" IDS_LEX_STR_63361 "Zastąpienie" @@ -464,8 +464,8 @@ BEGIN IDS_LEX_STR_63364 "Nazwa własności" IDS_LEX_STR_63365 "Klucz LD" IDS_LEX_STR_63366 "Sekwencja ESC" - IDS_LEX_STR_63367 "Unicode-Point Hover" - IDS_LEX_STR_63368 "2nd Unicode-Point Hover" + IDS_LEX_STR_63367 "Punkt najechania Unicode" + IDS_LEX_STR_63368 "Drugi punkt najechania Unicode" END STRINGTABLE diff --git a/language/np3_pl_pl/menu_pl_pl.rc b/language/np3_pl_pl/menu_pl_pl.rc index b524a1173..d8b16b360 100644 --- a/language/np3_pl_pl/menu_pl_pl.rc +++ b/language/np3_pl_pl/menu_pl_pl.rc @@ -64,9 +64,9 @@ BEGIN MENUITEM "Zapisz &kopię...\tCtrl+F6", IDM_FILE_SAVECOPY MENUITEM "Zapisz oryginalny plik, datę / czas\tCtrl+Alt+F6", IDM_FILE_PRESERVE_FILEMODTIME MENUITEM SEPARATOR - MENUITEM "&Tylko do odczytu", IDM_FILE_READONLY + MENUITEM "&Tylko do odczytu", IDM_FILE_READONLY MENUITEM SEPARATOR - MENUITEM "Ustaw hasło szyfrowania...", IDM_SETPASS + MENUITEM "Ustaw hasło szyfrowania...", IDM_SETPASS MENUITEM SEPARATOR POPUP "Ścieżka do Schowka" BEGIN @@ -93,23 +93,23 @@ BEGIN MENUITEM "Otwórz Eksplorator pliku", IDM_FILE_EXPLORE_DIR END MENUITEM SEPARATOR - MENUITEM "Re&vert from File\tF5", IDM_FILE_REVERT + MENUITEM "Powróć z pliku\tF5", IDM_FILE_REVERT POPUP "&Kodowanie" BEGIN - POPUP "&Revert from File as" + POPUP "&Powróć z pliku jako" BEGIN - MENUITEM "&Default (Setting)", CMD_RECODEDEFAULT + MENUITEM "&Domyślnie (Setting)", CMD_RECODEDEFAULT MENUITEM "&ANSI\tCtrl+Shift+A", CMD_RECODEANSI MENUITEM "&OEM\tCtrl+Shift+O", CMD_RECODEOEM MENUITEM "&GB18030\tCtrl+Shift+F10", CMD_RECODEGB18030 MENUITEM SEPARATOR MENUITEM "ASCII jako UTF-&8\tCtrl+Shift+F8", CMD_RELOADASCIIASUTF8 - MENUITEM "Force U&CHARDET Analysis", CMD_RELOADFORCEDETECTION + MENUITEM "Wymuś analizę U&CHARDET", CMD_RELOADFORCEDETECTION MENUITEM "Ignoruj znaczniki &kodowania\tAlt+F8", CMD_RELOADNOFILEVARS MENUITEM SEPARATOR - MENUITEM "&More Encodings...\tF8", IDM_ENCODING_RECODE + MENUITEM "&Więcej kodowań...\tF8", IDM_ENCODING_RECODE END - POPUP "&Set Document as" + POPUP "&Ustaw dokument jako" BEGIN MENUITEM "&ANSI", IDM_ENCODING_ANSI MENUITEM "&Unicode", IDM_ENCODING_UNICODE @@ -117,10 +117,10 @@ BEGIN MENUITEM "UTF-&8\tShift+F8", IDM_ENCODING_UTF8 MENUITEM "UTF-8 z &sygnaturą", IDM_ENCODING_UTF8SIGN MENUITEM SEPARATOR - MENUITEM "&More Encodings...\tF9", IDM_ENCODING_SELECT + MENUITEM "&Więcej kodowań...\tF9", IDM_ENCODING_SELECT END MENUITEM SEPARATOR - MENUITEM "Set Encoding &Defaults...", IDM_ENCODING_SETDEFAULT + MENUITEM "Ustawienia domyślne kodowania...", IDM_ENCODING_SETDEFAULT END POPUP "Znak końca wiersza" BEGIN @@ -179,10 +179,10 @@ BEGIN MENUITEM "Przenieś w górę\tCtrl+Shift+ ↑", IDM_EDIT_MOVELINEUP MENUITEM "&Przenieś w dół\tCtrl+Shift+ ↓", IDM_EDIT_MOVELINEDOWN MENUITEM SEPARATOR - MENUITEM "Wytnij wybór lub bieżący wiersz\tCtrl+X", IDM_EDIT_CUT - MENUITEM "Wytnij cały wiersz wyboru\tCtrl+Shift+X", IDM_EDIT_CUTLINE - MENUITEM "&Kopiuj wybór lub bieżący wiersz\tCtrl+C", IDM_EDIT_COPY - MENUITEM "Kopiuj cały wiersz wyboru\tCtrl+Shift+C", IDM_EDIT_COPYLINE + MENUITEM "Wytnij wybór lub bieżący wiersz\tCtrl+X", IDM_EDIT_CUT + MENUITEM "Wytnij cały wiersz wyboru\tCtrl+Shift+X", IDM_EDIT_CUTLINE + MENUITEM "&Kopiuj wybór lub bieżący wiersz\tCtrl+C", IDM_EDIT_COPY + MENUITEM "Kopiuj cały wiersz wyboru\tCtrl+Shift+C", IDM_EDIT_COPYLINE MENUITEM SEPARATOR MENUITEM "&Utwórz duplikat wiersza/wyboru\tCtrl+D", IDM_EDIT_DUPLINEORSELECTION MENUITEM "&Zamień wiersze\tAlt+D", IDM_EDIT_LINETRANSPOSE @@ -232,9 +232,9 @@ BEGIN MENUITEM "Usuń niewidoczne końcowe znaki\tAlt+W", IDM_EDIT_TRIMLINES MENUITEM "Skompresuj niewidoczne znaki\tCtrl+Alt+P", IDM_EDIT_COMPRESS_BLANKS MENUITEM SEPARATOR - MENUITEM "&Modyfikuj wiersze...\tAlt+M", IDM_EDIT_MODIFYLINES - MENUITEM "&Wyrównaj wiersze...\tAlt+J", IDM_EDIT_ALIGN - MENUITEM "&Posortuj wiersze...\tAlt+O", IDM_EDIT_SORTLINES + MENUITEM "&Modyfikuj wiersze...\tAlt+M", IDM_EDIT_MODIFYLINES + MENUITEM "&Wyrównaj wiersze...\tAlt+J", IDM_EDIT_ALIGN + MENUITEM "&Posortuj wiersze...\tAlt+O", IDM_EDIT_SORTLINES END POPUP "Ko&nwertuj" BEGIN @@ -275,7 +275,7 @@ BEGIN END POPUP "&Różne" BEGIN - MENUITEM "Kopiuj&GUID do Schowka\tCtrl+Shift+.", IDM_EDIT_INSERT_GUID + MENUITEM "Kopiuj&GUID do Schowka\tCtrl+Shift+.", IDM_EDIT_INSERT_GUID MENUITEM SEPARATOR MENUITEM "&Znaki ucieczki\tCtrl+Alt+E", IDM_EDIT_ESCAPECCHARS MENUITEM "&Usuń znaki ucieczki\tCtrl+Alt+R", IDM_EDIT_UNESCAPECCHARS @@ -292,7 +292,7 @@ BEGIN MENUITEM "Zaznacz wyraz lub wiersz\tCtrl+Spc", IDM_EDIT_SELECTWORD MENUITEM "Multiwybór-wszystko pasujące\tCtrl+Shift+Spc", IDM_EDIT_SELECTALLMATCHES MENUITEM SEPARATOR - MENUITEM "Podział operacji cofania przy przenoszeniu wierszy", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK + MENUITEM "Podział operacji cofania przy przenoszeniu wierszy", IDM_VIEW_SPLIT_UNDOTYPSEQ_LNBRK END MENUITEM SEPARATOR POPUP "Zakładki" @@ -317,7 +317,7 @@ BEGIN MENUITEM "Zamień następny\tF4", IDM_EDIT_REPLACENEXT MENUITEM "&Przejdź do wiersza...\tCtrl+G", IDM_EDIT_GOTOLINE MENUITEM SEPARATOR - MENUITEM "&Szukaj w plikach\tCtrl+Shift+F", IDM_GREP_WIN_SEARCH + MENUITEM "&Szukaj w plikach\tCtrl+Shift+F", IDM_GREP_WIN_SEARCH END END POPUP "&Widok" @@ -338,7 +338,7 @@ BEGIN MENUITEM "&A+RGB" IDM_VIEW_COLOR_ARGB MENUITEM "&BGRA" IDM_VIEW_COLOR_BGRA END - MENUITEM "Highlight &Unicode-Points", IDM_VIEW_UNICODE_POINTS + MENUITEM "Podświetl punkty &Unicode", IDM_VIEW_UNICODE_POINTS MENUITEM "&Wyróżnianie pasujących nawiasów\tCtrl+Shift+V", IDM_VIEW_MATCHBRACES POPUP "Wyróżnianie bieżącego wiersza\tCtrl+Shift+I" BEGIN @@ -349,7 +349,7 @@ BEGIN POPUP "Oznacz zdarzenia" BEGIN MENUITEM "&Aktywuj\tAlt+A", IDM_VIEW_MARKOCCUR_ONOFF - MENUITEM "Use &Bookmarks too", IDM_VIEW_MARKOCCUR_BOOKMARKS + MENUITEM "Użyj też zakładek", IDM_VIEW_MARKOCCUR_BOOKMARKS MENUITEM SEPARATOR MENUITEM "Dopasuj tylko widoczne", IDM_VIEW_MARKOCCUR_VISIBLE MENUITEM SEPARATOR @@ -363,7 +363,7 @@ BEGIN END MENUITEM SEPARATOR MENUITEM "Numery wierszy\tCtrl+Shift+N", IDM_VIEW_LINENUMBERS - MENUITEM "Bookmark &Margin\tCtrl+Shift+M", IDM_VIEW_BOOKMARK_MARGIN + MENUITEM "&Margines zakładki\tCtrl+Shift+M", IDM_VIEW_BOOKMARK_MARGIN MENUITEM SEPARATOR POPUP "&Składanie" BEGIN @@ -379,13 +379,13 @@ BEGIN POPUP "&Pokaż" BEGIN MENUITEM "Widok skupiony\tCtrl+Alt+V", IDM_VIEW_TOGGLE_VIEW - POPUP "View Mode" + POPUP "Tryb podglądu" BEGIN - MENUITEM "Fold", IDM_VIEW_FV_FOLD - MENUITEM "Bookmark", IDM_VIEW_FV_BOOKMARK - MENUITEM "Highlight", IDM_VIEW_FV_HIGHLIGHT - MENUITEM "Bookmark && Fold", IDM_VIEW_FV_BKMRKFOLD - MENUITEM "Highlight && Fold", IDM_VIEW_FV_HIGHLGFOLD + MENUITEM "Zwiń", IDM_VIEW_FV_FOLD + MENUITEM "Zakładka", IDM_VIEW_FV_BOOKMARK + MENUITEM "Podświetlenie", IDM_VIEW_FV_HIGHLIGHT + MENUITEM "Zakładka && zagięcie", IDM_VIEW_FV_BKMRKFOLD + MENUITEM "Podświetlenie && zagięcie", IDM_VIEW_FV_HIGHLGFOLD END MENUITEM SEPARATOR MENUITEM "Dziennik &monitorowania", IDM_VIEW_CHASING_DOCTAIL @@ -402,7 +402,7 @@ BEGIN MENUITEM "&Załaduj motyw paska narzędzi...", IDM_VIEW_LOADTHEMETB MENUITEM "Dostosuj pasek narzędzi...", IDM_VIEW_CUSTOMIZETB MENUITEM "Przełącz paski narzędzi", IDM_VIEW_TOGGLETB - MENUITEM "&Pasek narzędzi w skali DPI", IDM_VIEW_DPISCALETB + MENUITEM "&Pasek narzędzi w skali DPI", IDM_VIEW_DPISCALETB END POPUP "&Powiększenie" BEGIN @@ -418,7 +418,7 @@ BEGIN MENUITEM "Wyczyść zapisaną domyślną pozycję", CMD_CLEARSAVEDWINPOS MENUITEM "Pozycja początkowa\tCtrl+F11", CMD_INITIALWINPOS MENUITEM "Przełącz pozycję całego obszaru\tF11", CMD_FULLSCRWINPOS - MENUITEM "Stała pozycja okna", IDM_VIEW_STICKYWINPOS + MENUITEM "Stała pozycja okna", IDM_VIEW_STICKYWINPOS END END POPUP "&Wygląd" @@ -440,7 +440,7 @@ BEGIN MENUITEM "Automatyczne wcięcie", IDM_VIEW_AUTOINDENTTEXT MENUITEM "Automatyczne zamykanie &HTML/XML\tCtrl+Shift+H", IDM_VIEW_AUTOCLOSETAGS MENUITEM "A&utouzupełnianie wyrazów", IDM_VIEW_AUTOCOMPLETEWORDS - MENUITEM "Autouzupełnianie Lekserem", IDM_VIEW_AUTOCLEXKEYWORDS + MENUITEM "Autouzupełnianie Lekserem", IDM_VIEW_AUTOCLEXKEYWORDS MENUITEM "Przyspieszona nawigacja wyrazów\tCtrl+Alt+A", IDM_VIEW_ACCELWORDNAV MENUITEM "Włącz edycję wierszy bloku komentarzy", IDM_VIEW_EDIT_LINECOMMENT MENUITEM SEPARATOR @@ -454,7 +454,7 @@ BEGIN MENUITEM "Zamknij Notepad3", IDM_VIEW_ESCEXIT END MENUITEM "Zapisz przed uruchomieniem narzędzi", IDM_VIEW_SAVEBEFORERUNNINGTOOLS - MENUITEM "Calculate Tiny-E&xpressions", IDM_VIEW_EVALTINYEXPRONSEL + MENUITEM "Przelicz niewielkie wyrażenia", IDM_VIEW_EVALTINYEXPRONSEL MENUITEM SEPARATOR POPUP "&Zapamiętaj" BEGIN @@ -467,7 +467,7 @@ BEGIN POPUP "Wyświetlenie tytułu okna" BEGIN MENUITEM "Tylko nazwa pliku", IDM_VIEW_SHOWFILENAMEONLY - MENUITEM "Nazwapliku i katalog", IDM_VIEW_SHOWFILENAMEFIRST + MENUITEM "Nazwa pliku i katalog", IDM_VIEW_SHOWFILENAMEFIRST MENUITEM "Pełna ścieżka", IDM_VIEW_SHOWFULLPATH MENUITEM "&Fragment tekstu\tCtrl+9", IDM_VIEW_SHOWEXCERPT END @@ -485,10 +485,10 @@ BEGIN MENUITEM "Direct&Write GDI DC", IDM_SET_RENDER_TECH_D2DDC MENUITEM "&GDI (bez ligatury)", IDM_SET_RENDER_TECH_GDI END - POPUP "R&TL Layout (GDI)" + POPUP "Układ R&TL (GDI)" BEGIN - MENUITEM "&Edit Area", IDM_SET_RTL_LAYOUT_EDIT - MENUITEM "&Other Dialogs", IDM_SET_RTL_LAYOUT_DLG + MENUITEM "&Edytuj obszar", IDM_SET_RTL_LAYOUT_EDIT + MENUITEM "&Inne dialogi", IDM_SET_RTL_LAYOUT_DLG END POPUP "&Dwukierunkowa" BEGIN @@ -551,14 +551,14 @@ BEGIN END POPUP "+" BEGIN - MENUITEM "Clear Marker", IDM_EDIT_CLEAR_MARKER - MENUITEM "Cut Lines of Marker-Type", IDM_EDIT_CUT_MARKED - MENUITEM "Copy Lines of Marker-Type", IDM_EDIT_COPY_MARKED - MENUITEM "Delete Lines of Marker-Type", IDM_EDIT_DELETE_MARKED + MENUITEM "Wyczyść znacznik", IDM_EDIT_CLEAR_MARKER + MENUITEM "Wytnij linie typu znacznika", IDM_EDIT_CUT_MARKED + MENUITEM "Kopiuj linie typu znacznika", IDM_EDIT_COPY_MARKED + MENUITEM "Usuń linie typu znacznika", IDM_EDIT_DELETE_MARKED MENUITEM SEPARATOR MENUITEM "Składanie kodu", IDM_VIEW_FOLDING MENUITEM "Numery wierszy", IDM_VIEW_LINENUMBERS - MENUITEM "Bookmark Margin", IDM_VIEW_BOOKMARK_MARGIN + MENUITEM "Margines zakładki", IDM_VIEW_BOOKMARK_MARGIN END POPUP "+" BEGIN diff --git a/language/np3_pl_pl/strings_pl_pl.rc b/language/np3_pl_pl/strings_pl_pl.rc index 00cce78d3..ad62ce8a8 100644 --- a/language/np3_pl_pl/strings_pl_pl.rc +++ b/language/np3_pl_pl/strings_pl_pl.rc @@ -159,7 +159,7 @@ BEGIN IDS_MUI_EOLMODENAME_LF "Unix/Mac (LF)" IDS_MUI_EOLMODENAME_CR "Old Mac (CR)" IDS_MUI_WARN_NORMALIZE_EOLS - "Do you want to normalise all line endings to be '%s'?" + "Czy chcesz znormalizować wszystkie zakończenia linii '%s'?" END STRINGTABLE @@ -255,11 +255,11 @@ BEGIN IDM_THEMES_FILE_ITEM "&Ustawienia standardowe" IDS_MUI_STATUSBAR_PREFIXES "Ln ,kol ,Sel ,Sb ,SLn ,Occ ,,,,,,,Ch ,Repl ,Podn ," IDS_MUI_STATUSBAR_POSTFIXES ",,,,,,,,,,,,,,," - IDS_CLEAR_ALL "Clear All" + IDS_CLEAR_ALL "Wyczyść wszystko" IDS_MUI_CLEAR_FIND_HISTORY - "Clear Find History" + "Wyczyść Znajdź Historię" IDS_MUI_CLEAR_REPL_HISTORY - "Clear Replace History" + "Wyczyść Zamień Historię" END STRINGTABLE From 965b0ef29166c093e0fd2b9925c9100f93092ead Mon Sep 17 00:00:00 2001 From: Pairi Daiza Date: Mon, 31 Aug 2020 16:08:55 +0200 Subject: [PATCH 2/6] + upd: Version files and Changes.txt --- Build/Changes.txt | 4 +++- Versions/day.txt | 2 +- res/Notepad3.exe.manifest.conf | 2 +- src/VersionEx.h | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Build/Changes.txt b/Build/Changes.txt index fb8d4da26..a3ed3f4a9 100644 --- a/Build/Changes.txt +++ b/Build/Changes.txt @@ -33,7 +33,7 @@ SUP - (S)et(UP) / Installer Package ======================================================== -Current BETA/RC Version 5.20.830.(build_#) (2020-08-30) +Current BETA/RC Version 5.20.831.(build_#) (2020-08-31) ======================================================== -------------------------------------------------------- @@ -100,6 +100,8 @@ ENHANCEMENT: FIXES: -------------------------------------------------------- [.###.#]- +[.831.1]- Recent File List (File History): Disable OK/Remove on empty list. +[.831.1]- Enhanced internal icon/bitmap handling. [.830.1]- Remove needless function. [.830.1]- F/R Dialog: Auto-Esc-Chars handling. [.830.1]- F/R Dialog: Clear F/R History - remove entries from .ini-file too. diff --git a/Versions/day.txt b/Versions/day.txt index e3240710a..b9d5edd3c 100644 --- a/Versions/day.txt +++ b/Versions/day.txt @@ -1 +1 @@ -830 +831 diff --git a/res/Notepad3.exe.manifest.conf b/res/Notepad3.exe.manifest.conf index 6e9a4c061..17e31bc91 100644 --- a/res/Notepad3.exe.manifest.conf +++ b/res/Notepad3.exe.manifest.conf @@ -3,7 +3,7 @@ Notepad3 rc diff --git a/src/VersionEx.h b/src/VersionEx.h index 49877e8b2..547bbaa62 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 830 +#define VERSION_REV 831 #define VERSION_BUILD 1 #define SCINTILLA_VER 444 #define ONIGURUMA_REGEX_VER 6.9.5 From ac866b914728bf8736b5d107845be586352b30ed Mon Sep 17 00:00:00 2001 From: Pairi Daiza Date: Mon, 31 Aug 2020 16:57:18 +0200 Subject: [PATCH 3/6] Update Readme.md --- Readme.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Readme.md b/Readme.md index 01728a839..9e936b493 100644 --- a/Readme.md +++ b/Readme.md @@ -59,10 +59,12 @@ As an added service for Notepad3 users; Rizonesoft uses [Telegram](https://teleg # References -Review of **Notepad3** posted by the moderator [Karston](https://www.nsaneforums.com/profile/12756-karlston/) at [nsane.forums](https://www.nsaneforums.com/) -Seen on Nsane Forums: [Notepad3 is an advanced text editor...](https://www.nsaneforums.com/topic/382910-guidereview-notepad3-is-an-advanced-text-editor-that-supports-many-programming-languages/) +Review of **Notepad3** posted by the moderator [Karston](https://www.nsaneforums.com/profile/12756-karlston/) at [nsane.forums](https://www.nsaneforums.com/). +Seen on Nsane Forums: [Notepad3 is an advanced text editor...](https://www.nsaneforums.com/topic/382910-guidereview-notepad3-is-an-advanced-text-editor-that-supports-many-programming-languages/). + To be correct and complete, this **Notepad3's review** is written on 2020-08-11 by **[Ashwin](https://www.ghacks.net/author/ashwin/)** and posted on **[gHacks](https://www.ghacks.net/)**. -Original source: **[Notepad3 is an advanced text editor that supports many programming languages](https://www.ghacks.net/2020/08/11/notepad3-is-an-advanced-text-editor-that-supports-many-programming-languages/)** + +Original source: **[Notepad3 is an advanced text editor that supports many programming languages](https://www.ghacks.net/2020/08/11/notepad3-is-an-advanced-text-editor-that-supports-many-programming-languages/)**.
From c3eacdc4382fd893cf0ca3cf89a1671967d9d0c7 Mon Sep 17 00:00:00 2001 From: Pairi Daiza Date: Mon, 31 Aug 2020 17:00:26 +0200 Subject: [PATCH 4/6] Update Readme.md --- Readme.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Readme.md b/Readme.md index 9e936b493..e417abe8a 100644 --- a/Readme.md +++ b/Readme.md @@ -59,8 +59,7 @@ As an added service for Notepad3 users; Rizonesoft uses [Telegram](https://teleg # References -Review of **Notepad3** posted by the moderator [Karston](https://www.nsaneforums.com/profile/12756-karlston/) at [nsane.forums](https://www.nsaneforums.com/). -Seen on Nsane Forums: [Notepad3 is an advanced text editor...](https://www.nsaneforums.com/topic/382910-guidereview-notepad3-is-an-advanced-text-editor-that-supports-many-programming-languages/). +Seen on Nsane Forums: [Notepad3 is an advanced text editor...](https://www.nsaneforums.com/topic/382910-guidereview-notepad3-is-an-advanced-text-editor-that-supports-many-programming-languages/), a review of **Notepad3** posted by the moderator [Karston](https://www.nsaneforums.com/profile/12756-karlston/) at [nsane.forums](https://www.nsaneforums.com/). To be correct and complete, this **Notepad3's review** is written on 2020-08-11 by **[Ashwin](https://www.ghacks.net/author/ashwin/)** and posted on **[gHacks](https://www.ghacks.net/)**. From d7c8b8777c2629b314f873f518be03f8b8c2f250 Mon Sep 17 00:00:00 2001 From: Pairi Daiza Date: Mon, 31 Aug 2020 20:43:33 +0200 Subject: [PATCH 5/6] Update Readme.md --- Readme.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Readme.md b/Readme.md index e417abe8a..18f2daae0 100644 --- a/Readme.md +++ b/Readme.md @@ -13,9 +13,10 @@ Notepad3 is a fast and light-weight Scintilla-based text editor with syntax high * Latest changelog (release notes) - https://www.rizonesoft.com/downloads/notepad3/update * Notepad3 Documentation - https://www.rizonesoft.com/documents/notepad3 -## Message Rizonesoft +## Rizonesoft Support -As an added service for Notepad3 users; Rizonesoft uses [Telegram](https://telegram.org) to provide free support. Simply download Telegram on your preferred device and use [this link](https://t.me/rizonesoft) to message us. +* **[GET IN TOUCH](https://www.rizonesoft.com/#contact)** +* **Premium Support** - On Rizonesoft, support is free and we will assist you the best we can. Please be patient when contacting us; there are mainly volunteers working on Rizonesoft projects and time is a precious commodity. ## Changes compared to Flo's official [Notepad2](http://www.flos-freeware.ch/notepad2.html) (made in [Notepad2-mod](https://xhmikosr.github.io/notepad2-mod/)): From 75ce5376ac2ab9f2eb16b321526f323c2c2c130d Mon Sep 17 00:00:00 2001 From: RaiKoHoff Date: Tue, 1 Sep 2020 09:36:00 +0200 Subject: [PATCH 6/6] + fix: crash caused by buffer overflow --- src/Config/Config.cpp | 4 +- src/Edit.c | 201 +++++++++++++++++++++--------------------- src/Helpers.c | 4 +- src/Helpers.h | 4 +- src/Notepad3.c | 16 ++-- src/Styles.c | 4 +- 6 files changed, 116 insertions(+), 117 deletions(-) diff --git a/src/Config/Config.cpp b/src/Config/Config.cpp index 1a3f7cdc3..26a147c43 100644 --- a/src/Config/Config.cpp +++ b/src/Config/Config.cpp @@ -1569,7 +1569,7 @@ void LoadSettings() IniSectionGetString(IniSecSettings2, L"DefaultWindowPosition", Defaults2.DefaultWindowPosition, Settings2.DefaultWindowPosition, COUNTOF(Settings2.DefaultWindowPosition)); - bool const bExplicitDefaultWinPos = (StringCchLenW(Settings2.DefaultWindowPosition, 0) != 0); + bool const bExplicitDefaultWinPos = StrIsNotEmpty(Settings2.DefaultWindowPosition); // 1st set default window position @@ -2495,7 +2495,7 @@ void MRU_Save(LPMRULIST pmru) StringCchPrintf(tchName, COUNTOF(tchName), L"ANC%.2i", i + 1); IniSectionSetPos(RegKey_Section, tchName, pmru->iSelAnchPos[i]); } - if (pmru->pszBookMarks[i] && (StringCchLenW(pmru->pszBookMarks[i], MRU_BMRK_SIZE) > 0)) { + if (StrIsNotEmpty(pmru->pszBookMarks[i])) { StringCchPrintf(tchName, COUNTOF(tchName), L"BMRK%.2i", i + 1); IniSectionSetString(RegKey_Section, tchName, pmru->pszBookMarks[i]); } diff --git a/src/Edit.c b/src/Edit.c index c1725072e..26972c59f 100644 --- a/src/Edit.c +++ b/src/Edit.c @@ -254,7 +254,8 @@ void EditInitWordDelimiter(HWND hwnd) StringCchCopyA(WhiteSpaceCharsAccelerated, COUNTOF(WhiteSpaceCharsAccelerated), WhiteSpaceCharsDefault); // add only 7-bit-ASCII chars to accelerated whitespace list - for (size_t i = 0; i < StringCchLenA(whitesp, ANSI_CHAR_BUFFER); i++) { + size_t const wsplen = StringCchLenA(whitesp, ANSI_CHAR_BUFFER); + for (size_t i = 0; i < wsplen; i++) { if (whitesp[i] & 0x7F) { if (!StrChrA(WhiteSpaceCharsAccelerated, whitesp[i])) { StringCchCatNA(WhiteSpaceCharsAccelerated, COUNTOF(WhiteSpaceCharsAccelerated), &(whitesp[i]), 1); @@ -265,7 +266,8 @@ void EditInitWordDelimiter(HWND hwnd) // construct word char array StringCchCopyA(WordCharsAccelerated, COUNTOF(WordCharsAccelerated), WordCharsDefault); // init // add punctuation chars not listed in white-space array - for (size_t i = 0; i < StringCchLenA(PunctuationCharsDefault, ANSI_CHAR_BUFFER); i++) { + size_t const pcdlen = StringCchLenA(PunctuationCharsDefault, ANSI_CHAR_BUFFER); + for (size_t i = 0; i < pcdlen; i++) { if (!StrChrA(WhiteSpaceCharsAccelerated, PunctuationCharsDefault[i])) { StringCchCatNA(WordCharsAccelerated, COUNTOF(WordCharsAccelerated), &(PunctuationCharsDefault[i]), 1); } @@ -4757,7 +4759,7 @@ void EditSortLines(HWND hwnd, int iSortFlags) if (iSortFlags & SORT_REMWSPACELN) { StrTrimA(pmsz, "\t\v \r\n"); // try clean line - if (StringCchLenA(pmsz, cchm) == 0) { + if (StrIsEmptyA(pmsz)) { // white-space only - remove continue; } @@ -5346,50 +5348,47 @@ static void _SetSearchFlags(HWND hwnd, LPEDITFINDREPLACE lpefr) // Wildcard search uses the regexp engine to perform a simple search with * ? as wildcards // instead of more advanced and user-unfriendly regexp syntax // for speed, we only need POSIX syntax here -static void _EscapeWildcards(char* szFind2, LPCEDITFINDREPLACE lpefr) +static void _EscapeWildcards(char* szFind2, size_t cch, LPCEDITFINDREPLACE lpefr) { - char szWildcardEscaped[FNDRPL_BUFFER] = { '\0' }; - int iSource = 0; - int iDest = 0; - - lpefr->fuFlags |= SCFIND_REGEXP; - - while (szFind2[iSource] != '\0') + char *const szWildcardEscaped = (char *)AllocMem((cch<<1) + 1, HEAP_ZERO_MEMORY); + if (szWildcardEscaped) { - char c = szFind2[iSource]; - if (c == '*') + size_t iSource = 0; + size_t iDest = 0; + + lpefr->fuFlags |= SCFIND_REGEXP; + + while ((iSource < cch) && (szFind2[iSource] != '\0')) { - szWildcardEscaped[iDest++] = '.'; - } - else if (c == '?') - { - c = '.'; - } - else - { - if (c == '^' || - c == '$' || - c == '(' || - c == ')' || - c == '[' || - c == ']' || - c == '{' || - c == '}' || - c == '.' || - c == '+' || - c == '|' || - c == '\\') - { - szWildcardEscaped[iDest++] = '\\'; + char c = szFind2[iSource]; + if (c == '*') { + szWildcardEscaped[iDest++] = '.'; + } else if (c == '?') { + c = '.'; + } else { + if (c == '^' || + c == '$' || + c == '(' || + c == ')' || + c == '[' || + c == ']' || + c == '{' || + c == '}' || + c == '.' || + c == '+' || + c == '|' || + c == '\\') { + szWildcardEscaped[iDest++] = '\\'; + } } + szWildcardEscaped[iDest++] = c; + ++iSource; } - szWildcardEscaped[iDest++] = c; - iSource++; + + StringCchCopyNA(szFind2, cch, szWildcardEscaped, (cch<<1)); + + FreeMem(szWildcardEscaped); } - - szWildcardEscaped[iDest] = '\0'; - - StringCchCopyNA(szFind2, FNDRPL_BUFFER, szWildcardEscaped, COUNTOF(szWildcardEscaped)); } @@ -5397,33 +5396,32 @@ static void _EscapeWildcards(char* szFind2, LPCEDITFINDREPLACE lpefr) // // _EditGetFindStrg() // -static int _EditGetFindStrg(HWND hwnd, LPCEDITFINDREPLACE lpefr, LPSTR szFind, int cchCnt) -{ +static size_t _EditGetFindStrg(HWND hwnd, LPCEDITFINDREPLACE lpefr, LPSTR szFind, size_t cchCnt) { UNUSED(hwnd); - if (StringCchLenA(lpefr->szFind, COUNTOF(lpefr->szFind))) { - StringCchCopyA(szFind, cchCnt, lpefr->szFind); + if (!lpefr) { return 0; } + if (!StrIsEmptyA(lpefr->szFind)) { + StringCchCopyNA(szFind, cchCnt, lpefr->szFind, COUNTOF(lpefr->szFind)); } else { CopyFindPatternMB(szFind, cchCnt); - StringCchCopyA(lpefr->szFind, COUNTOF(lpefr->szFind), szFind); + StringCchCopyNA(lpefr->szFind, COUNTOF(lpefr->szFind), szFind, cchCnt); + } + if (StrIsEmptyA(lpefr->szFind)) { + return 0; } - if (!StringCchLenA(szFind, cchCnt)) { return 0; } bool const bIsRegEx = (lpefr->fuFlags & SCFIND_REGEXP); if (lpefr->bTransformBS || bIsRegEx) { TransformBackslashes(szFind, bIsRegEx, Encoding_SciCP, NULL); } - if (StringCchLenA(szFind, FNDRPL_BUFFER) > 0) { - if (lpefr->bWildcardSearch) - _EscapeWildcards(szFind, lpefr); + if (!StrIsEmptyA(szFind) && (lpefr->bWildcardSearch)) { + _EscapeWildcards(szFind, cchCnt, lpefr); } - - return (int)StringCchLenA(szFind, FNDRPL_BUFFER); + + return StringCchLenA(szFind, cchCnt); } - - //============================================================================= // // _FindInTarget() @@ -5488,46 +5486,45 @@ typedef enum { MATCH = 0, NO_MATCH = 1, INVALID = 2 } RegExResult_t; static RegExResult_t _FindHasMatch(HWND hwnd, LPCEDITFINDREPLACE lpefr, DocPos iStartPos, bool bMarkAll, bool bFirstMatchOnly) { - char szFind[FNDRPL_BUFFER]; - DocPos const slen = _EditGetFindStrg(hwnd, lpefr, szFind, COUNTOF(szFind)); - if (slen == 0) { return NO_MATCH; } - int const sFlags = (int)(lpefr->fuFlags); + char szFind[FNDRPL_BUFFER] = { '\0' }; + DocPos const slen = _EditGetFindStrg(hwnd, lpefr, szFind, COUNTOF(szFind)); + if (slen == 0) { + return NO_MATCH; + } + int const sFlags = (int)(lpefr->fuFlags); - DocPos const iStart = bFirstMatchOnly ? iStartPos : 0; - DocPos const iTextEnd = Sci_GetDocEndPosition(); + DocPos const iStart = bFirstMatchOnly ? iStartPos : 0; + DocPos const iTextEnd = Sci_GetDocEndPosition(); - DocPos start = iStart; - DocPos end = iTextEnd; - DocPos const iPos = _FindInTarget(szFind, slen, sFlags, &start, &end, false, FRMOD_IGNORE); + DocPos start = iStart; + DocPos end = iTextEnd; + DocPos const iPos = _FindInTarget(szFind, slen, sFlags, &start, &end, false, FRMOD_IGNORE); - if (bFirstMatchOnly && !Globals.bReplaceInitialized) { - if (IsWindow(Globals.hwndDlgFindReplace) && (GetForegroundWindow() == Globals.hwndDlgFindReplace)) { - if (iPos >= 0) { - SciCall_SetSel(start, end); - } - else { - SciCall_ScrollCaret(); - } - } + if (bFirstMatchOnly && !Globals.bReplaceInitialized) { + if (IsWindow(Globals.hwndDlgFindReplace) && (GetForegroundWindow() == Globals.hwndDlgFindReplace)) { + if (iPos >= 0) { + SciCall_SetSel(start, end); + } else { + SciCall_ScrollCaret(); + } } - else // mark all matches - { - if (bMarkAll) { - EditClearAllOccurrenceMarkers(hwnd); - if (iPos >= 0) { - EditMarkAll(szFind, (int)(lpefr->fuFlags), 0, iTextEnd, false); - if (FocusedView.HideNonMatchedLines) { - EditFoldMarkedLineRange(lpefr->hwnd, true); - } - } - else { - if (FocusedView.HideNonMatchedLines) { - EditFoldMarkedLineRange(lpefr->hwnd, false); - } - } + } else // mark all matches + { + if (bMarkAll) { + EditClearAllOccurrenceMarkers(hwnd); + if (iPos >= 0) { + EditMarkAll(szFind, (int)(lpefr->fuFlags), 0, iTextEnd, false); + if (FocusedView.HideNonMatchedLines) { + EditFoldMarkedLineRange(lpefr->hwnd, true); } + } else { + if (FocusedView.HideNonMatchedLines) { + EditFoldMarkedLineRange(lpefr->hwnd, false); + } + } } - return ((iPos >= 0) ? MATCH : ((iPos == (DocPos)(-1)) ? NO_MATCH : INVALID)); + } + return ((iPos >= 0) ? MATCH : ((iPos == (DocPos)(-1)) ? NO_MATCH : INVALID)); } @@ -5831,7 +5828,7 @@ static INT_PTR CALLBACK EditFindReplaceDlgProc(HWND hwnd,UINT umsg,WPARAM wParam { if (s_anyMatch == MATCH) { // Save MRUs - if (StringCchLenA(sg_pefrData->szFind, COUNTOF(sg_pefrData->szFind))) { + if (!StrIsEmptyA(sg_pefrData->szFind)) { if (GetDlgItemText(hwnd, IDC_FINDTEXT, s_tchBuf, COUNTOF(s_tchBuf))) { MRU_Add(Globals.pMRUfind, s_tchBuf, 0, -1, -1, NULL); SetFindPattern(s_tchBuf); @@ -6255,12 +6252,12 @@ static INT_PTR CALLBACK EditFindReplaceDlgProc(HWND hwnd,UINT umsg,WPARAM wParam if (!s_bSwitchedFindReplace) { // Save MRUs - if (StringCchLenA(sg_pefrData->szFind, COUNTOF(sg_pefrData->szFind))) { + if (!StrIsEmptyA(sg_pefrData->szFind)) { MultiByteToWideChar(Encoding_SciCP, 0, sg_pefrData->szFind, -1, s_tchBuf, (int)COUNTOF(s_tchBuf)); MRU_Add(Globals.pMRUfind, s_tchBuf, 0, -1, -1, NULL); SetFindPattern(s_tchBuf); } - if (StringCchLenA(sg_pefrData->szReplace, COUNTOF(sg_pefrData->szReplace))) { + if (!StrIsEmptyA(sg_pefrData->szReplace)) { MultiByteToWideChar(Encoding_SciCP, 0, sg_pefrData->szReplace, -1, s_tchBuf, (int)COUNTOF(s_tchBuf)); MRU_Add(Globals.pMRUreplace, s_tchBuf, 0, -1, -1, NULL); } @@ -6835,23 +6832,25 @@ void EditSelectionMultiSelectAllEx(EDITFINDREPLACE edFndRpl) // // _GetReplaceString() // -static char* _GetReplaceString(HWND hwnd, LPCEDITFINDREPLACE lpefr, int* iReplaceMsg) +static char* _GetReplaceString(HWND hwnd, LPCEDITFINDREPLACE lpefr, int* iReplaceMsg) { char* pszReplace = NULL; // replace text of arbitrary size - if (StringCchCompareNIA(lpefr->szReplace, FNDRPL_BUFFER, "^c", 2) == 0) { + if (StringCchCompareNIA(lpefr->szReplace, COUNTOF(lpefr->szReplace), "^c", 2) == 0) { *iReplaceMsg = SCI_REPLACETARGET; pszReplace = EditGetClipboardText(hwnd, true, NULL, NULL); } else { - size_t const size = StringCchLenA(lpefr->szReplace,0) + 1; - pszReplace = (char*)AllocMem(size, HEAP_ZERO_MEMORY); - StringCchCopyA(pszReplace, size, lpefr->szReplace); - bool const bIsRegEx = (lpefr->fuFlags & SCFIND_REGEXP); - if (lpefr->bTransformBS || bIsRegEx) { - TransformBackslashes(pszReplace, bIsRegEx, Encoding_SciCP, iReplaceMsg); + size_t const cch = StringCchLenA(lpefr->szReplace, COUNTOF(lpefr->szReplace)); + pszReplace = (char*)AllocMem(cch + 1, HEAP_ZERO_MEMORY); + if (pszReplace) { + StringCchCopyA(pszReplace, cch, lpefr->szReplace); + bool const bIsRegEx = (lpefr->fuFlags & SCFIND_REGEXP); + if (lpefr->bTransformBS || bIsRegEx) { + TransformBackslashes(pszReplace, bIsRegEx, Encoding_SciCP, iReplaceMsg); + } } } - return pszReplace; + return pszReplace; // move ownership } @@ -6944,7 +6943,7 @@ int EditReplaceAllInRange(HWND hwnd, LPCEDITFINDREPLACE lpefr, DocPos iStartPos, if (iStartPos > iEndPos) { swapos(&iStartPos, &iEndPos); } char szFind[FNDRPL_BUFFER]; - int const slen = _EditGetFindStrg(hwnd, lpefr, szFind, COUNTOF(szFind)); + size_t const slen = _EditGetFindStrg(hwnd, lpefr, szFind, COUNTOF(szFind)); if (slen <= 0) { return 0; } int const sFlags = (int)(lpefr->fuFlags); diff --git a/src/Helpers.c b/src/Helpers.c index e8107fdea..2f6ef5385 100644 --- a/src/Helpers.c +++ b/src/Helpers.c @@ -1605,7 +1605,7 @@ UINT CharSetFromCodePage(const UINT uCodePage) { * This is used to get control characters into the regular expresion engine * w/o interfering with group referencing ('\0'). */ -unsigned int UnSlashLowOctal(char* s) { +ptrdiff_t UnSlashLowOctal(char* s) { char* sStart = s; char* o = s; while (*s) { @@ -1624,7 +1624,7 @@ unsigned int UnSlashLowOctal(char* s) { ++s; } *o = '\0'; - return (unsigned int)(o - sStart); + return (ptrdiff_t)(o - sStart); } diff --git a/src/Helpers.h b/src/Helpers.h index 1ecb94794..ec8a8e8b2 100644 --- a/src/Helpers.h +++ b/src/Helpers.h @@ -328,8 +328,8 @@ size_t UnSlashChar(LPWSTR pchInOut, WCHAR wch); size_t SlashCtrlW(LPWSTR pchOutput, size_t cchOutLen, LPCWSTR pchInput); size_t UnSlashCtrlW(LPWSTR pchInOut); -void TransformBackslashes(char *pszInput, bool, UINT cpEdit, int *iReplaceMsg); -void TransformMetaChars(char* pszInput, bool, int iEOLMode); +void TransformBackslashes(char *pszInput, bool bRegEx, UINT cpEdit, int *iReplaceMsg); +void TransformMetaChars(char *pszInput, bool bRegEx, int iEOLMode); //==== Large Text Conversion ================================================== diff --git a/src/Notepad3.c b/src/Notepad3.c index beb2ef079..e996bc8e0 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -3618,7 +3618,7 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam) CheckCmd(hmenu, IDM_VIEW_CHANGENOTIFY, Settings.FileWatchingMode); - if (StringCchLenW(s_wchTitleExcerpt, COUNTOF(s_wchTitleExcerpt))) + if (StrIsNotEmpty(s_wchTitleExcerpt)) i = IDM_VIEW_SHOWEXCERPT; else if (Settings.PathNameFormat == 0) i = IDM_VIEW_SHOWFILENAMEONLY; @@ -3641,7 +3641,7 @@ LRESULT MsgInitMenu(HWND hwnd, WPARAM wParam, LPARAM lParam) EnableCmd(hmenu, CMD_WEBACTION1, !se && !mrs && bPosInSel && !bIsHLink); EnableCmd(hmenu, CMD_WEBACTION2, !se && !mrs && bPosInSel && !bIsHLink); - i = (int)StringCchLenW(Settings2.AdministrationTool, COUNTOF(Settings2.AdministrationTool)); + i = (int)StrIsNotEmpty(Settings2.AdministrationTool); EnableCmd(hmenu, IDM_HELP_ADMINEXE, i); for (int lng = 0; lng < MuiLanguages_CountOf(); ++lng) { @@ -10295,7 +10295,7 @@ bool FileSave(bool bSaveAlways, bool bAsk, bool bSaveAs, bool bSaveCopy, bool bP { WCHAR tchFile[MAX_PATH] = { L'\0' }; WCHAR tchInitialDir[MAX_PATH] = { L'\0' }; - if (bSaveCopy && StringCchLenW(s_tchLastSaveCopyDir, COUNTOF(s_tchLastSaveCopyDir))) { + if (bSaveCopy && StrIsNotEmpty(s_tchLastSaveCopyDir)) { StringCchCopy(tchInitialDir, COUNTOF(tchInitialDir), s_tchLastSaveCopyDir); StringCchCopy(tchFile, COUNTOF(tchFile), s_tchLastSaveCopyDir); PathCchAppend(tchFile, COUNTOF(tchFile), PathFindFileName(Globals.CurrentFile)); @@ -10436,7 +10436,7 @@ bool OpenFileDlg(HWND hwnd,LPWSTR lpstrFile,int cchFile,LPCWSTR lpstrInitialDir) StringCchCopy(tchInitialDir,COUNTOF(tchInitialDir),Globals.CurrentFile); PathCchRemoveFileSpec(tchInitialDir, COUNTOF(tchInitialDir)); } - else if (StringCchLenW(Settings2.DefaultDirectory,COUNTOF(Settings2.DefaultDirectory))) { + else if (StrIsNotEmpty(Settings2.DefaultDirectory)) { ExpandEnvironmentStrings(Settings2.DefaultDirectory,tchInitialDir,COUNTOF(tchInitialDir)); if (PathIsRelative(tchInitialDir)) { WCHAR tchModule[MAX_PATH] = { L'\0' }; @@ -10458,7 +10458,7 @@ bool OpenFileDlg(HWND hwnd,LPWSTR lpstrFile,int cchFile,LPCWSTR lpstrInitialDir) ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | /* OFN_NOCHANGEDIR |*/ OFN_DONTADDTORECENT | OFN_PATHMUSTEXIST | OFN_SHAREAWARE /*| OFN_NODEREFERENCELINKS*/; - ofn.lpstrDefExt = (StringCchLenW(Settings2.DefaultExtension,COUNTOF(Settings2.DefaultExtension))) ? Settings2.DefaultExtension : NULL; + ofn.lpstrDefExt = StrIsNotEmpty(Settings2.DefaultExtension) ? Settings2.DefaultExtension : NULL; if (GetOpenFileName(&ofn)) { StringCchCopyN(lpstrFile,cchFile,szFile,COUNTOF(szFile)); @@ -10489,7 +10489,7 @@ bool SaveFileDlg(HWND hwnd,LPWSTR lpstrFile,int cchFile,LPCWSTR lpstrInitialDir) StringCchCopy(tchInitialDir,COUNTOF(tchInitialDir),Globals.CurrentFile); PathCchRemoveFileSpec(tchInitialDir, COUNTOF(tchInitialDir)); } - else if (StringCchLenW(Settings2.DefaultDirectory,COUNTOF(Settings2.DefaultDirectory))) { + else if (StrIsNotEmpty(Settings2.DefaultDirectory)) { ExpandEnvironmentStrings(Settings2.DefaultDirectory,tchInitialDir,COUNTOF(tchInitialDir)); if (PathIsRelative(tchInitialDir)) { WCHAR tchModule[MAX_PATH] = { L'\0' }; @@ -10510,7 +10510,7 @@ bool SaveFileDlg(HWND hwnd,LPWSTR lpstrFile,int cchFile,LPCWSTR lpstrInitialDir) ofn.Flags = OFN_HIDEREADONLY /*| OFN_NOCHANGEDIR*/ | /*OFN_NODEREFERENCELINKS |*/ OFN_OVERWRITEPROMPT | OFN_DONTADDTORECENT | OFN_PATHMUSTEXIST; - ofn.lpstrDefExt = (StringCchLenW(Settings2.DefaultExtension,COUNTOF(Settings2.DefaultExtension))) ? Settings2.DefaultExtension : NULL; + ofn.lpstrDefExt = StrIsNotEmpty(Settings2.DefaultExtension) ? Settings2.DefaultExtension : NULL; if (GetSaveFileName(&ofn)) { StringCchCopyN(lpstrFile,cchFile,szNewFile,COUNTOF(szNewFile)); @@ -10991,7 +10991,7 @@ void SetNotifyIconTitle(HWND hwnd) nid.uFlags = NIF_TIP; WCHAR tchTitle[256] = { L'\0' }; - if (StringCchLenW(s_wchTitleExcerpt,COUNTOF(s_wchTitleExcerpt))) { + if (StrIsNotEmpty(s_wchTitleExcerpt)) { WCHAR tchFormat[32] = { L'\0' }; GetLngString(IDS_MUI_TITLEEXCERPT,tchFormat,COUNTOF(tchFormat)); StringCchPrintf(tchTitle,COUNTOF(tchTitle),tchFormat,s_wchTitleExcerpt); diff --git a/src/Styles.c b/src/Styles.c index 1892279b2..a6075e573 100644 --- a/src/Styles.c +++ b/src/Styles.c @@ -2461,7 +2461,7 @@ void Style_SetExtraLineSpace(HWND hwnd, LPWSTR lpszStyle, int cch) bool Style_GetOpenDlgFilterStr(LPWSTR lpszFilter,int cchFilter) { - if (StringCchLenW(Settings2.FileDlgFilters, COUNTOF(Settings2.FileDlgFilters)) == 0) { + if (StrIsEmpty(Settings2.FileDlgFilters)) { GetLngString(IDS_MUI_FILTER_ALL, lpszFilter, cchFilter); } else { @@ -3679,7 +3679,7 @@ void Style_SetStyles(HWND hwnd, int iStyle, LPCWSTR lpszStyle, bool bInitDefault char chFontName[80] = { '\0' }; WCHAR wchFontName[80] = { L'\0' }; if (Style_StrGetFontName(lpszStyle, wchFontName, COUNTOF(wchFontName))) { - if (StringCchLenW(wchFontName, COUNTOF(wchFontName)) > 0) { + if (StrIsNotEmpty(wchFontName)) { WideCharToMultiByteEx(Encoding_SciCP, 0, wchFontName, -1, chFontName, COUNTOF(chFontName), NULL, NULL); SendMessage(hwnd, SCI_STYLESETFONT, iStyle, (LPARAM)chFontName); }