[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Hardcopy Color Screen



In message entitled "Hardcopy Color Screen" on Jun 20, David Loewenstern
writes:
> 
> We have only up to the 1988 ECO tape (yes, I know...we're upgrading to
> Genera 8 shortly).  Anyway, we run into a stack overflow problem whenever
> we attempt to hardcopy the color screen (on our 3653's).  Has anyone 
> developed a simple fix for this problem?

Here are two functions that you can use. I think you can also get a patch
from Symbolics for this.
				- Marty Hall
------------------------------------------------------
hall@aplcen.apl.jhu.edu, hall%aplcen@jhunix.bitnet, ..uunet!aplcen!hall
Artificial Intelligence Lab, AAI Corp, PO Box 126, Hunt Valley, MD 21030


;;;======================================================================
;;; Lets you hardcopy a big window without getting a stack overflow.
;;; Note that you can give a screen (eg color:color-screen) instead
;;; of a window. Also note that it must be compiled, not interpreted,
;;; to avoid errors about using a special form as a function.
;;;
;;; Based on code from Symbolics S/W support: just changed hci::hardcopy-window
;;; to hci::kbd-hardcopy-sheet, because the hardcopy-window function
;;; clips the R edge of wide windows when printing out on our system.

(defun My-Hardcopy (window)
  (let ((grown 2))
    (condition-bind ((sys:pdl-overflow
                       #'(lambda (trap)
                       (cond ((zerop grown) nil)
                             (t (setq grown (1- grown))
                             (send trap ':proceed ':grow-pdl))))))
       (hci::kbd-hardcopy-sheet window nil))))

;;;======================================================================
;;; Hardcopies color screen in background using My-Hardcopy.

(defun Hardcopy-Color-Screen ()
  (scl:process-run-function
    '(:name "Background-Color-Screen-Hardcopy-Process" :priority -5)
    'My-Hardcopy color:color-screen)
)

;;;======================================================================