Jump to content
Muxe Inc Forums
Sign in to follow this  
AngelsHolocaust

New Beta: 2.31.0000

Recommended Posts

Hi everyone,

 

I am pleased to release the first version in 2008.

Have fun and thank you all for the support in 2007.

 

Whatsnew:

 

─════┤ v2.31.0000 DPMI32/WINDOWS/LINUX 27.01.08 ├═══════════════════════════─
[*] added more IFDEF checks for "Reanimator" code, using the define REANIMAT
[*] added a few more comment macros to C/C++, Java, C#, PHP, Lua, JavaScript
[!] D32 makefile.dos: added define which specifies the dos extender: DOS_EXT_*
     -> DOS_EXT_DOS32A, ...
[!] single year/version number reference in code (use in tvhc, ndn, rpc...)
     -> added main.CurrentYear, NDNYears and NDNYearsAH constants
     -> converted all date/version code to use the constants in main
[*] W32 new contray code by Vladimir Bochkarev:
     [-] tray code never restored the window in maximized state
         -> SW_SHOW instead of SW_RESTORE
     [+] Fullscreen menu command, animation
[*] added timedate.GetWeekdayString(), replaced code in
     calendar.TCalendarView.Draw() and gauges.TClockView.Update()
[+] from now on NDN will be released in self extracting archives (Garl)
     (yes, the LINUX archive has an EXE extention on purpose)
[-] "Options.Load ini file" didn't redraw the screen [A]
     -> added RedrawForce to dnutil.TDnApplication.HandleCommand().cmLoadIni
[+] added memory.Mem(Get|Free)() and memory TMemStorage, for easier memory
     buffer handling
[*] replaced commands.dlArcMsg4 with commands.dlFBBNoOpen, since they had
     the same text except for a 'the'
[!] moved the -$M<minstack>,<maxstack> from makefile.dos to ndn.vpo, because
     it the commandline length limit of maker was reached

HEADER VIEWER
[-] MZ-Overlay calculation in viewhead.tMZ.CalcOverlayStart() was wrong [A]
[+] added Go32Stub support, which is a LE/LX compatible format with different
     ID ('L'#01)
[+] code will now use the Overlay start offset if the NewExe offset seems invalid
     -> added viewhead.tMZ.GetNEOfs()
[-] LE/LX and ELF dialog handling corrupted memory [A]
     -> viewhead.tLE.EntryPoint() and viewhead.tLE.GetHdr() used more than
        LE_OBJECT_COUNT*viewhead.tLE.ObjTable entries
     -> viewhead.tELF.EntryPoint() and viewhead.tELF.GetHdr() used more than
        ELF_PRGHDR_COUNT*viewhead.tELF.PrgHdr entries
[-] viewhead.HdrInit() didn't correctly setup tHdr.SubExeType [A]

ARCHIVES
[+] added support for Go32Stub SFX archives (DOS RAR f.ex.)
     -> modified archiver.SkipSFX() by using the overlay start ofs
        instead of the new exe ofs if it's invalid
     -> added a new exe header ID 'L'#01
[+] added (uncompressed!) ELF SFX support (tested with Linux RAR SFX)
     -> added ELF check to archiver.SkipSFX()
     -> doesn't work with UPXed RAR SFX for example

VIEWER
[-] HEX/DUMP: goto offset and goto bookmarks didn't work correctly [A]
     -> fviewer.TFileViewer.MoveToOfs() didn't handle buffer position
        offsets correcty
[-] Modified file, [ESC], No button -> always repeated the MessageBox() [A]
     -> fviewer.TFileViewer.WriteModify() didn't clear the Modified flag before
        executing the cmNo code -> the MessageBox() as recursively executed
[-] HEX/DUMP/ASM: Creating blocks with mouse on the first or last line on
     screen didn't work [A]
     -> modified fviewer.TFileViewer.HandleEvent().evMouseDown so the view
        scrolling (pressed mouse button) only works when moving over the viewer
        boundaries
[-] SaveAs [SHIFT-F5]: didn't close current file and open the saved one [DNOC]
     -> modified fviewer.TFileViewer.HandleEvent().cmReanimator to open
        the new file after saving
     -> moved the code from cmReanimator to cmSaveTextAs
[-] vmDump/Hex: couldn't enter $00-$31/$ff from from ASCII-Table (Dandv) [DNC]
     -> fviewer.TFileViewer.HandleEvent() keyboard code didn't allow the above
        charcodes, now checking for ALT/CTRL in Event.Shiftstate
[-] not fully loaded files didn't support *.BAK files [A]
     -> in fviewer.TFileViewer.WriteModify(): copyfile instead of renaming
        before saving using vpsyslow.SysFileCopy()
     -> error message if the backup couldn't be created
[*] merged fviewer.TFileViewer.HandleEvent().Windows(Copy|Cut|Paste)() into
     fviewer.TFileViewer.HandleEvent().(Copy|Cut|Paste)Block()
[-] header display didn't work if more than 1 file was loaded into viewer
     on startup and the last file loaded had no supported header [A]
     -> moved cmViewHeader enable/disable code from fviewer.TFileViewer.ReadFile()
        to fviewer.TFileViewer.SetState()
[-] Scrollbar handling was not based on the current position, but always on the
     view window position into the file (Slavka) [DNOC]
     -> improved the TScrollBar.Value handling, it is now based on the current
        view mode using cmChangeValue with fviewer.TFileViewer.CurrentPos() in
        fviewer.TFileViewer.DrawScrollBar()
     -> added DrawScrollBar to fviewer.TFileViewer.HandleEvent().CED()
     -> added fviewer.TFileViewer.Awaken(), which correctly sets up
        fviewer.TFileViewer.ScrollBar after load; removed scrollbar setup code
        from fviewer.TFileViewer.ReadFile(), Awaken() is called manually in
        fviewer.TFileWindow.Init()
     -> with Awaken() the need for fviewer.TFileViewer.Loaded was gone, therefore
        removed the boolean and all references in fviewer and
        histries.RestoreViewInfo()
     -> TScrollbar.Max is now correctly initialized with Filesize-1
[+] added fviewer.TFileViewer.GetSelection(), which returns selection data
     in a buffer, handling data on disk AND inside the currently loaded buffer
[+] Copy to/Paste from file operations [CTRL+ALT+F5/F4]
     -> added fviewer.TFileViewer.PasteFromFile(), CopyToFile() and
        cmBlock(Read|Write) to fviewer.TFileViewer.HandleEvent()
[-] reloading a file from viewer opened archives or external viewers [A]
     (Dandv/Necromancer)
     -> fviewer.TFileViewer.HandleEvent().Reload() provided -1 instead of
        the current viewmode to dnutil.TDNApplication.ViewFile()
[-] syntax highlighting was wrong in some cases if there was no EOL before
     the EOF (Dandv) [A]
     -> fviewer.TFileViewer.CountLines() didn't correctly use LineCount
[-] vmDump/Hex/Asm: [DEL] at the EOF of files which were not fully loaded
     behaved like [BACKSPACE] [A] (Dandv)
     (http://forums.muxe.com/index.php?showtopic=526)
     -> edit operations on not fully loaded files force a reload of the file,
        which acesses the histories, but the history did not store and restore
        the position in the file but cursor position on screen
     -> now (re)stores the file instead of the cursor position in
        histries.StoreViewInfo() and histries.RestoreViewInfo() by
        using fviewer.TFileViewer.MoveToOfs() and CurrentPos()
[*] better buffer calculation: align to even boundaries except if forced
     by the user
     -> fviewer.TFileViewer.MoveToOfs() didn't correctly detect if the file
        position is already on screen and it didn't align correctly
     -> fviewer.TFileViewer.SeekEOF() was improved by using MoveToOfs()
        and removing unecessary code
[-] Cursor/file position was not correctly restored on NDN restart [DNOC]
     -> fviewer.TFileViewer.(Store|Load)() only (re)stored FilePos+BufPos,
        they now use fviewer.TFileViewer.(Currentpos|MoveToOfs)() respectively
[-] vmAsm/Dump/Hex: deleting a block from the end of the block position
     didn't advance the cursor correctly to the start of the block [A] (Dandv)
     (http://forums.muxe.com/index.php?showtopic=524)
     -> fviewer.TFileViewer.HandleEvent().kbDel didn't move the cursor to the
        block start correclty

EDITOR
[*] merged microed6.EditorHandleEvent.cmWindows(Cut|Paste|Copy) into
     microed6.EditorHandleEvent.cm(Cut|Paste|Copy)
[-] Undo/Redo behaviour in case of single line block deletion was wrong [A]
     -> complete line after the deleted block was appended on undo after a redo
        to the existing line
     -> modified single line behaviour in micro_2.EdConvert4do().dkUndo.udDelBlock

EDITOR/VIEWER
[+] Append to clipboard operation: clipboard copy/cut + [SHIFT/CTRL] appends
     the new data to the clipboard instead of replacing
     [CTRL-SHIFT-C/X/INS/DEL]
     -> improved winclp.__SetWinClip()
     -> modified fviewer.TFileViewer.HandleEvent().*CopyBlock() and
        micro_1.EdCopyBlock() not to always delete the old clipboard data
     -> modified microed.TFileEditor.GetSelection(), microed3.EditorGetSelection()
        and all references to these functions to support copy into existing clipboard
        data
     -> modified microed6.TFileEditor.HandleEvent().cm(Clear|*Cut|Copy) to support
        the new appending hotkeys
[-] "Opening locked file" bugs, if
     Options.Configuration.Editor."New file loading" was disabled [A] (Dandv)
     A = System Setup.[X] Internal Editor B = System Setup.[X] Internal Viewer
     C = Editor Setup.[X] Auto codepage
     * ABC: Viewer error message, Editor opens empty file
       -> microed2.EditorReadBlock() (old code) used a constant error value
          of 2 if S^.Status <> stOK, now uses S^.ErrorInfo which holds the
          correct error code of the function
     * AB: Viewer error msg, Editor error msg but crash afterwards
       -> microed2.EditorReadBlock() (old code) disposed keymap.TCodePageDetector
          even though it was not used
     * other combinations don't show any errors anymore

LFN
[*] D32: put LFN open/create code into vpsysd32 [V]
     -> removed lfn._SysFile(Open|Create) by updating vpsysd32.SysFile(Open|Create)
     -> moved Options.Configuration.System Setup.[ ] Don't Use LFN to
        Options.Configuration.Miscellaneous Setup.Operating System to support
        LFN code also in the RTL, removed commands.ossaNoLongNames, added
        commands.osNoLFNCode
     -> every target now uses vpsyslow.SysOptions instead of
        startup.MiscMultiData.OSSetup.Options

CLOCK
[-] AM/PM was not shown when seconds were disabled [DNOC]
     when AM/PM was enabled the clock was not fully displayed
     -> rewrote gauges.TClockView.FormatTimeStr()
[-] clock placement with various options was not correctly handled [NC]
     * D32: time/date in top corner truncated on cmdline exec (Rugxulo)
     * start of NDN with 12 hour format moved the clock view to the right
     -> added gauges.TClockView.InitAuto() which uses the extent of the
        desktop and calculates it's boundaries internally, used in
        dnutil.TDNApplication.Init()
     -> added gauges.TClockString
     -> added gauges.TClockView.(ResetView|Relocate)(), replaced code in
        dnutil.TDNApplication.RetrieveDesktop()
     -> replaced the gauges.TClockView.OldShowSeconds code with
        gauges.TClockView.OldStdClockWidth, which checks the clock size and not
        the options of the clock
[+] command: move clock to starting place ("=" menu)
     -> added commands.cmResetClock and =.Reset clock position,
        handled in dnutil.TDnApplication.HandleCommand()
[-] clock was not always placed correctly, see big screens in Linux (AdminZ) [?]
     -> added cmVideoModeChanged check to gauges.TClockView.HandleEvent(),
        which checks the clock placement on each start or mode change
     -> removed clock code from dnutil.TDNApplication.RetrieveDesktop() and
        dnutil.TDnApplication.HandleCommand().SetScrMode()

CALENDAR
[*] Calendar is now selectable like any other window on the desktop
     -> added stdefine.CALENDAR_SELECT, which signals the new code in
        calendar.pas
[*] Activating calendar when it's already selected (topmost window) closes it
     -> modified calendar.InsertCalendar() to check it's current state

TURBOVISION: VIEWS/DIALOGS/MENUS/OBJECTS/MESSAGES
[+] added objects.TRect.Contains(Rect|View)() which can be used to
     check if view is completely in TRect, used in
     dnutil.TDNApplication.RetrieveDesktop()

SCREEN/VIDEOMODES
[+] added dnapp.TProgram.SignalVideoModeChange(), which broadcasts
     cmVideoModeChanged to the Application (not Desktop anymore),
     used in dnutil.TDNApplication.Init() and dnapp.TProgram.SetScreenMode()
     -> added video.TVideoModeChangeInfo, which holds the old and new video mode
        information; auto updated by video.SetCrtData()

DNEXEC/EXTERNAL VIEWER/EDITOR DNEXEC.EXECUTEFILEEXT/LOCAL_GLOBAL_MENUS
[-] W32: new processes were started with hard errors disabled, resulting in no
     message boxes when DLLs were not found [V] (Dandv)
     -> added CREATE_DEFAULT_ERROR_MODE to SysExecute().dwCreationFlags

 

download: http://ndn.muxe.com/download/

 

Stefan / AH

Share this post


Link to post
Share on other sites
Minimus    0
I am pleased to release the first version in 2008.

Have fun and thank you all for the support in 2007.

 

Whatsnew:

 

Sorry for offtop ;-)

 

1. When there will be normal support of a network (in Windows)?

2. Where i can look ToDo list?

 

Share this post


Link to post
Share on other sites
Garl    0
1. When there will be normal support of a network (in Windows)?

network work fine with 'cd' command or you want Network like FAR\DN2 ?

 

 

2. Where i can look ToDo list?

 

\DOC\whatsnew.txt line 268

Share this post


Link to post
Share on other sites
Minimus    0
network work fine with 'cd' command or you want Network like FAR\DN2 ?

Yes, like FAR\DN2. (For Windows NDN only)

 

\DOC\whatsnew.txt line 268

Opsss :blush: Has not seen.

Share this post


Link to post
Share on other sites

Hi!

 

The network VFS was a quick hack from me for Necromancer.

It is not of high priority for me at the moment, but I put it on my todo list.

It would be also a nice example for plugins, which I want to work on in 2008.

 

Bye,

Stefan / AH

Share this post


Link to post
Share on other sites
RayeR    0

Hi, thx for new beta.

I'm happy with linux version, no crashes...

I know you know about DOS version issue with cmd and have low priority but remembering :)

 

Also a small note to new SFX packages. I think it would be better if it create NDN directory than just extacting files in current dir. But just my preference any clue to NDN functionality.

 

EDIT:

also for linux the SFX package is not good choice - I cannot unpack it on machine at work:

 

user@debian:~/ndn$ ./_lnx.exe

./_lnx.exe: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.4' not found (required by ./_lnx.exe)

 

I have no root rights to fiddle with libc version so I cannot unpack it there on my user account. But previous version in normal archive can run OK.

Share this post


Link to post
Share on other sites

Hi!

 

Found the first major bug myself:

NDN cannot view a file with size 0 a second time in text mode,

except if it's entry in the viewer history is deleted.

 

SFX + Linux:

Ui, this is bad.

But you can still unpack it with RAR like a standard archive.

If there will be more complains I will think about it again.

 

Bye,

Stefan / AH

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×