History file All dates in this project are in Dutch (probably European Continental) format, dd-mm-yy. Changes to main units/projects are prefixed by some code EWin =EWindow; EStr =EStrings; EDir =EDirTree; EDat =EDate; ELib =ELib; EPas =EPasStr, Pascal STRING version of EStrings + Minor change - Major change # Evaluation, personal notes. * Bugfix / Manual % about the demo-files/main programs Date Cat. Type. Descr | | | | 20-07-98 - Initial release to webpage, and FPK maintainer Designated as version 0.00 from now on. Next will be 0.01 After 3 days of FPK programming. 21-07-98 EWin + Tried to get EWindow BP compatible. It compiles, but doesn't work right (Getkey problems?) EStr + New ELib procedure, a REAL one (PChar, ATT assembler LTrim # Found a CHARSET testing construct in set.inc, could try to do Killchar right away. Glup! EStr + Done, not even that difficult. KillPChar is the name. (KillChar already used for STRING variant required for DFree or Dict) EStr + StrStr (Pchar), fills a string with a number of characters. Mere a typed FillChar, but who cares. EStr + Decided to move all PChar routines to EStrings. New module created.... EStr + Added RTrim and AddBackSlash. 22-07-98 EStr + Added KillBPChar EDir # Started porting DirTree (FPK name: EDirTree), dilemma and problem are the stringish types. What to do, convert to PChar, or keep non pointer based strings Decided to ask help in the pascal area. Problem is making sure that all strings are properly disposed. I don't know PChars (and FPK's implementation of it) that good. EDat + Created. Ported LeapYr, DayNr 23-07-98 EDat + Added ToUnix and FromUnix ------------ Packaging. version 0.01 for a friend, who is also interested in FPK. ------------ EDat + New procedure,DayNrBack EDat + new procedure,WeekNr. Problem in recursion though, main routine working. EStr + ReplaceChar (1 minute, incl testing. My personal record.) 25-07-98 EStr + new procedure, RGrow EStr + new procedure, LGrow EStr + new procedure, StripChar EStr + new procedure, KillChrTot EStr + new procedure, CharPos EStr + new procedure, NextCharPos EStr + new procedure, StripDoubleChar EStr + new procedure, SetCharPos. (Average programming time, except LGrow: 4 minutes) # 3 downloads up till now. EDir # Decided to keep internal stringtype STRING, and a conversion from String to PChar in the conversion routine. A total conversion to fully string is very simple, and done in a minute. PChar's in the recursion routines is asking for trouble. + Got some parts of EDirTree working. EDat # Can't get Easter working. Code seems to be right. + Copied a translated Easter to PASASM, a unit meant for porting purposes. 2?-07-98 EStr + RCharPos EStr + NextRCharPos. ( 1 1/2 minute, close, but not good enough) # Decided to create a EPasStr routine, with the same procedures as EStrings. Experience with DirTree convinced me. Low priority. Translate ELIb string procedures to Asm, and moving them to Pasasm. EDir # Very weird bug in EDir code. Gonna try and see what BP says, but I don't have BP here. I haven't used FPK specific code I think. 27-07-98 EDir # Problem pops NOT up in BP. NOT a problem in the source. Source added to problems archive. EDir + Tree building part completed in BP. {$M} directive required though. EStr + All procedures in EStrings renamed to P to avoid clashes. EPas + LTrim. EPas + KillChar EPas + StrStr ---------- Release version 0.02, mainly to publish a source which shows a possible bug in the compiler on the net. (DirTest/EDirTree) ---------- EPas + RTrim EPas + ReplaceChar EPas + KilLBChar EDir + FileScan compiles (under BP), but is still untested. I tried to port Indexer, but since it won't work on VFat drives (without some DOS7 support) EPas + StripChar EPas + KillChrTot. EPas + StripDoubleChar EPas + CharPos EPas + RCharPos ELib # Cleaned ELib. Removed procedures made in assembler, moved ELib.Item to EPas. EPas + Item (Moved from ELib) for charsets. New Item (overloaded) for only one char. EPas # Make a ItemS version? + Done, ItemS version. + New file FileFind.pp, demonstrates EDirTree.FileScan procedure EDir - EDirTree operational. But still doesn't compile under FPK, only BP. --- Version to Michael van Canneyt, zipped with bugreports. EPas + ItemS to CHARSET-Item. EPas + RGrow EPas + NextCharPos EPas + CharPosSet. EPas + NextRCharPos EPas + LGrow EPas - Initial EPas ready (all EStrings procedure translated) EStr + PCopy. Like copy for passtrings, copy a number of characters starting at a certain position to another string. Should be done in assembler. EStr + Item procedures for PChar, name PItem and PItemS EStr + PCopy redone in ASM. EDat + DaTiToStr. Very flexible dateformatting. Pascal Version EStr + GetBetween ported EPas + GetBetween ported # All major string routines ported except the various VAL and STR primitives (numbers to strings or vice versa) ---------- Released version 0.03, contributed package to FPK list. ---------- 31-07-98 EDir * Bug in EDirTree fixed. EPas,EStr and EDat + Busy changing procedures to full assembler procedures (tighter, cause compiler generates extra leave and ret). Compiler still generates ret. Removed the rets from the procedures and let the compiler handle it. / Started writing a manual in HTML. Ugh. / Initial page for EDate finished. / Started making a EWindow page. Copied some text from xtdlib.txt. * EWindow.WinClose was faulty declared. It should be a VAR parameter, corrected. / Initial page for EWindows finished. / Started making a EDirTree page. # Annoyed that there was no possibility to include an element in a set, I implemented INCL and EXCL. However, two kinds of sets exist, smaller than 33 bits, and 33-256 bits. The first occupies a dword, the second 8 dwords. Made 4 procedures (INCL and EXCL for both situations) + ELib new procedures INCL32,EXCL32 INCL256, EXCL256 / EDirTree page finished. Phiew, bigger than entire previous (xtdlib.txt) documentation. % Dict was sometimes, sometimes not included with package. Now it's default included. % Removed Pascal string and ELib procedures from Dict. Recompiled Dict. Didn't work. Weird bug, but the bug is BP compatible. CharPosSet returns now a word. A word was compared to -1 which failed. Corrected to 65535. Made it a constant in epasstr and estrings. 01-08-98 % Fixed bug in DirTest. Probably caused by using pathstr as much as possible in the definitions. / Started and finished EStrings page. / Made a small EPasStr helppage. References to EStringspage, since most procedures are the same, except for the differences between PChar and Strings (1..x instead of 0..x-1, terminating zerochar) # Compiled all library-units with -va and removed all unused local variables + More advanced detection in EWindow.pp. Will try EWindow on monochrome screen tonight. # According to Michael FPK supports these operations via INCLUDE AND EXCLUDE. Would be easiercause own procedures often need ORD or such things. + CHARSET is now only defined in ELib, but imported into the definition of EPasStr and EStrings # Compiled with -Ratt. Tons of errors (over 140). Will try to remove these, but won't compromise the code. * BugFix EPasStr.Replacechar, test for empty string. * BugFix EPasStr.KillChrTot. Length was badly updated and early out (jecxz) pointed to label in stripchar. Change to ATT syntax would solve these kind of problems. + Rearranged all local labels in EPasStr to .Llocal labels, suitable for ATT syntax. No more bugs found. % Played with Dict a bit. (mainly the charsets that control extracting words from textfiles) Commented out neat deletion of tree. Was very slow for huge trees, and useless. ----------- Version 0.04 released ----------- # Updated version number in xtdlib.txt # Added pics(HTML manual) to distribution ----------- Version 0.04b released ----------- + new procedure epasstr.compare. *? New snapshot won't understand definition of addaddr *? New snapshot won't compile anything -Ox, removed it from compile.bat EPas - Pascal versions of all EPasStr routines, with some conditionals. Compile ASM=i386 (global) AND UseAsm(per unit) EDir, EPas, EStr * Appendbackslash and other procedures use / under linux. All assembler units: * All new snapshots have a different way of handling ASSEMBLER procedures; some equates are needed now, see unit headers and syseq.inc EPas # Rough concept of Compare procedure working for pas-strings. EStr # Fixed EStrings to be more AT&T (-Ratt) compatible. EStr + Initial version of StrDelete. It worked right the first time. I can't believe that, since it's quite complex. Tested 10 minutes with all kinds of weird strings, but couldn't get it to fail. But you will probably get a failure the first time you run it:-) EStr - All pascal equivalents for EStrings, including EString only procedures PCopy and StrDelete implemented. EStr + PUpperCase and PLowerCase EPas + UpperCase and LowerCase EPas * Appendbackslash had a bug in the Linux-conditional code, a backslash was still appended. EDat * Fixed bug in ToUnix. ToUnix heavily tested and OK. FromUnix still bugged. (one day off, except round newyear, and the 29th of februarty) # general : fixed some small things (case-sensitive filenames) to be able to compile the routines for Linux. ---------------- Version 0.05 released ---------------- ELib + WrHex and WrLngHex. With F : Text overloading. Othr + ECrc32 created, and working for assembler. Othr + ECrc32 Pas-CreateCRC32Table Othr + Ecrc32 other pascal routines working, except calccrc, problems with open array parameters. + FrameStack variable now autoset by compiler-version-test ECRC - ECRC32 finished (help written, with tested example. Several problems, only assembler version works, only with the old (may) release, not with snapshots. Two problems with open array parameters. ECRC - ECRC32 completely finished. Stupid, asked Michael the same question twice. (Pascal working) EDir * Implemented Findclose, only for Linux, compiles and works under Linux. ELIb + Some conditionals to ease compiling under Linux. (around uses go32 etc) ELIB # ELib is partially intel-only. I should remove all doubtfull procedures to a different module, and keep ELib clean, since it's imported by a lot of other units. # Complib doesn't try to compile EWindow under linux. + ArchiveMethod implemented, most common filetypes except ARC ARC+ HYP and PAK. 12-08-98 EFIO, ELib + Moved all filehandling routines in ELib (WrHex,FileExists and ArchiveMethod) to newly created EFIO. EFIO + Extension procedures. EFIO + Help made. EFIO + DelDir command (DelTree dos-command, RM -RF), based on EDirTree.FileScan, but standalone.