summaryrefslogtreecommitdiff
path: root/support/lsedit/review/buffer_menu.tpu
blob: 5f4aac97a453f099fbe3a9a3193f518a4399a494 (plain)
ofshex dumpascii
0000 03 00 21 2b 2b 00 39 00 21 20 20 4e 6f 74 65 3a 20 75 73 65 20 6f 66 20 74 68 69 73 20 70 72 6f ..!++.9.!..Note:.use.of.this.pro
0020 63 65 64 75 72 65 20 61 73 73 75 6d 65 73 20 74 68 61 74 20 74 68 65 20 70 72 6f 63 65 64 75 72 cedure.assumes.that.the.procedur
0040 65 00 39 00 21 20 20 6c 73 69 5f 64 65 74 65 72 6d 69 6e 65 5f 6c 69 6e 65 5f 6e 75 6d 62 65 72 e.9.!..lsi_determine_line_number
0060 20 69 73 20 70 72 65 73 65 6e 74 2e 20 20 53 6f 75 72 63 65 20 66 6f 72 20 74 68 61 74 00 27 00 .is.present...Source.for.that.'.
0080 21 20 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 66 6f 75 6e 64 20 69 6e 20 57 48 41 54 5f 4c 49 !..procedure.is.found.in.WHAT_LI
00a0 4e 45 2e 54 50 55 2e 00 03 00 21 2d 2d 00 19 00 50 52 4f 43 45 44 55 52 45 20 6c 73 69 5f 62 75 NE.TPU....!--...PROCEDURE.lsi_bu
00c0 66 66 65 72 5f 6d 65 6e 75 00 01 00 20 00 1c 00 6c 73 69 5f 62 75 66 66 65 72 5f 6d 65 6e 75 5f ffer_menu.......lsi_buffer_menu_
00e0 64 69 73 70 61 74 63 68 20 28 30 29 1e 00 45 4e 44 50 52 4f 43 45 44 55 52 45 20 21 20 6c 73 69 dispatch.(0)..ENDPROCEDURE.!.lsi
0100 5f 62 75 66 66 65 72 5f 6d 65 6e 75 01 00 20 00 30 00 50 52 4f 43 45 44 55 52 45 20 6c 73 69 5f _buffer_menu....0.PROCEDURE.lsi_
0120 62 75 66 66 65 72 5f 6d 65 6e 75 5f 64 69 73 70 61 74 63 68 20 28 73 79 73 74 65 6d 5f 66 6c 61 buffer_menu_dispatch.(system_fla
0140 67 29 01 00 20 00 0f 00 4c 4f 43 41 4c 20 6d 65 6e 75 5f 62 75 66 3b 00 00 00 08 00 4f 4e 5f 45 g)......LOCAL.menu_buf;.....ON_E
0160 52 52 4f 52 2a 00 20 20 20 50 4f 53 49 54 49 4f 4e 20 28 6c 73 69 5f 62 65 66 6f 72 65 5f 62 75 RROR*....POSITION.(lsi_before_bu
0180 66 66 65 72 5f 6d 65 6e 75 5f 73 70 6f 74 29 3b 34 00 20 20 20 4d 41 50 20 28 6c 73 69 5f 62 65 ffer_menu_spot);4....MAP.(lsi_be
01a0 66 6f 72 65 5f 62 75 66 66 65 72 5f 6d 65 6e 75 5f 77 64 77 2c 20 43 55 52 52 45 4e 54 5f 42 55 fore_buffer_menu_wdw,.CURRENT_BU
01c0 46 46 45 52 29 3b 34 00 20 20 20 6c 73 65 24 73 65 74 5f 73 74 61 74 75 73 5f 6c 69 6e 65 20 28 FFER);4....lse$set_status_line.(
01e0 6c 73 69 5f 62 65 66 6f 72 65 5f 62 75 66 66 65 72 5f 6d 65 6e 75 5f 77 64 77 29 3b 1b 00 20 20 lsi_before_buffer_menu_wdw);....
0200 20 53 45 54 20 28 53 43 52 45 45 4e 5f 55 50 44 41 54 45 2c 20 4f 4e 29 3b 00 27 00 20 20 20 55 .SET.(SCREEN_UPDATE,.ON);.'....U
0220 50 44 41 54 45 20 28 6c 73 69 5f 62 65 66 6f 72 65 5f 62 75 66 66 65 72 5f 6d 65 6e 75 5f 77 64 PDATE.(lsi_before_buffer_menu_wd
0240 77 29 3b 00 08 00 20 20 20 41 42 4f 52 54 0b 00 45 4e 44 4f 4e 5f 45 52 52 4f 52 00 00 00 2b 00 w);......ABORT..ENDON_ERROR...+.
0260 6c 73 69 5f 62 65 66 6f 72 65 5f 62 75 66 66 65 72 5f 6d 65 6e 75 5f 73 70 6f 74 20 3a 3d 20 4d lsi_before_buffer_menu_spot.:=.M
0280 41 52 4b 20 28 4e 4f 4e 45 29 3b 00 2d 00 6c 73 69 5f 62 65 66 6f 72 65 5f 62 75 66 66 65 72 5f ARK.(NONE);.-.lsi_before_buffer_
02a0 6d 65 6e 75 5f 77 64 77 20 3a 3d 20 43 55 52 52 45 4e 54 5f 57 49 4e 44 4f 57 3b 00 03 00 21 2b menu_wdw.:=.CURRENT_WINDOW;...!+
02c0 2b 00 1a 00 21 20 20 43 72 65 61 74 65 20 74 68 65 20 6d 65 6e 75 20 62 75 66 66 65 72 2e 03 00 +...!..Create.the.menu.buffer...
02e0 21 2d 2d 00 2b 00 49 46 20 4e 4f 54 20 6c 73 69 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 5f 6d !--.+.IF.NOT.lsi_create_buffer_m
0300 65 6e 75 20 28 73 79 73 74 65 6d 5f 66 6c 61 67 29 00 04 00 54 48 45 4e 0f 00 20 20 20 45 58 45 enu.(system_flag)...THEN.....EXE
0320 43 55 54 45 20 28 22 22 29 00 06 00 45 4e 44 49 46 3b 03 00 21 2b 2b 00 2a 00 21 20 20 53 65 74 CUTE.("")...ENDIF;..!++.*.!..Set
0340 20 75 70 20 74 68 65 20 6b 65 79 20 6d 61 70 20 66 6f 72 20 74 68 65 20 62 75 66 66 65 72 20 6d .up.the.key.map.for.the.buffer.m
0360 65 6e 75 2e 03 00 21 2d 2d 00 3c 00 53 45 54 20 28 4b 45 59 5f 4d 41 50 5f 4c 49 53 54 2c 20 27 enu...!--.<.SET.(KEY_MAP_LIST,.'
0380 6c 73 69 5f 62 75 66 66 65 72 5f 6b 65 79 5f 6d 61 70 5f 6c 69 73 74 27 2c 20 6c 73 69 5f 6d 65 lsi_buffer_key_map_list',.lsi_me
03a0 6e 75 5f 62 75 66 29 3b 2e 00 53 45 54 20 28 55 4e 44 45 46 49 4e 45 44 5f 4b 45 59 2c 20 27 6c nu_buf);..SET.(UNDEFINED_KEY,.'l
03c0 73 69 5f 62 75 66 66 65 72 5f 6b 65 79 5f 6d 61 70 5f 6c 69 73 74 27 2c 3b 00 20 20 20 27 4d 45 si_buffer_key_map_list',;....'ME
03e0 53 53 41 47 45 20 28 22 55 73 65 20 6f 6e 6c 79 20 55 50 2c 20 44 4f 57 4e 2c 20 53 45 4c 45 43 SSAGE.("Use.only.UP,.DOWN,.SELEC
0400 54 2c 20 52 45 4d 4f 56 45 2c 20 6f 72 20 44 4f 22 29 27 29 3b 00 32 00 53 45 54 20 28 53 45 4c T,.REMOVE,.or.DO")');.2.SET.(SEL
0420 46 5f 49 4e 53 45 52 54 2c 20 27 6c 73 69 5f 62 75 66 66 65 72 5f 6b 65 79 5f 6d 61 70 5f 6c 69 F_INSERT,.'lsi_buffer_key_map_li
0440 73 74 27 2c 20 4f 46 46 29 3b 03 00 21 2b 2b 00 14 00 21 20 20 44 69 73 70 6c 61 79 20 74 68 65 st',.OFF);..!++...!..Display.the
0460 20 6d 65 6e 75 2e 03 00 21 2d 2d 00 19 00 53 45 54 20 28 53 43 52 45 45 4e 5f 55 50 44 41 54 45 .menu...!--...SET.(SCREEN_UPDATE
0480 2c 20 4f 46 46 29 3b 00 35 00 4d 41 50 20 28 6c 73 69 5f 6d 65 6e 75 5f 68 65 61 64 65 72 5f 77 ,.OFF);.5.MAP.(lsi_menu_header_w
04a0 69 6e 64 6f 77 2c 20 6c 73 69 5f 6d 65 6e 75 5f 68 65 61 64 65 72 5f 62 75 66 66 65 72 29 3b 00 indow,.lsi_menu_header_buffer);.
04c0 24 00 4d 41 50 20 28 6c 73 69 5f 6d 65 6e 75 5f 77 69 6e 64 6f 77 2c 20 6c 73 69 5f 6d 65 6e 75 $.MAP.(lsi_menu_window,.lsi_menu
04e0 5f 62 75 66 29 3b 18 00 53 45 54 20 28 53 43 52 45 45 4e 5f 55 50 44 41 54 45 2c 20 4f 4e 29 3b _buf);..SET.(SCREEN_UPDATE,.ON);
0500 1b 00 50 4f 53 49 54 49 4f 4e 20 28 6c 73 69 5f 6d 65 6e 75 5f 77 69 6e 64 6f 77 29 3b 00 03 00 ..POSITION.(lsi_menu_window);...
0520 21 2b 2b 00 2e 00 21 20 20 55 70 64 61 74 65 20 74 68 65 20 77 69 6e 64 6f 77 20 61 6e 64 20 67 !++...!..Update.the.window.and.g
0540 65 74 20 61 6e 73 77 65 72 20 66 72 6f 6d 20 75 73 65 72 2e 03 00 21 2d 2d 00 1d 00 49 46 20 47 et.answer.from.user...!--...IF.G
0560 45 54 5f 49 4e 46 4f 20 28 53 43 52 45 45 4e 2c 20 27 56 54 32 30 30 27 29 00 04 00 54 48 45 4e ET_INFO.(SCREEN,.'VT200')...THEN
0580 2e 00 20 20 20 53 45 54 20 28 53 54 41 54 55 53 5f 4c 49 4e 45 2c 20 6c 73 69 5f 6d 65 6e 75 5f .....SET.(STATUS_LINE,.lsi_menu_
05a0 77 69 6e 64 6f 77 2c 20 52 45 56 45 52 53 45 2c 3c 00 20 20 20 20 20 20 27 4d 6f 76 65 20 74 68 window,.REVERSE,<.......'Move.th
05c0 65 20 63 75 72 73 6f 72 20 74 6f 20 64 65 73 69 72 65 64 20 6c 69 6e 65 20 61 6e 64 20 70 72 65 e.cursor.to.desired.line.and.pre
05e0 73 73 20 53 45 4c 45 43 54 2c 20 27 20 2b 1e 00 20 20 20 20 20 20 27 6f 72 20 70 72 65 73 73 20 ss.SELECT,.'.+........'or.press.
0600 44 4f 20 74 6f 20 65 73 63 61 70 65 27 29 04 00 45 4c 53 45 2e 00 20 20 20 53 45 54 20 28 53 54 DO.to.escape')..ELSE.....SET.(ST
0620 41 54 55 53 5f 4c 49 4e 45 2c 20 6c 73 69 5f 6d 65 6e 75 5f 77 69 6e 64 6f 77 2c 20 52 45 56 45 ATUS_LINE,.lsi_menu_window,.REVE
0640 52 53 45 2c 3c 00 20 20 20 20 20 20 27 4d 6f 76 65 20 74 68 65 20 63 75 72 73 6f 72 20 74 6f 20 RSE,<.......'Move.the.cursor.to.
0660 64 65 73 69 72 65 64 20 6c 69 6e 65 20 61 6e 64 20 70 72 65 73 73 20 52 45 54 55 52 4e 2c 20 27 desired.line.and.press.RETURN,.'
0680 20 2b 1f 00 20 20 20 20 20 20 27 6f 72 20 70 72 65 73 73 20 4b 50 30 20 74 6f 20 65 73 63 61 70 .+........'or.press.KP0.to.escap
06a0 65 27 29 00 06 00 45 4e 44 49 46 3b 19 00 55 50 44 41 54 45 20 28 6c 73 69 5f 6d 65 6e 75 5f 77 e')...ENDIF;..UPDATE.(lsi_menu_w
06c0 69 6e 64 6f 77 29 3b 00 1c 00 55 50 44 41 54 45 20 28 4c 53 45 24 4d 45 53 53 41 47 45 5f 57 49 indow);...UPDATE.(LSE$MESSAGE_WI
06e0 4e 44 4f 57 29 3b 24 00 53 45 54 20 28 4d 4f 44 49 46 49 41 42 4c 45 2c 20 6c 73 69 5f 6d 65 6e NDOW);$.SET.(MODIFIABLE,.lsi_men
0700 75 5f 62 75 66 2c 20 4f 46 46 29 3b 1e 00 45 4e 44 50 52 4f 43 45 44 55 52 45 20 21 20 6c 73 69 u_buf,.OFF);..ENDPROCEDURE.!.lsi
0720 5f 62 75 66 66 65 72 5f 6d 65 6e 75 03 00 21 0c 20 00 2e 00 50 52 4f 43 45 44 55 52 45 20 6c 73 _buffer_menu..!.....PROCEDURE.ls
0740 69 5f 63 72 65 61 74 65 5f 62 75 66 66 65 72 5f 6d 65 6e 75 20 28 73 79 73 74 65 6d 5f 66 6c 61 i_create_buffer_menu.(system_fla
0760 67 29 10 00 4c 4f 43 41 4c 20 74 68 69 73 5f 73 70 6f 74 2c 10 00 20 20 20 20 20 20 73 61 76 65 g)..LOCAL.this_spot,........save
0780 64 5f 62 75 66 2c 11 00 20 20 20 20 20 20 73 61 76 65 64 5f 6e 61 6d 65 2c 00 0f 00 20 20 20 20 d_buf,........saved_name,.......
07a0 20 20 63 75 72 72 5f 77 64 77 2c 00 13 00 20 20 20 20 20 20 63 75 72 72 5f 77 64 77 5f 74 6f 70 ..curr_wdw,.........curr_wdw_top
07c0 2c 00 16 00 20 20 20 20 20 20 63 75 72 72 5f 77 64 77 5f 62 6f 74 74 6f 6d 2c 16 00 20 20 20 20 ,.........curr_wdw_bottom,......
07e0 20 20 63 75 72 72 5f 77 64 77 5f 6c 65 6e 67 74 68 2c 12 00 20 20 20 20 20 20 6c 6f 6f 70 5f 62 ..curr_wdw_length,........loop_b
0800 75 66 66 65 72 2c 11 00 20 20 20 20 20 20 73 74 61 72 74 5f 6c 69 6e 65 2c 00 10 00 20 20 20 20 uffer,........start_line,.......
0820 20 20 6d 65 6e 75 5f 73 69 7a 65 2c 11 00 20 20 20 20 20 20 6c 69 6e 65 5f 63 6f 75 6e 74 2c 00 ..menu_size,........line_count,.
0840 17 00 20 20 20 20 20 20 6c 6f 6f 70 5f 62 75 66 66 65 72 5f 6e 61 6d 65 2c 00 14 00 20 20 20 20 ........loop_buffer_name,.......
0860 20 20 73 74 61 74 75 73 5f 73 74 72 69 6e 67 2c 13 00 20 20 20 20 20 20 63 75 72 72 65 6e 74 5f ..status_string,........current_
0880 66 6c 61 67 2c 00 13 00 20 20 20 20 20 20 6d 6f 64 69 66 69 65 64 5f 73 74 72 2c 00 15 00 20 20 flag,.........modified_str,.....
08a0 20 20 20 20 6d 6f 64 69 66 69 61 62 6c 65 5f 73 74 72 2c 00 15 00 20 20 20 20 20 20 72 65 61 64 ....modifiable_str,.........read
08c0 5f 77 72 69 74 65 5f 73 74 72 2c 00 11 00 20 20 20 20 20 20 66 6f 72 6d 61 74 5f 73 74 72 3b 00 _write_str,.........format_str;.
08e0 00 00 19 00 74 68 69 73 5f 73 70 6f 74 20 3a 3d 20 4d 41 52 4b 20 28 4e 4f 4e 45 29 3b 00 1c 00 ....this_spot.:=.MARK.(NONE);...
0900 73 61 76 65 64 5f 62 75 66 20 3a 3d 20 43 55 52 52 45 4e 54 5f 42 55 46 46 45 52 3b 2b 00 73 61 saved_buf.:=.CURRENT_BUFFER;+.sa
0920 76 65 64 5f 6e 61 6d 65 20 3a 3d 20 47 45 54 5f 49 4e 46 4f 20 28 73 61 76 65 64 5f 62 75 66 2c ved_name.:=.GET_INFO.(saved_buf,
0940 20 22 6e 61 6d 65 22 29 3b 00 03 00 21 2b 2b 00 35 00 21 20 20 43 72 65 61 74 65 20 6d 65 6e 75 ."name");...!++.5.!..Create.menu
0960 20 61 6e 64 20 6d 65 6e 75 20 68 65 61 64 65 72 20 62 75 66 66 65 72 73 2c 20 69 66 20 6e 65 63 .and.menu.header.buffers,.if.nec
0980 65 73 73 61 72 79 2e 00 03 00 21 2d 2d 00 30 00 49 46 20 47 45 54 5f 49 4e 46 4f 20 28 6c 73 69 essary....!--.0.IF.GET_INFO.(lsi
09a0 5f 6d 65 6e 75 5f 62 75 66 2c 20 22 54 59 50 45 22 29 20 3d 20 55 4e 53 50 45 43 49 46 49 45 44 _menu_buf,."TYPE").=.UNSPECIFIED
09c0 04 00 54 48 45 4e 35 00 20 20 20 6c 73 69 5f 6d 65 6e 75 5f 62 75 66 20 3a 3d 20 63 72 65 61 74 ..THEN5....lsi_menu_buf.:=.creat
09e0 65 5f 62 75 66 66 65 72 20 28 22 6c 73 69 5f 6d 65 6e 75 5f 62 75 66 66 65 72 22 29 3b 00 06 00 e_buffer.("lsi_menu_buffer");...
0a00 45 4e 44 49 46 3b 2b 00 53 45 54 20 28 45 4f 42 5f 54 45 58 54 2c 20 6c 73 69 5f 6d 65 6e 75 5f ENDIF;+.SET.(EOB_TEXT,.lsi_menu_
0a20 62 75 66 2c 20 22 20 20 2a 43 75 72 72 65 6e 74 22 29 3b 00 1d 00 53 45 54 20 28 4e 4f 5f 57 52 buf,."..*Current");...SET.(NO_WR
0a40 49 54 45 2c 20 6c 73 69 5f 6d 65 6e 75 5f 62 75 66 29 3b 00 1b 00 53 45 54 20 28 53 59 53 54 45 ITE,.lsi_menu_buf);...SET.(SYSTE
0a60 4d 2c 20 6c 73 69 5f 6d 65 6e 75 5f 62 75 66 29 3b 00 23 00 53 45 54 20 28 4d 4f 44 49 46 49 41 M,.lsi_menu_buf);.#.SET.(MODIFIA
0a80 42 4c 45 2c 20 6c 73 69 5f 6d 65 6e 75 5f 62 75 66 2c 20 4f 4e 29 3b 00 01 00 21 00 3a 00 49 46 BLE,.lsi_menu_buf,.ON);...!.:.IF
0aa0 20 47 45 54 5f 49 4e 46 4f 20 28 6c 73 69 5f 6d 65 6e 75 5f 68 65 61 64 65 72 5f 62 75 66 66 65 .GET_INFO.(lsi_menu_header_buffe
0ac0 72 2c 20 22 54 59 50 45 22 29 20 3d 20 55 4e 53 50 45 43 49 46 49 45 44 04 00 54 48 45 4e 46 00 r,."TYPE").=.UNSPECIFIED..THENF.
0ae0 20 20 20 6c 73 69 5f 6d 65 6e 75 5f 68 65 61 64 65 72 5f 62 75 66 66 65 72 20 3a 3d 20 63 72 65 ...lsi_menu_header_buffer.:=.cre
0b00 61 74 65 5f 62 75 66 66 65 72 20 28 22 6c 73 69 5f 6d 65 6e 75 5f 68 65 61 64 65 72 5f 62 75 66 ate_buffer.("lsi_menu_header_buf
0b20 66 65 72 22 29 3b 2e 00 20 20 20 53 45 54 20 28 45 4f 42 5f 54 45 58 54 2c 20 6c 73 69 5f 6d 65 fer");.....SET.(EOB_TEXT,.lsi_me
0b40 6e 75 5f 68 65 61 64 65 72 5f 62 75 66 66 65 72 2c 20 27 27 29 3b 2a 00 20 20 20 53 45 54 20 28 nu_header_buffer,.'');*....SET.(
0b60 4e 4f 5f 57 52 49 54 45 2c 20 6c 73 69 5f 6d 65 6e 75 5f 68 65 61 64 65 72 5f 62 75 66 66 65 72 NO_WRITE,.lsi_menu_header_buffer
0b80 29 3b 28 00 20 20 20 53 45 54 20 28 53 59 53 54 45 4d 2c 20 6c 73 69 5f 6d 65 6e 75 5f 68 65 61 );(....SET.(SYSTEM,.lsi_menu_hea
0ba0 64 65 72 5f 62 75 66 66 65 72 29 3b 30 00 20 20 20 53 45 54 20 28 4d 4f 44 49 46 49 41 42 4c 45 der_buffer);0....SET.(MODIFIABLE
0bc0 2c 20 6c 73 69 5f 6d 65 6e 75 5f 68 65 61 64 65 72 5f 62 75 66 66 65 72 2c 20 4f 4e 29 3b 06 00 ,.lsi_menu_header_buffer,.ON);..
0be0 20 20 20 21 2b 2b 29 00 20 20 20 21 20 20 43 72 65 61 74 65 20 74 68 65 20 68 65 61 64 65 72 20 ...!++)....!..Create.the.header.
0c00 61 6e 64 20 6d 65 6e 75 20 77 69 6e 64 6f 77 73 2e 00 06 00 20 20 20 21 2d 2d 1e 00 20 20 20 63 and.menu.windows.......!--.....c
0c20 75 72 72 5f 77 64 77 20 3a 3d 20 43 55 52 52 45 4e 54 5f 57 49 4e 44 4f 57 3b 36 00 20 20 20 63 urr_wdw.:=.CURRENT_WINDOW;6....c
0c40 75 72 72 5f 77 64 77 5f 74 6f 70 20 3a 3d 20 47 45 54 5f 49 4e 46 4f 20 28 63 75 72 72 5f 77 64 urr_wdw_top.:=.GET_INFO.(curr_wd
0c60 77 2c 20 22 76 69 73 69 62 6c 65 5f 74 6f 70 22 29 3b 3c 00 20 20 20 63 75 72 72 5f 77 64 77 5f w,."visible_top");<....curr_wdw_
0c80 62 6f 74 74 6f 6d 20 3a 3d 20 47 45 54 5f 49 4e 46 4f 20 28 63 75 72 72 5f 77 64 77 2c 20 22 76 bottom.:=.GET_INFO.(curr_wdw,."v
0ca0 69 73 69 62 6c 65 5f 62 6f 74 74 6f 6d 22 29 3b 3c 00 20 20 20 63 75 72 72 5f 77 64 77 5f 6c 65 isible_bottom");<....curr_wdw_le
0cc0 6e 67 74 68 20 3a 3d 20 47 45 54 5f 49 4e 46 4f 20 28 63 75 72 72 5f 77 64 77 2c 20 22 76 69 73 ngth.:=.GET_INFO.(curr_wdw,."vis
0ce0 69 62 6c 65 5f 6c 65 6e 67 74 68 22 29 3b 42 00 20 20 20 6c 73 69 5f 6d 65 6e 75 5f 68 65 61 64 ible_length");B....lsi_menu_head
0d00 65 72 5f 77 69 6e 64 6f 77 20 3a 3d 20 43 52 45 41 54 45 5f 57 49 4e 44 4f 57 20 28 63 75 72 72 er_window.:=.CREATE_WINDOW.(curr
0d20 5f 77 64 77 5f 74 6f 70 2c 20 32 2c 20 4f 46 46 29 3b 4b 00 20 20 20 6c 73 69 5f 6d 65 6e 75 5f _wdw_top,.2,.OFF);K....lsi_menu_
0d40 77 69 6e 64 6f 77 20 3a 3d 20 43 52 45 41 54 45 5f 57 49 4e 44 4f 57 20 28 63 75 72 72 5f 77 64 window.:=.CREATE_WINDOW.(curr_wd
0d60 77 5f 74 6f 70 2b 32 2c 20 63 75 72 72 5f 77 64 77 5f 6c 65 6e 67 74 68 2d 32 2c 20 4f 4e 29 00 w_top+2,.curr_wdw_length-2,.ON).
0d80 06 00 45 4e 44 49 46 3b 1f 00 45 52 41 53 45 20 28 6c 73 69 5f 6d 65 6e 75 5f 68 65 61 64 65 72 ..ENDIF;..ERASE.(lsi_menu_header
0da0 5f 62 75 66 66 65 72 29 3b 00 22 00 50 4f 53 49 54 49 4f 4e 20 28 6c 73 69 5f 6d 65 6e 75 5f 68 _buffer);.".POSITION.(lsi_menu_h
0dc0 65 61 64 65 72 5f 62 75 66 66 65 72 29 3b 2f 00 66 6f 72 6d 61 74 5f 73 74 72 20 3a 3d 20 27 21 eader_buffer);/.format_str.:=.'!
0de0 31 41 53 21 23 41 53 20 21 35 55 4c 20 21 38 41 53 2c 20 21 36 41 53 2c 20 21 35 41 53 27 3b 00 1AS!#AS.!5UL.!8AS,.!6AS,.!5AS';.
0e00 23 00 74 69 74 6c 65 5f 73 74 72 20 20 3a 3d 20 20 20 20 27 20 21 23 41 53 20 21 35 41 53 20 21 #.title_str..:=....'.!#AS.!5AS.!
0e20 38 41 53 27 3b 00 30 00 49 46 20 47 45 54 5f 49 4e 46 4f 20 28 62 75 66 66 65 72 5f 6e 61 6d 65 8AS';.0.IF.GET_INFO.(buffer_name
0e40 5f 6c 65 6e 2c 20 27 74 79 70 65 27 29 20 3c 3e 20 49 4e 54 45 47 45 52 04 00 54 48 45 4e 18 00 _len,.'type').<>.INTEGER..THEN..
0e60 20 20 20 62 75 66 66 65 72 5f 6e 61 6d 65 5f 6c 65 6e 20 3a 3d 20 34 33 06 00 45 4e 44 49 46 3b ...buffer_name_len.:=.43..ENDIF;
0e80 4a 00 43 4f 50 59 5f 54 45 58 54 20 28 46 41 4f 20 28 74 69 74 6c 65 5f 73 74 72 2c 20 62 75 66 J.COPY_TEXT.(FAO.(title_str,.buf
0ea0 66 65 72 5f 6e 61 6d 65 5f 6c 65 6e 2c 20 27 42 75 66 66 65 72 27 2c 20 27 4c 69 6e 65 73 27 2c fer_name_len,.'Buffer',.'Lines',
0ec0 20 27 53 74 61 74 75 73 27 29 29 3b 01 00 21 00 31 00 50 4f 53 49 54 49 4f 4e 20 28 42 45 47 49 .'Status'));..!.1.POSITION.(BEGI
0ee0 4e 4e 49 4e 47 5f 4f 46 20 28 6c 73 69 5f 6d 65 6e 75 5f 68 65 61 64 65 72 5f 62 75 66 66 65 72 NNING_OF.(lsi_menu_header_buffer
0f00 29 29 3b 00 27 00 50 4f 53 49 54 49 4f 4e 20 28 42 45 47 49 4e 4e 49 4e 47 5f 4f 46 20 28 6c 73 ));.'.POSITION.(BEGINNING_OF.(ls
0f20 69 5f 6d 65 6e 75 5f 62 75 66 29 29 3b 00 15 00 45 52 41 53 45 20 28 6c 73 69 5f 6d 65 6e 75 5f i_menu_buf));...ERASE.(lsi_menu_
0f40 62 75 66 29 3b 00 0f 00 6d 65 6e 75 5f 73 69 7a 65 20 3a 3d 20 30 3b 00 1a 00 73 74 61 72 74 5f buf);...menu_size.:=.0;...start_
0f60 6c 69 6e 65 20 3a 3d 20 4d 41 52 4b 20 28 4e 4f 4e 45 29 3b 03 00 21 2b 2b 00 3e 00 21 20 20 47 line.:=.MARK.(NONE);..!++.>.!..G
0f80 65 74 20 61 6c 6c 20 74 68 65 20 62 75 66 66 65 72 20 6e 61 6d 65 73 20 61 6e 64 20 70 75 74 20 et.all.the.buffer.names.and.put.
0fa0 74 68 65 6d 20 69 6e 74 6f 20 74 68 65 20 6d 65 6e 75 20 62 75 66 66 65 72 2e 03 00 21 2d 2d 00 them.into.the.menu.buffer...!--.
0fc0 2b 00 6c 6f 6f 70 5f 62 75 66 66 65 72 20 3a 3d 20 47 45 54 5f 49 4e 46 4f 20 28 42 55 46 46 45 +.loop_buffer.:=.GET_INFO.(BUFFE
0fe0 52 53 2c 20 22 66 69 72 73 74 22 29 3b 00 04 00 4c 4f 4f 50 35 00 20 20 20 6c 6f 6f 70 5f 62 75 RS,."first");...LOOP5....loop_bu
1000 66 66 65 72 5f 6e 61 6d 65 20 3a 3d 20 47 45 54 5f 49 4e 46 4f 20 28 6c 6f 6f 70 5f 62 75 66 66 ffer_name.:=.GET_INFO.(loop_buff
1020 65 72 2c 22 6e 61 6d 65 22 29 3b 00 3b 00 20 20 20 49 46 20 28 47 45 54 5f 49 4e 46 4f 20 28 6c er,"name");.;....IF.(GET_INFO.(l
1040 6f 6f 70 5f 62 75 66 66 65 72 2c 20 22 53 59 53 54 45 4d 22 29 20 3d 20 30 29 20 4f 52 20 73 79 oop_buffer,."SYSTEM").=.0).OR.sy
1060 73 74 65 6d 5f 66 6c 61 67 00 07 00 20 20 20 54 48 45 4e 00 21 00 20 20 20 20 20 20 6d 65 6e 75 stem_flag......THEN.!.......menu
1080 5f 73 69 7a 65 20 3a 3d 20 6d 65 6e 75 5f 73 69 7a 65 20 2b 20 31 3b 00 09 00 20 20 20 20 20 20 _size.:=.menu_size.+.1;.........
10a0 21 2b 2b 00 1f 00 20 20 20 20 20 20 21 09 20 47 65 74 20 6f 74 68 65 72 20 62 75 66 66 65 72 20 !++.........!..Get.other.buffer.
10c0 69 6e 66 6f 2e 00 09 00 20 20 20 20 20 20 21 2d 2d 00 3b 00 20 20 20 20 20 20 6c 69 6e 65 5f 63 info..........!--.;.......line_c
10e0 6f 75 6e 74 20 3a 3d 20 47 45 54 5f 49 4e 46 4f 20 28 6c 6f 6f 70 5f 62 75 66 66 65 72 2c 20 22 ount.:=.GET_INFO.(loop_buffer,."
1100 72 65 63 6f 72 64 5f 63 6f 75 6e 74 22 29 3b 00 1a 00 20 20 20 20 20 20 73 74 61 74 75 73 5f 73 record_count");.........status_s
1120 74 72 69 6e 67 20 3a 3d 20 22 22 3b 34 00 20 20 20 20 20 20 49 46 20 47 45 54 5f 49 4e 46 4f 20 tring.:=."";4.......IF.GET_INFO.
1140 28 6c 6f 6f 70 5f 62 75 66 66 65 72 2c 20 22 6d 6f 64 69 66 69 65 64 22 29 20 3d 20 31 20 54 48 (loop_buffer,."modified").=.1.TH
1160 45 4e 1c 00 09 20 6d 6f 64 69 66 69 65 64 5f 73 74 72 20 3a 3d 20 22 6d 6f 64 69 66 69 65 64 22 EN....modified_str.:=."modified"
1180 0a 00 20 20 20 20 20 20 45 4c 53 45 1e 00 09 20 6d 6f 64 69 66 69 65 64 5f 73 74 72 20 3a 3d 20 ........ELSE....modified_str.:=.
11a0 22 75 6e 6d 6f 64 69 66 69 65 64 22 0c 00 20 20 20 20 20 20 45 4e 44 49 46 3b 36 00 20 20 20 20 "unmodified"........ENDIF;6.....
11c0 20 20 49 46 20 47 45 54 5f 49 4e 46 4f 20 28 6c 6f 6f 70 5f 62 75 66 66 65 72 2c 20 22 6d 6f 64 ..IF.GET_INFO.(loop_buffer,."mod
11e0 69 66 69 61 62 6c 65 22 29 20 3d 20 31 20 54 48 45 4e 1c 00 09 20 6d 6f 64 69 66 69 61 62 6c 65 ifiable").=.1.THEN....modifiable
1200 5f 73 74 72 20 3a 3d 20 22 6d 6f 64 69 66 79 22 0a 00 20 20 20 20 20 20 45 4c 53 45 1e 00 09 20 _str.:=."modify"........ELSE....
1220 6d 6f 64 69 66 69 61 62 6c 65 5f 73 74 72 20 3a 3d 20 22 6e 6f 6d 6f 64 69 66 79 22 0c 00 20 20 modifiable_str.:=."nomodify"....
1240 20 20 20 20 45 4e 44 49 46 3b 34 00 20 20 20 20 20 20 49 46 20 47 45 54 5f 49 4e 46 4f 20 28 6c ....ENDIF;4.......IF.GET_INFO.(l
1260 6f 6f 70 5f 62 75 66 66 65 72 2c 20 22 6e 6f 5f 77 72 69 74 65 22 29 20 3d 20 31 20 54 48 45 4e oop_buffer,."no_write").=.1.THEN
1280 1a 00 09 20 72 65 61 64 5f 77 72 69 74 65 5f 73 74 72 20 3a 3d 20 22 72 65 61 64 22 0a 00 20 20 ....read_write_str.:=."read"....
12a0 20 20 20 20 45 4c 53 45 1b 00 09 20 72 65 61 64 5f 77 72 69 74 65 5f 73 74 72 20 3a 3d 20 22 77 ....ELSE....read_write_str.:=."w
12c0 72 69 74 65 22 00 0c 00 20 20 20 20 20 20 45 4e 44 49 46 3b 25 00 20 20 20 20 20 20 49 46 20 6c rite".........ENDIF;%.......IF.l
12e0 6f 6f 70 5f 62 75 66 66 65 72 20 3d 20 73 61 76 65 64 5f 62 75 66 20 54 48 45 4e 00 15 00 09 20 oop_buffer.=.saved_buf.THEN.....
1300 63 75 72 72 65 6e 74 5f 66 6c 61 67 20 3a 3d 20 22 2a 22 00 0a 00 20 20 20 20 20 20 45 4c 53 45 current_flag.:=."*".........ELSE
1320 15 00 09 20 63 75 72 72 65 6e 74 5f 66 6c 61 67 20 3a 3d 20 22 20 22 00 0c 00 20 20 20 20 20 20 ....current_flag.:=.".".........
1340 45 4e 44 49 46 3b 09 00 20 20 20 20 20 20 21 2b 2b 00 46 00 20 20 20 20 20 20 21 20 20 45 6e 74 ENDIF;........!++.F.......!..Ent
1360 65 72 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 63 75 72 er.the.information.about.the.cur
1380 72 65 6e 74 20 62 75 66 66 65 72 20 69 6e 74 6f 20 74 68 65 20 6d 65 6e 75 2e 09 00 20 20 20 20 rent.buffer.into.the.menu.......
13a0 20 20 21 2d 2d 00 40 00 20 20 20 20 20 20 43 4f 50 59 5f 54 45 58 54 20 28 46 41 4f 20 28 66 6f ..!--.@.......COPY_TEXT.(FAO.(fo
13c0 72 6d 61 74 5f 73 74 72 2c 20 63 75 72 72 65 6e 74 5f 66 6c 61 67 2c 20 62 75 66 66 65 72 5f 6e rmat_str,.current_flag,.buffer_n
13e0 61 6d 65 5f 6c 65 6e 2c 3d 00 09 20 6c 6f 6f 70 5f 62 75 66 66 65 72 5f 6e 61 6d 65 2c 20 6c 69 ame_len,=...loop_buffer_name,.li
1400 6e 65 5f 63 6f 75 6e 74 2c 20 6d 6f 64 69 66 69 65 64 5f 73 74 72 2c 20 6d 6f 64 69 66 69 61 62 ne_count,.modified_str,.modifiab
1420 6c 65 5f 73 74 72 2c 00 14 00 09 20 72 65 61 64 5f 77 72 69 74 65 5f 73 74 72 29 29 3b 20 11 00 le_str,.....read_write_str));...
1440 20 20 20 20 20 20 53 50 4c 49 54 5f 4c 49 4e 45 3b 00 2b 00 20 20 20 20 20 20 49 46 20 6c 6f 6f ......SPLIT_LINE;.+.......IF.loo
1460 70 5f 62 75 66 66 65 72 5f 6e 61 6d 65 20 3d 20 73 61 76 65 64 5f 6e 61 6d 65 20 54 48 45 4e 00 p_buffer_name.=.saved_name.THEN.
1480 15 00 09 20 4d 4f 56 45 5f 56 45 52 54 49 43 41 4c 20 28 2d 31 29 3b 00 1c 00 09 20 73 74 61 72 ....MOVE_VERTICAL.(-1);.....star
14a0 74 5f 6c 69 6e 65 20 3a 3d 20 4d 41 52 4b 20 28 4e 4f 4e 45 29 3b 13 00 09 20 4d 4f 56 45 5f 56 t_line.:=.MARK.(NONE);....MOVE_V
14c0 45 52 54 49 43 41 4c 20 28 31 29 00 0b 00 20 20 20 20 20 20 45 4e 44 49 46 00 09 00 20 20 20 45 ERTICAL.(1).........ENDIF......E
14e0 4e 44 49 46 3b 00 2c 00 20 20 20 6c 6f 6f 70 5f 62 75 66 66 65 72 20 3a 3d 20 47 45 54 5f 49 4e NDIF;.,....loop_buffer.:=.GET_IN
1500 46 4f 20 28 42 55 46 46 45 52 53 2c 22 6e 65 78 74 22 29 3b 19 00 20 20 20 45 58 49 54 49 46 20 FO.(BUFFERS,"next");.....EXITIF.
1520 6c 6f 6f 70 5f 62 75 66 66 65 72 20 3d 20 30 00 08 00 45 4e 44 4c 4f 4f 50 3b 0b 00 45 52 41 53 loop_buffer.=.0...ENDLOOP;..ERAS
1540 45 5f 4c 49 4e 45 3b 00 16 00 50 4f 53 49 54 49 4f 4e 20 28 73 74 61 72 74 5f 6c 69 6e 65 29 3b E_LINE;...POSITION.(start_line);
1560 15 00 50 4f 53 49 54 49 4f 4e 20 28 74 68 69 73 5f 73 70 6f 74 29 3b 00 11 00 49 46 20 6d 65 6e ..POSITION.(this_spot);...IF.men
1580 75 5f 73 69 7a 65 20 3c 3e 20 30 00 04 00 54 48 45 4e 0b 00 20 20 20 52 45 54 55 52 4e 20 31 00 u_size.<>.0...THEN.....RETURN.1.
15a0 04 00 45 4c 53 45 29 00 20 20 20 4d 45 53 53 41 47 45 20 28 22 4e 6f 20 75 73 65 72 20 62 75 66 ..ELSE)....MESSAGE.("No.user.buf
15c0 66 65 72 73 20 61 76 61 69 6c 61 62 6c 65 22 29 3b 00 0b 00 20 20 20 52 45 54 55 52 4e 20 30 00 fers.available");......RETURN.0.
15e0 05 00 45 4e 44 49 46 00 25 00 45 4e 44 50 52 4f 43 45 44 55 52 45 20 21 20 6c 73 69 5f 63 72 65 ..ENDIF.%.ENDPROCEDURE.!.lsi_cre
1600 61 74 65 5f 62 75 66 66 65 72 5f 6d 65 6e 75 00 02 00 21 0c 1b 00 50 52 4f 43 45 44 55 52 45 20 ate_buffer_menu...!...PROCEDURE.
1620 6c 73 69 5f 62 75 66 66 65 72 5f 73 65 6c 65 63 74 00 03 00 21 2b 2b 00 48 00 21 20 20 54 68 69 lsi_buffer_select...!++.H.!..Thi
1640 73 20 72 6f 75 74 69 6e 65 20 69 73 20 74 68 65 20 64 69 73 70 61 74 63 68 65 72 20 66 6f 72 20 s.routine.is.the.dispatcher.for.
1660 66 75 6e 63 74 69 6f 6e 73 20 77 68 69 6c 65 20 74 68 65 20 62 75 66 66 65 72 20 6d 65 6e 75 20 functions.while.the.buffer.menu.
1680 69 73 0c 00 21 20 20 69 6e 20 70 6c 61 63 65 2e 03 00 21 2d 2d 00 0b 00 4c 4f 43 41 4c 20 6c 69 is..!..in.place...!--...LOCAL.li
16a0 6e 65 2c 00 0f 00 20 20 20 20 20 20 6c 69 6e 65 5f 6e 75 6d 2c 00 10 00 20 20 20 20 20 20 74 68 ne,.........line_num,.........th
16c0 69 73 5f 73 70 6f 74 2c 0e 00 20 20 20 20 20 20 74 68 65 5f 6b 65 79 2c 0f 00 20 20 20 20 20 20 is_spot,........the_key,........
16e0 62 75 66 5f 6e 61 6d 65 3b 00 01 00 20 00 08 00 4f 4e 5f 45 52 52 4f 52 11 00 20 20 20 6c 73 69 buf_name;.......ON_ERROR.....lsi
1700 5f 67 6f 74 6f 5f 6d 61 69 6e 3b 00 08 00 20 20 20 41 42 4f 52 54 0b 00 45 4e 44 4f 4e 5f 45 52 _goto_main;......ABORT..ENDON_ER
1720 52 4f 52 00 00 00 19 00 74 68 69 73 5f 73 70 6f 74 20 3a 3d 20 4d 41 52 4b 20 28 4e 4f 4e 45 29 ROR.....this_spot.:=.MARK.(NONE)
1740 3b 00 14 00 74 68 65 5f 6b 65 79 20 3a 3d 20 4c 41 53 54 5f 4b 45 59 3b 03 00 21 2b 2b 00 33 00 ;...the_key.:=.LAST_KEY;..!++.3.
1760 21 20 20 50 65 72 66 6f 72 6d 20 61 6e 20 61 63 74 69 6f 6e 20 62 61 73 65 64 20 6f 6e 20 74 68 !..Perform.an.action.based.on.th
1780 65 20 6c 61 73 74 20 6b 65 79 20 70 72 65 73 73 65 64 2e 00 03 00 21 2d 2d 00 24 00 49 46 20 28 e.last.key.pressed....!--.$.IF.(
17a0 74 68 65 5f 6b 65 79 20 3d 20 44 4f 29 20 4f 52 20 28 74 68 65 5f 6b 65 79 20 3d 20 4b 50 30 29 the_key.=.DO).OR.(the_key.=.KP0)
17c0 04 00 54 48 45 4e 06 00 20 20 20 21 2b 2b 44 00 20 20 20 21 20 20 41 63 74 69 6f 6e 3a 20 20 72 ..THEN.....!++D....!..Action:..r
17e0 65 74 75 72 6e 20 74 6f 20 74 68 65 20 62 75 66 66 65 72 20 77 68 69 63 68 20 77 61 73 20 63 75 eturn.to.the.buffer.which.was.cu
1800 72 72 65 6e 74 20 77 68 65 6e 20 74 68 65 20 6d 65 6e 75 20 12 00 20 20 20 21 20 20 77 61 73 20 rrent.when.the.menu......!..was.
1820 69 6e 76 6f 6b 65 64 2e 06 00 20 20 20 21 2d 2d 22 00 20 20 20 55 4e 4d 41 50 20 28 6c 73 69 5f invoked......!--"....UNMAP.(lsi_
1840 6d 65 6e 75 5f 68 65 61 64 65 72 5f 77 69 6e 64 6f 77 29 3b 1b 00 20 20 20 55 4e 4d 41 50 20 28 menu_header_window);.....UNMAP.(
1860 6c 73 69 5f 6d 65 6e 75 5f 77 69 6e 64 6f 77 29 3b 00 3e 00 20 20 20 49 46 20 47 45 54 5f 49 4e lsi_menu_window);.>....IF.GET_IN
1880 46 4f 20 28 6c 73 69 5f 62 65 66 6f 72 65 5f 62 75 66 66 65 72 5f 6d 65 6e 75 5f 73 70 6f 74 2c FO.(lsi_before_buffer_menu_spot,
18a0 20 27 74 79 70 65 27 29 20 3c 3e 20 4d 41 52 4b 45 52 07 00 20 20 20 54 48 45 4e 00 09 00 20 20 .'type').<>.MARKER.....THEN.....
18c0 20 20 20 20 21 2b 2b 00 3c 00 20 20 20 20 20 20 21 20 20 54 68 61 74 20 62 75 66 66 65 72 20 69 ....!++.<.......!..That.buffer.i
18e0 73 20 67 6f 6e 65 3a 20 67 6f 20 74 6f 20 74 68 65 20 6d 61 69 6e 20 62 75 66 66 65 72 20 69 6e s.gone:.go.to.the.main.buffer.in
1900 73 74 65 61 64 2e 09 00 20 20 20 20 20 20 21 2d 2d 00 14 00 20 20 20 20 20 20 6c 73 69 5f 67 6f stead.........!--.........lsi_go
1920 74 6f 5f 6d 61 69 6e 3b 2b 00 20 20 20 20 20 20 6c 73 65 24 73 65 74 5f 73 74 61 74 75 73 5f 6c to_main;+.......lse$set_status_l
1940 69 6e 65 20 28 43 55 52 52 45 4e 54 5f 57 49 4e 44 4f 57 29 3b 00 0b 00 20 20 20 20 20 20 41 42 ine.(CURRENT_WINDOW);.........AB
1960 4f 52 54 00 07 00 20 20 20 45 4c 53 45 00 2d 00 20 20 20 20 20 20 50 4f 53 49 54 49 4f 4e 20 28 ORT......ELSE.-.......POSITION.(
1980 6c 73 69 5f 62 65 66 6f 72 65 5f 62 75 66 66 65 72 5f 6d 65 6e 75 5f 73 70 6f 74 29 3b 00 2b 00 lsi_before_buffer_menu_spot);.+.
19a0 20 20 20 20 20 20 4d 41 50 20 28 43 55 52 52 45 4e 54 5f 57 49 4e 44 4f 57 2c 20 43 55 52 52 45 ......MAP.(CURRENT_WINDOW,.CURRE
19c0 4e 54 5f 42 55 46 46 45 52 29 3b 00 2b 00 20 20 20 20 20 20 6c 73 65 24 73 65 74 5f 73 74 61 74 NT_BUFFER);.+.......lse$set_stat
19e0 75 73 5f 6c 69 6e 65 20 28 43 55 52 52 45 4e 54 5f 57 49 4e 44 4f 57 29 3b 00 1e 00 20 20 20 20 us_line.(CURRENT_WINDOW);.......
1a00 20 20 55 50 44 41 54 45 20 28 43 55 52 52 45 4e 54 5f 57 49 4e 44 4f 57 29 3b 0c 00 20 20 20 20 ..UPDATE.(CURRENT_WINDOW);......
1a20 20 20 52 45 54 55 52 4e 08 00 20 20 20 45 4e 44 49 46 06 00 45 4e 44 49 46 3b 03 00 21 2b 2b 00 ..RETURN.....ENDIF..ENDIF;..!++.
1a40 4a 00 21 20 20 4f 74 68 65 72 20 61 63 74 69 6f 6e 73 20 72 65 71 75 69 72 65 20 74 68 61 74 20 J.!..Other.actions.require.that.
1a60 77 65 20 6b 6e 6f 77 20 77 68 69 63 68 20 62 75 66 66 65 72 20 69 73 20 6e 61 6d 65 64 20 6f 6e we.know.which.buffer.is.named.on
1a80 20 74 68 65 20 63 75 72 72 65 6e 74 33 00 21 20 20 6c 69 6e 65 2c 20 61 6e 64 20 74 68 75 73 20 .the.current3.!..line,.and.thus.
1aa0 77 65 20 6d 75 73 74 20 6b 6e 6f 77 20 77 68 61 74 20 6c 69 6e 65 20 77 65 20 61 72 65 20 6f 6e we.must.know.what.line.we.are.on
1ac0 2e 00 03 00 21 2d 2d 00 26 00 6c 69 6e 65 5f 6e 75 6d 20 3a 3d 20 6c 73 69 5f 64 65 74 65 72 6d ....!--.&.line_num.:=.lsi_determ
1ae0 69 6e 65 5f 6c 69 6e 65 5f 6e 75 6d 62 65 72 3b 35 00 49 46 20 6c 69 6e 65 5f 6e 75 6d 20 3e 20 ine_line_number;5.IF.line_num.>.
1b00 47 45 54 5f 49 4e 46 4f 20 28 6c 73 69 5f 6d 65 6e 75 5f 62 75 66 2c 20 27 72 65 63 6f 72 64 5f GET_INFO.(lsi_menu_buf,.'record_
1b20 63 6f 75 6e 74 27 29 00 04 00 54 48 45 4e 08 00 20 20 20 41 42 4f 52 54 06 00 45 4e 44 49 46 3b count')...THEN.....ABORT..ENDIF;
1b40 22 00 62 75 66 5f 6e 61 6d 65 20 3a 3d 20 6c 73 69 5f 73 74 72 69 70 5f 62 75 66 66 65 72 5f 6e ".buf_name.:=.lsi_strip_buffer_n
1b60 61 6d 65 3b 03 00 21 2b 2b 00 46 00 21 20 20 50 72 65 73 73 69 6e 67 20 45 33 20 28 52 65 6d 6f ame;..!++.F.!..Pressing.E3.(Remo
1b80 76 65 29 20 6f 72 20 50 46 34 20 28 44 65 6c 65 74 65 20 4c 69 6e 65 29 20 64 65 6c 65 74 65 73 ve).or.PF4.(Delete.Line).deletes
1ba0 20 74 68 65 20 6e 61 6d 65 64 20 62 75 66 66 65 72 2e 03 00 21 2d 2d 00 24 00 49 46 20 28 74 68 .the.named.buffer...!--.$.IF.(th
1bc0 65 5f 6b 65 79 20 3d 20 45 33 29 20 4f 52 20 28 74 68 65 5f 6b 65 79 20 3d 20 50 46 34 29 04 00 e_key.=.E3).OR.(the_key.=.PF4)..
1be0 54 48 45 4e 06 00 20 20 20 21 2b 2b 35 00 20 20 20 21 20 20 46 72 65 65 7a 65 20 74 68 65 20 73 THEN.....!++5....!..Freeze.the.s
1c00 63 72 65 65 6e 20 74 6f 20 61 76 6f 69 64 20 64 69 73 74 72 61 63 74 69 6e 67 20 75 70 64 61 74 creen.to.avoid.distracting.updat
1c20 65 73 2e 00 06 00 20 20 20 21 2d 2d 1c 00 20 20 20 53 45 54 20 28 53 43 52 45 45 4e 5f 55 50 44 es.......!--.....SET.(SCREEN_UPD
1c40 41 54 45 2c 20 4f 46 46 29 3b 1b 00 20 20 20 55 4e 4d 41 50 20 28 6c 73 69 5f 6d 65 6e 75 5f 77 ATE,.OFF);.....UNMAP.(lsi_menu_w
1c60 69 6e 64 6f 77 29 3b 00 22 00 20 20 20 55 4e 4d 41 50 20 28 6c 73 69 5f 6d 65 6e 75 5f 68 65 61 indow);."....UNMAP.(lsi_menu_hea
1c80 64 65 72 5f 77 69 6e 64 6f 77 29 3b 06 00 20 20 20 21 2b 2b 2e 00 20 20 20 21 20 20 47 6f 20 74 der_window);.....!++.....!..Go.t
1ca0 6f 20 74 68 65 20 62 75 66 66 65 72 20 77 68 69 63 68 20 69 73 20 74 6f 20 62 65 20 64 65 6c 65 o.the.buffer.which.is.to.be.dele
1cc0 74 65 64 2e 06 00 20 20 20 21 2d 2d 38 00 20 20 20 6c 73 65 24 64 6f 5f 63 6f 6d 6d 61 6e 64 20 ted......!--8....lse$do_command.
1ce0 28 46 41 4f 20 28 27 47 4f 54 4f 20 42 55 46 46 45 52 20 22 21 41 53 22 27 2c 20 62 75 66 5f 6e (FAO.('GOTO.BUFFER."!AS"',.buf_n
1d00 61 6d 65 29 29 3b 1d 00 20 20 20 62 75 66 5f 70 74 72 20 3a 3d 20 43 55 52 52 45 4e 54 5f 42 55 ame));.....buf_ptr.:=.CURRENT_BU
1d20 46 46 45 52 3b 00 06 00 20 20 20 21 2b 2b 10 00 20 20 20 21 20 20 44 65 6c 65 74 65 20 69 74 2e FFER;......!++.....!..Delete.it.
1d40 06 00 20 20 20 21 2d 2d 1d 00 20 20 20 6c 73 69 5f 6b 69 6c 6c 5f 62 75 66 66 65 72 20 28 62 75 .....!--.....lsi_kill_buffer.(bu
1d60 66 5f 70 74 72 29 3b 00 06 00 20 20 20 21 2b 2b 16 00 20 20 20 21 20 20 52 65 2d 6d 61 70 20 74 f_ptr);......!++.....!..Re-map.t
1d80 68 65 20 6d 65 6e 75 2e 06 00 20 20 20 21 2d 2d 38 00 20 20 20 4d 41 50 20 28 6c 73 69 5f 6d 65 he.menu......!--8....MAP.(lsi_me
1da0 6e 75 5f 68 65 61 64 65 72 5f 77 69 6e 64 6f 77 2c 20 6c 73 69 5f 6d 65 6e 75 5f 68 65 61 64 65 nu_header_window,.lsi_menu_heade
1dc0 72 5f 62 75 66 66 65 72 29 3b 27 00 20 20 20 4d 41 50 20 28 6c 73 69 5f 6d 65 6e 75 5f 77 69 6e r_buffer);'....MAP.(lsi_menu_win
1de0 64 6f 77 2c 20 6c 73 69 5f 6d 65 6e 75 5f 62 75 66 29 3b 00 1e 00 20 20 20 50 4f 53 49 54 49 4f dow,.lsi_menu_buf);......POSITIO
1e00 4e 20 28 6c 73 69 5f 6d 65 6e 75 5f 77 69 6e 64 6f 77 29 3b 18 00 20 20 20 50 4f 53 49 54 49 4f N.(lsi_menu_window);.....POSITIO
1e20 4e 20 28 74 68 69 73 5f 73 70 6f 74 29 3b 26 00 20 20 20 53 45 54 20 28 4d 4f 44 49 46 49 41 42 N.(this_spot);&....SET.(MODIFIAB
1e40 4c 45 2c 20 6c 73 69 5f 6d 65 6e 75 5f 62 75 66 2c 20 4f 4e 29 3b 06 00 20 20 20 21 2b 2b 39 00 LE,.lsi_menu_buf,.ON);.....!++9.
1e60 20 20 20 21 20 20 44 65 6c 65 74 65 20 74 68 65 20 6c 69 6e 65 20 63 6f 6e 74 61 69 6e 69 6e 67 ...!..Delete.the.line.containing
1e80 20 74 68 65 20 64 65 6c 65 74 65 64 20 62 75 66 66 65 72 20 6e 61 6d 65 2e 00 06 00 20 20 20 21 .the.deleted.buffer.name.......!
1ea0 2d 2d 0e 00 20 20 20 45 52 41 53 45 5f 4c 49 4e 45 3b 27 00 20 20 20 53 45 54 20 28 4d 4f 44 49 --.....ERASE_LINE;'....SET.(MODI
1ec0 46 49 41 42 4c 45 2c 20 6c 73 69 5f 6d 65 6e 75 5f 62 75 66 2c 20 4f 46 46 29 3b 00 06 00 20 20 FIABLE,.lsi_menu_buf,.OFF);.....
1ee0 20 21 2b 2b 19 00 20 20 20 21 20 20 52 65 66 72 65 73 68 20 74 68 65 20 73 63 72 65 65 6e 2e 00 .!++.....!..Refresh.the.screen..
1f00 06 00 20 20 20 21 2d 2d 1b 00 20 20 20 53 45 54 20 28 53 43 52 45 45 4e 5f 55 50 44 41 54 45 2c .....!--.....SET.(SCREEN_UPDATE,
1f20 20 4f 4e 29 3b 00 1c 00 20 20 20 55 50 44 41 54 45 20 28 6c 73 69 5f 6d 65 6e 75 5f 77 69 6e 64 .ON);......UPDATE.(lsi_menu_wind
1f40 6f 77 29 3b 23 00 20 20 20 55 50 44 41 54 45 20 28 6c 73 69 5f 6d 65 6e 75 5f 68 65 61 64 65 72 ow);#....UPDATE.(lsi_menu_header
1f60 5f 77 69 6e 64 6f 77 29 3b 00 1e 00 20 20 20 55 50 44 41 54 45 20 28 6c 73 65 24 6d 65 73 73 61 _window);......UPDATE.(lse$messa
1f80 67 65 5f 77 69 6e 64 6f 77 29 06 00 45 4e 44 49 46 3b 03 00 21 2b 2b 00 48 00 21 20 20 50 72 65 ge_window)..ENDIF;..!++.H.!..Pre
1fa0 73 73 69 6e 67 20 45 34 20 28 53 65 6c 65 63 74 29 20 6f 72 20 52 45 54 55 52 4e 20 73 65 6c 65 ssing.E4.(Select).or.RETURN.sele
1fc0 63 74 73 20 74 68 65 20 6e 61 6d 65 64 20 62 75 66 66 65 72 20 61 6e 64 20 70 6f 73 69 74 69 6f cts.the.named.buffer.and.positio
1fe0 6e 73 14 00 21 20 20 69 6e 74 6f 20 74 68 61 74 20 62 75 66 66 65 72 2e 03 00 21 2d 2d 00 28 00 ns..!..into.that.buffer...!--.(.
2000 49 46 20 28 74 68 65 5f 6b 65 79 20 3d 20 45 34 29 20 4f 52 20 28 74 68 65 5f 6b 65 79 20 3d 20 IF.(the_key.=.E4).OR.(the_key.=.
2020 52 45 54 5f 4b 45 59 29 04 00 54 48 45 4e 22 00 20 20 20 55 4e 4d 41 50 20 28 6c 73 69 5f 6d 65 RET_KEY)..THEN"....UNMAP.(lsi_me
2040 6e 75 5f 68 65 61 64 65 72 5f 77 69 6e 64 6f 77 29 3b 1b 00 20 20 20 55 4e 4d 41 50 20 28 6c 73 nu_header_window);.....UNMAP.(ls
2060 69 5f 6d 65 6e 75 5f 77 69 6e 64 6f 77 29 3b 00 29 00 20 20 20 50 4f 53 49 54 49 4f 4e 20 28 6c i_menu_window);.)....POSITION.(l
2080 73 69 5f 62 65 66 6f 72 65 5f 62 75 66 66 65 72 5f 6d 65 6e 75 5f 77 64 77 29 3b 00 37 00 20 20 si_before_buffer_menu_wdw);.7...
20a0 20 6c 73 65 24 64 6f 5f 63 6f 6d 6d 61 6e 64 20 28 46 41 4f 20 28 27 47 4f 54 4f 20 42 55 46 46 .lse$do_command.(FAO.('GOTO.BUFF
20c0 45 52 20 22 21 41 53 22 27 2c 20 62 75 66 5f 6e 61 6d 65 29 29 00 05 00 45 4e 44 49 46 00 20 00 ER."!AS"',.buf_name))...ENDIF...
20e0 45 4e 44 50 52 4f 43 45 44 55 52 45 20 21 20 6c 73 69 5f 62 75 66 66 65 72 5f 73 65 6c 65 63 74 ENDPROCEDURE.!.lsi_buffer_select
2100 02 00 21 0c 1f 00 50 52 4f 43 45 44 55 52 45 20 6c 73 69 5f 73 74 72 69 70 5f 62 75 66 66 65 72 ..!...PROCEDURE.lsi_strip_buffer
2120 5f 6e 61 6d 65 00 03 00 21 2b 2b 00 4a 00 21 20 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 _name...!++.J.!..This.procedure.
2140 72 65 74 75 72 6e 73 20 74 68 65 20 66 75 6c 6c 20 62 75 66 66 65 72 20 6e 61 6d 65 20 66 72 6f returns.the.full.buffer.name.fro
2160 6d 20 74 68 65 20 63 75 72 72 65 6e 74 20 6d 65 6e 75 20 6c 69 6e 65 2e 03 00 21 2d 2d 00 0f 00 m.the.current.menu.line...!--...
2180 4c 4f 43 41 4c 20 62 75 66 5f 6e 61 6d 65 2c 00 0b 00 20 20 20 20 20 20 6c 69 6e 65 3b 00 01 00 LOCAL.buf_name,.........line;...
21a0 20 00 35 00 62 75 66 5f 6e 61 6d 65 20 3a 3d 20 53 55 42 53 54 52 28 43 55 52 52 45 4e 54 5f 4c ..5.buf_name.:=.SUBSTR(CURRENT_L
21c0 49 4e 45 2c 20 32 2c 20 62 75 66 66 65 72 5f 6e 61 6d 65 5f 6c 65 6e 29 3b 00 16 00 45 44 49 54 INE,.2,.buffer_name_len);...EDIT
21e0 20 28 62 75 66 5f 6e 61 6d 65 2c 20 54 52 49 4d 29 3b 10 00 52 45 54 55 52 4e 20 62 75 66 5f 6e .(buf_name,.TRIM);..RETURN.buf_n
2200 61 6d 65 3b 24 00 45 4e 44 50 52 4f 43 45 44 55 52 45 20 21 20 6c 73 69 5f 73 74 72 69 70 5f 62 ame;$.ENDPROCEDURE.!.lsi_strip_b
2220 75 66 66 65 72 5f 6e 61 6d 65 04 00 21 0c 20 20 27 00 50 52 4f 43 45 44 55 52 45 20 6c 73 69 5f uffer_name..!...'.PROCEDURE.lsi_
2240 69 6e 69 74 69 61 6c 69 7a 65 5f 62 75 66 66 65 72 5f 6b 65 79 5f 6d 61 70 00 03 00 21 2b 2b 00 initialize_buffer_key_map...!++.
2260 3f 00 21 20 54 68 69 73 20 70 72 6f 63 65 64 75 72 65 20 69 73 20 6f 6e 6c 79 20 63 61 6c 6c 65 ?.!.This.procedure.is.only.calle
2280 64 20 74 6f 20 69 6e 69 74 69 61 6c 6c 79 20 63 72 65 61 74 65 20 74 68 65 20 6b 65 79 20 6d 61 d.to.initially.create.the.key.ma
22a0 70 00 36 00 21 20 62 65 63 61 75 73 65 20 54 50 55 20 6f 6e 6c 79 20 61 6c 6c 6f 77 73 20 4f 4e p.6.!.because.TPU.only.allows.ON
22c0 5f 45 52 52 4f 52 20 77 69 74 68 69 6e 20 61 20 70 72 6f 63 65 64 75 72 65 2e 03 00 21 2d 2d 00 _ERROR.within.a.procedure...!--.
22e0 08 00 4f 4e 5f 45 52 52 4f 52 03 00 20 20 20 00 0c 00 45 4e 44 4f 4e 5f 45 52 52 4f 52 3b 26 00 ..ON_ERROR........ENDON_ERROR;&.
2300 43 52 45 41 54 45 5f 4b 45 59 5f 4d 41 50 20 28 27 6c 73 69 5f 62 75 66 66 65 72 5f 6b 65 79 5f CREATE_KEY_MAP.('lsi_buffer_key_
2320 6d 61 70 27 29 3b 46 00 43 52 45 41 54 45 5f 4b 45 59 5f 4d 41 50 5f 4c 49 53 54 20 28 27 6c 73 map');F.CREATE_KEY_MAP_LIST.('ls
2340 69 5f 62 75 66 66 65 72 5f 6b 65 79 5f 6d 61 70 5f 6c 69 73 74 27 2c 20 27 6c 73 69 5f 62 75 66 i_buffer_key_map_list',.'lsi_buf
2360 66 65 72 5f 6b 65 79 5f 6d 61 70 27 29 3b 3f 00 44 45 46 49 4e 45 5f 4b 45 59 20 28 27 6c 73 69 fer_key_map');?.DEFINE_KEY.('lsi
2380 5f 62 75 66 66 65 72 5f 73 65 6c 65 63 74 27 2c 20 44 4f 2c 20 27 27 2c 20 27 6c 73 69 5f 62 75 _buffer_select',.DO,.'',.'lsi_bu
23a0 66 66 65 72 5f 6b 65 79 5f 6d 61 70 27 29 3b 00 40 00 44 45 46 49 4e 45 5f 4b 45 59 20 28 27 6c ffer_key_map');.@.DEFINE_KEY.('l
23c0 73 69 5f 62 75 66 66 65 72 5f 73 65 6c 65 63 74 27 2c 20 4b 50 30 2c 20 27 27 2c 20 27 6c 73 69 si_buffer_select',.KP0,.'',.'lsi
23e0 5f 62 75 66 66 65 72 5f 6b 65 79 5f 6d 61 70 27 29 3b 3f 00 44 45 46 49 4e 45 5f 4b 45 59 20 28 _buffer_key_map');?.DEFINE_KEY.(
2400 27 6c 73 69 5f 62 75 66 66 65 72 5f 73 65 6c 65 63 74 27 2c 20 45 33 2c 20 27 27 2c 20 27 6c 73 'lsi_buffer_select',.E3,.'',.'ls
2420 69 5f 62 75 66 66 65 72 5f 6b 65 79 5f 6d 61 70 27 29 3b 00 40 00 44 45 46 49 4e 45 5f 4b 45 59 i_buffer_key_map');.@.DEFINE_KEY
2440 20 28 27 6c 73 69 5f 62 75 66 66 65 72 5f 73 65 6c 65 63 74 27 2c 20 50 46 34 2c 20 27 27 2c 20 .('lsi_buffer_select',.PF4,.'',.
2460 27 6c 73 69 5f 62 75 66 66 65 72 5f 6b 65 79 5f 6d 61 70 27 29 3b 44 00 44 45 46 49 4e 45 5f 4b 'lsi_buffer_key_map');D.DEFINE_K
2480 45 59 20 28 27 6c 73 69 5f 62 75 66 66 65 72 5f 73 65 6c 65 63 74 27 2c 20 52 45 54 5f 4b 45 59 EY.('lsi_buffer_select',.RET_KEY
24a0 2c 20 27 27 2c 20 27 6c 73 69 5f 62 75 66 66 65 72 5f 6b 65 79 5f 6d 61 70 27 29 3b 3f 00 44 45 ,.'',.'lsi_buffer_key_map');?.DE
24c0 46 49 4e 45 5f 4b 45 59 20 28 27 6c 73 69 5f 62 75 66 66 65 72 5f 73 65 6c 65 63 74 27 2c 20 45 FINE_KEY.('lsi_buffer_select',.E
24e0 34 2c 20 27 27 2c 20 27 6c 73 69 5f 62 75 66 66 65 72 5f 6b 65 79 5f 6d 61 70 27 29 3b 00 40 00 4,.'',.'lsi_buffer_key_map');.@.
2500 44 45 46 49 4e 45 5f 4b 45 59 20 28 27 6d 6f 76 65 5f 76 65 72 74 69 63 61 6c 28 31 29 27 2c 20 DEFINE_KEY.('move_vertical(1)',.
2520 44 4f 57 4e 2c 20 27 27 2c 20 27 6c 73 69 5f 62 75 66 66 65 72 5f 6b 65 79 5f 6d 61 70 27 29 3b DOWN,.'',.'lsi_buffer_key_map');
2540 3f 00 44 45 46 49 4e 45 5f 4b 45 59 20 28 27 6d 6f 76 65 5f 76 65 72 74 69 63 61 6c 28 2d 31 29 ?.DEFINE_KEY.('move_vertical(-1)
2560 27 2c 20 55 50 2c 20 27 27 2c 20 27 6c 73 69 5f 62 75 66 66 65 72 5f 6b 65 79 5f 6d 61 70 27 29 ',.UP,.'',.'lsi_buffer_key_map')
2580 3b 00 35 00 44 45 46 49 4e 45 5f 4b 45 59 20 28 27 50 4f 53 49 54 49 4f 4e 20 28 42 45 47 49 4e ;.5.DEFINE_KEY.('POSITION.(BEGIN
25a0 4e 49 4e 47 5f 4f 46 20 28 6c 73 69 5f 6d 65 6e 75 5f 62 75 66 29 29 27 2c 00 38 00 20 20 20 4b NING_OF.(lsi_menu_buf))',.8....K
25c0 45 59 5f 4e 41 4d 45 20 28 4b 50 35 2c 20 53 48 49 46 54 5f 4b 45 59 29 2c 20 27 27 2c 20 27 6c EY_NAME.(KP5,.SHIFT_KEY),.'',.'l
25e0 73 69 5f 62 75 66 66 65 72 5f 6b 65 79 5f 6d 61 70 27 29 3b 2f 00 44 45 46 49 4e 45 5f 4b 45 59 si_buffer_key_map');/.DEFINE_KEY
2600 20 28 27 50 4f 53 49 54 49 4f 4e 20 28 45 4e 44 5f 4f 46 20 28 6c 73 69 5f 6d 65 6e 75 5f 62 75 .('POSITION.(END_OF.(lsi_menu_bu
2620 66 29 29 27 2c 00 38 00 20 20 20 4b 45 59 5f 4e 41 4d 45 20 28 4b 50 34 2c 20 53 48 49 46 54 5f f))',.8....KEY_NAME.(KP4,.SHIFT_
2640 4b 45 59 29 2c 20 27 27 2c 20 27 6c 73 69 5f 62 75 66 66 65 72 5f 6b 65 79 5f 6d 61 70 27 29 3b KEY),.'',.'lsi_buffer_key_map');
2660 2c 00 45 4e 44 50 52 4f 43 45 44 55 52 45 20 21 20 6c 73 69 5f 69 6e 69 74 69 61 6c 69 7a 65 5f ,.ENDPROCEDURE.!.lsi_initialize_
2680 62 75 66 66 65 72 5f 6b 65 79 5f 6d 61 70 02 00 21 0c 1e 00 6c 73 69 5f 69 6e 69 74 69 61 6c 69 buffer_key_map..!...lsi_initiali
26a0 7a 65 5f 62 75 66 66 65 72 5f 6b 65 79 5f 6d 61 70 3b ze_buffer_key_map;