From c68c4218124b060c02ca0b7c183e7ea05578ec37 Mon Sep 17 00:00:00 2001 From: Rainer Kottenhoff Date: Sat, 9 Mar 2019 11:10:41 +0100 Subject: [PATCH] + chg: force UCHARDET GB18030 detection to use CED's result, if applicable + cln: repository cleanup --- .gitignore | 1 + Versions/build.txt | 2 +- .../Notepad3Portable/Other/Help/Changes.txt | 1157 ----------------- .../Other/Help/KeyboardShortcuts.txt | 308 ----- .../Notepad3Portable/Other/Help/License.txt | 51 - .../Notepad3Portable/Other/Help/Readme.txt | 81 -- .../Other/Help/encryption-doc.txt | 119 -- res/Notepad3.exe.manifest.conf | 2 +- src/EncodingDetection.cpp | 31 +- src/Notepad3.vcxproj | 8 +- src/VersionEx.h | 4 +- uchardet/uchardet/src/CharDistribution.cpp | 26 +- uchardet/uchardet/src/CharDistribution.h | 37 +- uchardet/uchardet/src/nsMBCSGroupProber.cpp | 8 +- uchardet/uchardet/src/nsMBCSGroupProber.h | 4 +- uchardet/uchardet/src/nsMBCSSM.cpp | 3 +- 16 files changed, 72 insertions(+), 1770 deletions(-) delete mode 100644 np3portableapp/Notepad3Portable/Other/Help/Changes.txt delete mode 100644 np3portableapp/Notepad3Portable/Other/Help/KeyboardShortcuts.txt delete mode 100644 np3portableapp/Notepad3Portable/Other/Help/License.txt delete mode 100644 np3portableapp/Notepad3Portable/Other/Help/Readme.txt delete mode 100644 np3portableapp/Notepad3Portable/Other/Help/encryption-doc.txt diff --git a/.gitignore b/.gitignore index 991b6971d..3b72e34e8 100644 --- a/.gitignore +++ b/.gitignore @@ -63,3 +63,4 @@ Thumbs.db /np3portableapp/Notepad3Portable/App/Notepad3/x86/*.exe /np3portableapp/Notepad3Portable/App/Notepad3/x86/lng /np3portableapp/Notepad3Portable/App/themes/ +/np3portableapp/Notepad3Portable/Other/Help/*.txt diff --git a/Versions/build.txt b/Versions/build.txt index 49e657f97..3f894f77c 100644 --- a/Versions/build.txt +++ b/Versions/build.txt @@ -1 +1 @@ -1651 +1653 diff --git a/np3portableapp/Notepad3Portable/Other/Help/Changes.txt b/np3portableapp/Notepad3Portable/Other/Help/Changes.txt deleted file mode 100644 index 7c0cf16cf..000000000 --- a/np3portableapp/Notepad3Portable/Other/Help/Changes.txt +++ /dev/null @@ -1,1157 +0,0 @@ -================================================================================ -= = -= Notepad3 - light-weight Scintilla-based text editor for Windows = -= = -= (c) Rizonesoft 2008-2019 = -= https://www.rizonesoft.com = -= = -================================================================================ -Rizonesoft Notepad3 --- CHANGELOG --- -================================================================================ - --------------------------------------------------- -LEGEND: --------------------------------------------------- -1) NEW: (Added, Feature) -2) CHANGES: -3) ENHANCEMENT: (Optimize) -4) FIXES: (Debug) -5) REMOVED: -6) TRANSLATIONS (MUI): (New Language) - --------------------------------------------------- -ABBREVIATIONS: --------------------------------------------------- -CED - (C)ompact (E)ncoding (D)etection (by Google) -MUI - (M)ultilingual (U)ser (I)nterface -NLS - (N)ew (L)anguage (S)trings (need for translation) -SCI - (SCI)ntilla Library - - -================================================== -Current Version 5.19.228.build (2019-Feb-28) -================================================== - --------------------------------------------------- -NEW: --------------------------------------------------- -- Add a Languages Selection in UI Main Menu -- Command line option [/Y] to search env PATH for relative filename (NLS: strings) -- Customize Schemes: Caret style 'ovrbar' (default) to switch caret style - between BAR and BLOCK -- Highlight current line Frame-Mode (+ mode toggle Ctrl+Shift*I) (NLS: strings) -- Goto-Dlg (Line/Column) accepts TinyExpr (ignoring suffixes) -- Add CED reliability option (NLS: dialogs) -- Indentation consistency check on file open (NLS: dialogs) -- End-of-Line (EOL) consistency check on file open (NLS: dialogs) -- Checkbox for transparent Find/Replace Dialogbox on loosing focus - --------------------------------------------------- -CHANGES: --------------------------------------------------- -- Up-to-Date SCI (GitHub Mirror 2019-Feb-07) -- Update of CED (2019-Feb-01) -- SpeedUp of RegEx Replace (in case of const replace pattern) -- Update of Onigmo RegEx engine (2019-Jan-24) -- Optimized file search for items (filebrowser, .ini file, dirs) -- Goto-Dlg (Line/Column) shows max line number -- Scintilla Library (SCI) version 4.1.4 (2019-Fev-15) -- SCI new Nim lexer replaces old Nimrod lexer (new highlighting) - --------------------------------------------------- -FIXES: --------------------------------------------------- -- single file instance: find correct window for real paths -- minor issue on UTF-8 encoding detection -- high quality icon for Taskbar (big icons) -- support high-definition icon for taskbar -- .vcxproj files supporting VS2019_Prev_2 (vc142) - --------------------------------------------------- -TRANSLATIONS (MUI): --------------------------------------------------- -- Korean (UHC) Translation - - -================================================== -Version 5.19.108.1602 (8 January 2019) -================================================== - --------------------------------------------------- -NEW: --------------------------------------------------- -- Added initial "minipath.ini" to Visual Studio Project. -- Read undefined MiniPath settings from Notepad3.ini - (Preferred language and Favorites directory). -- MiniPath Multilingual support. -- Handle zero-length lines in line-sorting algorithm. -- Support for "Rust" source code syntax highlighting. -- Multilingual support. -- The TinyExpr module. -- Add schema related keywords Auto Completion & IME. -- Rebuilding the "Command Line Help" dialog. - --------------------------------------------------- -CHANGES: --------------------------------------------------- -- MiniPath About dialog: visual adjustments. -- Optimize icon resource handling. -- Optimized MiniPath resource file (icon/bitmap placement). -- Enhanced MiniPath. -- Small design change of MiniPath's Copy/Move dialog box. -- Print option "Screen Colors" now prints with the same colors - used on screen including line numbers. -- Changed behavior of removing duplicate lines (ignore EOL/EOF chars). -- Line sorting: Move empty lines to end of selection (always, if not removed). -- Adapted PortableApps.com creator script to MUI structure. -- STD/2ND sync with DefaultText/2ndDefaultText handling. -- Reorganization of Menus in more sub-menu to shorter the Menus Lists. -- Show Zoom Percentage on magnification changes. -- Tidy Notepad3.ini to remove all defaulted [Setting] items -- Change Default settings to make the first experience of Notepad3 - more attractive... -- Open Find/Replace: Use most recent search pattern instead of clipboard - (if selection eis empty) -- Encoding affinity: UTF-8 instead of local ANSI code-page. -- Replace dialog: tmp disable "mark all occ" in case of multi-line selection. -- Adaptations for MS Visual Studio 2019 Preview. -- Scintilla updated to 412. - --------------------------------------------------- -FIXES: --------------------------------------------------- -- Do not reset scroll-width tracking on saving file - (issue #539: https://github.com/rizonesoft/Notepad3/issues/539). -- Fixed portable MiniPath redirector .ini files. -- Support Scintilla's new indicator box styles - ("INDIC_GRADIENT" and "INDIC_CRADIENTCENTRE"). -- Fixed incremental search on find/replace dialog. -- Fixed line sorting. -- Center commandline help dialog. -- In case of STD lexer only display "Default Text" in statusbar - (indicator shows which one). -- Fixed resource file problem (preproc defines). -- Fixed save window Position (Default and Initial switch) -- Fixed problem with bad brace highlighting (indicator) -- if activated, ESC will close/minimize program immediately - w/o canceling selection/tooltip first. -- Fixed broken links in About dialog. -- fixed behavior of replace (dialog) in case of multi-line selection. -- Fixed disable accelerator-key interception for universal Unicode input method. -- Fixed ASCII fallback only for selected encodings. -- Fixed Onigmo RegEx Interface: bug in returning correct matching range. - --------------------------------------------------- -TRANSLATIONS (MUI): --------------------------------------------------- -- Afrikaans Translation. -- Belarusian Translation. -- Chinese Simplified Translation. -- Dutch Translation. -- English (UK) Translation. -- French Translation. -- German Translation. -- Japanese Translation -- Russian Translation. -- Spanish Translation. - - -================================================== -Version 4.18.511.992 (12 May 2018) -================================================== - --------------------------------------------------- -NEW: --------------------------------------------------- -- Menu entries for (hidden) Accelerator Keys. -- Method to remove duplicate lines. -- Names under Acknowledgments on About box. -- Version info for Microsoft Visual C++ 2017 v15.7.(0-1) (VC v191426428). -- X-CaretPolicy ([Settings2] CurrentLineHorizontalSlop=0). -- 1st draft of "Toggle Visible" (hide non occurences lines). -- Initial version of Doc tail Chasing. -- StatusBar dynamic configuration. -- DPI awarenes on manual font scaling. -- Menu entry for switching HighDPI toolbar. - --------------------------------------------------- -CHANGES: --------------------------------------------------- -- Incremental match for search/replace dialog box. -- Default ini for Notepad3Portable. -- Scintilla library to v4.04. -- uthash library updated to current GitHub dev. -- Encoding of Notepad3 sources to UTF-8 (Sig). -- Focus View icon. -- Prep Scintilla "Position" value type changes for large file support. -- Rebases internally used code page on UTF-8 (Scintilla multi-byte conversions). -- Renamed "Toggle View" to "Focused View". -- Replaced Tellenc by "Compact Encoding Detection" CED. -- Current Scintilla (404 : 05-May-2018) development. -- Focus View and Tail Function icons. -- Disabling UpdateChecker menu entry if no executable is configured. -- Adapted test to new Aboutbox calling. -- Menu Help instead of "?" - (move File History (Recent File List) to Accel-Key Ctrl+Alt+H). - --------------------------------------------------- -ENHANCEMENT: --------------------------------------------------- -- Latest compiler tool chain recognition. -- Pad with Spaces in Rectangular Selection. -- Handling of default/standard lexer styles. -- Notepad3.ini redirection to avoid overriding settings by zipped distribution. -- Added last find pattern to file history. -- Added option to remove blank lines (containing blanks/tabs only). -- Added option to skip ANSI Code Page detection (tellenc) - (default is ON to preserve historic behavior). -- Added "Toggle View" button to toolbar. -- Compress White Spaces within rectangular selection. -- Consistent rectangular selection restauration after block operations. -- Enable "Toggle View" for main window. -- Enable "Customize Schemes" Preview button only - if selected lexer corresponds to opened file. -- External cmd tool using Google's "Compact Encoding Detection" - for encoding analysis. -- F/R dialog - enable "Ctrl+BS" to delete word in search string. -- File history dependent last search pattern option combined - with search history on/off option. -- Handling of F3 (find next - no F/R dialog). -- Kind of "incremental search" : Find/Replace "Mark All Occ" active: - typing search pattern scrolls to first match. -- Make Find Next Selected, Find Prev Selected as expected - using modern Scintilla API methods (instead of hand made operation). -- Int to DocPos type changes. -- Indication of find/replace state in FR dialog status bar. -- Non Modal Customize Schemes... dialog. -- Show or hide passphrase in dialog box. -- Selectable (and copy-able) version info header of About-Box. -- Statusbar segmentation resizing. -- Strip First/Last Char within rectangular selection. -- Strip Trailing Spaces within rectangular selection. -- "Toggle All Folds" -> "Toggle Folds" (works on selection only too now). -- "Toggle Folds": Selection range (really) toggles folds. -- "Toggle View" coop main window vs. F/R dialog. -- Delayed "mark occurrences" multi-triggering. -- Performance tuning after profiling std. handling. -- Delayed execution of time consuming update/redraw operation. -- Added user definable relative status width configuration. -- Added settings to user defined prefix strings for StatusBar sections. -- Delayed "Spinning Circle" transaction. -- Added "Extra Line Spacing" style option to ANSI Art (e.g. .nfo files) - (predefined -4). -- Minor speedup on notify changed event. - --------------------------------------------------- -FIXES: --------------------------------------------------- -- Memory leakage in selection undo/redo stack. -- Remember initial search start position for incremental search. -- Some .ini-file handling stuff. -- Handling of "Mark Occ." and "Focused View" - in cooperation with find/replace dialog. -- Select initial default standard lexer. -- Missing document modified call. -- Pad with Spaces in Rectangular Selection - (correction for pure virtual space and skip empty lines). -- Renaming of UpdateChecker => Administration Tool. -- Issue regarding selection of default and 2nd default styling. -- Clear all occurrences marker on no matching search expression. -- Restore inital selection on search dialog canceling. -- Broken Hyperlink Hotspot handling. -- Brace matching for Batch Lexer. -- Y-CaretPolicy ([Settings2] CurrentLineVerticalSlop=0) default. -- Show replacement count info-box after UI update - (extended selection, replaced pattern). -- Issue regarding "Auto Complete Word" feature. -- Slow pasting of multiline clipboard. -- Style_SetLexer() should update line number margin width. -- Minor issues regarding selection anchor/current_caret in Find Next/Previous. -- Remember last search pattern on new files. -- Notepad3 window positioning. -- Initial window position handling (command line option "/pos"). -- Search Next (F3) handling (ver II). -- Reset scroll width on font (size) changes (automatically adapted). -- Missing menu shortcut for "Remove Duplicate Lines" ("o"). -- "Remove Duplicate Lines": wrong last line handling in case of no selection. -- Using process heap allocation instead of global memory allocation method - (according to MSDN guidelines). -- "Remove Duplicate Lines": skipping line on progress to next compare - when removing previous duplicate. -- Toggle line comment on empty line. -- Issue in Strip First/Last Char within rectangular selection. -- Update Toolbar,Statusbar and LinNumber Margin - on Observe NotifyEvent reactivation. -- Endless loop on "zero length match" at EOF. -- Reverting file from storage - Preserve view, cancel selection. -- Minor issue on display indication of find/replace state in FR dialog status bar. -- Small issues on Find/Replace Next/Previous operations. -- Pad with spaces in case of rectangular selection. -- HyperlinkHotspot handling while "Toggle Visibility" changes view. -- Issue with "Toggle Visibility" drawing a selection on clicking into view. -- Concurrency issue: main window vs. Find/Replace dialog. -- Folding level issue to hide non-occurrence match lines. -- Possible Deadlock. -- Avoid deadlock of occurence marker task scheduler. -- Enable FR state reset call from outside. -- Enhance indicator (redraw needed) of re-apply "Mark All Occurrences". -- "Compressed View": re-apply lexer styles on changed marked word. -- Proper view reset after reverting from compressed view. -- "Compressed View" - minor issues. -- UTF-16 LE BOM (Unicode) for Notepad3.ini. - Notepad3.ini should have - encoding UTF-16 LE BOM (Unicode) not the smaller UTF-8 Sig encoding format. -- Scroll-to issue in case of incremental search. -- Bug replacing reverse stream selection. -- Remove file-system/URL auto-completion from search box. -- F/R dialog : minor corrections. -- Occurrences marker counting. -- default "Slop" values changed. -- Undo/Redo handling in case of discarding U/R-Stack. -- Check "Toggle View" button in case of activation. -- Restore correct fold margin. -- Optimized "notify change" observation on clearing file buffer. -- Consistent "checked" for button and menu. -- "Focused View": disable encoding identifier insertion menu entry. -- Bug in toggle mechanism of "Toggle All Folds" -- "Toggle Folds": exclude fold point (headers) which have no children. -- "Toggle Folds": selection must span at least two lines. -- Matched Rizonesoft logo background with About dialog background. -- Replace in selection: Selection enlargement. -- Version to folding issue on hiding invisible/non-marked lines. -- Toggle Folds of complete document. -- Small issue reverting from "Focused View". -- Correct WordWrap after reverting from "Focused view". -- Small bug preventing Statusbar relative width settings - smaller than 1/10 of width. -- Missing last entry of statusbar configuration (ID=11). -- Bug while reading String to Vector. -- Switching modes (EOL,OVR, some other), - statusbar has not been updated accordingly. -- Deactivate "Focused View": set FoldingLevel to default - before applying Lexer's Style (-> speed-up). -- RAII (__try/__finally) for target transactions and - notify changed observation guards. -- StatusBar handling and display of "Default text" vs. "2nd Default Text". -- Added parameter to force update of Stausbar (e.g. theme change). -- Fractional font settings: add bias of 2%. -- Minor fixes and default value adjustments. -- Choose correct font size for deactivated "Hyperlink Hotspot" style. -- Force initial default position only if no window position is specified. -- Insert key into rectangular selection. -- Undo/Redo in case of selection insert/delete. -- Cleanup obsolete rectangular pasting helpers. -- Ignore notify change event on pasting rectangular selection. -- Leave Alt-Key-Down mode if keyboard focus lost. -- Broken Undo/Redo stack (in case of selection). -- Issue on recording initial selection Undo/Redo. -- Recording selection Redo/Undo action only for non empty selection. -- Statusbar line counting display. -- Modified document flag set unneccessaryly. -- Bug, where styling stopped after hotspot highligting. - --------------------------------------------------- -REMOVED: --------------------------------------------------- -- wyUpdate stuff from portable installation. - - -================================================== -Version 3.18.311.928 (11 March 2018) -================================================== - --------------------------------------------------- -CHANGES: --------------------------------------------------- -- Accelerator-Key to toggle tranparency mode (Alt+0 => Alt+G). - - -================================================== -Version 3.18.311.925 (11 March 2018) -================================================== - --------------------------------------------------- -NEW: --------------------------------------------------- -- New: About Box (RichEdit library 2.0) -- New: Version string patching commands for different local builds. - --------------------------------------------------- -CHANGES: --------------------------------------------------- -- Accelerator Keys: (Alt+0: Toggle Transparency), - (Alt+Shift+N: Launch new empty window). -- Added "tellenc" acknowledgement to About test. -- Move "About..." dialog call to end of Help menu. -- New compiler version. -- Version info in About text. - --------------------------------------------------- -ENHANCEMENT: --------------------------------------------------- -- Pressing F3 at Find/Replace dialog performs a find and - switches focus to main window. - --------------------------------------------------- -FIXES: --------------------------------------------------- -- Activation of Undo TB-Icon on operations, that can't be undone. -- Onigmo: use CR (\r) as mono line-break symbol too. -- Format number with thousand seperator and digit grouping - acording to regional settings. -- Integration of "tellenc" encoding detection ideas. -- Use Windows regional ANSI Code Page settings for fallback in case of file - encoding detection failure (instead of default encoding for created files). -- Use all ASCII line breaks for line termination ($) meta char. -- Onigmo backward search. -- Consider "load 7-bit ASCII as UTF-8" settings on encoding detection. -- Added BOM detection to encoding analysis. -- Issue regarding hyperlink positioning of AboutBoy in case of - none standard sytem font styling. -- Swap clipboard while pasting into selection. - - -================================================== -Version 3.18.223.908 (23 February 2018) -================================================== - --------------------------------------------------- -FIXES: --------------------------------------------------- -- Critical error with automatic updates. -- Swap clipboard bug while pasting into selection. - - -================================================== -Version 3.18.222.905 (22 February 2018) -================================================== - --------------------------------------------------- -NEW: --------------------------------------------------- -- Accelerator Key (Alt+A) to switch ON/OFF occurrences marker/counter. -- Feature "Scroll Past End of File" (settings). -- Menu entry to check Rizonesoft.com directly for updates. -- PortableApps AppCompactor call for UPX compression of NP3 binaries. -- R-Statistics Code lexer. -- Status/info bar in find/replace dialog. -- Seperator on help menu update entries. -- Styling for folding marks (charset:1 -> circles / case:U -> double lines). -- wyUpdate's client configuration to PortableApps version. - --------------------------------------------------- -CHANGES: --------------------------------------------------- -- Executables now compressed with NRV2E method. -- Scintilla version 4.0.3 and documentation update. -- Adapted VS compiler version string for About dialog. -- Change start of project on GitHub (date) to 2015 (Version.h). -- Compiler optimization flags for release build. -- Encoding type of Version.h from UTF-8 (Signature) to UTF-16 LE, - to get Copyright sign right -- Folding STyle: case:L/U for box vs. circle style; - charset:0/1/2 single line after/before/enclosing. -- Registry files lexer to support eolfilled on "Added Keys". - --------------------------------------------------- -ENHANCEMENT: --------------------------------------------------- -- Added "Shift+F1" Accelerator Key to open "About..." box. -- Allow negative values for Extra Line Spacing (compact line view). -- Automatic Updates and incorporated launch of update installer "wyUpdate.exe". -- Changed tab-stop order while navigating several dialogs. -- Dynamic horizontal scroll bar width adaption. -- More prominent replace dialog button "In Selection". -- "Registry Files" lexer: enable attribute "eolfilled" for all styles of this lexer. -- Replace (virtual) rectangular (empty) selection. -- Wrap to Column allowed w/o selection (use complete text) -- Undo/redo stack does not need to store virtual space options. -- Check for Alt-Key down/up to allow drawing rectangular selection in virtual space. -- Use faster method (SCI direct call) to set/reset virtual space access option. - --------------------------------------------------- -FIXES: --------------------------------------------------- -- Minor issues in context of undo/redo (virtual) rectangular (empty) selection. -- Static URL string to open version check website. -- Tidy up menu navigation via keyboard. -- Paste multi-line clipboard into rectangular selection. -- Copy/paste and redo/undo on empty/virtual rectangular selection. -- Prepare (i) for Scintilla's Position type change to 64-bit. -- Corrupted "Page Setup..." dialog layout (after changing tab-stop order). -- Pasting into rectangular selections. -- Tab-key and indentation handling. -- Indentation and rectangular selection (final solution still open). -- "Single line selection" criteria. -- Synchronized updates for Toolbar & Statusbar. -- Empty settings string, if ToolbarButtons are reset to defaults. -- Changed navigation keys for "Edit" menu. -- Set virtual space option "SCVS_NOWRAPLINESTART" for - Alt-Key down rectangular selection only. -- Bug in calculating position for thousand separator. -- Handle case: virtual space user access not allowed. -- Selected default lexer has not been used as default startup lexer. -- Code folding integrated in margin. -- unique Style IDs. -- Disable folding operations for lexers, which don't support it. -- Default Folding Style: single line after heading. -- Bug in changed "Windows Registry Files" lexer. -- Undo/Redo action w/o selection sets/preserves selection mode (bug). -- Support styler attribute "eolfilled" in any Reg-Key case (Windows Registry Lexer). -- Small datatype correction. -- Map Toolbar Labels according to bitmap/settings file. -- "Registry Files lexer: bug in GUID in Key Path with eolfilled attribute. -- Broken swap clipboard w/ selection. -- Restore selection set/replaced by replace dialog. -- Fill find/replace search box with selection/clipboard on non switching Ctrl+F/H. -- Bug detecting find/replace dialog is foreground or not. -- Initial .ini file: corrections for labeling toolbar icons. -- Performance issue: Replace All - delay status update until transaction finished. - - -================================================== -Version 3.18.131.862 (31 January 2018) -================================================== - --------------------------------------------------- -NEW: --------------------------------------------------- -- Accelerator Key "Ctrl+Alt+J" -> Fuse Lines - (:= Join Lines, line-breaks NOT replaced by Space). -- Setting2 parameter to adjust "Mark Occ" and "Hyperlink" styling delay. - --------------------------------------------------- -ENHANCEMENT: --------------------------------------------------- -- Highlight current line stuff gathered. -- Customize Schemes... Style Names. -- Added Accelerator Keys: Alt+LEFT/RIGHT to FOLD/EXPAND folding section. -- add empty sections to initial settings file (.ini) to force a canonical order. -- Canonical initial Notepad3.ini. -- Make selection block indentation similar to VisualStudio's. - --------------------------------------------------- -FIXES: --------------------------------------------------- -- Performance for several modify text operations. -- Correct in-memory encoding/re-coding of text. -- Join Lines (preserve paragraphs) issue. -- Byte counting for selection. -- Bug in joining lines algorithm. -- Alt+H should open history file access dialog not help menu - (add ? to revert to known access key). -- Revisit usage of "Mark Occurrences" and "Hyperlink Styling" delay usage. -- Rectangular selection: (virtual empty) selection persists after clear. -- Sentencecase some strings in "Customize Schemes...". -- SpeedUp undo/redo action collections. -- Lock NotifyUpdate and TargetSelection in case of multi action - redo/undo and target replacements. -- Handling of document modified flag in case of NotifyChange bypass. -- Redo/undo and jump-to behavior having an active selection. -- Wrong test on rectangular selection. -- More select and replace target issues. -- Toggle All folds behavior. -- TAB indentation handling according to predecessors (NP2). -- selection (anchor and current caret position) handling. -- Enh: Version check for Visual Studio 2017 v.15.5.5. -- "Line Comment" id noselection and current pos == indent pos. -- Initial .ini-file: unused section removed. -- Support scintilla msg: SCN_NEEDSHOWN (EXPAND folded sections if needed). -- Avoid some issues regarding folding, using SCI_SETAUTOMATICFOLD. -- Revert TAB + Selection action corresponding to VisualStudio's behavior. -- Sensible handling of "Block -> (Un)Indent" for different kinds of selections. -- Font selection dialog does not reset some styles correctly. -- Preserve selection on Line Comment toggle. -- Char2Hex: Remove limit single byte selection. - - -================================================== -Version 3.18.113.828 (13 January 2018) -================================================== - --------------------------------------------------- -NEW: --------------------------------------------------- -- "Customize Schemes..." UI change to represent "relative sizing hierarchy". -- Initial version of Nim Lexer. Added Scintilla project and header for Nim lexer. - --------------------------------------------------- -CHANGES: --------------------------------------------------- -- Compiler version 191225834 (VS2017 v15.5.3). -- Executables not compressed with UPX. -- Menu "Mark Occurrences" whole word matching: radio button behavior. -- Onigmo RegEx syntax dialect. -- Onigmo regex engine: use PERL 5.10 syntax + - enable "\<" and "\>" word boundary matching. -- Option "after visible" for styling in background (idle time). -- Replace Windows Notepad Installer version only. -- View "2nd Default Style" as (dbl-clickable) status bar item. -- Word Wrap mode from WORD to SPACE to avoid wrapping at style change edges. -- Force position progress in case of zero-length matches. -- Re-introduce "max mark occurrence counter" to avoid lazy UI. - (Set .ini section [Settings2] MarkOccurrencesMaxCount=-1 for unlimited (MAX_INT)). - --------------------------------------------------- -ENHANCEMENT: --------------------------------------------------- -- NimLexer = NimrodLexer -> rely on Scintilla distribution for Nim(rod) lexer. -- Reasonable assumption for memory allocation of style handling (backup, save, load). -- statusbar: information about usage of 2nd Default Style. -- Statusbar: Count number of bytes in current encoding. -- structured "Mark Occurrences" menu hierarchy. -- Statusbar Partitioning. -- Cache page instead of line only. -- Mark Occurrence triggers enhancements. -- Non visible styling during idle time. -- Tuning delay parameter of "Mark Occurrences" (instantly). -- Remove test for set already, if indicator does not change. -- Redraw indicator ranges (Mark Occurrences) only if needed - - avoiding recursive SCN_UPDATEUI notifications. - --------------------------------------------------- -FIXES: --------------------------------------------------- -- Several Mark Occurrences (instantly) issues. -- Regarding Scheme customizing (rel. size) and View Menu (Mark Occ.). -- Onigmo regex engine PERL syntax: supporting named groups referencing - in replacement text. -- Correct counting of found matches. -- Broken find/replace (regex) on groups. -- Some customizing scheme issues (relative font size hierarchy). -- Document modified flag not set properly (title, toolbar & statusbar only). -- Renaming menu entries Edit: "Clear" -> "Delete" -- Menu "Mark Occurrences" whole word matching: add check indicator if - one of word matching options (selected/current) is used. -- Regex replacement on look-ahead assertion. -- relative font sizing of non-default-style entries in custom schemes. -- Font selection box title display. -- clean coding for "relative sizing hierarchy". -- Update view on style change in "Customize schemes..." -- Bug regarding "Reset" button in "Customizing Schemes..." dialog. -- Bug in detect and style Hyperlink Hotspot. -- Loosing state of "Transform Backslashes" while switching regex/wildcard search. -- Block "mark occurrences" event on transaction pair: - (SCI_TARGETFROMSELECTIO, SCI_REPLACETARGET). -- protect SCI target transactions by a guard to break recursion of - Mark Occurrences caused by ChangeNotification() events. -- Handle "2nd Default Styles" as separate standard (2nd) lexer module. -- Handling initial 1st or 2nd default style in case of "Default Text", - shown on int "Customize Schemes...". -- Crash on navigation between schemes beyond start/end of tree view. -- Disable (using 1st Default Style) - "Associated filename extensions" for "2nd Default Style". -- Clone associated filename extension list of Default Style (for 2nd Default Style). -- move word wrap start symbol to margin (new WW mode SPACE (instead of WORD))". -- Mark Occurrences timeout on Find/Replace. -- Optimized status bar partitioning. -- Revert naming for "2nd Default Text". -- Bug on switching between 1st and 2nd standard lexers. -- Selection of 1st or 2nd standard lexer (Default Text) based on Use2ndStandard flag. - - -================================================== -Version 3.18.105.802 (5 January 2018) -================================================== - --------------------------------------------------- -NEW: --------------------------------------------------- -- New: Hyperlink Hotspot Style updates on UpdateUI event (visible area only) -- New: Switch to draw all occurrences in visible area only. -- New: (Mark Occurences) instant word highligting. - --------------------------------------------------- -ENHANCEMENT: --------------------------------------------------- -- Async mark all occurrences via timer (UI response). -- Delayed mark all occurrences for better UI response. -- Fixed some issuses, which eat up CPU. -- Optimizing timer handling to avoid multiple calls of complex methods. - --------------------------------------------------- -FIXES: --------------------------------------------------- -- Custom toolbar images ini settings added. -- Add hints for free text style properties in "Customize Schemes...". -- Test version numbers for month Jan - Sep (mono digit). -- Redundant echo of expected version string. -- Toggle line comments were placed at line end. -- "Match Current Word" should not highlight partial word matches in other lines. -- Fetching wrong visible document line number in case of hidden or wrapped lines. -- Ignoring queued timer event, if timer has been killed. -- use current lexer's default text font size as base font size for - relative sizing of other styles. -- mark occurrences counter not updated in time. - - -================================================== -Version 3.17.1228.783 (28 December 2017) -================================================== -- New: Added batch script to bulk encrypt files of given directory with encryption tool. -- New: inticator style used for matching braces too. -- New: Java sourcecode to compile a class which acts as a standalone tool for decrypting Notepad3's encrypted files. -- New: Regex - "Dot matches all" vs. "Dot does not match line-breaks" switchable by option in find/replace dialog. -- Fix: Update coloring on window message WM_SYSCOLORCHANGE, including Hyperlink hotspot colors. -- Fix: Crash on empty password for encryption tool. -- Fix: Existing bash test script for encryption tool. -- Fix: Onigmo regex: . matches any charakter and does not stop at line breaks. -- Fix: Onigmo regex: remove extend mode, where # is used as line rest comment. -- Fix: Change hard coded default values for matching brace styling according to new style (indicator). -- Fix: font styling of Hyperlinks are not reset to default if feature is switched off. - - -================================================== -Version 3.17.1223.778 (23 December 2017) -================================================== -- New: More triggers for Hyperlink style updated. -- New: Online Documentation menu item. -- New: Added Scintilla's indicator styles to scheme config for "Mark Occurences". -- New: Dual configuration of Default Text Font or Current Scheme's Default Text Font. -- New: Replaced DeelX with Onigmo regular expression engine. -- Changed: uthash to version 2.0.2. -- Changed: Enhanced style copy method. -- Fix: Minor fixes for Onigmo interface class. -- Fix: Hyperlink feature related delay of font changing. -- Fix: Last hyperlink was restyled to lexer's style (not desired hotspot style). -- Fix: Default lexer style changed a litle bit after first UI update. -- Fix: Redraw bug in case of SCI_COLOURISE. -- Fix: Removed some Hyperlink dection triggerpoints, which might be collide with SEARCHINTARGET and REPLACETARGET race conditions (seperate threads). -- Fix: Removed unneccessary Hyperlink trigger-point from InitInstance(). -- Fix: Performance issue while pasting long text from clipboard. -- Fix: Local memory freeing. -- Fix: Complete set of font weights for syntax scheme. -- Fix: Prepare fixing race-condition search/replace target vs. selection. -- Fix: Set target range only for search/replace and not for paste after modifying selection (race-condition search/replace target vs. selection). -- Fix: Transform backslashes for regex find/replace. -- Fix: Out of range fallback for indicator string retrieval. -- Fix: Issue regarding TransformBackslash handler (regex vs. std & find vs. replace). -- Fix: Replace dialog: Resize regex text box to not overlay other control. -- Fix: Enable more hyperlink styling trigger points, since "replace target" race-conditions have been fixed and fast regex engine (Onigmo) is integrated. -- Fix: Issue regarding applying lexer style while hyperlink feature is active. -- Fix: Reverting to buffered draw, until screen flickering issues are clarified. -- Fix: Onigmo regex engine handling string/line end meta char '$' independent of EOL mode. -- Fix: Replace-all with look-behind assertion. -- Fix: Onigmo word boundaries issues (incl. "double" escaped esc) (not solved yet: multi escaped esc). -- Fix: Customize schemes issues (now Default Font: is applied to "Default Text" and "Current Lexers" Default Font). -- Fix: Allow (horiz.)TAB chars in selection copied to find/replace dialog search box on pop up time (Ctrl+F). -- Fix: Setting "Default Font..." will clear current lexer's default font - inherits global default font then. -- Fix: "Default Font..." configuration issue. -- Fix: "Default Font..." add check for current scheme is not default text already. -- Fix: Schemes in alphabetical order (displayed names). -- Fix: Bug on font selection - global vs. current scheme. -- Fix: More bugs regarding standard lexer handling. -- Fix: Using WYSIWYG fonts (screen vs. printer). -- Fix: Inconsistencies: cut,copy,replace,... mainmenu and context menu vs. toolbar. -- Fix: New Font selection New: 2nd Default Font not supported completely. -- Fix: setting/changing encryption pass-phrase did not trigger "file modified" flag. -- Fix: Problem with 1st vs. 2nd Default Text Scheme selection. -- Fix: Inconsistency 1st vs. 2nd Default Text Font selection. -- Fix: Use Standard Lexer on new (empty) files. -- Fix: General bug fixes and code cleanup. - - -================================================== -Version 3.17.1210.729 (10 December 2017) -================================================== -- New: Added Awk Script syntax highlighting (Python lexer based) -- New: Enhanced URL Hotspot highlighting. -- New: open Hyperlink in NP3 (if applicable: "file://..."). -- New: Update notification in Notepad3 setup. -- New: URL Hotspot (first version). -- Changed: [Settings2] section default values (and comment out if not changed) of initially distributed Notepad3.ini -- Enhancement: Code Cleanup -- Fix: Edit/Special : URL encoding/decoding for full UTF8 (non ASCII) characters. -- Fix: flashing of Search text-box of find/replace dialog in case of Win7 Classic theme -- Fix: Gibberish output if URL decoded again (2nd time). -- Fix: URL decoding, if encoding has "%#nnn" formatted ASCII chars. -- Fix: HTML character encoding starts with ampersand, not percent char. -- Fix: URL encoding: Added flag URL_ESCAPE_PERCENT for UrlEscape(). -- Fix: Added version info for VS2017 v.15.5 -- Fix: Consistent texts for "Hyperlink Hotspots". -- Fix: Hyperlink Hotspots turned off by default. (not stable enough to force the feature). -- Fix: Normal setup can now clean replace Windows Notepad registry keys. -- Fix: Added some more places, where Hotspot style redrawing does not slow down responsiveness. - - -================================================== -Version 3.17.1202.715 (2 December 2017) -================================================== -- New: Additionally show full path to current directory in windows title. -- Changed: Move "Mark Occurrences" check box from menu to find/replace dialog options. -- Changed: Renaming of drag n' drop methods. -- Fix: Removed unused mouse wheel message interception. -- Fix: Disabling buffered draw. (Scintilla: "Current platforms perform window buffering so it is almost always better for this option to be turned off.") -- Fix: Font Smoothing: [Settings2] SciFontQuality=n has no effect on some special fonts (preserving old behavior if not defined). -- Fix: Adapt text for messagebox: no valid drop-file. -- Fix: issue regarding Accelerator keys for find/replace dialog. -- Fix: Minipath full path display in titlebar (no dbl-slash in case of drive letter only). -- Fix: Mark occurrences: Outline frame of indicator box shouls have same aplpha channel color (configurable alpha2:nnn). -- Fix: Find/replace dialog: mark occurrences: use standard save/restore settings behavior. -- Fix: #192 Drag n' drop from 32-bit process on Notepad3 x64 window - - -================================================== -Version 3.17.1124.690 (24 November 2017) -================================================== -- Added Book Mark style (Color Background and Alpha) to customize schemes... -- New "D" and "Go" programming language support. -- Update: Compiler version detection. -- Update: Scintilla Lib v.4.0.2 (402). -- Adapt: C/C++ styles - keyword vs. typedefs. -- Changed SDK version target to 10.0.16299.0 -- Major refactoring of find/replace regex evaluation. -- Optimized DeelX regex interface. -- Minor fix for DeelX RegEx engine. -- Move position after replacement (EditReplace()). -- Refactoring of "Replace All" methods. -- Split C++ Keywords in two parts (1st: standard keywords, 2nd: keywords starting with double underscore "__xxx"). -- Minor polish of Readme.md. - Put changes compared to Notepad2-mod into Readme.md. -- Repair empty resource file (Notepad3.rc). -- Bookmark Enhancements -- Replaced old bookmark pixmap (visible margin) by Scintilla's BOOKMARK marker style. -- Swap text fields in Find/Replace dialog. -- Enhance: comments with useful web links. -- Enhance: Increase buffers for edit box in "Customize Schemes..." dialog. -- New: Auto remember bookmarks in recent file history. -- New: find/replace mark occurrences. -- New: Indicator in find text box, if search string is matched in document. -- New: Mark occurrences coloring is now configurable via "Customize Schemes...". -- New: "Swap Strings" button in Find/Replace dialog. -- New: validate regexpr. -- Fix: Revert to Scintilla's default mouse down and mouse wheel capture mode. -- Fix: "Mark All Occurrences" setting of find/replace dialog should only be persisted, if "Save Settings on Exit" is enabled. -- Fix: UpdateLineNumberWidth() triggers cleanup. -- Fix: Issue with update of line number margin width. -- Fix: Transform backslash issues. -- Fix: C/C++ keywords and types. -- Timer call for mark occurrences during find/replace. -- Fix: lookaround regex (DeelX) matches were not replaced. -- Fix: Issue regarding find/replace empty-string. -- Fix: Adapt DeelX RE interface according to enhanced find/replace dialog. -- Fix: Issue #173 - regex/wildcard search: replacement string not used if "Check All Occurrences" is active. -- Fix: Recoding minipath's version.h to UTF-8 (Sig), because it contains codepage dependant copyright sign. -- Fix: Corrections to .vcproj settings inconsistencies (reported in release build process). -- Fix: undo/redo issues (if no selection choosen). -- Fix: Consecutive DEL/BACKSP undo/redo broken (wrapped by unconditional selection undo/redo). -- Fix: Issues found by static code analysis. -- Fix: Bug in getting string length from dialog box readout. -- Fix: Break criteria for "replace all in range". -- Fix: Issues found regarding zero-length matches using regex anchors, including infinite loops on replace all. -- Fix: RegEx start anchor adjustment. -- Fix: Problem with regex line start and replacements at line end. -- Fix: Issues regarding selection undo/redo. -- Fix: Issues regarding margins configuration. -- Fix: Issue #139 and #143 (remove selection undo/redo for non-text-changing operations on selections). -- Fix: issue #144 (Left arrow no longer moves to previous line). -- Fix: issue #145 (Mark Occurrences Counter is broken). -- Fix: Pasting clipboard content into selection box should replace text and cancel selection then. -- Minor bug fixes and more... - - -================================================== -Version 2.17.1023.632 (23 October 2017) -================================================== -- Add code snippet (activation only prepare for future extensions). -- Added switch ([Settings2] UseOldStyleBraceMatching) to preserve old style - brace matching behavior. -- Applied patch from Neil Hodgson (Master of Scintilla Lib - respond to - scintilla lib issue report #1976). -- Changed buffers for operating edit box in customize schemes. -- Documentation: Minor changes to Notepad3.txt. -- Documentation: doc/Notepad3.txt - add description of [Section2] .ini settings - (mostly taken from orig. Notepad2 FAQs). -- Default to modern displays settings, using Scintilla's new technology - : SciDirectWriteTech=1, SciFontQuality=3 -- First prottotype of VirtualSpace RectangularSelection by default (very old - behavior can be turned on by [Settings2] DenyVirtualSpaceAccess=1). -- Implemented Feature Request #51 (buffer size of file extension edit box). -- New: Show warning before loading file with unknown (custom schemes) file - name extension. -- License.txt: switch to UTF-8 encoding. -- Restore wrongly discarded np3portableapps .ini files for NP3Portable, - redirecting .ini reading to correct path. -- Small code refactoring (replacing deprecated methods). -- Settings [Section2] (cannot be set via GUI) add all possible names and - default values, if applicable. -- Fixed .ini paths for np3portableapps. -- Fix: Crash in Favorites management. -- Fix: pasting clipboard content into selection box should replace text and - cancel selection then (in case of swapping clipboard, the selection is preserved). -- Remove settings for "Favorites" directory -> NP3 uses then users system - default folder (%USERPROFILE%\Favorites). - - -================================================== -Version 2.17.1016.610 (16 October 2017) -================================================== -- Added remove button for list items. -- Checkbox for "preserve caret position" settings. -- File History Dlg: rename button "Remove" -> "Discard" - (discard selected item from file history list). -- Minor bugfixes for session feature - (file history: remember caret pos and encoding). -- Removed unnecessary build artifacts from np3portable. - - -================================================== -Version 2 Build 605 (15 October 2017) -================================================== -- Fix: Crash on accessing UndoRedo structure while NP3 instance has - not been initialized completely (.LOG file opening bug). - - -================================================== -Version 2 Build 600 (15 October 2017) -================================================== -- Fix: Virtual space access: column indicator. -- Fix: Customize Schemes... Font... selection: bold/italic now detected - (bold: if selection >= FW_SEMIBOLD) - - -================================================== -Version 2 Build 583 (11 October 2017) -================================================== -- Cleanup AHK testing script, add test artifacts. -- Generalized internal multi-byte codepage definitions (code cleanup). -- Fix: syntax error on exit script. -- Fix: Try to retrieve correct file version for Notepad3Portable creator. -- Fix: StatusBar Col display is not correct in case of Virtual Space Access. -- Fix: locale / language independant version patching batch for Notepad3Portable -- Fix: version patching for Notepad3 PortableApps build batch. -- Fix: Recode to ANSI (in case of Chinese ANSI code-page) - - -================================================== -Version 2 Build 568 (8 October 2017) -================================================== -- Updated the Run Dialog icon. -- Code comment for completeness. -- Enhanced clipboard recoding detection. -- Prettier Browse Icon. -- StatusBar information enhancements. -- Fix: Reverting "reload as UTF-8 not work bugfix". -- Fix: Texture glitch on "Browse" button. -- Fix: Binary directory to build portable app. -- Fix: In-text encoding (convert encoding). -- Fix: minor StatusBar string corrections. -- Fix: Support pasting position at virtual space. -- Fix: Move caret to convenient position after pasting clipboard - (no current selection). -- Fix: Virtual space navigation and rectangular selection (minor issues) - (allow "Virtual Space Rectangular Selection" - also allows moving Caret into virtual space (beyond line end)) -- Fix: Copy/Cut & Paste of current line (in case of no selection - - Visual Studio behavior - using SCI's MSDEVLineSelect). -- Fix: Bug in code-page related text conversion. - - -================================================== -Version 2 Build 548 (3 October 2017) -================================================== -- Code cleanup -- Fix: Made corrections to build 505 change log (spelling, grammar, etc). -- Fix: FILE status becomes [MODIFIED] when doing CONTROL+A to select ALL. -- Fix: Paste from clipboard to ANSI code page: - unnecessary switching encoding to UTF-8. -- Fix: Undo/Redo of virtual space selection rectangle not correct. -- Fix: StatusBar SelectionCount (Sel) : count chars instead of bytes. -- Fix: Punctuation chars for "Accelerated Word Navigation" (Settings2: - ExtendedWhiteSpaceChars= add non word chars here). -- Fix: Do mouse wheel scrolling in editor area only. -- Fix: DPI awareness in manifest. -- Fix: word delimiter in case of "Accelerated Word Navigation". -- Correct UFT Spelling on Encoding menu. - - -================================================== -Version 2 Build 505 (23 September 2017) -================================================== -- 1st chunk of StrSafe migration. -- Some more StrSafe changes -- Fix: manually edited settings (SciDirectWriteTech, SciFontQuality) - should be placed in settings section [Settings2]. -- Extended default "space char set" for "Accelerated Word Navigation" to avoid - unexpected "accelerated word navigation" behavior, space-char extension is - restricted to 7-bit ASCII char set (ignoring specified non-7-bit-ASCII chars). -- StrSafe adaptions -- Fixed: settings SciFontQuality have been overwritten by Scheme configuration. - (Fonts: Calibri, Cambria, Candara, Consolas, Constantia, Corbel, Segoe UI are using - 'cleartype smoothing' (SC_EFF_QUALITY_LCD_OPTIMIZED) by default, if not - configured in Schema definition for Lexer) -- Added font "Source Code Pro" to list of special fonts for cleartype smoothing. -- Fix: undo destructive operation on selection (rectangle) does not restore - selection or preserves selection mode (extends selection on caret movement) - -> need to send SCI_CANCEL at the end of restored selection. -- Found bug caused by StrSafe migration - (COUNTOF() for buffer size must not be used on buffer pointer) -- migrate StrCpyN() and StrCatBuff() to corresponding StrSafe.h methods -- Adapted lstrcpyn() calls according to StrSafe.h requirements. -- Refactoring of "Accelerated Word Navigation" to be compliant with Scintillas - WhiteSpace and Punctuation defines. -- "Accelerated Word Navigation" activation influences "Mark Occurrences" (whole word) if set -- Extended: Remember selection undo / redo -- Added undo / redo selection to more operations -- Found Scintilla 400 method "SCI_CUT" (cut selection) broken: lost last char - replaced by SCI_COPY & SCI_CLEAR combination (for now). -- changes to EditGetClipboardText() solved the SCI_CUT problem, so it can be - switched back from SCI_COPY & SCI_CLEAR to SCI_CUT - (byte alignment in 64-bit, i am nut sure) -- switching Scintilla internal codepage to UTF-8 only (resp. Japanese, - Chinese and Korean DBCS) single-byte encoding is supported externally and - converted (fore and back) to UTF-8 internally, this simplifies - i.e. clipboard exchange, etc. -- Removed support for obsolete Korean Johab (1361) codepage. -- Fixed ConvertText() according to internal SCI codepage -- Refactoring: Encoding handling -- More operations for selections undo/redo. -- Enabled "unlimited" (as in Scintilla Lib: dep. on memory and INT_MAX) - undo / redo selection history using utarray from uthash header library - (https://troydhanson.github.io/uthash/index.html) -- Moved crypto readme to doc dir -- remove internal codepage support for Chinese, Japan, Korean DBCS use - generalized UTF-8 codepage instead - (conversions do not work as expected within scintilla lib) -- Dropping Windows XP support , using compiler toolset vc141 Win SDK 10.0. - (current VC++ redistributable needed?) -- Replaced lstrcmp() and lstrcmpi() by StrSafe (helper.h defined) methods. -- Relaunch elevated keeping current changes in a buffer. -- Fixed some problems for feature "relaunch elevated preserve changes". -- First AppVeyor config -- Remember window position in case of "relaunch elevated". -- Fixed memory initialization problem during InitInstance() -- Enhanced consistency between toolbar (save button) and titlebar (modified marker) -- "Relaunch elevated": use current .ini-file instead of new user's (Admin's) .ini -- Cleanup tmp filebuffer, if elevation has been rejected. -- Fixed crash in case of wrong Encoding (detection) -- Changed version display on Help/About. -- New Powershell script to patch version numbers -- appveyor.yml using same powershell commands to patch version -- Remove FindReplaceDlg handle declared as external from compilation unit - Edit.c - not really needed here. (externals (handles / pointers) seemed to - be a problem on module init instance time in 64-bit) -- Fixed: Open find dialog the first time (new NP3 instance) while - clipboard is empty, NP3 crashes (try to LocalFree() static allocated memory) -- Fixed: RegExpr "Find previous" corrected (find mode "left to right" has been - used, which has not the intended behavior). -- Updated Compiler Info. -- Added build.txt (and .ps1 changes) for Local Build Version patching - (common AppVeyor/Local script). -- Fixed issue "Convert to Title Case" while selected text is all upper case. -- Fixed broken "Complete Word" feature (Ctrl+Enter/Return). -- Changed accelerator key for feature "Complete Word" from Ctrl+Enter to Ctrl+Alt+Enter. -- Added feature "Insert New (empty) Line above current line Ctrl+Enter (as in VisualStudio). -- Code cleanup -- Added new Settings "Virtual Space on Rectangular Selection" used to select. - rectangle not delimited by line endings (but including virtual space). -- Readme.txt Updated. (Thanks Will) - - -================================================== -Version 2 Build 450 (18 August 2017) -================================================== -- Update to Scintilla 400 (early bird) pre-release. -- Renamed encoding menu item: "Recode No FileVars" (Alt+F8) =>> "Ignore Encoding Tags" (Alt-F8) -- UTF-8 encoding of License.txt (fixing: different ANSI codepage for copyright sign) -- Fixed "file modified" flag not set on Ctrl+X actions -- Fixed re-enable accidentally disabled toolbar buttons (find, replace, clear, toggle-folds, file-launch) -- Fixed remove obsolete settings entry, never read (SciDrawTechnology) -- Fixed crash: not a good idea to make char array (char*) external to other compilation unit. -- Fixed wrong shortcut in menu on word navigation (Ctrl+LEFT/RIGHT) - - -================================================== -Version 2 Build 440 (16 August 2017) -================================================== -- Added Enabling/Disabling Save-Button in toolbar according to file modified indicator. -- Added Del/Back Selection preserving on Undo/Redo -- Cut Selection (Ctrl-X) will preserve Selection on Undo/Redo -- Zero initializing string buffers (hardening code while searching an issue regarding "Recent Files" list in "relative paths" mode -- Menu integration of "hidden" commands -- Fixed unicode conversion error fixed in .rc -- Fixed Toolbar Button "Save" has to be enabled on encoding changes -- Fixed bug on path compare for editing own settings file (.ini) to disable "save settings" menu entries (should be case insensitive) -- Fixed: restore "rectangular" selection too on "Selection Cut" Undo/Redo -- Fixing and cleanup build for Notepad3Portable - - -================================================== -Version 2 Build 432 (10 August 2017) -================================================== -- Added command line option ( /v ) to print file immediately and quit (like Window's original notepad.exe /p option). -- Added printing additional option /v dialog to allow access to the Printer dialog (as on Menu: Print... ). -- Enlarge some string buffers for dialogs. -- Initial version of PortableApps.com Launche and Installer build. -- Build environment, to create Notepad3Portable (according to Portableapps.com) (x86/x64). -- Fixed issue #35 (preserve FileExtension settings while switching Styles / 2nd Default Scheme). -- Fixed np3encrypt vcxproj files. - - -================================================== -Version 2 Build 422 (10 August 2017) -================================================== -- Cleanup manifest handling -- Minipath DPI aware false - - -================================================== -Version 2 Build 411 (9 August 2017) -================================================== -- Added VisualStudio's Editor Behaviour for Ctrl-C and Ctrl-X -- Added VS2017 .vcproj files and adapted Compiler Tool Set accordingly -- Reintroduce HighDPI toolbar -- Integrate Scintillas DirectWrite technology -- Minor cleanups reported by CppCheck v.1.79 -- Fixed nullptr access while pressing "favorites" toolbar button on 'virgin' Notepad3 ToolBar -- Fixed broken Ctrl-Q (toggle line comments) - - -================================================== -Version 2 Build 398 (13 June 2017) -================================================== -- Added Microsoft Visual C++ 2017 (vc141) support. -- Updated Scintilla to version 3.7.5 -- Don't use 2nd default syntax scheme by default. (Issue #21) -- Bigger Toolbar Buttons (24px). Should be big enough now. (Issue #21) - - -================================================== -Version 1 Build 388 (06 January 2017) -================================================== -- Updated Scintilla to version 3.7.2 -- MiniPath now works on Windows XP - - -================================================== -Version 1 Build 386 (08 December 2016) -================================================== -- Added RaPeHoff to the contributors list. -- Update to Scintilla 371 (NP2 adaption due to deprecated data types). -- clean-code Solution (instead of "magic numbers"). -- Crypto Module: code cleanup -- Crypto Module: Replaced LocalAlloc/GlobalAlloc by HeapAlloc methods. -- Integration of DeelX RegExpr engine (http://www.regexlab.com/en/deelx/) -- Fixed block selecting cause crash. - - -================================================== -Version 1 Build 350 (05 September 2016) -================================================== -- Added Microsoft Visual C++ Update 3 version number -- Updated HTML Keywords -- Updated Scintilla to version 3.6.7 - - -================================================== -Version 1 Build 330 (24 June 2016) -================================================== -- Added Visual Studio 2015 Update 2 version number -- Added Support for Inno Setup 5.5.9 -- Implemented a new versioning scheme -- Updated Apache Keywords for version 2.4 -- Updated to Scintilla 3.6.6 -- Updated Rizonesoft Versions Program -- Fixed Compiler warnings -- Fixed Favorites Function -- Removed Visual Studio 2010 to 2013 Support - diff --git a/np3portableapp/Notepad3Portable/Other/Help/KeyboardShortcuts.txt b/np3portableapp/Notepad3Portable/Other/Help/KeyboardShortcuts.txt deleted file mode 100644 index e04a81960..000000000 --- a/np3portableapp/Notepad3Portable/Other/Help/KeyboardShortcuts.txt +++ /dev/null @@ -1,308 +0,0 @@ -Keyboard Shortcuts for Notepad3 - - File - - Ctrl+N New file. - Ctrl+F4 Close file, identical with Ctrl+N. - Ctrl+O Open file. - F5 Reload file. - F8 Reload file without encoding detection. - Ctrl+F8 Reload file with Unicode detection toggled. - Shift+F8 Reload file with ANSI/UTF-8 defaults toggled. - Alt+F8 Reload file without file variable parsing. - Ctrl+S Save file. - F6 Save file as. - Ctrl+F6 Save file copy. - Ctrl+P Print file. - Ctrl+Alt+H Open recent file. - - Tools - - Alt+N Open document in new window. - Alt+0 Open new empty window. - Ctrl+M Run metapath file browser plugin. - Ctrl+L Launch document. - Alt+L Open with. - Ctrl+R Run command. - - Favorites - - Alt+I Open favorites. - Alt+K Add to favorites. - Alt+F9 Manage favorites. - - Edit - - Ctrl+Z Undo. - Ctrl+Shift+Z Redo. - Alt+Backspace Undo. - Ctrl+Y Redo. - Ctrl+Shift+Y Undo. - Ctrl+X Cut selection / Cut current line, if no selection. - Shift+Del Cut. - Ctrl+C Copy selection / Copy current line, if no selection. - Alt+C Copy all. - Ctrl+E Copy add. - Ctrl+V Paste. - Shift+Ins Paste. - Ctrl+K Swap. - Del Clear. - Ctrl+A Select all. - Alt+Shift+Arrows Rectangular selection. - Ctrl+Shift+Enter New line with toggled auto indent option. (orig-NP2: Ctrl+Enter) - Ctrl+PgUp/PgDn Goto previous/next block. - Ctrl+Shift+PgUp/PgDn Select to previous/next block. - - Char, Word - - Ctrl+Space Select word (or line). - Ctrl+Backspace Delete word before/left. - Ctrl+Del Delete word after/right. - Ctrl+Tab Insert tabulator. - - Lines - - Ctrl+Shift+Space Select line. - Ctrl+Shift+Up Move line (block) up. - Ctrl+Shift+Down Move line (block) down. - Ctrl+D Duplicate line. - Ctrl+Shift+X Cut line. - Ctrl+Shift+C Copy line. - Ctrl+Shift+D Delete line. - Ctrl+Shift+Backspace Delete line left. - Ctrl+Shift+Del Delete line right. - Ctrl+Shift+W Column wrap. - Ctrl+I Split lines. - Ctrl+J Join lines. - Ctrl+Shift+J Join paragraphs. - - Block - - Tab Indent selected block. - Shift+Tab Unindent selected block. - Alt+Q Enclose selection. - Alt+D Duplicate selection. - Alt+B Pad with spaces. - Alt+Z Strip first character. - Alt+U Strip last character. - Alt+W Strip trailing blanks. - Alt+P Compress whitespace. - Alt+R Remove blank lines. - Alt+M Modify lines. - Alt+O Sort lines. - - Convert - - Ctrl+Shift+U Make uppercase. - Ctrl+U Make lowercase. - Ctrl+Alt+I Invert case. - Ctrl+Alt+T Title case. - Ctrl+Alt+S Sentence case. - Ctrl+Shift+S Convert tabs to spaces. - Ctrl+Shift+T Convert spaces to tabs. - Ctrl+Shift+A Convert to ANSI. - Ctrl+Shift+O Convert to OEM. - - Insert - - Alt+X HTML/XML tag. - Ctrl+F5 Time/date (short form). - Ctrl+Shift+F5 Time/date (long form). - Ctrl+F9 Filename. - Ctrl+Shift+F9 Path and filename. - Ctrl+Shift+. Insert GUID. - - Special - - Ctrl+Q Block comment (toggle). - Ctrl+Shift+Q Stream comment. - Ctrl+Shift+E URL Encode. - Ctrl+Shift+R URL Decode. - Ctrl+Alt+E Escape C Special Chars. - Ctrl+Alt+U Unescape C Special Chars. - Ctrl+B Find matching brace. - Ctrl+Shift+B Select to matching brace. - Ctrl+1 Enclose within ''. - Ctrl+2 Enclose within "". - Ctrl+3 Enclose within (). - Ctrl+4 Enclose within []. - Ctrl+5 Enclose within {}. - Ctrl+6 Enclose within ``. - Shift+F5 Update timestamps. - Ctrl+, Jump to selection start. - Ctrl+. Jump to selection end. - - Find, Replace - - Ctrl+F Find. - Alt+F3 Save find text. - F3 Find next. - Shift+F3 Find previous. - Ctrl+F3 Find next word or selection. - Ctrl+Shift+F3 Find previous word or selection. - Ctrl+Alt+F2 Expand selection to next match. (orig-NP2: F2) - Ctrl+Alt+Shift+F2 Expand selection to previous match. (orig-NP2: Shift+F2) - Ctrl+H Replace. - F4 Replace next. - Ctrl+G Jump to line. - - Bookmarks - - F2 Jump to next bookmark. - Shift+F2 Jump to previous bookmark. - Ctrl+F2 Toggle bookmark. - Alt+F2 Clear all. - - Syntax scheme, Font - - F12 Select syntax scheme. - Shift+F12 Select 2nd default syntax scheme. - Ctrl+F12 Customize syntax schemes. - Alt+F12 Select default font. - F11 Select default text syntax scheme. - Ctrl+F11 Select web source code syntax scheme. - Shift+F11 Select XML document syntax scheme. - - View - - Ctrl+W Toggle word wrap. - Ctrl+Shift+L Show long line marker. - Ctrl+Shift+G Show indentation guides. - Ctrl+Shift+N Show line numbers. - Ctrl+Shift+M Show selection margin. - Ctrl+Shift+7 Show wrap symbols. - Ctrl+Shift+8 Show whitespace. - Ctrl+Shift+9 Show line endings. - Ctrl+Shift+V Toggle visual brace matching. - Ctrl+Shift+I Highlight current line. - Ctrl+Shift+Alt+F Activate/Deactivate code folding. - Ctrl+Shift+F Toggle all folds. - - Zoom - - Ctrl++ Zoom in. - Ctrl+- Zoom out. - Ctrl+0 Reset zoom. - - Settings - - Ctrl+T Tab settings. - Alt++ Increase limit for long lines. - Alt+- Decrease limit for long lines. - Ctrl+Shift+H Toggle auto close HTML/XML. - Alt+T Always on top. - Ctrl+Numpad_* Transparent mode. - Ctrl+9 Display text excerpt in title. - F7 Save settings now. - Ctrl+F7 Jump to ini-file. - - Misc. - - Esc Optionally minimize or exit Notepad3. - Shift+Esc Save file and exit Notepad3. - F1 Online Documentation. - Shift+F1 Display Info version "About…" - -Regular Expression Syntax - - . Matches any character - - \( This marks the start of a region for tagging a match. - - \) This marks the end of a tagged region. - - \n Where n is 1 through 9 refers to the first through ninth - tagged region when replacing. For example, if the search - string was Fred\([1-9]\)XXX and the replace string was - Sam\1YYY, when applied to Fred2XXX this would generate - Sam2YYY. - - \< This matches the start of a word. - - \> This matches the end of a word. - - \x This allows you to use a character x that would otherwise - have a special meaning. For example, \[ would be interpreted - as [ and not as the start of a character set. - - [...] This indicates a set of characters, for example, [abc] means - any of the characters a, b or c. You can also use ranges, for - example [a-z] for any lower case character. - - [^...] The complement of the characters in the set. For example, - [^A-Za-z] means any character except an alphabetic character. - - ^ This matches the start of a line (unless used inside a set, - see above). - - $ This matches the end of a line. - - * This matches 0 or more times. For example, Sa*m matches Sm, - Sam, Saam, Saaam and so on. - - + This matches 1 or more times. For example, Sa+m matches Sam, - Saam, Saaam and so on. - - \d Any decimal digit. - \D Any character that is not a decimal digit. - - \s Any whitespace character. - \S Any character that is not a whitespace character. - - \w Any "word" character. - \W Any "non-word" character. - - \xHH Character with hex code HH. - - -----> Examples (don't use quotes) - - Quote lines: find "^" replace with "> " - - Unquote lines: find "^> " replace with "" - - Remove line numbers: find "^[0-9]+" replace with "" - - Convert tabs to double spaces: find "\t" replace with " " - - -Command Line Help - -Usage: - Notepad3 [/?] […[Encoding]] […[Line ending mode]] [/e] [/g] [/m] [/l] - [/q] [/s] [/d] [/h] [/x] [/c] [/b] [/n] [/r| [/p] [/t] [/i] [/o] - [/f] [/u] [/v] [/vd] [/y] [/z] [[drive:][path]filename[…]] - - file Must be the last argument, no quoted spaces by default. - + Accept multiple file arguments (with quoted spaces). - - Accept single file argument (without quoted spaces). - -Options: - /? Dispay this help message. - … Encoding (/ansi, /unicode, /unicodebe, /utf8, /utf8sig). - … Line ending mode (/crlf, /cr, /lf). - /e File source encoding. - /g Jump to specified position (/g -1 end of file). - /m Match specified text (/m- last, /mr regex, /mb backslash). - /l Auto-reload modified files. - /q Force creation of new files without prompt. - /s Select specified syntax scheme. - /d Select default text scheme. - /h Select Web Source Code scheme. - /x Select XML Document scheme. - /c Open new window and paste clipboard contents. - /b Open new paste board to collect clipboard entries. - /n Always open a new window (/ns single file instance). - /r Reuse window (/rs single file instance). - /p Set window position and size (/p0, /ps, /pf,l,t,r,b,m). - /t Set window title. - /i Start as tray icon. - /o Keep window on top. - /f Specify ini-file (/f0 no ini-file). - /u Launch with elevated privileges. - /v Print file immediately and quit. - /vd Print file (open printer dialog). - /y Search environment PATH in case of relative filename. - /z Skip next (usable for registry-based Notepad replacement). - -Examples: - Notepad3 /utf8sig /crlf d:\temp\Test.txt - … Open a new file: "Test.txt" Encoding=UTF-8-BOM, EoL=CRLF. - Notepad3 /v d:\temp\Test.txt - … Print the file: "Test.txt" immediately. - \ No newline at end of file diff --git a/np3portableapp/Notepad3Portable/Other/Help/License.txt b/np3portableapp/Notepad3Portable/Other/Help/License.txt deleted file mode 100644 index 5d1282bea..000000000 --- a/np3portableapp/Notepad3Portable/Other/Help/License.txt +++ /dev/null @@ -1,51 +0,0 @@ -================================================================================ -= = -= Notepad3 - light-weight Scintilla-based text editor for Windows = -= = -= (c) Rizonesoft 2008-2019 = -= https://www.rizonesoft.com = -= = -================================================================================ -Rizonesoft Notepad3 --- Licenses --- -================================================================================ - --------------------------------------------------- -License for Notepad3 and MiniPath --------------------------------------------------- -Copyright © 2008-2019 Rizonesoft, -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. -3. Neither the name of Florian Balmer nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - --------------------------------------------------- -License for Scintilla and SciTE --------------------------------------------------- -Copyright (c) 1998-2002 by Neil Hodgson , -All Rights Reserved. - -Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. - -NEIL HODGSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NEIL HODGSON BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGESWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - --------------------------------------------------- -License for Onigmo (Oniguruma-mod) RegEx Engine --------------------------------------------------- -Copyright (c) 2002-2009 K.Kosako , -Copyright (c) 2011-2014 K.Takata , -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/np3portableapp/Notepad3Portable/Other/Help/Readme.txt b/np3portableapp/Notepad3Portable/Other/Help/Readme.txt deleted file mode 100644 index 268a639a7..000000000 --- a/np3portableapp/Notepad3Portable/Other/Help/Readme.txt +++ /dev/null @@ -1,81 +0,0 @@ -================================================================================ -= = -= Notepad3 - light-weight Scintilla-based text editor for Windows = -= = -= (c) Rizonesoft 2008-2019 = -= https://www.rizonesoft.com = -= = -================================================================================ -Rizonesoft Notepad3 --- README --- -================================================================================ - --------------------------------------------------- -Description --------------------------------------------------- -Notepad like text editor is based on the Scintilla source code. -Notepad3 isbased on code from Notepad2 and MiniPath on code from metapath. - --------------------------------------------------- -Changes compared to Flo's official Notepad2 (made in Notepad2-mod): --------------------------------------------------- -- Code folding -- Support for bookmarks -- Option to mark all occurrences of a word -- Updated Scintilla component -- Word auto-completion -- Syntax highlighting support for AutoHotkey (AHK), AutoIt3, AviSynth, Bash, - CMake, CoffeeScript, Inno Setup, LaTeX, Lua, Markdown, NSIS, Ruby, Tcl, - YAML and VHDL scripts. -- Improved support for NFO ANSI art -- Other various minor changes and tweaks - --------------------------------------------------- -Changes compared to the Notepad2-mod fork: --------------------------------------------------- -- Additional syntax highlighting support for Awk, D, golang, MATLAB -- State of the art Regular Expression search engine (Onigmu) -- New toolbar icons based on Yusuke Kamiyaman's Fugue Icons - (Purchased by Rizonesoft) -- Hyperlink Hotspot highlighting - (single click Open in Browser (Ctrl) / Load in Editor (Alt)) -- New program icon and other small cosmetic changes -- In-App support for AES-256 Rijndael encryption/decryption of files. - (incl. external commandline tool for batch processing) -- Virtual Space rectangular selection box (Alt-Key down) -- High-DPI awareness, including high definition toolbar icons -- Undo/Redo preserves selection -- File History preserves Caret position (optional) - and remembers encoding of file -- Accelerated word navigation -- Preserve caret position of items in file history -- Count occurrences of a marked selection or word -- Count and Mark occurrences of matching search/find expression -- Visual Studio style copy/paste current line (no selection) -- Insert GUIDs -- Dropped support for Windows XP version -- Other various minor changes, tweaks and bugfixes - --------------------------------------------------- -Supported Operating Systems: --------------------------------------------------- -Windows 7, 8, 8.1 and 10 both 32-bit and 64-bit - --------------------------------------------------- -Development: --------------------------------------------------- -- Florian 'Flo' Balmer (Notepad2) ( http://www.flos-freeware.ch ) -- Rainer Kottenhoff ( https://github.com/RaiKoHoff ) - --------------------------------------------------- -Contributors: --------------------------------------------------- -- Derick Payne (© Rizonesoft) ( https://www.rizonesoft.com ) -- XhmikosR (Notepad2-mod) ( https://xhmikosr.github.io/notepad2-mod ) -- Kai Liu (CodeFolding) ( http://code.kliu.org/misc/notepad2 ) -- RL Vision (Bookmarks) ( https://www.rlvision.com/notepad2/about.php ) -- Aleksandar Lekov (MarkOcc./AutoCompl.) -- Bruno Barbieri -- Matthew Ellis (MinimizeToTray) -- Igal Tabachnik (RelaunchElevated) ( https://github.com/hmemcpy ) -- Et alii @ GitHub ( https://github.com/XhmikosR/notepad2-mod/graphs/contributors ) - diff --git a/np3portableapp/Notepad3Portable/Other/Help/encryption-doc.txt b/np3portableapp/Notepad3Portable/Other/Help/encryption-doc.txt deleted file mode 100644 index e75b88d65..000000000 --- a/np3portableapp/Notepad3Portable/Other/Help/encryption-doc.txt +++ /dev/null @@ -1,119 +0,0 @@ -Prototype enduser documentation - -If you open a file which was encrypted by this program, you'll be prompted -to supply a passphrase. This passphrase becomes the default to be used -when saving files. The passphrase is not the actual encryption key, but -is used to generate a 256 bit encryption key called the file key. - -Master Keys - -An Encrypted file can optionally contain a copy of its own file key, encrypted -with a master key, derived from a master passphrase. This allows anyone who knows -the master passphrase to decode any file encrypted with any file key which uses this -master key structure. As long as the file passphrase is not changed, the master key -can be propogated to new versions of the file without typing the master phrase -again. - -Why use a master key? - -#1) Data recovery. It is not generally a good idea to use the same -passphrase for all files, or to continue using the same passphrase forever. -The principle hazard is that if even one key is revealed, every encrypted file -you have ever created can also be read. Consequently, different keys should be used -for different files, and over time, those keys should change. Since the -keys change, they are subject to being lost or forgotton, resulting in -lost data - it's still there, but no one can decode it. If you use a master key, -and you have misplaced the file key, you can still recover your data. Since master -key is not routinely used to decrypt the file, and never needs to be shared with anyone, -is is much less likely to be compromised, so it is reasonable for a good master -key to be used for a very long time in a lot of different files. - -Recommendation: Use a master passphrase that will be very hard for anyone to guess -and very hard for you to forget. For example: - "My Favorite movie is Gone with the Wind" - "When it rains in New York, even Chicago is a better place to be" -Never tell anyone what it is or write it down. It's an EMERGENCY measure to prevent -catastrophic data loss, so treat it that way. Never use it to read or open any encrypted -file except for testing, or if you have really lost the file passphrase. - - -#2) Trapdoor access. Sometimes it is desirable to allow a second party -to decode the file without knowing the encryption passphrase - a good example -is where an automated program is intended to read an encrypted file that is -prepared by a human. The program has to have the passphrase or the key embedded -in it somewhere. It's possible for a dedicated attacker to find it, but it's -much more likely that the source of compromise will be clumsy humans. Allowing -the program to use the master key and humans to use the ordinary file keys will -allow the routine-use keys to be changed as often as necesary, while still -letting the program read the files without being told the new key. - -Technical Details: - -Passphrase Management: -256 bit encryption keys are geneated from ascii passphrases by -passing the passphrase through a SHA256 hash. Passphrases are never -Stored anywhere except in the dynamic memory of the encrypting program. - -Key management over file generations: If the file is opened -using a file passphrase, the passphrase is retained and used -as the default for the passphrase dialog. - -If the file is opened using a master passphrase, the recovered -file key is used as the default encryption for new files. This -allows an editor who does not know the file passphrase to propogate -a file key he could not create. - -If the file contains a master key, and neither the file or master -passphrase is changed, then the retained, master-encrypted file -key is copied into the next file generation. (It is still valid). -This allows an editor who knows only the file passphrase to propogate -a master key he could not create. - -Encrypted files start with an 8 byte preable, the first 4 bytes are -a "magic number" to identify the file type (currently 0x04030201) -and a 4 byte subfile type, (currently either 0x00000001 or 0x00000002) - -The next 16 bytes are the initialization vector for the AES engine, -to be used with the file key. Each file gets a unique 16 bytes of -pseudorandom noise. - -Next, for master keyed files, is a 16 byte IV for the master key, -followed by a 32 byte block containing the file key, encrypted -with the master key, using the master key IV and CBC block chaining. - -Next, is the actual file data, encrypted using the file key and the IV, -and CBC block chaining. - -Finally, are 1-16 bytes of padding to round out the AES block. Note that -there are never 0 bytes of padding. - - - -A Word about pass phrases and overall security. - -While this encryption scheme uses high quality AES encryption and quite long 256 bit keys, -that is almost irrelevant to the overall security of the system. It's like having a very -expensive lock on your front door. Thieves won't go to great lengths to pick your lock; they -will simply break a window instead. The weak link in this encryption scheme is YOU and your -selection of pass phrases. If your encrypted files are compromised, the most likely, by far, -method is the simplest; (1) they ask, you tell. or (2) they find the scrap of paper where you -wrote the passphrase or (3) some key logger watches you type the passphrase. The only -other likely method is a dictionary-type attack using a program to try lots of possible -passphrases. Any short, word-like passphrase CAN be compromised using a few days of computer -time. - -Finally, consider the suitablility of this encryption scheme for your purpose. - - If your goal is to prevent your wife from reading your girlfriend's phone number - in your address book: definitely. - - If your goal is to prevent disclosure of sensitive data if your laptop is stolen: - most likely. - - If your goal is to prevent fishing by the IRS, should they ever become curious about you: - don't count on it. They'll throw you in jail until you tell them the password, or install a - key logger and wait for you to tell them voluntarily. - - If your goal is to keep secrets people who are definitely out to get you, and are willing - to shove bamboo splints under you fingernails until you talk: don't even think about it. - \ No newline at end of file diff --git a/res/Notepad3.exe.manifest.conf b/res/Notepad3.exe.manifest.conf index 2e7b91e25..ef9385db9 100644 --- a/res/Notepad3.exe.manifest.conf +++ b/res/Notepad3.exe.manifest.conf @@ -3,7 +3,7 @@ Notepad3 XpErImEnTaL diff --git a/src/EncodingDetection.cpp b/src/EncodingDetection.cpp index 811b4fb35..d8cdef41c 100644 --- a/src/EncodingDetection.cpp +++ b/src/EncodingDetection.cpp @@ -31,7 +31,7 @@ #define STRSAFE_NO_DEPRECATE // don't allow deprecated functions #include -#include // async detection +//~#include // async detection #include "resource.h" @@ -691,6 +691,7 @@ extern "C" int Encoding_AnalyzeText char encodingStrg_CED[MAX_ENC_STRG_LEN] = { '\0' }; int cpiEncoding_CED = CPI_NONE; +#if FALSE size_t const largeFile = static_cast(Settings2.FileLoadWarningMB) * 1024LL * 1024LL; if (len < largeFile) @@ -710,23 +711,37 @@ extern "C" int Encoding_AnalyzeText cpiEncoding_UCD = cpiUCD.get(); cpiEncoding_CED = cpiCED.get(); } +#else + // no need to run analyzers asynchron, cause they analyze only the first KB of large files ... + cpiEncoding_UCD = AnalyzeText_UCHARDET(text, len, encodingHint, &ucd_cnf, encodingStrg_UCD, MAX_ENC_STRG_LEN); + cpiEncoding_CED = AnalyzeText_CED(text, len, encodingHint, &ced_cnf, encodingStrg_CED, MAX_ENC_STRG_LEN); +#endif + float confidence = 0.0f; float const ucd_confidence = ucd_cnf; float const ced_confidence = ced_cnf; - -#if 0 // -------------------------------------------------------------------------- // GB18030 (UCD always) to GBK detection adjustment // -------------------------------------------------------------------------- - if ((Encoding_GetCodePage(cpiEncoding_UCD) == 54936 /*GB-18030*/) && - (Encoding_GetCodePage(cpiEncoding_CED) != 20936 /*GB-2312-80*/)) + if (Encoding_GetCodePage(cpiEncoding_UCD) == 54936) { - // CED (util/encodings/encoding.cc) changed to predict GB18030 if applicable - cpiEncoding_UCD = cpiEncoding_CED; // choose widely used encoding + switch (Encoding_GetCodePage(cpiEncoding_CED)) + { + case 936: // GBK + case 20936: // GB-2312-80 + cpiEncoding_UCD = cpiEncoding_CED; // use CED's choice + break; + + case 54936: + // CED (util/encodings/encoding.cc) changed to predict GB18030 if applicable + default: + // keep GB-18030 + break; + } } -#endif + // -------------------------------------------------------------------------- // vote for encoding prognosis based on confidence levels or reliability diff --git a/src/Notepad3.vcxproj b/src/Notepad3.vcxproj index 4cfb51c08..fe2b30704 100644 --- a/src/Notepad3.vcxproj +++ b/src/Notepad3.vcxproj @@ -412,13 +412,13 @@ - + + true true true true - @@ -522,13 +522,13 @@ - + + true true true true - diff --git a/src/VersionEx.h b/src/VersionEx.h index efc4f30ab..70f51a97f 100644 --- a/src/VersionEx.h +++ b/src/VersionEx.h @@ -7,8 +7,8 @@ #define SAPPNAME "Notepad3" #define VERSION_MAJOR 5 #define VERSION_MINOR 19 -#define VERSION_REV 308 -#define VERSION_BUILD 1651 +#define VERSION_REV 309 +#define VERSION_BUILD 1653 #define SCINTILLA_VER 414 #define ONIGMO_REGEX_VER 6.2.0 #define VERSION_PATCH XpErImEnTaL diff --git a/uchardet/uchardet/src/CharDistribution.cpp b/uchardet/uchardet/src/CharDistribution.cpp index abf426712..f05d5416a 100644 --- a/uchardet/uchardet/src/CharDistribution.cpp +++ b/uchardet/uchardet/src/CharDistribution.cpp @@ -41,8 +41,8 @@ #include "Big5Freq.tab" #include "EUCKRFreq.tab" #include "EUCTWFreq.tab" -#include "GB2312Freq.tab" -//#include "GB18030Freq.tab" +//#include "GB2312Freq.tab" +#include "GB18030Freq.tab" #define SURE_YES 0.99f #define SURE_NO 0.01f @@ -80,20 +80,20 @@ EUCKRDistributionAnalysis::EUCKRDistributionAnalysis() mTypicalDistributionRatio = EUCKR_TYPICAL_DISTRIBUTION_RATIO; } -GB2312DistributionAnalysis::GB2312DistributionAnalysis() -{ - mCharToFreqOrder = GB2312CharToFreqOrder; - mTableSize = GB2312_TABLE_SIZE; - mTypicalDistributionRatio = GB2312_TYPICAL_DISTRIBUTION_RATIO; -} - -//GB18030DistributionAnalysis::GB18030DistributionAnalysis() +//GB2312DistributionAnalysis::GB2312DistributionAnalysis() //{ -// mCharToFreqOrder = GB18030CharToFreqOrder; -// mTableSize = GB18030_TABLE_SIZE; -// mTypicalDistributionRatio = GB18030_TYPICAL_DISTRIBUTION_RATIO; +// mCharToFreqOrder = GB2312CharToFreqOrder; +// mTableSize = GB2312_TABLE_SIZE; +// mTypicalDistributionRatio = GB2312_TYPICAL_DISTRIBUTION_RATIO; //} +GB18030DistributionAnalysis::GB18030DistributionAnalysis() +{ + mCharToFreqOrder = GB18030CharToFreqOrder; + mTableSize = GB18030_TABLE_SIZE; + mTypicalDistributionRatio = GB18030_TYPICAL_DISTRIBUTION_RATIO; +} + Big5DistributionAnalysis::Big5DistributionAnalysis() { mCharToFreqOrder = Big5CharToFreqOrder; diff --git a/uchardet/uchardet/src/CharDistribution.h b/uchardet/uchardet/src/CharDistribution.h index 99410d22e..9ab48b4dc 100644 --- a/uchardet/uchardet/src/CharDistribution.h +++ b/uchardet/uchardet/src/CharDistribution.h @@ -40,7 +40,7 @@ #include "nscore.h" -#define ENOUGH_DATA_THRESHOLD 1024 +#define ENOUGH_DATA_THRESHOLD 2048 #define MINIMUM_DATA_THRESHOLD 4 @@ -158,23 +158,24 @@ protected: } }; -class GB2312DistributionAnalysis : public CharDistributionAnalysis -{ -public: - GB2312DistributionAnalysis(); -protected: - //for GB2312 encoding, we are interested - // first byte range: 0xb0 -- 0xfe - // second byte range: 0xa1 -- 0xfe - //no validation needed here. State machine has done that - PRInt32 GetOrder(const char* str) - { - if ((unsigned char)* str >= (unsigned char)0xb0 && (unsigned char)str[1] >= (unsigned char)0xa1) - return 94 * ((unsigned char)str[0] - (unsigned char)0xb0) + (unsigned char)str[1] - (unsigned char)0xa1; - else - return -1; - } -}; +//class GB2312DistributionAnalysis : public CharDistributionAnalysis +//{ +//public: +// GB2312DistributionAnalysis(); +//protected: +// //for GB2312 encoding, we are interested +// // first byte range: 0xa1 -- 0xf7 +// // second byte range: 0xa1 -- 0xfe +// +// //no validation needed here. State machine has done that +// PRInt32 GetOrder(const char* str) +// { +// if ((unsigned char)* str >= (unsigned char)0xa1 && (unsigned char)str[1] >= (unsigned char)0xa1) +// return 94 * ((unsigned char)str[0] - (unsigned char)0xa1) + (unsigned char)str[1] - (unsigned char)0xa1; +// else +// return -1; +// } +//}; class GB18030DistributionAnalysis : public CharDistributionAnalysis { diff --git a/uchardet/uchardet/src/nsMBCSGroupProber.cpp b/uchardet/uchardet/src/nsMBCSGroupProber.cpp index 98d71367a..458321786 100644 --- a/uchardet/uchardet/src/nsMBCSGroupProber.cpp +++ b/uchardet/uchardet/src/nsMBCSGroupProber.cpp @@ -47,8 +47,8 @@ const char *ProberName[] = "UTF-8", "SJIS", "EUC-JP", - "GB2312", - //"GB18030", + //"GB2312", + "GB18030", "EUC-KR", "Big5", "EUC-TW", @@ -70,8 +70,8 @@ nsMBCSGroupProber::nsMBCSGroupProber(PRUint32 aLanguageFilter) } if (aLanguageFilter & NS_FILTER_CHINESE_SIMPLIFIED) { - mProbers[++i] = new nsGB2312Prober(aLanguageFilter == NS_FILTER_CHINESE_SIMPLIFIED); - //~mProbers[++i] = new nsGB18030Prober(aLanguageFilter == NS_FILTER_CHINESE_SIMPLIFIED); + //mProbers[++i] = new nsGB2312Prober(aLanguageFilter == NS_FILTER_CHINESE_SIMPLIFIED); + mProbers[++i] = new nsGB18030Prober(aLanguageFilter == NS_FILTER_CHINESE_SIMPLIFIED); } if (aLanguageFilter & NS_FILTER_KOREAN) { diff --git a/uchardet/uchardet/src/nsMBCSGroupProber.h b/uchardet/uchardet/src/nsMBCSGroupProber.h index 7a9aa1820..2dbd89290 100644 --- a/uchardet/uchardet/src/nsMBCSGroupProber.h +++ b/uchardet/uchardet/src/nsMBCSGroupProber.h @@ -42,8 +42,8 @@ #include "nsSJISProber.h" #include "nsUTF8Prober.h" #include "nsEUCJPProber.h" -#include "nsGB2312Prober.h" -//~#include "nsGB18030Prober.h" +//#include "nsGB2312Prober.h" +#include "nsGB18030Prober.h" #include "nsEUCKRProber.h" #include "nsBig5Prober.h" #include "nsEUCTWProber.h" diff --git a/uchardet/uchardet/src/nsMBCSSM.cpp b/uchardet/uchardet/src/nsMBCSSM.cpp index 814983ea8..61dd35bf6 100644 --- a/uchardet/uchardet/src/nsMBCSSM.cpp +++ b/uchardet/uchardet/src/nsMBCSSM.cpp @@ -262,7 +262,7 @@ const SMModel EUCTWSMModel = { // GB-2312 - +#if 0 static PRUint32 GB2312_cls [ 256 / 8 ] = { //PCK4BITS(0,1,1,1,1,1,1,1), // 00 - 07 PCK4BITS(1,1,1,1,1,1,1,1), // 00 - 07 @@ -314,6 +314,7 @@ const SMModel GB2312SMModel = { GB2312CharLenTable, "GB2312", }; +#endif // GB-18030