These patches apply only to the NeXTSTEP 3.1 distribution for NeXT hardware. Patches the loginwindow.app (of NeXTSTEP 3.1) to - remove the restart and power buttons from the login window Patches the Workspace.app (of NeXTSTEP 3.1) to - (effectively) ignore the power key - remove the "Power Off" button from the Log Out alert panel (a panel not usually seen, I think) Patches the WM.app (of NeXTSTEP 3.1) to - remove the "Power Off" button from the Log Out alert panel The specific patches are described in greater detail below. The effects listed above are produced regardless of the PowerOffDisabled default's setting. This patch only causes the power key to be ignored while the Workspace.app/WM.app is running; the power key is still "active" at the login window. To disable the power key at the login window, set the loginwindow's PowerOffDisabled default from a shell (as root): dwrite loginwindow PowerOffDisabled YES This program must be run as root to work correctly. You should have backups of the affected files before running this program, just in case. Log out and log in as user 'exit' at the login window to have these changes "take affect". THIS PROGRAM IS DISTRIBUTED WITHOUT WARRANTY, EXPRESS OR IMPLIED. Christopher J. Kane (kane@cs.purdue.edu) Released into public domain; August 15, 1993. *** The Patch to loginwindow.app/loginwindow in Detail *** The buttons on the login window are instances of the LoginButton class. This patch works by patching the loginwindow.app's LoginButton class's instance method initWithImage:altImage:andString: to be equivalent to - initWithImage:image altImage:altImage andString:(char *)aString { return nil; } Old instructions New instructions 000072b0 linkw a6,#0xffe0 linkw a6,#0x0 000072b4 fmovemx fp2,sp@- clrl d0 000072b6 unlk a6 000072b8 moveml d2/d3/d4/d5/a2/a3/a4,sp@- rts *** The Patch to Workspace.app/Workspace in Detail *** The patch to Workspace.app involves three routines: 1) -reboot The -reboot method displays an alert panel: Title: Reboot Message: Do you really want to reboot? Buttons: Reboot, Cancel This patch prevents the panel from being displayed and makes the routine behave as if the user had pressed the Cancel button. It replaces the jump to the "display the alert panel" subroutine with an instruction to set the "value-return" register to the value returned by the subroutine when the user presses Cancel. Old instruction New instruction 0001be64 jsr a2@ clrl d0 2) -powerOff The -powerOff method displays an alert panel: Title: Power Message: Do you really want to turn off the computer? Buttons: Turn It Off, Cancel This patch prevents the panel from being displayed and makes the routine behave as if the user had pressed the Cancel button. It replaces the jump to the "display the alert panel" subroutine with an instruction to set the "value-return" register to the value returned by the subroutine when the user presses Cancel. Old instruction New instruction 0001ce4e jsr a2@ clrl d0 3) -terminate The -terminate method displays an alert panel: Title: Log Out Message: Do you really want to log out? Buttons: Log Out, Power Off, Cancel This patch removes the Power Off button from the panel, by passing NULL as the third button's title (originally "Cancel") and by passing "Cancel" as the second button's title (originally "Power Off"). It also eliminates the former Power Off button's action, so when the new second button (Cancel) is clicked, the previous third button's action (Cancel) is performed. Old instructions New instructions 0001c0da pea 0x1f8aa:l nop 0001c0dc nop 0001c0de clrl sp@- 0001c0e0 pea 0x21463:l pea 0x1f8aa:l 0001c11e tstl d0 nop 0001c120 beq 0x1c122:b nop *** The Patch to WM.app/WM in Detail *** The patch to WM.app involves only one routine, -terminate:. This patch removes the Power Off button from the panel. It works in the same way as the patch to -terminate in the Workspace.app patches. Old instructions New instructions 0005729c pea 0x5d22a:l clrl sp@- 0005729e pea 0x5d22a:l 000572a2 pea 0x5d1f7:l 000572a4 pea 0x5d1f7:l 000572a8 lea _WMSTR:l,a2 000572aa lea _WMSTR:l,a2 000572ae jsr a2@ 000572b0 addqw #0x4,sp jsr a2@ 000572b2 movel d0,sp@ addqw #0x4,sp 000572b4 pea 0x5e947:l movel d0,sp@ 000572b8 nop 000572ba pea 0x5d1f7:l nop 000572bc nop 000572be nop 000572c0 jsr a2@ nop 000572c2 addqw #0x4,sp nop 000572c4 movel d0,sp@ nop 000573b2 tstl a2 bra 0x573d4:b
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.