;;; -*- Mode:LISP; Package:USER; Readtable:ZL; Base:10 -*-


(defun find-copyright-notice-place (filename)
  (declare (values truename skip-lines))
  (with-open-file (input filename)
    (values (send input :truename)
	    (do ((-*-count 0)
		 (line)
		 (temp)
		 (line-count 1 (1+ line-count)))
		((null (setq line (readline input nil)))
		 nil)
	      (cond ((not (setq temp (string-search "-*-" line))))
		    ((= -*-count 1)
		     (return line-count))
		    ((string-search "-*-" line (+ temp 3))
		     (return line-count))
		    ('else
		     (incf -*-count)))))))


(defvar *copyright-notice*)

(defun insert-copyright-notice (source-filename)
  (multiple-value-bind (truename skip)
      (find-copyright-notice-place source-filename)
      (or skip
	  (ferror nil "No mode line in file? ~S" truename))
    (with-open-file (input truename)
      (with-open-file (output (send truename :new-version (1+ (send truename :version)))
			      :direction :output
			      :if-exists :error
			      :if-does-not-exist :create)
	(dotimes (j skip)
	  (send output :line-out (readline input)))
	(send output :string-out *copyright-notice*)
	(stream-copy-until-eof input output)))))
	
	

      

(setq *copyright-notice*
"
;;; *****************************************
;;; ** (C) COPYRIGHT 1986 LISP MACHINE INC **
;;; **  Also see file named Copyright.Text **   
;;; *****************************************

"
)
