|
|
1.1 root 1: (setq rcs-cmuedit-
2: "$Header: /usr/lib/lisp/cmuedit.l,v 1.1 83/01/29 18:33:36 jkf Exp $")
3:
4: (eval-when (compile load eval) (load 'cmumacs) (load 'cmufncs))
5:
6: (declare (special c2 c3 tem nopr %changes))
7:
8: (dv editsfns
9: ((declare
10: (special |#1|
11: |#2|
12: |#3|
13: $%dotflg
14: %lookdpth
15: %prevfn%
16: atm
17: autop
18: com
19: com0
20: coms
21: copyflg
22: editcomsl
23: editracefn
24: %%w
25: findflag
26: l
27: l0
28: lastail
29: lastp1
30: lastp2
31: lastword
32: lcflg
33: marklst
34: maxlevel
35: maxloop
36: mess
37: noprint
38: oldprompt
39: readbuf
40: %%x
41: toflg
42: topflg
43: undolst
44: undolst1
45: unfind
46: upfindflg
47: usermacros
48: findarg
49: commentflg
50: changed))
51: |##|
52: editfns
53: editf
54: editv
55: editp
56: edite
57: editl
58: editl0
59: edval
60: editread
61: (declare (*expr editracefn))
62: editcom
63: editcoma
64: editcoml
65: editmac
66: editcoms
67: edith
68: edit!undo
69: undoeditcom
70: editsmash
71: editnconc
72: editdsubst
73: edit1f
74: edit2f
75: edit4e
76: editqf
77: edit4f
78: editfpat
79: edit4f1
80: editfindp
81: editbf
82: editbf1
83: editnth
84: bpnt0
85: bpnt
86: editri
87: editro
88: editli
89: editlo
90: editbi
91: editbo
92: editdefault
93: edup
94: edit*l
95: edit*
96: edor
97: errcom
98: edrpt
99: edloc
100: edlocl
101: edit:
102: editmbd
103: editxtr
104: editelt
105: editcont
106: editsw
107: editmv
108: editto
109: editbelow
110: editran
111: edit!0
112: editrepack
113: editmakefn
114: usermacros
115: editracefn
116: lastword
117: maxlevel
118: maxloop
119: editcomsl
120: autop
121: upfindflg))
122:
123: (declare
124: (special |#1|
125: |#2|
126: |#3|
127: $%dotflg
128: %lookdpth
129: %prevfn%
130: atm
131: autop
132: com
133: com0
134: coms
135: copyflg
136: editcomsl
137: editracefn
138: %%w
139: findflag
140: l
141: l0
142: lastail
143: lastp1
144: lastp2
145: lastword
146: lcflg
147: marklst
148: maxlevel
149: maxloop
150: mess
151: noprint
152: oldprompt
153: readbuf
154: %%x
155: toflg
156: topflg
157: undolst
158: undolst1
159: unfind
160: upfindflg
161: usermacros
162: findarg
163: commentflg
164: changed))
165: (declare (special c nopr)) ; LWE 1/11/80 Hacks for new compiler.
166: (def |##|
167: (nlambda (coms)
168: ((lambda (l undolst1) (editcoms coms)) l nil)))
169:
170: (def editfns
171: (nlambda (x)
172: (prog (y)
173: (setq y (eval (car x)))
174: l1 (cond
175: (y (print (car y))
176: (eval
177: (list 'errset
178: (cons 'editf (cons (car y) (cdr x)))))
179: (setq y (cdr y))
180: (go l1))))))
181:
182: (def editf
183: (nlambda (x)
184: (prog (y fn changed)
185: (cond
186: ((null x)
187: (print '=)
188: (prin1 lastword)
189: (setq x (ncons lastword))))
190: (cond ((symbolp (car x))
191: (setq fn (car x))
192: (cond ((*** setq y (get fn 'trace)) (setq fn (cdr y))))
193: (cond ((setq y (getd fn))
194: (edite y (cdr x) (car x))
195: (cond
196: (changed
197: (*** cond
198: ((eq (car x) fn)
199: (*** move property to front)
200: (remprop (car x) (car y))
201: (putprop (car x) (cadr y) (car y)))
202: ((setq y (cdr (get fn 'funtype)))
203: (*** move the *right* property of the
204: original word to the front)
205: (setq fn (get (car x) y))
206: (remprop (car x) y)
207: (putprop (car x) fn y)))))
208: (return (setq lastword (car x))))
209: ((and (boundp fn) (dtpr (cdr y))) (go l1))))
210: ((dtpr (car x)) (go l1)))
211: (print (car x))
212: (princ '" not editable")
213: (err nil)
214: l1 (print '=editv)
215: (return (eval (cons 'editv x))))))
216:
217: (def editv
218: (nlambda (x)
219: (prog (y)
220: (cond
221: ((null x)
222: (print '=)
223: (prin1 lastword)
224: (setq x (ncons lastword))))
225: (cond ((dtpr (car x)) (edite (eval (car x)) (cdr x) nil) (return t))
226: ((and (symbolp (car x))
227: (boundp (car x))
228: (setq y (eval (car x))))
229: (edite y (cdr x) (car x))
230: (return (setq lastword (car x))))
231: (t (print (car x)) (princ '" not editable") (err nil))))))
232:
233: (def editp
234: (nlambda (x)
235: (cond
236: ((null x) (print '=) (prin1 lastword) (setq x (ncons lastword))))
237: (cond ((dtpr (car x)) (print '=editv) (eval (cons 'editv x)))
238: ((symbolp (car x))
239: (edite (plist (car x)) (cdr x) (car x))
240: (setq lastword (car x)))
241: (t (print (car x)) (princ '" not editable") (err nil)))))
242:
243: (def edite
244: (lambda (expr coms atm)
245: (cond ((atom expr) (print expr) (princ '" not editable") (err nil))
246: (t (car (last (editl (ncons expr) coms atm nil nil)))))))
247:
248: (def editl
249: (lambda (l coms atm marklst mess)
250: (prog (com lastail undolst undolst1 findflag lcflg unfind lastp1 lastp2 readbuf l0 com0 oldprompt upfindflg noprint findarg)
251: (makunbound 'findarg)
252: (setq upfindflg t)
253: (cond ((dtpr (setq l (catch (eval '(editl0)) edit-abort)))
254: (return l))
255: (t (err nil))))))
256:
257: (def editl0
258: (lambda nil
259: (prog nil
260: (cond
261: (coms
262: (cond ((eq (car coms) 'start)
263: (setq readbuf (append (cdr coms) (list nil)))
264: (setq coms nil)
265: (*** don 't quit if command fails))
266: (t (editcoms (append coms (list 'ok))) (return l)))))
267: (cond
268: ((or (null coms) (eq (car coms) 'start))
269: (print (or mess 'edit))))
270: (cond
271: ((or (eq (car l)
272: (car
273: (last
274: (car
275: (cond ((setq com
276: (get 'edit 'lastvalue)))
277: (t '((nil))))))))
278: (and atm
279: (eq (car l)
280: (car
281: (last
282: (car
283: (cond ((setq com
284: (get atm 'edit-save)))
285: (t '((nil))))))))))
286: (setq l (car com))
287: (setq marklst (cadr com))
288: (setq undolst (caddr com))
289: (cond ((car undolst) (setq undolst (cons nil undolst))))
290: (setq unfind (cdddr com))))
291: (*** setq
292: oldprompt
293: (cons (sub1 (stkcount 'editl0 (add1 (spdlpt)) 0))
294: (prompt 35)))
295: ct (setq noprint t)
296: (setq findflag nil)
297: a (setq undolst1 nil)
298: (cond
299: ((and autop (null readbuf) (not noprint)) (bpnt (list 0 autop))))
300: (setq com (editread))
301: (setq l0 l)
302: (setq com0 (cond ((atom com) com) (t (car com))))
303: (cond
304: ((dtpr
305: (prog1 (errset (editcom com t))
306: (cond
307: (undolst1 (setq undolst1
308: (cons com0 (cons l0 undolst1)))
309: (setq undolst (cons undolst1 undolst))))))
310: (go a)))
311: (setq readbuf nil)
312: (cond (coms (err nil)))
313: (terpri)
314: (cond (com (prin1 com) (princ '" ?") (terpri)))
315: (go ct))))
316:
317: (def edval
318: (lambda (%%x)
319: (errset (eval %%x))))
320:
321: (def editread
322: (lambda nil
323: (prog (x)
324: (cond
325: ((null readbuf)
326: (prog nil
327: l1 (terpri)
328: (princ '|#|)
329: (*** cond
330: ((neq (car oldprompt) 0) (princ (car oldprompt))))
331: (*** prompt 35)
332: (cond
333: ((atom (setq readbuf (errset (lineread))))
334: (terpri)
335: (go l1)))
336: (setq readbuf (car readbuf)))))
337: (setq x (car readbuf))
338: (setq readbuf (cdr readbuf))
339: (return x))))
340:
341: (declare (*expr editracefn))
342:
343: (def editcom
344: (lambda (c topflg)
345: (setq com c)
346: (cond (editracefn (editracefn c)))
347: (cond (findflag
348: (cond ((eq findflag 'bf) (setq findflag nil) (editbf c nil))
349: (t (setq findflag nil) (editqf c))))
350: ((numberp c) (setq l (edit1f c l)) (setq noprint nil))
351: ((atom c) (editcoma c (null topflg)))
352: (t (editcoml c (null topflg))))
353: (car l)))
354:
355: (def editcoma
356: (lambda (c copyflg)
357: (prog (tem nopr)
358: (selectq c
359: (help (setq nopr t)
360: (eval (cons 'help readbuf))
361: (setq readbuf nil)
362: (*** inserted dec 78 by don cohen))
363: (!0 (edit!0))
364: (!nx
365: (setq l
366: ((lambda (l)
367: (prog (uf)
368: (setq uf l)
369: lp (cond ((or (null (setq l (cdr l)))
370: (null (cdr l)))
371: (err nil))
372: ((or (null
373: (setq tem
374: (memq (car l)
375: (cadr
376: l))))
377: (null (cdr tem)))
378: (go lp)))
379: (edit* 1)
380: (setq unfind uf)
381: (return l)))
382: l)))
383: (!undo (edit!undo t t nil))
384: (? (bpnt0 (car l) 64) (setq nopr t))
385: (?? (edith undolst) (setq nopr t))
386: (bk (edit* -1))
387: (delete (setq c '(delete)) (edit: ': nil nil))
388: (mark (setq marklst (cons l marklst)) (setq nopr t))
389: (nex
390: (setq l
391: ((lambda (l) (editbelow '_ 1) (edit* 1) l)
392: l)))
393: ((f bf)
394: (cond ((null topflg) (setq findflag c))
395: (t (setq findarg
396: (cond ((or readbuf
397: (not
398: (boundp 'findarg)))
399: (editread))
400: (t findarg)))
401: (selectq c
402: (f (editqf findarg))
403: (bf (editbf findarg nil))
404: (err nil)))))
405: (nil (setq nopr t))
406: (autop nil)
407: (nx (edit* 1))
408: (ok (cond
409: (atm (cond
410: ((and (dtpr undolst) (car undolst))
411: (setq changed t)
412: (*** bound in editf)
413: (mark!changed atm)))
414: (remprop atm 'edit-save)))
415: (putprop 'edit
416: (cons (last l) (cons marklst (cons undolst l)))
417: 'lastvalue)
418: (throw l edit-abort)
419: (*** prompt (cdr oldprompt))
420: (*** retfrom 'editl0 l))
421: (p (bpnt0 (car l) 2) (setq nopr t))
422: (pp (bpnt0 (car l) nil) (setq nopr t))
423: (pp* ((lambda (commentflg) (bpnt0 (car l) nil)) t)
424: (setq nopr t))
425: (repack (editrepack))
426: (save (cond
427: (atm (cond
428: ((and (dtpr undolst) (car undolst))
429: (mark!changed atm)))
430: (putprop 'edit
431: (putprop atm
432: (cons l
433: (cons marklst
434: (cons undolst
435: unfind)))
436: 'edit-save)
437: 'lastvalue)))
438: (*** prompt (cdr oldprompt))
439: (*** retfrom 'editl0 l)
440: (throw l edit-abort))
441: (stop (*** prompt (cdr oldprompt))
442: (*** spreval
443: (stksrch 'editl0 (spdlpt) nil)
444: '(err nil))
445: (throw nil edit-abort))
446: (test (setq undolst (cons nil undolst)) (setq nopr t))
447: (tty: (setq com com0)
448: (setq l (editl l nil atm nil 'tty:)))
449: (unblock (cond ((setq tem (memq nil undolst))
450: (editsmash tem (ncons nil) (cdr tem)))
451: (t (terpri) (princ '"not blocked")))
452: (setq nopr t))
453: (undo (edit!undo topflg nil (cond (readbuf (editread)))))
454: (up (edup))
455: (/
456: (cond (unfind (setq c l)
457: (setq l unfind)
458: (and (cdr c) (setq unfind c)))
459: (t (err nil))))
460: (/p
461: (cond ((and lastp1 (neq lastp1 l)) (setq l lastp1))
462: ((and lastp2 (neq lastp2 l)) (setq l lastp2))
463: (t (err nil))))
464: (^ (and (cdr l) (setq unfind l)) (setq l (last l)))
465: (_
466: (cond (marklst (and (cdr l) (setq unfind l))
467: (setq l (car marklst)))
468: (t (err nil))))
469: (__
470: (cond (marklst
471: (and (cdr l)
472: (setq unfind l)
473: (setq l (car marklst))
474: (setq marklst (cdr marklst))))
475: (t (err nil))))
476: (tl (top-level) (setq nopr t))
477: (cond ((null (setq tem (editmac c usermacros nil)))
478: (editdefault c)
479: (setq nopr noprint))
480: (t (editcoms (copy (cdr tem))) (setq nopr noprint))))
481: (setq noprint nopr))))
482:
483: (def editcoml
484: (lambda (c copyflg)
485: (prog (c2 c3 tem nopr)
486: lp (cond ((dtpr (cdr c))
487: (setq c2 (cadr c))
488: (cond ((dtpr (cddr c)) (setq c3 (caddr c)))
489: (t (setq c3 nil))))
490: (t (setq c2 (setq c3 nil))))
491: (cond ((and lcflg
492: (selectq c2
493: ((to thru through)
494: (cond
495: ((null (cddr c))
496: (setq c3 -1)
497: (setq c2 'thru)))
498: t)
499: nil))
500: (editto (car c) c3 c2)
501: (return nil))
502: ((numberp (car c))
503: (edit2f (car c) (cdr c))
504: (setq noprint nil)
505: (return nil))
506: ((eq c2 '::)
507: (editcont (car c) (cddr c))
508: (setq noprint nil)
509: (return nil)))
510: (selectq (car c)
511: ((a b :) (edit: (car c) nil (cdr c)))
512: (below (editbelow c2 (cond ((cddr c) c3) (t 1))))
513: (bf (editbf c2 c3))
514: (bi
515: (editbi c2
516: (cond ((cddr c) c3) (t c2))
517: (and (cdr c) (car l))))
518: (bind (prog (|#1| |#2| |#3|)
519: (editcoms (cdr c)))
520: (setq nopr noprint))
521: (bk (edit* (minus c2)))
522: (bo (editbo c2 (and (cdr c) (car l))))
523: (change (editran c '((to) (edit: : |#1| |#3|))))
524: (coms (prog nil
525: l1 (cond
526: ((setq c (cdr c))
527: (editcom (setq com (eval (car c))) nil)
528: (go l1))))
529: (setq nopr noprint))
530: (comsq (editcoms (cdr c)) (setq nopr noprint))
531: (copy
532: (editran c '((to) (editmv |#1| (car |#3|) (cdr |#3|) t))))
533: (cp (editmv nil (cadr c) (cddr c) t))
534: (delete (editran c '(nil (edit: : |#1| nil))))
535: (e (setq tem (eval c2))
536: (cond ((null (cddr c)) (print tem)))
537: (setq nopr t))
538: (embed (editran c '((in with) (editmbd |#1| |#3|))))
539: (extract (editran c '((from) (editxtr |#3| |#1|))))
540: (f (edit4f c2 c3))
541: (f= (edit4f (cons '== c2) c3))
542: (fs
543: (prog nil
544: l1 (cond
545: ((setq c (cdr c))
546: (editqf (setq com (car c)))
547: (go l1)))))
548: (help (eval c)
549: (setq nopr t)
550: (*** inserted dec 78 by don cohen))
551: (i (setq c
552: (cons (cond ((atom c2) c2) (t (eval c2)))
553: (mapcar (function
554: (lambda (x)
555: (cond (topflg (print
556: (setq x
557: (eval
558: x)))
559: x)
560: (t (eval x)))))
561: (cddr c))))
562: (setq copyflg nil)
563: (go lp))
564: (if (cond ((and (dtpr (setq tem (edval c2))) (car tem))
565: (cond ((cdr c) (editcoms c3))))
566: ((and (cddr c) (cdddr c)) (editcoms (cadddr c)))
567: (t (err nil)))
568: (setq nopr noprint))
569: (insert
570: (editran c '((before after for) (edit: |#2| |#3| |#1|))))
571: (lc (edloc (cdr c)))
572: (lcl (edlocl (cdr c)))
573: (li (editli c2 (and (cdr c) (car l))))
574: (lo (editlo c2 (and (cdr c) (car l))))
575: ((lp lpq)
576: (edrpt (cdr c) (eq (car c) 'lpq))
577: (setq nopr noprint))
578: (m (cond ((atom c2)
579: (cond ((setq tem (editmac c2 usermacros nil))
580: (rplacd tem (cddr c)))
581: (t
582: (setq usermacros
583: (cons (cons c2
584: (cons nil (cddr c)))
585: usermacros)))))
586: (t
587: (cond ((setq tem
588: (editmac (car c2) usermacros t))
589: (rplaca tem (caddr c))
590: (rplacd tem (cdddr c)))
591: (t (nconc editcomsl (ncons (car c2)))
592: (mark!changed 'editcomsl)
593: (setq usermacros
594: (cons (cons (car c2) (cddr c))
595: usermacros))))))
596: (mark!changed 'usermacros)
597: (setq nopr t))
598: (makefn
599: (cond ((or (null c2) (null c3) (null (cdddr c)))
600: (err nil))
601: (t
602: (editmakefn c2
603: c3
604: (cadddr c)
605: (cond ((null (cddddr c)) (cadddr c))
606: (t (car (cddddr c))))))))
607: (mbd (editmbd nil (cdr c)))
608: (move
609: (editran c
610: '((to) (editmv |#1| (car |#3|) (cdr |#3|) nil))))
611: (mv (editmv nil (cadr c) (cddr c) nil))
612: (n (cond ((atom (car l)) (err nil)))
613: (editnconc (car l)
614: (cond (copyflg (copy (cdr c)))
615: (t (append (cdr c) nil)))))
616: (nex
617: (setq l
618: ((lambda (l)
619: (editbelow c2 (cond ((cddr c) c3) (t 1)))
620: (edit* 1)
621: l)
622: l)))
623: (nth
624: (cond
625: ((neq (setq tem (editnth (car l) c2)) (car l))
626: (setq l (cons tem l)))))
627: (nx (edit* c2))
628: (orf (edit4f (cons '*any* (cdr c)) 'n))
629: (orr (edor (cdr c)) (setq nopr noprint))
630: (p (cond
631: ((neq lastp1 l) (setq lastp2 lastp1) (setq lastp1 l)))
632: (bpnt (cdr c))
633: (setq nopr t))
634: (r ((lambda (l)
635: (edit4f c2 t)
636: (setq unfind l)
637: (setq c2
638: (cond ((and (atom c2)
639: upfindflg
640: (dtpr (car l)))
641: (caar l))
642: (t (car l)))))
643: (ncons (car l)))
644: (editdsubst c3 c2 (car l)))
645: (repack (edloc (cdr c)) (editrepack))
646: (replace (editran c '((with by) (edit: : |#1| |#3|))))
647: (ri (editri c2 c3 (and (cdr c) (cddr c) (car l))))
648: (ro (editro c2 (and (cdr c) (car l))))
649: (s (set c2
650: (cond ((null c2) (err nil))
651: (t ((lambda (l) (edloc (cddr c))) l))))
652: (setq nopr t))
653: (second (edloc (append (cdr c) (cdr c))))
654: (surround (editran c '((with in) (editmbd |#1| |#3|))))
655: (sw (editsw (cadr c) (caddr c)))
656: (third (edloc (append (cdr c) (cdr c) (cdr c))))
657: ((thru to) (editto nil c2 (car c)))
658: (undo (edit!undo topflg nil c2))
659: (xtr (editxtr nil (cdr c)))
660: (_
661: (setq l
662: ((lambda (l)
663: (prog (uf)
664: (setq uf l)
665: (setq c2 (editfpat c2))
666: lp (cond ((cond ((and (atom c2)
667: (dtpr (car l)))
668: (eq c2 (caar l)))
669: ((eq (car c2)
670: 'if)
671: (cond ((atom
672: (setq tem
673: (edval
674: (cadr
675: c2))))
676: nil)
677: (t tem)))
678: (t
679: (edit4e c2
680: (cond ((eq (car
681: c2)
682: '@)
683: (caar
684: l))
685: (t
686: (car
687: l))))))
688: (setq unfind uf)
689: (return l))
690: ((setq l (cdr l)) (go lp)))
691: (err nil)))
692: l)))
693: (cond ((null (setq tem (editmac (car c) usermacros t)))
694: (editdefault c)
695: (setq nopr noprint))
696: ((not (atom (setq c3 (car tem))))
697: (editcoms (subpair c3 (cdr c) (cdr tem)))
698: (setq nopr noprint))
699: (t (editcoms (subst (cdr c) c3 (cdr tem)))
700: (setq nopr noprint))))
701: (setq noprint nopr))))
702:
703: (def editmac
704: (lambda (c lst flg)
705: (prog (x y)
706: lp (cond ((null lst) (return nil))
707: ((eq c (car (setq x (car lst))))
708: (setq y (cdr x))
709: (cond ((cond (flg (car y)) (t (null (car y)))) (return y)))))
710: (setq lst (cdr lst))
711: (go lp))))
712:
713: (def editcoms
714: (lambda (coms)
715: (prog nil
716: l1 (cond ((atom coms) (return (car l))))
717: (editcom (car coms) nil)
718: (setq coms (cdr coms))
719: (go l1))))
720:
721: (def edith
722: (lambda (lst)
723: (prog nil
724: (terpri)
725: l1 (cond ((null lst) (return nil))
726: ((null (car lst)) (prin1 'block) (go l2))
727: ((null (caar lst)) (go l3))
728: ((numberp (caar lst))
729: (prin1 (list (caar lst) '--))
730: (go l2)))
731: (prin1 (caar lst))
732: l2 (princ '" ")
733: l3 (setq lst (cdr lst))
734: (go l1))))
735:
736: (def edit!undo
737: (lambda (printflg !undoflg undop)
738: (prog (lst flg)
739: (setq lst undolst)
740: lp (cond ((or (null lst) (null (car lst))) (go out)))
741: (cond ((null undop)
742: (selectq (caar lst)
743: ((nil !undo unblock) (go lp1))
744: (undo (cond ((null !undoflg) (go lp1))))
745: nil))
746: ((neq undop (caar lst)) (go lp1)))
747: (undoeditcom (car lst) printflg)
748: (cond ((null !undoflg) (return nil)))
749: (setq flg t)
750: lp1 (setq lst (cdr lst))
751: (go lp)
752: out (cond (flg (return nil))
753: ((and lst (cdr lst)) (print 'blocked))
754: (t (terpri) (princ '"nothing saved"))))))
755:
756: (def undoeditcom
757: (lambda (x flg)
758: (prog (c)
759: (cond ((atom x) (err nil))
760: ((neq (car (last l)) (car (last (cadr x))))
761: (terpri)
762: (princ '"different expression")
763: (setq com nil)
764: (err nil)))
765: (setq c (car x))
766: (setq l (cadr x))
767: (prog (y z)
768: (setq y (cdr x))
769: l1 (cond
770: ((setq y (cdr y))
771: (setq z (car y))
772: (cond ((eq (car z) 'r)
773: ((lambda (l)
774: (editcom (list 'r
775: (cadr z)
776: (caddr z))
777: nil))
778: (cadddr z)))
779: (t (editsmash (car z) (cadr z) (cddr z))))
780: (go l1))))
781: (editsmash x nil (cons (car x) (cdr x)))
782: (and flg
783: (setq flg
784: (cond ((not (numberp c)) c) (t (cons c '(--)))))
785: (print flg)
786: (princ 'undone))
787: (return t))))
788:
789: (def editsmash
790: (lambda (old a d)
791: (cond ((atom old) (err nil)))
792: (setq undolst1 (cons (cons old (cons (car old) (cdr old))) undolst1))
793: (rplaca old a)
794: (rplacd old d)))
795:
796: (def editnconc
797: (lambda (x y)
798: (prog (tem)
799: (return
800: (cond ((null x) y)
801: ((atom x) (err nil))
802: (t (editsmash (setq tem (last x)) (car tem) y) x))))))
803:
804: (def editdsubst
805: (lambda (x y z)
806: (prog nil
807: lp (cond ((atom z) (return nil))
808: ((cond ((symbolp y)
809: (or (eq y (car z))
810: (and (stringp (car z)) (eqstr y (car z)))))
811: (t (equal y (car z))))
812: (editsmash z (copy x) (cdr z)))
813: (t (editdsubst x y (car z))))
814: (cond
815: ((and y (eq y (cdr z)))
816: (editsmash z (car z) (copy x))
817: (return nil)))
818: (setq z (cdr z))
819: (go lp))))
820:
821: (def edit1f
822: (lambda (c l)
823: (cond ((eq c 0) (cond ((null (cdr l)) (err nil)) (t (cdr l))))
824: ((atom (car l)) (err nil))
825: ((> c 0)
826: (cond ((> c (length (car l))) (err nil))
827: (t (cons (car (setq lastail (Cnth (car l) c))) l))))
828: ((> (minus c) (length (car l))) (err nil))
829: (t
830: (cons (car
831: (setq lastail
832: (Cnth (car l) (+ (length (car l)) (add1 c)))))
833: l)))))
834:
835: (def edit2f
836: (lambda (n x)
837: (prog (cl)
838: (setq cl (car l))
839: (cond ((atom cl) (err nil))
840: (copyflg (setq x (copy x)))
841: (t (setq x (append x nil))))
842: (cond ((> n 0)
843: (cond ((> n (length cl)) (err nil))
844: ((null x) (go delete))
845: (t (go replace))))
846: ((or (eq n 0) (null x) (> (minus n) (length cl))) (err nil))
847: (t (cond ((neq n -1) (setq cl (Cnth cl (minus n)))))
848: (editsmash cl (car x) (cons (car cl) (cdr cl)))
849: (cond
850: ((cdr x)
851: (editsmash cl (car cl) (nconc (cdr x) (cdr cl)))))
852: (return nil)))
853: delete
854: (cond ((eq n 1)
855: (or (dtpr (cdr cl)) (err nil))
856: (editsmash cl (cadr cl) (cddr cl)))
857: (t (setq cl (Cnth cl (sub1 n)))
858: (editsmash cl (car cl) (cddr cl))))
859: (return nil)
860: replace
861: (cond ((neq n 1) (setq cl (Cnth cl n))))
862: (editsmash cl (car x) (cdr cl))
863: (cond ((cdr x) (editsmash cl (car cl) (nconc (cdr x) (cdr cl))))))))
864:
865: (def edit4e
866: (lambda (pat y)
867: (cond ((eq pat y) t)
868: ((atom pat)
869: (or (eq pat '&)
870: (equal pat y)
871: (and (stringp y) (stringp pat) (eqstr pat y))))
872: ((eq (car pat) '*any*)
873: (prog nil
874: lp (cond ((null (setq pat (cdr pat))) (return nil))
875: ((edit4e (car pat) y) (return t)))
876: (go lp)))
877: ((and (eq (car pat) '@) (atom y))
878: (prog (z)
879: (setq pat (cdr pat))
880: (setq z (explodec y))
881: lp (cond ((eq (car pat) '@)
882: (*** freelist z)
883: (print '=)
884: (prin1 y)
885: (return t))
886: ((null z) (return nil))
887: ((neq (car pat) (car z))
888: (*** freelist z)
889: (return nil)))
890: (setq pat (cdr pat))
891: (setq z (cdr z))
892: (go lp)))
893: ((eq (car pat) '--)
894: (or (null (setq pat (cdr pat)))
895: (prog nil
896: lp (cond ((edit4e pat y) (return t))
897: ((atom y) (return nil)))
898: (setq y (cdr y))
899: (go lp))))
900: ((eq (car pat) '==) (eq (cdr pat) y))
901: ((atom y) nil)
902: ((edit4e (car pat) (car y)) (edit4e (cdr pat) (cdr y))))))
903:
904: (def editqf
905: (lambda (pat)
906: (prog (q1)
907: (cond ((and (dtpr (car l))
908: (dtpr (setq q1 (cdar l)))
909: (setq q1 (memq pat q1)))
910: (setq l
911: (cons (cond (upfindflg q1)
912: (t (setq lastail q1) (car q1)))
913: l)))
914: (t (edit4f pat 'n))))))
915:
916: (def edit4f
917: (lambda (pat %%x)
918: (prog (ll x %%w)
919: (setq %%w (ncons nil))
920: (setq com pat)
921: (setq pat (editfpat pat))
922: (setq ll l)
923: (cond
924: ((eq %%x 'n)
925: (setq %%x 1)
926: (cond ((atom (car l)) (go lp1))
927: ((and (atom (caar l)) upfindflg)
928: (setq ll (cons (caar l) l))
929: (go lp1))
930: (t (setq ll (cons (caar l) l))))))
931: (cond ((and %%x (not (numberp %%x))) (setq %%x 1)))
932: (cond
933: ((and (edit4e (cond ((and (dtpr pat) (eq (car pat) ':::))
934: (cdr pat))
935: (t pat))
936: (car ll))
937: (or (null %%x) (eq (setq %%x (sub1 %%x)) 0)))
938: (return (setq l ll))))
939: (setq x (car ll))
940: lp (cond ((edit4f1 pat x maxlevel)
941: (and (cdr l) (setq unfind l))
942: (return
943: (car
944: (setq l
945: (nconc (car %%w)
946: (cond ((eq (cadr %%w) (car ll)) (cdr ll))
947: (t ll)))))))
948: ((null %%x) (err nil)))
949: lp1 (setq x (car ll))
950: (cond ((null (setq ll (cdr ll))) (err nil))
951: ((and (setq x (memq x (car ll))) (dtpr (setq x (cdr x))))
952: (go lp)))
953: (go lp1))))
954:
955: (def editfpat
956: (lambda (pat)
957: (cond ((dtpr pat)
958: (cond ((or (eq (car pat) '==) (eq (car pat) '@)) pat)
959: (t (mapcar (function editfpat) pat))))
960: ((eq (nthchar pat -1) '@) (cons '@ (explodec pat)))
961: (t pat))))
962:
963: (def edit4f1
964: (lambda (pat x lvl)
965: (prog nil
966: lp (cond ((not (> lvl 0))
967: (terpri)
968: (princ '"maxlevel exceeded")
969: (return nil))
970: ((atom x) (return nil))
971: ((and (dtpr pat)
972: (eq (car pat) ':::)
973: (edit4e (cdr pat) x)
974: (or (null %%x) (eq (setq %%x (sub1 %%x)) 0))))
975: ((and (or (atom pat) (neq (car pat) ':::))
976: (edit4e pat (car x))
977: (or (null %%x) (eq (setq %%x (sub1 %%x)) 0)))
978: (cond
979: ((or (null upfindflg) (dtpr (car x)))
980: (setq lastail x)
981: (setq x (car x)))))
982: ((and pat
983: (eq pat (cdr x))
984: (or (null %%x) (eq (setq %%x (sub1 %%x)) 0)))
985: (setq x (cdr x)))
986: ((and %%x
987: (dtpr (car x))
988: (edit4f1 pat (car x) (sub1 lvl))
989: (eq %%x 0))
990: (setq x (car x)))
991: (t (setq x (cdr x)) (setq lvl (sub1 lvl)) (go lp)))
992: (cond ((and %%w (neq x (cadr %%w))) (tconc %%w x)))
993: (return (or %%w t)))))
994:
995: (def editfindp
996: (lambda (x pat flg)
997: (prog (%%x lastail %%w)
998: (setq %%x 1)
999: (and (null flg) (setq pat (editfpat pat)))
1000: (return (or (edit4e pat x) (edit4f1 pat x maxlevel))))))
1001:
1002: (def editbf
1003: (lambda (pat n)
1004: (prog (ll x y %%w)
1005: (setq ll l)
1006: (setq %%w (ncons nil))
1007: (setq com pat)
1008: (setq pat (editfpat pat))
1009: (cond ((and (null n) (cdr ll)) (go lp1)))
1010: lp (cond
1011: ((editbf1 pat (car ll) maxlevel y)
1012: (setq unfind l)
1013: (return
1014: (car
1015: (setq l
1016: (nconc (car %%w)
1017: (cond ((eq (car ll) (cadr %%w)) (cdr ll))
1018: (t ll))))))))
1019: lp1 (setq x (car ll))
1020: (cond ((null (setq ll (cdr ll))) (err nil))
1021: ((or (setq y (memq x (car ll))) (setq y (tailp x (car ll))))
1022: (go lp)))
1023: (go lp1))))
1024:
1025: (def editbf1
1026: (lambda (pat x lvl tail)
1027: (prog (y)
1028: lp (cond ((not (> lvl 0))
1029: (terpri)
1030: (princ '"maxlevel exceeded")
1031: (return nil))
1032: ((eq tail x)
1033: (return
1034: (cond
1035: ((edit4e (cond ((and (dtpr pat)
1036: (eq (car pat) ':::))
1037: (cdr pat))
1038: (t pat))
1039: x)
1040: (tconc %%w x))))))
1041: (setq y x)
1042: lp1 (cond
1043: ((null (or (eq (cdr y) tail) (atom (cdr y))))
1044: (setq y (cdr y))
1045: (go lp1)))
1046: (setq tail y)
1047: (cond ((and (dtpr (car tail))
1048: (editbf1 pat (car tail) (sub1 lvl) nil))
1049: (setq tail (car tail)))
1050: ((and (dtpr pat)
1051: (eq (car pat) ':::)
1052: (edit4e (cdr pat) tail)))
1053: ((and (or (atom pat) (neq (car pat) ':::))
1054: (edit4e pat (car tail)))
1055: (cond
1056: ((or (null upfindflg) (dtpr (car tail)))
1057: (setq lastail tail)
1058: (setq tail (car tail)))))
1059: ((and pat (eq pat (cdr tail))) (setq x (cdr x)))
1060: (t (setq lvl (sub1 lvl)) (go lp)))
1061: (cond ((neq tail (cadr %%w)) (tconc %%w tail)))
1062: (return %%w))))
1063:
1064: (def editnth
1065: (lambda (x n)
1066: (cond ((atom x) (err nil))
1067: ((not (numberp n))
1068: (or (memq n x) (memq (setq n (editelt n (ncons x))) x) (tailp n x)))
1069: ((eq n 0) (err nil))
1070: ((null
1071: (setq n
1072: (cond
1073: ((or (not (minusp n))
1074: (> (setq n (plus (length x) n 1)) 0))
1075: (Cnth x n)))))
1076: (err nil))
1077: (t n))))
1078:
1079: (def bpnt0
1080: (lambda (y n)
1081: (cond ((neq lastp1 l) (setq lastp2 lastp1) (setq lastp1 l)))
1082: (cond (n (setq $%dotflg (tailp (car l) (cadr l)))
1083: (setq %prevfn% '" ")
1084: (printlev y n))
1085: (t (terpri) (*** sprint y 1) ($prpr y) (terpri)))))
1086:
1087: (def bpnt
1088: (lambda (x)
1089: (prog (y n)
1090: (cond ((eq (car x) 0)
1091: (setq y (car l))
1092: (setq $%dotflg (tailp (car l) (cadr l))))
1093: (t (setq y (car (editnth (car l) (car x))))))
1094: (cond ((null (cdr x)) (setq n 2))
1095: ((not (numberp (setq n (cadr x)))) (err nil))
1096: ((minusp n) (err nil)))
1097: (setq %prevfn% '" ")
1098: (return (printlev y n)))))
1099:
1100: (def editri
1101: (lambda (m n x)
1102: (prog (a b)
1103: (setq a (editnth x m))
1104: (setq b (editnth (car a) n))
1105: (cond ((or (null a) (null b)) (err nil)))
1106: (editsmash a (car a) (editnconc (cdr b) (cdr a)))
1107: (editsmash b (car b) nil))))
1108:
1109: (def editro
1110: (lambda (n x)
1111: (setq x (editnth x n))
1112: (cond ((or (null x) (atom (car x))) (err nil)))
1113: (editsmash (setq n (last (car x))) (car n) (cdr x))
1114: (editsmash x (car x) nil)))
1115:
1116: (def editli
1117: (lambda (n x)
1118: (setq x (editnth x n))
1119: (cond ((null x) (err nil)))
1120: (editsmash x (cons (car x) (cdr x)) nil)))
1121:
1122: (def editlo
1123: (lambda (n x)
1124: (setq x (editnth x n))
1125: (cond ((or (null x) (atom (car x))) (err nil)))
1126: (editsmash x (caar x) (cdar x))))
1127:
1128: (def editbi
1129: (lambda (m n x)
1130: (prog (a b)
1131: (setq b (cdr (setq a (editnth x n))))
1132: (setq x (editnth x m))
1133: (cond ((and a (not (> (length a) (length x))))
1134: (editsmash a (car a) nil)
1135: (editsmash x (cons (car x) (cdr x)) b))
1136: (t (err nil))))))
1137:
1138: (def editbo
1139: (lambda (n x)
1140: (setq x (editnth x n))
1141: (cond ((atom (car x)) (err nil)))
1142: (editsmash x (caar x) (editnconc (cdar x) (cdr x)))))
1143:
1144: (def editdefault
1145: (lambda (editx)
1146: (prog nil
1147: (cond (lcflg
1148: (return
1149: (cond ((eq lcflg t) (editqf editx))
1150: (t (editcom (list lcflg editx) topflg)))))
1151: ((null topflg) (err nil))
1152: ((memq editx editcomsl)
1153: (cond (readbuf (setq editx (cons editx readbuf))
1154: (setq readbuf nil))
1155: (t (err nil))))
1156: (t (err nil)))
1157: (return (editcom (setq com editx) topflg)))))
1158:
1159: (def edup
1160: (lambda nil
1161: (prog (c-exp l1 x y)
1162: (setq c-exp (car l))
1163: lp (cond ((null (setq l1 (cdr l))) (err nil))
1164: ((tailp c-exp (car l1)) (return nil))
1165: ((not (setq x (memq c-exp (car l1)))) (err nil))
1166: ((or (eq x lastail) (not (setq y (memq c-exp (cdr x))))))
1167: ((and (eq c-exp (car lastail)) (tailp lastail y))
1168: (setq x lastail))
1169: (t (terpri)
1170: (princ c-exp)
1171: (princ '"- location uncertain")))
1172: (cond ((eq x (car l1)) (setq l l1)) (t (setq l (cons x l1))))
1173: (return nil))))
1174:
1175: (def edit*l
1176: (lambda (l)
1177: (edup)
1178: (length (car l))))
1179:
1180: (def edit*
1181: (lambda (n)
1182: (car
1183: (setq l
1184: ((lambda (com l m)
1185: (cond ((not (> m n)) (err nil)))
1186: (edit!0)
1187: (edit1f (difference n m) l))
1188: nil
1189: l
1190: (edit*l l))))))
1191:
1192: (def edor
1193: (lambda (coms)
1194: (prog nil
1195: lp (cond ((null coms) (err nil))
1196: ((dtpr
1197: (errset
1198: (setq l
1199: ((lambda (l)
1200: (cond ((atom (car coms))
1201: (editcom (car coms) nil))
1202: (t (editcoms (car coms))))
1203: l)
1204: l))))
1205: (return (car l))))
1206: (setq coms (cdr coms))
1207: (go lp))))
1208:
1209: (def errcom
1210: (lambda (coms)
1211: (errset (editcoms coms))))
1212:
1213: (def edrpt
1214: (lambda (edrx quiet)
1215: (prog (edrl edrptcnt)
1216: (setq edrl l)
1217: (setq edrptcnt 0)
1218: lp (cond ((> edrptcnt maxloop)
1219: (terpri)
1220: (princ '"maxloop exceeded"))
1221: ((dtpr (errcom edrx))
1222: (setq edrl l)
1223: (setq edrptcnt (add1 edrptcnt))
1224: (go lp))
1225: ((null quiet) (print edrptcnt) (princ 'occurrences)))
1226: (setq l edrl))))
1227:
1228: (def edloc
1229: (lambda (edx)
1230: (prog (oldl oldf lcflg edl)
1231: (setq oldl l)
1232: (setq oldf unfind)
1233: (setq lcflg t)
1234: (cond ((atom edx) (editcom edx nil))
1235: ((and (null (cdr edx)) (atom (car edx)))
1236: (editcom (car edx) nil))
1237: (t (go lp)))
1238: (setq unfind oldl)
1239: (return (car l))
1240: lp (setq edl l)
1241: (cond ((dtpr (errcom edx)) (setq unfind oldl) (return (car l))))
1242: (cond ((equal edl l) (setq l oldl) (setq unfind oldf) (err nil)))
1243: (go lp))))
1244:
1245: (def edlocl
1246: (lambda (coms)
1247: (car
1248: (setq l
1249: (nconc ((lambda (l unfind) (edloc coms) l) (ncons (car l)) nil)
1250: (cdr l))))))
1251:
1252: (def edit:
1253: (lambda (type lc x)
1254: (prog (toflg l0)
1255: (setq l0 l)
1256: (setq x
1257: (mapcar (function
1258: (lambda (x)
1259: (cond ((and (dtpr x)
1260: (eq (car x) '|##|))
1261: ((lambda (l undolst1)
1262: (copy (editcoms (cdr x))))
1263: l
1264: nil))
1265: (t x))))
1266: x))
1267: (cond
1268: (lc (cond ((eq (car lc) 'here) (setq lc (cdr lc))))
1269: (edloc lc)))
1270: (edup)
1271: (cond ((eq l0 l) (setq lc nil)))
1272: (selectq type
1273: ((b before) (edit2f -1 x))
1274: ((a after)
1275: (cond ((cdar l) (edit2f -2 x))
1276: (t (editcoml (cons 'n x) copyflg))))
1277: ((: for)
1278: (cond ((or x (cdar l)) (edit2f 1 x))
1279: ((memq (car l) (cadr l))
1280: (edup)
1281: (edit2f 1 (ncons nil)))
1282: (t (editcoms '(0 (nth -2) (2)))))
1283: (return (cond ((null lc) l))))
1284: (err nil))
1285: (return nil))))
1286:
1287: (def editmbd
1288: (lambda (lc x)
1289: (prog (y toflg)
1290: (cond (lc (edloc lc)))
1291: (edup)
1292: (setq y (cond (toflg (caar l)) (t (ncons (caar l)))))
1293: (edit2f 1
1294: (ncons
1295: (cond ((or (atom (car x)) (cdr x)) (append x y))
1296: (t (lsubst y '* (car x))))))
1297: (setq l
1298: (cons (caar l)
1299: (cond ((tailp (car l) (cadr l)) (cdr l)) (t l))))
1300: (return (cond ((null lc) l))))))
1301:
1302: (def editxtr
1303: (lambda (lc x)
1304: (prog (toflg)
1305: (cond (lc (edloc lc)))
1306: ((lambda (l unfind)
1307: (edloc x)
1308: (setq x
1309: (cond ((tailp (car l) (cadr l)) (caar l))
1310: (t (car l)))))
1311: (ncons (cond ((tailp (car l) (cadr l)) (caar l)) (t (car l))))
1312: nil)
1313: (edup)
1314: (edit2f 1 (cond (toflg (append x nil)) (t (ncons x))))
1315: (and (null toflg)
1316: (dtpr (caar l))
1317: (setq l
1318: (cons (caar l)
1319: (cond ((tailp (car l) (cadr l)) (cdr l)) (t l))))))))
1320:
1321: (def editelt
1322: (lambda (lc l)
1323: (prog (y)
1324: (edloc lc)
1325: lp (setq y l)
1326: (cond ((cdr (setq l (cdr l))) (go lp)))
1327: (return (car y)))))
1328:
1329: (def editcont
1330: (lambda (lc1 %%x)
1331: (setq l
1332: ((lambda (l)
1333: (prog nil
1334: (setq lc1 (editfpat lc1))
1335: lp (cond ((null (edit4f lc1 'n)) (err nil))
1336: ((atom (errset (edlocl %%x))) (go lp)))
1337: lp1 (cond ((null (setq l (cdr l))) (err nil))
1338: ((cond ((atom lc1) (eq lc1 (caar l)))
1339: ((eq (car lc1) '@)
1340: (edit4e lc1 (caar l)))
1341: (t (edit4e lc1 (car l))))
1342: (return l)))
1343: (go lp1)))
1344: l))))
1345:
1346: (def editsw
1347: (lambda (m n)
1348: (prog (y z tem)
1349: (setq y (editnth (car l) m))
1350: (setq z (editnth (car l) n))
1351: (setq tem (car y))
1352: (editsmash y (car z) (cdr y))
1353: (editsmash z tem (cdr z)))))
1354:
1355: (def editmv
1356: (lambda (lc op x cp)
1357: (prog (l0 l1 z toflg)
1358: (setq l0 l)
1359: (and lc (edloc lc))
1360: (cond ((eq op 'here)
1361: (cond ((null lc) (edloc x) (setq x nil)))
1362: (setq op ':))
1363: ((eq (car x) 'here)
1364: (cond ((null lc) (edloc (cdr x)) (setq x nil))
1365: (t (setq x (cdr x))))))
1366: (edup)
1367: (setq l1 l)
1368: (setq z (cond (cp (copy (caar l))) (t (caar l))))
1369: (setq l l0)
1370: (and x (edloc x))
1371: (cond ((eq op 'after) (setq op 'a))
1372: ((eq op 'before) (setq op 'b)))
1373: (editcoml (cond (toflg (cons op (append z nil))) (t (list op z)))
1374: nil)
1375: (prog (l)
1376: (setq l l1)
1377: (cond ((not cp) (editcoms '(1 delete)))
1378: (toflg (editcoml '(bo 1) nil))))
1379: (return
1380: (cond ((null lc) (setq unfind l1) l)
1381: ((null x) (setq unfind l1) l0)
1382: (t (setq unfind l) l0))))))
1383:
1384: (def editto
1385: (lambda (lc1 lc2 flg)
1386: (setq l
1387: ((lambda (l)
1388: (cond (lc1 (edloc lc1) (edup)))
1389: (editbi 1
1390: (cond ((and (numberp lc1)
1391: (numberp lc2)
1392: (> lc2 lc1))
1393: (difference (add1 lc2) lc1))
1394: (t lc2))
1395: (car l))
1396: (cond
1397: ((and (eq flg 'to) (cdaar l))
1398: (editri 1 -2 (car l))))
1399: (editcom 1 nil)
1400: l)
1401: l))
1402: (setq toflg t)))
1403:
1404: (def editbelow
1405: (lambda (place depth)
1406: (cond ((minusp (setq depth (eval depth))) (err nil)))
1407: (prog (n1 n2)
1408: (setq n1
1409: (length
1410: ((lambda (l lcflg) (editcom place nil) l) l '_)))
1411: (setq n2 (length l))
1412: (cond ((< n2 (+ n1 depth)) (err nil)))
1413: (setq unfind l)
1414: (setq l (Cnth l (difference (add1 n2) n1 depth))))))
1415:
1416: (def editran
1417: (lambda (c def)
1418: (setq l
1419: (or ((lambda (l)
1420: (prog (z w)
1421: (cond ((null def) (err nil))
1422: ((null (setq z (car def))) (go out)))
1423: lp (cond ((null z) (err nil))
1424: ((null (setq w (memq (car z) c)))
1425: (setq z (cdr z))
1426: (go lp)))
1427: out (setq z
1428: (apply (car (setq def (cadr def)))
1429: (prog (|#1| |#2| |#3|)
1430: (setq |#1| (cdr
1431: (ldiff c w)))
1432: (setq |#2| (car z))
1433: (setq |#3| (cdr w))
1434: (return
1435: (mapcar (function
1436: (lambda (x)
1437: (cond ((atom
1438: x)
1439: (selectq x
1440: (|#1|
1441: |#1|)
1442: (|#2|
1443: |#2|)
1444: (|#3|
1445: |#3|)
1446: x))
1447: (t
1448: (eval
1449: x)))))
1450: (cdr def))))))
1451: (return
1452: (cond ((null z) (setq unfind l) nil) (t z)))))
1453: l)
1454: l))))
1455:
1456: (def edit!0
1457: (lambda nil
1458: (cond ((null (cdr l)) (err nil)))
1459: (prog nil
1460: lp (setq l (cdr l))
1461: (cond ((tailp (car l) (cadr l)) (go lp))))))
1462:
1463: (def editrepack
1464: (lambda nil
1465: (cond ((dtpr (car l)) (setq l (edit1f 1 l))))
1466: (edit: ': nil (ncons (readlist (edite (explode (car l)) nil nil))))))
1467:
1468: (def editmakefn
1469: (lambda (ex args n m)
1470: (editbi n m (car l))
1471: (edloc n)
1472: (editbelow '/ 1)
1473: (mapc (function (lambda (x y) (editdsubst x y (car l)))) args (cdr ex))
1474: (putprop (car ex) (cons 'lambda (cons args (car l))) 'expr)
1475: (mark!changed (car ex))
1476: (edup)
1477: (edit2f 1 (ncons ex))))
1478:
1479: (dv usermacros nil)
1480:
1481: (dv editracefn nil)
1482:
1483: (dv lastword editsfns)
1484:
1485: (dv maxlevel 192)
1486:
1487: (dv maxloop 24)
1488:
1489: (dv editcomsl
1490: (: a
1491: b
1492: below
1493: bf
1494: bi
1495: bind
1496: bk
1497: bo
1498: change
1499: coms
1500: comsq
1501: copy
1502: cp
1503: delete
1504: e
1505: embed
1506: extract
1507: f
1508: f=
1509: fs
1510: help
1511: i
1512: if
1513: insert
1514: lc
1515: lcl
1516: li
1517: lo
1518: lp
1519: lpq
1520: m
1521: makefn
1522: mbd
1523: move
1524: mv
1525: n
1526: nex
1527: nth
1528: nx
1529: orf
1530: orr
1531: p
1532: r
1533: repack
1534: replace
1535: ri
1536: ro
1537: s
1538: second
1539: surround
1540: sw
1541: third
1542: thru
1543: to
1544: undo
1545: xtr
1546: _))
1547:
1548: (dv autop 2)
1549:
1550: (dv upfindflg t)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.