Category : Dbase (Clipper, FoxBase, etc) Languages Source Code
Archive   : OCLIP.ZIP
Filename : HISTORY.TXT

Output of file : HISTORY.TXT contained in archive : OCLIP.ZIP
º o:Clip º
º An Object Oriented Extension to Clipper 5.01 º
º (c) 1991 Peter M. Freese, CyberSoft º

[08/31/91] Version .90

Changed the syntax of the method definition to use '=' instead of comma
as a delineator between and . This was done to
allow greater compatability with Class(y) at the advice of Anton van
Straaten. This new syntax also allows multiple method definitions to be
comma separated, i.e., the follow is now legal:

METHOD New=FooNew, Bar=FooBar, Save, Debug
VAR ......

Removed the self() function. References to self() will now use the
QSELF() function contained in Plankton. This reduces the code overhead
by a slight amount, and should improve performance as well, since
QSELF() is a Plankton operator rather than an external function. I
would have used this function to begin with, but I was unaware of its
existance until it was pointed out to me by Anton.

Renamed some of the internal symbols to use 'IVAR' and 'SIVAR' instead
of 'OVAR' and 'SOVAR' to be consistent with current buzzwords.

There is still a problem with the debugger when using 'mangled' method
names (i.e., MethodUDF <> MethodName). The debugger insists that the
MethodName function does not exist. I'm still stumped on this one, but
I have a feeling the problem may be in one of the Clipper __Class

[09/01/91] Version .91

Eliminated the need to reference Self as a function - it is no longer
necessary to use parens. This was done to allow compatability with
Class(y) and SuperClass. This may require doing a global replace for
"self()" -> "self" on method functions, but other than that, should not
cause any problems.

Removed the macro call in __DefineClass for the parent class function
call. This call ensures that a new class's parent class definition
function has been called before the subclass's class definition
function. This is now accomplished via a code block, which should be
faster as well as require less overhead, but requires a little more
trickery on the preprocessor's part. Notice that an interim command
state is necessary in order to convert the ParentClass to a function and
then blockify.

[09/21/91] Version .92

Added the ability to call an overridden method. This is accomplished by
preceding the desired message with a "Parent" or "Super" message. For
example, to call an overridden New method, we would use:


Messages should not be chained after calling an overridden method, since
they will not return a proper copy of self. This was done to allow
Methods to return values other than self if desired.

[10/15/91] Version 1.00

First public release. Expanded docs and cleaned up source code.

[11/25/91] Version 1.0a

Corrected a bug which would cause infinite recursion if parent methods
were not consistently overridden. Recreated LIB file with Microsoft LIB
manager to eliminate Blinker warnings about lack of cross-reference

Also, it is now possible to reference self within a code block.
Previous references to self within code blocks would treat the blocks as
objects and would return self. Self now returns the object referenced
within the method UDF. To effect this change, it was necessary to make
a (hopefully the last) syntax modification. ALL method UDF declarations
now must be precededed by the keyword METHOD. For example:

FUNCTION BoxNew( ... )

now must be declared as:


This syntax is compatable with that currently supported (and required)
by Class(y) and SuperClass.

  3 Responses to “Category : Dbase (Clipper, FoxBase, etc) Languages Source Code
Archive   : OCLIP.ZIP
Filename : HISTORY.TXT

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: