DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ r

⟦3eae5a759⟧

    Length: 4981 (0x1375)
    Names: »rect.elc«

Derivation

└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki
    └─ ⟦this⟧ »EUUGD11/gnu-31mar87/emacs/lisp/rect.elc« 

Hex Dump

0x0000…0020 0a 28 64 65 66 75 6e 20 6f 70 65 72 61 74 65 2d 6f 6e 2d 72 65 63 74 61 6e 67 6c 65 20 28 66 75   ┆ (defun operate-on-rectangle (fu┆
0x0020…0040 6e 63 74 69 6f 6e 20 73 74 61 72 74 20 65 6e 64 20 63 6f 65 72 63 65 2d 74 61 62 73 29 20 22 5c   ┆nction start end coerce-tabs) "\┆
0x0040…0060 0a 43 61 6c 6c 20 46 55 4e 43 54 49 4f 4e 20 66 6f 72 20 65 61 63 68 20 6c 69 6e 65 20 6f 66 20   ┆ Call FUNCTION for each line of ┆
0x0060…0080 72 65 63 74 61 6e 67 6c 65 20 77 69 74 68 20 63 6f 72 6e 65 72 73 20 61 74 20 53 54 41 52 54 2c   ┆rectangle with corners at START,┆
0x0080…00a0 20 45 4e 44 2e 0a 49 66 20 43 4f 45 52 43 45 2d 54 41 42 53 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c   ┆ END. If COERCE-TABS is non-nil,┆
0x00a0…00c0 20 63 6f 6e 76 65 72 74 20 6d 75 6c 74 69 2d 63 6f 6c 75 6d 6e 20 63 68 61 72 61 63 74 65 72 73   ┆ convert multi-column characters┆
0x00c0…00e0 0a 74 68 61 74 20 73 70 61 6e 20 74 68 65 20 73 74 61 72 74 69 6e 67 20 6f 72 20 65 6e 64 69 6e   ┆ that span the starting or endin┆
0x00e0…0100 67 20 63 6f 6c 75 6d 6e 73 20 6f 6e 20 61 6e 79 20 6c 69 6e 65 0a 74 6f 20 6d 75 6c 74 69 70 6c   ┆g columns on any line to multipl┆
0x0100…0120 65 20 73 70 61 63 65 73 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 46 55 4e 43 54 49 4f 4e   ┆e spaces before calling FUNCTION┆
0x0120…0140 2e 0a 46 55 4e 43 54 49 4f 4e 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 68 72 65 65 20   ┆. FUNCTION is called with three ┆
0x0140…0160 61 72 67 75 6d 65 6e 74 73 3a 0a 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 73 74 61 72 74 20 6f 66   ┆arguments:  position of start of┆
0x0160…0180 20 73 65 67 6d 65 6e 74 20 6f 66 20 74 68 69 73 20 6c 69 6e 65 20 77 69 74 68 69 6e 20 74 68 65   ┆ segment of this line within the┆
0x0180…01a0 20 72 65 63 74 61 6e 67 6c 65 2c 0a 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6c 75 6d 6e 73 20 74   ┆ rectangle,  number of columns t┆
0x01a0…01c0 68 61 74 20 62 65 6c 6f 6e 67 20 74 6f 20 72 65 63 74 61 6e 67 6c 65 20 62 75 74 20 61 72 65 20   ┆hat belong to rectangle but are ┆
0x01c0…01e0 62 65 66 6f 72 65 20 74 68 61 74 20 70 6f 73 69 74 69 6f 6e 2c 0a 20 6e 75 6d 62 65 72 20 6f 66   ┆before that position,  number of┆
0x01e0…0200 20 63 6f 6c 75 6d 6e 73 20 74 68 61 74 20 62 65 6c 6f 6e 67 20 74 6f 20 72 65 63 74 61 6e 67 6c   ┆ columns that belong to rectangl┆
0x0200…0220 65 20 62 75 74 20 61 72 65 20 61 66 74 65 72 20 70 6f 69 6e 74 2e 0a 50 6f 69 6e 74 20 69 73 20   ┆e but are after point. Point is ┆
0x0220…0240 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 73 65 67 6d 65 6e 74 20 6f 66 20 74 68 69   ┆at the end of the segment of thi┆
0x0240…0260 73 20 6c 69 6e 65 20 77 69 74 68 69 6e 20 74 68 65 20 72 65 63 74 61 6e 67 6c 65 2e 22 20 28 62   ┆s line within the rectangle." (b┆
0x0260…0280 79 74 65 2d 63 6f 64 65 20 22 cc cc cc cc 1b 1a 19 18 8a 0c 62 88 69 89 10 88 cd 20 88 60 89 11   ┆yte-code "          b i      `  ┆
0x0280…02a0 29 88 8a 0d 62 88 69 89 12 88 ce cf 21 88 d0 20 89 13 29 88 0a 08 57 83 3d 00 08 1e 06 0a 10 0e   ┆)   b i     !     )   W =       ┆
0x02a0…02c0 06 89 12 29 82 3e 00 cc 88 d1 0a 08 5c 22 83 ca 00 8a 09 62 88 60 0b 57 85 c6 00 cc cc cc 1e 09   ┆   ) >      \"     b ` W        ┆
0x02c0…02e0 1e 08 1e 07 d2 08 21 88 0e 0a 85 6b 00 69 08 56 85 6b 00 d3 08 21 88 69 08 5a 89 16 08 88 60 89   ┆      !    k i V k   ! i Z    ` ┆
0x02e0…0300 16 07 88 d2 0a 21 88 69 0a 56 83 93 00 0e 0a 83 8d 00 d3 0a 21 82 90 00 d4 d5 21 82 94 00 cc 88   ┆     ! i V          !     !     ┆
0x0300…0320 0a 69 5a 89 16 09 88 0e 08 d6 57 83 b1 00 0e 09 0e 08 5c 5c 16 09 d6 89 16 08 82 b2 00 cc 88 d7   ┆ iZ       W       \\            ┆
0x0320…0340 0e 0b 0e 07 0e 08 0e 09 24 2b 88 ce cf 21 88 82 4a 00 29 82 cb 00 cc 88 0a 08 5a 2c 87 22 20 5b   ┆        $+   !  J )       Z, " [┆
0x0340…0360 73 74 61 72 74 63 6f 6c 20 73 74 61 72 74 6c 69 6e 65 70 6f 73 20 65 6e 64 63 6f 6c 20 65 6e 64   ┆startcol startlinepos endcol end┆
0x0360…0380 6c 69 6e 65 70 6f 73 20 73 74 61 72 74 20 65 6e 64 20 74 65 6d 20 73 74 61 72 74 70 6f 73 20 62   ┆linepos start end tem startpos b┆
0x0380…03a0 65 67 65 78 74 72 61 20 65 6e 64 65 78 74 72 61 20 63 6f 65 72 63 65 2d 74 61 62 73 20 66 75 6e   ┆egextra endextra coerce-tabs fun┆
0x03a0…03c0 63 74 69 6f 6e 20 6e 69 6c 20 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 66 6f 72 77   ┆ction nil beginning-of-line forw┆
0x03c0…03e0 61 72 64 2d 6c 69 6e 65 20 31 20 70 6f 69 6e 74 2d 6d 61 72 6b 65 72 20 2f 3d 20 6d 6f 76 65 2d   ┆ard-line 1 point-marker /= move-┆
0x03e0…0400 74 6f 2d 63 6f 6c 75 6d 6e 20 72 65 63 74 61 6e 67 6c 65 2d 63 6f 65 72 63 65 2d 74 61 62 20 66   ┆to-column rectangle-coerce-tab f┆
0x0400…0420 6f 72 77 61 72 64 2d 63 68 61 72 20 2d 31 20 30 20 66 75 6e 63 61 6c 6c 5d 20 31 35 29 29 0a 0a   ┆orward-char -1 0 funcall] 15))  ┆
0x0420…0440 28 64 65 66 75 6e 20 64 65 6c 65 74 65 2d 72 65 63 74 61 6e 67 6c 65 2d 6c 69 6e 65 20 28 73 74   ┆(defun delete-rectangle-line (st┆
0x0440…0460 61 72 74 64 65 6c 70 6f 73 20 69 67 6e 6f 72 65 20 69 67 6e 6f 72 65 29 20 28 62 79 74 65 2d 63   ┆artdelpos ignore ignore) (byte-c┆
0x0460…0480 6f 64 65 20 22 c1 08 60 5c 22 87 22 20 5b 73 74 61 72 74 64 65 6c 70 6f 73 20 64 65 6c 65 74 65   ┆ode "  `\" " [startdelpos delete┆
0x0480…04a0 2d 72 65 67 69 6f 6e 5d 20 33 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 6c 65 74 65 2d 65 78 74 72   ┆-region] 3))  (defun delete-extr┆
0x04a0…04c0 61 63 74 2d 72 65 63 74 61 6e 67 6c 65 2d 6c 69 6e 65 20 28 73 74 61 72 74 64 65 6c 70 6f 73 20   ┆act-rectangle-line (startdelpos ┆
0x04c0…04e0 62 65 67 65 78 74 72 61 20 65 6e 64 65 78 74 72 61 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 8a   ┆begextra endextra) (byte-code " ┆
0x04e0…0500 c3 08 09 0a 23 29 88 c4 08 60 5c 22 87 22 20 5b 73 74 61 72 74 64 65 6c 70 6f 73 20 62 65 67 65   ┆    #)   `\" " [startdelpos bege┆
0x0500…0520 78 74 72 61 20 65 6e 64 65 78 74 72 61 20 65 78 74 72 61 63 74 2d 72 65 63 74 61 6e 67 6c 65 2d   ┆xtra endextra extract-rectangle-┆
0x0520…0540 6c 69 6e 65 20 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 5d 20 34 29 29 0a 0a 28 64 65 66 75 6e 20   ┆line delete-region] 4))  (defun ┆
0x0540…0560 65 78 74 72 61 63 74 2d 72 65 63 74 61 6e 67 6c 65 2d 6c 69 6e 65 20 28 73 74 61 72 74 64 65 6c   ┆extract-rectangle-line (startdel┆
0x0560…0580 70 6f 73 20 62 65 67 65 78 74 72 61 20 65 6e 64 65 78 74 72 61 29 20 28 62 79 74 65 2d 63 6f 64   ┆pos begextra endextra) (byte-cod┆
0x0580…05a0 65 20 22 c8 09 60 5c 22 60 1a 18 09 62 88 c9 ca 0a c3 23 85 38 00 69 8a cb cc 21 88 69 29 5a 1c   ┆e "  `\"`   b     # 8 i   ! i)Z ┆
0x05a0…05c0 08 cd ce 60 0a cf 23 4f d0 0c 21 08 08 47 60 0a 5a 5c 5c d1 4f 51 89 10 29 88 82 0a 00 88 0d cd   ┆   `  #O  !  G` Z\\ OQ  )       ┆
0x05c0…05e0 56 86 43 00 0e 06 cd 56 83 54 00 d0 0d 21 08 d0 0e 06 21 51 89 10 82 55 00 d1 88 08 0e 07 42 89   ┆V C    V T   !    !Q   U      B ┆
0x05e0…0600 16 07 2a 87 22 20 5b 6c 69 6e 65 20 73 74 61 72 74 64 65 6c 70 6f 73 20 65 6e 64 20 74 20 77 69   ┆  * " [line startdelpos end t wi┆
0x0600…0620 64 74 68 20 62 65 67 65 78 74 72 61 20 65 6e 64 65 78 74 72 61 20 6c 69 6e 65 73 20 62 75 66 66   ┆dth begextra endextra lines buff┆
0x0620…0640 65 72 2d 73 75 62 73 74 72 69 6e 67 20 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 09 22 20   ┆er-substring search-forward " " ┆
0x0640…0660 66 6f 72 77 61 72 64 2d 63 68 61 72 20 2d 31 20 30 20 2d 20 31 20 73 70 61 63 65 73 2d 73 74 72   ┆forward-char -1 0 - 1 spaces-str┆
0x0660…0680 69 6e 67 20 6e 69 6c 5d 20 31 32 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 73 70 61 63 65 73 2d   ┆ing nil] 12))  (defconst spaces-┆
0x0680…06a0 73 74 72 69 6e 67 73 20 28 71 75 6f 74 65 20 5b 22 22 20 22 20 22 20 22 20 20 22 20 22 20 20 20   ┆strings (quote ["" " " "  " "   ┆
0x06a0…06c0 22 20 22 20 20 20 20 22 20 22 20 20 20 20 20 22 20 22 20 20 20 20 20 20 22 20 22 20 20 20 20 20   ┆" "    " "     " "      " "     ┆
0x06c0…06e0 20 20 22 20 22 20 20 20 20 20 20 20 20 22 5d 29 29 0a 0a 28 64 65 66 75 6e 20 73 70 61 63 65 73   ┆  " "        "]))  (defun spaces┆
0x06e0…0700 2d 73 74 72 69 6e 67 20 28 6e 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 08 c3 58 83 0c 00 09 08   ┆-string (n) (byte-code "  X     ┆
0x0700…0720 48 82 28 00 c4 1a 08 c3 56 85 21 00 c5 0a 50 12 08 c3 5a 89 10 88 82 0e 00 88 0a 09 08 48 50 29   ┆H (     V !   P   Z          HP)┆
0x0720…0740 87 22 20 5b 6e 20 73 70 61 63 65 73 2d 73 74 72 69 6e 67 73 20 76 61 6c 20 38 20 22 22 20 22 20   ┆ " [n spaces-strings val 8 "" " ┆
0x0740…0760 20 20 20 20 20 20 20 22 5d 20 33 29 29 0a 0a 28 64 65 66 75 6e 20 64 65 6c 65 74 65 2d 72 65 63   ┆       "] 3))  (defun delete-rec┆
0x0760…0780 74 61 6e 67 6c 65 20 28 73 74 61 72 74 20 65 6e 64 29 20 22 5c 0a 44 65 6c 65 74 65 20 28 64 6f   ┆tangle (start end) "\ Delete (do┆
0x0780…07a0 6e 27 74 20 73 61 76 65 29 20 74 65 78 74 20 69 6e 20 72 65 63 74 61 6e 67 6c 65 20 77 69 74 68   ┆n't save) text in rectangle with┆
0x07a0…07c0 20 70 6f 69 6e 74 20 61 6e 64 20 6d 61 72 6b 20 61 73 20 63 6f 72 6e 65 72 73 2e 0a 54 68 65 20   ┆ point and mark as corners. The ┆
0x07c0…07e0 73 61 6d 65 20 72 61 6e 67 65 20 6f 66 20 63 6f 6c 75 6d 6e 73 20 69 73 20 64 65 6c 65 74 65 64   ┆same range of columns is deleted┆
0x07e0…0800 20 69 6e 20 65 61 63 68 20 6c 69 6e 65 0a 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 74 68 65 20   ┆ in each line starting with the ┆
0x0800…0820 6c 69 6e 65 20 77 68 65 72 65 20 74 68 65 20 72 65 67 69 6f 6e 20 62 65 67 69 6e 73 0a 61 6e 64   ┆line where the region begins and┆
0x0820…0840 20 65 6e 64 69 6e 67 20 77 69 74 68 20 74 68 65 20 6c 69 6e 65 20 77 68 65 72 65 20 74 68 65 20   ┆ ending with the line where the ┆
0x0840…0860 72 65 67 69 6f 6e 20 65 6e 64 73 2e 22 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 72 22 29 20   ┆region ends." (interactive "r") ┆
0x0860…0880 28 62 79 74 65 2d 63 6f 64 65 20 22 c3 88 c4 c5 08 09 c2 24 87 22 20 5b 73 74 61 72 74 20 65 6e   ┆(byte-code "       $ " [start en┆
0x0880…08a0 64 20 74 20 6e 69 6c 20 6f 70 65 72 61 74 65 2d 6f 6e 2d 72 65 63 74 61 6e 67 6c 65 20 64 65 6c   ┆d t nil operate-on-rectangle del┆
0x08a0…08c0 65 74 65 2d 72 65 63 74 61 6e 67 6c 65 2d 6c 69 6e 65 5d 20 35 29 29 0a 0a 28 64 65 66 75 6e 20   ┆ete-rectangle-line] 5))  (defun ┆
0x08c0…08e0 64 65 6c 65 74 65 2d 65 78 74 72 61 63 74 2d 72 65 63 74 61 6e 67 6c 65 20 28 73 74 61 72 74 20   ┆delete-extract-rectangle (start ┆
0x08e0…0900 65 6e 64 29 20 22 5c 0a 52 65 74 75 72 6e 20 61 6e 64 20 64 65 6c 65 74 65 20 63 6f 6e 74 65 6e   ┆end) "\ Return and delete conten┆
0x0900…0920 74 73 20 6f 66 20 72 65 63 74 61 6e 67 6c 65 20 77 69 74 68 20 63 6f 72 6e 65 72 73 20 61 74 20   ┆ts of rectangle with corners at ┆
0x0920…0940 53 54 41 52 54 20 61 6e 64 20 45 4e 44 2e 0a 56 61 6c 75 65 20 69 73 20 6c 69 73 74 20 6f 66 20   ┆START and END. Value is list of ┆
0x0940…0960 73 74 72 69 6e 67 73 2c 20 6f 6e 65 20 66 6f 72 20 65 61 63 68 20 6c 69 6e 65 20 6f 66 20 74 68   ┆strings, one for each line of th┆
0x0960…0980 65 20 72 65 63 74 61 6e 67 6c 65 2e 22 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c4 18 c5 c6 09 0a   ┆e rectangle." (byte-code "      ┆
0x0980…09a0 c3 24 88 c7 08 21 29 87 22 20 5b 6c 69 6e 65 73 20 73 74 61 72 74 20 65 6e 64 20 74 20 6e 69 6c   ┆ $   !) " [lines start end t nil┆
0x09a0…09c0 20 6f 70 65 72 61 74 65 2d 6f 6e 2d 72 65 63 74 61 6e 67 6c 65 20 64 65 6c 65 74 65 2d 65 78 74   ┆ operate-on-rectangle delete-ext┆
0x09c0…09e0 72 61 63 74 2d 72 65 63 74 61 6e 67 6c 65 2d 6c 69 6e 65 20 6e 72 65 76 65 72 73 65 5d 20 35 29   ┆ract-rectangle-line nreverse] 5)┆
0x09e0…0a00 29 0a 0a 28 64 65 66 75 6e 20 65 78 74 72 61 63 74 2d 72 65 63 74 61 6e 67 6c 65 20 28 73 74 61   ┆)  (defun extract-rectangle (sta┆
0x0a00…0a20 72 74 20 65 6e 64 29 20 22 5c 0a 52 65 74 75 72 6e 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 72 65   ┆rt end) "\ Return contents of re┆
0x0a20…0a40 63 74 61 6e 67 6c 65 20 77 69 74 68 20 63 6f 72 6e 65 72 73 20 61 74 20 53 54 41 52 54 20 61 6e   ┆ctangle with corners at START an┆
0x0a40…0a60 64 20 45 4e 44 2e 0a 56 61 6c 75 65 20 69 73 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 2c   ┆d END. Value is list of strings,┆
0x0a60…0a80 20 6f 6e 65 20 66 6f 72 20 65 61 63 68 20 6c 69 6e 65 20 6f 66 20 74 68 65 20 72 65 63 74 61 6e   ┆ one for each line of the rectan┆
0x0a80…0aa0 67 6c 65 2e 22 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c3 18 c4 c5 09 0a c3 24 88 c6 08 21 29 87   ┆gle." (byte-code "       $   !) ┆
0x0aa0…0ac0 22 20 5b 6c 69 6e 65 73 20 73 74 61 72 74 20 65 6e 64 20 6e 69 6c 20 6f 70 65 72 61 74 65 2d 6f   ┆" [lines start end nil operate-o┆
0x0ac0…0ae0 6e 2d 72 65 63 74 61 6e 67 6c 65 20 65 78 74 72 61 63 74 2d 72 65 63 74 61 6e 67 6c 65 2d 6c 69   ┆n-rectangle extract-rectangle-li┆
0x0ae0…0b00 6e 65 20 6e 72 65 76 65 72 73 65 5d 20 35 29 29 0a 0a 28 64 65 66 76 61 72 20 6b 69 6c 6c 65 64   ┆ne nreverse] 5))  (defvar killed┆
0x0b00…0b20 2d 72 65 63 74 61 6e 67 6c 65 20 6e 69 6c 20 22 5c 0a 52 65 63 74 61 6e 67 6c 65 20 66 6f 72 20   ┆-rectangle nil "\ Rectangle for ┆
0x0b20…0b40 79 61 6e 6b 2d 72 65 63 74 61 6e 67 6c 65 20 74 6f 20 69 6e 73 65 72 74 2e 22 29 0a 0a 28 64 65   ┆yank-rectangle to insert.")  (de┆
0x0b40…0b60 66 75 6e 20 6b 69 6c 6c 2d 72 65 63 74 61 6e 67 6c 65 20 28 73 74 61 72 74 20 65 6e 64 29 20 22   ┆fun kill-rectangle (start end) "┆
0x0b60…0b80 5c 0a 44 65 6c 65 74 65 20 72 65 63 74 61 6e 67 6c 65 20 77 69 74 68 20 63 6f 72 6e 65 72 73 20   ┆\ Delete rectangle with corners ┆
0x0b80…0ba0 61 74 20 70 6f 69 6e 74 20 61 6e 64 20 6d 61 72 6b 3b 20 73 61 76 65 20 61 73 20 6c 61 73 74 20   ┆at point and mark; save as last ┆
0x0ba0…0bc0 6b 69 6c 6c 65 64 20 6f 6e 65 2e 0a 43 61 6c 6c 69 6e 67 20 66 72 6f 6d 20 70 72 6f 67 72 61 6d   ┆killed one. Calling from program┆
0x0bc0…0be0 2c 20 73 75 70 70 6c 79 20 74 77 6f 20 61 72 67 73 20 53 54 41 52 54 20 61 6e 64 20 45 4e 44 2c   ┆, supply two args START and END,┆
0x0be0…0c00 20 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e 73 2e 0a 42 75 74 20 69 6e 20 70 72 6f 67 72 61   ┆ buffer positions. But in progra┆
0x0c00…0c20 6d 73 20 79 6f 75 20 6d 69 67 68 74 20 70 72 65 66 65 72 20 74 6f 20 75 73 65 20 64 65 6c 65 74   ┆ms you might prefer to use delet┆
0x0c20…0c40 65 2d 65 78 74 72 61 63 74 2d 72 65 63 74 61 6e 67 6c 65 2e 22 20 28 69 6e 74 65 72 61 63 74 69   ┆e-extract-rectangle." (interacti┆
0x0c40…0c60 76 65 20 22 72 22 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c3 88 c4 09 0a 5c 22 89 10 87 22 20   ┆ve "r") (byte-code "     \"   " ┆
0x0c60…0c80 5b 6b 69 6c 6c 65 64 2d 72 65 63 74 61 6e 67 6c 65 20 73 74 61 72 74 20 65 6e 64 20 6e 69 6c 20   ┆[killed-rectangle start end nil ┆
0x0c80…0ca0 64 65 6c 65 74 65 2d 65 78 74 72 61 63 74 2d 72 65 63 74 61 6e 67 6c 65 5d 20 33 29 29 0a 0a 28   ┆delete-extract-rectangle] 3))  (┆
0x0ca0…0cc0 64 65 66 75 6e 20 79 61 6e 6b 2d 72 65 63 74 61 6e 67 6c 65 20 6e 69 6c 20 22 5c 0a 59 61 6e 6b   ┆defun yank-rectangle nil "\ Yank┆
0x0cc0…0ce0 20 74 68 65 20 6c 61 73 74 20 6b 69 6c 6c 65 64 20 72 65 63 74 61 6e 67 6c 65 20 77 69 74 68 20   ┆ the last killed rectangle with ┆
0x0ce0…0d00 75 70 70 65 72 20 6c 65 66 74 20 63 6f 72 6e 65 72 20 61 74 20 70 6f 69 6e 74 2e 22 20 28 69 6e   ┆upper left corner at point." (in┆
0x0d00…0d20 74 65 72 61 63 74 69 76 65 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c1 88 c2 08 21 87 22 20 5b   ┆teractive) (byte-code "    ! " [┆
0x0d20…0d40 6b 69 6c 6c 65 64 2d 72 65 63 74 61 6e 67 6c 65 20 6e 69 6c 20 69 6e 73 65 72 74 2d 72 65 63 74   ┆killed-rectangle nil insert-rect┆
0x0d40…0d60 61 6e 67 6c 65 5d 20 32 29 29 0a 0a 28 64 65 66 75 6e 20 69 6e 73 65 72 74 2d 72 65 63 74 61 6e   ┆angle] 2))  (defun insert-rectan┆
0x0d60…0d80 67 6c 65 20 28 72 65 63 74 61 6e 67 6c 65 29 20 22 5c 0a 49 6e 73 65 72 74 20 74 65 78 74 20 6f   ┆gle (rectangle) "\ Insert text o┆
0x0d80…0da0 66 20 52 45 43 54 41 4e 47 4c 45 20 77 69 74 68 20 75 70 70 65 72 20 6c 65 66 74 20 63 6f 72 6e   ┆f RECTANGLE with upper left corn┆
0x0da0…0dc0 65 72 20 61 74 20 70 6f 69 6e 74 2e 0a 52 45 43 54 41 4e 47 4c 45 27 73 20 66 69 72 73 74 20 6c   ┆er at point. RECTANGLE's first l┆
0x0dc0…0de0 69 6e 65 20 69 73 20 69 6e 73 65 72 74 65 64 20 61 74 20 70 6f 69 6e 74 2c 0a 69 74 73 20 73 65   ┆ine is inserted at point, its se┆
0x0de0…0e00 63 6f 6e 64 20 6c 69 6e 65 20 69 73 20 69 6e 73 65 72 74 65 64 20 61 74 20 61 20 70 6f 69 6e 74   ┆cond line is inserted at a point┆
0x0e00…0e20 20 76 65 72 74 69 63 61 6c 6c 79 20 75 6e 64 65 72 20 70 6f 69 6e 74 2c 20 65 74 63 2e 0a 52 45   ┆ vertically under point, etc. RE┆
0x0e20…0e40 43 54 41 4e 47 4c 45 20 73 68 6f 75 6c 64 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69   ┆CTANGLE should be a list of stri┆
0x0e40…0e60 6e 67 73 2e 22 20 28 62 79 74 65 2d 63 6f 64 65 20 22 09 69 c4 1b 1a 18 08 85 48 00 0b 86 37 00   ┆ngs." (byte-code " i      H   7 ┆
0x0e60…0e80 c6 c7 21 88 6e 86 18 00 c8 63 88 c9 0a 21 88 69 0a 56 83 29 00 ca 0a 21 82 2a 00 c5 88 69 0a 57   ┆  ! n    c   ! i V )   ! *   i W┆
0x0e80…0ea0 83 36 00 0a 6a 82 37 00 c5 88 c5 89 13 88 08 40 63 88 08 41 89 10 88 82 06 00 2b 87 22 20 5b 6c   ┆ 6  j 7        @c  A      + " [l┆
0x0ea0…0ec0 69 6e 65 73 20 72 65 63 74 61 6e 67 6c 65 20 69 6e 73 65 72 74 63 6f 6c 75 6d 6e 20 66 69 72 73   ┆ines rectangle insertcolumn firs┆
0x0ec0…0ee0 74 20 74 20 6e 69 6c 20 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 20 31 30 20 6d 6f 76 65 2d 74   ┆t t nil forward-line 1 10 move-t┆
0x0ee0…0f00 6f 2d 63 6f 6c 75 6d 6e 20 72 65 63 74 61 6e 67 6c 65 2d 63 6f 65 72 63 65 2d 74 61 62 5d 20 36   ┆o-column rectangle-coerce-tab] 6┆
0x0f00…0f20 29 29 0a 0a 28 64 65 66 75 6e 20 6f 70 65 6e 2d 72 65 63 74 61 6e 67 6c 65 20 28 73 74 61 72 74   ┆))  (defun open-rectangle (start┆
0x0f20…0f40 20 65 6e 64 29 20 22 5c 0a 42 6c 61 6e 6b 20 6f 75 74 20 72 65 63 74 61 6e 67 6c 65 20 77 69 74   ┆ end) "\ Blank out rectangle wit┆
0x0f40…0f60 68 20 63 6f 72 6e 65 72 73 20 61 74 20 70 6f 69 6e 74 20 61 6e 64 20 6d 61 72 6b 2c 20 73 68 69   ┆h corners at point and mark, shi┆
0x0f60…0f80 66 74 69 6e 67 20 74 65 78 74 20 72 69 67 68 74 2e 0a 54 68 65 20 74 65 78 74 20 70 72 65 76 69   ┆fting text right. The text previ┆
0x0f80…0fa0 6f 75 73 6c 79 20 69 6e 20 74 68 65 20 72 65 67 69 6f 6e 20 69 73 20 6e 6f 74 20 6f 76 65 72 77   ┆ously in the region is not overw┆
0x0fa0…0fc0 72 69 74 74 65 6e 20 62 79 20 74 68 65 20 62 6c 61 6e 6b 73 2c 0a 62 75 74 20 69 6e 73 74 65 64   ┆ritten by the blanks, but insted┆
0x0fc0…0fe0 20 77 69 6e 64 73 20 75 70 20 74 6f 20 74 68 65 20 72 69 67 68 74 20 6f 66 20 74 68 65 20 72 65   ┆ winds up to the right of the re┆
0x0fe0…1000 63 74 61 6e 67 6c 65 2e 22 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 72 22 29 20 28 62 79 74   ┆ctangle." (interactive "r") (byt┆
0x1000…1020 65 2d 63 6f 64 65 20 22 c2 88 c3 c4 08 09 c2 24 87 22 20 5b 73 74 61 72 74 20 65 6e 64 20 6e 69   ┆e-code "       $ " [start end ni┆
0x1020…1040 6c 20 6f 70 65 72 61 74 65 2d 6f 6e 2d 72 65 63 74 61 6e 67 6c 65 20 6f 70 65 6e 2d 72 65 63 74   ┆l operate-on-rectangle open-rect┆
0x1040…1060 61 6e 67 6c 65 2d 6c 69 6e 65 5d 20 35 29 29 0a 0a 28 64 65 66 75 6e 20 6f 70 65 6e 2d 72 65 63   ┆angle-line] 5))  (defun open-rec┆
0x1060…1080 74 61 6e 67 6c 65 2d 6c 69 6e 65 20 28 73 74 61 72 74 70 6f 73 20 62 65 67 65 78 74 72 61 20 65   ┆tangle-line (startpos begextra e┆
0x1080…10a0 6e 64 65 78 74 72 61 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c5 69 09 0a 23 18 0b 62 88 69 1c   ┆ndextra) (byte-code " i  #  b i ┆
0x10a0…10c0 c6 c7 21 88 08 69 0c 5a 5c 5c 89 10 29 88 c8 60 c9 c7 21 88 60 5c 22 88 08 6a 29 87 22 20 5b 63   ┆  !  i Z\\  )  `  ! `\"  j) " [c┆
0x10c0…10e0 6f 6c 75 6d 6e 20 62 65 67 65 78 74 72 61 20 65 6e 64 65 78 74 72 61 20 73 74 61 72 74 70 6f 73   ┆olumn begextra endextra startpos┆
0x10e0…1100 20 6f 63 6f 6c 20 2b 20 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 20 09 22 20   ┆ ocol + skip-chars-forward "  " ┆
0x1100…1120 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 73 6b 69 70 2d 63 68 61 72 73 2d 62 61 63 6b 77 61 72   ┆delete-region skip-chars-backwar┆
0x1120…1140 64 5d 20 36 29 29 0a 0a 28 64 65 66 75 6e 20 63 6c 65 61 72 2d 72 65 63 74 61 6e 67 6c 65 20 28   ┆d] 6))  (defun clear-rectangle (┆
0x1140…1160 73 74 61 72 74 20 65 6e 64 29 20 22 5c 0a 42 6c 61 6e 6b 20 6f 75 74 20 72 65 63 74 61 6e 67 6c   ┆start end) "\ Blank out rectangl┆
0x1160…1180 65 20 77 69 74 68 20 63 6f 72 6e 65 72 73 20 61 74 20 70 6f 69 6e 74 20 61 6e 64 20 6d 61 72 6b   ┆e with corners at point and mark┆
0x1180…11a0 2e 0a 54 68 65 20 74 65 78 74 20 70 72 65 76 69 6f 75 73 6c 79 20 69 6e 20 74 68 65 20 72 65 67   ┆. The text previously in the reg┆
0x11a0…11c0 69 6f 6e 20 69 73 20 6f 76 65 72 77 72 69 74 74 65 6e 20 62 79 20 74 68 65 20 62 6c 61 6e 6b 73   ┆ion is overwritten by the blanks┆
0x11c0…11e0 2e 22 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 72 22 29 20 28 62 79 74 65 2d 63 6f 64 65 20   ┆." (interactive "r") (byte-code ┆
0x11e0…1200 22 c3 88 c4 c5 08 09 c2 24 87 22 20 5b 73 74 61 72 74 20 65 6e 64 20 74 20 6e 69 6c 20 6f 70 65   ┆"       $ " [start end t nil ope┆
0x1200…1220 72 61 74 65 2d 6f 6e 2d 72 65 63 74 61 6e 67 6c 65 20 63 6c 65 61 72 2d 72 65 63 74 61 6e 67 6c   ┆rate-on-rectangle clear-rectangl┆
0x1220…1240 65 2d 6c 69 6e 65 5d 20 35 29 29 0a 0a 28 64 65 66 75 6e 20 63 6c 65 61 72 2d 72 65 63 74 61 6e   ┆e-line] 5))  (defun clear-rectan┆
0x1240…1260 67 6c 65 2d 6c 69 6e 65 20 28 73 74 61 72 74 70 6f 73 20 62 65 67 65 78 74 72 61 20 65 6e 64 65   ┆gle-line (startpos begextra ende┆
0x1260…1280 78 74 72 61 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c3 c4 21 88 69 09 5c 5c 18 c5 60 0a 62 88   ┆xtra) (byte-code "  ! i \\  ` b ┆
0x1280…12a0 c6 c4 21 88 60 5c 22 88 08 6a 29 87 22 20 5b 63 6f 6c 75 6d 6e 20 65 6e 64 65 78 74 72 61 20 73   ┆  ! `\"  j) " [column endextra s┆
0x12a0…12c0 74 61 72 74 70 6f 73 20 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 20 09 22 20   ┆tartpos skip-chars-forward "  " ┆
0x12c0…12e0 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 73 6b 69 70 2d 63 68 61 72 73 2d 62 61 63 6b 77 61 72   ┆delete-region skip-chars-backwar┆
0x12e0…1300 64 5d 20 35 29 29 0a 0a 28 64 65 66 75 6e 20 72 65 63 74 61 6e 67 6c 65 2d 63 6f 65 72 63 65 2d   ┆d] 5))  (defun rectangle-coerce-┆
0x1300…1320 74 61 62 20 28 63 6f 6c 75 6d 6e 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 69 c2 19 18 c4 c5 21   ┆tab (column) (byte-code "i     !┆
0x1320…1340 88 08 6a 88 c6 08 0b 5a 21 2a 87 22 20 5b 61 66 74 65 72 63 6f 6c 20 69 6e 64 65 6e 74 2d 74 61   ┆  j    Z!* " [aftercol indent-ta┆
0x1340…1360 62 73 2d 6d 6f 64 65 20 6e 69 6c 20 63 6f 6c 75 6d 6e 20 64 65 6c 65 74 65 2d 63 68 61 72 20 2d   ┆bs-mode nil column delete-char -┆
0x1360…1375 31 20 62 61 63 6b 77 61 72 64 2d 63 68 61 72 5d 20 34 29 29 0a   ┆1 backward-char] 4)) ┆