; -*- Mode:LISP; Package:OBJ; Base:10; Readtable:CL; Syntax: Common-lisp -*-

;; Copyright (C) Gary Drescher 1984, 1985
;; Licensed to and distributed by Lisp Machine, Inc.
;;   See filename "Copyright" for
;; licensing and release information.

(in-package "OBJ")

(defobfun exist (&rest args &key* obj-name)
 (if obj-name (have 'obj-name obj-name))
 (bind-builtin-instance-vars (current-obj) args)
 nil)

(defvar obj-name)
(defvar class-name)

(defvar *objs-print-self? t)

(defobfun print-self (&aux (ptr (if *%pointer?
				    (%pointer (current-obj))
				    (obj-index (current-obj)))))
  (if *objs-print-self?
      (cond ((null (current-obj)) (print nil))
	    ((own? 'class-name)
	     (format t "#<The class ~a ~o>" class-name ptr))
	    ((own? 'obj-name)
	     (if (own? 'class-name)
		 (format t "#<~a, a ~a ~o>" obj-name class-name ptr)
		 (format t "#<~a ~o>" obj-name ptr)))
	    ((there? 'class-name)
	     (format t "#<An unnamed ~a ~o>" class-name ptr))
	    (t (format t "#<Object ~o>" ptr)))
      (format t "#<Object ~a>" ptr)))




