wxmedit / wxmedit Goto Github PK
View Code? Open in Web Editor NEWwxMEdit, a Cross-platform Text/Hex Editor, an improved version of MadEdit
Home Page: https://wxmedit.github.io/
License: GNU General Public License v3.0
wxMEdit, a Cross-platform Text/Hex Editor, an improved version of MadEdit
Home Page: https://wxmedit.github.io/
License: GNU General Public License v3.0
================================== wxMEdit v3.2 ================================== About: ----- wxMEdit is a cross-platform Text/Hex Editor written in C++ & wxWidgets. wxMEdit is an improved version of MadEdit which has been discontinued. wxMEdit supports many useful functions, e.g. Bookmark, Syntax Highlightings, Word Wraps, Encodings, Column/Hex Modes, Updates checking. In HexMode, wxMEdit can open large files which size is up to 32GB (INT_MAX*16). Important Note: -------------- wxMEdit 3.2 changed some keyboard shortcuts, see https://github.com/wxMEdit/wxMEdit/wiki/Keyboard-shortcuts-change-in-wxMEdit-3.2 . Supported Platforms: ------------------- A. Linux, BSDes, macOS, OpenIndiana, other Unix-like OSes and Haiku OS (__WXGTK__): a. GNU C++ 3.x or higher OR clang++ 2.8 or higher: Required Tools and Libraries for building: 1. autoconf 2.63 or higher (optional) 2. automake 1.11.1 or higher (optional) 3. wxWidgets 2.8/3.0/3.2 with Unicode enabled 4. Boost 1.53.0 or higher 5. ICU4C 50 or higher 6. libcurl 7.15.5 or higher B. Windows / ReactOS / Wine (__WXMSW__): a. MinGW/MinGW-w64 GNU C++ 3.x or higher: Required Tools and Libraries for building: 1. Bakefile 0.2.9~0.2.11 2. wxWidgets 2.8/3.0/3.2 with Unicode enabled 3. Boost 1.53.0 or higher 4. ICU4C 50 or higher 5. libcurl 7.15.5 or higher b. Visual C++ 2005/2008/2010~2022 (by upgrading from 2008 solution and project files): Required Tools and Libraries for building: 1. Bakefile 0.2.9~0.2.11 2. wxWidgets 2.8/3.0/3.2 with Unicode enabled 3. Boost 1.53.0 or higher 4. ICU4C 50 or higher 5. libcurl 7.15.5 or higher NOTE: You can download Bakefile at: https://bakefile.org/#old-version Syntax files, Locale files and Settings: --------------------------------------- Syntax files: in the path $(wxMEditConfigPath)/syntax/ Locale files: in the path $(wxMEditConfigPath)/locale/ $(wxMEditConfigPath) are the one of below paths: 1. wxMEdit execution file directory under Windows and Unix-like OS. 2. $(HOME)/.wxmedit/ under Unix-like OS. 3. $(PREFIX)/share/wxmedit/ under Unix-like OS. 4. %APPDATA%\wxmedit\ under Windows accroding to settings. If wxMEdit does not find any files in those paths, wxMEdit can also execute standalone by using default settings. When quit wxMEdit, wxMEdit will save the settings to: 1. $(HOME)/.wxmedit/wxmedit.cfg under Unix-like OS. 2. %APPDATA%\wxmedit\ or $(wxMEdit execution file directory)/wxmedit.cfg under Windows accroding to settings. And FontWidth.dat will also be saved to the same path. FontWidth.dat is Cache of Font-Width-Data, it can speed-up wxMEdit a lot. ChangeLog: ---------- wxMEdit v3.2: 1. added new feature: show file size in human readable format. 2. added a option that always use certain encoding to open files. 3. added GTK+ 3 and Wayland support. 4. added High DPI supoport under Windows. 5. redisigned the icons by jerome KASPER <neon.king.fr[at]gmail.com>. 6. changed some keyboard shortcuts, see https://github.com/wxMEdit/wxMEdit/wiki/Keyboard-shortcuts-change-in-wxMEdit-3.2 . 7. updated GB18030 support to GB18030-2022 standard. 8. updated Unicode block descriptions for Unicode 15.0 (require ICU 72 or higher). 9. fixed crash in text mode when a line exceed the limit of line length. 10. fixed crash when pressing OK button in "About wxMEdit" window. 11. fixed not responding when warping by window with text containing some tab characters. 12. fixed broken triple click behavior in wxMEdit 3.1. 13. fixed that the height of Information Window in MadEdit/wxMEdit (built with wxMSW-2.8) always reduce by 4. 14. fixed fonts and encodings not restored after restart. 15. fixed that cannot type characters via AltGr key. 16. fixed cursor and selection rendering under Linux. 17. fixed that IME candidate window doesn't follow the caret under Windows 10. 18. added French translation by jerome KASPER <neon.king.fr[at]gmail.com>. 19. updated Simplified Chinese translation. 20. other minor changes and bug fixes. wxMEdit v3.1: 1. added a killer feature: word boundary with Chinese/Japanese/Thai/Lao/Khmer and Burmese characters etc. 2. added a killer feature: word-wrap meet the Unicode® Standard Annex `#14`: Unicode Line Breaking Algorithm. 3. added new feature: column align. 4. added toolbar icon & shortcut for Inserting Ordered Sequence. 5. changed End-of-Line mark patterns. 6. updated Unicode block descriptions for Unicode 8.0 (require ICU 56 or higher). 7. fixed incorrect word boundary with non-English characters when selecting word. 8. fixed incorrect word-wrap with non-English letters. 9. fixed broken characters input with numpad in wxMEdit that built with wxWidgets-3.0 GTK2. 10. fixed incorrect behavior of when Ctrl-Backspace pressed at beginning of a text file OR at zero-width selection in column mode. 11. fixed that cannot select the whole word wraped in different lines by double-click. 12. fixed that triple-click cannot select a whole wrapped line. 13. fixed that files are not keep in hex mode after restart & restore. 14. fixed newline redundance when copying in regular text mode. 15. updated Spanish translation by Carlos Sánchez <carlos1994sanchez[at]gmail.com>. 16. updated Japanese translation by Tilt <tiltstr[at]gmail.com>. 17. updated Simplified Chinese translation. 18. updated Traditional Chinese translation by Vincent_TW. 19. updated Russian translation by Будинов Станислав <stabud[at]yandex.ru>. 20. other minor changes and bug fixes. wxMEdit v3.0: 1. added a killer feature: Inserting Ordered Sequence. 2. added new options to display/print bookmark independent of line number. 3. added a option whether enable dot matching new-line in regular expression. 4. added a feature that show searching message in status bar when Search/Replace Dialog is invisible. 5. improved bookmark appearance for displaying and printing. 6. improved Tab and EOF mark pattern, make it easy to distinguish Tab mark from space mark. 7. fixed that there are too few characters limited in a line with certain word wrap settings. 8. fixed that width of list items in Syntax Highlighting Settings Dialog are not updated on resizing. 9. fixed not responding when counting/replacing-all any zero-length assertions. 10. updated Unicode block descriptions for Unicode 7.0 (require ICU 54 or higher). 11. added German translation by Ronny Steiner <post[at]sirsteiner.de>. 12. added Polish translation by Adam Massalski <massaada[at]wp.pl>. 13. updated Simplified Chinese translation. 14. updated Spanish translation by Carlos Sánchez <carlos1994sanchez[at]gmail.com>. 15. updated Japanese translation by Tilt <tiltstr[at]gmail.com>. 16. other minor changes and bug fixes. See file ChangeLog for more changes. License: ------- wxMEdit is released under the GNU General Public License Version 3 or (at your option) any later version. Authors: ------ JiaYanwei <wxmedit[at]gmail.com> (current maintainer of wxMEdit) jerome KASPER <neon.king.fr[at]gmail.com> (current maintainer of wxMEdit) Alston Chen <madedit[at]gmail.com> (creator of MadEdit) Links: ----- wxMEdit: https://wxmedit.github.io/ MadEdit: https://sourceforge.net/projects/madedit/ wxWidgets: https://www.wxwidgets.org/ Boost: https://www.boost.org/ ICU: https://icu.unicode.org/ Bakefile: https://bakefile.org/#old-version Code::Blocks: https://www.codeblocks.org/ wxSmith: https://wiki.codeblocks.org/index.php?title=WxSmith_plugin cURL: https://curl.se/ JLH fonts: https://jlhfonts.blogspot.com/ VC-LTL: https://github.com/Chuyu-Team/VC-LTL5 YY-Thunks: https://github.com/Chuyu-Team/YY-Thunks
Switch to wxSmith RAD tool.
And redesign the dialogs to fix the bug of MadEdit/wxMEdit that font size and controls layout of dialogs were inappropriate. e.g. :
The recent lists:
Problem of them:
e.g.:
Edit a file with MadEdit/wxMEdit built with vc2010.
Then delete a character from a line which contains two or more characters.
Then the editor crash.
CP936, CP949, CP950 should support '\xFF' converting to Unicode.
Test program on Windows7:
#include <windows.h>
#include <iostream>
int main()
{
WCHAR dest[8] = {0,0,0,0,0,0,0,0};
DWORD n = MultiByteToWideChar(936, 0, "\xFF", -1, NULL, 0);
MultiByteToWideChar(936, 0, "\xFF", -1, dest, 8);
std::cout << "936 " << n << " " << std::hex << dest[0] << std::endl;
n = MultiByteToWideChar(949, 0, "\xFF", -1, NULL, 0);
MultiByteToWideChar(949, 0, "\xFF", -1, dest, 8);
std::cout << "949 " << n << " " << std::hex << dest[0] << std::endl;
n = MultiByteToWideChar(950, 0, "\xFF", -1, NULL, 0);
MultiByteToWideChar(950, 0, "\xFF", -1, dest, 8);
std::cout << "950 " << n << " " << std::hex << dest[0] << std::endl;
return 0;
}
the result:
936 2 f8f5
949 2 f8f7
950 2 f8f8
The Encoding "EUC-JP" of wxMEdit/MadEdit run under UNIX like OS were quite different from under Windows. Under windows it was DOUBLE-byte encoding "CP20932" with single-byte 0xA0 and 0xFF mapping changed, but under Linux it was TRIPLE-byte encoding.
e.g.:
characters: U+00FA(ú) and U+00FC(ü)
CP20932: "\xAB\x62" and "\xAB\x64"
EUC-JP: "\x8F\xAB\xE2" and "\x8F\xAB\xE4"
while MadEdit/wxMEdit treat them as DOUBLE-byte encoding even under UNIX like OS,and both the characters will be converted to "\x8F\xAB" under UNIX like OS.
The title "wxMEdit Print Privew" and the status bar "Page of n / s" have no translation yet.
Chinese translation for "Words" of Word Count Dialog should be "词数"/"詞數".
Since wxMEdit count Chinese words rather than Chinese characters if the ICU library version >= 50.
e.g.:
Edit "汉字中文字符"/"漢字中文字符" with wxMEdit/ICU 52.
The count of words is 3, for there are 3 words(词/詞): "汉字"/"漢字", "中文", "字符".
While edit the same Chinese text with wxMEdit/ICU 44.
The count of words is 6, for there are 6 characters(字).
And we can still condisder it means 6 words(词/詞), but the word segmentation is not good enough :(.
CP932(Windows-31J) missed converting some Single-bytes to Unicode.
Test program on Windows7:
#include <windows.h>
#include <iostream>
void win_mbtou(UINT cp, const char* src)
{
WCHAR dest[8] = {0,0,0,0,0,0,0,0};
DWORD n = MultiByteToWideChar(cp, 0, src, -1, NULL, 0);
MultiByteToWideChar(cp, 0, src, -1, dest, 8);
std::cout << cp << " " << n << " " << std::hex << dest[0] << std::endl;
std::cout << std::dec;
}
int main()
{
win_mbtou(932, "\xA0");
win_mbtou(932, "\xFD");
win_mbtou(932, "\xFE");
win_mbtou(932, "\xFF");
return 0;
}
the result:
932 2 f8f0
932 2 f8f1
932 2 f8f2
932 2 f8f3
Case-insensitive searching '\u00c0'('À') matches '\u0020'(space) under Windows either Chinese-Simplified or Chinese-Traditional Edition.
These are many other characters meet the same problem.
Hi, Thank you for your bug fix!
I have a suggestion about the project. Why not cooperate/combine with other similar projects?
There exist some user's patches to make it usable in recent compile environment in the original project web site and others in the internet. For example, here(https://code.google.com/p/madedit-pv), and yours(http://code.google.com/p/wxmedit). The user would be confused if there exist similar projects. It's also waste of time for a bug be solved multiple times (such as the ClientBitmap bug).
madedit-pv exist for a while and includes several useful features, such as hight-light of key words. It would be nice if both of the projects can sync to create a great editor.
Thanks!
reported by zaneto[at]users.sf.net.
https://sourceforge.net/p/madedit/discussion/421172/thread/033c9f33/
Version: 0.2.9.1
Repro steps:
- In "Tools" - "Options" - "Edit", set the value of "Max line length before
Line-Wrap" to "999999999".- Press "OK" button.
- Close MadEdit.
- Restart MadEdit.
Expected result:
MadEdit is restarted.Actual result:
An error will pop up, signifying memory access failure (The memory could not be "written"). MadEdit cannot be started.
IsUTF8()/IsTextUTF8() of wxMEdit/MadEdit cannot distinguish invalid encoded bytes:
Case conversion of some characters are incorrect.
e.g. U+A758 / U+A759 on linux, U+10414 / U+1043C and other non-bmp letters on windows.
Case-insensitive searching and sorting has the same problem.
https://sourceforge.net/p/madedit/bugs/14/
Hex-replacing any not-empty string with empty, if found, "Replace All" will cause program crash.
Some characters were converted incorrectly from Unicode to Single-byte Encoding (U+00D7 should be 0xAA in ISO-8859-8).
It made test case "test_singlebyte_conv()" failed.
See also 4b30f50.
Some system encoding (e.g. Windows-1258) can't be detected for wxFontEncoding doesn't support it.
Some characters were converted incorrectly between Unicode and Single-byte Encoding (e.g. 0xA1 in ISO-8859-7 should be U+2018).
It made test case "test_singlebyte_conv()" failed.
See also db1ba03.
ICU Encoding Detector detect UTF-8 is not strict enough as UTF-8 checker.
If the UTF-8 checker detect a file is not UTF-8, the file should not be detected as UTF-8 text even if ICU Encoding Detector detect it as UTF-8 text.
This is a sub-issue of #15 .
Merge the patches of MadEdit 0.3.0 by Gospodin Gurov (aka gogo) : https://sourceforge.net/p/madedit/discussion/421172/thread/48278865/ .
The line number font and status bar font of MadEdit/wxMEdit was garbled under Mac OS X.
Some characters were converted incorrectly from Unicode to Double-byte Encoding (e.g. U+2160 should be "\x87\x54" in Windows-31J, U+256D should be "\xA2\x7E" in CP950).
It made test case "test_doublebyte_conv()" failed.
See also 45d781a
This is a sub-issue of #15 .
Merge the patches of https://aur.archlinux.org/packages/madedit/ and https://aur.archlinux.org/packages/madedit-svn/ .
Most of C0-characters should be mapped to graph characters if syntax is ASCII-Art.
e.g.
0x03, 0x04, 0x05, 0x06 should be mapped to the heart, club, diamond, spade characters:
♥♦♣♠
Improve Search Dialog and Replace Dialog:
Search dialog would be nice to have in a main frame, like in browsers.
https://sourceforge.net/p/madedit/bugs/15/
https://sourceforge.net/p/madedit/bugs/20/
MadEdit / wxMEdit f759f1e or before based on wxGTK on UNIX-like OS will crash when create a second tab, either by opening two / more files at the start time or opening a second new file / existed file.
then the editor crashs.
There are 38 revisions of svn://svn.code.sf.net/p/madedit/code/ should be omited when importing:
All these were unused.
e.g. "⊂" , "…" etc.
Switch to bakefile building system.
Strictly speaking, this is the bug of wxMSW-2.8/wxMSW-2.6:
http://trac.wxwidgets.org/ticket/4373
To reproduce the bug:
The BUGGY-MODALLY-DIAGLOGs are:
All of them were in "Tools" menu.
like #5
Hex-searching a string only contain space(s) and/or tab(s), whichever of "Find Next", "Find Previous", "Replace" or "Replace All" will cause program crash.
And these detection problems made the test cases failure that were enabled in 33e7514 .
Desktop icon is fuzziness in Dolphin of KDE4 with 256 pixel icon view or desktop tips of Xfce4.
Cannot detect encoding of UTF-32BE/LE file by IsTextUTF32BE/LE() of wxMEdit/MadEdit if the file is less than 16 bytes.
This is a sub-issue of #15 .
Merge the patches in ftp://ftp.freebsd.org/pub/FreeBSD/ports/ports/ports.tar.gz .
Selection next word shoud select following spaces, as the behavior of SciTE/UltraEdit.
This also affect the behavior of deletion next word (#47).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.