AngelsHolocaust 0 Report post Posted October 13, 2006 hi everyone after 4 weeks in munich i am back with a new release there are a lot of new things, and i know of a few things that i broke but maybe you won't realize it at all whatsnew: [!] first of all: sorry to everyone who wrote email or posted to the forum and waited for a reply by me, but as i told you all i cannot do that at the moment as i would like to you can be sure that i do get all reports and messages and i am working a lot on NDN [-] closing the System Dialog 'Abort,Retry...' randomly crashed (BMW) [A] -> drivers5.SystemError calculated wrong size for clearing the error dialog buffer with ' ' (now MemSize / 2) [-] "Ignore All" of drivers5.SystemError didn't react to it's hotkey [A] -> drivers5.SystemError had an error in the if/then/else statement [-] stringsx.DelChar didn't handle empty strings [A] [*] LNX: removed Options.Configuration.System Setup.Clear read-only from CD usage (commands.ossRemoveCD_RO) [+] LNX: added vpsyslow.tSysOptions/SysOptions: configure LNX RTL operations [*] added misc (multiple dialog) configuration setup: regex, name completion [+] Filename/Keyword completion: filename completion works on the commandline and in all inputlines, the keyword completion works in the internal editor -> updated help: editor, dialogs, commandline, options.configuration menu -> created new help topics: NameCompletion & Setup -> changed options.configurations menu help: regexsetup -> misc setups -> added (cm)CompleteKeyword editor command, added to edcom.dnr -> added highlight keyword completion options -> extended stringsx.FormatStrCase to format a range in a string -> added stringsx.DeleteX: works like standard Delete but returns the deleted data -> modified flpanel, dialogs.microed6/micro_3, highlite, stringsx, dialmult, dblwnd -> added cmdline.TCommandLine.HandleNameComp() [*] added TCL to ndn.ext and ndn.hgl [*] LNX RTL: vpsyslnx.SysFindFirst() now supports '~/*' paths [-] fileio.IsDir() now returns data correctly for C: and C:\ [A] [+] added Options.Configuration.Misc Setups.OS Setup: W32: store position and state of console window to desktop on exit -> added commands.osRestoreWindowState LNX: a few options concerning the screen drawing: direct screen access, G1/G0 selection and UTF-8 mode. (experimental) [+] added stringsx.PasStrCmp() which works like StrCmp but handles pascal strings, used in: collect.TNoCaseStringCollection, highlite.TKeywordCollection.Compare, highlite.TCommentTypeCollection.Compare, pcregexp.TRegExpCollection.Compare [*] improved: video.TVideoModeByModeCol.Compare [+] added stringsx.PCharCopy(): works like standard copy but with pchars [+] added stringsx.PosX(): like the standard system.Pos() but handles escaped characters and accepts a starting index [+] colors: (re)get colors for views only on palette change or (re)start -> added views.TView.UpdateColors(), called from views.TGroup.Redraw -> removed highlite.THighliteParams.ColorsInited and color get code from microed7.EditorDraw() and fviewer.TFileViewer.Draw() FILE COPY/MOVE/OPEN/CREATE/DELETE [-] Copy/Move: "Reset copy options" was always on [A] -> filecopy.CopyDialog() didn't use current dialog options to check for cpoResetOptions [-] Copy/Move: "Preserve dir structure" when copying dirs crashed and base dir was created but source dirs were not created inside it [A] -> missing check for Own=nil in CopyFile, target dir structure was stored to DirsPreCreate but not to Dirs in CopyDirectories [-] D32 NT: couldn't delete read only directories [NC] -> lfn.lRmDir always resets file attributes to 0 before deletion [-] Move from CDROM: prints a warning/error message when trying to delete a file or directory [DNOC] -> checking CD_DRIVES/IsCD 2 times in filecopy.MaxWrite -> added disk.TDriveInfo.(IsCD|GetDriveTypeA) [-] Copy/Move: didn't set source time/date on directories [DNOC] -> filecopy.CopyI sets it after creation of the directory [*] Copy/Move: set all time/date information, not only last write -> modified filecopy collections to store tFileTimes instead of only last write time -> filecopy.MaxWrite only set last write file time [*] Delete: added progress bar and counter, deletion of unicode LFN (D32/W32) {G} -> eraser.EraseFiles() SCREEN/VIDEOMODES [-] W32 NT: setting (f.ex.) 94x25 from 80x30 didn't work [V/WinNT] -> vpsysw32.SysSetVideoMode now resets SetConsoleWindowInfo() before setting new video data [*] W32 NT: now stores current video mode to mode list if it doesn't exist VIRTUAL FILE SYSTEMS (VFS) [*] PROC: signal NDN (self) in list by comparing it's PID -> vfs_proc.TProcDrive.GetDirectory.FinishProcInfo changes TFileRec.LName to '<<< NDN >>>' [*] FIND: several improvements * starting a search inside a FIND PANEL will search files inside the panel by default (selected files or total find drive) (MiB); if a new search doesn't use data from this panel the panel will be deleted * search in selected files/dirs (Alex Grishanov) -> moved dnutil.TDnApplication.HandleCommand().cmFindFile into flpanelx.TFilePanelRoot.CommandHandle() -> vfs_find.FindFile() now receives the Panel from where the command was started -> a lot of changes and improvements to vfs_find.FindFile|FindFiles TURBOVISION: VIEWS/DIALOGS/MENUS/OBJECTS [*] added views.TGroup.GetFirstTypeOf(): helper to check for Checkboxes or Radiobuttons [-] dialogs.TCluster.SetButtonState only worked for TCheckBoxes, added it to dialogs.TRadioButtons [*] added filescol.TFilesCollection.Clone() constructor and TFilesCollection.CloneItem() to copy items based on the current collection - NOTE: tries to do a object based implementation in collect.TCollection with a virtual CloneItem() failed because the Clone constructor didn't use the CloneItem of TFilesCollection [*] collect.TCollection: added flag to signal that only the container should be disposed, not the items; items are only deleted from list, not freed: collect.TCollection.OnlyDeleteItems: Boolean -> collect.TCollection.Done uses it -> fltools.GetSelection() automatically sets this flag -> removed GetSelection + DeleteAll/Dispose combinations from: 1*vfs_find, 3*flpanelx, 1*diskimg, 6*fltools -> also solved some memory leaks due to undisposed collections: fltools.cm_Print [*] implemented dialogs.CheckBoxesE/RadioButtonsE.SetButtonState(): receives no bit mask but the value of one button to disable/enable [+] added generic code to views.TListViewer: QuickSearch, GetQuickSeachChar -> possibility to quickly search for chars inside of all list boxes; the first character only -> removed first implementation from TComboBox [*] added filescol.TFilesCollection.GetSelection(): creates new collection with (depending on parameters) OnlyDeleteItems set from all items which are (not) Selected (TFileRec.Selected) [*] added collect.TCollection.Merge(): collection A takes the items of collection B and Disposes B [*] added collect.TCollection.Iterate(): return items of a collection until list end; checks for nil internally [+] implemented dialogs.ListBoxE: receives items in a Collection or SItem list, handles scrollbar and list internally, only returns focused value [*] TComboBox [ESC]/[ENTER]: first hit closes the expanded box, next hit closes dialog [+] filescol.TFilesColletion: added GetFileNameCollection() which returns all files in a string collection [*] collect.TUnSortedStrCollection now handles duplicates [*] collect.TCollection.Insert() now returns a boolean if the value was actually added -> converted from procedure to function [*] views.TWindow: windows which cannot be zoomed (dialogs f.ex.) will be centered on double click on the top frameline, added "Center" to Window menu -> views.TWindow.HandleEvent() handles cmCenter, sent by views.TFrame.HandleEvent() -> added views.TView.CenterView(), removed center code from views.TGroup.InsertBefore [*] TComboBox: discard changes if clicking besides the box (Dandv) -> dialogs.TDialog.HandleEvent(): clicking to an "empty" area will reset the focus on the object -> added views.TView.ResetView() which releases and gives focus [-] validate.TValidator.Options was 0, hence no data was gotten/set [DNOC] [+] added collect.TNoCaseStringCollection which sorts strings case insensitive [+] added views.TWindow.HandleEvent().cmGetName: needed for Window.Window List HISTORIES [+] QuickSearch, see update to views.TListViewer (Basil/2) [+] setup for max edit/view/directory/command history length/size, added Options.Configuration.Miscellaneous Setups.History Setup -> now saves histries.MaxCmdHistorySize to ini file -> added hcHistorySetup COMMANDLINE [+] added delete word right of cursor: [CTRL-SHIFT-BACKSPACE] -> cmdline.TCommandLine.HandleEvent LFN [-] lfn.zlfSplit() didn't split '.\' correctly -> returned '.\' as ext [NC] -> commented "and ((B > 2) or not HasColon)" hopefully w/o side effects KEYBOARD [*] LNX T: [CTRL-SPACE] works [*] added timeout for double keypresses (0.25s) -> drivers.GetKeyMouseEvent().DoubleKeyTimer [*] delay dead keys (shift,ctrl,alt,caps,win keys) for double assignments: NDN will wait for a second keypress for 1/4 second before sending the single one - behaviour like in LINUX with TAB possible -> drivers.GetKeyMouseEvent() RCP/RESOURCE [+] implemented MultiDialog: SUBGROUP/END,COMMONRECT SUBGROUPS are basically DIALOGS (without buttons), SUBGROUP bounds are relative to COMMONRECT -> dialogs from ndn.dnr can be copied into a subgroup w/o changing the bounds/coordinates/sizes of the subviews -> see Options.Configuration.Miscellaneous Setups [+] added ListBoxE [*] all dialog content (PVIEWs) can now be scanned recursively, now only one implementation of the parsing code exists -> added rcp.CompileDialog().ScanDialogContent() [+] added "IntInputLine <min>,<max>,<bounds>,<maxlen>,<history>" -> converting from integer to string and vice versa internally using validate.TRangeValidator; receives and returns an integer instead of a string [*] removed the D^.Awaken call from rcp.ProcessDLGs.CompileDialog() -> added setups.TSysDialog.Init() which calls awaken EDITOR/VIEWER [*] several changes in drawing output to remove linux/dos ifdefs: bookmark line (now '-'), filtered characters (now '.') VIRTUAL FILE SYSTEMS (VFS) [-] FTP: still some files could be overlooked when parsing the incoming file list and remove '/' when getting current directory [A] {G} -> vfs_ftp.TFTPConnected.(GetFilesCol|GetCurrentDir) EDITOR [+] new feature: delete empty lines at the end of the file when saving -> added editor option "Del. empty lines" -> works if "Optimal fill" or "Del. empty lines" are enabled -> microed2.WriteBlock, used in microed2.Editor(SaveFile|SaveFileAs) -> microed7.EditorDraw(): better view setting of Pos.Y [*] delete word to the right now behaves as delete word left (stop at breakchars and delete breakchars separately) -> commented additional line in micro_4.EdDelWordRight [-] file > 1 lines, move cursor to end, cursor right, backsp: cursor left AND 1 line appended (GPFault) [A] -> micro_4.EdMakeBack() sets cursor to EOL, but only if line contains data to support indent on empty lines [*] keyword comp: collect all words (word/char count code) -> at the moment collected with each name completion event maybe: on load (microed2.EditorLoadFile) and line update/next completion event?! -> modified micro_3.(EdCountCharsWords|EdCompleteKeyWord) [*] the bookmark and infoview lines were not redrawn when the state sfSelected or sfActive were off -> microed.TEditWindow.SetState() did only draw info/bookmarks when above states were enabled [*] confirmation option: modify read only files -> one confirmation for editor and viewer: Options.Configuration.Confirmations.Modify read-only files (startup.Confirms.Options and commands.cfModifyReadOnly) -> rus and eng resources have been modified accordingly [*] search info window when searching in search paths (SPF) -> searchf.FindFileWithSPF(): added PTimedWhileView and now receives a list of filenames to look for -> microed2.EditorOpenFileAtCursor() provides a list of possible filenames and only calls FindFileWithSPF() once [-] 1 lined files always get CRLF as line divisor (GPFault) [DNOC] -> microed2.EditorReadBlock.CountLines() did always set CRLF even if no line ending was detected at all, now uses default value from editor setup (files with 1 line don't have a line ending) [-] ruler with RMB over window moved cursor after release (GPFault) [DNOC] -> restructured code in micro_3.EdHandleMouse(), now no editor content is modified anymore (cursor, blocks) [-] Smart tab now also uses the first line for indenting information [A] -> micro_4.EdDoTab().GetSmartTabStep() used 'I > 0' instead of '>=' [-] Smart tab did not work if the preceeding line was empty, or one of the preceeding lines was more indented than one of it's succeeding lines [A] -> micro_4.EdDoTab().GetSmartTabStep() skips directly preceeding empty lines -> micro_4.EdDoTab().GetTabStep() ignores 'out of order' lines FILE PANEL [-] QuickSearch: pressing [ALT] quit the quicksearch mode but didn't remove the search from the panel [A] -> flpanel.TFilePanel.HandleEvent didn't draw the information view of the panel after leaving the quicksearch mode [-] flpanel.QuickDirArr was not disposed [A] -> flpanelx.CleanFlPanelX disposes it [-] LNX: "cd path+filename" didn't work [A] -> sk.__CheckDirectory.ValidPath LINUX code didn't check trailing parts of the given directory for validity [-] LNX "Show hidden files" had no effect (.*) (Sir_Yaro) [V] -> vpsyslnx.DoFindFile now sets the hidden attribute HIGHLIGHT GROUPS [*] move: indicates when user is moving a group -> groupdlg.TGroupViewer.NewItemPos() shows info in subtitle [*] file group list, color info line didn't use it's the whole size.x to display the mask -> groupdlg.TGroupInfoPane.Draw SYNTAX HIGHLIGHT [*] flag values can now read a list of bit values, not only one value -> highlite.MakeValue() using stringsx.ParseLineSpace() -> example: "1 2 32 1024" [*] improved the very slow loading of large files with a lot of multiline comments or strings (f.ex. windows.pas) [NC] -> about 50% faster = highlite.TMultiCommentCollection.NewFreshLine(): modified for construct which increased all line data when inserting new lines from 0 to count-1, now goes from count-1 to 0 and breaks at the very first line < new line same modification to highlite.TMultiCommentCollection.CleanLine() (which is almost unused) [*] (correct) use of '\' as escape char in keyword and comment highlight data - "REM " comments or ',' in comment(start|string) was not possible [NC] -> highlite.InitHighLight.FixHighliteParams() treats every character succeeding a '\' literally -> highlite.InitHighLight.MakeStrings() checks if a ',' is preceeded by '\' and looks for the next ',' - "RegKeywords color red bug\\,bug2" == "bug\,bug2" but should be 2 keywords (GPFault) [NC] -> highlite.InitHighLight.MakeRegKeywordsColl() now skips all escaped characters - Stringflags 1+2 didn't work correctly: \'abc\' still highlighted the first ' (Dandv) [NC] -> highlite.Highlites.CheckString(), only when MultilineString disabled, didn't check the first found ' or " for escape - Keywords with escaped characters -> highlite.InitHighLight.MakeKeywordsColl() handles escaped characters - escaped multiline comments are now supported -> highlite.InitHighLight.MakeDefaults() [+] new regkeyword and colored keyword color values: string, comment, number, symbol, normal (GPFault) -> modified highlite.InitHighLight.GetCurrentColor() and added highlite.InitHighLight.ReadColor(), used in following 2 methods -> Keywords: highlite.InitHighLight.MakeColoredKeywords() -> RegKeywords: highlite.InitHighLight.MakeRegKeywordsColl() [+] RegKeyWords[1-8] using the KeyWord[1-8] colors (GPFAult) -> modified highlite.InitHighLight.MakeDefaults(), highlite.InitHighLight.MakeRegKeywordsColl() and added highlite.InitHighLight.MakeColoredRegKeywords() [+] match not only file mask, but content of file -> normal search pattern: inside <> regex pattern: inside >< -> case insensitive -> modified microed2.EditorLoadFile() and fviewer.TFileViewer.ReadFile(): load the HGL data after loading the file data -> microed.TFileEditor.InitHighLight() provides first line and fviewer.TFileViewer.ReadFile() first Min(64, filesize) bytes -> added highlite.InitHighLight.FirstMatch() which matches mask & content -> added pattern for *.SH files to ndn.hgl REGULAR EXPRESSIONS/PCRE [*] pcregexp.TpcRegExp now inherits from TObject (FreeObject) DBF VIEWER [+] CSV file support (*.csv, *.rep, *.spr) {G} -> dbfview -> @Garl: please read the dbfview-source code for some notes by me TVHC/HELP [-] big screen video mode, editor help, cannot select "system clipboard" [DNOC] -> helpfile.THelpViewer set it's limit to 78, now always sets Size.X [*] open help like a standard window with switching etc... -> added stdefine.NEW_HELP_WINDOW (to see old help code) -> modified dnutil.TDnApplication.HandleCommand().cmHelp: * using ExecView() if top view is user screen, in dragging mode or already started via ExecView() else Insert() into desktop * commented the unused dnutil.HelpInUse with the define above -> modified helpfile.THelpWindow.Init() helpfile.THelpViewer.HandleEvent() -> Options.Configuration.Interface.Allow multiple help windows: commands.ouiAllowMultiHelpWin -> added global views.ExecViewActive: if a view is executed via ExecuteView this value is true (255 nested calls possible) -> help window in Window.List also shows the current topic: added helpfile.THelpWindow.HelpFile and helpfile.THelpWindow.HandleEvent() WINDOW MANAGER [-] set-on-next-viewer/editor-window code always used english window strings and always used the first editor window, even if current was a viewer -> using getstring to get the dlViewTitle and dlEditTitle language strings -> code will now select exactly according to what the current view is see you soon Stefan / AH download: http://ndn.muxe.com/beta.php (even if the beta page is not yet updated don't worry, the links point to the new version already) Share this post Link to post Share on other sites
dandv 0 Report post Posted October 15, 2006 Cool! New version! Unfortunately, it doesn't start on my Windows XP SP2. I opened a command prompt to c:\ndn and typed .\NDN.EXE. NDN displays its startup message and exists: Necromancer's Dos Navigator v2.30.2830/WIN32. Based on Dos Navigator by Ritlabs... [DEFINES/CPU86/CPU87/VIRTUALPASCAL/WIN32/NECROMANCER] ·WinNT detected, Process ID is 3308... NDN 2.30.0024 runs without problems. BTW, I'm not sure if anyone reported this, but starting several months ago, the RAR archives of NDN beta contain two files with the same name in the same folder (!?). I used WinRAR 3.61 to open the archives and every file in the colors\ directory was doubled. Share this post Link to post Share on other sites
AngelsHolocaust 0 Report post Posted October 21, 2006 hey dan! yes, i am sorry, this has to do with the fact that i added the feature that the current video mode, if ti doesn't exist in the current list, is added to the vm-list and, when you start ndn in a standard w2k+ console you have a window buffer of 80x300 (!). so, since the mode was in the list and NDN found the current mode to be set it tried to set it, but i tested it once and the max possible screen sizes are a less than that i have fixed this in the release i will upload in a few minutes (yes, i had to come back home again...) about the color problem: my work w32 dir (where i compiled my work into) had an additional color dir i have removed this and it shouldn't appear anymore check my next post in this forum Stefan / AH Share this post Link to post Share on other sites