dos_compilers/Zortech C++ v206/TOOLS/READ.ME
2024-07-02 07:30:38 -07:00

83 lines
2.7 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

C++ Tools Version 2.0
24 November 1989
slist/ gslist
slist::clear() used to delete the object that the linked
list node pointed at as well as the node. This was
an error if the object was not created via new! The
clear function now has an int argument defaulted to
zero. If the argument is non-zero, then slist::clear() does
delete the attched objects. If zero - i.e. normally - it
leaves them intact. Only use the non-zero argument if ALL
the objects in the list were allocated dynamically. If
you want to clean up like this call clear explicitly rather
than leaving it to the destructor. An equivalent function
void gslist(type)::flush(int = 0);
is provided in the generic gslist class. Call this with a
nonzero argument to purge the list nodes AND associated objects.
dlist/ gdlist
The doubly linked list code was similar, so functions
void slist::setdel(int = 0);
void gdlist(type)::setflush(int = 0);
have been added to allow cleanup of the objects on the list as
well as the list nodes. This also allows objects removed from
the list by gdlist(type)::update() to be automatically deleted.
To switch on deletion of objects as well as nodes, call setflush()
with a non-zero argument. If flushing has been set, the
destructor will purge nodes and associated objects - otherwise
just nodes.
text
A call to gdlist(type)::setflush() - with a non-zero argument
has been added to the constructor for test, so that the objects
on the list - in this case lines of text - are cleaned up in
updates and by the destructor.
Event
The declaration of Event::get() in event.hpp has been tweaked
to get round a compiler bug. The original code is still there
commented out, and should be replaced s soon as the compiler
recovers. The test program event1.cpp is disabled by the same bug.
Version 2.01
____________________________________________________________________________
Modified makeall.bat for libraries to chech for presence of .HPP
files.
Modified makefile to generate correct library names.
Modified WINDOW.CPP to avoid multiple deletion of buffer, and
to search in the correct direction in window::close().
int window::close()
{
if (!buffer)
return 1; // closed already
if (ws->overlapped) {
for ((ws->wl).end(); (long) (ws->wl)() != (long) this; (ws->wl) -= 1)
// was previously += 1 !!!!
if (!(ws->wl)()->suspended)
return 0; // embedded can't close it
}
if (!suspended)
disp_pokebox(buffer,tlr,tlc,brr,brc);
delete buffer;
buffer = 0; // close is also called by the destructor
*(ws->wl); // link it out
return 1;
}