From xemacs-m  Thu Mar 20 15:06:22 1997
Received: from amber.vis-av.com (amber.vis-av.com [206.119.44.2])
	by xemacs.org (8.8.5/8.8.5) with ESMTP id PAA17308
	for <xemacs-beta@xemacs.org>; Thu, 20 Mar 1997 15:06:20 -0600 (CST)
Received: (from derrell@localhost)
          by amber.vis-av.com (8.8.5/8.8.4)
	  id QAA21223; Thu, 20 Mar 1997 16:06:20 -0500 (EST)
Date: Thu, 20 Mar 1997 16:06:20 -0500 (EST)
Message-Id: <199703202106.QAA21223@amber.vis-av.com>
From: Derrell Lipman <derrell@vis-av.com>
To: XEmacs Beta List <xemacs-beta@xemacs.org>
Subject: X-Face issues (still) in TM (I think) with some trace output
X-Mailer: VM 6.20 under 19.15 XEmacs Lucid (beta101)
Reply-To: derrell@vis-av.com
Mime-Version: 1.0 (generated by tm-edit 7.105)
Content-Type: text/plain; charset=US-ASCII

I'm still having the same X-Face image-going-away problems that I was
having a few days ago.  I've traced where the image disappears, but I
don't understand why or what it's doing.  Here's the scenario.

I'm using VM to read a message.  I hit 'n' to go to next message.  In
"most" cases, instead of getting the X-Face image displayed, I get the
X-Face header line displayed.  In tracing the code, I can see, as I
single step, the face image in the buffer.  Then, in this block of
code, in the function "tm-vm/display-preview-buffer", it disappears:

      ;; display folder buffer
      (cond
       ((and mwin pwin)
        (vm-undisplay-buffer pbuf))
       ((and (not mwin) pwin)
        (set-window-buffer pwin mbuf))

Here's the backtrace from immediately after it disappeared:

Return value: nil
  set-window-buffer(#<window on "*Backtrace*" 0x3bd5> #<buffer "*Preview-INBOX*">)
* (cond ((and mwin pwin) (vm-undisplay-buffer mbuf) (tm-vm/update-message-status)) ((and mwin ...) (set-window-buffer mwin pbuf) (tm-vm/update-message-status)) (pwin (tm-vm/update-message-status)) (t))
)
* (if (and pbuf (tm-vm/system-state)) (cond (... ... ...) (... ... ...) (pwin ...) (t)) (cond (... ...) (... ...) (mwin) (t)))
)
  (let* ((mbuf ...) (mwin ...) (pbuf ...) (pwin ...)) (debug) (if (and pbuf ...) (cond ... ... ... ...) (cond ... ... ... ...)))
)
  tm-vm/display-preview-buffer()
  tm-vm/preview-current-message()
  run-hooks(vm-select-message-hook)
  vm-run-message-hook([[#<marker at 6330711 in INBOX> #<marker at 6330744 in INBOX> #<marker at 6332140 in INBOX> #<marker at 6332324 in INBOX> #<marker at 6853816 in INBOX> #<marker at 6853817 in INBOX>] ["543" "543" nil #<marker at 40454 in INBOX Summary> #<marker at 40566 in INBOX Summary> <<>> <-- From_ "584" #<buffer "INBOX"> nil nil nil nil nil nil nil nil] [nil nil nil nil nil nil nil nil nil] [nil "Thu" "20" "March" "1997" "11:58:36" "-0500" "Neal Becker" "neal@ctd.comsat.com" nil "609" "Signaling: (error \"Variable binding depth exceeds max-specpdl-size\")" "^Subject:" nil nil "3" nil nil (number " " mark "     Neal Becker       Mar20  609 " thread-indent "\"Signaling: (error \"Variable binding depth exceeds max-specpdl-size\")\"\n") nil nil] [nil <v> nil nil nil]] vm-select-message-hook)
  vm-preview-current-message()
  (progn (vm-record-and-change-message-pointer oldmp vm-message-pointer) (vm-preview-current-message))
)
  (if (not (eq vm-message-pointer oldmp)) (progn (vm-record-and-change-message-pointer oldmp vm-message-pointer) (vm-preview-current-message)))
)
  (let ((oldmp vm-message-pointer) (use-marks ...) (error) (direction ...) (count ...)) (cond (... ...) (... ...) (t ...)) (if (not ...) (progn ... ...)) (and error signal-errors (signal error nil)))
)
  ad-Orig-vm-next-message(1 1 1)
  vm-next-message(1 1 1)
  call-interactively(vm-next-message)


One other note, in case it helps... When I'm not debugging, if I hit
'x' to expunge deleted messages, and the current message has an X-Face
header line, then the image will be displayed.  Similarly, if I'm
sitting on the last message in the mailbox, and I hit 'd' to delete
it, since it has no more messages to move to, it stays on the
now-deleted message, and properly displays the face image, which,
until that time, was an X-Face header line.

I hope someone can figure out what's happening here.

Derrell

