Buffer overflow
It turns out that this was fixed in a newer version of xnedit and that fix also works for nedit. I still think the underlying issue is in libXt but this fix works and that's what matters. The attached patch fixes the issue for nedit. The suggestions I made in my initial bug report should be ignored. Credit goes to Olaf Wintermann for the fix in xnedit that this patch is based on.
Related: Link to xnedit bug report
Can't enter numbers on numeric keypad
Patch against 5.7 Master 2020-11-05.
Patch against 5.7 Master 2020-11-05.
See https://sourceforge.net/p/nedit/patches/184/ for current version of patch
Visible tab stops (tab/space character screen representation)
Patch against 5.7 release.
Patch against 5.7 release.
I have started a patch for Nedit 5.6 that changes the screen representation of the tab (\t) and space ( ) characters to » (char 187) and (char 183) respectively. Here is a summary of the current changes (hard coded); textBuf.c; ~l43: #define VISIBLE_TAB_STOPS_PATCH #ifdef VISIBLE_TAB_STOPS_PATCH #define VISIBLE_TAB_STOPS_PATCH_TAB_REPLACE_FIRST_CHARACTER_ONLY #define VISIBLE_TAB_STOPS_PATCH_TAB_REPLACEMENT_CHAR (char)187 /* '»' default: ' ' */ #define VISIBLE_TAB_STOPS_PATCH_SPACE_REPLACEMENT_CHAR...
A problem with this method is that the tab character highlight gets overridden by the selection background colour while text is selected. This is an issue when selecting a section of text at a specific indentation level.
This is the file that has the issue. It's a log generated by mplayer which uses 0x0a to separate normal lines and 0x0d when it outputs the audio and video frames to terminal, so the lines don't advance.
This is the file that has the issue. It's a log generated by mplayer which uses 0x0a to separate normal lines and 0x0d when it outputs the audio and video frames to terminal, so the lines don't advance.
weird-newline.txt does not have the issue, new file below.
md5 1eb6e4723671a653bb6546434b8f4f0e weird-newline.txt
Detect strange newlines in certain files
Hi TK Soh, thanks for your analysis. I recommend implementing your version (TK#1; nedit-tab-indent-tksoh-08072020.diff); it provides the core patch functionality with minimum behavioural changes to the original.
Issue was caused by the application code sending signals to the nedit process when it was not expecting it. caused it to segfault.
macro hangs when run multiple times
@tringali, after re-reading your suggestion. i can say that i think yhe idea of: xnedit -> nedit-classic NG -> nedit makes sense to me and avoids most confusions since it makes it clear that classic is a continuation of the motif lineage while NG is a feature for feature port to create a new version
@tringali, after re-reading your suggestion. i can say that i think yhe idea of: xnedit -> nedit-classic NG -> nedit makes sense to me and avoids most confusions since it makes it clear that classic is a continuation of the motif lineage while NG is a feature for feature port yo create a new version
@efa, neditNG supports all platforms which Qt supports. this is at a minimum, Windows, Linux, and macOS. but in practice most unix-like OSes as well, including various BSDs. it's a highly portable library, i think even a Haiku port works, LOL. @tringali, I am kind of of two minds about your suggestion. of course I love the idea of reinvigorating the base and Nedit community by getting a 6.0 release out. but my only concern is that xnedit and NG are on somewhat divergent paths from a common ancestor....
@efa, neditNG supports all platforms ehich Qt supports. this is at a minimum, Windows, Linux, and macOS. but in practice most unix-like OSes as well. iys a highly portable library, i think even a Haiku port works, LOL. @tringali, I am kind of of two minds about your suggestion. of course I love the idea of reinvigorating the base and Nedit community by getting a 6.0 release out. but my only concern is that xnedit and NG are on somewhat divergent paths from a common ancestor. what happens when NG...
It may be worth doing both. Getting xnedit into distros right now as a 6.0 seems like a good idea to me while we work on nedit-ng at either 7.0; or rename nedit to nedit-classic and give nedit-ng the full name.
I saw current NEdit support VMS, SGI, HP-UX, AIX, Solaris Did you plan to support these platform too with NEdit 6.0? At least macOS, Linux, Solaris, net/free/openBSD ?
I saw current NEdit support VMS, SGI, HP-UX, AIX, Solaris Did you plan to support these platform too with NEdit 6.0? At least macOS, Linux, Solatis, net/free/openBSD ?
@efa My efforts are towards Nedit-NG which after discussions with @tringali is planned to eventually become NEdit 6.0. (Life has been busy, but we'll get there). NG has many of the features xnedit has as it is a full port to Qt. The main differentiator is that xnedit has unicode support. I am intentionally not persuing that goal until after it is ready to be called "NEdit 6.0" as the goal of NG is to be a near perfect, drop in replacement for NEdit 5.x just with a modern UI and improvements under...
I saw in that fork there is continue developing, so it is really promising
I'm happy to. However, there are an unknown number of forks out there, and they should contact me directly.
join efforts with XNEdit, there Unicode, modern Open/Save dialog, Drag&Drop of tabs, antialiased text rendering
Hello kangwoosukeq! So two things. You are absolutely correct, this is definitely a buffer overflow. NEdit 5.x is now considered to be "legacy" and has no planned active development going forward. The good news is that NEdit-NG https://github.com/eteran/nedit-ng/ is going to be officially considered NEdit 6.0 at some point (hopefully soon, but it's subject to the amount of time I can dedicate to it and for the past several months, I have just been absolutely swamped). NG is is in a very workable...
potential buffer overflow in server_common.c
Hi, I see it is possible to interpret markdown files using vim. Is it possible to do the same with nedit ? Regards. Xuo.
Syntax highlighting for Markdown
The fork XNEdit supports UTF-8, UTF-16 LE/BE, UTF-32 LE/BE, and all ISO-8859 encodings (not only latin-1). I use it as my default text editor in my arch linux installation.
Which version supports UTF-8? And does it still support Latin-1?
Is there a particular reason you do not want to switch to a version of nedit actually supporting utf-8? I do not see a fix coming for this version in any future.
If you want nedit with utf support, use my fork XNEdit.
Dear developers, it's 2021 year now, and ALL linux distros use UTF locales. Even "English" locale is en_US.UTF-8 in now days. PLEASE-PLEASE-PLEASE, add an utf support into your nirvana :) editor!
Oops sorry I forgot about the shift! If I do ctrl-shift-v it works correctly: abcdefg abaaacdefg abaaacdefg abaaacdefg abcdefg
It works perfectly for me: mkdir -p /home/fdipvval/CLN16FFC/sc7p5mcpp96p_cln16fcll001/tool_data/correlation/results/sc7p5mcpp96p_cln16fcll001_1.04.04/msta_debug_1_64_2/work/sc7p5mcpp96p_base_svt_c20/PffgnpV0450Tm20Ecbest_CCbest_T_minM0pct/ touch /home/fdipvval/CLN16FFC/sc7p5mcpp96p_cln16fcll001/tool_data/correlation/results/sc7p5mcpp96p_cln16fcll001_1.04.04/msta_debug_1_64_2/work/sc7p5mcpp96p_base_svt_c20/PffgnpV0450Tm20Ecbest_CCbest_T_minM0pct/msta_cmp_summary.lvf_AAE_1.04.04.1.report file -> open,...
That's normal Paste (without SHIFT), right?
That's funny, this is what I get with locale en_US.UTR-8: abcdefgh abaaa aaa aaacdefgh abcdefgh abcdefgh abcdefgh abcdefgh
Hi, In Nedit 5.7 if I go down in directory structure the full path in top field 'Directory' is being changed. So, I am not able to select the file I need. For example from opened file: /home/fdipvval/CLN16FFC/sc7p5mcpp96p_cln16fcll001/tool_data/correlation/results/sc7p5mcpp96p_cln16fcll001_1.04.04/msta_debug_1_64_2/work/sc7p5mcpp96p_base_svt_c20/PffgnpV0450Tm20Ecbest_CCbest_T_minM0pct/msta_cmp_summary.lvf_AAE_1.04.04.1.report in this case the full path in field "Directory" is changed to "/home/fdipvval/C/"...
$ nedit -version NEdit 5.7 Jan 14, 2017 Built on: Linux, x86-64, GNU C Built at: Jan 17 2021, 02:16:15 With Motif: (Untested) 2.3.8 [@(#)Motif Version 2.3.8] Running Motif: 2.3 [unknown] Server: The X.Org Foundation 12010000 Visual: 24-bit TrueColor (ID 0x21, Default) Locale: de_DE
@Amiga Do you know if this is with Nedit6 or the classic branch?
Better example: Insert aaa aaa aaa columnar into abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh abcdefgh you obtain: abcdefgh abaaacdefgh abaaacdefgh abaaacdefgh ab cdefgh abcdefgh
You are right. The example was not good. But if you imagine it would be a good example, the effect would still be that a trailing line is affected that should not be affected in my opinion.
Add a carriage return to the third line, then copy the three lines AND the fourth line. Place the cursor at the beginning of the second line and ctrl-v and it works as you expect (you don't need to shift-ctrl-v).
Paste Column affects the trailing line
Umlauts in search requesters
See nedit-ng, a Qt port of NEdit: https://github.com/eteran/nedit-ng
I worked some days with ibus deinstalled and so far it has solved my problem. Thanks a lot for your remark!
I can confirm that my Debian Bullseye has ibus: $ dpkg --list ibus .... ii ibus 1.5.23-2 amd64 Intelligent Input Bus - core whereas my Debian Buster has no ibus installed: $ dpkg --list ibus dpkg-query: no packages found matching ibus I will go to uninstall 'ibus' and check whether the problem goes away.
Dear Amiga Lemming, I had something similar recently (though Ubuntu 18.0 here), and could pin point it to the fact, that the ibus package was installed. That got in as a dependency of the Zoom client package. Could you check, if this package is installed in your system and if possible remove it again. HTH, Bert
NEdit locks input from time to time
Hi, I'm using NEdit version NEDIT-NG-START-3-g3f9b730 with a french keyboard. The key '-' can have 3 functionalities : hit '-' => - sign hit 'shift+-' => 6 sign hit 'AltGraph+-' => | sign The bindkeys 'Ctrl+6' is supposed to set 'UPPERCASE'. But when I hit 'Ctrl+-', I decrease the font size. If I hit 'Ctrl+Shit+-', the I set 'UPPERCASE'. I can't set 'lowercase', except from the menu Edit => lowercase. How can I get the behavior of nedit-classic ? With nedit 5.7, it works the expected way, ie : Ctrl+-...
Merge in latest upstream nedit-ng
Hi, Thank you for the explanations. 1) Adding the 'new nedit' ncl executable in the PATH variable made the ncl executable to work without the need of 'make install'. 2) Using the "new nedit" executable made me lost my nedit-ng configuration (colors, font, ...). If I'm not wrong, they were located under $HOME/.config/nedit-ng/. Is it the one under $HOME/.nedit/nedit.rc which is used now ? Found the solution : now, it is located under $HOME/.config/nedit. I've copied the $HOME/.config/nedit-ng under...
Hi, Thank you for the explanations. 1) Adding the 'new nedit' ncl executable in the PATH variable made the ncl executable to work without the need of 'make install'. 2) Using the "new nedit" executable made me lost my nedit-ng configuration (colors, font, ...). If I'm not wrong, they were located under $HOME/.config/nedit-ng/. Is it the one under $HOME/.nedit/nedit.rc which is used now ? Found the solution : now, it is located under $HOME/.config/nedit. I've copied the $HOME/.config/nedit-ng under...
Hi, Thank you for the explanations. 1) Adding the 'new nedit' ncl executable in the PATH variable made the ncl executable to work without the need of 'make install'. 2) Using the "new nedit" executable made me lost my nedit-ng configuration (colors, font, ...). If I'm not wrong, they were located under $HOME/.config/nedit-ng/. Is it the one under $HOME/.nedit/nedit.rc which is used now ? Found the solution : now, it is located under $HOME/.config/nedit. I've copied the $HOME/.config/nedit-ng under...
Hi, Thank you for the explanations. 1) Adding the 'new nedit' ncl executable in the PATH variable made the ncl executable to work without the need of 'make install'. 2) Using the "new nedit" executable made me lost my nedit-ng configuration (colors, font, ...). If I'm not wrong, they were located under $HOME/.config/nedit-ng/. Is it the one under $HOME/.nedit/nedit.rc which is used now ? 3) The goal of this patch had been described here : https://sourceforge.net/p/nedit/feature-requests/134/. I think...
Hi Ericxuo! So the current version in git here is a mirror of nedit-ng (https://github.com/eteran/nedit-ng), which you have actually contributed to! (Thanks :-) !) The only differences between that version and the git version here are some small patches to rebrand it as "nedit 6.0" as NG is going to be the future "main version of nedit". So the address your issues: yes, the nc executable is now named ncl, this is almost certainly a choice from Scott Tringali to avoid a conflict with the nearly ubiquitous...
Hi Ericxuo! So the current version in git here is a mirror of nedit-ng (https://github.com/eteran/nedit-ng), which you have actually contributed to! (Thanks :-) !) The only differences between that version and the git version here are some small patches to rebrand it as "nedit 6.0" as NG is going to be the future "main version of nedit". So the address your issues: yes, the nc executable is now named ncl, this is almost certainly a choice from Scott Tringali to avoid a conflict with the nearly ubiquitous...
Hi Ericxuo! So the current version in git here is a mirror of nedit-ng (https://github.com/eteran/nedit-ng), which you have actually contributed to! (Thanks :-) !) The only differences between that version and the git version here are some small patches to rebrand it as "nedit 6.0" as NG is going to be the future "main version of nedit". So the address your issues: yes, the nc executable is now named ncl, this is almost certainly a choice from Scott Tringali to avoid a conflict with the nearly ubiquitous...
Hi Ericxuo! So the current version in git here is a mirror of nedit-ng (https://github.com/eteran/nedit-ng), which you have actually contributed to! The only differences between that version and the git version here are some small patches to rebrand it as "nedit 6.0" as NG is going to be the future "main version of nedit". So the address your issues: yes, the nc executable is now named ncl, this is almost certainly a choice from Scott Tringali to avoid a conflict with the nearly ubiquitous utility...
Hi, I've just downloaded the git version of nedit and : 1) the nc executable is not available under the build directory. nedit is there and a ncl executable that fails with an error when I launch it on the command line (ncl: The server process failed to start. Either the invoked program is missing, or you may have insufficient permissions to invoke the program.) 2) The great patch that TK Soh updated a few weeks ago (mp050226-V3-1-git-2ea66d9c.patch) does not work. For 1), could you tell me if I...
Hi, I've just downloaded the git version of nedit and : 1) the nc executable is not available under the build directory. nedit is there and a ncl executable that fails with an error when I launch it on the command line (ncl: The server process failed to start. Either the invoked program is missing, or you may have insufficient permissions to invoke the program.) 2) The great patch that TK Soh updated a few weeks ago (mp050226-V3-1-git-2ea66d9c.patch) does not work. For 1), could you tell me if I...
All that you need to know is already captured in this ticket. In fact, I too merely took the idea from vim, albeit a simplified version. Perhaps it'd be easier if you take a look at the nedit macro version of tagstack instead, since it's far more straightforward than the C code. In fact, at one point, I actually preferred to bundle the macro, instead of adding the function into the C code. Perhaps you want to consider that also. BTW, I think we should take this discussion back to NG's discussion...
You got it. I'll take a look at it sometime soon. Though I will probably reach out to you when it is close to ready to confirm that it works as intended since tags aren't a feature that I am a heavy user of :-)
@etaran coming to think about it again, I think it'd be better to let you take up the implementation work, as I have other commitments to attend to, so NG users will get to enjoy the feature very soon.
@eteran that's my plan too. Although things may change when we start working on the GUI
@tksoh My hope is that you'll be able to use a std::stack to make it MUCH easier ;-)
@eteran let me look into that. Actually c++ might make things slightly easier.
@tksoh That's exactly what I was thinking. Since it's a port of your patch efforts, you can take the lead on this effort if you like. I'll be more than happy to help though, especially regarding how the Qt code factors in if you need it.
Thanks for your support! It's actually not a huge feature to add motif support. I'd be borrowing like 90% of the code from the Trolltech team's efforts ;-). But... it's certainly low priority as well since as you said, most users seem to prefer more modern looks. So, it may work its way in there, but I'm in no rush to make it happen. It may end up being more of an easter egg kinda feature :-P.
Hi Evan, Thank you for your work on Nedit-Ng. I tried it and found it to be a very capable editor. However, my work is focused on .NET so I have to stick to Visual Studio (sometimes I use Notepad++ for quick note-taking). If adding MOTIF look to Nedit-ng is a significant amount of work, may I suggest you rethink this feature as most people (except me) seem to hate the classic Nedit look (from reviews I read on the internet)? Anyways, I am amazed by the work you are willing to put into this editor...
Perhaps we can start by porting the current implementation into NG, and then work on the GUI along the way as further enhancement?
@tksok nice! it sounds like it works perfectly as one would expect. So regarding GUI/minimalist. My personal opinion is that it's ok to introduce new features with minimalist GUIs because we can always add a nice GUI for the feature after it's in. I definitely think this feature would make a nice addition to NG.
I don't have a strong opinion where the final repository is hosted. I have a strong opinion, how the history should look like. And both repos fail miserable here. There were mistakes on both sides in the past, but for a united future, the history should be the first step to be correct here.
First I created a replace for you second but last commit (I skipped your initial commit) with git replace and let it point to the REL-5.6 tag. Second, rI ran git filter-branch, this changed all the commits. Its not perfect, as in the source package were already files missing, which existed in Git. the merge was then done again, though I needed to handle many delete conflicts, because of the source → src rename. Its still not perfect, but at least something for the discussion.
Scott originally suggested making a GUI for it. Back then, I wanted to keep it minimalist, and let the menu do the work, since that makes the patch a lot easier to maintain not having to worry about all the corner cases. But perhaps something to think about if we are to port it into nedit-ng.
On your questions: when you 'pop' the stack, it will bring up the document/window, and jump to the original position and select the text where the Ctrl-D was pressed, as long as the document is still opened. when a document is modified, the tagstack data are updated to adjust to the changes. Just like the built-in bookmarks. Even if you insert something within "world", say "wo .... rld", it will still jump back and select "wo .... rld".
The latest update of this patch can be found on github: https://github.com/tksoh/nedit-git/commits/save-restore-edit-session
@tksoh part of the "plan" that Scott and I have discussed is to basically rebrand nedit-ng as "nedit 6.0" (My intention is to do one last release as nedit-ng very soon since I there has been a lot of small fixes since the last one, and then officially pivot to nedit-6.0) So at the very least, having the releases mirrored here may be the best way to maintain version continuity with users and distro packagers. From an ubuntu package point of view, they may just say "oh, there's a new version upstream...
I am not against pulling NG's commits back to nedit classic's repo per se, but I am wondering what compelling purposes it would serve, other than maintaining the historical continuity. After all, at this point, the NG is pretty much a complete rewrite of nedit -- C++/Qt vs C89/Motif. There are about 20 forks of nedit-ng on github, although most are not really active AFAICT, the impact should be considered too. And not to mention the number of local clones out there we are not aware of. IMHO, having...
@Akshay Chavan I am looking into using code from here to give nedit-ng an OPTIONAL classic motif look: https://github.com/qt/qtstyleplugins/blob/master/src/plugins/styles/motif/qmotifstyle.cpp It isn't perfect yet, and in particular has some bugs regarding icon menus, but it's pretty close and can serve as a good baseline.
@lebert can you explain how you made this branch git wise? Do you think it's even possible to adjust for example, my upstream git to have a similar "full history"? Are you basically forking nedit, and then just applying all my changes on top of it?
@tksoh I am intrigued by this patch, and think it is a good candidate for porting to nedit-ng, but have a few questions :-). you said that unlike bookmarks, it is "cross-window", I assume that means that it will activate the appropriate window if you moved away since? Bookmarks have a mechanism to seemlessly move the bookmark if the text is edited after the bookmark is made. For example if your text buffer just has "Hello world" and you bookmark position 6, it points to the start of "world". if you...
@tksoh I am intrigued by this patch, and think it is a goodcandidate for porting to nedit-ng, but have a few questions :-). you said that unlike bookmarks, it is "cross-window", I assume that means that it will activate the appropriate window if you moved away since? Bookmarks have a mechanism to seemlessly move the bookmark if the text is edited after the bookmark is made. For example if your text buffer just has "Hello world" and you bookmark position 6, it points to the start of "world". if you...
FYI, this patch can found on the github branch below: https://github.com/tksoh/nedit-git/commits/tagstack
FYI, this patch now lives on the github branch: https://github.com/tksoh/nedit-git/tree/nedit-macro-IDE
I pushed a more sane merge to my fork into the master-ng branch: https://sourceforge.net/u/lebert/nedit/ci/master-ng/tree/
You raise some good points. I'm sure that Scott and I can figure out some satisfactory fix. One thing to note, is that the current plan is for my github repo to be the "main" repository going forward and for sourceforge to be synced up for releases. So my work will continue to have its git history going forward, it will just be located there. Also, yes, it was based on NEdit 5.6 sources. Evan
ng to 6.0, continued
Thanks for the info, though I personally will not miss it that much ;-)
Morning, I'm still in favor of any new start but I consider how this "merger" was done not acceptable. First, also Evan should have used a fork of the original NEdit sources and not start a new Git history with its fork. The reason is pretty simple: author attribution and it made it impossible to merge anything back (think of renaming source) . I've already raised this to the author of the UTF-8 fork (XNEdit?), which did the same. The back merger now did more or less the same, it completely removed...
@tksoh Qt used to have a built-in Motif theme, but I think they dropped that with Qt5 :-P
Hey guys. I just wanted to say how excited I am to work on this with you guys. The Qt port of NEdit has been a passion project of mine for a while now and I am really looking forward to working with the larger nedit community! I'm sure that my port isn't perfect, so please do submit issues as you find them and will do my best to get it all fixed up! @tksoh has already been great in this regard! Evan