noname [Wed, 23 Apr 2014 19:12:36 +0000 (23:12 +0400)]
Use != instead of ^ for logical values.
sel.alt is only changed by
sel.alt = IS_SET(MODE_ALTSCREEN);
noname [Wed, 23 Apr 2014 19:12:29 +0000 (23:12 +0400)]
Use BETWEEN macro in xsetcolorname and fix style.
Christoph Lohmann [Fri, 25 Apr 2014 20:34:24 +0000 (22:34 +0200)]
Conformity in the -g geometry handling.
Thanks to Yuri Karaban for suggesting this!
These changes make -g correspond to <cols>x<rows> and honor it so non-tiling
window managers can work with the size hints afterwards. It also adds a -i
flag to force the window size. This is needed so -g keeps being useful in dwm.
Roberto E. Vargas Caballero [Fri, 25 Apr 2014 15:24:12 +0000 (17:24 +0200)]
Simplify a bit more tdeletechar and tinsertblank
The large and repeated expression used in memmove to indirect
the line can be simplified using a pointer, that makes more
clear where begins and where ends the movement.
noname [Tue, 22 Apr 2014 22:08:13 +0000 (02:08 +0400)]
Simplify tdeletechar and tinsertblank and fix memory corruption.
Current CSI parsing code uses strtol to parse arguments and allows them
to be negative. Negative argument is not properly handled in tdeletechar
and tinsertblank and results in memory corruption in memmove.
Reproduce with printf '\e[-500@'
Patch also removes special handling for corner case and simplifies
the code.
Removed
term.dirty[term.c.y] = 1
because tclearregion sets dirty flag.
noname [Sun, 20 Apr 2014 13:26:39 +0000 (17:26 +0400)]
Style fixes in tscrollup.
noname [Sun, 20 Apr 2014 13:26:50 +0000 (17:26 +0400)]
Do not set dirty flag twice in tscrollup and tscrolldown.
noname [Sun, 20 Apr 2014 13:26:13 +0000 (17:26 +0400)]
Use tsetdirt in tscrollup and tscrolldown.
tscrollup and tscrolldown do not use tsetdirt, but their code is
equivalent to
tsetdirt(orig, term.bot-n);
tsetdirt(orig+n, term.bot);
tclearregion also marks cleared lines as dirty.
In tscrolldown it sets lines from term.bot-n+1 to term.bot dirty, and in
tscrollup it sets lines from orig to orig+n-1 dirty.
In both functions all lines from orig to term.bot are effectively set
dirty, but in tscrolldown lines from orig+n to term.bot are set dirty
twice, and in tscrollup lines from orig to term.bot-n are set dirty
twice.
These patches make it clear which lines are set dirty and sets them
dirty once in each funciton.
noname [Tue, 22 Apr 2014 20:26:07 +0000 (00:26 +0400)]
Fix techo handling of control and multibyte characters.
techo compares signed char to '\x20'. Any character with code less then
'\x20' is treated as control character. This way characters with MSB
set to 1 are considered control characters too.
Also this patch makes techo display DEL character as ^?.
To reprocuce the bug, enable echo mode using printf '\e[12l',
then type DEL character or any non-ASCII character.
noname [Tue, 22 Apr 2014 17:59:48 +0000 (21:59 +0400)]
Make xrealloc and xstrdup style consistent.
noname [Tue, 22 Apr 2014 17:59:39 +0000 (21:59 +0400)]
Use BETWEEN in tsetchar.
noname [Tue, 22 Apr 2014 17:59:32 +0000 (21:59 +0400)]
Use uint and uchar instead of unsigned int and unsigned char.
noname [Tue, 22 Apr 2014 17:59:21 +0000 (21:59 +0400)]
Remove argument names from function prototypes.
noname [Tue, 22 Apr 2014 17:59:14 +0000 (21:59 +0400)]
Style fix in tdumpsel.
noname [Tue, 22 Apr 2014 17:59:01 +0000 (21:59 +0400)]
Use BETWEEN in tinsertblankline and tdeleteline.
Christoph Lohmann [Tue, 22 Apr 2014 17:22:58 +0000 (19:22 +0200)]
It's 2014 now.
noname@inventati.org [Sun, 20 Apr 2014 09:08:09 +0000 (13:08 +0400)]
move MODBIT to Macros section
Patch moves MODBIT to macros section and uses it in tselcs.
noname@inventati.org [Sun, 20 Apr 2014 11:41:40 +0000 (15:41 +0400)]
misplaced parenthesis in LEN macro
Markus Teich [Sun, 20 Apr 2014 11:15:40 +0000 (13:15 +0200)]
remove confusing SERRNO macro
I found the SERRNO Macro slightly confusing, since you have to look
it up, if you don't know it already. A web search showed it does
not seem to be any kind of standard. Also there was no reason in
the commit log when it was introduced in 2009. As you can see it
also leads to new patches, which don't use this macro (probably the
author did not know about it).
noname@inventati.org [Sun, 13 Apr 2014 16:21:32 +0000 (20:21 +0400)]
Simplify techo
Remove special case for \e because it is handled well by "control code"
case.
noname@inventati.org [Sat, 5 Apr 2014 16:54:01 +0000 (20:54 +0400)]
typedefs instead of #defines
Replaced #defines with typedefs where possible, patch attached.
q@c9x.me [Wed, 9 Apr 2014 18:37:23 +0000 (20:37 +0200)]
fix cursor handling when alt screen is disabled
I don't like this alt screen thing, but when
allowaltscreen == 0, the cursor is still saved
and restored after calling 'less' (or 'man').
This patch makes allowaltscreen == 0 usable.
Roberto E. Vargas Caballero [Tue, 15 Apr 2014 06:11:47 +0000 (08:11 +0200)]
Merge remote-tracking branch 'origin/master' into omaster
Christoph Lohmann [Fri, 11 Apr 2014 16:11:25 +0000 (18:11 +0200)]
Removing two unnecessary gettimeofday().
Toaster Toaster [Mon, 7 Apr 2014 17:53:59 +0000 (10:53 -0700)]
Increment XSync consistency
This patch cleans up a style inconsistency.
Roberto E. Vargas Caballero [Fri, 11 Apr 2014 13:08:37 +0000 (15:08 +0200)]
Fix Backspace and Delete characters
Backspace key must generate the backspace character (\010) and
Delete key must generate the delete character (\0177). In
some systems the kernel configuration for erasing previous character
is \0177, so some programs (for example cat, ed, mail, ...), can not
understand the correct meaning of backspace. In this cases it is only
needed this command:
stty erase \b
Christoph Lohmann [Sat, 5 Apr 2014 18:40:11 +0000 (20:40 +0200)]
0.5 release.
Christoph Lohmann [Sat, 5 Apr 2014 18:39:46 +0000 (20:39 +0200)]
Updating the TODO in preparating for 0.5.
Christoph Lohmann [Sat, 5 Apr 2014 18:34:57 +0000 (20:34 +0200)]
There is no need for a full dirt redraw.
Christoph Lohmann [Wed, 2 Apr 2014 07:26:28 +0000 (09:26 +0200)]
Fixing a compiler warning with the assignment.
Rafa Garcia Gallego [Wed, 26 Mar 2014 22:58:27 +0000 (23:58 +0100)]
Fix segfault when pressing PrintScr without a selection
Damian Okrasa [Tue, 25 Mar 2014 19:20:26 +0000 (20:20 +0100)]
new utf decoder
This patch replaces current utf decoder with a new one, which is ~50
lines shorter and should be easier to understand. Parsing 5 and 6
sequences, if necessary, requires trivial modification of UTF_SIZ
constant and utfbyte, utfmask, utfmin, utfmax arrays.
Roberto E. Vargas Caballero [Mon, 10 Mar 2014 14:16:26 +0000 (15:16 +0100)]
Merge branch 'master' of ssh://suckless.org/gitrepos/st
Roberto E. Vargas Caballero [Sat, 1 Feb 2014 10:11:11 +0000 (11:11 +0100)]
Add terminfo entries for printer
These capabilities inform to programs how print in local printer
of the terminal.
Roberto E. Vargas Caballero [Sat, 1 Feb 2014 12:41:58 +0000 (13:41 +0100)]
Add sequence for printing the current selection
This is very usefull in order to can select what is sent
to the plumber.
Roberto E. Vargas Caballero [Fri, 31 Jan 2014 22:05:42 +0000 (23:05 +0100)]
Add key definition for printer sequences
These new combinations generate the same behaviour (basically) of
vt102. It is a good way of communicating st with other programs.
[0] http://www.vt100.net/docs/vt102-ug/chapter2.html
Roberto E. Vargas Caballero [Fri, 31 Jan 2014 21:25:51 +0000 (22:25 +0100)]
Add MC for the full screen
This sequence is very useful because allows comunicate the content
of the terminal to another program.
Roberto E. Vargas Caballero [Fri, 31 Jan 2014 20:53:53 +0000 (21:53 +0100)]
Add MC for a single line
This sequence print the current line. It is different to the
'printer on' sequence, where all the characters that arrive to the
terminal are printer. Here only the ascii characters are printed.
Christoph Lohmann [Sat, 1 Mar 2014 10:04:03 +0000 (11:04 +0100)]
Style cleanup.
Add some note about the main reason why st is still that big.
Christoph Lohmann [Sat, 1 Mar 2014 08:22:57 +0000 (09:22 +0100)]
Style matters.
Roberto E. Vargas Caballero [Fri, 31 Jan 2014 19:57:09 +0000 (20:57 +0100)]
Add MC sequence
This sequence control when the printer is enabled or disabled. This
sequence control the behaviour of the -o option.
Roberto E. Vargas Caballero [Sat, 1 Feb 2014 10:12:47 +0000 (11:12 +0100)]
Add xstrdup function
Since we are using xmalloc, xrealloc ..., then it is not logical
call directly to strdup.
Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>
Roberto E. Vargas Caballero [Tue, 4 Feb 2014 10:46:45 +0000 (11:46 +0100)]
Merge remote-tracking branch 'origin/master'
Christoph Lohmann [Mon, 3 Feb 2014 19:54:25 +0000 (20:54 +0100)]
Removing the w3img support.
The patch to add w3img support destroys our way to handle fps and so stop
wasting resources on fast scrolling. Due to w3img being a hack to display
images in an ugly way, is there no need to support this. Use some real way to
display images.
Roberto E. Vargas Caballero [Fri, 31 Jan 2014 16:30:00 +0000 (17:30 +0100)]
Remove non defined behaviour in selcopy
It is not defined when lateral effects of expressions are
calculated, so an expression as:
--last >= gp && !(selected(last - gp, y)
is non portable.
Roberto E. Vargas Caballero [Fri, 31 Jan 2014 16:04:18 +0000 (17:04 +0100)]
Remove duplicated code in strhandle
The error condition was duplicated in two different switches.
This new version centralized the error handling in only one place.
Roberto E. Vargas Caballero [Fri, 31 Jan 2014 15:54:58 +0000 (16:54 +0100)]
Make Shift+Home equal to CLS in ascii mode
Roberto E. Vargas Caballero [Fri, 31 Jan 2014 13:18:25 +0000 (14:18 +0100)]
Make CONTROL + DELETE delete a line
If CONTROL + INSERT inserts a line then it seems natural CONTROL + DELETE
removes a line.
Roberto E. Vargas Caballero [Fri, 31 Jan 2014 11:23:53 +0000 (12:23 +0100)]
Fix SHIFT+DEL definition
The AppMode and AsciiMode were inverted in the definition of this
combination.
Signed-off-by: Christoph Lohmann <20h@r-36.net>
Eric Pruitt [Sun, 19 Jan 2014 16:48:35 +0000 (10:48 -0600)]
Use character scaling in XCopyArea
Amadeusz Sławiński [Sat, 11 Jan 2014 11:54:36 +0000 (12:54 +0100)]
Make w3mimgdisplay work with st
Before this patch draw() calls drawregion which calls xdraws and then
updates whole window in one call thus overdrawing anything drawn by
w3mimgdisplay. After moving XCopyArea to xdraws it only updates the
regions which are being updated by XftDraw* functions. It may do a few
more calls to XCopyArea with this patch.
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
Amadeusz Sławiński [Fri, 3 Jan 2014 14:24:24 +0000 (15:24 +0100)]
Fix truecolor escapes, when both bg and fg are set
for example
echo -e "\e[48;2;255;0;0m\e[38;2;0;0;255m test "
should render on red bg with blue fg
also now elinks works correctly when using 'truecolor' option
in preferences
Signed-off-by: Amadeusz Sławiński <amade@asmblr.net>
Eon S. Jeon [Tue, 17 Dec 2013 20:14:19 +0000 (15:14 -0500)]
query pixel size from matched font
Sorry for another duplicated mail. I found the patch is malformed
significantly. I've been away from my laptop for a while, so I'm quite
unfamiliar with the settings on this system...
Roberto E. Vargas Caballero [Wed, 18 Dec 2013 07:29:28 +0000 (08:29 +0100)]
Update arg.h from sbase
sbase did some interesting modifications to arg.h (basically it
was fixed an incorrect use of the _ namespace), and this commit
take this last version for st.
Eon S. Jeon [Tue, 17 Dec 2013 17:45:38 +0000 (12:45 -0500)]
Prevent resizing stdin
This fixes a bug that the parent tty gets resized whenever you launch
st through command line.
The problem was that ioctl was resizing cmdfd before it gets
initialized in ttynew. Since cmdfd is a global variable, its initial
value is 0, and consequently stdin was being resized.
Mark Edgar [Sun, 20 Oct 2013 17:16:33 +0000 (19:16 +0200)]
Replace alignment tabs with spaces.
Mark Edgar [Sun, 20 Oct 2013 16:18:00 +0000 (18:18 +0200)]
Fix comments in config.def.h to match field names.
Mark Edgar [Sun, 15 Dec 2013 15:45:51 +0000 (16:45 +0100)]
Fix definition of F28 key.
Shitf modifier adds 12 to the function number of the function keys,
while Control adds 24, so Control + F4 generates F28
Eric Pruitt [Wed, 11 Dec 2013 13:10:08 +0000 (07:10 -0600)]
Set _NET_WM_PID attribute
Eric Pruitt [Fri, 6 Dec 2013 15:22:37 +0000 (09:22 -0600)]
Fix rmul definition
rmul means "exit underline mode", so a full reset of all
the attributes is not the correct way of exiting from
underline mode, because it is going to modify also another
attributes not related.
René Rietz [Mon, 25 Nov 2013 15:06:22 +0000 (16:06 +0100)]
Add stdint include
Since st is using now int32_t and uint32_t the inclusion of
stdint or inttype is mandatory, because in other case the
definition of these new types will not be known by the
compiler.
Roberto E. Vargas Caballero [Mon, 25 Nov 2013 13:09:53 +0000 (14:09 +0100)]
Fix stupid bug in tdefcolor returning -1 in unsigned function
k0ga misktook applying patch of others. Sorry guys!!!!
Johannes Hofmann [Sun, 24 Nov 2013 09:20:45 +0000 (10:20 +0100)]
Use int instead of long for color
This patch replaces long by int32_t. It saves
some memory on 64bit systems.
Carlos J. Torres [Fri, 22 Nov 2013 15:45:48 +0000 (10:45 -0500)]
add _NET_WM_NAME
Mark Edgar [Sat, 19 Oct 2013 13:13:13 +0000 (15:13 +0200)]
Simplify logic in kmap().
Mark Edgar [Sat, 19 Oct 2013 12:56:40 +0000 (14:56 +0200)]
Simplify logic in match().
Roberto E. Vargas Caballero [Mon, 28 Oct 2013 18:18:24 +0000 (19:18 +0100)]
Merge remote-tracking branch 'origin/master' into omaster
Rob Pilling [Wed, 19 Jun 2013 20:24:01 +0000 (21:24 +0100)]
Fixed lock up when system time jumps backwards
Signed-off-by: Christoph Lohmann <20h@r-36.net>
Mark Edgar [Sat, 21 Sep 2013 22:07:49 +0000 (00:07 +0200)]
Ignore numlock (Mod2Mask) for button events too.
Conflicts:
config.def.h
st.c
Mark Edgar [Sun, 6 Oct 2013 10:19:12 +0000 (12:19 +0200)]
Avoid buffer overrun in bpress()
Use correct type for Mousekey.b (XButtonEvent.button).
Mark Edgar [Sat, 5 Oct 2013 09:49:35 +0000 (11:49 +0200)]
New ttysend() function calls ttywrite() and techo(). Honor MODE_ECHO when pasting in selnotify().
Mark Edgar [Sat, 5 Oct 2013 09:45:44 +0000 (11:45 +0200)]
Avoid buffer overrun in kpress() and remove limit on shortcut strings.
Mark Edgar [Sat, 5 Oct 2013 09:45:17 +0000 (11:45 +0200)]
Simplify Mod1 logic in kpress(), eliminating locals and a memcpy.
Roberto E. Vargas Caballero [Tue, 1 Oct 2013 19:23:11 +0000 (21:23 +0200)]
Add support for multiple charset definitions
vt100 has support for two defined charset, G0 and G1. Each charset
can be defined, but in each moment is selected only one of both
charset. This is usually used selecting a national charset in G0
and graphic charset in G1, so you can switch between graphic
charset and text charset without losing the national charset
already defined.
st hasn't support for national charsets, because it is an utf8
based terminal emulator, but it has support for graphic
charset because it is heavily used, but it only supports G0,
without understanding G1 selection sequences, which causes some
programs in some moments can print some garbage in the screen.
This patch adds a fake support for multiple charset definitions,
where we only support graphic charset and us-ascii charset, but
we allow more of one charset definition.
This patch allow define G0 until G3 charsets, but only accepts
select G0 or G1, and it accepts some national charset definitions
but all of them are mapped to us-ascii.
Christoph Lohmann [Wed, 2 Oct 2013 19:06:50 +0000 (21:06 +0200)]
People, learn to keep to styles. Thanks.
Mihail Zenkov [Tue, 1 Oct 2013 18:02:24 +0000 (20:02 +0200)]
Fix save/restore cursor
st was assuming that save/restore cursor position was independent
of the screen that was shown in each moment, but it is not true,
because each screen has a different save/restore buffer. This
patch fixes it.
Mihail Zenkov [Tue, 1 Oct 2013 18:01:15 +0000 (20:01 +0200)]
Add DSR cursor position sequence
Maurice Quennet [Sat, 21 Sep 2013 21:33:56 +0000 (23:33 +0200)]
Fix core in multi-line selection on OpenBSD
OpenBSD 5.3 amd64 release version with the most current st
version from git, crash and dump core when selecting multiple
lines whith the cursor. This happens, because on line 964
of st.c (gp-1)->mode is accessed, although gp is still
pointing at the beginning of the array term.line[y] (see
line 939 for initialization of gp).
Egmont Koblinger [Mon, 23 Sep 2013 07:22:47 +0000 (09:22 +0200)]
Add bracketed paste mode
This patch enables bracketed paste mode (
http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#Bracketed%20Paste%20Mode
).
It's mainly useful for text editors to disable line wrapping and auto
indentation when text is being pasted, rather than typed from keyboard.
On the emulator side, it is supported by at least xterm, urxvt,
gnome-terminal, putty, iterm2; and I have a patch for konsole.
On the application side, vim can be configured easily to handle this, and
I have pending patches for mcedit and joe. Probably many others also
support it.
Michael Forney [Thu, 25 Jul 2013 23:19:19 +0000 (16:19 -0700)]
Fix some bugs in mouse tracking logic
* Button number in X10 mode:
I believe the button - 1 came from "C b is button - 1" from [0].
However, above this section, it states
"Normally, parameters (such as pointer poisition and button number)
for all mouse tracking escape sequences generated by xterm encode
numeric parameters in a single character as value+32. For example, !
specifies the value 1."
Also, from the description of SGR,
"The encoded button value in this case does not add 32 since that
was useful only in the X10 scheme for ensuring that the byte
containing the button value is a printable code."
This suggests that we should still add 32 to the button value when in
MODE_MOUSEX10.
* No button release reporting in X10 mode:
"X10 compatibility mode sends an escape sequence only on button press,
encoding the location and the mouse button pressed."
* Fix MODE_MOUSEMOTION:
Currently, motion reporting is skipped when oldbutton == 3
(corresponding to no button being pressed). However, oldbutton is
only set on a button press, which will never be 3.
[0]: http://invisible-island.net/xterm/ctlseqs/ctlseqs.html
Christoph Lohmann [Thu, 12 Sep 2013 18:52:10 +0000 (20:52 +0200)]
Default volume of the bell is 0.
Roberto E. Vargas Caballero [Thu, 12 Sep 2013 18:41:34 +0000 (20:41 +0200)]
Add audible bell
\a is the character for bell, and st is only marking the window as urgent
if it is not active. This patch adds an audible bell which can be disable
with bellvolume variable.
Signed-off-by: Christoph Lohmann <20h@r-36.net>
Christoph Lohmann [Sat, 7 Sep 2013 10:41:36 +0000 (12:41 +0200)]
Wide character support.
Thanks "Eon S. Jeon" <esjeon@hyunmu.am>!
Christoph Lohmann [Sat, 7 Sep 2013 10:29:44 +0000 (12:29 +0200)]
Adding some contributors. Thanks to you all!
Mark Edgar [Sun, 25 Aug 2013 22:10:47 +0000 (00:10 +0200)]
Correctly initialize altscreen when defaultbg is not 0.
The alternate screen is not properly initialized when st starts. To see
this, set defaultbg in config.h to anything other than 0 (for example, swap
defaultfg and defaultbg), and run:
./st -e sh -c 'tput smcup; read'
You should see that the top-left 80x24 rectangle is black (or whatever
colorname[0] is), while the rest of the screen (if any) has the desired
colorname[defaultbg] color.
The attached patch fixes this by initializing term.c.attr in tnew() before
calling tresize(). It also removes the unnecessary xcalloc() calls, which
misled me on this bug hunt since it is really tclearregion() which
initializes term.lines and term.alt in tresize().
Eon S. Jeon [Sun, 11 Aug 2013 10:42:30 +0000 (06:42 -0400)]
Regarding commit
7e3cff3
Hello.
I reviewed and tested commit
7e3cff3, and made a patch that fixes some
problems in it.
1. There's a semicolon after an if statement, which is obviously a
typo.
2. The current way of calculating text position in "xdraws" yields
inconsistent results in some cases. This is due to the use of
"font->width", which varies. Instead, "xw.cw" has to be used as the
character width.
Sincerely,
Eon
Christoph Lohmann [Thu, 22 Aug 2013 17:32:49 +0000 (19:32 +0200)]
Tmux is using C-b by default.
Thanks for noticing Fidel Barrera Cruz!
Christoph Lohmann [Tue, 20 Aug 2013 16:18:48 +0000 (18:18 +0200)]
Correcting the bitmask value check.
Roberto E. Vargas Caballero [Mon, 12 Aug 2013 13:25:18 +0000 (15:25 +0200)]
Add terminfo definitions for terminals with meta key
Some programs don't check the value of km and use smm and rmm
capabilites, and they cause the terminal change to meta enabled
mode even in cases where is not desirable.
Allmost all people is using the terminal waiting that meta sends
escape, so rmm and smm are not needed. If someone needs meta
sets 8 bit he can use the correct terminfo definition in TERM.
Eon S. Jeon [Mon, 5 Aug 2013 20:37:59 +0000 (16:37 -0400)]
Fix signess of tdefcolor
tdefcolor() returns -1 on error, while its return type is
unsigned long. At the same time, line 1724 and 1731 are checking the
positivity of its unsigned return value.
Alexander Sedov [Mon, 29 Jul 2013 07:50:44 +0000 (11:50 +0400)]
Fixed memory leak in xsettitle().
Michael Forney [Thu, 25 Jul 2013 23:24:16 +0000 (16:24 -0700)]
Fix blink mode check
ATTR_BLINK is an attribute for a Glyph and will not be set in term.mode.
Eric Pruitt [Mon, 5 Aug 2013 09:33:37 +0000 (11:33 +0200)]
Use character size scaling factors
The bounding boxes for characters can be scaled using "cwscale" and "chscale"
to scale the width and height respectively.
Roberto E. Vargas Caballero [Sat, 20 Jul 2013 19:52:40 +0000 (21:52 +0200)]
Reload colors in reset
Colors definition can be changed using a OSC sequence, so
we have to reload them if we want be sure all the colors
are the correct.
Could be desirable free the colors allocated due to rgb
colors and inverse colors (XftColorAllocValues in xdraws),
but it is impossible due we use the same structure for all
of them.
Roberto E. Vargas Caballero [Fri, 19 Jul 2013 18:34:36 +0000 (20:34 +0200)]
Add RGB color definition
This patch uses the bit 24 in the color descriptor as an indicator
of RGB color, so we can take the values and generating the XftColour
directly in xdraws.
Eon S. Jeon [Fri, 19 Jul 2013 05:07:02 +0000 (01:07 -0400)]
Improved font caching
I made a patch that improves the performance of font caching mechanism.
This is based on a funny behaviour of FontConfig: it was handling
FcCharSet in a somewhat unexpected way.
So, we are currently adding "a character" to a new FcCharSet, and then
add it to a FcPattern. However, if we toss the FcPattern to FontConfig,
it loads the entire language(charset) that contains the character we
gave. That is, we don't always have to load a new font for each unknown
character. Instead, we can reused cached fonts, and this significantly
reduces the number of calls to extremely slow FontConfig matching
functions.
One more thing. I found that, in libXft, there's a function called
XftCharExists. XftCharIndex internally calls this function, and
does more stuffs if the character does exist. Since the returned index
is never used in st, we should call XftCharExists instead of
XftCharIndex. Please note that I already made this change in the patch.
Markus Teich [Sat, 22 Jun 2013 21:07:00 +0000 (23:07 +0200)]
fix: whitespace
Alexander Sedov [Sun, 23 Jun 2013 17:05:29 +0000 (21:05 +0400)]
Remove long text being cropped/wrapped to standard 80x24 on launch.
To be more specific, now tty creation is delayed until X window is
actually mapped; last ConfigureNotify before mapping determines
initial tty size.
Please report problems if there are any.
Markus Teich [Sat, 22 Jun 2013 21:06:49 +0000 (23:06 +0200)]
fix: consistent usage of bitmask operations on unicode functions
Markus Teich [Sat, 22 Jun 2013 21:05:03 +0000 (23:05 +0200)]
fix: do not need an extra variable for a single read