#! /bin/sh
#
# This file is a product of Sun Microsystems, Inc. and is provided for
# unrestricted use provided that this legend is included on all tape
# media and as a part of the software program in whole or part.  Users
# may copy or modify this file without charge, but are not authorized to
# license or distribute it to anyone else except as part of a product
# or program developed by the user.
# 
# THIS FILE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
# WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
# PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
# 
# This file is provided with no support and without any obligation on the
# part of Sun Microsystems, Inc. to assist in its use, correction,
# modification or enhancement.
# 
# SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
# INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS FILE
# OR ANY PART THEREOF.
# 
# In no event will Sun Microsystems, Inc. be liable for any lost revenue
# or profits or other special, indirect and consequential damages, even
# if Sun has been advised of the possibility of such damages.
# 
# Sun Microsystems, Inc.
# 2550 Garcia Avenue
# Mountain View, California  94043
#
#
# "@(#)imagedump 23.3 90/06/19
#
# Copyright (c) 1985 by Sun Microsystems, Inc.
#

findcanvas=false
findbbox=false

while [ $# -gt 0 ]; do
    case $1 in
	canvas)
	    findcanvas=true
	    ;;
	bbox)
	    findbbox=true
	    ;;
	*)
	    echo $0":  Unknown argument:  " $1
    esac
    shift
done

psh << EOF
framebuffer setcanvas
$findcanvas {
    gsave
	fboverlay setcanvas
	getclick
	canvasesunderpoint
    grestore
    0 get setcanvas
} if
$findbbox {
    gsave
	currentcanvas createoverlay setcanvas
	$findcanvas {
	    currentcursorlocation
	    2 copy
	    getrect waitprocess aload pop
	} {
	    getwholerect waitprocess aload pop
	} ifelse
    grestore
    currentcanvas newcanvas
    dup /Transparent true put
    dup /Mapped true put
    5 1 roll
    newpath points2rect rectpath
    dup reshapecanvas
    setcanvas
} if
(/tmp/screen)
$findcanvas {
    writecanvas
} {
    writescreen
} ifelse
EOF
