Merge branch 'master' into unstable-argb
Merge branch 'master' into unstable-argb
FAQ: update typo and escape code for smkx

Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>
Refactor the innermost loop of the xdraws function

Signed-off-by: Silvan Jegen <s.jegen@gmail.com>
Signed-off-by: Christoph Lohmann <20h@r-36.net>
update size hints on zoom

On font zooming (i.e. xzoom()), window size hints are not updated.  This
patch does that.

Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>
Fix typo in config.def.h

Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>
Use monotonic clock to prevent timing issues

This patch replaces the gettimeofday()/timeval-system with
uses of clock_gettime() with a monolithic clock and timespec-structs.
gettimeofday() is not accurate and prone to jumps and POSIX.1-2008
marks it as obsolete. Read more here [0].

The patch should speak for itself and decreases the binary
size for me by almost 200K(!).

[0]: http://blog.habets.pp.se/2010/09/gettimeofday-should-never-be-used-to-measure-time

Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>
Fixed wrong nanosecond factor 10E6.

Commit 5edeec1 introduced a wrong factor for nanosecond computation, the correct
value is 1E6. Time and timeout values are 10 times less than they should be and
this cause high CPU usage.

Reported by pyroh on IRC. Thanks!

Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>
Remove CEIL macro

This macro was not correct in some cases, and it was used only in
one place, where we did'nt get any benefit in performance of in size,
so the macro is removed and ceilf is used instead of it. The only
function needed from math.h is ceilf, so this patch defines the
prototype of it instead of including math.h.
Reorder and extend glyph attributes

Faint, invisible, struck and fast blink are added as glyph attributes.
Since there's an edit here, let's take the opportunity to reorder them
so that they correspond to the two's power of the corresponding escape
code. (just for neatness, let's hope that property never gets used for
anything.)

Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>
Render invisible attribute

Implement invisible mode by setting the foreground color to be the same
as the background color. Not rendering anything would also be an
alternative, but this seems less likely to cause surprises in
conjunction with any hacks.

Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>
Render struck-out attribute

Implement crossed-out text with an XftDrawRect call, similar to how
underline is implemented. The line is drawn at 2/3 of the font ascent,
which seems to work nicely in practice.

Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>
Making surf compile again with rt.

The clock_gettime patch needs librt to be linked to surf.

Thanks _odie for the hint.
Remove all strcmp and strlen calls on Glyph.c[]

There were a few occurrences of strcmp and strlen being called on Glyph.c[],
which is not always null-terminated (this actually depends on the last values in
the buffer s in ttyread()). This patch replace all the calls to strcmp with a
test on c[0] directly or a call to tlinelen, and the one to strlen with utf8len.
I also took the opportunity to refactor getsel and tdumpline.

Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>
Render faint attribute

Faint text is implemented by allocating a new color at one-half
intensity of each of the r, g, b components, or if the text bold at the
same time, it is not made lighter.

Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>
Signed-off-by: Christoph Lohmann <20h@r-36.net>
Add 8 bit version of DECID

DECID version for 7 bits environments already was implemented in st.
This patch adds the 8 bit version of it.
Add 8 bit version of NEL

NEL version for 7 bits environments already was implemented in st.
This patch adds the 8 bit version of it.
Add 8 bit version of HTS

HTS version for 7 bits environments already was implemented in st.
This patch adds the 8 bit version of it.
Add 8 bit version of DCS, APC, PM, OSC

DCS, APC, PM, OSC version for 7 bits environments already was implemented
in st.  This patch adds the 8 bit version of it.
Changed inconsistent indent

- A line was indented using spaces despite the rest of the code using
  tabs.

Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>