1SEARCH_HISTORY (in Makefile)
2Version: 0.01
3
4E-mail: filipg@paranoia.com       (best)
5        fmgst+@pitt.edu           (so so)
6
7----------------------------------------------------------------------------------
8
9Intro:
10        This patch adds the ability to search for words and phrases in
11	the History buffer.
12
13Do I
14Need
15It:
16	If you use the "SCROLL MODE" (History Buffer) and wish to be able
17	to search said buffer for words and phrases (case-less search is
18	supported, but no regexp's!) then this patch is for you.
19
20About
21History
22Buffer
23Search:
24	The History Buffer is a circular buffer[+] of a preset number of
25	lines that holds the contents of your previous 'screens'. I want
26	to point out that this buffer is not a "carbon copy" of
27	_everything_ that you have had on your screens. In fact, some
28	programs can 'fool' minicom into not saving even one line of what
29	was perhaps a dozen screen-fulls of information! (ie. lynx) Still,
30	even with these problems, and the fact that a 5000 line buffer
31	(maximum) increases the size of the minicom executable to several
32	megabytes (!!), the history buffer is _very_ handy. I always wanted
33	an ability to search this buffer (because 5000 lines is a lot of
34	info to scan visually!) but could not wait any longer for _someone
35	else_ to do it... so here we are :-)
36
37Notice:
38	To begin using this patch, you must ensure that your History Buffer
39	is enabled in the Options screen. Enter minicom as usual and open
40	up the Options screen with "C-A O". This will display a menu:
41
42            +=====[configuration]======+
43            | Filenames and paths      |
44            | File transfer protocols  |
45            | Serial port setup        |
46            | Modem and dialing        |
47            | Screen and keyboard      |< Select this option
48            | Save setup as dfl        |
49            | Save setup as..          |
50            | Exit                     |
51            +==========================+
52
53	And a new menu will pop up:
54
55              +=================[Screen and keyboard]=================+
56              |                                                       |
57              | A - Command key is         : ^A                       |
58              | B - Backspace key sends    : BS                       |
59              | C - Status line is         : enabled                  |
60              | D - Alarm sound            : No                       |
61              | E - Foreground Color (menu): YELLOW                   |
62            +=| F - Background Color (menu): BLUE                     |
63            | | G - Foreground Color (term): CYAN                     |
64            | | H - Background Color (term): BLACK                    |
65            | | I - Foreground Color (stat): GREEN                    |
66            | | J - Background Color (stat): BLACK                    |
67            | | K - History Buffer Size    : 2000   <<  <<   <<       |<<
68            | | L - Macros file            : .macros                  |
69            | | M - Edit Macros                                       |
70            | | N - Macros enabled         : Yes                      |
71            +=|                                                       |
72              |  Change which setting?  (Esc to exit)                 |
73              +=======================================================+
74
75	The line you want to edit is marked with "<<"'s. Even though
76	the default in minicom is 250 buffer lines, you may wish to
77	increase it to something more reasonable. 2000 works for me.
78	Hit ESC, and move to "Save setup as dfl" in the previous menu
79	and select to save the current configuration.
80
81Acti-
82vation:
83	I assume that you have an _existing_ and configured version of
84	minicom on your system. If not, please see the minicom man
85	page and setup everything _first_!
86
87	Unless the "-D_SEARCH_HISTORY" option in the "OPFLAGS" in the
88	Makefile was defined _before_ the current minicom you have was
89	built, you will need to re-compile. Apply all the patches you
90	want, edit the Makefile to active them (it's very simple), and
91	type "make".
92
93	The minicom binary generated from the above compliation, will
94	have all the necessary code to search the history buffer. If
95	you do not plan to debug (there are no bugs :-).. you may wish
96	to "strip minicom" to remove debugging info and make the file
97	a bit smaller. This is optional.
98
99Note:
100	You can not search the history buffer until there is something
101	in it. This means that you will need to connect to some service
102	or BBS to actually test the searching function as nothing short
103	that will add any lines to the History Buffer!
104
105Status
106Line:
107	If enabled (I suggest that you do it for a while), the status
108	line is used to inform you of the allowed key-commands and other
109	info. The typical status line for minicom looks like this:
110
111CTRL-A Z for help |115200 8N1 | NOR | Minicom 1.75 1996 | VT102 | Online 03:37
112
113	When you enter the History Buffer view mode, using "C-A B", this
114	status line will change to:
115
116HISTORY: U=Up1 D=Down1 F=PgDn B=PgUp s=Srch S=CaseLess N=NextHit ESC=Exit
117
118	Where:
119
120      Letter   Note     Function & Notes
121      ======   ====     ===================================================
122	U		Move up one line
123	D		Move down one line
124	F		Move down one page (<SPACE> also works)
125	B		Move up one page
126	s(or /)	[+]	Search (from beginning - oldest end - of buffer)
127			for _exactly_ the pattern you can enter.
128			Note: if you hear a <BEEP>, nothing was found!
129	S(or \)	[+]	Search (from beginning - oldest end - of buffer)
130			for the pattern you can enter _ignoring case_.
131			Note: if you hear a <BEEP>, nothing was found!
132	N		Search for _next_ match (ie. continue search first
133			initiated with either the \ or / command keys).
134      <ESC>		Exit from HISTORY mode back to the terminal session.
135
136Note [+]:
137	Both search commands will display another status line and enter
138	the input mode:
139
140SEARCH FOR (ESC=Exit)(nn):
141
142	Where you will be able to type in the word(s)/phrase to search
143	for. The "(nn)" is the maximum number of characters (this can
144	be changed in ../src/minicom.h as MAX_SEARCH (set to 30 by default))
145	Note that hitting <ESC> will take you back to the HISTORY mode!
146
147	When you accept the entry, the display will be move to the first
148	occurence of the search term. If none is found, you will just hear
149	a <BEEP> (tone). Otherwise, the first match will be highlighted
150	(and advanced to the top of the page)... other matches (if any)
151	will also be high-lighted. You can now press "n" to advance to the
152	next hit (if none are found from the current match to the end of
153	the end of the document, you wee get a <BEEP> AND pressing 'n'
154	again will wrap you around to the first match!). You can also
155	use the page up/down and line up/down keys... any matches of
156	the pattern that are encountered this way will ALSO be high-
157	lighted.
158
159	Hitting <ESC> at any time will dismiss the HISTORY screen and
160	restore the terminal session. If, for some reason, the screen is
161	not correctly redrawn, hitting ^R (C-R) will refresh it.
162
163Bugs:
164	Minicom appears to have some windowing bugs that show themselves
165	when the screen is not correctly restored when windows are closed.
166	These bugs seem to occure more often when used with "odd" console
167	screen sizes (I run 100x37 :-) and now and then I need to refresh
168	the screen with ^R (C-R) after window-operations. I will track
169	this down when I have some time... It's been in minicom as long as
170	I can remember... it just never bothered me enough :-)
171
172	Feel free to e-mail me with suggestions and feedback:
173
174E-mail: filipg@paranoia.com      	 (best)
175        fmgst+@pitt.edu          	 (so so)
176
177WWW:	http://www.paranoia.com/~filipg/
178	http://www.repairfaq.org/
179
180----------------------------------------------------------------------------------
181
182----------------
183// fmg 8/20/97 - Added History Buffer search (very unstable)
184		 Lots of bugs found and squashed... floor got
185		 really slippery for a while... yuck :-)
186
187----------------
188// fmg 8/21/97 - Added case and case-less options and fixed 'N' search
189		 Started using this minicom as "production". 3 new bugs
190		 found and squashed.
191
192----------------
193// fmg 8/22/97 - Rewrote parts of code, cleaned up variables, #ifdef'ed
194		 everything, and tested make'ing. Added display of
195		 compile options on startup screen. No bugs found.
196		 (sorry, does not mean there aren't any :-)
197
198----------------
199// fmg 8/31/97 - Finished up and cleaned up this page :-)
200
201