From 7f45e10381f8fb6c3b2be41f5c29165828bbac8c Mon Sep 17 00:00:00 2001 From: Pairi Daiza Date: Wed, 12 May 2021 00:13:52 +0200 Subject: [PATCH 1/8] + Upd: Version files, Changes.txt and MS VS 2019 version update (v16.9.5) --- Build/Changes.txt | 2 ++ Versions/build.txt | 2 +- res/Notepad3.exe.manifest.conf | 2 +- src/Version.h | 4 +++- src/VersionEx.h | 2 +- 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Build/Changes.txt b/Build/Changes.txt index 275f7d63d..d35acae73 100644 --- a/Build/Changes.txt +++ b/Build/Changes.txt @@ -120,6 +120,8 @@ CHANGES: FIXES: -------------------------------------------------------- [.###.#]- . +[.511.2]- TinyExpr: expr need not start with blank. +[.511.2]- TinyExpr: UTF-8 to ANSI-CP-1252 conversion should yield invalid characters instead of blank or currency. [.511.1]- Space-width, avgchar-width and tab-width calculation. [.511.1]- Scintilla missing recalculation of space width (to get correct tab width for indentation). [.511.1]- Revert to Scintilla std tabwidth calculation on font changes. diff --git a/Versions/build.txt b/Versions/build.txt index d00491fd7..0cfbf0888 100644 --- a/Versions/build.txt +++ b/Versions/build.txt @@ -1 +1 @@ -1 +2 diff --git a/res/Notepad3.exe.manifest.conf b/res/Notepad3.exe.manifest.conf index 9eabf4d28..0d2856a1b 100644 --- a/res/Notepad3.exe.manifest.conf +++ b/res/Notepad3.exe.manifest.conf @@ -3,7 +3,7 @@ Notepad3 beta diff --git a/src/Version.h b/src/Version.h index 0e3652e4b..733b50aab 100644 --- a/src/Version.h +++ b/src/Version.h @@ -77,7 +77,9 @@ #if defined(_MSC_VER) #if (_MSC_VER == 1928) - #if (_MSC_FULL_VER >= 192829914) + #if (_MSC_FULL_VER >= 192829915) + #define VER_CPL MS Visual C++ 2019 v16.9.5 + #elif (_MSC_FULL_VER >= 192829914) #define VER_CPL MS Visual C++ 2019 v16.9.4 #elif (_MSC_FULL_VER >= 192829913) #define VER_CPL MS Visual C++ 2019 v16.9.(2-3) diff --git a/src/VersionEx.h b/src/VersionEx.h index 1e19e4554..5139d2b76 100644 --- a/src/VersionEx.h +++ b/src/VersionEx.h @@ -9,7 +9,7 @@ #define VERSION_MAJOR 5 #define VERSION_MINOR 21 #define VERSION_REV 511 -#define VERSION_BUILD 1 +#define VERSION_BUILD 2 #define SCINTILLA_VER 502 #define LEXILLA_VER 502 #define ONIGURUMA_REGEX_VER 7.0.0 From ea4ec27f3005eb4194d5789d7473da5dc166de19 Mon Sep 17 00:00:00 2001 From: Pairi Daiza Date: Wed, 12 May 2021 21:44:25 +0200 Subject: [PATCH 2/8] MUI - Translation of NP3 resource files in Greek (el-GR) (Partial_6) --- language/np3_el_gr/dialogs_el_gr.rc | 56 +++++----- language/np3_el_gr/menu_el_gr.rc | 8 +- language/np3_el_gr/strings_el_gr.rc | 168 ++++++++++++++-------------- 3 files changed, 116 insertions(+), 116 deletions(-) diff --git a/language/np3_el_gr/dialogs_el_gr.rc b/language/np3_el_gr/dialogs_el_gr.rc index c3473bd78..b18a47bc0 100644 --- a/language/np3_el_gr/dialogs_el_gr.rc +++ b/language/np3_el_gr/dialogs_el_gr.rc @@ -340,10 +340,10 @@ BEGIN CONTROL "Aναδιαμόρφωση εσοχής με το πλήκτρο &Τab",IDC_TAB_INDENTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,59,150,10 CONTROL "Aναδιαμ/ση εσοχής με το πλήκτρο &Βackspace",IDC_BACKTAB_INDENTS, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,71,150,10 - CONTROL "Π&ροειδοποίηση για ασυνεπή εσοχή.",IDC_WARN_INCONSISTENT_INDENTS, + CONTROL "Π&ροειδοποίηση για ασυνεπή εσοχή",IDC_WARN_INCONSISTENT_INDENTS, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,83,150,10 CONTROL "&Αυτόμ. εντοπισμός Στηλοθέτη ή Εσοχής κενών",IDC_AUTO_DETECT_INDENTS, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,95,150,10 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,95,155,10 DEFPUSHBUTTON "&Εντάξει",IDOK,117,7,50,14 PUSHBUTTON "Ά&κυρο",IDCANCEL,117,27,50,14 END @@ -377,7 +377,7 @@ CAPTION "Μεγάλες γραμμές" FONT 9, "Segoe UI", 0, 0, 0x0 BEGIN LTEXT "&Θέση πολλαπλών άκρων γραμμής:",IDC_STATIC,7,10,110,8 - EDITTEXT IDC_MULTIEDGELINE,102,7,150,14,ES_AUTOHSCROLL + EDITTEXT IDC_MULTIEDGELINE,122,7,150,14,ES_AUTOHSCROLL CONTROL "Εμφάνιση άκ&ρου γραμμής.",IDC_SHOWEDGELINE,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,7,27,140,10 CONTROL "Αλλαγή χρώματος &φόντου.",IDC_BACKGRDCOLOR,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,7,38,140,10 DEFPUSHBUTTON "&Εντάξει",IDOK,166,34,50,14 @@ -495,7 +495,7 @@ BEGIN DEFPUSHBUTTON "&Εντάξει",IDOK,233,58,50,14 PUSHBUTTON "Ά&κυρο",IDCANCEL,175,58,50,14 EDITTEXT IDC_PWD_EDIT3,16,23,267,12,ES_PASSWORD | ES_AUTOHSCROLL | WS_GROUP - CONTROL "Αποκρυπτογράφηση με χρήση κύριου κλειδιού",IDC_PWD_CHECK3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,155,40,125,10 + CONTROL "Αποκρυπτ. με χρήση κύριου κλειδιού",IDC_PWD_CHECK3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,155,40,125,10 LTEXT "Αυτό το αρχείο έχει κύριο κλειδί",IDC_PWD_STATMPW,16,41,100,11,NOT WS_GROUP CONTROL "Εμφάνιση φράσης πρόσβασης",IDC_PWD_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,60,110,10 END @@ -639,7 +639,7 @@ BEGIN CONTROL "&Αύξουσα ταξινόμηση",100,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,7,7,104,10 CONTROL "&Φθίνουσα ταξινόμηση",101,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,7,19,104,10 CONTROL "&Τυχαία σειρά γραμμών",102,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,7,31,104,10 - CONTROL "&Συγχώνευση διπλών γραμμών",103,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,50,125,10 + CONTROL "&Συγχώνευση διπλότυπων γραμμών",103,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,50,125,10 CONTROL "Αφ&αίρεση διπλότυπων γραμμών",104,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,62,125,10 CONTROL "Αφαίρεση &μεμονωμένων γραμμών",105,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,74,125,10 CONTROL "Αφαίρεση κε&νών γραμμών",106,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,86,104,10 @@ -751,60 +751,60 @@ END // ChooseColor Dialog (copied from Color.dlg). // -IDD_MUI_SYSCOLOR_DLG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 2, 0, 298, 184 +IDD_MUI_SYSCOLOR_DLG DIALOGEX LOADONCALL MOVEABLE DISCARDABLE 2, 0, 318, 184 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Choose Color" +CAPTION "Επιλογή χρώματος" FONT 9, "Segoe UI", 0, 0, 0x0 BEGIN - LTEXT "&Basic colors:", -1, 4, 4, 140, 9 + LTEXT "&Βασικά χρώματα:", -1, 4, 4, 140, 9 CONTROL "", COLOR_BOX1, "static", SS_SIMPLE | WS_CHILD | WS_TABSTOP | WS_GROUP, 4, 14, 140, 86 - LTEXT "&Custom colors:", -1, 4, 106, 140, 9 + LTEXT "Π&ροσαρμοσμένα χρώματα:", -1, 4, 106, 140, 9 CONTROL "", COLOR_CUSTOM1, "static", SS_SIMPLE | WS_CHILD | WS_TABSTOP | WS_GROUP, 4, 116, 140, 28 - PUSHBUTTON "&Define Custom Colors >>" COLOR_MIX, 4, 150, 138, 14, + PUSHBUTTON "Ορισμός προ&σαρμοσμένων χρωμάτων >>" COLOR_MIX, 4, 150, 138, 14, WS_TABSTOP | WS_GROUP - DEFPUSHBUTTON "OK", IDOK, 4, 166, 44, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON "Cancel", IDCANCEL, 52, 166, 44, 14, WS_GROUP | WS_TABSTOP - PUSHBUTTON "&Help", pshHelp, 100, 166, 44, 14, WS_GROUP | WS_TABSTOP + DEFPUSHBUTTON "&Εντάξει", IDOK, 4, 166, 44, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "Άκυρο", IDCANCEL, 52, 166, 44, 14, WS_GROUP | WS_TABSTOP + PUSHBUTTON "&Βοήθεια", pshHelp, 100, 166, 44, 14, WS_GROUP | WS_TABSTOP CONTROL "", COLOR_RAINBOW, "static", - SS_SIMPLE | WS_CHILD, 152, 4, 118, 116 + SS_SIMPLE | WS_CHILD, 152, 4, 138, 116 CONTROL "", COLOR_LUMSCROLL, "static", - SS_SIMPLE | WS_CHILD, 280, 4, 8, 116 + SS_SIMPLE | WS_CHILD, 300, 4, 8, 116 CONTROL "", COLOR_CURRENT, "static", - SS_SIMPLE | WS_CHILD, 152, 124, 40, 26 + SS_SIMPLE | WS_CHILD, 152, 124, 44, 26 PUSHBUTTON "&o", COLOR_SOLID, 300, 200, 4, 14, WS_GROUP - RTEXT "Color", COLOR_SOLID_LEFT, 152, 151, 20, 9 - LTEXT "|S&olid", COLOR_SOLID_RIGHT, 172, 151, 20, 9 + RTEXT "Χρώμα", COLOR_SOLID_LEFT, 151, 151, 23, 9 + LTEXT "|Αμι&γές", COLOR_SOLID_RIGHT, 174, 151, 23, 9 - RTEXT "Hu&e:", COLOR_HUEACCEL, 194, 126, 20, 9 - EDITTEXT, COLOR_HUE, 216, 124, 18, 12, WS_GROUP | WS_TABSTOP + RTEXT "Από&χρωση:", COLOR_HUEACCEL, 198, 126, 44, 9 + EDITTEXT, COLOR_HUE, 244, 124, 18, 12, WS_GROUP | WS_TABSTOP - RTEXT "&Sat:", COLOR_SATACCEL, 194, 140, 20, 9 - EDITTEXT, COLOR_SAT, 216, 138, 18, 12, WS_GROUP | WS_TABSTOP + RTEXT "Κ&ορεσμός:", COLOR_SATACCEL, 198, 140, 44, 9 + EDITTEXT, COLOR_SAT, 244, 138, 18, 12, WS_GROUP | WS_TABSTOP - RTEXT "&Lum:", COLOR_LUMACCEL, 194, 154, 20, 9 - EDITTEXT, COLOR_LUM, 216, 152, 18, 12, WS_GROUP | WS_TABSTOP + RTEXT "&Φωτεινότητα:", COLOR_LUMACCEL, 198, 154, 44, 9 + EDITTEXT, COLOR_LUM, 244, 152, 18, 12, WS_GROUP | WS_TABSTOP - RTEXT "&Red:", COLOR_REDACCEL, 243, 126, 24, 9 + RTEXT "&Κόκκινο:", COLOR_REDACCEL, 266, 126, 28, 9 EDITTEXT, COLOR_RED, 269, 124, 18, 12, WS_GROUP | WS_TABSTOP - RTEXT "&Green:", COLOR_GREENACCEL, 243, 140, 24, 9 + RTEXT "&Πράσινο:", COLOR_GREENACCEL, 266, 140, 28, 9 EDITTEXT, COLOR_GREEN, 269, 138, 18, 12, WS_GROUP | WS_TABSTOP - RTEXT "Bl&ue:", COLOR_BLUEACCEL, 243, 154, 24, 9 + RTEXT "&Μπλε:", COLOR_BLUEACCEL, 266, 154, 28, 9 EDITTEXT, COLOR_BLUE, 269, 152, 18, 12, WS_GROUP | WS_TABSTOP - PUSHBUTTON "&Add to Custom Colors", COLOR_ADD, 152, 166, 142, 14, + PUSHBUTTON "Προσθήκη σ&τα προσαρμοσμένα χρώματα", COLOR_ADD, 152, 166, 163, 14, WS_GROUP | WS_TABSTOP END diff --git a/language/np3_el_gr/menu_el_gr.rc b/language/np3_el_gr/menu_el_gr.rc index 7079b7c89..95cf47e09 100644 --- a/language/np3_el_gr/menu_el_gr.rc +++ b/language/np3_el_gr/menu_el_gr.rc @@ -95,7 +95,7 @@ BEGIN END MENUITEM SEPARATOR MENUITEM "Επανα&φορά από αρχείο\tF5", IDM_FILE_REVERT - MENUITEM "&Ignore File-Vars", CMD_IGNORE_FILE_VARS + MENUITEM "Παρά&βλεψη μεταβλητών του αρχείου", CMD_IGNORE_FILE_VARS POPUP "&Κωδικοποίηση" BEGIN POPUP "Επανα&φορά από αρχείο ως" @@ -263,9 +263,9 @@ BEGIN MENUITEM "Μετατροπή διαστημάτων εσο&χής σε στηλοθέτες\tCtrl+Alt+T", IDM_EDIT_CONVERTSPACES2 MENUITEM "Μετατροπή στηλοθετών εσ&οχής σε διαστήματα\tCtrl+Alt+S", IDM_EDIT_CONVERTTABS2 MENUITEM SEPARATOR - MENUITEM "Base&64 Encode", IDM_EDIT_BASE64ENCODE - MENUITEM "Base6&4 Decode", IDM_EDIT_BASE64DECODE - MENUITEM "Base64 Decode to codepage ...", IDM_EDIT_B64DECODESEL + MENUITEM "Κωδικοποίηση Base&64", IDM_EDIT_BASE64ENCODE + MENUITEM "Αποκωδικοποίηση Base6&4", IDM_EDIT_BASE64DECODE + MENUITEM "Αποκωδικοποίηση Base64 σε κωδικοσελίδα...", IDM_EDIT_B64DECODESEL MENUITEM SEPARATOR MENUITEM "Κ&ωδικοποίηση URL\tCtrl+Shift+E", IDM_EDIT_URLENCODE MENUITEM "&Αποκωδικοποίηση URL\tCtrl+Shift+R", IDM_EDIT_URLDECODE diff --git a/language/np3_el_gr/strings_el_gr.rc b/language/np3_el_gr/strings_el_gr.rc index 45f25b7d2..bd5a22dcd 100644 --- a/language/np3_el_gr/strings_el_gr.rc +++ b/language/np3_el_gr/strings_el_gr.rc @@ -118,119 +118,119 @@ BEGIN IDS_MUI_FILTER_BITMAP "Αρχεία bitmap (*.bmp)|*.bmp|Όλα τα αρχεία (*.*)|*.*|" IDS_MUI_OPENWITH "Επιλέξτε τον κατάλογο με συνδέσμους προς τις αγαπημένες σας εφαρμογές." IDS_MUI_FAVORITES "Επιλέξτε τον κατάλογο με συνδέσμους προς τα αγαπημένα σας αρχεία." - IDS_MUI_BACKSLASHHELP "Backslash Transformations\n\n\\a\tAlert (BEL, Ascii 7)\n\\b\tBackspace (BS, Ascii 8)\n\\f\tFormfeed (FF, Ascii 12)\n\\n\tNewline (LF, Ascii 10)\n\\r\tCarriage return (CR, Ascii 13)\n\\t\tHorizontal Tab (HT, Ascii 9)\n\\v\tVertical Tab (VT, Ascii 11)\n\\0oo\tOctal Value\n\\u####\tHexadecimal Value\n\\xhh\tHexadecimal Value\n\\\\\tBackslash" - IDS_MUI_REGEXPHELP "RegExp Matching Syntax (Multi Lines)\n\n.\tMatches any character\n^\tEmpty string immediately after Newline\n$\tEmpty string immediately before End of Line\n\\<\tStart of a word\n\\>\tEnd of a word\n\\b\tWord boundary\n[...]\tA set of chars ([abc]) or a range ([a-z])\n[^...]\tChars NOT in the set or range\n\\d\tAny decimal digit\n\\D\tAny non-digit char\n\\s\tAny whitespace char\n\\S\tNot a whitespace char\n\\w\tAny ""word"" char\n\\W\tAny ""non-word"" char\n\\x\tEscape character with otherwise special meaning\n\\xHH\tChar with hex code HH\n?\tMatches preceding 0 or 1 times\n*\tMatches preceding 0 or more times\n+\tMatches preceding 1 or more times\n*? or +?\tNon greedy matching of quantifiers ""?"" and ""+""\n(\tStart of a region\n)\tEnd of a region\n\\n\tRefers to a region when replacing (n is 1-9)\n" - IDS_MUI_WILDCARDHELP "Wildcard Search\n\n*\tMatches zero or more characters.\n?\tMatches exactly one character. " + IDS_MUI_BACKSLASHHELP "Μετασχηματισμοί ανάστροφης καθέτου\n\n\\a\tAlert (BEL, Ascii 7)\n\\b\tBackspace (BS, Ascii 8)\n\\f\tΑλλαγή σελίδας (FF, Ascii 12)\n\\n\tΝέα γραμμή (LF, Ascii 10)\n\\r\tΑλλαγή παραγράφου (CR, Ascii 13)\n\\t\tΟριζόντια εσοχή (HT, Ascii 9)\n\\v\tΚάθετη εσοχή (VT, Ascii 11)\n\\0oo\tΟκταδική τιμή\n\\u####\tΔεκαεξαδική τιμή\n\\xhh\tΔεκαεξαδική τιμή\n\\\\\tΑνάστροφη κάθετος" + IDS_MUI_REGEXPHELP "Σύνταξη συμφωνίας RegExp (Πολλές γραμμές)\n\n.\tΣυμφωνία με οποιονδήποτε χαρακτήρα\n^\tΚενή συμβολοσειρά αμέσως μετά τη Νέα γραμμή\n$\tΚενή συμβ/σειρά αμέσως πριν το Τέλος της γραμμής\n\\<\tΈναρξη μιας λέξης\n\\>\tΤέλος μιας λέξης\n\\b\tΌριο λέξης\n[...]\tΈνα σύνολο χαρακτήρων ([abc]) ή ένα εύρος ([a-z])\n[^...]\tΧαρακτήρες ΕΚΤΟΣ του συνόλου ή του εύρους\n\\d\tΟποιοδήποτε δεκαδικό ψηφίο\n\\D\tΟποιοσδήποτε μη αριθμητικός χαρακτήρας\n\\s\tΟποιοσδήποτε κενός χαρακτήρας\n\\S\tΜη κενός χαρακτήρας\n\\w\tΟποιοσδήποτε χαρακτήρας σε ""λέξη""\n\\W\tΟποιοσδήποτε χαρακτήρας ""εκτός λέξης""\n\\x\tΧαρακτήρας διαφυγής με διαφορετική ιδιαίτερη σημασία\n\\xHH\tΧαρακτήρας με δεκαεξαδικό κωδικό ΗΗ\n?\tΣυμφωνίες που προηγούνται 0 ή 1 φορά\n*\tΣυμφωνίες που προηγούνται 0 ή παραπάνω φορές\n+\tΣυμφωνίες που προηγούνται 1 ή παραπάνω φορές\n*? ή +?\tΜη διευρυμ. συμφωνία των ποσοδεικτών ""?"" και ""+""\n(\tΑρχή μιας περιοχής\n)\tΤέλος μιας περιοχής\n\\n\tΑναφέρεται σε μια περιοχή κατά την αντικατάσταση (το n είναι 1-9)\n" + IDS_MUI_WILDCARDHELP "Αναζήτηση με μπαλαντέρ\n\n*\tΣυμφωνία με κανέναν ή περισσότερους χαρακτήρες.\n?\tΣυμφωνία ακριβώς με έναν χαρακτήρα. " END STRINGTABLE BEGIN - IDS_MUI_ERR_LOADFILE "Error loading ""%s""." - IDS_MUI_ERR_SAVEFILE "Error saving ""%s""." - IDS_MUI_ERR_DLG_FORMAT "Error '%s', cause:\n%s(ID:%d)\n" - IDS_MUI_ERR_BROWSE "No file browser plugin was found.\nThe MiniPath file browser plugin can be downloaded from https://rizonesoft.com." - IDS_MUI_ERR_GREPWIN "No file search plugin was found.\nThe grepWinNP3 file search plugin can be downloaded from https://rizonesoft.com." - IDS_MUI_ERR_MRUDLG "No access to the selected file!\nWould you like to remove it from the list?" - IDS_MUI_ERR_CREATELINK "Error creating the Desktop link." + IDS_MUI_ERR_LOADFILE "Σφάλμα φόρτωσης του ""%s""." + IDS_MUI_ERR_SAVEFILE "Σφάλμα αποθήκευσης του ""%s""." + IDS_MUI_ERR_DLG_FORMAT "Σφάλμα '%s'. Αιτία:\n%s(ID:%d)\n" + IDS_MUI_ERR_BROWSE "Δεν βρέθηκε το πρόσθετο περιήγησης αρχείων.\nΜπορείτε να κάνετε λήψη του πρόσθετου περιήγησης αρχείων MiniPath από https://rizonesoft.com." + IDS_MUI_ERR_GREPWIN "Δεν βρέθηκε το πρόσθετο αναζήτησης αρχείων.\nΜπορείτε να κάνετε λήψη του πρόσθετου αναζήτησης αρχείων grepWinNP3 από https://rizonesoft.com." + IDS_MUI_ERR_MRUDLG "Δεν υπάρχει πρόσβαση στο επιλεγμένο αρχείο!\nΘέλετε να το καταργήσετε από τη λίστα;" + IDS_MUI_ERR_CREATELINK "Σφάλμα κατά τη δημιουργία συνδέσμου στην επιφάνεια εργασίας." IDS_MUI_ERR_PREVWINDISABLED - "Existing Notepad3 window is busy or has an active dialog box.\nWould you like to open another Notepad3 window?" - IDS_MUI_ERR_ENCODINGNA "Code page conversion tables for the selected encoding are not available on your system." - IDS_MUI_ERR_UNICODE "Error converting this Unicode file.\nData will be lost if the file is saved!" - IDS_MUI_ERR_BITMAP "Error loading bitmap ""%s"".\nNeed dimensions: %i x %i (width >= %i x height)." + "Το τρέχον παράθυρο του Notepad3 είναι απασχολημένο ή έχει ενεργό παράθυρο διαλόγου.\nΘέλετε να ανοίξετε ένα άλλο παράθυρο του Notepad3;" + IDS_MUI_ERR_ENCODINGNA "Οι πίνακες μετατροπής κωδικοσελίδας για την επιλεγμένη κωδικοποίηση δεν είναι διαθέσιμοι στο σύστημά σας." + IDS_MUI_ERR_UNICODE "Σφάλμα κατά τη μετατροπή αυτού του Unicode αρχείου.\nΤα δεδομένα θα χαθούν εάν αποθηκευτεί το αρχείο!" + IDS_MUI_ERR_BITMAP "Σφάλμα φόρτωσης της εικόνας bitmap ""%s"".\nΑπαιτούμενες διαστάσεις: %i x %i (πλάτος >= %i x ύψος)." IDS_MUI_ERR_ELEVATED_RIGHTS - "Error elevating user rights!" + "Σφάλμα αναβάθμισης των δικαιωμάτων χρήστη!" END STRINGTABLE BEGIN - IDS_MUI_ERR_UNICODE2 "Certain characters in the current text are not supported by the selected encoding, and may be replaced by default placeholders when saving. It's recommended to choose another file encoding. Continue?" - IDS_MUI_ERR_DROP "Only one file can be dropped at the same time!" + IDS_MUI_ERR_UNICODE2 "Ορισμένοι χαρακτήρες στο τρέχον κείμενο δεν υποστηρίζονται από την επιλεγμένη κωδικοποίηση και ενδέχεται να αντικατασταθούν από προεπιλεγμένα σύμβολα κράτησης θέσης κατά την αποθήκευση. Συνιστάται να επιλέξετε μια άλλη κωδικοποίηση αρχείων. Συνέχεια;" + IDS_MUI_ERR_DROP "Μόνο ένα αρχείο μπορεί να απορριφθεί κάθε φορά" IDS_MUI_ERR_ACCESSDENIED - "The file ""%s"" cannot be saved and may be protected.\n\nDo you want to launch %s as 'Elevated' application?" - IDS_MUI_ERR_ADMINEXE "No administration executable found.\nCheck website https://rizonesoft.com?" + "Δεν είναι δυνατή η αποθήκευση του αρχείου ""%s"" επειδή μπορεί να προστατεύεται.\n\nΘέλετε να εκκινήσετε το %s με Αυξημένα δικαιώματα;" + IDS_MUI_ERR_ADMINEXE "Δεν βρέθηκε εκτελέσιμο διαχειριστή.\nΔείτε στην ιστοσελίδα https://rizonesoft.com?" IDS_MUI_WARN_LOAD_BIG_FILE - "Are you sure you want to open this large file?\n\t(size: %s >= %s)!\n(Styling and Syntax Highlighting will not be applied!)" + "Είστε βέβαιος ότι θέλετε να ανοίξετε αυτό το μεγάλο αρχείο;\n\t(μέγεθος: %s >= %s)!\n(Το Στυλ και η Επισήμανση σύνταξης δεν θα εφαρμοστούν!)" IDS_MUI_ERR_FILE_TOO_LARGE - "Can't handle that huge file (size: %s)!" + "Δεν είναι δυνατός ο χειρισμός αυτού του τεράστιου αρχείου (μέγεθος: %s)!" IDS_MUI_WARN_UNKNOWN_EXT - "Unknown file name extension (%s)!\nLoading data anyway?" + "Άγνωστη επέκταση ονόματος αρχείου (%s)!\nΦόρτωση δεδομένων οπωσδήποτε;" IDS_MUI_INDENT_CONSISTENT "Το αρχείο έχει μια σταθερή εσοχή!" IDS_MUI_EOLMODENAME_CRLF "Windows (CR+LF)" IDS_MUI_EOLMODENAME_LF "Unix/Mac (LF)" - IDS_MUI_EOLMODENAME_CR "Old Mac (CR)" + IDS_MUI_EOLMODENAME_CR "Παλαιό Mac (CR)" IDS_MUI_WARN_NORMALIZE_EOLS - "Do you want to normalise all line endings to be '%s'?" + "Θέλετε να γίνει ομαλοποίηση όλων των καταλήξεων γραμμών σε '%s';" END STRINGTABLE BEGIN - IDS_MUI_SELRECT "This operation can't be performed within a rectangular selection." - IDS_MUI_SELMULTI "This operation can't be performed within a multi-selection." - IDS_MUI_SELRECTORMULTI "This operation can't be performed within a rectangular or multi-selection." - IDS_MUI_BUFFERTOOSMALL "This operation can't be performed (lines too long)." + IDS_MUI_SELRECT "Αυτή η λειτουργία δεν μπορεί να εκτελεστεί σε ορθογώνια επιλογή." + IDS_MUI_SELMULTI "Αυτή η λειτουργία δεν μπορεί να εκτελεστεί σε πολλαπλή επιλογή." + IDS_MUI_SELRECTORMULTI "Αυτή η λειτουργία δεν μπορεί να εκτελεστεί σε ορθογώνια ή πολλαπλή επιλογή." + IDS_MUI_BUFFERTOOSMALL "Αυτή η λειτουργία δεν μπορεί να εκτελεστεί (οι γραμμές είναι πολύ μεγάλες)." IDS_MUI_FIND_WRAPFW "Η αναζήτηση έφτασε στο τέλος του εγγράφου. Επανεκκίνηση της αναζήτησης από την αρχή." IDS_MUI_FIND_WRAPRE "Η αναζήτηση έφτασε στην αρχή του εγγράφου. Επανεκκίνηση της αναζήτησης από το τέλος." IDS_MUI_NOTFOUND "Το καθορισμένο κείμενο δεν βρέθηκε." IDS_MUI_REPLCOUNT "%i εμφανίσεις του καθορισμένου κειμένου έχουν αντικατασταθεί." - IDS_MUI_ASK_ENCODING "Switching the file encoding from one encoding to another may replace unsupported text with default characters, and the undo history will be cleared. Continue?" - IDS_MUI_ASK_ENCODING2 "You are about to change the encoding of an empty file. Note that this will clear the undo history, as it can't be synchronised with the new encoding. Continue?" + IDS_MUI_ASK_ENCODING "Η εναλλαγή κωδικοποίησης αρχείου από μία κωδικοποίηση σε άλλη μπορεί να αντικαταστήσει το μη υποστηριζόμενο κείμενο με προεπιλεγμένους χαρακτήρες και το ιστορικό αναίρεσης θα απαλειφθεί. Συνέχεια;" + IDS_MUI_ASK_ENCODING2 "Πρόκειται να αλλάξετε την κωδικοποίηση ενός κενού αρχείου. Σημειώστε ότι αυτό θα διαγράψει το ιστορικό αναίρεσης, καθώς δεν μπορεί να συγχρονιστεί με τη νέα κωδικοποίηση. Συνέχεια;" IDS_MUI_READONLY_SAVE "Το ""%s"" είναι μόνο για ανάγνωση. Να αποθηκευτεί σε διαφορετικό αρχείο;" IDS_MUI_FILECHANGENOTIFY - "The current file has been modified by an external program. Reload?" - IDS_MUI_FILECHANGENOTIFY2 "The current file has been deleted. Save now?" - IDS_MUI_FILELOCK_ERROR "Can not acquire exclusive file lock for ""%s""!" - IDS_MUI_STICKYWINPOS "Sticky Window Position is enabled. Any new Notepad3 windows will use the current window placement settings." - IDS_MUI_SAVEDSETTINGS "The current program settings have been saved." - IDS_MUI_CREATEINI_FAIL "Error creating configuration file." - IDS_MUI_WRITEINI_FAIL "Error writing settings to configuration file." + "Το τρέχον αρχείο έχει τροποποιηθεί από ένα εξωτερικό πρόγραμμα. Να φορτωθεί ξανά;" + IDS_MUI_FILECHANGENOTIFY2 "Το τρέχον αρχείο έχει διαγραφεί. Να γίνει αποθήκευση τώρα;" + IDS_MUI_FILELOCK_ERROR "Δεν είναι δυνατή η απόκτηση αποκλειστικού κλειδώματος αρχείου για το ""%s""!" + IDS_MUI_STICKYWINPOS "Το καρφίτσωμα θέσης παραθύρου είναι ενεργοποιημένο. Τυχόν νέα παράθυρα του Notepad3 θα χρησιμοποιούν τις τρέχουσες ρυθμίσεις θέσης παραθύρου." + IDS_MUI_SAVEDSETTINGS "Οι τρέχουσες ρυθμίσεις προγράμματος έχουν αποθηκευτεί." + IDS_MUI_CREATEINI_FAIL "Σφάλμα κατά τη δημιουργία του αρχείου διαμόρφωσης." + IDS_MUI_WRITEINI_FAIL "Σφάλμα κατά την εγγραφή των ρυθμίσεων στο αρχείο διαμόρφωσης." IDS_MUI_INIFILE_READONLY - "Configuration file is readonly - ignore and override settings?" + "Το αρχείο διαμόρφωσης είναι μόνο για ανάγνωση. Παράβλεψη και παράκαμψη των ρυθμίσεων;" IDS_MUI_SETTINGSNOTSAVED - "No existing configuration file was found.\nTo keep your style modifications, save settings now (F7) or go back to scheme configuration (Ctrl+F12) and export your styles." + "Δεν βρέθηκε υπάρχον αρχείο διαμόρφωσης.\nΓια να διατηρήσετε τις τροποποιήσεις του στυλ σας, αποθηκεύστε τις ρυθμίσεις τώρα (F7) ή επιστρέψτε στη διαμόρφωση συνδυασμούς (Ctrl+F12) και εξαγάγετε τα στυλ σας." END STRINGTABLE BEGIN - IDS_MUI_RELOADSETTINGS "Activate saved settings by program relaunch?\n\n%s" - IDS_MUI_RELOADCFGSEX "On continuing w/o relaunch, saved settings are not applied and will be overridden by internal settings on program exit!" - IDS_MUI_EXPORT_FAIL "Error exporting style settings to ""%s""." - IDS_MUI_REGEX_INVALID "Error evaluating regular expression. Expression is invalid!" - IDS_MUI_DROP_NO_FILE "No valid filename retrieved.\nIf dropping from 32-bit application,\nplease drag and drop to Notepad3's tool bar." - IDS_MUI_URL_DIR_EXISTS "URL specified directory exists!" - IDS_MUI_URL_FILE_EXISTS "URL specified file exists!" + IDS_MUI_RELOADSETTINGS "Ενεργοποίηση των αποθηκευμένων ρυθμίσεων με επανεκκίνηση του προγράμματος;\n\n%s" + IDS_MUI_RELOADCFGSEX "Συνεχίζοντας χωρίς επανεκκίνηση, οι αποθηκευμένες ρυθμίσεις δεν θα εφαρμοστούν και θα αντικατασταθούν από τις εσωτερικές ρυθμίσεις στην έξοδο του προγράμματος!" + IDS_MUI_EXPORT_FAIL "Σφάλμα κατά την εξαγωγή των ρυθμίσεων στυλ στο ""%s""." + IDS_MUI_REGEX_INVALID "Σφάλμα κατά την αξιολόγηση της κανονικής έκφρασης. Η έκφραση δεν είναι έγκυρη!" + IDS_MUI_DROP_NO_FILE "Δεν ανακτήθηκε έγκυρο όνομα αρχείου.\nΕάν χρησιμοποιείται μια εφαρμογή 32-bit,\nκάντε μεταφορά κι απόθεση στη γραμμή εργαλείων του Notepad3." + IDS_MUI_URL_DIR_EXISTS "Υπάρχει καθορισμένος κατάλογος διευθύνσεων URL!" + IDS_MUI_URL_FILE_EXISTS "Υπάρχει καθορισμένο αρχείο διευθύνσεων URL!" IDS_MUI_URL_PATH_NOT_FOUND - "URL specified path not found!" - IDS_MUI_URL_OPEN_FILE "\nAlt + Click to open the file." - IDS_MUI_URL_OPEN_BROWSER "\nCtrl + Click to open link in browser." + "Η καθορισμένη διαδρομή URL δεν βρέθηκε!" + IDS_MUI_URL_OPEN_FILE "\nAlt + Κλικ για άνοιγμα του αρχείου." + IDS_MUI_URL_OPEN_BROWSER "\nCtrl + Κλικ για άνοιγμα του συνδέσμου στον περιηγητή." IDS_MUI_INF_PRSVFILEMODTM - "Preserving original File Modification Timestamp enabled.\nThis option will stay for this session!" - IDS_MUI_OUT_OFF_OCCMRK "Running out of Occurrence Markers (Bookmark/Highlight)!" + "Η διατήρηση της αρχικής χρονοσήμανσης μεταβολής του αρχείου είναι ενεργοποιημένη.\nΑυτή η επιλογή θα παραμείνει για αυτή την σύνοδο!" + IDS_MUI_OUT_OFF_OCCMRK "Δεν υπάρχουν άλλοι δείκτες εμφάνισης (Σελιδοδείκτης/Επισήμανση)!" END STRINGTABLE BEGIN IDS_MUI_ASK_SAVE "Αποθήκευση των αλλαγών σε:\n""%s""?" - IDS_MUI_ASK_REVERT "Revert file to last saved state?" + IDS_MUI_ASK_REVERT "Επαναφορά του αρχείου στην τελευταία αποθηκευμένη κατάσταση;" IDS_MUI_ASK_RECODE "Η επανακωδικοποίηση απαιτεί επαναφόρτωση του αρχείου από το δίσκο. Οι μη αποθηκευμένες αλλαγές θα χαθούν!" - IDS_MUI_ASK_CREATE """%s"" not found.\nWould you like to create this file?" + IDS_MUI_ASK_CREATE "Το ""%s"" δεν βρέθηκε.\nΘέλετε να δημιουργήσετε αυτό το αρχείο;" IDS_MUI_PRINT_HEADER "Όνομα αρχείου, Τρέχουσα ημερομηνία και ώρα|Όνομα αρχείου, Τρέχουσα ημερομηνία|Όνομα αρχείου|Να μείνει κενό" IDS_MUI_PRINT_FOOTER "Αριθμός σελίδας|Να μείνει κενό" - IDS_MUI_PRINT_COLOR "Normal|Invert light (dark background)|Black on white|Colour on white|Colour on white (except line numbers)|Screen Colours" - IDS_MUI_PRINT_PAGENUM "Page %i" + IDS_MUI_PRINT_COLOR "Κανονική|Αντιστροφή φωτός (σκούρο φόντο)|Μαύρο σε λευκό|Έγχρωμο σε λευκό|Έγχρωμο σε λευκό (εκτός αρίθμησης γραμμών)|Χρώματα οθόνης" + IDS_MUI_PRINT_PAGENUM "Σελίδα %i" END STRINGTABLE BEGIN - IDS_MUI_PRINT_EMPTY "This document doesn't contain any text to be printed." - IDS_MUI_PRINT_ERROR "Error printing ""%s""!" - IDS_MUI_FAV_SUCCESS "A shortcut to the current file has been created in the favourites directory." - IDS_MUI_FAV_FAILURE "The shortcut to the current file could not be created.\nMake sure there's no other file with the same name." - IDS_MUI_READONLY_MODIFY "The attributes of ""%s"" could not be modified." - IDS_MUI_SAVEPOS "&Save Position\tCtrl+S" - IDS_MUI_RESETPOS "&Reset Position\tCtrl+R" - IDS_MUI_PREVIEW "&Preview Settings\tCtrl+P" + IDS_MUI_PRINT_EMPTY "Αυτό το έγγραφο δεν περιέχει κάποιο κείμενο για εκτύπωση." + IDS_MUI_PRINT_ERROR "Σφάλμα κατά την εκτύπωση του ""%s""!" + IDS_MUI_FAV_SUCCESS "Μια συντόμευση για το τρέχον αρχείο έχει δημιουργηθεί στον κατάλογο αγαπημένων." + IDS_MUI_FAV_FAILURE "Δεν ήταν δυνατή η δημιουργία συντόμευσης για το τρέχον αρχείο.\nΒεβαιωθείτε ότι δεν υπάρχει άλλο αρχείο με το ίδιο όνομα." + IDS_MUI_READONLY_MODIFY "Δεν ήταν δυνατή η τροποποίηση των χαρακτηριστικών του ""%s""." + IDS_MUI_SAVEPOS "&Αποθήκευση θέσης\tCtrl+S" + IDS_MUI_RESETPOS "&Επαναφορά θέσης\tCtrl+R" + IDS_MUI_PREVIEW "&Προεπισκόπηση ρυθμίσεων\tCtrl+P" IDS_MUI_PASS_FAILURE "Η φράση πρόσβασης είναι εσφαλμένη.\nΕπανάληψη με άλλη φράση πρόσβασης;" - IDS_MUI_NOPASS "Decryption Cancelled!\nRead encrypted raw data?" + IDS_MUI_NOPASS "Η αποκρυπτογράφηση ακυρώθηκε!\nΑνάγνωση των κρυπτογραφημένων ανεπεξέργαστων δεδομένων;" IDS_MUI_STY_BASESTD "ΒΑΣΙΚΟ (Προεπιλεγμένο στυλ):" IDS_MUI_STY_BASE2ND "ΒΑΣΙΚΟ (2ο προεπιλεγμένο στυλ):" IDS_MUI_STY_LEXDEF "%s - Προεπιλεγμένο στυλ:" @@ -247,14 +247,14 @@ BEGIN IDS_MUI_TITLE_RELARB " +++ Στυλ '%s' (%s) +++" IDS_MUI_TITLE_FIXARB " Στυλ '%s' (%s)" IDS_MUI_ASSOCIATED_EXT "Συσχετισμένες επεκτάσεις ονομάτων αρχείων:" - IDS_MUI_ZERO_LEN_MATCH "^ Zero-Length Match" - IDS_MUI_GOTO_LINE "Line (1 - %ti):" - IDS_MUI_GOTO_COLUMN "Column (1 - %ti):" + IDS_MUI_ZERO_LEN_MATCH "^ Συμφωνία μηδενικού μήκους" + IDS_MUI_GOTO_LINE "Γραμμή (1 - %ti):" + IDS_MUI_GOTO_COLUMN "Στήλη (1 - %ti):" END STRINGTABLE BEGIN - IDS_MUI_MENU_LANGUAGE "&Γλώσσα" + IDS_MUI_MENU_LANGUAGE "&Γλώσσα / Language" IDS_USE_LOCALE_DATEFMT "Μορφή &ημερομηνίας βάσει γλώσσας" IDS_MUI_MENU_THEMES "&Συλλογή συνδυασμών" IDM_THEMES_DEFAULT "&Προεπιλεγμένη" @@ -263,22 +263,22 @@ BEGIN IDS_MUI_STATUSBAR_POSTFIXES ",,,,,,,,,,,,,,," IDS_CLEAR_ALL "Απαλοιφή όλων" IDS_MUI_CLEAR_FIND_HISTORY - "Clear Find History" + "Απαλοιφή ιστορικού αναζήτησης" IDS_MUI_CLEAR_REPL_HISTORY - "Clear Replace History" - IDS_MUI_WRAPSEARCH_FWD "Wrap-Around match from top %s" - IDS_MUI_WRAPSEARCH_BCK "Wrap-Around match from bottom %s" + "Απαλοιφή ιστορικού αντικατάστασης" + IDS_MUI_WRAPSEARCH_FWD "Wrap-Around match from top" + IDS_MUI_WRAPSEARCH_BCK "Wrap-Around match from bottom" END STRINGTABLE BEGIN - IDS_MUI_SB_MARK_ALL_OCC "Mark All Occurrences..." - IDS_MUI_SB_TOGGLE_VIEW "Toggle View..." - IDS_MUI_SB_REPLACE_ALL "Replace all..." - IDS_MUI_SB_WRAP_LINES "Wrap Lines..." - IDS_MUI_SB_CONV_LNBRK "Convert Line Breaks..." + IDS_MUI_SB_MARK_ALL_OCC "Σήμανση όλων των εμφανίσεων..." + IDS_MUI_SB_TOGGLE_VIEW "Εναλλαγή προβολής..." + IDS_MUI_SB_REPLACE_ALL "Αντικατάσταση όλων..." + IDS_MUI_SB_WRAP_LINES "Αναδίπλωση γραμμών..." + IDS_MUI_SB_CONV_LNBRK "Μετατροπή αλλαγών γραμμών..." IDS_MUI_SB_RECODING_DOC "Recoding Document..." - IDS_MUI_SB_LEXER_STYLING "Apply Lexer Styling..." + IDS_MUI_SB_LEXER_STYLING "Εφαρμογή στυλ του Lexer..." END STRINGTABLE @@ -345,22 +345,22 @@ IDS_MUI_ABOUT_RTF_0 "{\ \\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fswiss\\fcharset0 Segoe UI;}}\ {\\colortbl ;\\red80\\green160\\blue80;}\ \\tx3500\\tx7000\\fs18\ -\\cf0 \\fs20\\b1\\ul1 Development:\\ul0\\b0\\fs18\\par\ +\\cf0 \\fs20\\b1\\ul1 Ανάπτυξη:\\ul0\\b0\\fs18\\par\ " IDS_MUI_ABOUT_RTF_1 "\ -\\cf0 \\fs20\\b1\\ul1 Contributors:\\ul0\\b0\\fs18\\par\ +\\cf0 \\fs20\\b1\\ul1 Συνεισφέροντες:\\ul0\\b0\\fs18\\par\ " IDS_MUI_ABOUT_RTF_2 "\ -\\cf0 \\fs20\\b1\\ul1 Open Source / Libraries:\\ul0\\b0\\fs18\\par\ +\\cf0 \\fs20\\b1\\ul1 Open Source / Βιβλιοθήκες:\\ul0\\b0\\fs18\\par\ " IDS_MUI_ABOUT_RTF_3 "\ -\\cf0 \\fs20\\b1\\ul1 Acknowledgments:\\ul0\\b0\\fs18\\par\ +\\cf0 \\fs20\\b1\\ul1 Ευχαριστίες:\\ul0\\b0\\fs18\\par\ " IDS_MUI_ABOUT_RTF_4 "\ -\\cf0 \\fs20\\b1\\ul1 Resources:\\ul0\\b0\\fs18\\par\ +\\cf0 \\fs20\\b1\\ul1 Πόροι:\\ul0\\b0\\fs18\\par\ " IDS_MUI_ABOUT_RTF_5 "\ -\\cf0 \\fs20\\b1\\ul1 Licences:\\ul0\\b0\\fs18\\par\ +\\cf0 \\fs20\\b1\\ul1 Άδειες χρήσης:\\ul0\\b0\\fs18\\par\ " END From 2bcc7e387618886b3770d9ee7c5abe6fc7975abc Mon Sep 17 00:00:00 2001 From: Pairi Daiza Date: Wed, 12 May 2021 21:44:56 +0200 Subject: [PATCH 3/8] + Upd: Version files and Changes.txt --- Build/Changes.txt | 4 +++- Versions/build.txt | 2 +- Versions/day.txt | 2 +- res/Notepad3.exe.manifest.conf | 2 +- src/VersionEx.h | 4 ++-- ...ue.while.math.calculation (issue #3417).txt | 18 ++++++++++++++++++ 6 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 test/test_files/calculation/chinese.wording.s.issue.while.math.calculation (issue #3417).txt diff --git a/Build/Changes.txt b/Build/Changes.txt index d35acae73..f0a4f3178 100644 --- a/Build/Changes.txt +++ b/Build/Changes.txt @@ -33,7 +33,7 @@ UCD - (UCD)ARDET is an Encoding Detector Library ======================================================== -Current BETA/RC Version 5.21.511.(build_#) (2021-05-11) +Current BETA/RC Version 5.21.512.(build_#) (2021-05-12) ======================================================== -------------------------------------------------------- @@ -71,6 +71,7 @@ NEW: CHANGES: -------------------------------------------------------- [.###.#]- . +[.512.1]- Keep found initial common base default font in .ini. [.507.1]- Base64 Decoding: select source code-page for decoding. [.507.1]- Base64: default Encoding/Decoding based on current code-page [.427.1]- Color selection dialog: NP3 icon, positioning and dark-mode. @@ -120,6 +121,7 @@ CHANGES: FIXES: -------------------------------------------------------- [.###.#]- . +[.512.1]- Slow line-break toggle. [.511.2]- TinyExpr: expr need not start with blank. [.511.2]- TinyExpr: UTF-8 to ANSI-CP-1252 conversion should yield invalid characters instead of blank or currency. [.511.1]- Space-width, avgchar-width and tab-width calculation. diff --git a/Versions/build.txt b/Versions/build.txt index 0cfbf0888..d00491fd7 100644 --- a/Versions/build.txt +++ b/Versions/build.txt @@ -1 +1 @@ -2 +1 diff --git a/Versions/day.txt b/Versions/day.txt index c0556fb20..4d0e90cbc 100644 --- a/Versions/day.txt +++ b/Versions/day.txt @@ -1 +1 @@ -511 +512 diff --git a/res/Notepad3.exe.manifest.conf b/res/Notepad3.exe.manifest.conf index 0d2856a1b..8e05c9561 100644 --- a/res/Notepad3.exe.manifest.conf +++ b/res/Notepad3.exe.manifest.conf @@ -3,7 +3,7 @@ Notepad3 beta diff --git a/src/VersionEx.h b/src/VersionEx.h index 5139d2b76..49ab18889 100644 --- a/src/VersionEx.h +++ b/src/VersionEx.h @@ -8,8 +8,8 @@ #define SAPPNAME "Notepad3" #define VERSION_MAJOR 5 #define VERSION_MINOR 21 -#define VERSION_REV 511 -#define VERSION_BUILD 2 +#define VERSION_REV 512 +#define VERSION_BUILD 1 #define SCINTILLA_VER 502 #define LEXILLA_VER 502 #define ONIGURUMA_REGEX_VER 7.0.0 diff --git a/test/test_files/calculation/chinese.wording.s.issue.while.math.calculation (issue #3417).txt b/test/test_files/calculation/chinese.wording.s.issue.while.math.calculation (issue #3417).txt new file mode 100644 index 000000000..472dc69b0 --- /dev/null +++ b/test/test_files/calculation/chinese.wording.s.issue.while.math.calculation (issue #3417).txt @@ -0,0 +1,18 @@ +tip: +"箱" in Chinese: means "box" in English; + +==========================================================wrong start========================================================== +1箱6*3=48(the program regard it as 16*3=48, which is not expected;) +1box6*3=3(the program regard it as 1*3=3, while not the same as above, also is not expected;) + +1箱:6*3=0.5(don't know why it's wrong with this format) +1箱: 6*3=0.5(don't know why it's wrong with this format) +==========================================================wrong end========================================================== + +==========================================================correct start========================================================== +1箱 6*3=18 +1box 6*3=18 +1box:6*3=18(as above, this version of Chinese is expected to be correct) +1box: 6*3=18(as above, this version of Chinese is expected to be correct) + +==========================================================correct end========================================================== From abe11cfed1d8bb72847258fa5bcbb29bb3c06ac1 Mon Sep 17 00:00:00 2001 From: Pairi Daiza Date: Wed, 12 May 2021 23:55:30 +0200 Subject: [PATCH 4/8] MUI - Translation of the About_RTF strings (el-GR) --- language/np3_el_gr/strings_el_gr.rc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/language/np3_el_gr/strings_el_gr.rc b/language/np3_el_gr/strings_el_gr.rc index bd5a22dcd..daf4e3a88 100644 --- a/language/np3_el_gr/strings_el_gr.rc +++ b/language/np3_el_gr/strings_el_gr.rc @@ -342,25 +342,25 @@ STRINGTABLE BEGIN IDS_MUI_ABOUT_RTF_0 "{\ -\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fswiss\\fcharset0 Segoe UI;}}\ +\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fswiss\\fcharset0 Segoe UI;}{\\f1\\fswiss\\fcharset161 Segoe UI;}}\ {\\colortbl ;\\red80\\green160\\blue80;}\ \\tx3500\\tx7000\\fs18\ -\\cf0 \\fs20\\b1\\ul1 Ανάπτυξη:\\ul0\\b0\\fs18\\par\ +\\cf0 \\fs20\\b1\\ul1 \\f1\\'c1\\'ed\\'dc\\'f0\\'f4\\'f5\\'ee\\'e7\\f0 :\\ul0\\b0\\fs18\\par\ " IDS_MUI_ABOUT_RTF_1 "\ -\\cf0 \\fs20\\b1\\ul1 Συνεισφέροντες:\\ul0\\b0\\fs18\\par\ +\\cf0 \\fs20\\b1\\ul1 \\f1\\'d3\\'f5\\'ed\\'e5\\'e9\\'f3\\'f6\\'dd\\'f1\\'ef\\'ed\\'f4\\'e5\\'f2\\f0 :\\ul0\\b0\\fs18\\par\ " IDS_MUI_ABOUT_RTF_2 "\ -\\cf0 \\fs20\\b1\\ul1 Open Source / Βιβλιοθήκες:\\ul0\\b0\\fs18\\par\ +\\cf0 \\fs20\\b1\\ul1 Open Source / \\f1\\'c2\\'e9\\'e2\\'eb\\'e9\\'ef\\'e8\\'de\\'ea\\'e5\\'f2\\f0 :\\ul0\\b0\\fs18\\par\ " IDS_MUI_ABOUT_RTF_3 "\ -\\cf0 \\fs20\\b1\\ul1 Ευχαριστίες:\\ul0\\b0\\fs18\\par\ +\\cf0 \\fs20\\b1\\ul1 \\f1\\'c5\\'f5\\'f7\\'e1\\'f1\\'e9\\'f3\\'f4\\'df\\'e5\\'f2\\f0 :\\ul0\\b0\\fs18\\par\ " IDS_MUI_ABOUT_RTF_4 "\ -\\cf0 \\fs20\\b1\\ul1 Πόροι:\\ul0\\b0\\fs18\\par\ +\\cf0 \\fs20\\b1\\ul1 \\f1\\'d0\\'fc\\'f1\\'ef\\'e9\\f0 :\\ul0\\b0\\fs18\\par\ " IDS_MUI_ABOUT_RTF_5 "\ -\\cf0 \\fs20\\b1\\ul1 Άδειες χρήσης:\\ul0\\b0\\fs18\\par\ +\\cf0 \\fs20\\b1\\ul1 \\f1\\'a2\\'e4\\'e5\\'e9\\'e5\\'f2 \\'f7\\'f1\\'de\\'f3\\'e7\\'f2\\f0 :\\ul0\\b0\\fs18\\par\ " END From 9801a56725aec135ce94a064dba6f026f006de83 Mon Sep 17 00:00:00 2001 From: Pairi Daiza Date: Thu, 13 May 2021 00:18:29 +0200 Subject: [PATCH 5/8] MUI - Minor correction --- language/np3_el_gr/strings_el_gr.rc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/language/np3_el_gr/strings_el_gr.rc b/language/np3_el_gr/strings_el_gr.rc index daf4e3a88..0863a86bc 100644 --- a/language/np3_el_gr/strings_el_gr.rc +++ b/language/np3_el_gr/strings_el_gr.rc @@ -254,7 +254,7 @@ END STRINGTABLE BEGIN - IDS_MUI_MENU_LANGUAGE "&Γλώσσα / Language" + IDS_MUI_MENU_LANGUAGE "&Γλώσσα" IDS_USE_LOCALE_DATEFMT "Μορφή &ημερομηνίας βάσει γλώσσας" IDS_MUI_MENU_THEMES "&Συλλογή συνδυασμών" IDM_THEMES_DEFAULT "&Προεπιλεγμένη" From b8bf6f8ae672d6dda5436623b1436aa517c20e0d Mon Sep 17 00:00:00 2001 From: Rainer Kottenhoff Date: Thu, 13 May 2021 14:19:06 +0200 Subject: [PATCH 6/8] + fix: optimized handling of multi-step undo/redo notifications --- src/Edit.c | 202 +++++++++++++++++++++++-------------------------- src/Edit.h | 2 +- src/Notepad3.c | 37 +++++++-- src/Notepad3.h | 19 +++-- src/SciCall.h | 1 + src/TypeDefs.h | 5 +- 6 files changed, 145 insertions(+), 121 deletions(-) diff --git a/src/Edit.c b/src/Edit.c index 05905b389..a10a99826 100644 --- a/src/Edit.c +++ b/src/Edit.c @@ -3253,9 +3253,13 @@ void EditIndentBlock(HWND hwnd, int cmd, bool bFormatIndentation, bool bForceAll return; } + //~~~UndoTransActionBegin(); ~ do outside + DocPos const iInitialPos = SciCall_GetCurrentPos(); + if (bForceAll) { SciCall_SelectAll(); + SciCall_SwapMainAnchorCaret(); } DocPos const iCurPos = SciCall_GetCurrentPos(); @@ -3272,8 +3276,6 @@ void EditIndentBlock(HWND hwnd, int cmd, bool bFormatIndentation, bool bForceAll DocPos iDiffAnchor = 0; bool bFixStart = false; - UndoTransActionBegin(); - if (bSingleLine) { if (bFormatIndentation) { SciCall_VCHome(); @@ -3321,12 +3323,12 @@ void EditIndentBlock(HWND hwnd, int cmd, bool bFormatIndentation, bool bForceAll } EditSetSelectionEx(SciCall_GetLineEndPosition(iAnchorLine) - iDiffAnchor, SciCall_GetLineEndPosition(iCurLine) - iDiffCurrent, -1, -1); } + //EditScrollSelectionToView(); } else { Sci_GotoPosChooseCaret(iInitialPos); - EditScrollSelectionToView(); } - EndUndoTransAction(); + //~~~EndUndoTransAction(); ~ do outside } @@ -3892,8 +3894,6 @@ static DocPos _AppendSpaces(HWND hwnd, DocLn iLineStart, DocLn iLineEnd, DocPos DocPos spcCount = 0; - DocChangeTransactionBegin(); - for (DocLn iLine = iLineStart; iLine <= iLineEnd; ++iLine) { // insertion position is at end of line @@ -3918,8 +3918,6 @@ static DocPos _AppendSpaces(HWND hwnd, DocLn iLineStart, DocLn iLineEnd, DocPos spcCount += iPadLen; } - EndDocChangeTransaction(); - _RESTORE_TARGET_RANGE_; FreeMem(pmszPadStr); @@ -3931,117 +3929,108 @@ static DocPos _AppendSpaces(HWND hwnd, DocLn iLineStart, DocLn iLineEnd, DocPos // // EditPadWithSpaces() // -void EditPadWithSpaces(HWND hwnd, bool bSkipEmpty, bool bNoUndoGroup) -{ +void EditPadWithSpaces(HWND hwnd, bool bSkipEmpty) { + if (SciCall_IsSelectionEmpty()) { return; } - DocChangeTransactionBegin(); + if (Sci_IsMultiOrRectangleSelection() && !SciCall_IsSelectionEmpty()) { - int const token = (!bNoUndoGroup ? BeginUndoAction() : -1); - __try { + DocPos const selAnchorMainPos = SciCall_GetRectangularSelectionAnchor(); + DocPos const selCaretMainPos = SciCall_GetRectangularSelectionCaret(); - if (Sci_IsMultiOrRectangleSelection() && !SciCall_IsSelectionEmpty()) { + DocPos const iAnchorColumn = SciCall_GetColumn(SciCall_GetSelectionNAnchor(0)) + SciCall_GetSelectionNAnchorVirtualSpace(0); + DocPos const iCaretColumn = SciCall_GetColumn(SciCall_GetSelectionNCaret(0)) + SciCall_GetSelectionNCaretVirtualSpace(0); + bool const bSelLeft2Right = (iAnchorColumn <= iCaretColumn); - DocPos const selAnchorMainPos = SciCall_GetRectangularSelectionAnchor(); - DocPos const selCaretMainPos = SciCall_GetRectangularSelectionCaret(); + DocLn iRcAnchorLine = SciCall_LineFromPosition(selAnchorMainPos); + DocLn iRcCaretLine = SciCall_LineFromPosition(selCaretMainPos); + DocLn const iLineCount = abs_p(iRcCaretLine - iRcAnchorLine) + 1; - DocPos const iAnchorColumn = SciCall_GetColumn(SciCall_GetSelectionNAnchor(0)) + SciCall_GetSelectionNAnchorVirtualSpace(0); - DocPos const iCaretColumn = SciCall_GetColumn(SciCall_GetSelectionNCaret(0)) + SciCall_GetSelectionNCaretVirtualSpace(0); - bool const bSelLeft2Right = (iAnchorColumn <= iCaretColumn); + // lots of spaces + DocPos const spBufSize = max_p(iAnchorColumn, selCaretMainPos); + char *pSpaceBuffer = (char *)AllocMem((spBufSize + 1) * sizeof(char), HEAP_ZERO_MEMORY); + FillMemory(pSpaceBuffer, spBufSize * sizeof(char), ' '); - DocLn iRcAnchorLine = SciCall_LineFromPosition(selAnchorMainPos); - DocLn iRcCaretLine = SciCall_LineFromPosition(selCaretMainPos); - DocLn const iLineCount = abs_p(iRcCaretLine - iRcAnchorLine) + 1; + DocPos *pVspAVec = (DocPos *)AllocMem(iLineCount * sizeof(DocPos), HEAP_ZERO_MEMORY); + DocPos *pVspCVec = (DocPos *)AllocMem(iLineCount * sizeof(DocPos), HEAP_ZERO_MEMORY); - // lots of spaces - DocPos const spBufSize = max_p(iAnchorColumn, selCaretMainPos); - char* pSpaceBuffer = (char*)AllocMem((spBufSize + 1) * sizeof(char), HEAP_ZERO_MEMORY); - FillMemory(pSpaceBuffer, spBufSize * sizeof(char), ' '); + for (DocLn i = 0; i < iLineCount; ++i) { + pVspAVec[i] = SciCall_GetSelectionNAnchorVirtualSpace(i); + pVspCVec[i] = SciCall_GetSelectionNCaretVirtualSpace(i); + } - DocPos* pVspAVec = (DocPos*)AllocMem(iLineCount * sizeof(DocPos), HEAP_ZERO_MEMORY); - DocPos* pVspCVec = (DocPos*)AllocMem(iLineCount * sizeof(DocPos), HEAP_ZERO_MEMORY); + DocPosU i = 0; + DocPos iSpcCount = 0; + DocLn const iLnIncr = (iRcAnchorLine <= iRcCaretLine) ? (DocLn) + 1 : (DocLn)-1; + DocLn iLine = iRcAnchorLine - iLnIncr; + do { + iLine += iLnIncr; + DocPos const iInsPos = SciCall_GetLineEndPosition(iLine); + DocPos const cntVSp = bSelLeft2Right ? pVspCVec[i++] : pVspAVec[i++]; + bool const bSkip = (bSkipEmpty && (iInsPos <= SciCall_PositionFromLine(iLine))); - for (DocLn i = 0; i < iLineCount; ++i) { - pVspAVec[i] = SciCall_GetSelectionNAnchorVirtualSpace(i); - pVspCVec[i] = SciCall_GetSelectionNCaretVirtualSpace(i); + if ((cntVSp > 0) && !bSkip) { + pSpaceBuffer[cntVSp] = '\0'; + SciCall_InsertText(iInsPos, pSpaceBuffer); + pSpaceBuffer[cntVSp] = ' '; + iSpcCount += cntVSp; } + } while (iLine != iRcCaretLine); - DocPosU i = 0; - DocPos iSpcCount = 0; - DocLn const iLnIncr = (iRcAnchorLine <= iRcCaretLine) ? (DocLn)+1 : (DocLn)-1; - DocLn iLine = iRcAnchorLine - iLnIncr; - do { - iLine += iLnIncr; - DocPos const iInsPos = SciCall_GetLineEndPosition(iLine); - DocPos const cntVSp = bSelLeft2Right ? pVspCVec[i++] : pVspAVec[i++]; - bool const bSkip = (bSkipEmpty && (iInsPos <= SciCall_PositionFromLine(iLine))); + FreeMem(pSpaceBuffer); - if ((cntVSp > 0) && !bSkip) { - pSpaceBuffer[cntVSp] = '\0'; - SciCall_InsertText(iInsPos, pSpaceBuffer); - pSpaceBuffer[cntVSp] = ' '; - iSpcCount += cntVSp; - } - } while (iLine != iRcCaretLine); - - FreeMem(pSpaceBuffer); - - if (iRcAnchorLine <= iRcCaretLine) { - if (bSelLeft2Right) { - EditSetSelectionEx(selAnchorMainPos + pVspAVec[0], selCaretMainPos + iSpcCount, 0, 0); - } else { - EditSetSelectionEx(selAnchorMainPos + pVspAVec[0], selCaretMainPos + pVspCVec[iLineCount - 1] + iSpcCount - pVspAVec[iLineCount - 1], 0, 0); - } + if (iRcAnchorLine <= iRcCaretLine) { + if (bSelLeft2Right) { + EditSetSelectionEx(selAnchorMainPos + pVspAVec[0], selCaretMainPos + iSpcCount, 0, 0); } else { - if (bSelLeft2Right) { - EditSetSelectionEx(selAnchorMainPos + pVspAVec[0] + iSpcCount - pVspCVec[0], selCaretMainPos + pVspCVec[iLineCount - 1], 0, 0); - } else { - EditSetSelectionEx(selAnchorMainPos + iSpcCount, selCaretMainPos + pVspCVec[iLineCount - 1], 0, 0); - } + EditSetSelectionEx(selAnchorMainPos + pVspAVec[0], selCaretMainPos + pVspCVec[iLineCount - 1] + iSpcCount - pVspAVec[iLineCount - 1], 0, 0); } - - FreeMem(pVspCVec); - FreeMem(pVspAVec); - } else { // SC_SEL_LINES | SC_SEL_STREAM - const DocPos iCurPos = SciCall_GetCurrentPos(); - const DocPos iAnchorPos = SciCall_GetAnchor(); - - const DocPos iSelStart = SciCall_GetSelectionStart(); - const DocPos iSelEnd = SciCall_GetSelectionEnd(); - - DocLn iStartLine = 0; - DocLn iEndLine = Sci_GetLastDocLineNumber(); - - if (iSelStart != iSelEnd) { - iStartLine = SciCall_LineFromPosition(iSelStart); - iEndLine = SciCall_LineFromPosition(iSelEnd); - if (iSelEnd < SciCall_GetLineEndPosition(iEndLine)) { - --iEndLine; - } - } - if (iStartLine < iEndLine) { - DocPos iMaxColumn = 0; - for (DocLn iLine = iStartLine; iLine <= iEndLine; ++iLine) { - iMaxColumn = max_p(iMaxColumn, SciCall_GetColumn(SciCall_GetLineEndPosition(iLine))); - } - if (iMaxColumn > 0) { - const DocPos iSpcCount = _AppendSpaces(hwnd, iStartLine, iEndLine, iMaxColumn, bSkipEmpty); - if (iCurPos < iAnchorPos) { - EditSetSelectionEx(iAnchorPos + iSpcCount, iCurPos, -1, -1); - } else { - EditSetSelectionEx(iAnchorPos, iCurPos + iSpcCount, -1, -1); - } - } + } else { + if (bSelLeft2Right) { + EditSetSelectionEx(selAnchorMainPos + pVspAVec[0] + iSpcCount - pVspCVec[0], selCaretMainPos + pVspCVec[iLineCount - 1], 0, 0); + } else { + EditSetSelectionEx(selAnchorMainPos + iSpcCount, selCaretMainPos + pVspCVec[iLineCount - 1], 0, 0); } } - } __finally { - if (token >= 0) { - EndUndoAction(token); + + FreeMem(pVspCVec); + FreeMem(pVspAVec); + + } else { // SC_SEL_LINES | SC_SEL_STREAM + + const DocPos iCurPos = SciCall_GetCurrentPos(); + const DocPos iAnchorPos = SciCall_GetAnchor(); + + const DocPos iSelStart = SciCall_GetSelectionStart(); + const DocPos iSelEnd = SciCall_GetSelectionEnd(); + + DocLn iStartLine = 0; + DocLn iEndLine = Sci_GetLastDocLineNumber(); + + if (iSelStart != iSelEnd) { + iStartLine = SciCall_LineFromPosition(iSelStart); + iEndLine = SciCall_LineFromPosition(iSelEnd); + if (iSelEnd < SciCall_GetLineEndPosition(iEndLine)) { + --iEndLine; + } + } + if (iStartLine < iEndLine) { + DocPos iMaxColumn = 0; + for (DocLn iLine = iStartLine; iLine <= iEndLine; ++iLine) { + iMaxColumn = max_p(iMaxColumn, SciCall_GetColumn(SciCall_GetLineEndPosition(iLine))); + } + if (iMaxColumn > 0) { + const DocPos iSpcCount = _AppendSpaces(hwnd, iStartLine, iEndLine, iMaxColumn, bSkipEmpty); + if (iCurPos < iAnchorPos) { + EditSetSelectionEx(iAnchorPos + iSpcCount, iCurPos, -1, -1); + } else { + EditSetSelectionEx(iAnchorPos, iCurPos + iSpcCount, -1, -1); + } + } } } - EndDocChangeTransaction(); } @@ -4650,7 +4639,6 @@ void EditFocusMarkedLinesCmd(HWND hwnd, bool bCopy, bool bDelete) if (bDelete) { DocChangeTransactionBegin(); - SciCall_BeginUndoAction(); line = 0; while (line >= 0) { @@ -4668,7 +4656,6 @@ void EditFocusMarkedLinesCmd(HWND hwnd, bool bCopy, bool bDelete) } } - SciCall_EndUndoAction(); EndDocChangeTransaction(); } @@ -5108,7 +5095,9 @@ void EditSortLines(HWND hwnd, int iSortFlags) int const _iTabWidth = SciCall_GetTabWidth(); if (bIsMultiSel) { - EditPadWithSpaces(hwnd, !(iSortFlags & SORT_SHUFFLE), true); + IgnoreNotifyDocChangedEvent(true); + EditPadWithSpaces(hwnd, !(iSortFlags & SORT_SHUFFLE)); + ObserveNotifyDocChangedEvent(); // changed rectangular selection iCurPos = SciCall_GetRectangularSelectionCaret(); iAnchorPos = SciCall_GetRectangularSelectionAnchor(); @@ -5289,6 +5278,7 @@ void EditSortLines(HWND hwnd, int iSortFlags) EditSetSelectionEx(iAnchorPos, iCurPos, -1, -1); } EndUndoTransAction(); + _RESTORE_TARGET_RANGE_; } @@ -7547,16 +7537,16 @@ void EditMarkAll(char* pszFind, int sFlags, DocPos rangeStart, DocPos rangeEnd, DocPos iWordStart = SciCall_WordStartPosition(iCurPos, true); DocPos iWordEnd = SciCall_WordEndPosition(iCurPos, true); if (iWordStart == iWordEnd) { - return; + __leave; } iFindLength = (iWordEnd - iWordStart); StringCchCopyNA(txtBuffer, COUNTOF(txtBuffer), SciCall_GetRangePointer(iWordStart, iFindLength), iFindLength); } else { - return; // no pattern, no selection and no word mark chosen + __leave; // no pattern, no selection and no word mark chosen } } else { // we have a selection if (Sci_IsMultiSelection()) { - return; + __leave; } // get current selection @@ -7566,7 +7556,7 @@ void EditMarkAll(char* pszFind, int sFlags, DocPos rangeStart, DocPos rangeEnd, // if multiple lines are selected exit if ((SciCall_LineFromPosition(iSelStart) != SciCall_LineFromPosition(iSelEnd)) || (iSelCount >= COUNTOF(txtBuffer))) { - return; + __leave; } iFindLength = SciCall_GetSelText(pszText) - 1; @@ -7577,7 +7567,7 @@ void EditMarkAll(char* pszFind, int sFlags, DocPos rangeStart, DocPos rangeEnd, const char* delims = (Settings.AccelWordNavigation ? DelimCharsAccel : DelimChars); while ((iSelStart2 <= iSelCount) && pszText[iSelStart2]) { if (StrChrIA(delims, pszText[iSelStart2])) { - return; + __leave; } ++iSelStart2; } diff --git a/src/Edit.h b/src/Edit.h index d1b4818bc..6a78fe83d 100644 --- a/src/Edit.h +++ b/src/Edit.h @@ -75,7 +75,7 @@ void EditEncloseSelection(LPCWSTR pszOpen, LPCWSTR pszClose); typedef enum _lncmntmode { LNC_TOGGLE, LNC_ADD, LNC_REMOVE } LnCmtMode_t; void EditToggleLineCommentsSimple(LPCWSTR pwszComment, bool bInsertAtStart, LnCmtMode_t mode); void EditToggleLineCommentsExtended(LPCWSTR pwszComment, bool bInsertAtStart); -void EditPadWithSpaces(HWND hwnd, bool bSkipEmpty, bool bNoUndoGroup); +void EditPadWithSpaces(HWND hwnd, bool bSkipEmpty); void EditStripFirstCharacter(HWND hwnd); void EditStripLastCharacter(HWND hwnd, bool bIgnoreSelection, bool bTrailingBlanksOnly); void EditCompressBlanks(); diff --git a/src/Notepad3.c b/src/Notepad3.c index 4d4c75bcd..29e69393a 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -4542,25 +4542,35 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) case IDM_EDIT_INDENT: + UndoTransActionBegin(); EditIndentBlock(Globals.hwndEdit, SCI_TAB, true, false); + EndUndoTransAction(); break; case IDM_EDIT_UNINDENT: + UndoTransActionBegin(); EditIndentBlock(Globals.hwndEdit, SCI_BACKTAB, true, false); + EndUndoTransAction(); break; case CMD_TAB: + UndoTransActionBegin(); EditIndentBlock(Globals.hwndEdit, SCI_TAB, false, false); + EndUndoTransAction(); break; case CMD_BACKTAB: + UndoTransActionBegin(); EditIndentBlock(Globals.hwndEdit, SCI_BACKTAB, false, false); + EndUndoTransAction(); break; case CMD_CTRLTAB: SciCall_SetUseTabs(true); SciCall_SetTabIndents(false); + UndoTransActionBegin(); EditIndentBlock(Globals.hwndEdit, SCI_TAB, false, false); + EndUndoTransAction(); SciCall_SetTabIndents(Globals.fvCurFile.bTabIndents); SciCall_SetUseTabs(!Globals.fvCurFile.bTabsAsSpaces); break; @@ -4594,7 +4604,9 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) case IDM_EDIT_PADWITHSPACES: - EditPadWithSpaces(Globals.hwndEdit, false, false); + UndoTransActionBegin(); + EditPadWithSpaces(Globals.hwndEdit, false); + EndUndoTransAction(); break; @@ -7324,11 +7336,15 @@ inline static LRESULT _MsgNotifyLean(const SCNotification *const scn, bool* bMod const LPNMHDR pnmh = (LPNMHDR)scn; static int _mod_insdel_token = -1; + // --- check only mandatory events (must be fast !!!) --- if (pnmh->idFrom == IDC_EDIT) { if (pnmh->code == SCN_MODIFIED) { - *bModified = true; int const iModType = scn->modificationType; + if ((iModType & SC_MULTISTEPUNDOREDO) && !(iModType & SC_LASTSTEPINUNDOREDO)) { + return TRUE; + } + *bModified = true; if (iModType & (SC_MOD_BEFOREINSERT | SC_MOD_BEFOREDELETE)) { if (!(iModType & (SC_PERFORMED_UNDO | SC_PERFORMED_REDO))) { if (!_InUndoRedoTransaction() && (_mod_insdel_token < 0)) { @@ -9721,7 +9737,9 @@ bool ConsistentIndentationCheck(EditFileIOStatus* status) //bool const hasIrregularIndentDepth = (status->indentCount[I_TAB_MOD_X] > 0) || (status->indentCount[I_SPC_MOD_X] > 0); if (hasTabOrSpaceIndent || hasMixedIndents /*|| hasIrregularIndentDepth */) { + if (WarnIndentationDlg(Globals.hwndMain, status)) { + bool const useTabs = SciCall_GetUseTabs(); SciCall_SetUseTabs(status->iGlobalIndent == I_TAB_LN); bool const tabIndents = SciCall_GetTabIndents(); @@ -9729,8 +9747,14 @@ bool ConsistentIndentationCheck(EditFileIOStatus* status) bool const backSpcUnindents = SciCall_GetBackSpaceUnIndents(); SciCall_SetBackSpaceUnIndents(true); + DocPos const iCurPos = SciCall_GetCurrentPos(); + + UndoTransActionBegin(); EditIndentBlock(Globals.hwndEdit, SCI_TAB, true, true); EditIndentBlock(Globals.hwndEdit, SCI_BACKTAB, true, true); + EndUndoTransAction(); + + Sci_GotoPosChooseCaret(iCurPos); SciCall_SetUseTabs(useTabs); SciCall_SetTabIndents(tabIndents); @@ -9816,8 +9840,9 @@ bool FileLoad(LPCWSTR lpszFile, bool bDontSave, bool bNew, bool bReload, } Flags.bSettingsFileSoftLocked = false; UpdateSaveSettingsCmds(); - COND_SHOW_ZOOM_CALLTIP(); - + if (SciCall_GetZoom() != 100) { + ShowZoomCallTip(); + } return true; } @@ -9973,7 +9998,9 @@ bool FileLoad(LPCWSTR lpszFile, bool bDontSave, bool bNew, bool bReload, // consistent settings file handling (if loaded in editor) Flags.bSettingsFileSoftLocked = (StringCchCompareXIW(Paths.CurrentFile, Paths.IniFile) == 0); UpdateSaveSettingsCmds(); - COND_SHOW_ZOOM_CALLTIP(); + if (SciCall_GetZoom() != 100) { + ShowZoomCallTip(); + } // Show warning: Unicode file loaded as ANSI if (fioStatus.bUnicodeErr) { diff --git a/src/Notepad3.h b/src/Notepad3.h index fceb16a0b..1eda96131 100644 --- a/src/Notepad3.h +++ b/src/Notepad3.h @@ -138,9 +138,6 @@ int BeginUndoAction(); void EndUndoAction(int token); bool RestoreAction(int token, DoAction doAct); -#define UndoTransActionBegin() { int const _token_ = BeginUndoAction(); __try { IgnoreNotifyDocChangedEvent(false); -#define EndUndoTransAction() } __finally { EndUndoAction(_token_); ObserveNotifyDocChangedEvent(); } } - void HandleDWellStartEnd(const DocPos position, const UINT uid); bool HandleHotSpotURLClicked(const DocPos position, const HYPERLINK_OPS operation); void HandleColorDefClicked(HWND hwnd, const DocPos position); @@ -192,8 +189,18 @@ LRESULT MsgSysCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam); void IgnoreNotifyDocChangedEvent(const bool bStealthMode); void ObserveNotifyDocChangedEvent(); -#define DocChangeTransactionBegin() __try { IgnoreNotifyDocChangedEvent(false); -#define EndDocChangeTransaction() } __finally { ObserveNotifyDocChangedEvent(); } +// ---------------------------------------------------------------------------- + +#define DocChangeTransactionBegin() \ + __try { \ + SciCall_BeginUndoAction(); \ + IgnoreNotifyDocChangedEvent(false); +#define EndDocChangeTransaction() } __finally { ObserveNotifyDocChangedEvent(); SciCall_EndUndoAction(); } + +// ---------------------------------------------------------------------------- + +#define UndoTransActionBegin() { int const _token_ = BeginUndoAction(); __try { IgnoreNotifyDocChangedEvent(true); +#define EndUndoTransAction() } __finally { ObserveNotifyDocChangedEvent(); EndUndoAction(_token_); } } // ---------------------------------------------------------------------------- @@ -226,8 +233,6 @@ void ObserveNotifyDocChangedEvent(); // ---------------------------------------------------------------------------- -#define COND_SHOW_ZOOM_CALLTIP() { if (SciCall_GetZoom() != 100) { ShowZoomCallTip(); } } - // ---------------------------------------------------------------------------- #endif //_NP3_NOTEPAD3_H_ diff --git a/src/SciCall.h b/src/SciCall.h index 12681ab7c..2e8b42e5c 100644 --- a/src/SciCall.h +++ b/src/SciCall.h @@ -160,6 +160,7 @@ DeclareSciCallV1(SetLayoutCache, SETLAYOUTCACHE, int, cache); DeclareSciCallR0(GetPositionCache, GETPOSITIONCACHE, int); DeclareSciCallV1(SetPositionCache, SETPOSITIONCACHE, int, cache); // Event Masks +DeclareSciCallR0(GetModEventMask, GETMODEVENTMASK, int); DeclareSciCallV1(SetModEventMask, SETMODEVENTMASK, int, mask); DeclareSciCallV1(SetCommandEvents, SETCOMMANDEVENTS, bool, flag); // Code Page diff --git a/src/TypeDefs.h b/src/TypeDefs.h index cb59d04b0..9f234131a 100644 --- a/src/TypeDefs.h +++ b/src/TypeDefs.h @@ -743,8 +743,9 @@ typedef struct _themeFiles ///~ Don't use: SC_PERFORMED_USER | SC_MOD_CHANGESTYLE; /// SC_MOD_CHANGESTYLE and SC_MOD_CHANGEINDICATOR needs SCI_SETCOMMANDEVENTS=true // -#define SCI_MODEVENTMASK_FULL (SC_MOD_CONTAINER | SC_PERFORMED_UNDO | SC_PERFORMED_REDO | SC_MULTILINEUNDOREDO | \ - SC_MOD_INSERTTEXT | SC_MOD_DELETETEXT | SC_MOD_BEFOREINSERT | SC_MOD_BEFOREDELETE) +#define SCI_MODEVENTMASK_FULL (SC_MOD_CONTAINER | SC_PERFORMED_UNDO | SC_PERFORMED_REDO | SC_MULTILINEUNDOREDO \ + | SC_MOD_INSERTTEXT | SC_MOD_DELETETEXT | SC_MOD_BEFOREINSERT | SC_MOD_BEFOREDELETE \ + | SC_MULTISTEPUNDOREDO | SC_LASTSTEPINUNDOREDO) #define SCI_MODEVENTMASK_NONE (SC_MOD_NONE) From d2e8537e254af1d5e8ed4e02b8da38311ac94cfc Mon Sep 17 00:00:00 2001 From: Rainer Kottenhoff Date: Thu, 13 May 2021 15:29:00 +0200 Subject: [PATCH 7/8] + fix: minor enhancements for selection scroll to view --- src/Edit.c | 11 +++-------- src/Notepad3.c | 5 ++--- src/Notepad3.h | 5 +---- src/SciCall.h | 2 +- 4 files changed, 7 insertions(+), 16 deletions(-) diff --git a/src/Edit.c b/src/Edit.c index a10a99826..956e9efe6 100644 --- a/src/Edit.c +++ b/src/Edit.c @@ -1431,7 +1431,9 @@ bool EditSaveFile( // ensure consistent line endings if (Settings.FixLineEndings) { + BeginWaitCursorUID(true, IDS_MUI_SB_CONV_LNBRK); EditEnsureConsistentLineEndings(hwnd); + EndWaitCursor(); } // strip trailing blanks @@ -3255,11 +3257,8 @@ void EditIndentBlock(HWND hwnd, int cmd, bool bFormatIndentation, bool bForceAll //~~~UndoTransActionBegin(); ~ do outside - DocPos const iInitialPos = SciCall_GetCurrentPos(); - if (bForceAll) { SciCall_SelectAll(); - SciCall_SwapMainAnchorCaret(); } DocPos const iCurPos = SciCall_GetCurrentPos(); @@ -3323,9 +3322,8 @@ void EditIndentBlock(HWND hwnd, int cmd, bool bFormatIndentation, bool bForceAll } EditSetSelectionEx(SciCall_GetLineEndPosition(iAnchorLine) - iDiffAnchor, SciCall_GetLineEndPosition(iCurLine) - iDiffCurrent, -1, -1); } - //EditScrollSelectionToView(); } else { - Sci_GotoPosChooseCaret(iInitialPos); + Sci_ScrollChooseCaret(); } //~~~EndUndoTransAction(); ~ do outside @@ -5362,10 +5360,7 @@ void EditSetSelectionEx(DocPos iAnchorPos, DocPos iCurrentPos, DocPos vSpcAnchor // void EditEnsureConsistentLineEndings(HWND hwnd) { - IgnoreNotifyDocChangedEvent(true); SciCall_ConvertEOLs(SciCall_GetEOLMode()); - ObserveNotifyDocChangedEvent(); - Globals.bDocHasInconsistentEOLs = false; EditFixPositions(hwnd); } diff --git a/src/Notepad3.c b/src/Notepad3.c index 29e69393a..ed84b1cb7 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -4310,8 +4310,8 @@ LRESULT MsgCommand(HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam) case IDM_LINEENDINGS_CRLF: case IDM_LINEENDINGS_CR: case IDM_LINEENDINGS_LF: { - BeginWaitCursorUID(true, IDS_MUI_SB_CONV_LNBRK); int const _eol_mode = (iLoWParam - IDM_LINEENDINGS_CRLF); // SC_EOL_CRLF(0), SC_EOL_CR(1), SC_EOL_LF(2) + BeginWaitCursorUID(true, IDS_MUI_SB_CONV_LNBRK); SciCall_SetEOLMode(_eol_mode); EditEnsureConsistentLineEndings(Globals.hwndEdit); EndWaitCursor(); @@ -9561,7 +9561,6 @@ bool RestoreAction(int token, DoAction doAct) PostMessage(hwndedit, SCI_ENSUREVISIBLE, currPosLine, 0); } - int const selectionMode = (UNDO == doAct) ? pSel->selMode_undo : pSel->selMode_redo; PostMessage(hwndedit, SCI_SETSELECTIONMODE, (WPARAM)((selectionMode == NP3_SEL_MULTI) ? SC_SEL_STREAM : selectionMode), 0); @@ -9620,7 +9619,7 @@ bool RestoreAction(int token, DoAction doAct) break; } } - PostMessage(hwndedit, SCI_SCROLLCARET, 0, 0); + PostMessage(hwndedit, SCI_SCROLLRANGE, (WPARAM)(*pPosAnchor), (LPARAM)(*pPosCur)); PostMessage(hwndedit, SCI_CHOOSECARETX, 0, 0); } return true; diff --git a/src/Notepad3.h b/src/Notepad3.h index 1eda96131..b44580b6c 100644 --- a/src/Notepad3.h +++ b/src/Notepad3.h @@ -191,10 +191,7 @@ void ObserveNotifyDocChangedEvent(); // ---------------------------------------------------------------------------- -#define DocChangeTransactionBegin() \ - __try { \ - SciCall_BeginUndoAction(); \ - IgnoreNotifyDocChangedEvent(false); +#define DocChangeTransactionBegin() __try { SciCall_BeginUndoAction(); IgnoreNotifyDocChangedEvent(false); #define EndDocChangeTransaction() } __finally { ObserveNotifyDocChangedEvent(); SciCall_EndUndoAction(); } // ---------------------------------------------------------------------------- diff --git a/src/SciCall.h b/src/SciCall.h index 2e8b42e5c..d9bd6c1c5 100644 --- a/src/SciCall.h +++ b/src/SciCall.h @@ -758,7 +758,7 @@ inline void Sci_ScrollToLine(const DocLn line) if (!SciCall_GetLineVisible(line)) { SciCall_EnsureVisible(line); } - SciCall_ScrollRange(SciCall_PositionFromLine(line), SciCall_GetLineEndPosition(line)); + SciCall_ScrollRange(SciCall_GetLineEndPosition(line), SciCall_PositionFromLine(line)); } inline void Sci_ScrollToCurrentLine() { From c4aaeeedac747eef1a3305782444e1572ce3a296 Mon Sep 17 00:00:00 2001 From: Rainer Kottenhoff Date: Thu, 13 May 2021 15:37:19 +0200 Subject: [PATCH 8/8] + fix: go to doc begin after global indentation change --- src/Notepad3.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/Notepad3.c b/src/Notepad3.c index ed84b1cb7..e02fdcbea 100644 --- a/src/Notepad3.c +++ b/src/Notepad3.c @@ -9746,18 +9746,17 @@ bool ConsistentIndentationCheck(EditFileIOStatus* status) bool const backSpcUnindents = SciCall_GetBackSpaceUnIndents(); SciCall_SetBackSpaceUnIndents(true); - DocPos const iCurPos = SciCall_GetCurrentPos(); - UndoTransActionBegin(); EditIndentBlock(Globals.hwndEdit, SCI_TAB, true, true); EditIndentBlock(Globals.hwndEdit, SCI_BACKTAB, true, true); EndUndoTransAction(); - Sci_GotoPosChooseCaret(iCurPos); - SciCall_SetUseTabs(useTabs); SciCall_SetTabIndents(tabIndents); SciCall_SetBackSpaceUnIndents(backSpcUnindents); + + Sci_GotoPosChooseCaret(0); + } else { status->iGlobalIndent = I_MIX_LN; return false;