Annotation of 3BSD/cmd/lisp/lib/editor.l, revision 1.1

1.1     ! root        1: (setsyntax '";" 'splicing 'zapline)
        !             2: ; editor from bbn-lisp c. 1968 
        !             3: ; (transcribed by R. Fateman for UNIX LISP, Oct., 1977)
        !             4: ; (modified and enhanced by P. Pifer, May, 1978)
        !             5: ; (corrected again by R. Fateman for VAX Unix Lisp, Dec., 1978)
        !             6: ; (cleaned up, commented and compiled by J. Foderaro, Aug., 1979)
        !             7: ; ( ... fixed bug in ^ command)
        !             8: ;
        !             9: (declare (special edok em pf pl l))
        !            10: 
        !            11: 
        !            12:  (setq printflag t)
        !            13: ; print on by default
        !            14: 
        !            15:  (setq printlevel 3)
        !            16: 
        !            17:  (setq maxlevel 100)
        !            18: 
        !            19:  (setq findflag nil)
        !            20: 
        !            21: (setq supereditflg t)(setq printflag t)(setq edrptcnt nil)
        !            22: 
        !            23: 
        !            24: ;--- remedit - removes all traces of the editor from the oblist.
        !            25: ;             Note that if the editor is compiled, the code space
        !            26: ;             will not be reclaimed
        !            27: ;
        !            28: (def remedit
        !            29:   (lambda nil
        !            30:          (prog nil
        !            31:                (mapc (function (lambda (x) (set x nil)))
        !            32:                      '(editmacros findflag supereditflg edrptcnt
        !            33:                        printflag printlevel maxlevel))
        !            34:                (mapc (function (lambda (x) (putd x nil)))
        !            35:                      '(editf editv tconc eprint eprint1 printlevel dsubst 
        !            36:                        editcoms edit1f edit2f edit2af edit4e 
        !            37:                        editqf edit4e edit4f edit4f1 editnth bpnt 
        !            38:                        bpnt0 subpair subpr ri ro li lo bi bo 
        !            39:                        ldiff nthcdr attach edite editcom editdefault
        !            40:                        remedit))
        !            41:                (return 'gone))))
        !            42: 
        !            43: ;--- subst - a - newval
        !            44: ;         - b : oldvall
        !            45: ;         - c : string
        !            46: ;      substitute a for b in c
        !            47: ;
        !            48: (def subst
        !            49:       (lambda (a b c)
        !            50:              (cond ((equal b c) a)
        !            51:                    ((atom c) c)
        !            52:                    (t (cons (subst a b (car c)) (subst a b (cdr c)))))))
        !            53: 
        !            54: (def tconc
        !            55:       (lambda (x p)
        !            56:              (cond ((null (car p))
        !            57:                     (rplacd p (car (rplaca p (list x)))))
        !            58:                    (t (rplacd p (cdr (rplacd (cdr p) (list x))))))))
        !            59: 
        !            60: ;--- printlevel - x : new value
        !            61: ;      set the printlevel to x and return the old value
        !            62: ;      [change this to prog1 ]
        !            63: ;
        !            64: (def printlevel
        !            65:   (lambda (x)
        !            66:          (prog (a)
        !            67:                (setq a printlevel)
        !            68:                (setq printlevel x)
        !            69:                (return a))))
        !            70: 
        !            71: ;--- editf - funcname : name of function to edit
        !            72: ;         - [cmds]   : commands to apply right away
        !            73: ;      This is the starting point in the editor.  You specify the
        !            74: ;      file you wish to edit and perhaps some initial commands to 
        !            75: ;      the editor. If the function is not machine coded you 
        !            76: ;      enter the editor.
        !            77: ;
        !            78: (def editf
        !            79:   (nlambda (x)
        !            80:           (prog (a c)
        !            81:                 (setq a (getd (car x)))
        !            82:                 (cond ((or (null a) (bcdp a))
        !            83:                        (return '(not editable))))
        !            84:                 (putd (car x) (car (edite a (cdr x) nil)))
        !            85:                 (return (car x)))))
        !            86: 
        !            87: '(def dsubst
        !            88:   (lambda (x y z)
        !            89:          (prog nil
        !            90:                (cond ((null z) (return z))
        !            91:                      ((equal y (car z)) (rplaca z x) (go l)))
        !            92:                (cond ((null (atom (car z))) (dsubst x y (car z))))
        !            93:           l    (dsubst x y (cdr z))
        !            94:                (return z))))
        !            95: 
        !            96: ;--- dsubst - x : oldval
        !            97: ;          - y : newval
        !            98: ;          - z : form
        !            99: ;      directly substitutes all occurances of x in form z with y.
        !           100: ;      It uses rplaca and does not copy the structure.
        !           101: ;
        !           102: (def dsubst
        !           103:   (lambda (x y z)
        !           104:          (cond ((dptr z) 
        !           105:                 (cond ((equal y (car z))
        !           106:                        (rplaca (car z) x))
        !           107:                       (t (dsubst x y (car z)))))
        !           108:                (t z))
        !           109:          (dsubst x y (cdr z))
        !           110:          z))
        !           111: 
        !           112: 
        !           113: (def editcoms (lambda (c) (mapc (function editcom) c)))
        !           114: 
        !           115: (def edit1f
        !           116:   (lambda (c l)
        !           117:          (cond ((equal c 0)
        !           118:                 (cond ((null (cdr l)) (err nil))
        !           119:                       (t (cdr l))))
        !           120:                ((greaterp c 0)
        !           121:                 (cond ((greaterp c (length (car l))) (err nil))
        !           122:                       (t (cons (car (nthcdr (sub1 c) (car l) )) l))))
        !           123:                ((greaterp (times c -1) (length (car l)))
        !           124:                 (err nil))
        !           125:                (t (cons (car (nthcdr (plus (length (car l)) c) (car l) ))
        !           126:                         l)))))
        !           127: 
        !           128: (def edit2f
        !           129:   (lambda (c)
        !           130:          (cond ((greaterp (car c) 0)
        !           131:                 (cond ((greaterp (car c) (length (car l)))
        !           132:                        (err nil))
        !           133:                       (t (rplaca l (edit2af (sub1 (car c))
        !           134:                                             (car l)
        !           135:                                             (cdr c)
        !           136:                                             nil)))))
        !           137:                ((or (equal (car c) 0)
        !           138:                     (null (cdr c))
        !           139:                     (greaterp (times -1 (car c)) (length (car l))))
        !           140:                 (err nil))
        !           141:                (t (rplaca l (edit2af (sub1 (times -1 (car c)))
        !           142:                                      (car l)
        !           143:                                      (cdr c)
        !           144:                                      t))))))
        !           145: 
        !           146:  (def edit2af
        !           147:       (lambda (n x r d)
        !           148:              (prog nil
        !           149:                    (cond ((null (equal n 0))
        !           150:                           (rplacd (nthcdr  (sub1 n) x)
        !           151:                                   (nconc r
        !           152:                                          (cond (d (nthcdr  n x))
        !           153:                                                (t (nthcdr (add1 n) x ))))))
        !           154:                          (d (attach (car r) x)
        !           155:                             (rplacd x (nconc (cdr r) (cdr x))))
        !           156:                          (r (rplaca x (car r))
        !           157:                             (rplacd x (nconc (cdr r) (cdr x))))
        !           158:                          (t (print (list 'aha x)) 
        !           159:                             (rplaca x (cadr x)) 
        !           160:                             (rplacd x (cddr x))))
        !           161:                    (return x))))
        !           162: 
        !           163: (def edit4e
        !           164:       (lambda (x y)
        !           165:              (cond ((equal x y) t)
        !           166:                    ((atom x) (eq x '&))
        !           167:                    ((atom y) nil)
        !           168:                    ((edit4e (car x) (car y))
        !           169:                     (or (eq (cadr x) '-)
        !           170:                         (edit4e (cdr x) (cdr y)))))))
        !           171: 
        !           172: (def editqf
        !           173:   (lambda (s)
        !           174:          (prog (q1)
        !           175:                (return (cond ((setq q1 (member s (cdar l)))
        !           176:                               (setq l (cons q1 l)))
        !           177:                              (t (edit4f s 'n)
        !           178:                                 (cond ((not (atom s))
        !           179:                                        (setq l (cons (caar l) l))))))))))
        !           180: 
        !           181: (def edit4f
        !           182:   (lambda (s n)
        !           183:          (prog (ff ll x)
        !           184:                (setq ll (cond ((eq n 'n) (cons (caar l) l))
        !           185:                               (t l)))
        !           186:                (setq x (car ll))
        !           187:                (setq ff (cons nil nil))
        !           188:                (cond ((and n (not (numberp n))) (setq n 1)))
        !           189:        lp      (cond ((edit4f1 s x maxlevel)
        !           190:                       (setq l (nconc (car ff) ll))
        !           191:                       (return (car l)))
        !           192:                      ((null n) (err nil)))
        !           193:        lp1     (setq x (car ll))
        !           194:                (cond ((null (setq ll (cdr ll))) (err nil))
        !           195:                      ((and (setq x (member x (car ll)))
        !           196:                            (null (atom (setq x (cdr x)))))
        !           197:                       (go lp)))
        !           198:                (go lp1))))
        !           199: 
        !           200: (def edit4f1
        !           201:   (lambda (s a lvl)
        !           202:          (prog nil
        !           203:                (cond ((null (greaterp lvl 0)) (return nil)))
        !           204:        lp      (cond ((atom a) (return nil))
        !           205:                      ((and (edit4e s (car a))
        !           206:                            (or (null n)
        !           207:                                (equal 0 (setq n (sub1 n)))))
        !           208:                       (return (tconc a ff)))
        !           209:                      ((and s
        !           210:                            (equal s (cdr a))
        !           211:                            (or (null n)
        !           212:                                (equal 0 (setq n (sub1 n)))))
        !           213:                       (return (tconc a ff)))
        !           214:                      ((and n
        !           215:                            (edit4f1 s (car a) (sub1 lvl))
        !           216:                            (equal 0 n))
        !           217:                       (return (tconc (car a) ff))))
        !           218:                (setq a (cdr a))
        !           219:                (go lp))))
        !           220: 
        !           221: (def editnth
        !           222:   (lambda (x n)
        !           223:          (cond ((null (setq n (cond ((or (null (lessp n 0))
        !           224:                                          (greaterp (setq n
        !           225:                                                          (plus (length x)
        !           226:                                                                n
        !           227:                                                                1))
        !           228:                                                    0))
        !           229:                                      (nthcdr  (sub1 n) x)))))
        !           230:                 (err nil))
        !           231:                (t n))))
        !           232: 
        !           233: (def bpnt
        !           234:   (lambda (x)
        !           235:          (prog (y n)
        !           236:                (cond ((equal 0 (car x)) (setq y (car l)))
        !           237:                      (t (setq y (car (editnth (car l) (car x))))))
        !           238:                (cond ((null (cdr x)) (setq n 3))
        !           239:                      ((null (numberp (cadr x))) (go b1))
        !           240:                      ((lessp (cadr x) 0)
        !           241:                       (setq n (plus (cadr x) 2)))
        !           242:                      (t (setq n (cadr x))))
        !           243:                (return (bpnt0 y 1 n))
        !           244:        b1      (err nil))))
        !           245: 
        !           246: (def bpnt0
        !           247:   (lambda (l n d)
        !           248:          (prog (oldl)
        !           249:                (setq oldl (printlevel (difference d n)))
        !           250:                (cond ((atom (errset (eprint l) t))
        !           251:                       (terpri)
        !           252:                       (terpri)))
        !           253:                (printlevel oldl)
        !           254:                (return nil))))
        !           255: 
        !           256: 
        !           257: (def ro
        !           258:   (lambda (n x)
        !           259:          (prog (a)
        !           260:                (setq a (editnth x n))
        !           261:                (cond ((or (null a) (atom (car a))) (err nil)))
        !           262:                (rplacd (last (car a)) (cdr a))
        !           263:                (rplacd a nil))))
        !           264: 
        !           265: (def ri
        !           266:   (lambda (m n x)
        !           267:          (prog (a b)
        !           268:                (setq a (editnth x m))
        !           269:                (setq b (editnth (car a) n))
        !           270:                (cond ((or (null a) (null b)) (err nil)))
        !           271:                (rplacd a (nconc (cdr b) (cdr a)))
        !           272:                (rplacd b nil))))
        !           273: 
        !           274: (def li
        !           275:   (lambda (n x)
        !           276:          (prog (a)
        !           277:                (setq a (editnth x n))
        !           278:                (cond ((null a) (err nil)))
        !           279:                (rplaca a (cons (car a) (cdr a)))
        !           280:                (rplacd a nil))))
        !           281: 
        !           282: (def lo
        !           283:   (lambda (n x)
        !           284:          (prog (a)
        !           285:                (setq a (editnth x n))
        !           286:                (cond ((or (null a) (atom (car a))) (err nil)))
        !           287:                (rplacd a (cdar a))
        !           288:                (rplaca a (caar a)))))
        !           289: 
        !           290: (def bi
        !           291:   (lambda (m n x)
        !           292:          (prog (a b)
        !           293:                (setq b (cdr (setq a (editnth x n))))
        !           294:                (setq x (editnth x m))
        !           295:                (cond ((and a (null (greaterp (length a) (length x))))
        !           296:                       (rplacd a nil)
        !           297:                       (rplaca x (cons (car x) (cdr x)))
        !           298:                       (rplacd x b))
        !           299:                      (t (err nil))))))
        !           300: 
        !           301: (def bo
        !           302:   (lambda (n x)
        !           303:          (prog nil
        !           304:                (setq x (editnth x n))
        !           305:                (cond ((atom (car x)) (err nil)))
        !           306:                (rplacd x (nconc (cdar x) (cdr x)))
        !           307:                (return (rplaca x (caar x))))))
        !           308: 
        !           309: (def subpair
        !           310:   (lambda (x y z fl)
        !           311:          (cond (fl (subpr x y (copy z)))
        !           312:                ((subpr x y z)))))
        !           313: 
        !           314:  (def subpr
        !           315:       (lambda (x y z)
        !           316:              (prog (c d)
        !           317:                    (setq c x)
        !           318:                    (setq d y)
        !           319:            loop    (cond ((or (null c) (null d)) (return z))
        !           320:                          (t (dsubst (car d) (car c) z)
        !           321:                             (setq c (cdr c))
        !           322:                             (setq d (cdr d))
        !           323:                             (go loop))))))
        !           324: 
        !           325: (def ldiff
        !           326:   (lambda (x y)
        !           327:          (prog (a b)
        !           328:                (setq a x)
        !           329:                (setq b nil)
        !           330:        loop    (cond ((equal a y) (return (reverse b)))
        !           331:                      ((null a) (return (err nil)))
        !           332:                      (t (setq b (cons (car a) b))
        !           333:                         (setq a (cdr a))
        !           334:                         (go loop))))))
        !           335: 
        !           336: (def editv
        !           337:   (nlambda (editvx)
        !           338:           (prog nil
        !           339:                 (set (car editvx)
        !           340:                      (car (edite (eval (car editvx))
        !           341:                                  (cdr editvx)
        !           342:                                  nil)))
        !           343:                 (return (car editvx)))))
        !           344: 
        !           345: (def nthcdr
        !           346:   (lambda (n x)
        !           347:          (cond ((equal n 0) x)
        !           348:                ((lessp n 0) (cons nil x))
        !           349:                (t (nthcdr  (sub1 n)(cdr x))))))
        !           350: 
        !           351: (def attach
        !           352:   (lambda (x y)
        !           353:          (prog (a)
        !           354:                (setq a (cons (car y) (cdr y)))
        !           355:                (rplaca y x)
        !           356:                (rplacd y a)
        !           357:                (return y))))
        !           358: 
        !           359:  (def eprint (lambda (x) (print (eprint1 x printlevel))))
        !           360: 
        !           361: (def edite
        !           362:   (lambda (x ops l)
        !           363:          (prog (c m em edok copied pf pl)
        !           364:                (cond ((null l) (setq l (list x))))
        !           365:                (setq em editmacros)
        !           366:                (setq pf printflag)
        !           367:                (setq pl 3)
        !           368:                (cond (ops (cond ((dtpr (errset (mapc 
        !           369:                                             (function 
        !           370:                                                (lambda (x)
        !           371:                                                        (editcom (setq c x))))
        !           372:                                             ops)
        !           373:                                          t))
        !           374:                                  (return (car (last l))))
        !           375:                                 (t (go b)))))
        !           376:                (print 'edit)
        !           377:                (cond (pf (terpri) (editcom 'p)))
        !           378:                (setq pf printflag)
        !           379:        ct      (setq findflag nil)
        !           380:        a       (cond (edok (return (cdr edok))))
        !           381:                (terpri)
        !           382:                (patom '*)
        !           383:                (drain)
        !           384:                (cond ((atom (errset (setq c (read)) t)) (go ct)))
        !           385:                (cond ((dtpr (errset (editcom c) t))
        !           386:                       (cond (pf (editcom 'p)))
        !           387:                       (setq pf printflag)
        !           388:                       (go a)))
        !           389:        b       (terpri)
        !           390:                (print c)
        !           391:                (patom '?)
        !           392:                (terpri)
        !           393:                (go ct))))
        !           394: 
        !           395: (def editdefault
        !           396:       (lambda (x) (editcom (list 'f x 't))))
        !           397: 
        !           398: (def editcom
        !           399:   (lambda (c)
        !           400:          (prog (cc c2 c3 cl)
        !           401:        a       (cond (findflag (setq findflag nil) (editqf c))
        !           402:                      ((numberp c) (setq l (edit1f c l)))
        !           403:                      ((atom c)
        !           404:                       (cond ((eq c 'ok)
        !           405:                              (setq ersetflg t)
        !           406:                              (setq edok (cons t (last l)))
        !           407:                              (return (setq pf nil)))
        !           408:                             ((eq c 'e)
        !           409:                              (setq ersetflg t)
        !           410:                              (print (eval (read)))
        !           411:                              (terpri))
        !           412:                             ((eq c 'p)
        !           413:                              (setq pf nil)
        !           414:                              (bpnt0 (car l) 1 pl))
        !           415:                             ((eq c 'pp)
        !           416:                              (setq pf nil)
        !           417:                              (terpri)
        !           418:                              (errset ($prpr (car l)) t)
        !           419:                              (terpri))
        !           420:                             ((eq c 'mark)
        !           421:                              (setq m (cons l m)))
        !           422:                             ((eq c '^)
        !           423:                              (setq l (list (last l))))
        !           424:                             ((eq c 'copy) (setq copied (copy l)))
        !           425:                             ((eq c 'restore) (setq l copied))
        !           426:                             ((eq c '<)
        !           427:                              (cond (m (setq l (car m)))
        !           428:                                    (t (err '"no marks"))))
        !           429:                             ((eq c '<<)
        !           430:                              (cond (m (setq l (car m))
        !           431:                                       (setq m (cdr m)))
        !           432:                                    (t (err '"no marks"))))
        !           433:                             ((eq c 'poff)
        !           434:                              (setq pf nil)
        !           435:                              (setq printflag nil))
        !           436:                             ((eq c 'pon)
        !           437:                              (setq pf t)
        !           438:                              (setq printflag t))
        !           439:                             (t (cond ((and (setq cc
        !           440:                                                  (cond ((null
        !           441:                                                          (setq cc 
        !           442:                                                                (assoc c em)))
        !           443:                                                         nil)
        !           444:                                                        ((cdr cc))))
        !           445:                                            (null (car cc)))
        !           446:                                       (editcoms (copy cc)))
        !           447:                                      (t (return (editdefault c)))))))
        !           448:                      ((numberp (setq cc (car c))) (edit2f c))
        !           449:                      (t (setq c2 (cadr c))
        !           450:                         (setq c3
        !           451:                               (cond ((null (cddr c)) nil)
        !           452:                                     ((car (cddr c)))))
        !           453:                         (setq cl (car l))
        !           454:                         (cond ((eq cc 's)
        !           455:                                (set c2
        !           456:                                     (car (cond ((null (setq c c3)) l)
        !           457:                                                ((equal c 0) l)
        !           458:                                                (t (editnth cl c))))))
        !           459:                               ((eq cc 'r)
        !           460:                                (dsubst c3 c2 cl))
        !           461:                               ((eq cc 'e)
        !           462:                                (setq cc (eval c2))
        !           463:                                (cond ((null (cddr c))
        !           464:                                       (print cc)
        !           465:                                       (terpri)))
        !           466:                                (return cc))
        !           467:                               ((eq cc 'i)
        !           468:                                (setq c
        !           469:                                      (cons (cond ((atom c2) c2)
        !           470:                                                  (t (eval c2)))
        !           471:                                            (mapcar (function eval)
        !           472:                                                    (cddr c))))
        !           473:                                (go a))
        !           474:                               ((eq cc 'n)
        !           475:                                (nconc cl (cdr c)))
        !           476:                               ((eq cc 'p)
        !           477:                                (bpnt (cdr c))
        !           478:                                (setq pf nil))
        !           479:                               ((eq cc 'f)
        !           480:                                (edit4f c2 c3))
        !           481:                               ((eq cc 'nth)
        !           482:                                (setq l (cons (editnth cl c2) l)))
        !           483:                               ((member cc
        !           484:                                         '(ri ro li lo bi bo))
        !           485:                                (apply1 cc (append (cdr c) (list cl))))
        !           486:                               ((member cc '(m d))
        !           487:                                (setq cc (cond ((atom (setq cc c2))
        !           488:                                                (cons cc
        !           489:                                                      (cons nil
        !           490:                                                            (cddr c))))
        !           491:                                               (t (cons (car cc) (cddr c)))))
        !           492:                                (setq em (cons cc em))
        !           493:                                (cond ((eq (car c) 'm) 
        !           494:                                       (setq editmacros
        !           495:                                             (cons cc editmacros)))))
        !           496:                               ((eq cc 'pl)
        !           497:                                (cond ((lessp c2 1) (err nil))
        !           498:                                      (t (setq pl (add 1 c2)))))
        !           499:                               (t (cond ((or (null
        !           500:                                              (setq cc
        !           501:                                                    (cond ((null
        !           502:                                                            (setq cc
        !           503:                                                                  (assoc cc em)))
        !           504:                                                           nil)
        !           505:                                                          (t (cdr cc)))))
        !           506:                                             (null (cond ((null cc) nil)
        !           507:                                                         (t (car cc)))))
        !           508:                                         (return (editdefault c)))
        !           509:                                        ((atom (car cc))
        !           510:                                         (editcoms
        !           511:                                          (subst (cond ((null c) nil)
        !           512:                                                       ((cdr c)))
        !           513:                                                 (car cc)
        !           514:                                                 (cdr cc))))
        !           515:                                        (t (editcoms
        !           516:                                            (subpair (car cc)
        !           517:                                                     (cdr c)
        !           518:                                                     (cdr cc)
        !           519:                                                     t))))))))
        !           520:                (return (car l)))))
        !           521: 
        !           522: (def eprint1
        !           523:   (lambda (x lev)
        !           524:          (cond ((atom x) x)
        !           525:                ((equal 0 lev) '&)
        !           526:                ((and (atom (cdr x)) (cdr x)) x)
        !           527:                (t (mapcar (function (lambda (y) (eprint1 y (sub1 lev))))
        !           528:                           x)))))
        !           529: 
        !           530: (def assoc
        !           531:   (lambda (e l)
        !           532:          (cond ((null l) nil)
        !           533:                ((equal e (caar l)) (car l))
        !           534:                (t (assoc e (cdr l))))))
        !           535: 
        !           536:  (def apply1
        !           537:       (lambda (f l)
        !           538:              (eval (cons f (mapcar '(lambda (z) (list 'quote z))
        !           539:                                    l)))))
        !           540: 
        !           541: 
        !           542: 
        !           543: 
        !           544: (def editp
        !           545:   (nlambda (x)
        !           546:           (prog (a b)
        !           547:                 (setq a (car x))
        !           548:                 (edite (caar x))
        !           549:                 (return a))))
        !           550: 
        !           551: (def makefile
        !           552:   (nlambda (x)
        !           553:           (prog (poport n f ff l df)
        !           554:                 (setq l (cons nil (cadr x)))
        !           555:                 (setq ff (eval (car x)))
        !           556:                 (setq poport
        !           557:                       (outfile (setq n (concatp 'mkfl))))
        !           558:        l1       (cond ((null (setq l (cdr l))) (go e1)))
        !           559:                 (setq f (car l))
        !           560:                 (cond ((null f) (go l1))
        !           561:                       ((null (setq df (getd f))) (go l1))
        !           562:                       (t (setq df (list 'def f df))
        !           563:                          ($prpr df)
        !           564:                          (terpri)
        !           565:                          (go l1)))
        !           566:        e1       (close poport)
        !           567:                 (null (eval (cons 'exec (cons '/bin/mv (cons n (cons ff nil)))))))))
        !           568: 
        !           569: (def appfile
        !           570:   (nlambda (x)
        !           571:           (prog (i poport n f ff l df)
        !           572:                 (setq l (cons nil (cadr x)))
        !           573:                 (setq ff (eval (car x)))
        !           574:                 (setq i (infile ff))
        !           575:                 (setq poport
        !           576:                       (outfile (setq n (concatp 'apfl))))
        !           577:        l1       (cond ((eq (setq f (read i poport)) 'eof)
        !           578:                        (go l2))
        !           579:                       (t ($prpr f) (terpri)))
        !           580:                 (go l1)
        !           581:        l2       (cond ((null (setq l (cdr l))) (go e1)))
        !           582:                 (setq f (car l))
        !           583:                 (cond ((null f) (go l2))
        !           584:                       ((null (setq df (getd f))) (go l2))
        !           585:                       (t (setq df (list 'def f df))
        !           586:                          ($prpr df)
        !           587:                          (terpri)
        !           588:                          (go l2)))
        !           589:        e1       (close poport)
        !           590:                 (null (eval (cons 'exec (cons '/bin/mv (cons n (cons ff nil)))))))))
        !           591: 
        !           592: (def exec
        !           593:   (nlambda ($list)
        !           594:           (prog ($handy)
        !           595:                 (setq $handy '"")
        !           596:         loop    (cond ((null $list)
        !           597:                        (return (eval (list 'process $handy))))
        !           598:                       (t (setq $handy
        !           599:                                (concat (concat $handy (car $list))
        !           600:                                        '" "))
        !           601:                          (setq $list (cdr $list))
        !           602:                          (go loop))))))
        !           603: 
        !           604: (setq editmacros nil)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.