summaryrefslogtreecommitdiff
path: root/support/lsedit/review/find_buffer.tpu
blob: faaf89e61768f2abaec998a627d01bf1ea6397bc (plain)
ofshex dumpascii
0000 19 00 50 52 4f 43 45 44 55 52 45 20 6c 73 69 5f 66 69 6e 64 5f 62 75 66 66 65 72 00 01 00 21 00 ..PROCEDURE.lsi_find_buffer...!.
0020 4c 00 21 20 50 72 6f 6d 70 74 20 66 6f 72 20 61 20 77 69 6c 64 2d 63 61 72 64 20 62 75 66 66 65 L.!.Prompt.for.a.wild-card.buffe
0040 72 20 6e 61 6d 65 20 61 6e 64 20 70 6f 73 69 74 69 6f 6e 20 69 6e 74 6f 20 74 68 65 20 66 69 72 r.name.and.position.into.the.fir
0060 73 74 20 62 75 66 66 65 72 20 74 68 61 74 3d 00 21 20 6d 61 74 63 68 65 73 2e 20 20 49 66 20 6e st.buffer.that=.!.matches...If.n
0080 6f 20 6d 61 74 63 68 69 6e 67 20 62 75 66 66 65 72 20 69 73 20 66 6f 75 6e 64 2c 20 74 68 65 6e o.matching.buffer.is.found,.then
00a0 20 63 72 65 61 74 65 20 6f 6e 65 2e 20 00 12 00 4c 4f 43 41 4c 20 62 75 66 66 65 72 5f 6e 61 6d .create.one.....LOCAL.buffer_nam
00c0 65 3b 01 00 21 00 26 00 21 20 50 72 6f 6d 70 74 20 74 68 65 20 75 73 65 72 20 66 6f 72 20 74 68 e;..!.&.!.Prompt.the.user.for.th
00e0 65 20 62 75 66 66 65 72 20 6e 61 6d 65 2e 2c 00 62 75 66 66 65 72 5f 6e 61 6d 65 20 3a 3d 20 52 e.buffer.name.,.buffer_name.:=.R
0100 45 41 44 5f 4c 49 4e 45 20 28 27 5f 46 69 6e 64 20 62 75 66 66 65 72 3a 20 27 29 3b 13 00 49 46 EAD_LINE.('_Find.buffer:.');..IF
0120 20 62 75 66 66 65 72 5f 6e 61 6d 65 20 3d 20 27 27 00 04 00 54 48 45 4e 09 00 20 20 20 52 45 54 .buffer_name.=.''...THEN.....RET
0140 55 52 4e 00 06 00 45 4e 44 49 46 3b 01 00 21 00 21 00 43 48 41 4e 47 45 5f 43 41 53 45 20 28 62 URN...ENDIF;..!.!.CHANGE_CASE.(b
0160 75 66 66 65 72 5f 6e 61 6d 65 2c 20 55 50 50 45 52 29 3b 00 27 00 6c 73 69 5f 66 69 6e 64 5f 62 uffer_name,.UPPER);.'.lsi_find_b
0180 75 66 66 65 72 5f 64 69 73 70 61 74 63 68 20 28 62 75 66 66 65 72 5f 6e 61 6d 65 29 3b 00 1e 00 uffer_dispatch.(buffer_name);...
01a0 45 4e 44 50 52 4f 43 45 44 55 52 45 20 21 20 6c 73 69 5f 66 69 6e 64 5f 62 75 66 66 65 72 02 00 ENDPROCEDURE.!.lsi_find_buffer..
01c0 21 0c 30 00 50 52 4f 43 45 44 55 52 45 20 6c 73 69 5f 66 69 6e 64 5f 62 75 66 66 65 72 5f 64 69 !.0.PROCEDURE.lsi_find_buffer_di
01e0 73 70 61 74 63 68 20 28 62 75 66 66 65 72 5f 6e 61 6d 65 29 0d 00 4c 4f 43 41 4c 20 61 6e 73 77 spatch.(buffer_name)..LOCAL.answ
0200 65 72 2c 00 11 00 20 20 20 20 20 20 62 75 66 66 65 72 5f 70 74 72 3b 00 01 00 20 00 2e 00 62 75 er,.........buffer_ptr;.......bu
0220 66 66 65 72 5f 70 74 72 20 3a 3d 20 6c 73 69 5f 6c 6f 6f 6b 75 70 5f 62 75 66 66 65 72 20 28 62 ffer_ptr.:=.lsi_lookup_buffer.(b
0240 75 66 66 65 72 5f 6e 61 6d 65 29 3b 01 00 21 00 35 00 21 20 49 66 20 61 20 6d 61 74 63 68 20 77 uffer_name);..!.5.!.If.a.match.w
0260 61 73 20 66 6f 75 6e 64 2c 20 74 68 65 6e 20 70 6f 73 69 74 69 6f 6e 20 74 6f 20 74 68 61 74 20 as.found,.then.position.to.that.
0280 62 75 66 66 65 72 2e 00 11 00 49 46 20 62 75 66 66 65 72 5f 70 74 72 20 3d 20 30 00 04 00 54 48 buffer....IF.buffer_ptr.=.0...TH
02a0 45 4e 34 00 20 20 20 61 6e 73 77 65 72 20 3a 3d 20 52 45 41 44 5f 4c 49 4e 45 20 28 27 4e 6f 20 EN4....answer.:=.READ_LINE.('No.
02c0 62 75 66 66 65 72 20 27 20 2b 20 62 75 66 66 65 72 5f 6e 61 6d 65 20 2b 21 00 20 20 20 20 20 20 buffer.'.+.buffer_name.+!.......
02e0 27 20 66 6f 75 6e 64 2e 20 20 43 72 65 61 74 65 3f 20 28 59 2f 4e 29 20 27 29 3b 00 1f 00 20 20 '.found...Create?.(Y/N).');.....
0300 20 43 48 41 4e 47 45 5f 43 41 53 45 20 28 61 6e 73 77 65 72 2c 20 55 50 50 45 52 29 3b 00 12 00 .CHANGE_CASE.(answer,.UPPER);...
0320 20 20 20 49 46 20 61 6e 73 77 65 72 20 3d 20 27 59 27 07 00 20 20 20 54 48 45 4e 00 31 00 20 20 ...IF.answer.=.'Y'.....THEN.1...
0340 20 20 20 20 62 75 66 66 65 72 5f 70 74 72 20 3a 3d 20 28 43 52 45 41 54 45 5f 42 55 46 46 45 52 ....buffer_ptr.:=.(CREATE_BUFFER
0360 20 28 62 75 66 66 65 72 5f 6e 61 6d 65 29 29 00 08 00 20 20 20 45 4e 44 49 46 06 00 45 4e 44 49 .(buffer_name))......ENDIF..ENDI
0380 46 3b 12 00 49 46 20 62 75 66 66 65 72 5f 70 74 72 20 3c 3e 20 30 04 00 54 48 45 4e 19 00 20 20 F;..IF.buffer_ptr.<>.0..THEN....
03a0 20 50 4f 53 49 54 49 4f 4e 20 28 62 75 66 66 65 72 5f 70 74 72 29 3b 00 28 00 20 20 20 4d 41 50 .POSITION.(buffer_ptr);.(....MAP
03c0 20 28 43 55 52 52 45 4e 54 5f 57 49 4e 44 4f 57 2c 20 43 55 52 52 45 4e 54 5f 42 55 46 46 45 52 .(CURRENT_WINDOW,.CURRENT_BUFFER
03e0 29 3b 27 00 20 20 20 4c 53 45 24 53 45 54 5f 53 54 41 54 55 53 5f 4c 49 4e 45 20 28 43 55 52 52 );'....LSE$SET_STATUS_LINE.(CURR
0400 45 4e 54 5f 57 49 4e 44 4f 57 29 00 05 00 45 4e 44 49 46 00 0d 00 45 4e 44 50 52 4f 43 45 44 55 ENT_WINDOW)...ENDIF...ENDPROCEDU
0420 52 45 3b 00 02 00 21 0c 26 00 50 52 4f 43 45 44 55 52 45 20 6c 73 69 5f 6c 6f 6f 6b 75 70 5f 62 RE;...!.&.PROCEDURE.lsi_lookup_b
0440 75 66 66 65 72 20 28 77 69 6c 64 63 61 72 64 29 10 00 4c 4f 43 41 4c 20 74 68 69 73 5f 73 70 6f uffer.(wildcard)..LOCAL.this_spo
0460 74 2c 0c 00 20 20 20 20 20 20 64 75 6d 6d 79 2c 0f 00 20 20 20 20 20 20 65 78 65 63 5f 73 74 72 t,........dummy,........exec_str
0480 2c 00 15 00 20 20 20 20 20 20 63 75 72 72 5f 62 75 66 66 5f 73 70 6f 74 2c 00 12 00 20 20 20 20 ,.........curr_buff_spot,.......
04a0 20 20 62 75 66 66 65 72 5f 6c 69 6e 65 2c 13 00 20 20 20 20 20 20 77 69 6c 64 63 61 72 64 5f 70 ..buffer_line,........wildcard_p
04c0 61 74 2c 00 11 00 20 20 20 20 20 20 62 75 66 66 65 72 5f 70 74 72 2c 00 10 00 20 20 20 20 20 20 at,.........buffer_ptr,.........
04e0 62 75 66 66 5f 6e 61 6d 65 3b 00 00 08 00 4f 4e 5f 45 52 52 4f 52 1f 00 20 20 20 49 46 20 65 72 buff_name;....ON_ERROR.....IF.er
0500 72 6f 72 20 3c 3e 20 74 70 75 24 5f 73 74 72 6e 6f 74 66 6f 75 6e 64 00 07 00 20 20 20 54 48 45 ror.<>.tpu$_strnotfound......THE
0520 4e 00 4e 00 20 20 20 20 20 20 4d 45 53 53 41 47 45 20 28 27 55 6e 65 78 70 65 63 74 65 64 20 65 N.N.......MESSAGE.('Unexpected.e
0540 72 72 6f 72 20 69 6e 20 46 49 4e 44 5f 42 55 46 46 45 52 20 61 74 20 6c 69 6e 65 20 27 20 2b 20 rror.in.FIND_BUFFER.at.line.'.+.
0560 53 54 52 20 28 65 72 72 6f 72 5f 6c 69 6e 65 29 29 3b 1b 00 20 20 20 20 20 20 50 4f 53 49 54 49 STR.(error_line));........POSITI
0580 4f 4e 20 28 74 68 69 73 5f 73 70 6f 74 29 3b 00 0f 00 20 20 20 20 20 20 52 45 54 55 52 4e 20 30 ON.(this_spot);.........RETURN.0
05a0 3b 00 0b 00 20 20 20 20 20 20 61 62 6f 72 74 00 09 00 20 20 20 45 4e 44 49 46 3b 00 0c 00 45 4e ;.........abort......ENDIF;...EN
05c0 44 4f 4e 5f 45 52 52 4f 52 20 00 00 19 00 74 68 69 73 5f 73 70 6f 74 20 3a 3d 20 4d 41 52 4b 20 DON_ERROR.....this_spot.:=.MARK.
05e0 28 4e 4f 4e 45 29 3b 00 24 00 64 75 6d 6d 79 20 3a 3d 20 6c 73 69 5f 63 72 65 61 74 65 5f 62 75 (NONE);.$.dummy.:=.lsi_create_bu
0600 66 66 65 72 5f 6d 65 6e 75 20 28 31 29 3b 49 00 64 75 6d 6d 79 20 3a 3d 20 6c 73 69 5f 62 75 69 ffer_menu.(1);I.dummy.:=.lsi_bui
0620 6c 64 5f 70 61 74 74 65 72 6e 20 28 27 5c 3c 5c 5b 2a 20 5d 27 20 2b 20 77 69 6c 64 63 61 72 64 ld_pattern.('\<\[*.]'.+.wildcard
0640 2c 20 6c 73 69 5f 6c 6f 6f 6b 75 70 5f 62 75 66 66 65 72 5f 70 61 74 29 3b 00 24 00 49 46 20 47 ,.lsi_lookup_buffer_pat);.$.IF.G
0660 45 54 5f 49 4e 46 4f 20 28 64 75 6d 6d 79 2c 20 27 74 79 70 65 27 29 20 3d 20 53 54 52 49 4e 47 ET_INFO.(dummy,.'type').=.STRING
0680 04 00 54 48 45 4e 36 00 20 20 20 6c 73 69 5f 6c 6f 6f 6b 75 70 5f 62 75 66 66 65 72 5f 70 61 74 ..THEN6....lsi_lookup_buffer_pat
06a0 20 3a 3d 20 22 22 20 26 20 6c 73 69 5f 6c 6f 6f 6b 75 70 5f 62 75 66 66 65 72 5f 70 61 74 04 00 .:=."".&.lsi_lookup_buffer_pat..
06c0 45 4c 53 45 41 00 20 20 20 65 78 65 63 5f 73 74 72 20 3a 3d 20 27 6c 73 69 5f 6c 6f 6f 6b 75 70 ELSEA....exec_str.:=.'lsi_lookup
06e0 5f 62 75 66 66 65 72 5f 70 61 74 3a 3d 27 20 2b 20 6c 73 69 5f 6c 6f 6f 6b 75 70 5f 62 75 66 66 _buffer_pat:='.+.lsi_lookup_buff
0700 65 72 5f 70 61 74 3b 00 15 00 20 20 20 45 58 45 43 55 54 45 20 28 65 78 65 63 5f 73 74 72 29 00 er_pat;......EXECUTE.(exec_str).
0720 06 00 45 4e 44 49 46 3b 39 00 21 6c 73 69 5f 6c 6f 6f 6b 75 70 5f 62 75 66 66 65 72 5f 70 61 74 ..ENDIF;9.!lsi_lookup_buffer_pat
0740 20 3a 3d 20 4c 49 4e 45 5f 42 45 47 49 4e 20 26 20 41 52 42 28 31 29 20 26 20 77 69 6c 64 63 61 .:=.LINE_BEGIN.&.ARB(1).&.wildca
0760 72 64 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 rd;.'.POSITION.(BEGINNING_OF.(ls
0780 69 5f 6d 65 6e 75 5f 62 75 66 29 29 3b 00 3f 00 63 75 72 72 5f 62 75 66 66 5f 73 70 6f 74 20 3a i_menu_buf));.?.curr_buff_spot.:
07a0 3d 20 53 45 41 52 43 48 20 28 4c 49 4e 45 5f 42 45 47 49 4e 20 26 20 27 2a 27 2c 20 46 4f 52 57 =.SEARCH.(LINE_BEGIN.&.'*',.FORW
07c0 41 52 44 2c 20 4e 4f 5f 45 58 41 43 54 29 3b 00 1a 00 50 4f 53 49 54 49 4f 4e 20 28 63 75 72 72 ARD,.NO_EXACT);...POSITION.(curr
07e0 5f 62 75 66 66 5f 73 70 6f 74 29 3b 12 00 4d 4f 56 45 5f 56 45 52 54 49 43 41 4c 20 28 31 29 3b _buff_spot);..MOVE_VERTICAL.(1);
0800 41 00 62 75 66 66 65 72 5f 6c 69 6e 65 20 3a 3d 20 53 45 41 52 43 48 20 28 6c 73 69 5f 6c 6f 6f A.buffer_line.:=.SEARCH.(lsi_loo
0820 6b 75 70 5f 62 75 66 66 65 72 5f 70 61 74 2c 20 46 4f 52 57 41 52 44 2c 20 4e 4f 5f 45 58 41 43 kup_buffer_pat,.FORWARD,.NO_EXAC
0840 54 29 3b 00 12 00 49 46 20 62 75 66 66 65 72 5f 6c 69 6e 65 20 3d 20 30 04 00 54 48 45 4e 2a 00 T);...IF.buffer_line.=.0..THEN*.
0860 20 20 20 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 69 5f 6d ...POSITION.(BEGINNING_OF.(lsi_m
0880 65 6e 75 5f 62 75 66 29 29 3b 43 00 20 20 20 62 75 66 66 65 72 5f 6c 69 6e 65 20 3a 3d 20 53 45 enu_buf));C....buffer_line.:=.SE
08a0 41 52 43 48 20 28 6c 73 69 5f 6c 6f 6f 6b 75 70 5f 62 75 66 66 65 72 5f 70 61 74 2c 20 46 4f 52 ARCH.(lsi_lookup_buffer_pat,.FOR
08c0 57 41 52 44 2c 20 4e 4f 5f 45 58 41 43 54 29 00 06 00 45 4e 44 49 46 3b 12 00 49 46 20 62 75 66 WARD,.NO_EXACT)...ENDIF;..IF.buf
08e0 66 65 72 5f 6c 69 6e 65 20 3d 20 30 04 00 54 48 45 4e 18 00 20 20 20 50 4f 53 49 54 49 4f 4e 20 fer_line.=.0..THEN.....POSITION.
0900 28 74 68 69 73 5f 73 70 6f 74 29 3b 0b 00 20 20 20 52 45 54 55 52 4e 20 30 00 04 00 45 4c 53 45 (this_spot);.....RETURN.0...ELSE
0920 1a 00 20 20 20 50 4f 53 49 54 49 4f 4e 20 28 62 75 66 66 65 72 5f 6c 69 6e 65 29 3b 26 00 20 20 .....POSITION.(buffer_line);&...
0940 20 62 75 66 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 .buff_name.:=.lsi_strip_buffer_n
0960 61 6d 65 3b 36 00 20 20 20 6c 73 65 24 64 6f 5f 63 6f 6d 6d 61 6e 64 20 28 27 47 4f 54 4f 20 42 ame;6....lse$do_command.('GOTO.B
0980 55 46 46 45 52 20 22 27 20 2b 20 62 75 66 66 5f 6e 61 6d 65 20 2b 20 27 22 27 29 3b 20 00 20 20 UFFER."'.+.buff_name.+.'"');....
09a0 20 62 75 66 66 65 72 5f 70 74 72 20 3a 3d 20 43 55 52 52 45 4e 54 5f 42 55 46 46 45 52 3b 18 00 .buffer_ptr.:=.CURRENT_BUFFER;..
09c0 20 20 20 50 4f 53 49 54 49 4f 4e 20 28 74 68 69 73 5f 73 70 6f 74 29 3b 14 00 20 20 20 52 45 54 ...POSITION.(this_spot);.....RET
09e0 55 52 4e 20 62 75 66 66 65 72 5f 70 74 72 06 00 45 4e 44 49 46 3b 20 00 45 4e 44 50 52 4f 43 45 URN.buffer_ptr..ENDIF;..ENDPROCE
0a00 44 55 52 45 20 21 20 6c 73 69 5f 6c 6f 6f 6b 75 70 5f 62 75 66 66 65 72 20 00 6c 73 69 5f 6c 6f DURE.!.lsi_lookup_buffer..lsi_lo
0a20 6f 6b 75 70 5f 62 75 66 66 65 72 5f 70 61 74 20 3a 3d 20 41 52 42 28 31 29 3b okup_buffer_pat.:=.ARB(1);