st.git
10 years agoStyle fix in tdumpsel.
noname [Tue, 22 Apr 2014 17:59:14 +0000 (21:59 +0400)]
Style fix in tdumpsel.

10 years agoUse BETWEEN in tinsertblankline and tdeleteline.
noname [Tue, 22 Apr 2014 17:59:01 +0000 (21:59 +0400)]
Use BETWEEN in tinsertblankline and tdeleteline.

10 years agoIt's 2014 now.
Christoph Lohmann [Tue, 22 Apr 2014 17:22:58 +0000 (19:22 +0200)]
It's 2014 now.

10 years agomove MODBIT to Macros section
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.

10 years agomisplaced parenthesis in LEN macro
noname@inventati.org [Sun, 20 Apr 2014 11:41:40 +0000 (15:41 +0400)]
misplaced parenthesis in LEN macro

10 years agoremove confusing SERRNO 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).

10 years agoSimplify techo
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.

10 years agotypedefs instead of #defines
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.

10 years agofix cursor handling when alt screen is disabled
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.

10 years agoMerge remote-tracking branch 'origin/master' into omaster
Roberto E. Vargas Caballero [Tue, 15 Apr 2014 06:11:47 +0000 (08:11 +0200)]
Merge remote-tracking branch 'origin/master' into omaster

10 years agoRemoving two unnecessary gettimeofday().
Christoph Lohmann [Fri, 11 Apr 2014 16:11:25 +0000 (18:11 +0200)]
Removing two unnecessary gettimeofday().

10 years agoIncrement XSync consistency
Toaster Toaster [Mon, 7 Apr 2014 17:53:59 +0000 (10:53 -0700)]
Increment XSync consistency

This patch cleans up a style inconsistency.

10 years agoFix Backspace and Delete characters
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

10 years ago0.5 release.
Christoph Lohmann [Sat, 5 Apr 2014 18:40:11 +0000 (20:40 +0200)]
0.5 release.

10 years agoUpdating the TODO in preparating for 0.5.
Christoph Lohmann [Sat, 5 Apr 2014 18:39:46 +0000 (20:39 +0200)]
Updating the TODO in preparating for 0.5.

10 years agoThere is no need for a full dirt redraw.
Christoph Lohmann [Sat, 5 Apr 2014 18:34:57 +0000 (20:34 +0200)]
There is no need for a full dirt redraw.

10 years agoFixing a compiler warning with the assignment.
Christoph Lohmann [Wed, 2 Apr 2014 07:26:28 +0000 (09:26 +0200)]
Fixing a compiler warning with the assignment.

10 years agoFix segfault when pressing PrintScr without a selection
Rafa Garcia Gallego [Wed, 26 Mar 2014 22:58:27 +0000 (23:58 +0100)]
Fix segfault when pressing PrintScr without a selection

10 years agonew utf decoder
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.

10 years agoMerge branch 'master' of ssh://suckless.org/gitrepos/st
Roberto E. Vargas Caballero [Mon, 10 Mar 2014 14:16:26 +0000 (15:16 +0100)]
Merge branch 'master' of ssh://suckless.org/gitrepos/st

10 years agoAdd terminfo entries for printer
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.

10 years agoAdd sequence for printing the current selection
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.

10 years agoAdd key definition for printer sequences
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

10 years agoAdd MC for the full screen
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.

10 years agoAdd MC for a single line
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.

10 years agoStyle cleanup.
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.

10 years agoStyle matters.
Christoph Lohmann [Sat, 1 Mar 2014 08:22:57 +0000 (09:22 +0100)]
Style matters.

10 years agoAdd MC sequence
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.

10 years agoAdd xstrdup function
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>
10 years agoMerge remote-tracking branch 'origin/master'
Roberto E. Vargas Caballero [Tue, 4 Feb 2014 10:46:45 +0000 (11:46 +0100)]
Merge remote-tracking branch 'origin/master'

10 years agoRemoving the w3img support.
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.

10 years agoRemove non defined behaviour in selcopy
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.

10 years agoRemove duplicated code in strhandle
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.

10 years agoMake Shift+Home equal to CLS in ascii mode
Roberto E. Vargas Caballero [Fri, 31 Jan 2014 15:54:58 +0000 (16:54 +0100)]
Make Shift+Home equal to CLS in ascii mode

10 years agoMake CONTROL + DELETE delete a line
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.

10 years agoFix SHIFT+DEL definition
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>
10 years agoUse character scaling in XCopyArea
Eric Pruitt [Sun, 19 Jan 2014 16:48:35 +0000 (10:48 -0600)]
Use character scaling in XCopyArea

10 years agoMake w3mimgdisplay work with st
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>
10 years agoFix truecolor escapes, when both bg and fg are set
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>
10 years agoquery pixel size from matched font
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...

10 years agoUpdate arg.h from sbase
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.

10 years agoPrevent resizing stdin
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.

10 years agoReplace alignment tabs with spaces.
Mark Edgar [Sun, 20 Oct 2013 17:16:33 +0000 (19:16 +0200)]
Replace alignment tabs with spaces.

10 years agoFix comments in config.def.h to match field names.
Mark Edgar [Sun, 20 Oct 2013 16:18:00 +0000 (18:18 +0200)]
Fix comments in config.def.h to match field names.

10 years agoFix definition of F28 key.
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

10 years agoSet _NET_WM_PID attribute
Eric Pruitt [Wed, 11 Dec 2013 13:10:08 +0000 (07:10 -0600)]
Set _NET_WM_PID attribute

10 years agoFix rmul definition
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.

11 years agoAdd stdint include
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.

11 years agoFix stupid bug in tdefcolor returning -1 in unsigned function
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!!!!

11 years agoUse int instead of long for color
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.

11 years agoadd _NET_WM_NAME
Carlos J. Torres [Fri, 22 Nov 2013 15:45:48 +0000 (10:45 -0500)]
add _NET_WM_NAME

11 years agoSimplify logic in kmap().
Mark Edgar [Sat, 19 Oct 2013 13:13:13 +0000 (15:13 +0200)]
Simplify logic in kmap().

11 years agoSimplify logic in match().
Mark Edgar [Sat, 19 Oct 2013 12:56:40 +0000 (14:56 +0200)]
Simplify logic in match().

11 years agoMerge remote-tracking branch 'origin/master' into omaster
Roberto E. Vargas Caballero [Mon, 28 Oct 2013 18:18:24 +0000 (19:18 +0100)]
Merge remote-tracking branch 'origin/master' into omaster

11 years agoFixed lock up when system time jumps backwards
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>
11 years agoIgnore numlock (Mod2Mask) for button events too.
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

11 years agoAvoid buffer overrun in bpress()
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).

11 years agoNew ttysend() function calls ttywrite() and techo(). Honor MODE_ECHO when pasting...
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().

11 years agoAvoid buffer overrun in kpress() and remove limit on shortcut strings.
Mark Edgar [Sat, 5 Oct 2013 09:45:44 +0000 (11:45 +0200)]
Avoid buffer overrun in kpress() and remove limit on shortcut strings.

11 years agoSimplify Mod1 logic in kpress(), eliminating locals and a memcpy.
Mark Edgar [Sat, 5 Oct 2013 09:45:17 +0000 (11:45 +0200)]
Simplify Mod1 logic in kpress(), eliminating locals and a memcpy.

11 years agoAdd support for multiple charset definitions
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.

11 years agoPeople, learn to keep to styles. Thanks.
Christoph Lohmann [Wed, 2 Oct 2013 19:06:50 +0000 (21:06 +0200)]
People, learn to keep to styles. Thanks.

11 years agoFix save/restore cursor
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.

11 years agoAdd DSR cursor position sequence
Mihail Zenkov [Tue, 1 Oct 2013 18:01:15 +0000 (20:01 +0200)]
Add DSR cursor position sequence

11 years agoFix core in multi-line selection on OpenBSD
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).

11 years agoAdd bracketed paste mode
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.

11 years agoFix some bugs in mouse tracking logic
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

11 years agoDefault volume of the bell is 0.
Christoph Lohmann [Thu, 12 Sep 2013 18:52:10 +0000 (20:52 +0200)]
Default volume of the bell is 0.

11 years agoAdd audible bell
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>
11 years agoWide character support.
Christoph Lohmann [Sat, 7 Sep 2013 10:41:36 +0000 (12:41 +0200)]
Wide character support.

Thanks "Eon S. Jeon" <esjeon@hyunmu.am>!

11 years agoAdding some contributors. Thanks to you all!
Christoph Lohmann [Sat, 7 Sep 2013 10:29:44 +0000 (12:29 +0200)]
Adding some contributors. Thanks to you all!

11 years agoCorrectly initialize altscreen when defaultbg is not 0.
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().

11 years agoRegarding commit 7e3cff3
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

11 years agoTmux is using C-b by default.
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!

11 years agoCorrecting the bitmask value check.
Christoph Lohmann [Tue, 20 Aug 2013 16:18:48 +0000 (18:18 +0200)]
Correcting the bitmask value check.

11 years agoAdd terminfo definitions for terminals with meta key
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.

11 years agoFix signess of tdefcolor
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.

11 years agoFixed memory leak in xsettitle().
Alexander Sedov [Mon, 29 Jul 2013 07:50:44 +0000 (11:50 +0400)]
Fixed memory leak in xsettitle().

11 years agoFix blink mode check
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.

11 years agoUse character size scaling factors
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.

11 years agoReload colors in reset
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.

11 years agoAdd RGB color definition
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.

11 years agoImproved font caching
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.

11 years agofix: whitespace
Markus Teich [Sat, 22 Jun 2013 21:07:00 +0000 (23:07 +0200)]
fix: whitespace

11 years agoRemove long text being cropped/wrapped to standard 80x24 on launch.
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.

11 years agofix: consistent usage of bitmask operations on unicode functions
Markus Teich [Sat, 22 Jun 2013 21:06:49 +0000 (23:06 +0200)]
fix: consistent usage of bitmask operations on unicode functions

11 years agofix: do not need an extra variable for a single read
Markus Teich [Sat, 22 Jun 2013 21:05:03 +0000 (23:05 +0200)]
fix: do not need an extra variable for a single read

11 years agoFix match function bugs
Roberto E. Vargas Caballero [Sun, 23 Jun 2013 08:33:53 +0000 (10:33 +0200)]
Fix match function bugs

There were two problems with match denfinition.

1) There was a forward declaration in the form:

static inline bool match(uint, uint);

but later the function was defined as:

inline bool
match(uint mask, uint state) {

This causes that there were two different functions in the code, one local
and inline, and other inline but extern. All was working without problems
due to we were using -Os, and the compiler was using the extern definition
and it was no expanding the static declaration. If you removed the -Os flag,
then you got linker errors due it was no able to find the static definition
of the static declaration.

2) The mask checking was incorrect because we were doing the test:

(state & mask) != state

and this test only was saying that at least all the enabled bits of state
were enabled also in mask, but no all the possible bits in mask. This was
the origin of the bug reported by Xavier Cartron, where he said it was
possible activated some shortcuts with some of the modifiers defined in the
config.h file.

11 years agoRemove unneded call to draw
Roberto E. Vargas Caballero [Sun, 23 Jun 2013 10:13:26 +0000 (12:13 +0200)]
Remove unneded call to draw

draw is the function which update the Xwindow with the information st has,
and it is designed in a way that it must be called once in the main loop
(run function), and calling it in other places it is a waste of time.

11 years agoFix selection clearing
Roberto E. Vargas Caballero [Sun, 23 Jun 2013 10:09:19 +0000 (12:09 +0200)]
Fix selection clearing

The way st knows if there is a selection activated is checking if sel.ob.x
is equal to -1. In some parts of the code the way of disabling the selection
was only setting it to -1, but after it you can't be sure if the selection
is clearing from the terminal representation, because it is necessary mark
all the lines affected by the selection as dirty. Already there is a functon
which perform this task, selclear.

11 years agofix PageUp Modifier Mask in config.def.h
Markus Teich [Sat, 22 Jun 2013 14:22:41 +0000 (16:22 +0200)]
fix PageUp Modifier Mask in config.def.h

Signed-off-by: Christoph Lohmann <20h@r-36.net>
11 years agoFixing title setting with the title argument.
Christoph Lohmann [Sun, 9 Jun 2013 13:52:35 +0000 (15:52 +0200)]
Fixing title setting with the title argument.

11 years agoAdding xterm behaviour to setting the title.
Christoph Lohmann [Thu, 6 Jun 2013 17:09:18 +0000 (19:09 +0200)]
Adding xterm behaviour to setting the title.

Thanks Airwave!

11 years agoBumping up the xfps so mouse motion won't reap the CPU.
Christoph Lohmann [Sat, 1 Jun 2013 12:39:13 +0000 (14:39 +0200)]
Bumping up the xfps so mouse motion won't reap the CPU.

11 years agoAdding true mouse motion support.
Christoph Lohmann [Sat, 1 Jun 2013 12:37:30 +0000 (14:37 +0200)]
Adding true mouse motion support.

11 years agoThis is a shorter bit handling in MODE_MOUSE.
Christoph Lohmann [Sat, 1 Jun 2013 11:17:20 +0000 (13:17 +0200)]
This is a shorter bit handling in MODE_MOUSE.

11 years agoAdd some comments about the other mouse reporting modes.
Christoph Lohmann [Sat, 1 Jun 2013 11:13:01 +0000 (13:13 +0200)]
Add some comments about the other mouse reporting modes.

11 years agoImplementing mouse focus and all events.
Christoph Lohmann [Sat, 1 Jun 2013 11:06:53 +0000 (13:06 +0200)]
Implementing mouse focus and all events.

11 years agoFixing bad highlighting on first SNAP_WORD multiline select.
Christoph Lohmann [Sat, 1 Jun 2013 10:23:55 +0000 (12:23 +0200)]
Fixing bad highlighting on first SNAP_WORD multiline select.

11 years agoFixing the selection in a single line again.
Christoph Lohmann [Sun, 26 May 2013 14:10:22 +0000 (16:10 +0200)]
Fixing the selection in a single line again.

Thanks p37sitdu@lavabit.com!