49ec074271
Tidy up new UTF-8 code and make it more generic.
2020-05-25 18:19:29 +00:00
b34af611a5
Merge branch 'obsd-master'
2020-05-25 18:01:20 +01:00
bbfb44e9b2
Make some data types consistent.
2020-05-25 15:02:25 +00:00
bb5a1925ab
Merge branch 'obsd-master'
2020-05-25 12:01:19 +01:00
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
daa93b3fdc
Merge branch 'obsd-master'
2019-11-25 16:01:27 +00:00
1ebd8c1234
Add p format modifier for padding to width.
2019-11-25 15:04:15 +00:00
103e44d936
Merge branch 'obsd-master'
2019-05-26 21:02:26 +01:00
e90d4a6021
Add formats for word and line under the mouse and use them to add some
...
items to the pane menu.
2019-05-26 17:34:45 +00:00
19a3a9ee20
Merge branch 'obsd-master'
2019-05-23 21:02:30 +01:00
f006116bac
Environment variables can start with { also.
2019-05-23 18:22:13 +00:00
43431e7e84
Merge branch 'obsd-master'
2019-05-23 17:02:25 +01:00
27bfb56ad5
Break the argument escaping code into a separate function and use it to
...
escape key bindings in list-keys. Also escape ~ and ; and $ properly.
2019-05-23 14:03:44 +00:00
962f255ee8
Merge branch 'obsd-master'
2019-03-18 21:24:49 +00:00
979313832c
Extend the #[] style syntax and use that together with previous format
...
changes to allow the status line to be entirely configured with a single
option.
Now that it is possible to configure their content, enable the existing
code that lets the status line be multiple lines in height. The status
option can now take a value of 2, 3, 4 or 5 (as well as the previous on
or off) to configure more than one line. The new status-format array
option configures the format of each line, the default just references
the existing status-* options, although some of the more obscure status
options may be eliminated in time.
Additions to the #[] syntax are: "align" to specify alignment (left,
centre, right), "list" for the window list and "range" to configure
ranges of text for the mouse bindings.
The "align" keyword can also be used to specify alignment of entries in
tree mode and the pane status lines.
2019-03-18 20:53:33 +00:00
e62e17d046
Merge branch 'obsd-master'
...
Conflicts:
tmux.1
window.c
2017-06-05 11:59:38 +01:00
467ece53e6
Remove unused variable.
2017-06-04 09:02:57 +00:00
8149bc3fa6
Be more strict about escape sequences that rename windows or set titles:
...
ignore any that not valid UTF-8 outright, and for good measure pass the
result through our UTF-8-aware vis(3).
2017-06-04 09:02:36 +00:00
73b9328c1f
Merge branch 'obsd-master'
...
Conflicts:
window-buffer.c
2017-06-01 18:29:36 +01:00
248aa54bfd
Style and spacing nits.
2017-05-31 17:56:48 +00:00
c2b53598ad
Bad merge.
2017-03-21 14:48:44 +00:00
67d2335130
Fix a couple of argument types.
2017-03-17 14:51:41 +00:00
044999ce6d
Merge branch 'obsd-master'
2017-01-18 12:01:11 +00:00
faa0570309
Plain stravis() because it will mangle UTF-8 characters, so add
...
utf8_stravis() which calls our existing utf8_strvis() and use it instead
2017-01-18 10:08:05 +00:00
b9dc855016
Merge branch 'obsd-master'
...
Conflicts:
format.c
osdep-openbsd.c
2016-10-12 09:45:49 +01:00
8b804fb589
Support UTF-8 entry into the command prompt.
2016-10-11 07:11:40 +00:00
6c94774b70
Add support for using utf8proc with --enable-utf8proc, useful for platforms
...
(like OS X) where the system implementation is crap. From Joshua Rubin.
2016-09-01 20:40:03 +01:00
7a2fed494b
Merge branch 'obsd-master'
2016-05-28 02:01:10 +01:00
9892d80d6f
Most of the utf8_data is fixed so simplify utf8_set to use a memcpy.
2016-05-27 22:57:27 +00:00
65e4c57d3a
Only assume width 1 when wcwidth() returns -1 on non-OpenBSD platforms.
2016-04-29 12:47:15 +01:00
a9d501e975
Merge branch 'obsd-master'
2016-04-29 12:01:09 +01:00
7abdfbe20e
OpenBSD wcwidth() is sensible and complete so if it returns -1 it means
...
that a character is not printable, so return to ignoring such
characters.
2016-04-29 09:11:19 +00:00
55fdaab365
Merge branch 'obsd-master'
2016-04-27 12:01:10 +01:00
23fdbc9ea6
Loads of platforms appear to have old or broken Unicode character type
...
information and are missing widths for relatively common Unicode
characters (so mbtowc() works, but wcwidth() fails). So if wcwidth()
returns -1, assume a width of 1 instead of ignoring the character.
2016-04-27 09:36:25 +00:00
819ad1a007
Merge branch 'obsd-master'
2016-04-26 10:01:16 +01:00
d303e55258
Log wcwidth() and mbtowc() failure to make it easier to debug a Unicode
...
codepoint not appearing.
2016-04-26 07:33:36 +00:00
9e2fbb31ec
+wchar.h
2016-03-02 18:19:13 +00:00
e304673c65
Merge branch 'obsd-master'
...
Conflicts:
utf8.c
2016-03-02 18:10:51 +00:00
b8a102d26f
Handle wcwidth() and mbtowc() failures in better style and drop
...
characters where we can't find the width (wcwidth() fails) on input, the
same as we drop invalid UTF-8. Suggested by schwarze@.
2016-03-02 15:36:02 +00:00
26945d7956
Use system wcwidth() instead of carrying around UTF-8 width tables.
2016-03-01 12:02:08 +00:00
5fce21728e
Merge branch 'obsd-master'
2016-01-31 12:01:09 +00:00
fa64b89ad7
Whoops, need this for the previous reverse trim commit too.
2016-01-31 09:57:41 +00:00
dc42c35f1f
Merge branch 'obsd-master'
2016-01-19 18:01:15 +00:00
995af0e2b7
I no longer use my SourceForge address so replace it.
2016-01-19 15:59:12 +00:00
78a00c845c
Merge branch 'obsd-master'
...
Conflicts:
tmux.h
2015-11-21 14:24:33 +00:00
933929cd62
Memory leaks and an uninitialized part of utf8_data, from Patrick Palka.
2015-11-20 22:02:54 +00:00
bb820fa761
Merge branch 'obsd-master'
2015-11-14 14:01:08 +00:00
3db0d50df4
The private use area at U+E000 to U+F8FF is not very useful if it is
...
width 0, make it width 1 instead.
2015-11-14 12:03:23 +00:00
f12d7f0d4b
Merge branch 'obsd-master'
2015-11-14 12:01:09 +00:00
205d15e82d
All these return values from utf8_* are confusing, use an enum.
2015-11-14 11:45:43 +00:00