From f6106d7b0c511be03f2a1e4e8d8241cab24348c5 Mon Sep 17 00:00:00 2001 From: rmkaplan <69548581+rmkaplan@users.noreply.github.com> Date: Mon, 6 Oct 2025 19:58:04 -0700 Subject: [PATCH] EDITINTERFACE--ED searches for symbols, no error when declining a loadfns (#2301) * EDITINTERFACE--ED searches for symbols, no error when declining a loadfns * Symbol by type menu pops up when the symbol with different package qualifiers have different types --- sources/EDITINTERFACE | 238 ++++++++++++++++++++---------------- sources/EDITINTERFACE.DFASL | Bin 0 -> 17079 bytes sources/EDITINTERFACE.LCOM | Bin 16680 -> 0 bytes 3 files changed, 135 insertions(+), 103 deletions(-) create mode 100644 sources/EDITINTERFACE.DFASL delete mode 100644 sources/EDITINTERFACE.LCOM diff --git a/sources/EDITINTERFACE b/sources/EDITINTERFACE index 1ce6c068..6b5204b6 100644 --- a/sources/EDITINTERFACE +++ b/sources/EDITINTERFACE @@ -1,19 +1,17 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "21-May-2024 22:10:45" {DSK}matt>Interlisp>medley>sources>EDITINTERFACE.;2 47745 +(FILECREATED " 2-Oct-2025 10:43:08"  +{DSK}kaplan>Local>medley3.5>working-medley>sources>EDITINTERFACE.;57 49004 - :EDIT-BY "mth" + :EDIT-BY rmk - :CHANGES-TO (FNS EDITLOADFNS?) + :CHANGES-TO (VARS EDITINTERFACECOMS) + (FUNCTIONS ED) - :PREVIOUS-DATE "22-Jun-2022 13:32:08" {DSK}matt>Interlisp>medley>sources>EDITINTERFACE.;1 -) + :PREVIOUS-DATE " 1-Oct-2025 23:20:37" +{DSK}kaplan>Local>medley3.5>working-medley>sources>EDITINTERFACE.;56) -(* ; " -Copyright (c) 1986-1988, 1990-1991, 2024 by Venue & Xerox Corporation. -") - (PRETTYCOMPRINT EDITINTERFACECOMS) (RPAQQ EDITINTERFACECOMS @@ -110,10 +108,11 @@ Copyright (c) 1986-1988, 1990-1991, 2024 by Venue & Xerox Corporation. (DEFGLOBALVAR XCL::ED-LAST-INFO NIL "used in ED to stash last call info so (ED NIL) will restart last edit") -(CL:DEFUN ED (CL::NAME CL::OPTIONS) (* ; "Edited 5-Jul-88 16:03 by woz") - -(* ;;; "Standard Common Lisp editor entry. CLtL say's ED does something reasonable when passed a pathname. We coerce name into something that might be the name of something with an IL:FILES definition, & try to edit that. Then save call info in ED-LAST-INFO, so (ED) will start last edit over again.") - +(CL:DEFUN ED (CL::NAME &OPTIONAL (CL::OPTIONS NIL)) (* ; "Edited 2-Oct-2025 10:42 by rmk") + (* ; "Edited 30-Sep-2025 12:49 by rmk") + (* ; "Edited 20-Dec-2023 00:06 by rmk") + (* ; "Edited 5-Jul-88 16:03 by woz") + (CL:SETQ CL::OPTIONS (MKLIST CL::OPTIONS)) (CL:UNLESS (CL:LISTP CL::OPTIONS) (CL:SETQ CL::OPTIONS (LIST CL::OPTIONS))) (CL:WHEN (CL:PATHNAMEP CL::NAME) @@ -122,95 +121,128 @@ Copyright (c) 1986-1988, 1990-1991, 2024 by Venue & Xerox Corporation. (CL:PUSHNEW 'FILES CL::OPTIONS)) [COND (CL::NAME (CL:SETQ XCL::ED-LAST-INFO (CONS CL::NAME CL::OPTIONS))) - (T (CL:WHEN (NULL XCL::ED-LAST-INFO) + (T (CL:UNLESS XCL::ED-LAST-INFO (CL:FORMAT T "Sorry, there is no previous edit to restart.") (CL:RETURN-FROM ED NIL)) (CL:SETQ CL::NAME (CAR XCL::ED-LAST-INFO)) (CL:SETQ CL::OPTIONS (CL:APPEND (CDR XCL::ED-LAST-INFO) CL::OPTIONS] - (LET* ((CL::FROM-DISPLAY (OR (EQ CL::OPTIONS T) - (CL:MEMBER :DISPLAY CL::OPTIONS) - (CL:MEMBER 'DISPLAY CL::OPTIONS))) - (CL::GIVEN-TYPES (for X inside CL::OPTIONS when (NEQ X T) bind TYPE - when (CL:SETQ TYPE (GETFILEPKGTYPE X 'TYPES T CL::NAME)) collect TYPE)) - [CL::TYPES-WITH-DEFNS (TYPESOF CL::NAME CL::GIVEN-TYPES NIL - (CL:IF (OR (CL:MEMBER :CURRENT CL::OPTIONS) - (CL:MEMBER 'CURRENT CL::OPTIONS)) - 'CURRENT - '?) - #'(LAMBDA (X) - (NEQ (GET X 'EDITDEF) - 'NILL] - (CL::POSSIBLE-TYPES (COND - ([AND (NULL CL::GIVEN-TYPES) - (CL:SYMBOLP CL::NAME) - (NOT (NULL *ED-OFFERS-PROPERTY-LIST*)) - (find X on (GETPROPLIST CL::NAME) by (CDDR X) - suchthat (NULL (GET (CAR X) - 'PROPTYPE] + (LET* + ((CL::FROM-DISPLAY (OR (EQ CL::OPTIONS T) + (CL:MEMBER :DISPLAY CL::OPTIONS) + (CL:MEMBER 'DISPLAY CL::OPTIONS))) + (CL::GIVEN-TYPES (for CL::X TYPE inside CL::OPTIONS unless (EQ CL::X T) + when (CL:SETQ TYPE (GETFILEPKGTYPE CL::X 'TYPES T CL::NAME)) collect TYPE)) + [CL::TYPES-WITH-DEFNS (TYPESOF CL::NAME CL::GIVEN-TYPES NIL (CL:IF (OR (CL:MEMBER :CURRENT + CL::OPTIONS) + (CL:MEMBER 'CURRENT + CL::OPTIONS)) + 'CURRENT + '?) + #'(LAMBDA (X) + (NEQ (GET X 'EDITDEF) + 'NILL] + (CL::POSSIBLE-TYPES (COND + ([AND (NULL CL::GIVEN-TYPES) + (CL:SYMBOLP CL::NAME) + *ED-OFFERS-PROPERTY-LIST* + (find CL::X on (GETPROPLIST CL::NAME) by (CDDR CL::X) + suchthat (NULL (GET (CAR CL::X) + 'PROPTYPE] - (* ;; "if we're supposed to offer PROPERTY-LIST as an edit type, and this name has a property list with other than system properties on it, then add IL:PROPERTY-LIST to the possible types.") + (* ;; "if we're supposed to offer PROPERTY-LIST as an edit type, and this name has a property list with other than system properties on it, then add IL:PROPERTY-LIST to the possible types.") - (CONS 'PROPERTY-LIST CL::TYPES-WITH-DEFNS)) - (T CL::TYPES-WITH-DEFNS))) - (TYPE)) - (CL:WHEN (CL:MEMBER 'PROPERTY-LIST CL::OPTIONS) + (CONS 'PROPERTY-LIST CL::TYPES-WITH-DEFNS)) + (T CL::TYPES-WITH-DEFNS))) + (TYPE)) + (CL:WHEN (CL:MEMBER 'PROPERTY-LIST CL::OPTIONS) - (* ;; - "this will allow PROPERTY-LIST to be specified as a fake filepkg type by the user (caller)") + (* ;; + "this will allow PROPERTY-LIST to be specified as a fake filepkg type by the user (caller)") - (CL:SETQ CL::POSSIBLE-TYPES '(PROPERTY-LIST))) - [CL:SETQ TYPE (if (CL:MEMBER :NEW CL::OPTIONS) - then - (* ;; "if :NEW then install a blank definition first") + (CL:SETQ CL::POSSIBLE-TYPES '(PROPERTY-LIST))) + [CL:UNLESS + (CL:SETQ + TYPE + (if (CL:MEMBER :NEW CL::OPTIONS) + then + (* ;; "if :NEW then install a blank definition first") - (OR (INSTALL-PROTOTYPE-DEFN CL::NAME (OR CL::TYPES-WITH-DEFNS - CL::GIVEN-TYPES) - :NEW) - (CL:RETURN-FROM ED NIL)) - elseif (CDR CL::POSSIBLE-TYPES) - then - (* ;; "Many types were found/given. Ask the user which to use.") + (OR (INSTALL-PROTOTYPE-DEFN CL::NAME (OR CL::TYPES-WITH-DEFNS CL::GIVEN-TYPES) + :NEW) + (CL:RETURN-FROM ED NIL)) + elseif (CDR CL::POSSIBLE-TYPES) + then + (* ;; "Many types were found/given. Ask the user which to use.") - (if CL::FROM-DISPLAY - then (OR (MENU (create MENU - ITEMS _ CL::POSSIBLE-TYPES - TITLE _ (CL:FORMAT NIL - "Edit which definition of ~S ?" - CL::NAME))) - (CL:RETURN-FROM ED NIL)) - else (ASKUSER NIL (CAR CL::POSSIBLE-TYPES) - (CL:FORMAT NIL "Edit which ~A definition of ~S ? " - CL::POSSIBLE-TYPES CL::NAME) - CL::POSSIBLE-TYPES)) - elseif (NOT (NULL CL::POSSIBLE-TYPES)) - then - (* ;; "Exactly one type was found.") + (if CL::FROM-DISPLAY + then (OR (MENU (create MENU + ITEMS _ CL::POSSIBLE-TYPES + TITLE _ (CL:FORMAT NIL "Edit which definition of ~S ?" + CL::NAME))) + (CL:RETURN-FROM ED NIL)) + else (ASKUSER NIL (CAR CL::POSSIBLE-TYPES) + (CL:FORMAT NIL "Edit which ~A definition of ~S ? " CL::POSSIBLE-TYPES + CL::NAME) + CL::POSSIBLE-TYPES)) + elseif CL::POSSIBLE-TYPES + then + (* ;; "Exactly one type was found.") - (if CL::FROM-DISPLAY - then (* ; "prepare the prompt window") - (TERPRI PROMPTWINDOW)) - (CL:FORMAT (if CL::FROM-DISPLAY - then PROMPTWINDOW - else T) - "Editing ~A ~A ~S.~%%" - (CAR CL::POSSIBLE-TYPES) - (CL:IF (EQ (CAR CL::POSSIBLE-TYPES) - 'PROPERTY-LIST) - "of" - "definition of") - CL::NAME) - (CAR CL::POSSIBLE-TYPES) - else - (* ;; "No types were found. Use the DefDefiner prototyping machinery.") + (CL:WHEN CL::FROM-DISPLAY (* ; "prepare the prompt window") + (TERPRI PROMPTWINDOW)) + (CL:FORMAT (CL:IF CL::FROM-DISPLAY + PROMPTWINDOW + T) + "Editing ~A ~A ~S.~%%" + (CAR CL::POSSIBLE-TYPES) + (CL:IF (EQ (CAR CL::POSSIBLE-TYPES) + 'PROPERTY-LIST) + "of" + "definition of") + CL::NAME) + (CAR CL::POSSIBLE-TYPES) + elseif + [for CL::N CHOICE CL::NTYPES in (CL:FIND-ALL-SYMBOLS CL::NAME) + when (CL:SETQ CL::NTYPES (TYPESOF CL::N CL::GIVEN-TYPES)) collect (CONS CL::N CL::NTYPES) + finally + (if (CDR $$VAL) + then (* ; + "More than one name, each with at least one type") + [SETQ CHOICE + (MENU (create MENU + TITLE _ (CONCAT " Edit which definition? ") + ITEMS _ (for I in $$VAL + join (for TY in (CDR I) + collect (LIST (CONCAT (MKSTRING (CAR I) + T) + " " TY) + (LIST I TY] + (SETQ CL::NAME (CAR CHOICE)) + (RETURN (CADR CHOICE)) + elseif (CDDAR $$VAL) + then (* ; "One name with multiple types. ") + [SETQ CHOICE (MENU (create MENU + TITLE _ (CONCAT "Which definition of " + (MKSTRING (CAAR $$VAL) + T) + " ?") + ITEMS _ (for TY in (CDAR $$VAL) collect TY] + (CL:SETQ CL::NAME (CAAR $$VAL)) + (RETURN CHOICE) + elseif $$VAL + then (CL:SETQ CL::NAME (CAAR $$VAL)) + (RETURN (CADAR $$VAL] + else + (* ;; "No types were found. Use the DefDefiner prototyping machinery.") - (OR (INSTALL-PROTOTYPE-DEFN CL::NAME CL::GIVEN-TYPES) - (CL:RETURN-FROM ED NIL] - (CL:IF (EQ TYPE 'PROPERTY-LIST) - (EDITE (GETPROPLIST CL::NAME) - NIL CL::NAME 'PROPLST NIL CL::OPTIONS) - (EDITDEF CL::NAME TYPE NIL NIL CL::OPTIONS)) - (CL:RETURN-FROM ED CL::NAME))) + (OR (INSTALL-PROTOTYPE-DEFN CL::NAME CL::GIVEN-TYPES) + (CL:RETURN-FROM ED NIL] + (CL:IF (EQ TYPE 'PROPERTY-LIST) + (EDITE (GETPROPLIST CL::NAME) + NIL CL::NAME 'PROPLST NIL CL::OPTIONS) + (EDITDEF CL::NAME TYPE NIL NIL CL::OPTIONS)) + (CL:RETURN-FROM ED CL::NAME))) (CL:DEFUN INSTALL-PROTOTYPE-DEFN (NAME &REST ARGS) @@ -284,21 +316,22 @@ Copyright (c) 1986-1988, 1990-1991, 2024 by Venue & Xerox Corporation. (DEFINEQ (EDITDEF.FNS - [LAMBDA (NAME EDITCOMS OPTIONS) (* ; "Edited 20-Nov-87 14:25 by woz") - + [LAMBDA (NAME EDITCOMS OPTIONS) (* ; "Edited 26-Sep-2025 15:23 by rmk") + (* ; "Edited 20-Nov-87 14:25 by woz") (PROG (DEF) LP (COND ((EXPRP (SETQ DEF (OR (GET NAME 'ADVISED) (GET NAME 'BROKEN) NAME))) (EDITE (if (LITATOM DEF) - then (GETD DEF) - else DEF) + then (GETD DEF) + else DEF) EDITCOMS NAME 'FNS NIL OPTIONS) (RETURN NAME)) ([EXPRP (SETQ DEF (GETPROP NAME 'EXPR] + (* ;; -"woz: don't use edit type PROP anymore. Let putdef for fns worry about where the definition goes.") + "woz: don't use edit type PROP anymore. Let putdef for fns worry about where the definition goes.") (EDITE DEF EDITCOMS NAME 'FNS NIL OPTIONS) (RETURN NAME)) @@ -308,7 +341,7 @@ Copyright (c) 1986-1988, 1990-1991, 2024 by Venue & Xerox Corporation. (* ;; "Used to call EDITFERROR to check for MACROS definition or install dummy FNS defintion. FNS can no longer be coerced to MACROS, and the new prototype stuff handles the other case. So if we're here, it's because EDITFB failed to find the definition, and thus NAME is not editable.") (CL:FORMAT *ERROR-OUTPUT* "Could not find fns definition for ~a." NAME) - (ERROR "Could not find fns definition for " NAME T]) + (RETURN]) (EDITF [NLAMBDA EDITFX (* ; "Edited 11-Jun-90 15:44 by jds") @@ -952,13 +985,12 @@ Copyright (c) 1986-1988, 1990-1991, 2024 by Venue & Xerox Corporation. (ADDTOVAR LAMA ) ) -(PUTPROPS EDITINTERFACE COPYRIGHT ("Venue & Xerox Corporation" 1986 1987 1988 1990 1991 2024)) (DECLARE%: DONTCOPY - (FILEMAP (NIL (4081 10380 (ED 4081 . 10380)) (10382 14358 (INSTALL-PROTOTYPE-DEFN 10382 . 14358)) ( -14359 31218 (EDITDEF.FNS 14369 . 15705) (EDITF 15707 . 16587) (EDITFB 16589 . 17437) (EDITFNS 17439 . -18759) (EDITLOADFNS? 18761 . 22637) (EDITMODE 22639 . 24649) (EDITP 24651 . 25162) (EDITV 25164 . -25803) (DC 25805 . 26486) (DF 26488 . 27530) (DP 27532 . 28616) (DV 28618 . 29190) (EDITPROP 29192 . -29411) (EF 29413 . 29742) (EP 29744 . 29927) (EV 29929 . 30108) (EDITE 30110 . 30988) (EDITL 30990 . -31216)) (31568 46885 (NEW/EDITDATE 31578 . 31800) (FIXEDITDATE 31802 . 40409) (EDITDATE? 40411 . 43439 -) (EDITDATE 43441 . 44888) (SETINITIALS 44890 . 46883))))) + (FILEMAP (NIL (4073 11670 (ED 4073 . 11670)) (11672 15648 (INSTALL-PROTOTYPE-DEFN 11672 . 15648)) ( +15649 32572 (EDITDEF.FNS 15659 . 17059) (EDITF 17061 . 17941) (EDITFB 17943 . 18791) (EDITFNS 18793 . +20113) (EDITLOADFNS? 20115 . 23991) (EDITMODE 23993 . 26003) (EDITP 26005 . 26516) (EDITV 26518 . +27157) (DC 27159 . 27840) (DF 27842 . 28884) (DP 28886 . 29970) (DV 29972 . 30544) (EDITPROP 30546 . +30765) (EF 30767 . 31096) (EP 31098 . 31281) (EV 31283 . 31462) (EDITE 31464 . 32342) (EDITL 32344 . +32570)) (32922 48239 (NEW/EDITDATE 32932 . 33154) (FIXEDITDATE 33156 . 41763) (EDITDATE? 41765 . 44793 +) (EDITDATE 44795 . 46242) (SETINITIALS 46244 . 48237))))) STOP diff --git a/sources/EDITINTERFACE.DFASL b/sources/EDITINTERFACE.DFASL new file mode 100644 index 0000000000000000000000000000000000000000..7967360365595d5330b2edd6082089224bc57d43 GIT binary patch literal 17079 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 literal 0 HcmV?d00001 diff --git a/sources/EDITINTERFACE.LCOM b/sources/EDITINTERFACE.LCOM deleted file mode 100644 index bf5ab79259ba2ea6ae52db4d6019bf40b66f8324..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16680 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 Pe^gu^h9V#peU$S*U0TNk