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: ┃ s

⟦4780c29ab⟧

    Length: 8785 (0x2251)
    Names: »sort.elc«

Derivation

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

Hex Dump

0x0000…0020 0a 28 64 65 66 75 6e 20 73 6f 72 74 2d 73 75 62 72 20 28 72 65 76 65 72 73 65 20 6e 65 78 74 72   ┆ (defun sort-subr (reverse nextr┆
0x0020…0040 65 63 66 75 6e 20 65 6e 64 72 65 63 66 75 6e 20 26 6f 70 74 69 6f 6e 61 6c 20 73 74 61 72 74 6b   ┆ecfun endrecfun &optional startk┆
0x0040…0060 65 79 66 75 6e 20 65 6e 64 6b 65 79 66 75 6e 29 20 22 5c 0a 47 65 6e 65 72 61 6c 20 74 65 78 74   ┆eyfun endkeyfun) "\ General text┆
0x0060…0080 20 73 6f 72 74 69 6e 67 20 72 6f 75 74 69 6e 65 20 74 6f 20 64 69 76 69 64 65 20 62 75 66 66 65   ┆ sorting routine to divide buffe┆
0x0080…00a0 72 20 69 6e 74 6f 20 72 65 63 6f 72 64 73 20 61 6e 64 20 73 6f 72 74 20 74 68 65 6d 2e 0a 41 72   ┆r into records and sort them. Ar┆
0x00a0…00c0 67 75 6d 65 6e 74 73 20 61 72 65 20 52 45 56 45 52 53 45 20 4e 45 58 54 52 45 43 46 55 4e 20 45   ┆guments are REVERSE NEXTRECFUN E┆
0x00c0…00e0 4e 44 52 45 43 46 55 4e 20 26 6f 70 74 69 6f 6e 61 6c 20 53 54 41 52 54 4b 45 59 46 55 4e 20 45   ┆NDRECFUN &optional STARTKEYFUN E┆
0x00e0…0100 4e 44 4b 45 59 46 55 4e 2e 0a 0a 57 65 20 63 6f 6e 73 69 64 65 72 20 74 68 69 73 20 70 6f 72 74   ┆NDKEYFUN.  We consider this port┆
0x0100…0120 69 6f 6e 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 20 74 6f 20 62 65 20 64 69 76 69 64 65 64 20   ┆ion of the buffer to be divided ┆
0x0120…0140 69 6e 74 6f 20 64 69 73 6a 6f 69 6e 74 20 70 69 65 63 65 73 0a 63 61 6c 6c 65 64 20 73 6f 72 74   ┆into disjoint pieces called sort┆
0x0140…0160 20 72 65 63 6f 72 64 73 2e 20 20 41 20 70 6f 72 74 69 6f 6e 20 6f 66 20 65 61 63 68 20 73 6f 72   ┆ records.  A portion of each sor┆
0x0160…0180 74 20 72 65 63 6f 72 64 20 28 70 65 72 68 61 70 73 20 61 6c 6c 20 6f 66 20 69 74 29 0a 69 73 20   ┆t record (perhaps all of it) is ┆
0x0180…01a0 64 65 73 69 67 6e 61 74 65 64 20 61 73 20 74 68 65 20 73 6f 72 74 20 6b 65 79 2e 20 20 54 68 65   ┆designated as the sort key.  The┆
0x01a0…01c0 20 72 65 63 6f 72 64 73 20 61 72 65 20 72 65 61 72 72 61 6e 67 65 64 20 69 6e 20 74 68 65 20 62   ┆ records are rearranged in the b┆
0x01c0…01e0 75 66 66 65 72 0a 69 6e 20 6f 72 64 65 72 20 62 79 20 74 68 65 69 72 20 73 6f 72 74 20 6b 65 79   ┆uffer in order by their sort key┆
0x01e0…0200 73 2e 20 20 54 68 65 20 72 65 63 6f 72 64 73 20 6d 61 79 20 6f 72 20 6d 61 79 20 6e 6f 74 20 62   ┆s.  The records may or may not b┆
0x0200…0220 65 20 63 6f 6e 74 69 67 75 6f 75 73 2e 0a 0a 55 73 75 61 6c 6c 79 20 74 68 65 20 72 65 63 6f 72   ┆e contiguous.  Usually the recor┆
0x0220…0240 64 73 20 61 72 65 20 72 65 61 72 72 61 6e 67 65 64 20 69 6e 20 6f 72 64 65 72 20 6f 66 20 61 73   ┆ds are rearranged in order of as┆
0x0240…0260 63 65 6e 64 69 6e 67 20 73 6f 72 74 20 6b 65 79 2e 0a 49 66 20 52 45 56 45 52 53 45 20 69 73 20   ┆cending sort key. If REVERSE is ┆
0x0260…0280 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 65 79 20 61 72 65 20 72 65 61 72 72 61 6e 67 65 64 20 69 6e 20   ┆non-nil, they are rearranged in ┆
0x0280…02a0 6f 72 64 65 72 20 6f 66 20 64 65 73 63 65 6e 64 69 6e 67 20 73 6f 72 74 20 6b 65 79 2e 0a 0a 54   ┆order of descending sort key.  T┆
0x02a0…02c0 68 65 20 6e 65 78 74 20 66 6f 75 72 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 20 66 75 6e 63 74   ┆he next four arguments are funct┆
0x02c0…02e0 69 6f 6e 73 20 74 6f 20 62 65 20 63 61 6c 6c 65 64 20 74 6f 20 6d 6f 76 65 20 70 6f 69 6e 74 0a   ┆ions to be called to move point ┆
0x02e0…0300 61 63 72 6f 73 73 20 61 20 73 6f 72 74 20 72 65 63 6f 72 64 2e 20 20 54 68 65 79 20 77 69 6c 6c   ┆across a sort record.  They will┆
0x0300…0320 20 62 65 20 63 61 6c 6c 65 64 20 6d 61 6e 79 20 74 69 6d 65 73 20 66 72 6f 6d 20 77 69 74 68 69   ┆ be called many times from withi┆
0x0320…0340 6e 20 73 6f 72 74 2d 73 75 62 72 2e 0a 0a 4e 45 58 54 52 45 43 46 55 4e 20 69 73 20 63 61 6c 6c   ┆n sort-subr.  NEXTRECFUN is call┆
0x0340…0360 65 64 20 77 69 74 68 20 70 6f 69 6e 74 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20   ┆ed with point at the end of the ┆
0x0360…0380 70 72 65 76 69 6f 75 73 20 72 65 63 6f 72 64 2e 0a 49 74 20 6d 6f 76 65 73 20 70 6f 69 6e 74 20   ┆previous record. It moves point ┆
0x0380…03a0 74 6f 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 65 20 6e 65 78 74 20 72 65 63 6f 72 64 2e   ┆to the start of the next record.┆
0x03a0…03c0 0a 54 68 65 20 66 69 72 73 74 20 72 65 63 6f 72 64 20 69 73 20 61 73 73 75 6d 65 64 20 74 6f 20   ┆ The first record is assumed to ┆
0x03c0…03e0 73 74 61 72 74 20 61 74 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 6f 66 20 70 6f 69 6e 74 20 77   ┆start at the position of point w┆
0x03e0…0400 68 65 6e 20 73 6f 72 74 2d 73 75 62 72 0a 69 73 20 63 61 6c 6c 65 64 2e 0a 0a 45 4e 44 52 45 43   ┆hen sort-subr is called.  ENDREC┆
0x0400…0420 46 55 4e 20 69 73 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 70 6f 69 6e 74 20 77 69 74 68   ┆FUN is is called with point with┆
0x0420…0440 69 6e 20 74 68 65 20 72 65 63 6f 72 64 2e 0a 49 74 20 73 68 6f 75 6c 64 20 6d 6f 76 65 20 70 6f   ┆in the record. It should move po┆
0x0440…0460 69 6e 74 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 72 65 63 6f 72 64 2e 0a 0a 53   ┆int to the end of the record.  S┆
0x0460…0480 54 41 52 54 4b 45 59 46 55 4e 20 6d 61 79 20 6d 6f 76 65 73 20 66 72 6f 6d 20 74 68 65 20 73 74   ┆TARTKEYFUN may moves from the st┆
0x0480…04a0 61 72 74 20 6f 66 20 74 68 65 20 72 65 63 6f 72 64 20 74 6f 20 74 68 65 20 73 74 61 72 74 20 6f   ┆art of the record to the start o┆
0x04a0…04c0 66 20 74 68 65 20 6b 65 79 2e 0a 49 74 20 6d 61 79 20 72 65 74 75 72 6e 20 65 69 74 68 65 72 20   ┆f the key. It may return either ┆
0x04c0…04e0 72 65 74 75 72 6e 20 61 20 6e 6f 6e 2d 6e 69 6c 20 76 61 6c 75 65 20 74 6f 20 62 65 20 75 73 65   ┆return a non-nil value to be use┆
0x04e0…0500 64 20 61 73 20 74 68 65 20 6b 65 79 2c 20 6f 72 0a 65 6c 73 65 20 74 68 65 20 6b 65 79 20 77 69   ┆d as the key, or else the key wi┆
0x0500…0520 6c 6c 20 62 65 20 74 68 65 20 73 75 62 73 74 72 69 6e 67 20 62 65 74 77 65 65 6e 20 74 68 65 20   ┆ll be the substring between the ┆
0x0520…0540 76 61 6c 75 65 73 20 6f 66 20 70 6f 69 6e 74 20 61 66 74 65 72 0a 53 54 41 52 54 4b 45 59 46 55   ┆values of point after STARTKEYFU┆
0x0540…0560 4e 43 20 61 6e 64 20 45 4e 44 4b 45 59 46 55 4e 20 61 72 65 20 63 61 6c 6c 65 64 2e 0a 0a 45 4e   ┆NC and ENDKEYFUN are called.  EN┆
0x0560…0580 44 4b 45 59 46 55 4e 20 6d 6f 76 65 73 20 66 72 6f 6d 20 74 68 65 20 73 74 61 72 74 20 6f 66 20   ┆DKEYFUN moves from the start of ┆
0x0580…05a0 74 68 65 20 73 6f 72 74 20 6b 65 79 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 73   ┆the sort key to the end of the s┆
0x05a0…05c0 6f 72 74 20 6b 65 79 2e 0a 45 4e 44 52 45 43 46 55 4e 20 6d 61 79 20 62 65 20 6e 69 6c 20 69 66   ┆ort key. ENDRECFUN may be nil if┆
0x05c0…05e0 20 53 54 41 52 54 4b 45 59 46 55 4e 20 72 65 74 75 72 6e 73 20 61 20 76 61 6c 75 65 20 6f 72 20   ┆ STARTKEYFUN returns a value or ┆
0x05e0…0600 69 66 20 69 74 20 77 6f 75 6c 64 20 62 65 20 74 68 65 0a 73 61 6d 65 20 61 73 20 45 4e 44 52 45   ┆if it would be the same as ENDRE┆
0x0600…0620 43 46 55 4e 2e 22 20 28 62 79 74 65 2d 63 6f 64 65 20 22 8a c9 ca 21 88 cb 09 0a 0b 0c 24 18 c7   ┆CFUN." (byte-code "   !      $  ┆
0x0620…0640 08 21 1d 08 3f 83 19 00 c6 82 7d 00 0e 07 86 23 00 cc 08 21 89 10 88 c9 cd 21 88 ce cf 21 83 4c   ┆ !  ?     }    #   !     !   ! L┆
0x0640…0660 00 cf 08 d0 08 40 40 21 83 3c 00 d1 82 48 00 08 40 40 3a 83 47 00 d2 82 48 00 d3 5c 22 82 67 00   ┆     @@! <   H  @@: G   H  \" g ┆
0x0660…0680 d4 08 d0 08 40 40 21 83 5a 00 d5 82 66 00 08 40 40 3a 83 65 00 d6 82 66 00 d7 5c 22 89 10 88 0e   ┆    @@! Z   f  @@: e   f  \"    ┆
0x0680…06a0 07 85 74 00 cc 08 21 89 10 88 c9 d8 21 88 d9 08 0d 5c 22 2a 88 c9 da 21 29 87 22 20 5b 73 6f 72   ┆  t   !     !    \"*   !) " [sor┆
0x06a0…06c0 74 2d 6c 69 73 74 73 20 6e 65 78 74 72 65 63 66 75 6e 20 65 6e 64 72 65 63 66 75 6e 20 73 74 61   ┆t-lists nextrecfun endrecfun sta┆
0x06c0…06e0 72 74 6b 65 79 66 75 6e 20 65 6e 64 6b 65 79 66 75 6e 20 6f 6c 64 20 6e 69 6c 20 72 65 76 65 72   ┆rtkeyfun endkeyfun old nil rever┆
0x06e0…0700 73 65 20 74 20 6d 65 73 73 61 67 65 20 22 46 69 6e 64 69 6e 67 20 73 6f 72 74 20 6b 65 79 73 2e   ┆se t message "Finding sort keys.┆
0x0700…0720 2e 2e 22 20 73 6f 72 74 2d 62 75 69 6c 64 2d 6c 69 73 74 73 20 6e 72 65 76 65 72 73 65 20 22 53   ┆.." sort-build-lists nreverse "S┆
0x0720…0740 6f 72 74 69 6e 67 20 72 65 63 6f 72 64 73 2e 2e 2e 22 20 66 62 6f 75 6e 64 70 20 73 6f 72 74 63   ┆orting records..." fboundp sortc┆
0x0740…0760 61 72 20 6e 75 6d 62 65 72 70 20 3c 20 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6c 65   ┆ar numberp < buffer-substring-le┆
0x0760…0780 73 73 70 20 73 74 72 69 6e 67 3c 20 73 6f 72 74 20 28 6c 61 6d 62 64 61 20 28 61 20 62 29 20 28   ┆ssp string< sort (lambda (a b) (┆
0x0780…07a0 62 79 74 65 2d 63 6f 64 65 20 22 08 40 09 40 57 87 22 20 5b 61 20 62 5d 20 32 29 29 20 28 6c 61   ┆byte-code " @ @W " [a b] 2)) (la┆
0x07a0…07c0 6d 62 64 61 20 28 61 20 62 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c2 08 40 09 40 5c 22 87 22   ┆mbda (a b) (byte-code "  @ @\" "┆
0x07c0…07e0 20 5b 61 20 62 20 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6c 65 73 73 70 5d 20 33 29   ┆ [a b buffer-substring-lessp] 3)┆
0x07e0…0800 29 20 28 6c 61 6d 62 64 61 20 28 61 20 62 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c2 08 40 09   ┆) (lambda (a b) (byte-code "  @ ┆
0x0800…0820 40 5c 22 87 22 20 5b 61 20 62 20 73 74 72 69 6e 67 3c 5d 20 33 29 29 20 22 52 65 6f 72 64 65 72   ┆@\" " [a b string<] 3)) "Reorder┆
0x0820…0840 69 6e 67 20 62 75 66 66 65 72 2e 2e 2e 22 20 73 6f 72 74 2d 72 65 6f 72 64 65 72 2d 62 75 66 66   ┆ing buffer..." sort-reorder-buff┆
0x0840…0860 65 72 20 22 52 65 6f 72 64 65 72 69 6e 67 20 62 75 66 66 65 72 2e 2e 2e 20 44 6f 6e 65 22 5d 20   ┆er "Reordering buffer... Done"] ┆
0x0860…0880 31 35 29 29 0a 0a 28 64 65 66 75 6e 20 73 6f 72 74 2d 62 75 69 6c 64 2d 6c 69 73 74 73 20 28 6e   ┆15))  (defun sort-build-lists (n┆
0x0880…08a0 65 78 74 72 65 63 66 75 6e 20 65 6e 64 72 65 63 66 75 6e 20 73 74 61 72 74 6b 65 79 66 75 6e 20   ┆extrecfun endrecfun startkeyfun ┆
0x08a0…08c0 65 6e 64 6b 65 79 66 75 6e 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c1 c1 c1 c1 1c 1b 1a 18 6d   ┆endkeyfun) (byte-code "        m┆
0x08c0…08e0 3f 85 75 00 60 89 12 88 c1 89 13 88 c4 c8 8d 89 14 88 0b c1 89 13 88 86 3a 00 0d 83 2d 00 c9 0d   ┆? u `                   :   -   ┆
0x08e0…0900 21 82 3a 00 0e 06 85 3a 00 c9 0e 06 21 88 c7 89 13 88 0c 85 62 00 0c 3a 85 51 00 ca 0c 40 0a 5c   ┆! :    :    !       b  : Q   @ \┆
0x0900…0920 22 85 51 00 ca 0c 41 60 5c 22 83 5a 00 0c 0c 42 82 5e 00 0c 0a 60 45 08 42 89 10 88 0b 3f 85 71   ┆" Q   A`\" Z   B ^   `E B    ? q┆
0x0920…0940 00 0e 06 85 71 00 c9 0e 06 21 88 82 08 00 88 08 2c 87 22 20 5b 73 6f 72 74 2d 6c 69 73 74 73 20   ┆    q    !      , " [sort-lists ┆
0x0940…0960 6e 69 6c 20 73 74 61 72 74 2d 72 65 63 20 64 6f 6e 65 20 6b 65 79 20 65 6e 64 72 65 63 66 75 6e   ┆nil start-rec done key endrecfun┆
0x0960…0980 20 6e 65 78 74 72 65 63 66 75 6e 20 74 20 28 62 79 74 65 2d 63 6f 64 65 20 22 08 85 07 00 c6 08   ┆ nextrecfun t (byte-code "      ┆
0x0980…09a0 21 86 29 00 60 19 c6 0a 86 16 00 0b c5 89 14 88 21 88 c7 c8 21 83 24 00 09 60 42 82 28 00 c9 09   ┆! ) `           !   ! $  `B (   ┆
0x09a0…09c0 60 5c 22 29 87 22 20 5b 73 74 61 72 74 6b 65 79 66 75 6e 20 73 74 61 72 74 20 65 6e 64 6b 65 79   ┆`\") " [startkeyfun start endkey┆
0x09c0…09e0 66 75 6e 20 65 6e 64 72 65 63 66 75 6e 20 64 6f 6e 65 20 74 20 66 75 6e 63 61 6c 6c 20 66 62 6f   ┆fun endrecfun done t funcall fbo┆
0x09e0…0a00 75 6e 64 70 20 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6c 65 73 73 70 20 62 75 66 66   ┆undp buffer-substring-lessp buff┆
0x0a00…0a20 65 72 2d 73 75 62 73 74 72 69 6e 67 5d 20 36 29 20 66 75 6e 63 61 6c 6c 20 65 71 75 61 6c 5d 20   ┆er-substring] 6) funcall equal] ┆
0x0a20…0a40 38 29 29 0a 0a 28 64 65 66 75 6e 20 73 6f 72 74 2d 72 65 6f 72 64 65 72 2d 62 75 66 66 65 72 20   ┆8))  (defun sort-reorder-buffer ┆
0x0a40…0a60 28 73 6f 72 74 2d 6c 69 73 74 73 20 6f 6c 64 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c1 65 65   ┆(sort-lists old) (byte-code " ee┆
0x0a60…0a80 64 1c 1b 1a 18 0d 85 3b 00 64 62 88 c7 70 0a c8 0e 06 40 38 23 88 64 62 88 c7 70 c8 0d 40 38 c9   ┆d      ; db  p    @8# db  p  @8 ┆
0x0a80…0aa0 0d 40 38 23 88 c9 0e 06 40 38 12 0d 41 15 0e 06 41 89 16 06 88 82 08 00 88 64 62 88 c7 70 0a 0c   ┆ @8#    @8  A   A        db  p  ┆
0x0aa0…0ac0 23 88 ca 0b 0c 5c 22 2c 87 22 20 5b 69 6e 68 69 62 69 74 2d 71 75 69 74 20 74 20 6c 61 73 74 20   ┆#    \", " [inhibit-quit t last ┆
0x0ac0…0ae0 6d 69 6e 20 6d 61 78 20 73 6f 72 74 2d 6c 69 73 74 73 20 6f 6c 64 20 69 6e 73 65 72 74 2d 62 75   ┆min max sort-lists old insert-bu┆
0x0ae0…0b00 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 31 20 32 20 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e   ┆ffer-substring 1 2 delete-region┆
0x0b00…0b20 5d 20 37 29 29 0a 0a 28 64 65 66 75 6e 20 73 6f 72 74 2d 6c 69 6e 65 73 20 28 72 65 76 65 72 73   ┆] 7))  (defun sort-lines (revers┆
0x0b20…0b40 65 20 62 65 67 20 65 6e 64 29 20 22 5c 0a 53 6f 72 74 20 6c 69 6e 65 73 20 69 6e 20 72 65 67 69   ┆e beg end) "\ Sort lines in regi┆
0x0b40…0b60 6f 6e 20 61 6c 70 68 61 62 65 74 69 63 61 6c 6c 79 3b 20 61 72 67 75 6d 65 6e 74 20 6d 65 61 6e   ┆on alphabetically; argument mean┆
0x0b60…0b80 73 20 64 65 73 63 65 6e 64 69 6e 67 20 6f 72 64 65 72 2e 0a 43 61 6c 6c 65 64 20 66 72 6f 6d 20   ┆s descending order. Called from ┆
0x0b80…0ba0 61 20 70 72 6f 67 72 61 6d 2c 20 74 68 65 72 65 20 61 72 65 20 74 68 72 65 65 20 61 72 67 75 6d   ┆a program, there are three argum┆
0x0ba0…0bc0 65 6e 74 73 3a 0a 52 45 56 45 52 53 45 20 28 6e 6f 6e 2d 6e 69 6c 20 6d 65 61 6e 73 20 72 65 76   ┆ents: REVERSE (non-nil means rev┆
0x0bc0…0be0 65 72 73 65 20 6f 72 64 65 72 29 2c 20 42 45 47 20 61 6e 64 20 45 4e 44 20 28 72 65 67 69 6f 6e   ┆erse order), BEG and END (region┆
0x0be0…0c00 20 74 6f 20 73 6f 72 74 29 2e 22 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 0a 72 22 29 20   ┆ to sort)." (interactive "P r") ┆
0x0c00…0c20 28 62 79 74 65 2d 63 6f 64 65 20 22 c3 88 8c c4 08 09 5c 22 88 65 62 88 c5 0a c6 c7 23 29 87 22   ┆(byte-code "      \" eb     #) "┆
0x0c20…0c40 20 5b 62 65 67 20 65 6e 64 20 72 65 76 65 72 73 65 20 6e 69 6c 20 6e 61 72 72 6f 77 2d 74 6f 2d   ┆ [beg end reverse nil narrow-to-┆
0x0c40…0c60 72 65 67 69 6f 6e 20 73 6f 72 74 2d 73 75 62 72 20 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 65 6e   ┆region sort-subr forward-line en┆
0x0c60…0c80 64 2d 6f 66 2d 6c 69 6e 65 5d 20 35 29 29 0a 0a 28 64 65 66 75 6e 20 73 6f 72 74 2d 70 61 72 61   ┆d-of-line] 5))  (defun sort-para┆
0x0c80…0ca0 67 72 61 70 68 73 20 28 72 65 76 65 72 73 65 20 62 65 67 20 65 6e 64 29 20 22 5c 0a 53 6f 72 74   ┆graphs (reverse beg end) "\ Sort┆
0x0ca0…0cc0 20 70 61 72 61 67 72 61 70 68 73 20 69 6e 20 72 65 67 69 6f 6e 20 61 6c 70 68 61 62 65 74 69 63   ┆ paragraphs in region alphabetic┆
0x0cc0…0ce0 61 6c 6c 79 3b 20 61 72 67 75 6d 65 6e 74 20 6d 65 61 6e 73 20 64 65 73 63 65 6e 64 69 6e 67 20   ┆ally; argument means descending ┆
0x0ce0…0d00 6f 72 64 65 72 2e 0a 43 61 6c 6c 65 64 20 66 72 6f 6d 20 61 20 70 72 6f 67 72 61 6d 2c 20 74 68   ┆order. Called from a program, th┆
0x0d00…0d20 65 72 65 20 61 72 65 20 74 68 72 65 65 20 61 72 67 75 6d 65 6e 74 73 3a 0a 52 45 56 45 52 53 45   ┆ere are three arguments: REVERSE┆
0x0d20…0d40 20 28 6e 6f 6e 2d 6e 69 6c 20 6d 65 61 6e 73 20 72 65 76 65 72 73 65 20 6f 72 64 65 72 29 2c 20   ┆ (non-nil means reverse order), ┆
0x0d40…0d60 42 45 47 20 61 6e 64 20 45 4e 44 20 28 72 65 67 69 6f 6e 20 74 6f 20 73 6f 72 74 29 2e 22 20 28   ┆BEG and END (region to sort)." (┆
0x0d60…0d80 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 0a 72 22 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c3   ┆interactive "P r") (byte-code " ┆
0x0d80…0da0 88 8c c4 08 09 5c 22 88 65 62 88 c5 0a c6 c7 23 29 87 22 20 5b 62 65 67 20 65 6e 64 20 72 65 76   ┆     \" eb     #) " [beg end rev┆
0x0da0…0dc0 65 72 73 65 20 6e 69 6c 20 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 73 6f 72 74 2d 73   ┆erse nil narrow-to-region sort-s┆
0x0dc0…0de0 75 62 72 20 28 6c 61 6d 62 64 61 20 6e 69 6c 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c0 c1 21 87   ┆ubr (lambda nil (byte-code "  ! ┆
0x0de0…0e00 22 20 5b 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 0a 20 09 0c 22 5d 20 32 29   ┆" [skip-chars-forward "    "] 2)┆
0x0e00…0e20 29 20 66 6f 72 77 61 72 64 2d 70 61 72 61 67 72 61 70 68 5d 20 35 29 29 0a 0a 28 64 65 66 75 6e   ┆) forward-paragraph] 5))  (defun┆
0x0e20…0e40 20 73 6f 72 74 2d 70 61 67 65 73 20 28 72 65 76 65 72 73 65 20 62 65 67 20 65 6e 64 29 20 22 5c   ┆ sort-pages (reverse beg end) "\┆
0x0e40…0e60 0a 53 6f 72 74 20 70 61 67 65 73 20 69 6e 20 72 65 67 69 6f 6e 20 61 6c 70 68 61 62 65 74 69 63   ┆ Sort pages in region alphabetic┆
0x0e60…0e80 61 6c 6c 79 3b 20 61 72 67 75 6d 65 6e 74 20 6d 65 61 6e 73 20 64 65 73 63 65 6e 64 69 6e 67 20   ┆ally; argument means descending ┆
0x0e80…0ea0 6f 72 64 65 72 2e 0a 43 61 6c 6c 65 64 20 66 72 6f 6d 20 61 20 70 72 6f 67 72 61 6d 2c 20 74 68   ┆order. Called from a program, th┆
0x0ea0…0ec0 65 72 65 20 61 72 65 20 74 68 72 65 65 20 61 72 67 75 6d 65 6e 74 73 3a 0a 52 45 56 45 52 53 45   ┆ere are three arguments: REVERSE┆
0x0ec0…0ee0 20 28 6e 6f 6e 2d 6e 69 6c 20 6d 65 61 6e 73 20 72 65 76 65 72 73 65 20 6f 72 64 65 72 29 2c 20   ┆ (non-nil means reverse order), ┆
0x0ee0…0f00 42 45 47 20 61 6e 64 20 45 4e 44 20 28 72 65 67 69 6f 6e 20 74 6f 20 73 6f 72 74 29 2e 22 20 28   ┆BEG and END (region to sort)." (┆
0x0f00…0f20 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 0a 72 22 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c3   ┆interactive "P r") (byte-code " ┆
0x0f20…0f40 88 8c c4 08 09 5c 22 88 65 62 88 c5 0a c6 c7 23 29 87 22 20 5b 62 65 67 20 65 6e 64 20 72 65 76   ┆     \" eb     #) " [beg end rev┆
0x0f40…0f60 65 72 73 65 20 6e 69 6c 20 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 73 6f 72 74 2d 73   ┆erse nil narrow-to-region sort-s┆
0x0f60…0f80 75 62 72 20 28 6c 61 6d 62 64 61 20 6e 69 6c 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c0 c1 21 87   ┆ubr (lambda nil (byte-code "  ! ┆
0x0f80…0fa0 22 20 5b 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 0a 22 5d 20 32 29 29 20 66   ┆" [skip-chars-forward " "] 2)) f┆
0x0fa0…0fc0 6f 72 77 61 72 64 2d 70 61 67 65 5d 20 35 29 29 0a 0a 28 64 65 66 76 61 72 20 73 6f 72 74 2d 66   ┆orward-page] 5))  (defvar sort-f┆
0x0fc0…0fe0 69 65 6c 64 73 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 6e 69 6c 29 0a 0a 28 69 66 20 73 6f 72   ┆ields-syntax-table nil)  (if sor┆
0x0fe0…1000 74 2d 66 69 65 6c 64 73 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 6e 69 6c 20 28 6c 65 74 20 28   ┆t-fields-syntax-table nil (let (┆
0x1000…1020 28 74 61 62 6c 65 20 28 6d 61 6b 65 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 29 29 20 28 69 20 30   ┆(table (make-syntax-table)) (i 0┆
0x1020…1040 29 29 20 28 77 68 69 6c 65 20 28 3c 20 69 20 32 35 36 29 20 28 6d 6f 64 69 66 79 2d 73 79 6e 74   ┆)) (while (< i 256) (modify-synt┆
0x1040…1060 61 78 2d 65 6e 74 72 79 20 69 20 22 77 22 20 74 61 62 6c 65 29 20 28 73 65 74 71 20 69 20 28 31   ┆ax-entry i "w" table) (setq i (1┆
0x1060…1080 2b 20 69 29 29 29 20 28 6d 6f 64 69 66 79 2d 73 79 6e 74 61 78 2d 65 6e 74 72 79 20 33 32 20 22   ┆+ i))) (modify-syntax-entry 32 "┆
0x1080…10a0 20 22 20 74 61 62 6c 65 29 20 28 6d 6f 64 69 66 79 2d 73 79 6e 74 61 78 2d 65 6e 74 72 79 20 39   ┆ " table) (modify-syntax-entry 9┆
0x10a0…10c0 20 22 20 22 20 74 61 62 6c 65 29 20 28 6d 6f 64 69 66 79 2d 73 79 6e 74 61 78 2d 65 6e 74 72 79   ┆ " " table) (modify-syntax-entry┆
0x10c0…10e0 20 31 30 20 22 20 22 20 74 61 62 6c 65 29 20 28 73 65 74 71 20 73 6f 72 74 2d 66 69 65 6c 64 73   ┆ 10 " " table) (setq sort-fields┆
0x10e0…1100 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 74 61 62 6c 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 73   ┆-syntax-table table)))  (defun s┆
0x1100…1120 6f 72 74 2d 6e 75 6d 65 72 69 63 2d 66 69 65 6c 64 73 20 28 66 69 65 6c 64 20 62 65 67 20 65 6e   ┆ort-numeric-fields (field beg en┆
0x1120…1140 64 29 20 22 5c 0a 53 6f 72 74 20 6c 69 6e 65 73 20 69 6e 20 72 65 67 69 6f 6e 20 6e 75 6d 65 72   ┆d) "\ Sort lines in region numer┆
0x1140…1160 69 63 61 6c 6c 79 20 62 79 20 74 68 65 20 41 52 47 74 68 20 66 69 65 6c 64 20 6f 66 20 65 61 63   ┆ically by the ARGth field of eac┆
0x1160…1180 68 20 6c 69 6e 65 2e 0a 46 69 65 6c 64 73 20 61 72 65 20 73 65 70 61 72 61 74 65 64 20 62 79 20   ┆h line. Fields are separated by ┆
0x1180…11a0 77 68 69 74 65 73 70 61 63 65 20 61 6e 64 20 6e 75 6d 62 65 72 65 64 20 66 72 6f 6d 20 31 20 75   ┆whitespace and numbered from 1 u┆
0x11a0…11c0 70 2e 0a 53 70 65 63 69 66 69 65 64 20 66 69 65 6c 64 20 6d 75 73 74 20 63 6f 6e 74 61 69 6e 20   ┆p. Specified field must contain ┆
0x11c0…11e0 61 20 6e 75 6d 62 65 72 20 69 6e 20 65 61 63 68 20 6c 69 6e 65 20 6f 66 20 74 68 65 20 72 65 67   ┆a number in each line of the reg┆
0x11e0…1200 69 6f 6e 2e 0a 57 69 74 68 20 61 20 6e 65 67 61 74 69 76 65 20 61 72 67 2c 20 73 6f 72 74 73 20   ┆ion. With a negative arg, sorts ┆
0x1200…1220 62 79 20 74 68 65 20 2d 41 52 47 27 74 68 20 66 69 65 6c 64 2c 20 69 6e 20 72 65 76 65 72 73 65   ┆by the -ARG'th field, in reverse┆
0x1220…1240 20 6f 72 64 65 72 2e 0a 43 61 6c 6c 65 64 20 66 72 6f 6d 20 61 20 70 72 6f 67 72 61 6d 2c 20 74   ┆ order. Called from a program, t┆
0x1240…1260 68 65 72 65 20 61 72 65 20 74 68 72 65 65 20 61 72 67 75 6d 65 6e 74 73 3a 0a 46 49 45 4c 44 2c   ┆here are three arguments: FIELD,┆
0x1260…1280 20 42 45 47 20 61 6e 64 20 45 4e 44 2e 20 20 42 45 47 20 61 6e 64 20 45 4e 44 20 73 70 65 63 69   ┆ BEG and END.  BEG and END speci┆
0x1280…12a0 66 79 20 72 65 67 69 6f 6e 20 74 6f 20 73 6f 72 74 2e 22 20 28 69 6e 74 65 72 61 63 74 69 76 65   ┆fy region to sort." (interactive┆
0x12a0…12c0 20 22 70 0a 72 22 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c3 88 c4 08 09 0a c5 c3 25 87 22 20   ┆ "p r") (byte-code "        % " ┆
0x12c0…12e0 5b 66 69 65 6c 64 20 62 65 67 20 65 6e 64 20 6e 69 6c 20 73 6f 72 74 2d 66 69 65 6c 64 73 2d 31   ┆[field beg end nil sort-fields-1┆
0x12e0…1300 20 28 6c 61 6d 62 64 61 20 6e 69 6c 20 28 62 79 74 65 2d 63 6f 64 65 20 22 c1 08 53 21 88 c2 c3   ┆ (lambda nil (byte-code "  S!   ┆
0x1300…1320 60 8a c4 c5 21 88 60 29 5c 22 21 87 22 20 5b 66 69 65 6c 64 20 73 6f 72 74 2d 73 6b 69 70 2d 66   ┆`   ! `)\"! " [field sort-skip-f┆
0x1320…1340 69 65 6c 64 73 20 73 74 72 69 6e 67 2d 74 6f 2d 69 6e 74 20 62 75 66 66 65 72 2d 73 75 62 73 74   ┆ields string-to-int buffer-subst┆
0x1340…1360 72 69 6e 67 20 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 5b 30 2d 39 5d 22 5d   ┆ring skip-chars-forward "[0-9]"]┆
0x1360…1380 20 36 29 29 5d 20 36 29 29 0a 0a 28 64 65 66 75 6e 20 73 6f 72 74 2d 66 69 65 6c 64 73 20 28 66   ┆ 6))] 6))  (defun sort-fields (f┆
0x1380…13a0 69 65 6c 64 20 62 65 67 20 65 6e 64 29 20 22 5c 0a 53 6f 72 74 20 6c 69 6e 65 73 20 69 6e 20 72   ┆ield beg end) "\ Sort lines in r┆
0x13a0…13c0 65 67 69 6f 6e 20 6c 65 78 69 63 6f 67 72 61 70 68 69 63 61 6c 6c 79 20 62 79 20 74 68 65 20 41   ┆egion lexicographically by the A┆
0x13c0…13e0 52 47 74 68 20 66 69 65 6c 64 20 6f 66 20 65 61 63 68 20 6c 69 6e 65 2e 0a 46 69 65 6c 64 73 20   ┆RGth field of each line. Fields ┆
0x13e0…1400 61 72 65 20 73 65 70 61 72 61 74 65 64 20 62 79 20 77 68 69 74 65 73 70 61 63 65 20 61 6e 64 20   ┆are separated by whitespace and ┆
0x1400…1420 6e 75 6d 62 65 72 65 64 20 66 72 6f 6d 20 31 20 75 70 2e 0a 57 69 74 68 20 61 20 6e 65 67 61 74   ┆numbered from 1 up. With a negat┆
0x1420…1440 69 76 65 20 61 72 67 2c 20 73 6f 72 74 73 20 62 79 20 74 68 65 20 2d 41 52 47 27 74 68 20 66 69   ┆ive arg, sorts by the -ARG'th fi┆
0x1440…1460 65 6c 64 2c 20 69 6e 20 72 65 76 65 72 73 65 20 6f 72 64 65 72 2e 0a 43 61 6c 6c 65 64 20 66 72   ┆eld, in reverse order. Called fr┆
0x1460…1480 6f 6d 20 61 20 70 72 6f 67 72 61 6d 2c 20 74 68 65 72 65 20 61 72 65 20 74 68 72 65 65 20 61 72   ┆om a program, there are three ar┆
0x1480…14a0 67 75 6d 65 6e 74 73 3a 0a 46 49 45 4c 44 2c 20 42 45 47 20 61 6e 64 20 45 4e 44 2e 20 20 42 45   ┆guments: FIELD, BEG and END.  BE┆
0x14a0…14c0 47 20 61 6e 64 20 45 4e 44 20 73 70 65 63 69 66 79 20 72 65 67 69 6f 6e 20 74 6f 20 73 6f 72 74   ┆G and END specify region to sort┆
0x14c0…14e0 2e 22 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 0a 72 22 29 20 28 62 79 74 65 2d 63 6f 64   ┆." (interactive "p r") (byte-cod┆
0x14e0…1500 65 20 22 c3 88 c4 08 09 0a c5 c6 25 87 22 20 5b 66 69 65 6c 64 20 62 65 67 20 65 6e 64 20 6e 69   ┆e "        % " [field beg end ni┆
0x1500…1520 6c 20 73 6f 72 74 2d 66 69 65 6c 64 73 2d 31 20 28 6c 61 6d 62 64 61 20 6e 69 6c 20 28 62 79 74   ┆l sort-fields-1 (lambda nil (byt┆
0x1520…1540 65 2d 63 6f 64 65 20 22 c2 08 53 21 88 c1 87 22 20 5b 66 69 65 6c 64 20 6e 69 6c 20 73 6f 72 74   ┆e-code "  S!   " [field nil sort┆
0x1540…1560 2d 73 6b 69 70 2d 66 69 65 6c 64 73 5d 20 32 29 29 20 28 6c 61 6d 62 64 61 20 6e 69 6c 20 28 62   ┆-skip-fields] 2)) (lambda nil (b┆
0x1560…1580 79 74 65 2d 63 6f 64 65 20 22 c0 c1 21 87 22 20 5b 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77   ┆yte-code "  ! " [skip-chars-forw┆
0x1580…15a0 61 72 64 20 22 5e 20 09 0a 22 5d 20 32 29 29 5d 20 36 29 29 0a 0a 28 64 65 66 75 6e 20 73 6f 72   ┆ard "^   "] 2))] 6))  (defun sor┆
0x15a0…15c0 74 2d 66 69 65 6c 64 73 2d 31 20 28 66 69 65 6c 64 20 62 65 67 20 65 6e 64 20 73 74 61 72 74 6b   ┆t-fields-1 (field beg end startk┆
0x15c0…15e0 65 79 66 75 6e 20 65 6e 64 6b 65 79 66 75 6e 29 20 28 62 79 74 65 2d 63 6f 64 65 20 22 09 c8 57   ┆eyfun endkeyfun) (byte-code "  W┆
0x15e0…1600 c9 20 1a 18 ca cb 09 09 5b 23 89 11 88 cc 8e 8c cd 0b 0c 5c 22 88 65 62 88 ce 0d 21 88 cf 08 d0   ┆        [#         \" eb   !    ┆
0x1600…1620 d1 0e 06 0e 07 25 29 29 2a 87 22 20 5b 72 65 76 65 72 73 65 20 66 69 65 6c 64 20 74 62 6c 20 62   ┆     %))* " [reverse field tbl b┆
0x1620…1640 65 67 20 65 6e 64 20 73 6f 72 74 2d 66 69 65 6c 64 73 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 20   ┆eg end sort-fields-syntax-table ┆
0x1640…1660 73 74 61 72 74 6b 65 79 66 75 6e 20 65 6e 64 6b 65 79 66 75 6e 20 30 20 73 79 6e 74 61 78 2d 74   ┆startkeyfun endkeyfun 0 syntax-t┆
0x1660…1680 61 62 6c 65 20 6d 61 78 20 31 20 28 28 62 79 74 65 2d 63 6f 64 65 20 22 c1 08 21 87 22 20 5b 74   ┆able max 1 ((byte-code "  ! " [t┆
0x1680…16a0 62 6c 20 73 65 74 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 5d 20 32 29 29 20 6e 61 72 72 6f 77 2d   ┆bl set-syntax-table] 2)) narrow-┆
0x16a0…16c0 74 6f 2d 72 65 67 69 6f 6e 20 73 65 74 2d 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 73 6f 72 74 2d   ┆to-region set-syntax-table sort-┆
0x16c0…16e0 73 75 62 72 20 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 65 6e 64 2d 6f 66 2d 6c 69 6e 65 5d 20 31   ┆subr forward-line end-of-line] 1┆
0x16e0…1700 30 29 29 0a 0a 28 64 65 66 75 6e 20 73 6f 72 74 2d 73 6b 69 70 2d 66 69 65 6c 64 73 20 28 6e 29   ┆0))  (defun sort-skip-fields (n)┆
0x1700…1720 20 28 62 79 74 65 2d 63 6f 64 65 20 22 8a c2 c3 21 88 60 29 18 c4 09 21 88 60 08 56 85 1e 00 c5   ┆ (byte-code "   ! `)   ! ` V    ┆
0x1720…1740 c6 c7 8a c8 20 88 60 29 08 5c 22 5c 22 88 c9 ca 21 29 87 22 20 5b 65 6f 6c 20 6e 20 65 6e 64 2d   ┆      `) \"\"   !) " [eol n end-┆
0x1740…1760 6f 66 2d 6c 69 6e 65 20 31 20 66 6f 72 77 61 72 64 2d 77 6f 72 64 20 65 72 72 6f 72 20 22 4c 69   ┆of-line 1 forward-word error "Li┆
0x1760…1780 6e 65 20 68 61 73 20 74 6f 6f 20 66 65 77 20 66 69 65 6c 64 73 3a 20 25 73 22 20 62 75 66 66 65   ┆ne has too few fields: %s" buffe┆
0x1780…17a0 72 2d 73 75 62 73 74 72 69 6e 67 20 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 73 6b   ┆r-substring beginning-of-line sk┆
0x17a0…17c0 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 20 09 22 5d 20 38 29 29 0a 0a 28 64 65 66   ┆ip-chars-forward "  "] 8))  (def┆
0x17c0…17e0 75 6e 20 73 6f 72 74 2d 72 65 67 65 78 70 2d 66 69 65 6c 64 73 20 28 72 65 76 65 72 73 65 20 72   ┆un sort-regexp-fields (reverse r┆
0x17e0…1800 65 63 6f 72 64 2d 72 65 67 65 78 70 20 6b 65 79 2d 72 65 67 65 78 70 20 62 65 67 20 65 6e 64 29   ┆ecord-regexp key-regexp beg end)┆
0x1800…1820 20 22 5c 0a 53 6f 72 74 20 74 68 65 20 72 65 67 69 6f 6e 20 6c 65 78 69 63 6f 67 72 61 70 68 69   ┆ "\ Sort the region lexicographi┆
0x1820…1840 63 61 6c 6c 79 20 61 73 20 73 70 65 63 69 66 65 64 20 62 79 20 52 45 43 4f 52 44 2d 52 45 47 45   ┆cally as specifed by RECORD-REGE┆
0x1840…1860 58 50 20 61 6e 64 20 4b 45 59 2e 0a 52 45 43 4f 52 44 2d 52 45 47 45 58 50 20 73 70 65 63 69 66   ┆XP and KEY. RECORD-REGEXP specif┆
0x1860…1880 69 65 73 20 74 68 65 20 74 65 78 74 75 61 6c 20 75 6e 69 74 73 20 77 68 69 63 68 20 73 68 6f 75   ┆ies the textual units which shou┆
0x1880…18a0 6c 64 20 62 65 20 73 6f 72 74 65 64 2e 0a 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 6f 20   ┆ld be sorted.   For example, to ┆
0x18a0…18c0 73 6f 72 74 20 6c 69 6e 65 73 20 52 45 43 4f 52 44 2d 52 45 47 45 58 50 20 77 6f 75 6c 64 20 62   ┆sort lines RECORD-REGEXP would b┆
0x18c0…18e0 65 20 5c 22 5e 2e 2a 24 5c 22 0a 4b 45 59 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 70 61 72   ┆e \"^.*$\" KEY specifies the par┆
0x18e0…1900 74 20 6f 66 20 65 61 63 68 20 72 65 63 6f 72 64 20 28 69 65 20 65 61 63 68 20 6d 61 74 63 68 20   ┆t of each record (ie each match ┆
0x1900…1920 66 6f 72 20 52 45 43 4f 52 44 2d 52 45 47 45 58 50 29 0a 20 20 69 73 20 74 6f 20 62 65 20 75 73   ┆for RECORD-REGEXP)   is to be us┆
[…truncated at 200 lines…]