Interlisp / medley

The main repo for the Medley Interlisp project. Wiki, Issues are here. Other repositories include maiko (the VM implementation) and Interlisp.github.io (web site sources)
https://Interlisp.org
MIT License
376 stars 19 forks source link

NIL is not a Tedit document error when changing NoteCards link display mode #1829

Open pamoroso opened 2 months ago

pamoroso commented 2 months ago

Describe the bug

Changing the display mode of a link in a NoteCards card yields a break window with the error:

In ERROR:
NIL is not a Tedit document

To Reproduce

Steps to reproduce the behavior:

  1. sign into your Interlisp Online account
  2. under Initial Exec, select Interlisp
  3. click Run Medley
  4. click NOTECARDS
  5. create a notefile
  6. create two text cards with titles Card 1 and Card 2
  7. on Card 1, create a link to Card 2 of type See
  8. on Card 1, middle-click the link
  9. click Change Display Mode
  10. change the display mode
  11. click DONE

Expected behavior

The display mode of the link is updated with no errors.

Screenshots

The break window:

notecards-link-error1

The full desktop with the break window:

notecards-link-error2

Context (please complete the following information):

Additional context

Exiting the break with ^ and refreshing Card 1 (e.g. by closing and reopening it) completes the change of the display mode.

The error context of the topmost frame ERROR:

NC.LinkIconMiddleButtonFn/6(debug)BT
ERROR
TEXTSTREAM
TEXTOBJ
TEDIT.MAP.OBJECTS
NC.TEditCollectObjects
NC.UpdateLinkImagesInText
NC.UpdateLinkImages
NC.ChangeLinkDisplayMode
NC.LinkIconMiddleButtonFn

NC.LinkIconMiddleButtonFn/7(debug)?=
  MESS1 = NIL
  MESS2 = "is not a Tedit document"
  NOBREAK = NIL
NC.LinkIconMiddleButtonFn/8(debug)BTV
   MESS1 NIL
   MESS2 "is not a Tedit document"
   NOBREAK NIL
ERROR
   TSTREAM? NIL
   NOERROR NIL
   TS NIL
   WINDOW NIL
   X NIL
TEXTSTREAM
   TEXTOBJ? NIL
   NOERROR NIL
TEXTOBJ
   TEXTOBJ NIL
   FN NC.TEditCollectObjectsA0001
   FNARG NIL
   COLLECT? T
   CH# 1
   OBJ NIL
   FNVAL NIL
   PC NIL
TEDIT.MAP.OBJECTS
   TEXTSTREAM NIL
   TESTFN NC.UpdateLinkImagesInTextA0001
NC.TEditCollectObjects
   SourceCardOrWindow {CardObject}#122,34522
   DestinationCard {CardObject}#122,34470
   Window {WINDOW}#122,24664
   TextObject NIL
   LinksAndPointers NIL
   SourceCard NIL
   WasDirtyFlg NIL
NC.UpdateLinkImagesInText
   SourceWindowOrCard {WINDOW}#122,24664
   DestinationCard {CardObject}#122,34470
   SourceWindow {WINDOW}#122,24664
   SourceCard {CardObject}#122,34522
   NoteCardType Text
   ShrunkenWin NIL
NC.UpdateLinkImages
   SI::*CLEANUP-FORMS* SI::RESETUNWIND
SI::*UNWIND-PROTECT*
   LinkOrLinkIcon {IMAGEOBJ}#144,171176
   Window {WINDOW}#122,24664
   NewDisplayMode (LINKDISPLAYMODE T T FLOAT)
   Card {CardObject}#122,34522
   DestinationCard {CardObject}#122,34470
   Link {Link}#122,2722
   LinkIcon {IMAGEOBJ}#144,171176
   GlobalLinkFlg NIL
   OldDisplayMode (LINKDISPLAYMODE T NIL FLOAT)
   LISPXHIST NIL
   SI::*RESETFORMS* ((& NIL))
   RESETSTATE NIL
NC.ChangeLinkDisplayMode
   LinkIcon {IMAGEOBJ}#144,171176
   Window {WINDOW}#122,24664
   Card {CardObject}#122,34470
   ExtraItems NIL
   CardType Text
   Selection Display
   Menu {MENU}#122,13130
   CachedMenu NIL
NC.LinkIconMiddleButtonFn
   *FORM* (NC.LinkIconMiddleButtonFn {IMAGEOBJ}#144,
171176 {WINDOW}#122,24664)
   *ARGVAL* NIL
   *TAIL* NIL
   *FN* NC.LinkIconMiddleButtonFn
\EVALFORM
   %#FORM# (NC.LinkIconMiddleButtonFn {IMAGEOBJ}#144,
171176 {WINDOW}#122,24664)
   *CURRENT-PROCESS* 
#<Process NC.LinkIconMiddleButtonFn/122,41000>
   HELPFLAG BREAK!
   \CURRENTDISPLAYLINE 0
   \#DISPLAYLINES 40
   \LINEBUF.OFD #<IO Stream on T/174,74500>
   *READTABLE* #<ReadTable INTERLISP/174,73714>
   \PRIMTERMTABLE {TERMTABLEP}#174,66740
   \PRIMTERMSA {CHARTABLE}#174,67000
   TtyDisplayStream 
#<Output Display Stream/122,6100>
   SI::*RESETFORMS* NIL
   \INTERRUPTABLE T
   \TTYWINDOW NIL
   READBUF NIL
   \TERM.OFD #<Output Stream on T/170,111300>
   *STANDARD-OUTPUT* #<Output Stream on T/170,111300>
   *STANDARD-INPUT* #<IO Stream on T/174,74500>
\MAKE.PROCESS0
T

The context of frame NC.TEditCollectObjects:

NC.LinkIconMiddleButtonFn/9(debug)?=
  TEXTSTREAM = NIL
  TESTFN = NC.UpdateLinkImagesInTextA0001
NC.LinkIconMiddleButtonFn/10(debug)BTV
   TEXTSTREAM NIL
   TESTFN NC.UpdateLinkImagesInTextA0001
NC.TEditCollectObjects
   SourceCardOrWindow {CardObject}#122,34522
   DestinationCard {CardObject}#122,34470
   Window {WINDOW}#122,24664
   TextObject NIL
   LinksAndPointers NIL
   SourceCard NIL
   WasDirtyFlg NIL
NC.UpdateLinkImagesInText
   SourceWindowOrCard {WINDOW}#122,24664
   DestinationCard {CardObject}#122,34470
   SourceWindow {WINDOW}#122,24664
   SourceCard {CardObject}#122,34522
   NoteCardType Text
   ShrunkenWin NIL
NC.UpdateLinkImages
   SI::*CLEANUP-FORMS* SI::RESETUNWIND
SI::*UNWIND-PROTECT*
   LinkOrLinkIcon {IMAGEOBJ}#144,171176
   Window {WINDOW}#122,24664
   NewDisplayMode (LINKDISPLAYMODE T T FLOAT)
   Card {CardObject}#122,34522
   DestinationCard {CardObject}#122,34470
   Link {Link}#122,2722
   LinkIcon {IMAGEOBJ}#144,171176
   GlobalLinkFlg NIL
   OldDisplayMode (LINKDISPLAYMODE T NIL FLOAT)
   LISPXHIST NIL
   SI::*RESETFORMS* ((& NIL))
   RESETSTATE NIL
NC.ChangeLinkDisplayMode
   LinkIcon {IMAGEOBJ}#144,171176
   Window {WINDOW}#122,24664
   Card {CardObject}#122,34470
   ExtraItems NIL
   CardType Text
   Selection Display
   Menu {MENU}#122,13130
   CachedMenu NIL
NC.LinkIconMiddleButtonFn
   *FORM* (NC.LinkIconMiddleButtonFn {IMAGEOBJ}#144,
171176 {WINDOW}#122,24664)
   *ARGVAL* NIL
   *TAIL* NIL
   *FN* NC.LinkIconMiddleButtonFn
\EVALFORM
   %#FORM# (NC.LinkIconMiddleButtonFn {IMAGEOBJ}#144,
171176 {WINDOW}#122,24664)
   *CURRENT-PROCESS* 
#<Process NC.LinkIconMiddleButtonFn/122,41000>
   HELPFLAG BREAK!
   \CURRENTDISPLAYLINE 0
   \#DISPLAYLINES 40
   \LINEBUF.OFD #<IO Stream on T/174,74500>
   *READTABLE* #<ReadTable INTERLISP/174,73714>
   \PRIMTERMTABLE {TERMTABLEP}#174,66740
   \PRIMTERMSA {CHARTABLE}#174,67000
   TtyDisplayStream 
#<Output Display Stream/122,6100>
   SI::*RESETFORMS* NIL
   \INTERRUPTABLE T
   \TTYWINDOW NIL
   READBUF NIL
   \TERM.OFD #<Output Stream on T/170,111300>
   *STANDARD-OUTPUT* #<Output Stream on T/170,111300>
   *STANDARD-INPUT* #<IO Stream on T/174,74500>
\MAKE.PROCESS0
T
pamoroso commented 3 weeks ago

This issue may be related to #1867.