;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:10; Patch-File:T -*-
;;; Patch file for System version 124.85
;;; Reason:
;;;  setf method for (fill-pointer) really wants to check (array-has-leader-p),
;;;  not (array-has-fill-pointer-p), otherwise (make array ... :fill-pointer x)
;;;  gets an error -- fill pointer initialized to NIL counts as no fill pointer.
;;; Written 22-Jun-88 12:18:28 by pld (Peter L. DeWolf) at site Gigamos Cambridge
;;; while running on Cthulhu from band 1
;;; with Experimental System 124.84, Experimental Local-File 74.2, Experimental File-Server 23.1, Experimental Unix-Interface 12.0, Experimental ZMail 72.1, Experimental Tape 23.6, Experimental Lambda-Diag 16.2, microcode 1760, SDU Boot Tape 3.14, SDU ROM 8, the old ones.



; From modified file DJ: L.SYS2; SETF.LISP#130 at 22-Jun-88 12:18:29
#10R SYSTEM-INTERNALS#: 
(COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "SYSTEM-INTERNALS")))
  (COMPILER::PATCH-SOURCE-FILE "SYS: SYS2; SETF  "

(defun set-fill-pointer (array value)
  (cond ((not (arrayp array))
	 (ferror "Argument ~S must be an array" array))
	((not (array-has-leader-p array))
	 (ferror "Array ~S has no fill-pointer" array))
	((not (fixnump value))
	 (ferror "New fill-pointer must be a fixnum"))
	((or (minusp value) (> value (array-length array)))
	 (ferror "New fill pointer ~A out of range for array ~A" value array))
	(t
	 (setf (array-leader array 0) value))))

))
