HistSearch
上传用户:tianjinjs
上传日期:2007-01-05
资源大小:309k
文件大小:8k
源码类别:

Modem编程

开发平台:

Unix_Linux

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