Short:    Fixes for patch.library (V4.134)
Author:   snfuchs@sokrates.franken.de
Uploader: snfuchs@sokrates.franken.de
Type:     util/libs


This release of patch.library (V4.134) fixes the following bugs:

- Under rare conditions, patch.library would cause crashes.

- Patches that used PATT_SaveRegisters, crashed, if they were disabled.
	Note: This tag will be dropped in V5.

- The low-memory handler now always tries to free memory, not only,
 	if not enough chip-ram is available.


- After temporarily detaching a patch in RemovePatchTags, reattaching
       the patch did not work as it should, causing various problems
       including recoverable alerts with PatchSetFunc.
       (This bug was introduced with patch.library v4.112)

- PATT_AddTaskName and PATT_AddTaskID now install the same name/ID as
       documented only once (removes possible enforcer hit).

- Patch.library uses the timer.device instead of dos.library Delay()
      This fixes possible problems, when removing patches in a task context
      (problems never seen)

- Some functions no longer block the semaphore in exclusive mode.
      Shared mode is used on Kick V39+. This helps multitasking.


- Patch.library now ignores the usage-counter for dos.library/exit() and
      exec.library/RemTask() functions, as these functions do not return
      to the calling task.

- With the implementation of the low-memory handler (in V4.107) the Expunge
      code could crash the machine

- The above bug however was hidden by another bug, which made it impossible to
      remove all patches (One (deactivated) patch always remained in the lists)

- Patch.library could cause some (harmless) enforcer hits, when installing
      patches


- New feature: On Kick 3.0 and above patch.library now installs
      a low-memory handler

- Using the TaskList feature caused the patch to crash
      (My Assembler was optimizing a jsr to bsr)
      This fix makes PatchWBPens work again.

- patch.library, in conjunction with the support program PatchSetFunc,
      was unable to remove patches, which replaced a whole function.
      This also fixes crashes with LoadResource.


- patch.library did not work correctly with PatchControl:
      It no longer writes directly into the jump-table, if the
      support program PatchSetFunc is not installed.
      It uses exec/SetFunction() instead.

- A possible deadlock problem, when waiting for a patch to finish has
  been removed

- The task/taskname filtering system broke in early V4



The full patch.library package is available on Aminet
   utils/libs/PatchLibV4.lha


============================= Archive contents =============================

Original  Packed Ratio    Date     Time    Name
-------- ------- ----- --------- --------  -------------
      33      33  0.0% 21-Oct-96 15:46:10 +File_Id.DIZ
    9976    5724 42.6% 21-Oct-96 15:46:10 +patch.library
    2588    1239 52.1% 21-Oct-96 15:46:10 +PatchLibV4FIX.readme
-------- ------- ----- --------- --------
   12597    6996 44.4% 09-Nov-96 19:09:30   3 files
