nicm
fee585ea14
Include width in error message.
2020-06-09 10:37:00 +00:00
nicm
c60389acbf
It is not sensible to store pointers into an array we are going to
...
realloc (duh), use two trees instead.
2020-06-09 08:34:33 +00:00
nicm
a4a3d89598
Use bitshifts instead of a union for encoding UTF-8 into 32 bits, which
...
is more friendly to GCC3.
Reported by and ok aoyama@.
2020-06-06 12:38:32 +00:00
nicm
d919fa1ed0
Change how panes are resized so that the code is clearer and if the pane
...
is resized multiple times during one event loop, it is forced to resize
at the end. Also don't zoom/unzoom in switch-client if the pane hasn't
changed. GitHub issue 2260.
2020-06-05 11:20:51 +00:00
nicm
03b2998abe
Do not take the address of a potentially unaligned member.
2020-06-05 09:35:41 +00:00
nicm
c908d2039f
Fix various confusion about am vs xenl.
2020-06-05 09:32:15 +00:00
nicm
4e5e2c19d0
Now that we mostly only search visible text, the rate limit on repeating
...
search does not seem to be necessary, remove it for the moment.
2020-06-05 07:44:42 +00:00
nicm
c586208991
Add support for pausing a pane when the output buffered for a control
...
mode client gets too far behind. The pause-after flag with a time is set
on the pane with refresh-client -f and a paused pane may be resumed with
refresh-client -A. GitHub issue 2217.
2020-06-05 07:33:57 +00:00
nicm
d9cd493d09
Reset wrapped flag when clearing or moving lines, GitHub issue 2215.
2020-06-04 21:41:31 +00:00
nicm
2154e1f4fb
Search marks outside the visible text are not useful, so there is no
...
point in allocating a big buffer to store them - just allocate the
visible text size, and ignore any outside.
2020-06-04 21:40:27 +00:00
nicm
c4732af006
Some improvements to performance of searching:
...
- Do not allow searches to be repeated at intervals of less than 50
milliseconds, to prevent a huge queue of repeat key presses blocking
up everything for ages.
- If the search text hasn't changed, the match count can't have changed
and there is no need to do a full search, so only search the visible
text. This includes both scrolling and repeating the search.
- Do not redraw twice when jumping to the search location.
GitHub issue 2258.
2020-06-04 20:41:57 +00:00
nicm
4403afe29c
A } can go on the same line as a command.
2020-06-04 16:06:01 +00:00
nicm
4ea3370316
Shorten some long lines.
2020-06-04 10:36:28 +00:00
nicm
a9bf5367da
Correct respawn-* - they don't always use the creation command.
2020-06-04 10:34:40 +00:00
nicm
dc74d2e054
Make the -no-clear command variants not clear the search marks either.
2020-06-04 10:24:14 +00:00
nicm
d3c5202f50
Allow strings to span multiple lines - newlines and any leading
...
whitespace are removed, as well as any following comments that couldn't
be part of a format. This allows long formats or other strings to be
annotated and indented.
2020-06-04 08:30:44 +00:00
nicm
b3782d2dc8
Instead of using a custom parse function to process {}, treat it as a
...
set of statements and parse with yacc, then convert back to a string as
the last step. This means the rules are consistent inside and outside
{}, %if and friends work at the right time, and the final result isn't
littered with unnecessary newlines.
2020-06-04 07:12:05 +00:00
nicm
3f6af4156f
Make paste -p the default for ], GitHub issue 2248.
2020-06-03 16:35:40 +00:00
nicm
4694e9a2b6
Move the code to set up a padding cell into grid.c.
2020-06-02 20:51:46 +00:00
nicm
2a4d4bda2b
Allow UTF-8 characters of width 0 to be stored, it is useful to be able
...
to put padding cells in as width 0.
2020-06-02 20:10:23 +00:00
nicm
f5366ff828
Missing ; in previous.
2020-06-02 19:16:46 +00:00
nicm
5fbae8c8c6
Fire copy-pipe command even if there is no text, means it works if it
...
has side effects.
2020-06-02 19:10:26 +00:00
nicm
7e501f1993
UTF-8 keys need to be big endian so the size bits are at the top.
2020-06-02 17:17:44 +00:00
nicm
822ee4e0a6
Fail rather than fatal on UTF-8 width 0.
2020-06-02 11:29:00 +00:00
nicm
f3931497f8
Use CLOCK_MONOTONIC for timer measurement and add a timestamp to control
...
mode %output blocks.
2020-06-02 08:17:27 +00:00
nicm
563b7331da
Remove blocks from queue when pane disappears.
2020-06-01 21:08:05 +00:00
nicm
8339702d47
Check the right thing for maximum client buffer size.
2020-06-01 20:58:42 +00:00
nicm
9819470058
Change format callback to return value rather than storing it in the entry.
2020-06-01 19:39:25 +00:00
nicm
674ec410b7
Try without cursor/keypad flags if a key doesn't exist, and limit ctrl
...
key translation to ASCII keys. Fixes send-keys, GitHub issue 2247.
2020-06-01 16:09:35 +00:00
nicm
a54a88edd6
Instead of sending all data to control mode clients as fast as possible,
...
add a limit of how much data will be sent to the client and try to use
it for panes with some degree of fairness. GitHub issue 2217, with
George Nachman.
2020-06-01 09:43:00 +00:00
nicm
175e45005f
Add -i to find-window to ignore case.
2020-05-29 13:42:13 +00:00
nicm
bda2a0282a
Fix ASCII keys with send-keys -l.
2020-05-27 14:45:35 +00:00
nicm
f336599a3a
Make padding cell a valid character.
2020-05-27 06:23:23 +00:00
nicm
2ced370bee
Tweak some out of date bits, reported by bcgraham.
2020-05-26 13:19:21 +00:00
nicm
ff6f2ff6d9
Return new character properly when converting to data.
2020-05-26 12:50:03 +00:00
nicm
392b381d1c
Apply -n when only one pane in the window.
2020-05-26 09:01:03 +00:00
nicm
370f0bb98d
Remove leftover debug logging and fix comparison.
2020-05-26 08:56:48 +00:00
nicm
ca0166f26f
Do not try to use the last marked pane if it is invalid.
2020-05-26 08:47:50 +00:00
nicm
ea610a3119
Pass the stdout file descriptor from the client as well as stdin and use
...
them for control clients directly instead of passing everything via the
client.
2020-05-26 08:41:47 +00:00
nicm
6f03e49e68
Use the internal representation for UTF-8 keys instead of wchar_t and
...
drop some code only needed for that.
2020-05-25 18:57:24 +00:00
nicm
35779d655d
Fix definition of padding cells so they are not extended cells.
2020-05-25 18:55:36 +00:00
nicm
49ec074271
Tidy up new UTF-8 code and make it more generic.
2020-05-25 18:19:29 +00:00
nicm
dc893405e1
Fix some error strings, from Kris Katterjohn.
2020-05-25 18:17:14 +00:00
nicm
bbfb44e9b2
Make some data types consistent.
2020-05-25 15:02:25 +00:00
nicm
4589297e43
Do not attempt to divide by zero when working out copy position.
2020-05-25 12:12:58 +00:00
nicm
26e8e467e8
Include title for the width of the menu.
2020-05-25 11:59:50 +00:00
nicm
3a5219c6d0
Instead of storing all UTF-8 characters in the extended cell which means
...
that 14 bytes are wasted for each character in the BMP, only store
characters of three bytes or less in the cell itself and store others
(outside the BMP or with combining characters) in a separate global
tree. Can reduce grid memory use for heavy Unicode users by around 30%.
2020-05-25 09:32:10 +00:00
nicm
14a9fd58d5
Remove leftover call to control_free_offsets and do not use for
...
non-control clients.
2020-05-24 14:45:00 +00:00
nicm
18aab90959
Give control code its own state struct.
2020-05-24 09:40:17 +00:00
nicm
6c82982711
Now the tty has a pointer back to the client there is no point (and a
...
bit confusing) in it keeping a copy of the fd as well. Remove it.
2020-05-24 09:13:06 +00:00