Jump to content
Muxe Inc Forums

AngelsHolocaust

Members
  • Content count

    651
  • Joined

  • Last visited

Posts posted by AngelsHolocaust


  1. Hi erno!

     

    first of all thanks for the bug reports in the other posts

     

    1. block clear command (fill block with spaces), useful when editing table, to remain aligned.

     

    if you enable the OVERWRITE mode (Insert) and press CTRL-DEL the block will not be deleted but cleared

    there are differences for INSERT and OVERWRITE modes very often

     

    2. option to move block to the cursor position relative to text, not to the screen.

     

    example:

     

    123456789, selecting 12, moving cursor after 4, now the result of block move will be 345612789,

    It will be nice to have an option to move having the result 341256789.

     

    i see, you are right, this is a bit strange

    i will add it to the todo list

     

    3. Many times I need to swap 2 texts. If I could have an option to move block, and after move to remain selected all text involved in move then the swap would be easier.

     

    example:

    12 > 34 selected 12 cursor after >.

     

    Moving block: the result will be

    > 12 34

     

    if > 12 remains selected, and moving cursor after 34, a new move command will produce

    34 > 12.

     

    you mean expanding the selection to "> 12" automatically?

    this is very special and only useful in this case i think

    maybe you can do a SWAP macro in the HGL file?

    hm, i just tried... it seems a bit to complicated

    but what about an option to swap 2 words?

    this would be more generic and useful

    in fact i would use something like this too quite often

     

    bye

    Stefan / AH


  2. Hey naX.

     

    Before I start, thank you for your post and interest in NDN

    remember that all wishes may not occur in a very long time, especially if you look at my TODO list in the whatsnew.txt file.

     

    and i will only comment the questionable wishes, the rest will appear in my todo list :)

     

    -----------

    in Panels

    -----------

    1. Adjust automatically the column widht with the largest filename.

    2. Focus the related panel with the Drive Selection (Ctrl F1/F2).

    3. Show My Documents in the Drive Selection (Ctrl F1/F2).

    4. Shift Up/Down to select files.

    5. Copy and paste a file in the same panel and automatically rename it (if I copy and paste the file_x, its name will be "copy of file_x").

    6. Use Up/Down to go to the files that match with the words typed in quick search.

     

    2. do you mean to switch the cursor to the panel where you selected the drive?

    if yes don't answer, i added it to the list

    3. i think about a change in this: remove the hard coded handling of system drives and add a text config file where the users can add paths as they want

    4. shift up/down is already used for the commandline history, maybe alt + up/down

    5. this is too much windows :)

    but if i fix the bugs in the context menu code this would be possible via the context menu copy and paste commands

    6. there's CTRL+ENTER to do that, i think that is enough

     

    -------

    Editor

    -------

    1. Ctrl+Up/Down move the screen, but not the cursor.

    2. Ctrl+u uppercase selected chars, Ctrl+l lowercase selected chars.

    3. When I open a file with emphasized words, they appear wrong (propósito is right, but the editor shows prop¾sito). What happen?

     

    Bug?

     

    1. When I emphasized a char of a word, all the word puts in uppercase.

     

    1. this already works

    2. we also need similar keys to make this for case switch and capitalize operations

    and at the moment the Ctrl-K+?? works quite well.

    if i ever add hotkey configuration to NDN everyone can customize keys as he wants

    3. not sure... emphasize = uppercase?

    this i a codepage problem, which is hard for me to fix since i don't work much with this

    maybe this can be fixed if i add mutliple codepages to the editor (like in the viewer)

     

    bug 1.: see 3.

     

    --------------

    Miscellanous

    --------------

    1. Include telnet/ssh/ftp/sftp

    2. Copy/paste from/to dialog windows (e.g., from the Replace window).

     

    1. ftp is implemented, the rest is nice but a lot of work...

    2. already works: don't use ctrl-cxv but shift-insert/delete and ctrl-insert

     

    have a nice weekend

    Stefan / AH


  3. Hi OArkh!

     

    I think it will not be easy to use both of them without side effects.

     

    The very first versions i uploaded years ago contained both the W32 and D32 files,

    but when i started the LNX one i had to separate the versions.

     

    Now a lot of config code is simply using the same constant in different context for

    all the 3 ports (LNX does not need "Clear read only flags" for example).

     

    Even the language files are different for the 3 ports

    (f.ex. D32 only has a CD player at the moment).

     

    I think you should not waste too much time on this, since there are too many differences for the ports.

     

    I am glad you like NDN and hope you will continue supporting it in future :)

     

    Have a nice weekend

    Stefan / AH


  4. Hey!

     

    In fact it is not inconsistent:

     

    if you select ONE object in a directory NDN takes it's name and removes the extension (else you will get archive creation problems if the archiver, like RAR which takes the ".c" as the extension without adding ".rar")

     

    if you select multiple files then NDN uses the current directory name without removing the extension,

    and if you select ".." then you are actually selecting all files in the directory which means the complete directory name is used

     

    thanks anyway for the info since i was able to clean up some code as i found the location of this issue :)

     

    have a nice weekend

    Stefan / AH


  5. hi!

     

    from the release before the current one:

     

    [*] 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()

     

    to be able to use a double alt and a single alt for different operations

    i had to do this delay

    i will think of a way to make this selectable, for example if you selected alt as hotkey for quick search

     

    but this may disable 2* alt for the name completion code

     

    no search in help pages

     

    bye

    Stefan / AH


  6. Hello everyone!

     

    unfortunately i had to come home again this weekend,

    but fortuntely this enables me to release a quick bug fix for some bugs which are not tolerable at all

     

    sorry for any problems with the last release

     

    whatsnew:

     

    [*] changed the color of a highlighted line in a block in the editor in

    palette AH.PAL

    [-] D32: the misc. setup didn't show the history menu and crashed [A] (Garl)

    -> resources included the OS setup in the subgroups but not in the

    list box selection; now disabled if target is OS2 or DPMI32

    [+] added stringsx.PosRev() which works like system.Pos() but searches for

    the last position

     

    VIEWER

    [-] CRLF detection always failed for the first time [A]

    -> rearranging of HGL code in fviewer.TFileViewer.ReadFile() moved also code

    which had nothing to do ith HGL and broke the CRLF detection

     

    EDITOR

    [-] editor did not use tabsize from HGL file when loading files [A]

    -> rearranging of HGL code because of reading HGL after reading the file

    for the new content HGL match microed2.EditorLoadFile() was wrong,

    now reading 64 bytes and giving to HGL init in

    microed.TFileEditor.InitHighLight() before reading the file for the editor

    [-] search path search did not work correctly when the name was constructed out

    of "<validfilename>.<identifier>" like in pascal or java [A]

    -> searchf.FindFileWithSPF(): creates a list of all possible extensions out of

    the complete list provided to it, not only the first filename

    -> microed2.EditorOpenFileAtCursor(): now shows the list provided to the

    search code and not only the last name added to the list for better

    understanding of search/find problems

    [*] UnComment operation now also removes comments even if comment characters

    are not at pos #0 of the string

    -> micro_1.EdHandleBlockCmd()

    [+] comment code with multiline comment strings: /**/ {} ...

    useful for strict ANSI C code f.ex.

    -> new HGL option to choose between commenting each line and multiline

    comment: use multiline comments to (un)comment (generalflags 4096)

    -> highlite.TCommentTypeCollection.FirstLastLine was removed and

    PCmntStr pointers Comment(Start|End) was added

     

    SCREEN/VIDEOMODES

    [-] W32 NT: crash if started from a new install and the current screen Y buffer

    size was too big; standard in W2K seems to be 80*300 [A]

    -> added boolean NotToLarge to video.SetCrtData(): because the current mode

    was stored to the mode list NDN thought it was a valid mode

    -> this also fixed the "clearing of screen content on first start in new

    console" bug

     

    until next time

     

    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)


  7. Hey stonehead!

     

    Thanks for your nice words.

     

    If you would have read the whatsnew file and the online help you should have been ready what to see when using NDN under X :).

     

    Unfortunately the X support for console programs is the worst i've ever seen.

    While the linux terminal almost feels like our good old DOS i am simply not able to get at least the keyboard shortcuts working correctly. There's simply no way to configure them for a console program.

    At least noone was able to tell me otherwise and i have nowhere seen a howto (and believe me, i read a lot to make the linux port better)

     

    if you have ANY console program, which can hook the X messages f.ex., please let me know

     

    i will write down your crash reports, but at the moment i am not very motivated to work on the X-parts of NDN, since i know i won't get far...

     

    If you want please try the new version in a real terminal, and i guess you will like it better :)

     

    about rar: i am compiling, editing and packaging on a multi-os-system

    i know linux people prefer tgz, but it is simply much easier to use one archiver (not to mention, one of the best) for all my work

     

    the multi-os environment is also the reason for why ndn has the execution bit not set

    if someone knows a way to configure that let me know

     

    thanks for the bug reports

     

    Stefan / AH


  8. 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


  9. 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)


  10. hey dan!

     

    nope, no ideas at all

     

    fact is: X has almost no support for complex terminal programms, when it comes to keyboard reconfiguration

    which means, about 95% of the keyboard hotkeys are completely useless under a terminal

     

    NDN LNX is only really usable in the real linux console

     

    i have no idea how to change that

     

    the ctrl/alt stuff is even worse, because there's no way to read them at all (look at the statusline when pressing alt, shift or ctrl)

     

    we would have to think about completely new hotkeys for the linux terminals

    and as long as there's no possibility to completely configure NDN hotkeys via a config file this is useless IMO

     

    sorry

    Stefan / AH


  11. hi!

     

    it's usually a good idea to run drivers before running file managers (i remember that from my past...)

     

    i have a "tiny-d32-version" on my todo list

    but i have never started to work on it

     

    i don't know what else to do about this :)

    i tihnk a smaller/tiny version of NDN would not help you in this case

     

    Stefan / AH


  12. hello!

     

    sorry for the late reply

     

    there's no possibility to do that from inside NDN

    ndn reads /proc/mounts and gets all drives from there

     

    if i remember correctly the drives are sorted by their paths so it should not make sense to reorder this file

     

    if anyone of you has a nice idea how to sort or order these paths (options, algorithms) let me know

     

    have fun with the upcoming release

     

    Stefan / AH


  13. hi!!

     

    @haman

    thank you, i will take a look at it

     

    @dan

    winrar 3.20 indeed shows no error, but the cmdline version displays

    "unexpected end of archive" when listing the archive contents

    the compressed file is alright though

     

    i also will take a look at it the next weeks

     

    bye

    Stefan / AH


  14. hi FDF!

     

    sorry, i was not expressing myself clear enough:

     

    of course i got the W32 version of VPC running and compiling the VP-RTL in DOS (DOS 7.0 of W98) with HX.

    but the problem is that it hangs when i try to compile the NDN sources.

    i didn't have much time yet to check what exactly hangs VPC.

    maybe it's a little bug in the HX WINAPI library

    i think it can be "easily" found using the HX debugger, but i can't do that at the moment

    i would be very happy if someone else could check this

     

    ok, a quick braindump regarding the VP install:

     

    - install VP

    - install VKs files over it (simply extracting i think)

    - run APPLYDIF.EXE from the VP base directory

    NOTE: VKs v279 applydif versions crashed on my system(s) (also PE2LE.EXE)

    if it happens for you too try the older VP D32 archives from VK and copy/use these exe files, that worked for me

    - goto VP\SOURCE\RTL\ and run _all.bat, this compiles the new/updated RTL

     

    i hope you can get it to work now

     

    bye

    Stefan / AH


  15. Hello everyone!

     

    again sorry for the long delay, i had a lot of private things to do.

     

    before i post the news, i need to say a few things:

     

    i will be in munich for the next 4-6 months (maybe longer) for an internship at a big company,

    and i hope i can also do my diploma thesis there too.

    i hope to have a lot of free time for NDN - no more studying :).

     

    but the MAIN problem that arises because of this is that i don't have an internet connection at the moment.

    i am looking for reliable and cheap possibilities (DSL/CABLE).

    i don't know when i will be able to be online every day again.

     

    therefore i would like to ask everyone of you to wait with source code/bug reports via email until i repost here to tell you that i have access to internet again.

    or, of course, post all of your bug reports to the forum, but i won't be able to answer until i return home 1-2 times each month or have my internet account in munich.

     

     

    that's it for now. on to the news:

     

    [!] version was set to 2.30 because this is my first release in my 4th year

    of working on NDN (v?.3? = 3 years)

    [!] congratulations to Garl: all the best for your marriage from the NDN team

    [+] added "Ignore All" option to drivers5.SystemError (copy, delete etc...)

    [-] D32/W32 fixed several problems concerning

    Options.Configuration.Startup/Shutdown."Smart windows box close" [ANC]

    - D32 NT ...doesn't work since WinOldAPI is not supported

    - W32 there's no way to prevent the window from closing, therefore removed

    this option and always exit

    -> removed dnutil.W95QuitSent

    [-] LNX added SIGTERM handling; NDN quits on receiving it

    -> added vpsyslnx.SigHandler(), used from SysCtrlSetCBreakHandler

    caught in drivers4

    [-] W32 TrayIcon wasn't removed when closing window via [X]

    (Vladimir Bochkarev) [A]

    -> NDN has not quit correctly after receiving the closing event in

    drivers4.TVCtrlBreak()

    [*] added Options.Configuration.Color Setup.Dialogs.Cluster Disabled

    (Checkboxes/Radiobuttons) to the color setup [Z}

    [-] LNX modified/created files got 0200 access rights afterwards [V] {P}

    -> vpsyslnx.SysSetFileAttr()

    [*] added Oracle SQLPlus highlighting

    [-] D32/LNX/OS2 tetris/piton gameplay was too fast (Rugxulo)

    -> LastDelay code used different multiplier for W32

    [*] updated russian resources {P}

    [*] LNX: Reseting NDN produced an error message because ECHO was not found

    -> lowercased the ECHO in *.dnl

    [*] HGL: added GRUB and TASM MAKEFILE highlight data

    [*] D32: VPC.EXE can now also be used in pure DOS with the HX DOS Extender

    UPDATE: the RTL can be compiled w/o problems, but trying to build NDN

    hangs VPC

     

    ARCHIVES

    [+] added overwrite files (force) option to extract archive dialog

    -> changed *.dnr and archiver.UnarchiveFiles.MakeATypeStr

    [*] russian characters correctly shown in CAB archives [NC] {G}

    -> arc_cab.TCABArchive.GetFile uses keymap.Ansi_Ascii()

     

    FILE COPY/MOVE/OPEN/CREATE/DELETE

    [*] filecopy and advance0 had almost identical CRC code, commented filecopy

    [+] reset copy options option (Dandv) and delete/keep partial files option

    [*] merged the copy/rename move dialogs into one, only changing title and

    using checkbox states

    -> added views.TWindow.SetTitle, commented dlgRenameDialog, enhanced

    filecopy.CopyDialog

    [-] LNX: deleting symbolic/soft links still handled the target and not the

    linkfile in subdirectories (GPFault) [A]

    -> eraser.EraseFiles.DOSDelDir checks if file is a link

    [+] Copy/move option: Preserve directory structure (Garl) {Z}

    (destination path = <destpath>+<srcpath>+<filename>)

    [+] concurrent/background Copy/Delete is possible - not FTP (Mansoor/Dandv)

    -> while copying only few time for other tasks,

    only one copy/delete process allowed

    -> filecopy/eraser.Info.Options.ofSelectable, gauge.DisPatchEvents*App*,

    define filecopy.BACKGROUND_COPY/eraser.BACKGROUND_ERASE,

    fltools.CM_EraseFiles.Active/ChangeLocked

    gauge.TWhileView.HandleEvent.evBroadCast.cmFindView

    [-] D32/WINDOWS COPY/MOVE: when trying to copy DIZ for a file on a drive

    which has LFN disabled NDN couldn't handle the DIZ file [A] (Eugeniusz Kosek)

    -> fileio.lFileNameOf() didn't check lFile.AssignFileMode correctly

     

    DNEXEC/EXTERNAL VIEWER/EDITOR DNEXEC.EXECUTEFILEEXT/LOCAL_GLOBAL_MENUS

    [-] W32 !: & ~! still sometimes returned crap (GPFault) [A]

    -> lfn.lGetShortFileName was not 100% in every case (usermenu.MakeString)

    [-] LNX: screen output was bad sometimes when executing files [V] {P}

    -> vpsyslnx.SysExecute called SuspendTerm after Fork()

     

    VIRTUAL FILE SYSTEMS (VFS)

    [-] NETWORK: correct display of russian filenames [A] {G}

    -> keymap.Ansi_Ascii: removed from network.GetResources,

    added to vfs_netw.TNetDrive.GetResourceList

    [*] FIND/BRANCH: loaded file lists after starting NDN...

    - multiple duplicate selected files were not reselected correctly [NC]

    -> added filescol.TFileRec.NameCRC which holds a CRC32 based on the

    complete filename: faster and 100% compare for equal names

    (since filescol.TFileRec.Owner isn't stored to disk)

    * reading list (with marked files) took very long

    -> flpanelx.TFilePanelRoot.RereadDir was improved: faster and smaller

    (about 3 times faster)

    -> new desktop version!

    [*] FTP: sockets now are created with the SO_KEEPALIVE flag

    [+] FTP: implemented a keepalive function to prevent disconnection

    -> views.TView now stores/loads UpdTicks to/from disk,

    added updview, views.RegisterTo(Prior|Background) init the

    views.TView.UpdTimer, added vfs_ftp.TFTPConnected.Update

    [-] FIND: giving sizes to the advanced dialog like 1M didn't work [DNOC]

    -> modified stringsx.StoI() to except strings with a trailing char: KGMT,

    basically all number inputlines should now be able to correctly read

    '12k' as 12*1024

    -> also added stringsx.StoZ() for 64-Bit integers

    [*] FIND: multiple concurrent searches are not possible; when a file search

    is active and a new search is started NDN will select the active window

    [*] added vfs_driv.TDrive.CanHandleDiz():Boolean

    [-] TEMP/FIND: DIZ was not (correctly) handled (Eugeniusz Kosek) [DNOC]

    - no desc. display in panel: CanHandleDiz in vfs_drive.TDrive.GetFull

    - toggle descs didn't work (CTRL-K): CanHandleDiz in fltools.CM_ToggleDescriptions

    - edit DIZ (ALT-INS) support: modified vfs_driv.TDrive.EditDescription,

    flpanelx.TFilePanelRoot.CommandHandle.cmEditDiz; corrected

    dizfiles.CalcDPath

    - DIZ handling in COPY/MOVE (F5) and FAST RENAME (ALT-F6) operations:

    added dizfiles.GetPDIZ(), used

    * 3 times in filecopy.FilesCopy before ImportDiz() blocks

    * 2 times in fltools.CM_RenameSingle after RenameF()

    - get PFILEREC.DIZ while creating/rereading lists (like TDrive):

    * 2 times in vfs_find.FindFiles after NewFileRec

    [-] FIND: bug when searching <name>.*: '.*' removed completely [A]

    -> vfs_find.FindFiles removes .* but adds a '*'

    -> maybe this needs more work

    [+] TDrive.GetDriveID(): A-Z?#* used in flpanelx.(_ChangeDrive|_DoCtrl)

     

    DBF VIEWER

    [-] fixed view of empty dbase7 files {G}

    [*] now NDN can view DBF with corrupted header {G}

    !!! Modifing this file can corrupt data !!!

    -> if Messagebox(GetString(dlDBViewHeaderError) , nil, mfYesNoConfirm) = cmNo

     

    RCP/RESOURCE

    [-] Color setup contained rest of the diskfixer colors (Vladimir Bochkarev) [A]

    -> added IFDEFs for terminal and diskfixer color data

     

    CLIPBOARD

    [*] LNX: mouse clipboard actions only copied/pasted 15 chars (GPFault) {P} [V]

    -> removed KbdBuffer limitation of 15 in vpsyslnx.KbdTerminalThread

     

    TURBOVISION: VIEWS/DIALOGS/MENUS/OBJECTS

    [*] added views.TView.(|De)RegisterSelf(ToPrior|ToBackground)

    [*] improvements to the display of current/max items in ListBox views

    -> removed SetSubTitle() from views.TListViewer.Draw() and

    added it to views.TListViewer.HandleEvent()

    [+] added TComboBox: can replace any TRadioButton and save quite some space

    in dialogs (thanks to DN/2 for the idea)

    -> added.dialogs.TComboBox, works like common Windows/GUI implementations

    -> used in

    dlgFMSetup.Quick Search

    dlgInterfaceSetup.Drive Info

    dlgConfirmations.Open new window?

    dlgEditorDefaults.Default code page/Line divisor

    dlgViewerDefaults.Default ~V~iew Mode

    dlgDisAsmDefaults.Size display

    dlgSystemSetup.Use Config 1/2

    -> updated the *.pal files

     

    DIRECTORY TREE

    [+] added [CTRL-HOME/END] and improved mouse wheel handling

    -> tree.TTreeView.HandleCommand

     

    FILE PANEL

    [-] slow compare directories even for small filecounts (Dandv) [A]

    -> fltools.CM_CompareDirs: [ESC] was polled too often

    [*] unmark based on NameCRC's, which should be faster

    -> filescol.TFilesCollection.Compare: using TFileRec.NameCRC for

    smCopyUnselect, smGetSelection, smUndefined...,

    added USE_FILEREC_CRC define

    [*] Quick Dir Window (ALT-SHIFT-0) didn't handle '~' in pathnames

    -> dnutil.TDnApplication.HandleCommand().DoQuickChange()

    [-] drive letter invisible when selecting drive from FIND/BRANCH (Dandv) [A]

    -> flpanel.TDriveLine.Draw didn't draw correctly if dtFind;

    changed vfs_find.TFindDrive.GetRealName() to return the actual

    base directory, used in

    flpanelx.TFilePanelRoot.CommandHandle._DoCtrl

    [*] using TDrive.IsUp (also via Changeup) in

    flpanelx.(_CtrlPgDn|_CtrlPgUp|_CtrlHome)

    [*] Options.Configuration.System Setup

    - single disks can be removed from DriveLine display (Necromancer)

    -> added commands.ossNoDriveLine, used in

    flpanel.TDriveLine.MakeDriveLine;

    modified flpanelx.TFilePanelRoot.CommandHandle.HandleCommand:

    added cmRereadForced handling

    - LNX: "Don't use LFN" was removed

    [-] LNX X: file execution via mouse (double click) hung up NDN (GPFault) [V]

    -> vpsyslnx.SysTVInitMouse didn't init MouseBuffer(Mutex|Count)

     

    SCREEN/VIDEOMODES

    [*] LNX: now using SIGWINCH to detect window/screen size changes

    -> disabled previous method in dnapp.TProgram.Idle,

    added SIGWINCH handling to vpsyslnx.SysCtrlSetCBreakHandler and

    drivers4.TVCtrlBreak (works in X and real terminals)

     

    MOUSE

    [+] D32: added CuteMouse v2.0 alpha 4 mouse wheel support

     

    have fun, and see you soon hopefully

     

    Stefan / AH

     

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


  16. Hi Vasily!

     

    OK. Sorry, if my previous post was too critical, I need to think on much of it again.

    no no, it's really ok

     

    int 80 is absolutely non-stndartized and really changes over years, while LINUX C API is fixed and never change.

     

    [very imho]

    the only non-ugly way to communicate with Linux kernel is using statically or dynamically linked libc.

    using int 80 intead of libc is like using ntdll.dll instead of kernel32.dll

    I see no way to change this situation mostly because of vp.

    [/very imho]

    LINUX C API SHOULD never change, but if you look through all the APIs you can also find quite some

    deprecated APIs. can we rely on the different versions of libc.so.x ?

     

    look at \vp\lib.lnx\defs\libc_5.def, there you can add all lib calls you want,

    like in \vp\lib.w32\defs\win32.def

    but i haven't checked it out myself yet

     

    one problem i see is: what happens if we need libc.so.6 and there will be a libc.so.7 in a new linux release?!

    is it safe to create a link to libc.so.7 with the name libc.so.6?

     

    at the moment i don't believe that there's any int 80h call that has to do anything with the current problems

     

    Sorry, i didn`t look in sockets before your post. If there is really dynamic linking that works - it`s good

    but ldd says

    $ldd ndn

    not a dynamic executable

     

    (???)

    and pe2elf is really strange tool...

    all i can say is that it works :)

     

    such background processing in DOS is very good, but in modern multithreading OS background processing without inkernel threads is slow and imho ugly.

    only the D32 RTL has built in thread support

    OS2, W32 and LNX use system/kernel threads

     

    when i say "UTF-8 support" i mean all strings inside NDN to be in UTF-8 (which is variable bytes-in-character encoding). Variable bytes-in-character lead to breaking most of TVision. So, speaking really, it is impossible.

    Converting to/from UTF-8 in interface with terminal and/or filesystem imho is ugly and lead to lot of bugs.

    there's no reason IMO to do EVERY string in unicode

    for speed reasons alone and to support older OS's and PCs i will never do that

     

    that's what the RTL is there for

    we detect the OS, we need to know what to do with it

     

    i tihnk it can be done, if we need it at all

     

    here is the meaning of part i agree (not strict translation, but meaning is mostly the same):

     

    IMHO ndn developers should pay attention mostly to linux not to Windows. There are many file managers for Windows that are good. NDN is as good as Far, but it is nearly impossible to create a filemanager much better than Far. But on Linux platform there is no good console filemanagers and NDN have a chance to became the Main console fm for linux.

    i partially agree

     

    *I* have to focus on all 3 ports, because i use all of them and i don't want to drop any port

     

    one problem is that i don't have that much time to focus on LNX,

    because i have a big todo list of features and bugs to solve, not only focused on LNX

     

    another problem is linux itself, which is so much different from DOS/W32/OS2

     

    i have worked on NDN/LNX for much too long time to drop it now

    even if it will progress slowly, i will continue working on it, with VP

     

    best regards

    Stefan / AH

     

    PS: i have succeeded in making a D32 version of VPC.EXE, which runs in pure DOS with the help of the HD-DOS Extender. Just in case someone might want to develop directly in DOS.

×