Notepad++ v8.6 Release Candidate
-
@donho Here is a possible regression - When I use the arrow keys to move the cursor Notepad++ is acting like it’s in column mode though the status line says I’m not. Maybe I’m activating multi-edit, whatever that is?
For repro I’m using v8.6 (64-bit) portable but I also saw the same thing in v8.6 x32 installed and v8.6 x32 portable.
1 1 1 1 2 3 3 3 3 4 abc xyz abc xyz abc xyz abc xyz
- I put the cursor after the first
abc
and then while holding Alt+Shift I did down arrow three time. So far it looks good with a 4x0 column according to the status line. - I then did an up-arrow. The status line says I’m out of column mode but the 4-line high “cursor” moved up. I did up-arrow a few more times and then started doing right arrow. The cursor remained at 4 lines but as I moved right the cursor fragments. I think I lost one as I see three flashing.
Esc exits the multi-cursor mode.
With v8.5.8 the first part works to create a 4x0 column. When I do the first up-arrow it exits column mode and has a single cursor, which is what I am used to.
Notepad++ v8.6 (64-bit)
Build time : Nov 18 2023 - 00:43:50
Path : c:\npp\npp860-RC1\notepad++.exe
Command Line :
Admin mode : OFF
Local Conf mode : ON
Cloud Config : OFF
OS Name : Windows 11 Home (64-bit)
OS Version : 22H2
OS Build : 22621.2715
Current ANSI codepage : 1252
Plugins :
mimeTools (2.9)
NppConverter (4.5)
NppExport (0.4) - I put the cursor after the first
-
@donho Here’s another column mode related regression that does not happen in v8.5.8
I was looking over some old notes at a series of JPEG file names and their sizes. I saw:
768
NBSB
×NBSB
1024
768NBSB
×NBSB
1024
768NBSB
×NBSB
1024
768NBSB
×NBSB
1024I did not need the
NBSB
and so did a column select of the firstNBSB
in all four lines and hitDel
. TheNBSP
were replaced withxA0
. It is a UTF-8 encoded text file meaning it’s encoded as\xC2\xA0
I did not test usingDel
with other multi-byte Unicode sequences.Using backspace to column delete the
NBSP
is okay. UsingDel
in non-column mode to delete theNBSP
is ok.In the example image below I column-deleted the first
NBSP
on the first two lines. -
@xomx said in Notepad++ v8.6 Release Candidate:
Omitted intentionally?
https://github.com/notepad-plus-plus/wingup/pull/48It’s by forgetting. Sorry about that.
It will be in v8.6, or in v8.6.1, I’ll see.@mkupper said in Notepad++ v8.6 Release Candidate:
I also noticed that the plugins admin does not include Columns++. Maybe @Coises just missed the cutoff on the plugins list ?
Then it will be in v8.6.1
-
With v8.5.8 the first part works to create a 4x0 column. When I do the first up-arrow it exits column mode and has a single cursor, which is what I am used to.
It’s a regression, but a minor one.
Could you create an issue on GitHub and ping me please?
It’ll be fixed in the next version (v8.6.1). -
@mkupper said in Notepad++ v8.6 Release Candidate:
I did not need the NBSB and so did a column select of the first NBSB in all four lines and hit Del. The NBSP were replaced with xA0. It is a UTF-8 encoded text file meaning it’s encoded as \xC2\xA0 I did not test using Del with other multi-byte Unicode sequences.
I cannot reproduce the issue you report at all.
Is anyone here can reproduce it?OK, I misunderstand it.
What’s the Hex value of NBSB? So I can try to reproduce it. -
@mkupper said in Notepad++ v8.6 Release Candidate:
With v8.5.8 the first part works to create a 4x0 column. When I do the first up-arrow it exits column mode and has a single cursor, which is what I am used to.
But this is NOT true with 8.5.8 and BetterMultiselection plugin installed and enabled. With that, the first up-arrow keeps the multiple carets; just moving them (what the “up” is telling it to do). It takes an Esc press to get back to one caret.
I’m not saying that the plugin is doing it totally correctly, but, it may be what users of the plugin have gotten used to as the “correct” behavior in that situation.
-
@donho said in Notepad++ v8.6 Release Candidate:
Is anyone here can reproduce it?
Yes, I can reproduce (though at first I couldn’t) – maybe like me, @donho did a 4x1 column selection instead of 4x0 column selection:
Step 1: column selection, showing it’s one character wide:
Step 2: hit
Del/Delete
key: it deletes the whole NBSP, without leaving
Confirm: View > Show Symbol is showing all characters, so it’s not just hiding something:
Original Conclusion: thought I could not reproduce. But as I was re-reading @mkupper’s post, I wondered if I misinterpreted.
Undo, so it’s back to the original
Then Step 1: do a 4x0 zero-width column selection
Step 2:
Del/Delete
=>
Confirmed the bug report. With a 0-width column selection, hitting
Del
before NBSP broke it into its constituent bytes and just deleted one byte rather than one character.Tried with some accented characters (2 bytes each) and then some smilies (with 3-4 bytes each):
Before:
After hittingDel
once:
So it’s not just NBSP. With a 0-width column selection, hitting
Del
when the next character is a multi-byte UTF-8 character causes it to delete only the first byte rather than the whole character. -
@donho said in Notepad++ v8.6 Release Candidate:
What’s the Hex value of NBSB? So I can try to reproduce it.
@mkupper’s
NBSB
was just a typo forNBSP
; see the right value in his screenshotNBSP
is the non-breaking space, atU+00A0
, which is UTF-8 encoded as the two bytesc2a0
. -
@PeterJones @mkupper
Please check the fix:
https://github.com/notepad-plus-plus/notepad-plus-plus/pull/14384 -
@donho ,
I first tried with the “Notepad++.MSVC.x64.Debug” artifact: I loaded my example file from yesterday, did the zero-width selection, and hit
Delete
, and that caused an MSVC assertion error:
… But as I was writing this reply, I realized that I probably don’t have everything set up right for DEBUG builds, so I thought I would try the RELEASE build:
When I run with the “Notepad++.MSVC.x64.Release” artifact, the zero-width column selection followed by
Del
works as expected on the multi-byte UTF-8 characters. So the fix looks good to me. But you should probably wait for @mkupper to confirm as well, because he might have a different sequence, which may or may not behave the same as my experiment. -
@PeterJones said in Notepad++ v8.6 Release Candidate:
I realized that I probably don’t have everything set up right for DEBUG builds
There is no special setup for running a Debug build, so you are set up correctly. :-)
The problem is: Someone at some time wrote some poor assertions, and now they just get in the way of things. OR…the assertions were good at the time written, but now other things have changed, and no one maintained the assertions, so now they aren’t so good. :-(
-
@PeterJones said in Notepad++ v8.6 Release Candidate:
I first tried with the “Notepad++.MSVC.x64.Debug” artifact: I loaded my example file from yesterday, did the zero-width selection, and hit Delete, and that caused an MSVC assertion error:
Could you share your example file here please?
-
@donho said in Notepad++ v8.6 Release Candidate:
Could you share your example file here please?
768 × 1024 768 × 1024 768 × 1024 768 × 1024 U+C0 À À U+C1 Á Á U+C2 Â Â U+C3 Ã Ã U+C4 Ä Ä U+C5 Å Å * ☺ `U+2640` SMILE ☺ * ☹ `U+2639` FROWN ☹ * 😃 `U+1F603` OPEN 😃 * 😉 `U+1F609` WINK 😉 * 😐 `U+1F610` NEUTRAL 😐 * 😜 `U+1F61C` TongueOut 😜 * 😲 `U+1F632` ASTONISHED 😲
update: the tabs and
NBSP
didn’t come through, so here it is base64-encoded using the MIME Tools plugin:NzY4wqDDl8KgMTAyNA0KNzY4wqDDl8KgMTAyNA0KNzY4wqDDl8KgMTAyNA0KNzY4wqDDl8KgMTAyNA0KVStDMAnDgAnDgA0KVStDMQnDgQnDgQ0KVStDMgnDggnDgg0KVStDMwnDgwnDgw0KVStDNAnDhAnDhA0KVStDNQnDhQnDhQ0KKiDimLogYFUrMjY0MGAgICAgICAgU01JTEUgICAgICAgIOKYug0KKiDimLkgYFUrMjYzOWAgICAgICAgRlJPV04gICAgICAg4pi5DQoqIPCfmIMgYFUrMUY2MDNgICAgICAgT1BFTiAgICAgICAg8J+Ygw0KKiDwn5iJIGBVKzFGNjA5YCAgICAgIFdJTksgICAgICAgIPCfmIkNCiog8J+YkCBgVSsxRjYxMGAgICAgICBORVVUUkFMICAgICDwn5iQDQoqIPCfmJwgYFUrMUY2MUNgICAgICAgVG9uZ3VlT3V0ICAg8J+YnA0KKiDwn5iyIGBVKzFGNjMyYCAgICAgIEFTVE9OSVNIRUQgIPCfmLINCg
-
@PeterJones said in Notepad++ v8.6 Release Candidate:
update: the tabs and NBSP didn’t come through, so here it is base64-encoded using the MIME Tools plugin:
Hmm… using debug built locally binary, with 0 length column mode selection in front of all special chars then DEL - no assertion.
Could you provide the accurate instructions to reproduce the assertion please?
-
@donho ,
I found the problem on that. When I got the assertion error, I was still using a corrupted version of my testfile that had some of the
NBSP
as a singlexA0
instead.I can also reproduce the error by pasting in this base64 and decoding it:
NzY4oMOXwqAxMDI0DQo3Njigw5fCoDEwMjQNCjc2OKDDl8KgMTAyNA0KNzY4oMOXwqAxMDI0DQpVK0MwCcOACcOADQpVK0MxCcOBCcOBDQpVK0MyCcOCCcOCDQpVK0MzCcODCcODDQpVK0M0CcOECcOEDQpVK0M1CcOFCcOFDQoqIOKYuiBgVSsyNjQwYCAgICAgICBTTUlMRSAgICAgICAg4pi6DQoqIOKYuSBgVSsyNjM5YCAgICAgICBGUk9XTiAgICAgICDimLkNCiog8J+YgyBgVSsxRjYwM2AgICAgICBPUEVOICAgICAgICDwn5iDDQoqIPCfmIkgYFUrMUY2MDlgICAgICAgV0lOSyAgICAgICAg8J+YiQ0KKiDwn5iQIGBVKzFGNjEwYCAgICAgIE5FVVRSQUwgICAgIPCfmJANCiog8J+YnCBgVSsxRjYxQ2AgICAgICBUb25ndWVPdXQgICDwn5icDQoqIPCfmLIgYFUrMUY2MzJgICAgICAgQVNUT05JU0hFRCAg8J+Ysg0K
So the error is unrelated to the column-delete, and instead related to the DEBUG-build’s handling of invalid UTF-8 sequences in certain unusual situations. (I don’t think it’s critical that a debug build has difficuly with invalid UTF-8. I verified that the v8.6-RC build and the RELEASE build on this PR don’t do anything unpleasant under the same circumstances. Unless you want to make the DEBUG build more robust against invalid UTF-8, I’d probably recommend not worrying about it.)
-
Thank you for the detail explanation.
I will do a RC2 immediately. -
-
Notepad++ v8.6 Release Candidate 2 is available here:
https://community.notepad-plus-plus.org/topic/25158/notepad-v8-6-release-candidate-2The regression of DEL is fixed in RC2.
@xomx
https://github.com/notepad-plus-plus/wingup/pull/48 is included. -