Performance improvements for regex searching, most notably:

- Use the grid data directly instead of copying it.

- Special case the most typical one byte character cells and use memcmp
  for multiple bytes instead of a handrolled loop.

- Hoist regcomp out of the loop into the calling functions.

GitHub issue 2143.

Also a man page from from jmc@.
1 file changed
tree: 5c2b78fa63bdc490e61c24c5cfd37e1239865e87
  1. .github/
  2. .gitignore
  3. .mailmap
  4. .travis.yml
  5. CHANGES
  6. COPYING
  7. Makefile.am
  8. README
  9. README.ja
  10. SYNCING
  11. alerts.c
  12. arguments.c
  13. attributes.c
  14. autogen.sh
  15. cfg.c
  16. client.c
  17. cmd-attach-session.c
  18. cmd-bind-key.c
  19. cmd-break-pane.c
  20. cmd-capture-pane.c
  21. cmd-choose-tree.c
  22. cmd-command-prompt.c
  23. cmd-confirm-before.c
  24. cmd-copy-mode.c
  25. cmd-detach-client.c
  26. cmd-display-menu.c
  27. cmd-display-message.c
  28. cmd-display-panes.c
  29. cmd-find-window.c
  30. cmd-find.c
  31. cmd-if-shell.c
  32. cmd-join-pane.c
  33. cmd-kill-pane.c
  34. cmd-kill-server.c
  35. cmd-kill-session.c
  36. cmd-kill-window.c
  37. cmd-list-buffers.c
  38. cmd-list-clients.c
  39. cmd-list-keys.c
  40. cmd-list-panes.c
  41. cmd-list-sessions.c
  42. cmd-list-windows.c
  43. cmd-load-buffer.c
  44. cmd-lock-server.c
  45. cmd-move-window.c
  46. cmd-new-session.c
  47. cmd-new-window.c
  48. cmd-parse.y
  49. cmd-paste-buffer.c
  50. cmd-pipe-pane.c
  51. cmd-queue.c
  52. cmd-refresh-client.c
  53. cmd-rename-session.c
  54. cmd-rename-window.c
  55. cmd-resize-pane.c
  56. cmd-resize-window.c
  57. cmd-respawn-pane.c
  58. cmd-respawn-window.c
  59. cmd-rotate-window.c
  60. cmd-run-shell.c
  61. cmd-save-buffer.c
  62. cmd-select-layout.c
  63. cmd-select-pane.c
  64. cmd-select-window.c
  65. cmd-send-keys.c
  66. cmd-set-buffer.c
  67. cmd-set-environment.c
  68. cmd-set-option.c
  69. cmd-show-environment.c
  70. cmd-show-messages.c
  71. cmd-show-options.c
  72. cmd-source-file.c
  73. cmd-split-window.c
  74. cmd-swap-pane.c
  75. cmd-swap-window.c
  76. cmd-switch-client.c
  77. cmd-unbind-key.c
  78. cmd-wait-for.c
  79. cmd.c
  80. colour.c
  81. compat.h
  82. compat/
  83. configure.ac
  84. control-notify.c
  85. control.c
  86. environ.c
  87. example_tmux.conf
  88. file.c
  89. format-draw.c
  90. format.c
  91. grid-view.c
  92. grid.c
  93. input-keys.c
  94. input.c
  95. job.c
  96. key-bindings.c
  97. key-string.c
  98. layout-custom.c
  99. layout-set.c
  100. layout.c
  101. log.c
  102. logo/
  103. mdoc2man.awk
  104. menu.c
  105. mode-tree.c
  106. names.c
  107. notify.c
  108. options-table.c
  109. options.c
  110. osdep-aix.c
  111. osdep-cygwin.c
  112. osdep-darwin.c
  113. osdep-dragonfly.c
  114. osdep-freebsd.c
  115. osdep-hpux.c
  116. osdep-linux.c
  117. osdep-netbsd.c
  118. osdep-openbsd.c
  119. osdep-sunos.c
  120. osdep-unknown.c
  121. paste.c
  122. presentations/
  123. proc.c
  124. regress/
  125. regsub.c
  126. resize.c
  127. screen-redraw.c
  128. screen-write.c
  129. screen.c
  130. server-client.c
  131. server-fn.c
  132. server.c
  133. session.c
  134. spawn.c
  135. status.c
  136. style.c
  137. tmux.1
  138. tmux.c
  139. tmux.h
  140. tools/
  141. tty-acs.c
  142. tty-keys.c
  143. tty-term.c
  144. tty.c
  145. utf8.c
  146. window-buffer.c
  147. window-client.c
  148. window-clock.c
  149. window-copy.c
  150. window-tree.c
  151. window.c
  152. xmalloc.c
  153. xmalloc.h
  154. xterm-keys.c