Sunday, January 8, 2023

GreenPad for NT 3.x (Build 20230108)

It is a very long time since last release with release notes post.

Repo: https://github.com/roytam1/rtoss/tree/master/GreenPad
Changes since 2011-04-29:

- [2013-10-12] [GreenPad] - added original FSS-UTF (dated 2 Sep 1992) (873faa0)
- [2014-01-15] [GreenPad] - update non-Unicode range to Unicode 6.3 (833c472)
- [2014-09-06] [GreenPad] kilib: Do auto-detection on 4-bytes files as well (d25ece1)
- [2014-11-10] [GreenPad] - Disable MLang UTF-7 detection - Add .lay "fq=<int>" entry for controlling font anti aliasing (3=no anti aliasing, 4=force anti aliasing) (41c4f52)
- [2021-12-13] [GreenPad] app: add getOSVer() (9b8682a)
- [2021-12-13] [GreenPad] try to restore status bar in NT 3.1 (0824021)
- [2021-12-14] [GreenPad] there is no GetTimeFormatA in NT 3.1 (03e2621)
- [2021-12-14] [GreenPad] early builds of common controls status bar is ANSI only (51f80aa)
- [2021-12-14] [GreenPad] editwing: check valid index before using it (dc7a2b9)
- [2021-12-14] [GreenPad] guard ANSI part with TARGET_VER==310 (7ab6c96)
- [2021-12-14] [GreenPad] add App::getOSBuild() (fd5f2de)
- [2021-12-14] [GreenPad] NT 3.50 with builds older than RTM use old statusbar control name as well. (0f7d34b)
- [2021-12-19] [GreenPad] set context menu position when invoked by menu key, from https://github.com/RamonUnch/GreenPad/commit/4ad5106dce04de021133b23f4efbb44f988c0ff5 (4e20628)
- [2021-12-23] [GreenPad] comment out usage of CreateStatusWindow (0286f67)
- [2021-12-23] [GreenPad] add API for checking old version of Common Control DLL (2d97c1c)
- [2021-12-23] [GreenPad] do cheap Unicode to ANSI conversion on early builds of Unicode StatusBar Common Control (ce283dd)
- [2021-12-23] [GreenPad] make StatusBar::SetText() no longer inlines, as it has complex logic now (89edf82)
- [2021-12-26] [GreenPad] fix half-width region for "byte" counting (effd8ee)
- [2021-12-26] [GreenPad] followup rev 0f7d34b9 as comctl32.dll version 3.50.711.1 uses new status bar control name (8d6e0df)
- [2021-12-27] [GreenPad] overhual App::osver() GetVersion-to-GetVersionEx emulation (bb3b11b)
- [2021-12-27] [GreenPad] rename old App::isNewShell() to App::isWin3later(), and new App::isNewShell() really detects NewShell-only APIs (afb2cca)
- [2021-12-27] [GreenPad] change most app().isNewShell() usage to App::isWin3later() (3701a58)
- [2021-12-27] [GreenPad] unfortunately NT 3.50.854 NewShell's comdlg32.dll is not capble to use OFN_EXPLORER (0e8d2e5)
- [2021-12-27] [GreenPad] add App::isWin32s() (9b23920)
- [2021-12-27] [GreenPad] check App::isWin32s() in StatusBar::Create() as win32s uses new status bar class name (3ecbbeb)
- [2021-12-27] [GreenPad] check App::isWin32s() in GpStBar::AutoResize() as GetTextExtentPoint32() is not working in win32s (8507c58)
- [2021-12-30] [GreenPad] update chardet auto-detect list (2bb46e6)
- [2021-12-30] [GreenPad] update non-Unicode range (12ef9fa)
- [2021-12-30] [GreenPad] change IsNonUnicodeRange() formatting (9d4ce8a)
- [2022-01-08] [GreenPad] comdlg: always try to use OFN_EXPLORER first, try old style one if fail (cbde6c2)
- [2022-01-08] {GreenPad] IMEManager: don't call GetKeyboardLayout() twice (737568b)
- [2022-01-08] [GreenPad] Win95 should use conv() here as well (188f35a)
- [2022-01-08] [GreenPad] comdlg: handle Cancel button properly (312f628)
- [2022-01-08] [GreenPad] statusbar: merge 2 CreateWindow() calls into 1 CreateWindowEx() call (fea428d)
- [2022-01-08] [GreenPad] dynamically load GetVersionExA() call (8c3c29c)
- [2022-01-09] [GreenPad] ugly-hack: rMBCS: handle invalid codepage by using GetACP() (5953ed4)
- [2022-01-09] [GreenPad] Win95 without GetVersionExA() (i.e. old beta builds) should use old GetTextExtentPoint() (91c8d76)
- [2022-01-09] [GreenPad] try to handle not-in-list codepage (2509948)
- [2022-01-09] [GreenPad] comdlg: handle ERROR_CALL_NOT_IMPLEMENTED as same as ERROR_INVALID_PARAMETER (e30c925)
- [2022-01-09] [GreenPad] fix GetVersionExA() return type (8d18167)
- [2022-01-09] [GreenPad] dynamically load GetKeyboardLayout() (from RamonUnch's fork) (fe25645)
- [2022-01-09] [GreenPad] comdlg: enable if/else block for OFN_EXPLORER again as old NT comdlg32 can't handle OFN_EXPLORER and don't set WinError correctly (755b2c9)
- [2022-01-09] [GreenPad] move invalid codepage detection to initiator (64bed32)
- [2022-01-09] [GreenPad] comdlg: ignore ErrCode == 0 as well (773edc2)
- [2022-01-09] [GreenPad] fix language setting of old file dialog as NT 3.10.4xx doesn't like default language setting of it (b9db879)
- [2022-01-09] [GreenPad] fix csi assignment, also force to use GetACP() if csi is zero. (aba0ed4)
- [2022-01-09] [GreenPad] add missing codepage indicator (86411be)
- [2022-01-10] [GreenPad] - rename App::isOldCommCtrl() to App::hasOldCommCtrl() - add App::hasScrollInfo() for dynamically using Get/SetScrollInfo() - add code to fixup broken build number in early 9x builds in App::osver() (d23f123)
- [2022-01-10] [GreenPad] dynamically load Get/SetScrollInfo(), and limit use for NT >= 3.51.944 and 9x > 4.00.225 from my own testing (0a7f994)
- [2022-01-10] [GreenPad] add vc2005 x64 configurations (199c012)
- [2022-01-11] [GreenPad] Get/SetScrollInfo() started working in win95 since 4.00.275 (4a20da4)
- [2022-01-12] [GreenPad] fix reopen dialog crash by unknown/invalid codepage (ade4022)
- [2022-01-14] [GreenPad] replace 3 lists with 1 #define for easier management (fdbd8d1)
- [2022-02-06] [GreenPad] disable chardet EUC-TW detection, EUC-TW is rarely used in wild and mis-detection rate is a bit high when handling Big5-UAO text. (942f5f8)
- [2022-03-09] [GreenPad] import from RamonUnch/GreenPad: Implement a proper WM_NCCALCSIZE message handler to limit the BitBlt region so that the scroll bar and the toolbar does not get distorted when resizing from the top/left (81f68705) (8f93db0)
- [2022-03-09] [GreenPad] load different filename of chardat.dll in different processor builds (03e1a8e)
- [2022-04-01] [GreenPad] sync actual drawing code changes from https://github.com/RamonUnch/GreenPad/commit/df35cc30b8418bebc71c82cd305377ff24c214df (b57e0df)
- [2022-04-06] [GreenPad] enlarge read buffer for faster file-reading (963eacd)
- [2022-04-06] [GreenPad] use smaller length for buffer enlargement, reduce chance of OOM (0e3da0a)
- [2022-04-14] [GreenPad] enlarge auto detection sample size from 16KB to 256KB (9336a21)
- [2022-12-23] [GreenPad] check `STATUSCLASSNAME` before use, also change cheap conversion to ANSI to WC2MB for status bar message (83603f4)
- [2022-12-23] [GreenPad] also save return value from WC2MB in StringOut for final output (f1937cb)
- [2022-12-23] [GreenPad] ported "Small adjustments to WM_NCCALCSIZE handling to take in account actual system metrics and the presence of horizontal scroll bar / statusbar" (13406f2)
- [2022-12-23] [GreenPad] ported "Minor drawing fixes" with logic-rewritten (3b12091)
- [2022-12-23] [GreenPad] ported "Improve parsing for latin languages" (66749ae)
- [2022-12-23] [GreenPad] only detect UTF-16/32 if file size is even number (fe1f760)
- [2022-12-23] [GreenPad] add and make use of NZero (e0db4e2)
- [2022-12-23] [GreenPad] ported "Take SPI_GETWHEELSCROLLLINES parameter in account" (2aab302)
- [2022-12-23] [GreenPad] port "Properly accumulate wheel delta" (753df4e)
- [2022-12-23] [GreenPad] port "Spacing Modifier Letters (0x02b0-0x02ff) should also be considered be part of base Latin characters." with some logic fixed (08603be)
- [2022-12-23] [GreenPad] ported "Put wheel delta accumulator inside ViewImpl" (383c0a4)
- [2022-12-23] [GreenPad] ported "Scroll fixes" and follow-up fixes (d74e39e)
- [2022-12-23] [GreenPad] turn `MySetScrollInfo` and `MyGetScrollInfo` into function pointers to avoid running condition checking everytime (e2b6b93)
- [2022-12-23] [GreenPad] don't try to load chardet if it is not found in GreenPad's directory (1d44ccc)
- [2022-12-27] [GreenPad] pass total size to AutoDetection function instead (c245a92)
- [2022-12-30] [GreenPad] follow-up rev 66749ae, sync size of `map_` to `letter_type` (121c7b1)
- [2022-12-30] Revert "[GreenPad] turn `MySetScrollInfo` and `MyGetScrollInfo` into function pointers to avoid running condition checking everytime" (c026084)
- [2022-12-31] [GreenPad] rewrite MySetScrollInfo and MyGetScrollInfo to only check condition once, and put fallback parts in its own functions. (f8235ef)
- [2023-01-01] [GreenPad] call `InitCommonControls` dynamically, so GreenPad-Win32s can work down to Win32s 1.15 (without status bar, and with some system message box for not finding comctl32.dll) (61bb7b6)
- [2023-01-01] [GreenPad] move DLL handle of comctl32 out of `InitModule` and only free it before program termination, fix issue of win32s status bar not creating. (b5c4742)
- [2023-01-02] [GreenPad] kilib/app: export `isCommCtrlAvailable` (d9e1e30)
- [2023-01-02] [GreenPad] make use of `isCommCtrlAvailable` from kilib/app to disable status bar if comctl32 can't be used (86954bc)
- [2023-01-02] [GreenPad] kilib/app: remove `hasScrollInfo` since there is no actual use of it (3e2e200)
- [2023-01-02] [GreenPad] kilib/app: only load comctl32.dll if it is not loaded (fc36dd8)
- [2023-01-02] [GreenPad] remove `App::hasScrollInfo()` function (458b06c)
- [2023-01-02] [GreenPad] kilib/app: move comctl32 loading to constructor (6b7dd42)
- [2023-01-02] [GreenPad] kilib/window: add code for not using asm thunking but access object handle with GWLP_USERDATA (db43e9b)
- [2023-01-02] [GreenPad] textfile: only load chardet DLL from exe's directory for security (cfe63a8)
- [2023-01-02] [GreenPad] move loading comctl32 out of constructor, also add function for checking if dll is available (ba05bad)
- [2023-01-02] [GreenPad] change `Min()` usage, and add MIPS chardet DLL name (7a303d5)
- [2023-01-03] [GreenPad] declare `cpname` as static to fix referencing uninitialized memory (5c9218e)
- [2023-01-03] [GreenPad] add simple CharNext function for some versions of windows which bave bad implementation of `CharNextExA` (172aa93)
- [2023-01-03] [GreenPad] ported "Avoid using FindWindowEx in a loop" (d88e5e2)
- [2023-01-03] [GreenPad] move `x ? y : z` block for getting `CharNextExA` into a function (99adfc1)
- [2023-01-03] [GreenPad] remove handling code of WM_NCCALCSIZE and WM_ERASEBKGND (i.e. let default handler deal with them) since old win95 betas don't like them. (84230cf)
- [2023-01-04] [GreenPad] change log filename to 8.3 format, fix logging without long filename support (7694dee)
- [2023-01-06] [GreenPad] try to truncate widechar to char if all try of WC2MB are failed in win32s (2a0570f)
- [2023-01-06] [GreenPad] ported "Fix Scrolling on Win32s 1.1" (b8993c5)
- [2023-01-06] [GreenPad] follow-up rev 2a0570fd (2fab9ff)
- [2023-01-06] [GreenPad] datetime: check output from API before insert (0c4de0e)
- [2023-01-06] [GreenPad] check if kwd path points to file before opening from it (2864dfe)
- [2023-01-06] [GreenPad] rename SendMsgToFriends* to PostMsgToFriends* and uses PostMessage inside (bc9fb87)
- [2023-01-08] [GreenPad] ported "Make the Mutex class actually wait for ownership" (c2cc743)

and libchardet.
Repo: https://github.com/roytam1/rtoss/tree/master/libchardet
Changes since 2010-05-17:

- [2010-06-04] - [libchardet]  - vcproj: fix debug build  - add VC1 project (aa66389)
- [2021-12-23] [libchardet] partly import https://github.com/Joungkyun/libchardet/commit/f828c13654c5f6955d6d2c3c7fc4bee021893297 (861e8e6)
- [2021-12-23] [libchardet] import change from https://github.com/Joungkyun/libchardet/commit/7f624fb25e9d5cabe7c38925684410daa8d6cd69 (323f53e)
- [2021-12-27] [libchardet] Bug 739124 - Remove unused nsCharsetProber::SetOpion and overrides. r=smontagu (01083fd)
- [2021-12-27] [libchardet] Fix an error in the UTF-8 state machine table, and clean up the table generally. Bug 811363, r=jfkthame. (d52854c)
- [2021-12-27] [libchardet] Bug 863025 - Fix nsUniversalDetector overlooking the UTF-16 BOM. r=smontagu (d2614a6)
- [2021-12-30] [libchardet] align more to https://github.com/Joungkyun/libchardet/commit/f828c13654c5f6955d6d2c3c7fc4bee021893297 for further merging (7720b2a)
- [2021-12-30] [libchardet] partly import https://github.com/Joungkyun/libchardet/commit/74d670b22e471054426bb1f4a364f12b6bab7e4e (51f8d45)
- [2021-12-30] [libchardet] import changes: - fixed #2 Improve single-byte charset detection confidence algorithm (d8ff380e) - fixed wrong ILL position of #2 fix (7df09bcd) (5d3c0cb)
- [2021-12-30] [libcharde] import change: - fixed #3 update model of Greek, Hungarian and Thai (2ea57f34) (a6471f2)
- [2021-12-30] [libchardet] import changes: - fixed #4 new language model (Arabic, Danish, Esperanto, German, Spanish, Turkish, Vietnamese) (569b0c5c) - fixed #3, #4 compile error (ee5160bf) (3f943b9)
- [2021-12-30] [libchardet] import changes: - fixed #5 no detect control character on US-ASCII (966f11f6) - fixed indent (528d313) - fixed wrong range (4ea343c) (05e8f8f)
- [2021-12-30] [libcharde] import changes: - fixed #7 wrong detect Danash ISO-8859-15 (a0a69a25) - fixed charset name (38029f9) - fixed charset name (0593e1c) - change charset name "x-euc-tw" to "EUC-TW" (4938d73f) (34c0905)
- [2021-12-30] [libchardet] import fixed #6 can not detect EUC extended area (38d205f2) from Joungkyun/libchardet (4c8076e)
- [2021-12-30] [libchardet] import changes: - fixed #13 Report utf-8-sig (da0a1a04) - fixed #14 can't detect short euc-kr (876d392a) - normalize charset name (550be352) (c07ffb3)
- [2021-12-30] [libchardet] import give a little weight to "probable sequences" about single byte charset (7c1449ba) (c44bf1f)
- [2021-12-30] [libchardet] import update langage table for Greek, Thai and Vietnamese (dcdcdfc6) (25f9d31)
- [2021-12-30] [libchardet] apply more fix from Bug 863025 to new codes (61f0045)
- [2022-01-10] [libchardet] add vc2005 project files (0a3f35b)
- [2022-01-10] [libchardet] add vc2005 x64 configurations (29574b5)
- [2022-03-09] [libchardet] set x64 dll with x64 suffix (52fa474)
- [2022-12-29] [libchardet] add VC4 MIPS project files (03574ee)
- [2022-12-30] [libchardet] update VC4 MIPS project files (a3adc34)
- [2023-01-02] [libchardet] update VC1 and VC2 project files (d6e5702)

Executables:

GreenPad_x64.exe
GreenPad for XP and newer version of windows (AMD64/x64 Version).
GreenPad.exe
GreenPad for NT 3.51 and newer version of windows.
GreenPad-nt350.exe
GreenPad for NT 3.5 and newer version of windows. You may need a dummy IMM32.DLL when running in NT 3.5.
GPadnt31.exe
GreenPad for NT 3.1.
GnPad32s.exe
GreenPad for Win32s [ANSI version] (startable in 1.00.61, in limited working state with 1.10.88 and later), this build also works in Windows Chicago Beta Build 73f and later.
GreenPad_ansi.exe
GreenPad for NT 3.51 and newer version of windows [ANSI version].
GreenPad-nt350_ansi.exe
GreenPad for NT 3.5 and newer version of windows [ANSI version]. You may need a dummy IMM32.DLL when running in NT 3.5.
GPadnt3a.exe
GreenPad for NT 3.1 [ANSI version].
GPadmips.exe
GreenPad for NT 3.1 MIPS Edition, tested on NT4 MIPS version, not tested on older versions of NT MIPS.

libchardet libraries:

CHARDET.DLL
libchardet for i386 32bit windows and win32s (compiled with VC1).
chardet_x64.dll
libchardet for x86-64 64bit windows (compiled with VC2005 SP1).
cdetmips.dll
libchardet for MIPS windows (compiled with VC4 MIPS RISC Edition).

 

Download (includes libchardet): GreenPad-230108.7z

2 comments:

  1. Fix the link to the program file itself, because it leads to the wrong place.

    ReplyDelete
    Replies
    1. fixed, thanks. blogger's rich text editor misinterpret URL here.

      Delete