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


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

- 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/RemoveTask() 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% 19-Sep-96 21:36:58  File_Id.DIZ
    9976    5720 42.6% 19-Sep-96 21:02:06 +patch.library
    2309    1107 52.0% 19-Sep-96 21:41:38 +PatchLibV4FIX.readme
-------- ------- ----- --------- --------
   12318    6860 44.3% 03-Oct-96 01:41:14   3 files
