Technical information
This section describes some of the patches which were applied to
asl.library. Please note that this is NOT any kind of hack nor kluge. It
is simply a case of reverse-engineering the library and adding (with the
Commodore programming rules in mind) several features. As there ARE people
who like to play with undocumented/private parts of code, every possible
step has been taken to avoid problems even in such cases. As a result,
during all the testing time we encountered only ONE program that won't work
as expected - PatchAsl by John Corigliano - but this is quite
understandable I guess. It would come as a big surprise if anything else
would fail to work with this new version of asl.library.
Now, some paragraphs for technically-minded people who would like to know
how it works internally:
First, one new private function has been added, which is used by
preferences program to copy new user settings to the internal ASL buffer.
Also, prefs program saves settings to ENV: (if "used") and to ENVARC: (if
"saved"). As it operates on callers context, asl.library could not use
usual notification routines without creating additional task, which we
thought was unnecessary overhead. Hence, changing sys/asl.prefs variable
in ENV: manually won't be noticed by asl.library - you have to use
preferences program for this to work. It can be changed if it really
bothers you, please give feedback.
Internal settings buffer is obviously protected with semaphore to avoid
havoc that could break out if prefs change/requester opening happened at
the same time.
Whenever new requester is being open it receives a copy of its settings.
Private parts of File/Font/ScreenMode requesters have been extended to hold
it. This way even if you change prefs while a requester is open nothing
wrong can happen.
Also, text width calculations in file requester were changed, allowing it
to look reasonably with both proportional and fixed-width fonts.
HTML Conversion by AG2HTML.pl V2.950424, perl 5.000 & witbrock@cs.cmu.edu