From d43846b4f4703ad8ce94699776d23d16c84702d9 Mon Sep 17 00:00:00 2001 From: rmkaplan Date: Sat, 17 Jun 2023 20:18:17 -0700 Subject: [PATCH] SEDIT: SELECTC formatted like SELECTQ, copy-select from the titlebar Fixes long-standing irritants (for me at least). SELECTC is highlighted and format like SELECTQ and SELCHARQ. And left-button in the title bar with the copy (shift) key down does a bksysbuf of the thing being edited. The menu is available under the middle button, moving and reshaping still provided by modernize with the shift not down. --- sources/SEDIT-LIST-FORMATS | 26 +++-- sources/SEDIT-LIST-FORMATS.DFASL | Bin 12453 -> 12487 bytes sources/SEDIT-WINDOW | 185 ++++++++++++++++++------------- sources/SEDIT-WINDOW.DFASL | Bin 30996 -> 31358 bytes 4 files changed, 124 insertions(+), 87 deletions(-) diff --git a/sources/SEDIT-LIST-FORMATS b/sources/SEDIT-LIST-FORMATS index e8be5b90..c02be5fa 100644 --- a/sources/SEDIT-LIST-FORMATS +++ b/sources/SEDIT-LIST-FORMATS @@ -1,14 +1,16 @@ (DEFINE-FILE-INFO PACKAGE "SEDIT" READTABLE "XCL" BASE 10) -(IL:FILECREATED "17-May-90 11:08:07" IL:|{DSK}local>lde>lispcore>sources>SEDIT-LIST-FORMATS.;2| 9591 - IL:|changes| IL:|to:| (IL:FILES IL:SEDIT-INDENT) - (IL:VARS IL:SEDIT-LIST-FORMATSCOMS) +(IL:FILECREATED "17-Jun-2023 19:46:35" IL:|{WMEDLEY}SEDIT-LIST-FORMATS.;2| 9581 - IL:|previous| IL:|date:| "18-Nov-88 10:56:22" -IL:|{DSK}local>lde>lispcore>sources>SEDIT-LIST-FORMATS.;1|) + :EDIT-BY IL:|rmk| + + :CHANGES-TO (IL:SEDIT-FORMATS IL:SELECTC) + (IL:VARS IL:SEDIT-LIST-FORMATSCOMS) + + :PREVIOUS-DATE "17-May-90 11:08:07" IL:|{WMEDLEY}SEDIT-LIST-FORMATS.;1|) -; Copyright (c) 1987, 1988, 1990 by Venue & Xerox Corporation. All rights reserved. +; Copyright (c) 1987-1988, 1990 by Venue & Xerox Corporation. (IL:PRETTYCOMPRINT IL:SEDIT-LIST-FORMATSCOMS) @@ -19,7 +21,7 @@ IL:|{DSK}local>lde>lispcore>sources>SEDIT-LIST-FORMATS.;1|) (IL:SEDIT-FORMATS RETURN-FROM THROW BLOCK (IL:* IL:|;;| - "some handy formats under names we don't expect to find as CAR of form") + "some handy formats under names we don't expect to find as CAR of form") :DEFAULT :DATA :BINDING :BINDING-LIST :LAMBDA-LIST :FBINDING :FBINDING-LIST :COND-CLAUSE :CASE-CLAUSE :HORIZONTAL :HORIZONTAL-NOBREAK :VERTICAL @@ -36,9 +38,9 @@ IL:|{DSK}local>lde>lispcore>sources>SEDIT-LIST-FORMATS.;1|) ECASE ERROR ETYPECASE EVAL-WHEN FLET FORMAT IF IGNORE-ERRORS LABELS LAMBDA IL:LAMBDA LET LET* LOCALLY LIST LIST* MACROLET MULTIPLE-VALUE-BIND MULTIPLE-VALUE-SETQ IL:NLAMBDA IL:OPENLAMBDA OR IL:P PROCEED-CASE PROG PROG* PROGN - PROGV RESTART-CASE IL:SELCHARQ IL:SELECTQ TAGBODY THE TYPECASE UNDOABLY UNLESS - UNWIND-PROTECT WHEN WITH-INPUT-FROM-STRING WITH-OUTPUT-TO-STRING WITH-OPEN-FILE - WITH-OPEN-STREAM IL:WITH.MONITOR IL:WITH.FAST.MONITOR IL:WITH.SPY))) + PROGV RESTART-CASE IL:SELCHARQ IL:SELECTQ IL:SELECTC TAGBODY THE TYPECASE UNDOABLY + UNLESS UNWIND-PROTECT WHEN WITH-INPUT-FROM-STRING WITH-OUTPUT-TO-STRING + WITH-OPEN-FILE WITH-OPEN-STREAM IL:WITH.MONITOR IL:WITH.FAST.MONITOR IL:WITH.SPY))) (IL:PUTPROPS IL:SEDIT-LIST-FORMATS IL:FILETYPE :COMPILE-FILE) @@ -148,7 +150,7 @@ IL:|{DSK}local>lde>lispcore>sources>SEDIT-LIST-FORMATS.;1|) (DEF-LIST-FORMAT DEFCONSTANT DEFVAR) (DEF-LIST-FORMAT DEFDEFINER :INDENT ((2) - 1) + 1) :ARGS (:KEYWORD :CASE-CLAUSE NIL :LAMBDA-LIST NIL)) (DEF-LIST-FORMAT DEFUN :INDENT ((2)) @@ -309,6 +311,8 @@ IL:|{DSK}local>lde>lispcore>sources>SEDIT-LIST-FORMATS.;1|) :ARGS (:KEYWORD NIL :CASE-CLAUSE) :LAST NIL) +(DEF-LIST-FORMAT IL:SELECTC IL:SELECTQ) + (DEF-LIST-FORMAT TAGBODY :INDENT (:TAGBODY :STEP 0) :ARGS (:KEYWORD NIL)) diff --git a/sources/SEDIT-LIST-FORMATS.DFASL b/sources/SEDIT-LIST-FORMATS.DFASL index a385b5f12b0bede322e3b8e5f36034dcf365baeb..1fa4daba98734f2d7c666a0cc67f001b09846ff0 100644 GIT binary patch delta 3492 zcmai0YfM{Z80Hklpp=bMT1rcyJZAflrbn5nYyhG+@@w10-LDQGBcwa zIJP%)oc%D1X#BGUi6%3~OifJuW5S||k!0!;6QgJr;}4CA$^72;JE#2$Ec`0` z{?g3ma4-~X9cYD-w4aMi8|An(Q~sg|56-2(BQ1be-@%?I^(WZ#uKtU(>lw=Fq@<(; zxRLRQvTe>Cg z4IgFh&qd365vhs;s!qD@`BO3clVtOd*=Y5KUr;!K_*mV7ut9S&-qc^!$y= zHfu1#_gVR6NT*qd$@I$T4vq}>_P2Rj`ge*6>f}Hrnm;5az^?dPwOW@1>vB`JInnFk z#3ZTVzQLAo2ls@i*#=UQFY)&T_TXZdKuo&&S4;LW_PA7=u(wqlCl%z0vmK~ zk)g?ypN@woB&8#XbVhV%O=jxlP9d4X`C!{b)fQT&45-;%la0clxaUDOx0CMO8@nSd z$*Ax~!5Hm?t4~sP5iY$;hJVd=3b@Ps^Z& zZ;<0VnCo+4n#U5;#BfnE%z+y5+T6}{X<0@n%c|7`%~mcYlVeYu`B^Jx{`h^OCv(lt5k$DQ7`V!H>L8a<-ycmNvR=UYm>8-fmTX6% zg|_!GA%{A#>J`yrm*GlbwhfUS7p!7)#e00#Aj4mU1qNI)*er9BGEUTSd+sd4?YXb0 zvlgRFU=;O|Vo}yQ8mmSL#a)QnM2JRquHpihCd zO9$KHv*I$U2V0LP!D(|tZb>e+^79x~z492=B=U?8f*O;zGH%o}C1$!Rrv#-mJ!5u>;b}vl+Vl@^1D#Ts};FiDf=5@Ql|Iek>1CQPAYo z1VHM5p^nnby3%V!B7}IQ%~s%*_HM;)J95KtXM~LEUA4sae@ne)@LEE?2TSLI4=VFx zgx(Os3xs~J3^5#yu0g++=3GJ=L1&`I_J07ENT?+|Ks%br?d}XUsh_=!N0O4v;zuR* z`&AvAbDZQ1HQ}l&w@ynpn}91p#dS?dYoXU&N{baWd-Fb6H@K@lb-OZghS_F9&+~lH z3{@_VhGb3%rWJtCfiM>Y0T;|{m4yZZgIz#Rei<*Kwq&%DFT*cY4wDxCqF@A8PkbR> zfLoqIIPYnUt;oyZ^Az(M98qqzk*~!p5daTjQc#G)>!u{m;1%?}ggBxa$9(@0{;^ z=kd>j*sa)XWmQ|W`(*RT*yNiL{M1I?7@3?(B;u2i_;4^1ADbK>PE3pjeg4SRfbCQu zCz_a^7#?*V9E*=ShbKm3Q==o!J%^?zCP!k&tDS+6b64!RGtkuJXaDhs>l?!UkS}L@ zOLV6evMX_z0JROy9kIjHu?Ye-GEguatP9uI`Es6pG(V>+NvvakUY9<%zq*&gML$24 zx|jl?^dExxfsmKQ^EUaNfk4>b$bwzJ6n=+Nnx349#1q4@cqBeDswBd)u*1HLkGTc- zE2EQrTQiTc@7>J%>7Qi@XIPvCIGeS_wIulGXD_9;^mjz(fn)#7=x=Ww=#O>{wv*K| z1U6dWk%x!eY;)lP#|Z&0Z5~qTa!ClNj22yJlnxWwrcyMlMZ+}7u$KP5!(zyoBs?~l zVSfb=-)7rO5D-)Yf@=W8#Gm6SL)$u)?L6oh@eMt_+xpvEx;YUD$(#drw5(V2Rne$Z z;#cI_DYFK(Wdpep(?^o;<=TDdE`&zubh#vmMl36x;7`)o3d>MrAVQz!ddYXA+IOSk zyO%DT@KRPvzMS8>?&r~EDk)%xU}Zn(f(T!@IM{IN=;Mf(O?qMZ^7TI^cGTBr9Tstpz;XHCVDy4Ak}tC+vX7ZVzM`3*E@M``_K5F~ST8v{u5i<1MKP8ykcSTBVMC550k zpD5>flc^4oeJW}UhDgeRrAhuc9$|EZV~|3U_7vsA-=-2KsiR;g`^F1;+4swW0h!?d zG3>12p{>yA!8rT0aTInG4TGR?QpIpHeNkwZH5gKAwcae&iV5?QqQQV!)Zpb8L`V_y zmpf`XNh#p?KakupNnfFQ&012yYBAIz;a9cpFn3uPNl_+@5RjySn5Bz)e?P*MN-#f| z7cCPiHU{^=pOylq7jNyN?l_>0v<4zdLxXVBT1N{jrh(|5hmn$%OU9DLg>1H!Mlh$> zv@l$-ds;fS^|lSIF1k=FG$>Wq>BO>E=JRmNW?+qYA3M>t`Wiu*@34|nVi`S2he_7oW)tH{N|d5Z?+t3!0P;$!wjF8Oeb4sjqd z9pdOP&u_3p5A1W`8tyjX`(TB=6dvd+HJXvk zag`#nY|mHxr=?ivd!^m%n_V_YYw?68h;FS4@&gYuW&QLbozx&yfTZ$cfTZ%e4bW6x zNV!dM!n@Q|i>`b)S1zt7c6f>ov8E5p^^Dao<;bnRVlOQUY?d>sjMPP94~+Or2H&FZ zDvVSM1f12-ljaSj<1VhLuv{DBi;v(?B`P#txto4Mp}TXc_|o$xZ47)OHdL7cs5@Go z*987AC9&CYxt^%9D|x=JinAuq-)g+@q{_^wrMd^G2pI69CZMVilr0ZQcL6*#I3U|o zNbeY8E@{GO)LGMCv=?!qo$(lIiIC9R``_Rh1EJ^6t!&e|gM`WUf)?-S#$S$QN@k z>ve(N7g9{;MAHw*6!-7T0GWg=Y22>#PYVjBltJ hU#^KNQErGdm>>3g41ecX{kGMY0(AIKrc6J3_79tmF;V~k diff --git a/sources/SEDIT-WINDOW b/sources/SEDIT-WINDOW index 3be6a4fb..824149b3 100644 --- a/sources/SEDIT-WINDOW +++ b/sources/SEDIT-WINDOW @@ -1,18 +1,19 @@ -(DEFINE-FILE-INFO READTABLE "XCL" PACKAGE (DEFPACKAGE SEDIT (USE LISP XCL))) -(IL:FILECREATED "14-May-2018 14:12:02"  -IL:|{DSK}kaplan>Local>medley3.5>lispcore>sources>SEDIT-WINDOW.;2| 84658 +(DEFINE-FILE-INFO PACKAGE (DEFPACKAGE SEDIT (USE LISP XCL)) READTABLE "XCL" BASE 10) - IL:|changes| IL:|to:| (IL:FNS BUTTONEVENTFN) +(IL:FILECREATED "17-Jun-2023 19:59:30" IL:|{WMEDLEY}SEDIT-WINDOW.;2| 87420 - IL:|previous| IL:|date:| " 2-Apr-92 11:08:50" -IL:|{DSK}kaplan>Local>medley3.5>lispcore>sources>SEDIT-WINDOW.;1|) + :EDIT-BY IL:|rmk| + + :CHANGES-TO (IL:FNS BUTTONEVENTFN) + + :PREVIOUS-DATE "14-May-2018 14:12:02" IL:|{WMEDLEY}SEDIT-WINDOW.;1|) -; Copyright (c) 1986, 1987, 1988, 1990, 1991, 1992, 2018 by Venue & Xerox Corporation. All rights reserved. +; Copyright (c) 1986-1988, 1990-1992, 2018 by Venue & Xerox Corporation. (IL:PRETTYCOMPRINT IL:SEDIT-WINDOWCOMS) -(IL:RPAQQ IL:SEDIT-WINDOWCOMS +(IL:RPAQQ IL:SEDIT-WINDOWCOMS ((IL:PROP IL:FILETYPE IL:SEDIT-WINDOW) (IL:PROP IL:MAKEFILE-ENVIRONMENT IL:SEDIT-WINDOW) (IL:LOCALVARS . T) @@ -36,11 +37,11 @@ IL:|{DSK}kaplan>Local>medley3.5>lispcore>sources>SEDIT-WINDOW.;1|) SET-SELECTION-NOWHERE SHIFT-DOWN SHOW-CARET SHRINKFN STRING-OFFSET TRACK-EXTEND TRACK-SELECT UNDERLINE-SELECTION UPDATE-TITLE))) -(IL:PUTPROPS IL:SEDIT-WINDOW IL:FILETYPE :COMPILE-FILE) +(IL:PUTPROPS IL:SEDIT-WINDOW IL:FILETYPE :COMPILE-FILE) -(IL:PUTPROPS IL:SEDIT-WINDOW IL:MAKEFILE-ENVIRONMENT (:READTABLE "XCL" :PACKAGE - (DEFPACKAGE IL:SEDIT (:USE IL:LISP - IL:XCL)))) +(IL:PUTPROPS IL:SEDIT-WINDOW IL:MAKEFILE-ENVIRONMENT (:READTABLE "XCL" :PACKAGE + (DEFPACKAGE IL:SEDIT (:USE IL:LISP IL:XCL + )))) (IL:DECLARE\: IL:DOEVAL@COMPILE IL:DONTCOPY (IL:LOCALVARS . T) @@ -58,40 +59,64 @@ IL:|{DSK}kaplan>Local>medley3.5>lispcore>sources>SEDIT-WINDOW.;1|) (IL:RPAQQ ICON-TITLE-REGION (5 16 130 24)) -(IL:RPAQ TITLED-ICON (IL:CREATE IL:TITLEDICON IL:ICON IL:_ ICON IL:MASK IL:_ ICON-MASK - IL:TITLEREG IL:_ ICON-TITLE-REGION)) +(IL:RPAQ TITLED-ICON (IL:CREATE IL:TITLEDICON IL:ICON IL:_ ICON IL:MASK IL:_ ICON-MASK IL:TITLEREG + IL:_ ICON-TITLE-REGION)) (IL:RPAQQ KEEP-WINDOW-REGION T) (IL:DECLARE\: IL:DONTCOPY (IL:DECLARE\: IL:EVAL@COMPILE -(IL:PUTPROPS IN-TITLE-BAR IL:MACRO ((WINDOW) +(IL:PUTPROPS IN-TITLE-BAR IL:MACRO ((WINDOW) (NOT (IL:INSIDEP (IL:DSPCLIPPINGREGION NIL WINDOW) (IL:LASTMOUSEX WINDOW) (IL:LASTMOUSEY WINDOW))))) -(IL:PUTPROPS TRACK-BAR-IN-TRACK-SELECT IL:MACRO - (NIL (WHEN (OR (IL:NEQ POINT? (IL:|fetch| POINT-TYPE IL:|of| PENDING-CARET)) - (IL:NEQ BAR-X (IL:|fetch| POINT-X IL:|of| PENDING-CARET)) - (IL:NEQ BAR-LINE (IL:|fetch| POINT-LINE IL:|of| PENDING-CARET))) - (WHEN POINT? - (IL:BLTSHADE IL:BLACKSHADE WINDOW BAR-X BAR-Y 1 BAR-HEIGHT 'IL:INVERT)) - (WHEN (IL:SETQ POINT? (IL:|fetch| POINT-TYPE IL:|of| PENDING-CARET)) - (IL:SETQ BAR-X (IL:|fetch| POINT-X IL:|of| PENDING-CARET)) - (IL:SETQ BAR-LINE (IL:|fetch| POINT-LINE IL:|of| PENDING-CARET)) - (IL:SETQ BAR-HEIGHT (IL:IPLUS (IL:|fetch| LINE-ASCENT IL:|of| BAR-LINE) - (IL:|fetch| LINE-DESCENT IL:|of| BAR-LINE))) - (IL:SETQ BAR-Y (IL:IDIFFERENCE (IL:|fetch| YCOORD IL:|of| BAR-LINE) - (IL:IPLUS (IL:|fetch| LINE-SKIP IL:|of| BAR-LINE) - BAR-HEIGHT))) - (IL:BLTSHADE IL:BLACKSHADE WINDOW BAR-X BAR-Y 1 BAR-HEIGHT 'IL:INVERT))))) +(IL:PUTPROPS TRACK-BAR-IN-TRACK-SELECT IL:MACRO (NIL (WHEN (OR (IL:NEQ POINT? (IL:|fetch| POINT-TYPE + IL:|of| + PENDING-CARET) + ) + (IL:NEQ BAR-X (IL:|fetch| POINT-X + IL:|of| PENDING-CARET + )) + (IL:NEQ BAR-LINE (IL:|fetch| + POINT-LINE + IL:|of| + PENDING-CARET + ))) + (WHEN POINT? + (IL:BLTSHADE IL:BLACKSHADE WINDOW BAR-X + BAR-Y 1 BAR-HEIGHT 'IL:INVERT)) + (WHEN (IL:SETQ POINT? (IL:|fetch| POINT-TYPE + IL:|of| + PENDING-CARET + )) + (IL:SETQ BAR-X (IL:|fetch| POINT-X + IL:|of| PENDING-CARET) + ) + (IL:SETQ BAR-LINE (IL:|fetch| POINT-LINE + IL:|of| + PENDING-CARET + )) + (IL:SETQ BAR-HEIGHT + (IL:IPLUS (IL:|fetch| LINE-ASCENT + IL:|of| BAR-LINE) + (IL:|fetch| LINE-DESCENT + IL:|of| BAR-LINE))) + (IL:SETQ BAR-Y + (IL:IDIFFERENCE (IL:|fetch| YCOORD + IL:|of| BAR-LINE) + (IL:IPLUS (IL:|fetch| LINE-SKIP + IL:|of| BAR-LINE) + BAR-HEIGHT))) + (IL:BLTSHADE IL:BLACKSHADE WINDOW BAR-X + BAR-Y 1 BAR-HEIGHT 'IL:INVERT))))) ) ) (DEFUN SELECT-NODE-SEGMENT (CONTEXT NODE &OPTIONAL (START 1) - END) + END) -(IL:* IL:|;;;| "set the current selection to be a segment under this node") +(IL:* IL:|;;;| "set the current selection to be a segment under this node") (LET ((SELECTION (IL:FETCH SELECTION IL:OF CONTEXT)) (POINT (IL:FETCH CARET-POINT IL:OF CONTEXT))) @@ -100,7 +125,7 @@ IL:|{DSK}kaplan>Local>medley3.5>lispcore>sources>SEDIT-WINDOW.;1|) (IL:|replace| SELECT-END IL:|of| SELECTION IL:|with| END) (SELECT-SEGMENT SELECTION CONTEXT NODE) - (IL:* IL:|;;| "set point to be the selection. This should really be done by select-segment but it doesn't because it expects finalization code to be run after it cause it's generally called from the mouse tracking code which finalizes.") + (IL:* IL:|;;| "set point to be the selection. This should really be done by select-segment but it doesn't because it expects finalization code to be run after it cause it's generally called from the mouse tracking code which finalizes.") (PENDING-DELETE POINT SELECTION))) (IL:DEFINEQ @@ -182,9 +207,10 @@ IL:|{DSK}kaplan>Local>medley3.5>lispcore>sources>SEDIT-WINDOW.;1|) (IL:DSPRIGHTMARGIN 64000 DISPLAY-WINDOW)))) (BUTTONEVENTFN - (IL:LAMBDA (WINDOW) (IL:* IL:\; "Edited 23-Apr-2018 09:37 by rmk:") + (IL:LAMBDA (WINDOW) (IL:* IL:\; "Edited 17-Jun-2023 19:59 by rmk") + (IL:* IL:\; "Edited 23-Apr-2018 09:37 by rmk:") - (IL:* IL:|;;| "called by the window system whenever the user hits a mouse button in an SEdit window. allows selection and setting the caret point") + (IL:* IL:|;;| "called by the window system whenever the user hits a mouse button in an SEdit window. allows selection and setting the caret point") (LET* ((CONTEXT (IL:WINDOWPROP WINDOW 'EDIT-CONTEXT)) (LOCK (AND CONTEXT (IL:|fetch| CONTEXT-LOCK IL:|of| CONTEXT))) @@ -192,12 +218,12 @@ IL:|{DSK}kaplan>Local>medley3.5>lispcore>sources>SEDIT-WINDOW.;1|) (COND ((IL:LASTMOUSESTATE IL:UP) - (IL:* IL:|;;| "oops, no mouse buttons down. what are we doing here?") + (IL:* IL:|;;| "oops, no mouse buttons down. what are we doing here?") NIL) ((NOT (AND CONTEXT (IL:WINDOWPROP WINDOW 'IL:PROCESS))) - (IL:* IL:|;;| "this context or process is dead. make it a dead SEdit.") + (IL:* IL:|;;| "this context or process is dead. make it a dead SEdit.") (IL:|printout| (IL:GETPROMPTWINDOW WINDOW) T "This SEdit is dead.") @@ -209,21 +235,32 @@ IL:|{DSK}kaplan>Local>medley3.5>lispcore>sources>SEDIT-WINDOW.;1|) ((AND (IL:LASTMOUSESTATE IL:RIGHT) (IN-TITLE-BAR WINDOW)) - (IL:* IL:|;;| "right buttoning the title bar or window border gives the default menu of window commands. Not interlocked because want to be able to move window under a break that has the lock.") + (IL:* IL:|;;| "right buttoning the title bar or window border gives the default menu of window commands. Not interlocked because want to be able to move window under a break that has the lock.") (IL:\\CARET.DOWN) (IL:DOWINDOWCOM WINDOW)) ((AND (NOT (IL:TTY.PROCESSP (IL:WINDOWPROP WINDOW 'IL:PROCESS))) (NOT SHIFT-DOWN)) - (IL:* IL:|;;| "just grab the tty and don't change state") + (IL:* IL:|;;| "just grab the tty and don't change state") (IL:TOTOPW WINDOW) (IL:TTY.PROCESS (IL:WINDOWPROP WINDOW 'IL:PROCESS))) + ((AND (EQ SHIFT-DOWN 'COPY) + (IL:MOUSESTATE IL:LEFT) + (IN-TITLE-BAR WINDOW)) + + (IL:* IL:|;;| "RMK: copy-select in the title bar: return the thing being edited") + + (LET ((NAME (IL:LISTGET (IL:WINDOWPROP WINDOW 'TITLE-INFO) + :|name|))) + (WHEN NAME (IL:* IL:\; + "Not sure about FLG and RDTBL") + (IL:BKSYSBUF NAME)))) ((OR (EQ SHIFT-DOWN 'COPY) (IL:OBTAIN.MONITORLOCK LOCK T)) - (IL:* IL:|;;| "at this point we must have the lock, unless we're shift selecting (Copy only: Move and Delete are non-passive operation and must lock)") + (IL:* IL:|;;| "at this point we must have the lock, unless we're shift selecting (Copy only: Move and Delete are non-passive operation and must lock)") (IL:\\CARET.DOWN) (IL:TOTOPW WINDOW) @@ -233,31 +270,27 @@ IL:|{DSK}kaplan>Local>medley3.5>lispcore>sources>SEDIT-WINDOW.;1|) (AND (IL:LASTMOUSESTATE IL:LEFT) (IL:KEYDOWNP 'IL:CTRL)))) - (IL:* IL:|;;| "popup help command menu here.") + (IL:* IL:|;;| "popup help command menu here.") - (IL:* IL:|;;| "RMK: CTRL-LEFT = MIDDLE") + (IL:* IL:|;;| "RMK: CTRL-LEFT = MIDDLE") (HELPMENU CONTEXT)) (T (WITH-PROFILE (IL:|fetch| PROFILE IL:|of| CONTEXT) (PROG NIL (CLOSE-OPEN-NODE CONTEXT) - (IL:* IL:|;;| "record that we're busy making a selection in this window, and make sure that variables we use for recording our temporary state are all ready for action. note that these are global vars, and hence all this code is nonrentrant. shouldn't be a problem, since there's only one mouse") + (IL:* IL:|;;| "record that we're busy making a selection in this window, and make sure that variables we use for recording our temporary state are all ready for action. note that these are global vars, and hence all this code is nonrentrant. shouldn't be a problem, since there's only one mouse") (IL:SETQ SELECTION-PENDING? CONTEXT) - (IL:SETQ PENDING-LAST-X (IL:|fetch| LAST-MOUSE-X IL:|of| - CONTEXT)) - (IL:SETQ PENDING-LAST-Y (IL:|fetch| LAST-MOUSE-Y IL:|of| - CONTEXT)) - (IL:SETQ PENDING-TYPE (IL:|fetch| LAST-MOUSE-TYPE IL:|of| - CONTEXT)) + (IL:SETQ PENDING-LAST-X (IL:|fetch| LAST-MOUSE-X IL:|of| CONTEXT)) + (IL:SETQ PENDING-LAST-Y (IL:|fetch| LAST-MOUSE-Y IL:|of| CONTEXT)) + (IL:SETQ PENDING-TYPE (IL:|fetch| LAST-MOUSE-TYPE IL:|of| CONTEXT)) (IL:SETQ PENDING-SHIFT SHIFT-DOWN) - (IL:|replace| SELECT-NODE IL:|of| PENDING-SELECTION - IL:|with| NIL) + (IL:|replace| SELECT-NODE IL:|of| PENDING-SELECTION IL:|with| NIL) (WHEN (NOT PENDING-SHIFT) - (IL:* IL:|;;| - "if they're setting a new selection take down the main selection") + (IL:* IL:|;;| + "if they're setting a new selection take down the main selection") (SELECTION-DOWN CONTEXT)) (IL:SETQ LAST-MOVE-CLOCK NIL) @@ -268,15 +301,15 @@ IL:|{DSK}kaplan>Local>medley3.5>lispcore>sources>SEDIT-WINDOW.;1|) (TRACK-SELECT CONTEXT WINDOW)) (IL:|until| (CHECK-SELECTION-SHIFT CONTEXT T) IL:|do| (WHEN (NOT (IL:MOUSESTATE IL:UP)) - (GO MOUSE-BUTTON-DOWN)) + (GO MOUSE-BUTTON-DOWN)) (WHEN (IL:IN/SCROLL/BAR? WINDOW IL:LASTMOUSEX IL:LASTMOUSEY - ) (IL:* IL:\; - "let them scroll while making a selection") + ) (IL:* IL:\; + "let them scroll while making a selection") (IL:SCROLL.HANDLER WINDOW)) (IL:BLOCK)) (IL:SETQ SELECTION-PENDING? NIL) - (IL:* IL:\; - "figure out what we should do") + (IL:* IL:\; + "figure out what we should do") (FINALIZE-MOUSE-SELECTION CONTEXT WINDOW))))) (OR (EQ SHIFT-DOWN 'COPY) (IL:RELEASE.MONITORLOCK LOCK))))))) @@ -781,22 +814,22 @@ IL:|{DSK}kaplan>Local>medley3.5>lispcore>sources>SEDIT-WINDOW.;1|) (IL:PUTPROPS IL:SEDIT-WINDOW IL:COPYRIGHT ("Venue & Xerox Corporation" 1986 1987 1988 1990 1991 1992 2018)) (IL:DECLARE\: IL:DONTCOPY - (IL:FILEMAP (NIL (9049 9957 (SELECT-NODE-SEGMENT 9049 . 9957)) (9958 84520 (BUILD-WINDOW 9971 . 15811) - (BUTTONEVENTFN 15813 . 21522) (CHECK-SELECTION 21524 . 23564) (CHECK-SELECTION-SHIFT 23566 . 24689) ( -CLOSEFN 24691 . 27694) (CONFLICTING-SELECTION? 27696 . 28457) (DISPLAY-SELECTION 28459 . 29486) ( -DRAW-HIGHLIGHT 29488 . 30618) (DRAW-OUTLINE 30620 . 31975) (DRAW-UNDERLINE 31977 . 32752) (EXPANDFN -32754 . 33261) (EXPANDREGIONFN 33263 . 33853) (EXTEND-SELECTION 33855 . 36432) ( -FINALIZE-MOUSE-SELECTION 36434 . 42980) (FIND-LINE-START 42982 . 43673) (FIND-NODE 43675 . 44950) ( -GET-DESTINATION-CONTEXT 44952 . 45504) (GRAY 45506 . 45893) (GROW-CLICK? 45895 . 47880) ( -GROW-SELECTION 47882 . 48225) (GROW-SELECTION-DEFAULT 48227 . 48598) (HIGHLIGHT-SELECTION 48600 . -48893) (ICON-COPYFN 48895 . 49239) (LESS-PROMPT-WINDOW 49241 . 49610) (NORMALIZE-SELECTION 49612 . -50978) (OUTLINE-SELECTION 50980 . 52118) (PENDING-DELETE 52120 . 52454) (PLACE-CARET-AND-SELECTION -52456 . 54016) (PUNT-SET-POINT 54018 . 54476) (PUNT-SET-SELECTION 54478 . 54927) (REPAINTFN 54929 . -56207) (RESHAPEFN 56209 . 58547) (SCAN-FOR-BOUNDS 58549 . 61092) (SELECT-NODE 61094 . 61464) ( -SELECT-SEGMENT 61466 . 61906) (SELECT-SEGMENT-DEFAULT 61908 . 63935) (SELECTION-DOWN 63937 . 64347) ( -SELECTION-UP 64349 . 64775) (SET-POINT 64777 . 65536) (SET-POINT-NOWHERE 65538 . 65797) ( -SET-POINT-UNKNOWN 65799 . 66420) (SET-SELECTION 66422 . 66855) (SET-SELECTION-ME 66857 . 67949) ( -SET-SELECTION-NOWHERE 67951 . 68149) (SHIFT-DOWN 68151 . 68692) (SHOW-CARET 68694 . 74252) (SHRINKFN -74254 . 76989) (STRING-OFFSET 76991 . 78351) (TRACK-EXTEND 78353 . 80409) (TRACK-SELECT 80411 . 82900) - (UNDERLINE-SELECTION 82902 . 83304) (UPDATE-TITLE 83306 . 84518))))) + (IL:FILEMAP (NIL (11430 12334 (SELECT-NODE-SEGMENT 11430 . 12334)) (12335 87282 (BUILD-WINDOW 12348 . +18188) (BUTTONEVENTFN 18190 . 24284) (CHECK-SELECTION 24286 . 26326) (CHECK-SELECTION-SHIFT 26328 . +27451) (CLOSEFN 27453 . 30456) (CONFLICTING-SELECTION? 30458 . 31219) (DISPLAY-SELECTION 31221 . 32248 +) (DRAW-HIGHLIGHT 32250 . 33380) (DRAW-OUTLINE 33382 . 34737) (DRAW-UNDERLINE 34739 . 35514) (EXPANDFN + 35516 . 36023) (EXPANDREGIONFN 36025 . 36615) (EXTEND-SELECTION 36617 . 39194) ( +FINALIZE-MOUSE-SELECTION 39196 . 45742) (FIND-LINE-START 45744 . 46435) (FIND-NODE 46437 . 47712) ( +GET-DESTINATION-CONTEXT 47714 . 48266) (GRAY 48268 . 48655) (GROW-CLICK? 48657 . 50642) ( +GROW-SELECTION 50644 . 50987) (GROW-SELECTION-DEFAULT 50989 . 51360) (HIGHLIGHT-SELECTION 51362 . +51655) (ICON-COPYFN 51657 . 52001) (LESS-PROMPT-WINDOW 52003 . 52372) (NORMALIZE-SELECTION 52374 . +53740) (OUTLINE-SELECTION 53742 . 54880) (PENDING-DELETE 54882 . 55216) (PLACE-CARET-AND-SELECTION +55218 . 56778) (PUNT-SET-POINT 56780 . 57238) (PUNT-SET-SELECTION 57240 . 57689) (REPAINTFN 57691 . +58969) (RESHAPEFN 58971 . 61309) (SCAN-FOR-BOUNDS 61311 . 63854) (SELECT-NODE 63856 . 64226) ( +SELECT-SEGMENT 64228 . 64668) (SELECT-SEGMENT-DEFAULT 64670 . 66697) (SELECTION-DOWN 66699 . 67109) ( +SELECTION-UP 67111 . 67537) (SET-POINT 67539 . 68298) (SET-POINT-NOWHERE 68300 . 68559) ( +SET-POINT-UNKNOWN 68561 . 69182) (SET-SELECTION 69184 . 69617) (SET-SELECTION-ME 69619 . 70711) ( +SET-SELECTION-NOWHERE 70713 . 70911) (SHIFT-DOWN 70913 . 71454) (SHOW-CARET 71456 . 77014) (SHRINKFN +77016 . 79751) (STRING-OFFSET 79753 . 81113) (TRACK-EXTEND 81115 . 83171) (TRACK-SELECT 83173 . 85662) + (UNDERLINE-SELECTION 85664 . 86066) (UPDATE-TITLE 86068 . 87280))))) IL:STOP diff --git a/sources/SEDIT-WINDOW.DFASL b/sources/SEDIT-WINDOW.DFASL index f1c9091f55830818c5063135be4f4914e3f23ed1..2b0c8ab9602e55f9cb40f16ac73f3909ca26005e 100644 GIT binary patch delta 13108 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 delta 12694 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 N!G!H0%i~{u`F~e7C*lAA