all repos — st @ 4435e0ee6791136e641d58ce6cf00f8665fe3065

st (suckless terminal) config

4435e0ee
add _NET_WM_NAME
Carlos J. Torres vlaadbrain@gmail.com
72638207
Simplify logic in kmap().
Mark Edgar medgar123@gmail.com
1fa27b93
Simplify logic in match().
Mark Edgar medgar123@gmail.com
3d3c37bc
Merge remote-tracking branch 'origin/master' into omaster
Roberto E. Vargas Caballero k0ga@shike2.com
297c886b
Ignore numlock (Mod2Mask) for button events too.

Conflicts:
	config.def.h
	st.c
Mark Edgar medgar123@gmail.com
0f6942cd
Avoid buffer overrun in bpress()

Use correct type for Mousekey.b (XButtonEvent.button).
Mark Edgar medgar123@gmail.com
8e577322
New ttysend() function calls ttywrite() and techo(). Honor MODE_ECHO when pasting in selnotify().
Mark Edgar medgar123@gmail.com
939e1495
Avoid buffer overrun in kpress() and remove limit on shortcut strings.
Mark Edgar medgar123@gmail.com
02ae3ce6
Simplify Mod1 logic in kpress(), eliminating locals and a memcpy.
Mark Edgar medgar123@gmail.com
7a4eefe8
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.
Roberto E. Vargas Caballero k0ga@shike2.com
c5c2365a
People, learn to keep to styles. Thanks.
Christoph Lohmann 20h@r-36.net
62ab9389
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 mihail.zenkov@gmail.com
2b1bc808
Add DSR cursor position sequence
Mihail Zenkov mihail.zenkov@gmail.com
eeae9b0c
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).
Maurice Quennet mjq@gmx.net
8ac0a5f8
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.
Egmont Koblinger egmont@gmail.com
eae31a53
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
Michael Forney mforney@mforney.org
cc2ea314
Default volume of the bell is 0.
Christoph Lohmann 20h@r-36.net
bef599bb
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>
Roberto E. Vargas Caballero rvargas@bsccs347.bsc.es
210dda95
Wide character support.

Thanks "Eon S. Jeon" <esjeon@hyunmu.am>!
Christoph Lohmann 20h@r-36.net
a4358a1f
Adding some contributors. Thanks to you all!
Christoph Lohmann 20h@r-36.net
4245ba0d
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().
Mark Edgar medgar123@gmail.com
f3d438b1
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
Eon S. Jeon esjeon@hyunmu.am
587bc939
Tmux is using C-b by default.

Thanks for noticing Fidel Barrera Cruz!
Christoph Lohmann 20h@r-36.net
8d21ced0
Correcting the bitmask value check.
Christoph Lohmann 20h@r-36.net
45796938
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.
Roberto E. Vargas Caballero k0ga@shike2.com
347a45c3
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.
Eon S. Jeon esjeon@lavabit.com
22eeda56
Fixed memory leak in xsettitle().
Alexander Sedov alex0player@gmail.com
86c03ddc
Fix blink mode check

ATTR_BLINK is an attribute for a Glyph and will not be set in term.mode.
Michael Forney mforney@mforney.org
7e3cff33
Use character size scaling factors

The bounding boxes for characters can be scaled using "cwscale" and "chscale"
to scale the width and height respectively.
Eric Pruitt eric.pruitt@gmail.com
aaee0e8b
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 k0ga@shike2.com
8dde8cde
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.
Roberto E. Vargas Caballero k0ga@shike2.com
33ad83d4
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.
Eon S. Jeon esjeon@lavabit.com
40e4d76d
fix: whitespace
Markus Teich markus.teich@stusta.mhn.de
fbc589d5
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.
Alexander Sedov alex0player@gmail.com
6fc471cc
fix: consistent usage of bitmask operations on unicode functions
Markus Teich markus.teich@stusta.mhn.de
8b602a37
fix: do not need an extra variable for a single read
Markus Teich markus.teich@stusta.mhn.de
6e1c7c8a
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.
Roberto E. Vargas Caballero k0ga@shike2.com
90c6f055
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.
Roberto E. Vargas Caballero k0ga@shike2.com
ebbac77d
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.
Roberto E. Vargas Caballero k0ga@shike2.com
7af030c9
fix PageUp Modifier Mask in config.def.h

Signed-off-by: Christoph Lohmann <20h@r-36.net>
Markus Teich teichm@fs.tum.de
5d3318c0
Fixing title setting with the title argument.
Christoph Lohmann 20h@r-36.net
369734c8
Adding xterm behaviour to setting the title.

Thanks Airwave!
Christoph Lohmann 20h@r-36.net
2cf4f366
Bumping up the xfps so mouse motion won't reap the CPU.
Christoph Lohmann 20h@r-36.net
75306949
Adding true mouse motion support.
Christoph Lohmann 20h@r-36.net
d743b93f
This is a shorter bit handling in MODE_MOUSE.
Christoph Lohmann 20h@r-36.net
317b7859
Add some comments about the other mouse reporting modes.
Christoph Lohmann 20h@r-36.net
405fd89a
Implementing mouse focus and all events.
Christoph Lohmann 20h@r-36.net
8315dc41
Fixing bad highlighting on first SNAP_WORD multiline select.
Christoph Lohmann 20h@r-36.net
b5144100
Fixing the selection in a single line again.

Thanks p37sitdu@lavabit.com!
Christoph Lohmann 20h@r-36.net
8f1bef05
Fixing the selection scrolling and the selection naming.

Thanks p37sitdu@lavabit.com!
Christoph Lohmann 20h@r-36.net
8f47c4a4
Lazy font unloading too.
Christoph Lohmann 20h@r-36.net
62502a88
Lazy fontset loading.

Thanks Johannes Hofmann <Johannes.Hofmann@gmx.de>!
Christoph Lohmann 20h@r-36.net
678eff6e
Removing an old select() regression.
Christoph Lohmann 20h@r-36.net
8e968739
Allow more complex delimiters for word selections.

Thanks Alexander Rezinsky <alexrez@gmail.com>!
Christoph Lohmann 20h@r-36.net
0c2b513d
Expand the last line with '\n' in case of overselection.

Thanks Alexander Rezinsky <alexrez@gmail.com>!
Christoph Lohmann 20h@r-36.net
634c247f
Select to the end of row if end of line is reached.

Thanks Alexander Rezinsky <alexrez@gmail.com>!
Christoph Lohmann 20h@r-36.net
5938fa9d
Better comments for the snapping code.
Christoph Lohmann 20h@r-36.net
8618386d
More stable blinking.
Christoph Lohmann 20h@r-36.net
e1458ef4
Explaining blinking for the dummies.
Christoph Lohmann 20h@r-36.net
911ba567
Selection snapping is now considering wrapping.

Thanks Alexander Rezinsky <alexrez@gmail.com> for mentioning this!
Christoph Lohmann 20h@r-36.net
a53017c8
Add a possibility to modify the string sent by mouse buttons.

Thanks Alexander Rezinsky <alexrez@gmail.com> for the suggestion!
Christoph Lohmann 20h@r-36.net
a77b0117
Be more efficient in blinking.
Christoph Lohmann 20h@r-36.net
1e097265
Enable blinking in st.
Christoph Lohmann 20h@r-36.net
1b2751f5
Fixing the selection handling to allow one char selection.

Thanks Alexander Sedov <alex0player@gmail.com> for suggesting the fix!
Christoph Lohmann 20h@r-36.net
0851f2be
Fixing the selection issue in altscreens.
Christoph Lohmann 20h@r-36.net
011c0f9e
Removed redundant check in draw code.

We're now clearing empty areas with spaces, so there is no point to check
if character contains non-empty string.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
Alexander Sedov alex0player@gmail.com
048c54fd
Fix selecting clearing and BCE

The commit b78c5085f72 changed the st behaviour enabling BCE capability,
that means erase regions using background color. Problem comes when you
clear a region with a selection, because in this case the real mode of the
Glyph is not the value of term.line[y][x], due in drawregion we had enabled
the ATTR_REVERSE bit.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
Roberto E. Vargas Caballero k0ga@shike2.com
6b03bb76
Now clipping is more clear.
Christoph Lohmann 20h@r-36.net
db6f796e
Removing the overdrawing of some fonts.
Christoph Lohmann 20h@r-36.net
7ea68632
Yes, rs2 != is2.
Christoph Lohmann 20h@r-36.net
8037dac8
There is no 8bit by default and reset 8bit too.
Christoph Lohmann 20h@r-36.net
2bd6afd1
Implementing 8 bit mode for meta.
Christoph Lohmann 20h@r-36.net
b596d6ba
Adding wrap handling in selection.
Christoph Lohmann 20h@r-36.net
872a7f18
Added support for double/triple click+dragging.

Now double-click+dragging automatically snaps both ends to word boundaries
(unless on series of spaces), and triple-click selects whole lines.
As a side effect, snapping now occurs on button press, not button release
like it previously was, but I hope that won't be inconvenient for anyone.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
Alexander Sedov alex0player@gmail.com
3c546ae7
0.4.1 release.
Christoph Lohmann 20h@r-36.net
645c1b0a
Making st compile on OpenBSD again.
Christoph Lohmann 20h@r-36.net
e5ff7464
Selection now handles empty lines less counter-intuitively.

Now, when you are selecting a region, you will get all empty lines that happen
to be in it, including trailing ones. Last line terminator is omitted as it previously
was, though.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
Alexander Sedov alex0player@gmail.com
da182612
Removing trailing whitespace.
Christoph Lohmann 20h@r-36.net
b7e6a5c8
Got rid of redundant Glyph state.

Now, newly allocated Glyphs are set to spaces and current cursor colors
with tclearregion() routine.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
Alexander Sedov alex0player@gmail.com
3ae02990
Removing unneeded comments.
Christoph Lohmann 20h@r-36.net
fed9968b
Got rid of code duplication in tnew() and tresize().

Signed-off-by: Christoph Lohmann <20h@r-36.net>
Alexander Sedov alex0player@gmail.com
0ca0dd8b
Strip trailing spaces from lines when copying selection.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
Alexander Sedov alex0player@gmail.com
c371fe58
Enable BCE everywhere.
Christoph Lohmann 20h@r-36.net
44db38a5
Fix the geometry handling.
Christoph Lohmann 20h@r-36.net
4de64fa4
\033 should be used in printf in the FAQ.

Never apply patches of Apple users without shouting at them. The basic rule of
nature is that when you apply Appl users patches without shouting at them that
something will go horribly wrong.
Christoph Lohmann 20h@r-36.net
de4cd2f6
Resize now uses xclear().
Christoph Lohmann 20h@r-36.net
1e7816c2
Drawing a more visible rectangle as cursor on unfocus.

To have a more visible cursor on unfocused windows this patch makes st draw a
rectangle around the terminal cell.

Thanks Mark Hills <mark@xwax.org> for the suggestion!
Christoph Lohmann 20h@r-36.net
5dc48af2
Patching while not really woken up.
Christoph Lohmann 20h@r-36.net
5984657c
Minor naming issue fixed.
Christoph Lohmann 20h@r-36.net
4018b2c5
Making the copy and pasting consistent.

The copying and pasting in the terminald and GUI world is flawed. Due to the
discussion on the mailinglist it seems that sending '\n' is what GUIs expect
and '\r' what terminal applications want. St now implements that behaviour.
Christoph Lohmann 20h@r-36.net
ddd429ea
Convert FAQ into Markdown, to make it easier to integrate it into http://st.suckless.org/

Signed-off-by: Christoph Lohmann <20h@r-36.net>
Kai Hendry hendry@webconverger.com
684cf55a
Make st work with a plain -e command.
Christoph Lohmann 20h@r-36.net
b1813b14
Adopting arg.h with more flexible cmd handling.
Christoph Lohmann 20h@r-36.net
580c8bbd
Add an option to disable alternative screens.
Christoph Lohmann 20h@r-36.net
502911e5
Updating the TODO file for after 0.4.
Christoph Lohmann 20h@r-36.net
a3a5b8e1
Releasing 0.4.
Christoph Lohmann 20h@r-36.net
7e7760c2
Add the possibility to have default highlight colors.

Thanks to stargrave@stargrave.org for the suggestion!
Christoph Lohmann 20h@r-36.net
adde5c6d
Adding PgUp + Ctrl.

Thanks stargrave@stargrave.org!
Christoph Lohmann 20h@r-36.net
f8768106
Adding PgUp and PgDown + Ctrl to config.def.h

Thanks stargrave@stargrave.org!
Christoph Lohmann 20h@r-36.net
a1e3b94b
Removing an undefined case. just do regular selections.
Christoph Lohmann 20h@r-36.net
4b17dddb
Making rectangular selection work again.

People sending me patches against strange revisions and basing on their own
revisions make me having to reapply them. Then such errors appear.

Thanks Alexander Sedov <alex0player@gmail.com> for noticing this.
Christoph Lohmann 20h@r-36.net
55adf0aa
Pange seems to use ascent + descent instead of height.

Thanks Bobby Powers <bobbypowers@gmail.com> for noticing this!
Christoph Lohmann 20h@r-36.net
82494f24
Making st compile on OS X.
Christoph Lohmann 20h@r-36.net
c6b89f23
Using strsep and fixing null termination in csiparse.

Thanks for the hint from Alexander Sedov <alex0player@gmail.com>!
Christoph Lohmann 20h@r-36.net
1c1621da
Changing the way how paste is handled, just for the nano people.
Christoph Lohmann 20h@r-36.net
1aa26b4e
Fixing a bug while parsing empty arguments in csiparse.
Christoph Lohmann 20h@r-36.net
7d32471e
Fixing bugs in the strtol and strtok_r replacements.

Thanks "Roberto E. Vargas Caballero" <k0ga@shike2.com> for the comments!
Christoph Lohmann 20h@r-36.net
7cb0d955
Using strtok_r for the string parsing.
Christoph Lohmann 20h@r-36.net
37863356
Using strtol with overflow checking.
Christoph Lohmann 20h@r-36.net
be7c6d7f
Add insert for the primary clipboard to MOD + Shift + Ins.

Thanks Mantas Mikulėnas <grawity@gmail.com> for the patch!
Christoph Lohmann 20h@r-36.net
e40d8da1
Removing dbe and introducing umlauts to titles.

Thanks Alexander Sedov <alex0player@gmail.com> for the title patch!
Christoph Lohmann 20h@r-36.net
efaf1c2a
Add umlaut support for title change.

Thanks Alexander Sedov <alex0player@gmail.com>!
Christoph Lohmann 20h@r-36.net
1b6c6535
Replace parse_int with atoi().
Christoph Lohmann 20h@r-36.net
800800a3
Added basic xterm-ish palette swap support.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
Alexander Sedov alex0player@gmail.com
3865e9ea
Implement rectangular mouse selection.

Thanks Alexander Sedov <alex0player@gmail.com>!
Christoph Lohmann 20h@r-36.net
e5295629
ensure that the italic font has the same weight as the normal font

The specified font[] pattern need not have a medium weight. It could be
specified as a number too or have a different weight other than medium.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
joe9 joe9mail@gmail.com
0e738c3d
Style inquisition.
Christoph Lohmann 20h@r-36.net
7f297e29
Fixing the reverse mode of st colors.

Thanks Alexander Sedov <alex0player@gmail.com> for finding this!
Christoph Lohmann 20h@r-36.net
f4a6c20f
Adding a way to ignore bits in the state.
Christoph Lohmann 20h@r-36.net
e0ec2cf9
Style inquisition.
Christoph Lohmann 20h@r-36.net
a92a678e
The refresh rate for the action needs to be high too.
Christoph Lohmann 20h@r-36.net
de7e0e9c
Changing the fps to something reasonable high.
Christoph Lohmann 20h@r-36.net
086cd615
Doing it like the new run() was proposed.
Christoph Lohmann 20h@r-36.net
95033753
Adding a more efficient drawing code.

Thanks Mihail Zenkov <mihail.zenkov@gmail.com> for giving the hint!
Christoph Lohmann 20h@r-36.net
b7261c84
Tmux wants this to be mutually exclusive.

Thanks Egmont Koblinger <egmont@gmail.com> for noticing this!
Christoph Lohmann 20h@r-36.net
05a1ff03
Adding mor explict font patterns.
Christoph Lohmann 20h@r-36.net
eeffbe11
Making st not activate the cursor in case of Mod + k in dwm.

Thanks Jens Nyberg <jens.nyberg@gmail.com>!
Christoph Lohmann 20h@r-36.net
8a9475a0
Setting the surrounding border to defaultbg.

Thanks Stephen Caraher <moskvax@gmail.com>!
Christoph Lohmann 20h@r-36.net
ce3efa9e
Removing some debug messages.
Christoph Lohmann 20h@r-36.net
efd04cca
Fixing the menus in mc.
Christoph Lohmann 20h@r-36.net
26c101b7
Fixing the black remaining lines in mc and dialog.

This also applies some style fixes and handles some old blink codes.
Christoph Lohmann 20h@r-36.net
384fabdb
Adding extended mouse reporting in st.

Thanks Egmont Koblinger <egmont@gmail.com>!
Christoph Lohmann 20h@r-36.net
deb720af
Removing the debug messages again.
Christoph Lohmann 20h@r-36.net
57f39def
Fixing the clipboard copying to st itself.
Christoph Lohmann 20h@r-36.net
3036051f
St is in 2013 now.
Christoph Lohmann 20h@r-36.net
d8f38093
Removing BCE from the TODO list.
Christoph Lohmann 20h@r-36.net
b78c5085
Implementing Back Color Erase (BCE).
Christoph Lohmann 20h@r-36.net
b4b513c7
Make line drawing work again.
Christoph Lohmann 20h@r-36.net
15c2bff9
Yes, xft should be on the buffer. Thanks Mihail Zenkov.
Christoph Lohmann 20h@r-36.net
c7b033b8
Trying out the double buffering without dbe.
Christoph Lohmann 20h@r-36.net
0e232a41
Dbe is not required anymore.
Christoph Lohmann 20h@r-36.net
3ce96aea
Adding the FAQ entry for zsh.

Thanks Roberto E. Vargas Caballero! You were committing this patch against the
wrong version of the FAQ, so I had to rewrite it.
Christoph Lohmann 20h@r-36.net
ed90afb7
The title can now be set with UTF-8 characters.

Thanks Mihail Zenkov <mihail.zenkov@gmail.com>!
Christoph Lohmann 20h@r-36.net
c9bd58e4
Adding a nasty resize bug. Maybe it can be fixed.
Christoph Lohmann 20h@r-36.net
f25c75d7
Removing the .hgtags file. Thanks ilf.
Christoph Lohmann 20h@r-36.net
1827e064
Standout mode has changed. Thanks p37sitdu@lavabit.com!
Christoph Lohmann 20h@r-36.net
b3326ab6
A different double buffering strategy so the background is default set.
Christoph Lohmann 20h@r-36.net
f741df9c
Standout is now reverse. This makes bsd-games work in st.
Christoph Lohmann 20h@r-36.net
73879c17
Adding an FAQ entry for the keypad handling.

Thanks "Roberto E. Vargas Caballero" <k0ga@shike2.com>!
Christoph Lohmann 20h@r-36.net
5facd29f
Synchronizing the FAQ of the website and the repository.
Christoph Lohmann 20h@r-36.net
b233007e
Damn, my fault. The cache should have at least some entries.
Christoph Lohmann 20h@r-36.net
c772a6e5
Applying the changes to the docs; by Peter Hartman.
Christoph Lohmann 20h@r-36.net
4682cc95
Making the fontconfig and freetype paths portable in config.mk.
Christoph Lohmann 20h@r-36.net
4e14a4a9
A fix for the XopenIM() errors.
Christoph Lohmann 20h@r-36.net
c99db5b0
Increasing font cache for speeding up UTF8 demos.
Christoph Lohmann 20h@r-36.net
44e1b79a
Removing the warning about extents.
Christoph Lohmann 20h@r-36.net
08e06ef0
Fixing the font unloading in case of zoom.
Christoph Lohmann 20h@r-36.net
addc8483
Speeding up the drawing, then all characters are known.
Christoph Lohmann 20h@r-36.net
9c44229c
Adding fallback support to st.
Christoph Lohmann 20h@r-36.net
082bab29
Fixing a compile error.
Christoph Lohmann 20h@r-36.net
ac4c6da4
Fixing a off-by-one error in the penultimate row drawing.
Christoph Lohmann 20h@r-36.net
4d37763e
Fixing a precedence problem. Thanks tridactyla!
Christoph Lohmann 20h@r-36.net
fc2b3669
Checking for the lower X11 special keys too. Thanks Benjamin R. Haskell!
Christoph Lohmann 20h@r-36.net
3c6ec199
Adding error checks for XCreateIC and XOpenIM.
Christoph Lohmann 20h@r-36.net
2696f818
Be careful about mar77i's patches.
Christoph Lohmann 20h@r-36.net
78215c8e
Fixing the nasty selection bug. Thanks p37sitdu@lavabit.com!
Christoph Lohmann 20h@r-36.net
fe3fb82d
Applying the patch of mar771 right.
Christoph Lohmann 20h@r-36.net
fdce8bba
Applying the change of the Del key assingment. Thanks Martti Kühne!
Christoph Lohmann 20h@r-36.net
d5994b43
Add support for End key

    - Shift + End : Delete until end of line.
    - Control + End : Delete until end of screen.

When  the End  key is  pressed  without any  modifier is  not generated  the
correct sequence for it  (going to the end of the  screen), because the size
of the  terminal is not known,  so it is  not possible write a  sequence for
this purpouse.
---
 config.def.h |   10 ++++++++--
 st.info      |    2 ++
 2 files changed, 10 insertions(+), 2 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
7c34ff17
Add support for Supr key

    Del : Delete character under cursor.
    Shift + Del : Delete the line under cursor.
    Ctrl + Del: Delete the full screen.
---
 config.def.h |   16 ++++++++++++----
 st.info      |    2 ++
 2 files changed, 14 insertions(+), 4 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
3c99be68
Add support for insert key

Insert key stands for a key which allows enter or leaves insert mode, so let
it generates the correct sequence to change between these modes:

   - Insert: Enter in insert mode.
   - Shift + Insert: Leave insert mode (replace mode).
   - Control + Insert: Insert a blank line.

Like Shift + Insert also paste text, if a user want this feature be full
functional he has to modify such shortcut.
---
 config.def.h |   16 ++++++++++++----
 st.info      |    3 +++
 2 files changed, 15 insertions(+), 4 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
e7904128
Fix value of ka1 terminfo capability

ka1 stands for upper left of keypad, so the correct value is the one
generated by Home in application keypad mode.
---
 st.info |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Roberto E. Vargas Caballero k0ga@shike2.com
61b20f4b
Add a notice in the config.def.h file how to obtain the syntax for

xft/fontcache.
Christoph Lohmann 20h@r-36.net
373a8f56
The style inquisition was here.
Christoph Lohmann 20h@r-36.net
172f6543
Add key for toogling numlock handling

Keypad will generate keycodes when keypad application mode is enabled. It
can cause problems with some programs like vi, which operates in such
mode.

This patch change by default don't generate the keycodes never, but this
behaviour can be changed using the combination Alt + NumLock.
---
 config.def.h |   34 ++++++++++++++++++----------------
 st.c         |   17 +++++++++++++++--
 2 files changed, 33 insertions(+), 18 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
b26df1d0
Fixing the calculation of the base tty pixel size.
Christoph Lohmann 20h@r-36.net
cf04354e
Restoring the Alt + Backspace functionality. Thanks Brandon Invergo!
Christoph Lohmann 20h@r-36.net
55087ec2
Add application cursor sequences for Home

The commit 'Fixing some key issues with mc' fix the problem where mc didn't
recognize home key because the generated code and the terminfo entry were
different (terminfo khome = \E[1~ but generates \033[H).

Home key in ansi mode should generate the sequence CUP (\033[H) to 0,0 (home
position), but it is also interesting generate a application code which
identifies the key. Real vt520 only generates the ansi sequence CUP, linux
console generates only the application code \033[1~, xterm generates CUP in
ansi mode and \033OH in cursor application mode, rxvt only generates the
application code \033[7~.

This patch sets CUP in ansi mode and \033[1~ in cursor application mode, so
it can be used in both modes and the application mode value is similar to
near values (insert = \033[2~, Prior = \033[5~, Next = \033[6~, End =
\033[4~, Supr = \033[3).
---
 config.def.h |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
1cbe5602
Fixing some key issues with mc. Thanks nsz!
Christoph Lohmann 20h@r-36.net
440a19a6
Getbuttoninfo is always used the same and just a helper function. Shrinking it

a bit. Thanks nsz!
Christoph Lohmann 20h@r-36.net
6312f76c
Fix speech error in comment

---
 st.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Roberto E. Vargas Caballero k0ga@shike2.com
0df350cd
Remove unused fields in cursor_movement

---
 st.c |    4 ----
 1 file changed, 4 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
1cea02be
Removing my debug fprintf().
Christoph Lohmann 20h@r-36.net
2b6521f5
Optimizing the key lookup to the X11 function key. It is still possible to

remap other keys.
Christoph Lohmann 20h@r-36.net
927d8fb4
Making all function keys accessible.
Christoph Lohmann 20h@r-36.net
a29ab30f
Adding support for XK_F35.
Christoph Lohmann 20h@r-36.net
90e14276
Fix Shift + Insert shortcut

This patch apply the same code for shortcuts that it is used now for defined
keys. So it is possible use now XK_NO_MOD and XK_ANY_MOD for defining shortcuts.
---
 st.c |   35 ++++++++++++++++++++---------------
 1 file changed, 20 insertions(+), 15 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
cc86d148
Changing the TODO to the current state.
Christoph Lohmann 20h@r-36.net
d5640c77
Fixing the return and keypad enter sent characters. Terminals produce \r. And

some minor style changes.
Christoph Lohmann 20h@r-36.net
801ea034
Import the patch of Eckehard Berns to add insert mode. Thanks!
Christoph Lohmann 20h@r-36.net
e87d21bb
The crlf mode was reversed.
Christoph Lohmann 20h@r-36.net
e7bb14e0
Fixing Return in non-crlf mode.
Christoph Lohmann 20h@r-36.net
4389f2eb
Use XK_ANY_MOD instead of XK_NO_MOD in key definition

Usually terminal emulators don't generate any sequence for a combination
they don't have registered, for example Shift + Next, but st behavior
previous to the keyboard patch generates the sequence without the modifier,
in this example Next. This patch uses the XK_ANY_MOD in order to get this
same behaviour.
---
 config.def.h |  114 ++++++++++++++++++++++++++++++----------------------------
 1 file changed, 59 insertions(+), 55 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
88bb76c1
Fix XK_NO_MOD and XK_ANY_MOD behavior

XK_NO_MOD match a key without modifiers and XK_ANY_MOD match a key does not
matter what modifiers are pressed to. Like they are mask the best value for
XK_ANY_MOD is all the bits to 1, so the and with any state will be equal to
the state. This also imply that is necessary check the case for XK_NO_MOD
(no modifiers at all) with some modifier in state, and the inverse
(some mask different to XK_ANY_MOD or XK_NO_MOD and no modifiers in state).
---
 st.c |   12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
16ccf344
Fix tab key

When Shift + Tab is pressed X server send the event XK_ISO_Left_Tab with
ShiftMask, so this is the entry we need in config.def.h

This patch also revert the previous patch for this issue because it breaks
the keyboard.
---
 config.def.h |    2 +-
 st.c         |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
461aac15
Fixing the tab key, when no mask is wanted.
Christoph Lohmann 20h@r-36.net
7474a2fc
The style inquisition was here again.
Christoph Lohmann 20h@r-36.net
620e3bb3
Add missed key definitions

This patch adds the keys for the keypad (in both modes, application mode or
ansi mode) and function keys. It uses the same convention than xterm and
instead of using the XK_Fxx values it generates them using F1-F12 and
modifiers. For example:

   F1 -> ^[OP
   F1 + Shift = F13 -> ^[[1;2P
   F1 + Control = F25 -> ^[[1;5P
   F1 + Mod2 = F37 -> ^[[1;6P
   F1 + Mod1 = F49 -> ^[[1;3P
   F1 + Mod3 = F61 -> ^[[1;4P

It is also important notice than the terminfo capability kIC (shifted insert
key) only can be generated using the keypad keyboard, because the shorcut
for selection paste is using the same combination.

After this path the number of elements in the Key array becomes high, and
maybe a sequencial search is not enough efficient now.
---
 TODO         |    6 +---
 config.def.h |  102 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 st.info      |   70 ++++++++++++++++++++++++++++++++++++++--
 3 files changed, 169 insertions(+), 9 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
44597b35
Add control and meta combinations for arrow keys

Since there isn't any terminfo capability for control and meta modifiers for
arrows keys it is necessary use the same that almost terminal emulators use,
because there are a lot of programs which have these codes hardcoded.

This cause also that shift combinations are also changed, but in this case
this is not a problem since there are terminfo capabilities for them. After
this patch shift-up and shift-down continue not working in emacs with
TERM=st, but they work with TERM=xterm, so it is possible some other changes
are necessary in the terminfo entry.
---
 config.def.h |   16 ++++++++++++----
 st.info      |    8 ++++----
 2 files changed, 16 insertions(+), 8 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
3b16695f
Fix arrow keys terminfo capabilities

Usually the arrow keys generate the ANSI sequence which terminal will
understand like a movement, so it is not necessary any dealing for them, the
program can not know if the sequence is generate for a echo key or directly
from the program. If you need really know if the key was pressed then you
need activate the keypad mode where the keys will generate a special code
for each keypad key.

The terminfo capabilities kcub1, kcud1, kcuf1 and kcuu1 are used for this
keypad code, not for the sequence generate in the ansi mode.
---
 st.info |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
ea782bfc
Remove hardcoded keys form kpress

Some keys were in the Key array while others were hardcoded in
kpress().This cause some problems with some keys which can generate more of
one string based in the configuration of the terminal.
---
 config.def.h |   70 ++++++++++++++++++++++++++++++++++++++++-----------------
 st.c         |   71 +++++++++++++++++++++++++---------------------------------
 2 files changed, 79 insertions(+), 62 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
93f31166
Move Shift + Insert to shortcut

Shift + Insert is used like a hot key for paste the selection, so it is more
logical move it to shortcut array instead of having special code for it.
---
 config.def.h |    1 +
 st.c         |   13 +++----------
 2 files changed, 4 insertions(+), 10 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
69ee3ba3
Fix keypad mode and cursor mode

Keypad mode is used for detecting when keys in the auxiliary keypad are
pressed, while cursor mode is used for detecting when a cursor is pressed,
but they are different modes.

St was mixing both modes and DECPAM and DECPNM modified the cursor mode, and
this was incorrect.
---
 st.c    |    5 +++--
 st.info |    4 ++--
 2 files changed, 5 insertions(+), 4 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
73177ba3
Add SRM sequence

This sequence enable/disable the local echo.
---
 st.c |   76 ++++++++++++++++++++++++++++++++++++++++++++++++------------------
 1 file changed, 56 insertions(+), 20 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
ace789a7
Gc is not used anymore.
Christoph Lohmann 20h@r-36.net
c4a9ccec
Removing some xft naming cruft.
Christoph Lohmann 20h@r-36.net
5d5a7c62
Moving the alt declaration to the beginning of the function.
Christoph Lohmann 20h@r-36.net
86659052
Move unsupported sequences to ignored.

These sequences will be never implemented and in this moment they are
generating a lot of noise.
---
 st.c |   14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
27468403
Ignore DECARM sequence

DECARM modify the auto repeat settings in the keyboard, and since we can not
modify this setting in the Xserver the best solution is only ignore it.
---
 st.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
d5b80e05
Fix VPR sequence

VPR stands for Move cursor down a number of rows, and the code was moving
the cursor up instead of moving it down.
---
 st.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
5260a9ea
Add DECOM sequence

DECOM sequence allows to the user defines a new home position. The home
position is used as base for all the movement commands except HVP and
VPA. It is important notice than DECSLM moves cursor to absolute position
0,0.
---
 st.c |   33 ++++++++++++++++++++++++++-------
 1 file changed, 26 insertions(+), 7 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
ee3e0a9f
Save cursor position in terminal reset

After terminal reset saved terminal position is reset to 0, allowing know
where cursor will go in next restore cursor operation.
---
 st.c |    2 ++
 1 file changed, 2 insertions(+)
Roberto E. Vargas Caballero k0ga@shike2.com
ba9d0365
Clarify some or exclusive expressions

Since relational expresions are always evaluated to 0 or 1, we can use
bitwise xor operator instead of using more complex boolean expressions.
---
 st.c |   14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
950ff21e
Fix bug restoring cursor position

Sequences like DECSC, DECRC, ESC [?1047l or ESC [?1047h save and restore
cursor attributes, than taken from vt100 manual are:

       Save Cursor (DECSC) ESC   7
       ===========================
       Saves the following in terminal memory.

      - cursor position
      - graphic rendition
      - character set shift state
      - state of wrap flag
      - state of origin mode

      Restore Cursor (DECRC) ESC 8
      ===========================
      Restores the states described for (DECSC) above. If none of these
      characteristics were saved, the cursor moves to home position; origin
      mode is reset; no character attributes are assigned; and the default
      character set mapping is established.

This implies that hide attribute of the cursor should not be saved/restored
in these sequences. The best way to fix this problem is moving hide
attribute into the terminal mode, instead of having it in the cursor state.
---
 st.c |   12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
5d39afc9
Adding scrollwheel support. Thanks Brandon Invergo!
Christoph Lohmann 20h@r-36.net
9df1e561
Changing the license to MIT/X.
Christoph Lohmann 20h@r-36.net
0fbe1559
Fixing meta+return. Thanks Szabolcs Nagy!
Christoph Lohmann 20h@r-36.net
86261187
Removing the debugging for the last fix too.
Christoph Lohmann 20h@r-36.net
9888c506
Fixing a resize bug, if a smaller amount than the lineheight is resized.

Thanks c00kiemon5ter!
Christoph Lohmann 20h@r-36.net
f8db6543
Fixing bold fonts in reverse mode.
Christoph Lohmann 20h@r-36.net
76a8e5f7
Now italic and bold works.
Christoph Lohmann 20h@r-36.net
abe85c0e
Fixing an out-of-bound bug in the selection code. Thanks Szabolczs Nagy!
Christoph Lohmann 20h@r-36.net
091ae143
Fixing the italic-bold font check. Thanks nsz.
Christoph Lohmann 20h@r-36.net
cd90969c
Added tag 0.3 for changeset 9d54ce4daf34
Christoph Lohmann 20h@r-36.net
b0ed3e28
0.3 release.
Christoph Lohmann 20h@r-36.net
c631e9bb
Make it possible to use the corefont font description too. It is not very

useful, but easy to implement.
Christoph Lohmann 20h@r-36.net
393825f9
Moving to the dwm config.h variable usage.
Christoph Lohmann 20h@r-36.net
e5d7c5a6
Adding a FAQ to reference utmp(1).
Christoph Lohmann 20h@r-36.net
784765ca
Cleaning up the TODO file.
Christoph Lohmann 20h@r-36.net
1d378227
Removing the now senseless comment in config.def.h. Thanks to bnwe!
Christoph Lohmann 20h@r-36.net
c5dd7fb3
Applying the patch of the little girl <yui@blekksprut.net> to make cjk input

possible. Thanks!
Christoph Lohmann 20h@r-36.net
b56a0da2
Applying the tab expansion patch from koga.
Christoph Lohmann 20h@r-36.net
71b09ec4
Adding a more flexible fontstring handling, shortcuts and a zoom function.
Christoph Lohmann 20h@r-36.net
6d4e525e
Applying the patch of Roberto Caballero to set WINDOWID and all the pwuid()

variables. Thanks! xinit() and ttynew() had to be switched in their
call-appearance. Otherwise xw.win is not set.
Christoph Lohmann 20h@r-36.net
35421371
Applying the patch of Rafa Garcia Gallega <rafael.garcia.gallego@gmail.com> to

not emulate the vt100 behaviour of selecting all whitespaces. Thanks!
Christoph Lohmann 20h@r-36.net
ee3fbeb6
Add error control to iofile

write can write less bytes than we request, so it is necessary check the
return value, in case of error print a message and don't continnue writing
in the file.
---
 st.c |   39 ++++++++++++++++++++++++++++++---------
 1 file changed, 30 insertions(+), 9 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
2e38ab7a
Well, I was confused. Damn state exams. Instead of discussing this shit I

should really learn opthalmology instead. :O
Christoph Lohmann 20h@r-36.net
eb6713ac
If there is really someone without SHELL set, help him/her.
Christoph Lohmann 20h@r-36.net
9e813947
Add DEC alignment test

This sequence was used by DEC personal in to for verifying the screen adjust
of terminals. It is the unique test sequence implemented by all the
emulators, and I think it is because they want be conforms with vttest which
uses this sequence in some tests.
---
 st.c |   31 +++++++++++++++++++++++--------
 1 file changed, 23 insertions(+), 8 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
b7a7f171
Avoid initialization of vt100_0 in each call to tsetchar

If vt100_0 is a automatic variable then it is initializated in each call to
tsetchar, but if the variable is static it is initializated only in compile
time.
---
 st.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Roberto E. Vargas Caballero k0ga@shike2.com
25f47cb8
Fix Identification sequences

Do not send NUL character in the identification (use (sizeof(VT102ID) - 1),
and finish  the sequence once you execute it.
---
 st.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
ffeeb678
Add DA and DECID sequences

These sequences are used by the host in order to can detect which kind of
terminal is connected. St will answer like a vt102 terminal with this patch.
---
 st.c |    9 +++++++++
 1 file changed, 9 insertions(+)
Roberto E. Vargas Caballero k0ga@shike2.com
bffa6e5c
Fixing a typo.
Christoph Lohmann 20h@r-36.net
b16b5d77
Fixing a off-by-one error in the new border clearing code.
Christoph Lohmann 20h@r-36.net
2bd0c23f
Print control codes only in graphic mode

Non handled codes must be ignored, except in graphic mode. Also STR
sequences have higher priority than control codes, so they must be handled
before of them.
---
 st.c |  160 ++++++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 87 insertions(+), 73 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
034dc71f
Add SI and SO control codes

SI and SO allows change the G0 and G1 selection. This implementation is not
full vt100 compatible, but it is complatible with linux virtual terminal
implementation. For full vt100 compatibility we need remake a lot of stuff
relate to the different charmaps.
---
 st.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
fbfa1f83
Add SUB and CAN control codes

These control codes reset any escape sequence already initialised.
---
 st.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
ac8f05c4
Add documentation to control codes

Add the documentation from the vt100 manual programmer:

Control 	Octal      Action Taken
Character	Code
-------------------------------------------
NUL		000	Ignored on input (not stored in input buffer;
			see full duplex protocol).
ENQ		005	Transmit answerback message.
BEL		007	Sound bell tone from keyboard.
BS		010	Move the cursor to the left one character position,
			unless it is at the left margin,
			in which case no action occurs.
HT		011	Move the cursor to the next tab stop,
			or to the right margin if no further tab stops
			are present on the line.
LF		012	This code causes a line feed or
			a new line operation. (See new line mode).
VT		013	Interpreted as LF.
FF		014	Interpreted as LF.
CR		015	Move cursor to the left margin on the current line.
SO		016	Invoke G1 character set, as designated by SCS
			control sequence.
SI		017	Select G0 character set, as selected by ESC ( sequence.
XON		021	Causes terminal to resume transmission.
XOFF		023	Causes terminal to stop transmitted all codes
			except XOFF and XON.
CAN		030	If sent during a control sequence, the sequence is
			immediately terminated and not executed. It also causes
			the error character to be displayed.
SUB		032	Interpreted as CAN.
ESC		033	Invokes a control sequence.
DEL		177	Ignored on input (not stored in input buffer).
--------------------------------------------
---
 st.c |   28 +++++++++++++++++++---------
 1 file changed, 19 insertions(+), 9 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
02f3b37a
Forgot to remove the xclearborders() definition from the last commit.
Christoph Lohmann 20h@r-36.net
0cc7ee5e
Removing the xclearborders() hack. St now cleans up the parts of the border,

if something needs to be drawn close to it.
Christoph Lohmann 20h@r-36.net
4eddf19f
The style inquisition was here. Yes, making it a unified style. The last

infidels will be squashed too!
Christoph Lohmann 20h@r-36.net
7efa4514
Adding the patch of David Dufberg Töttrup to implement WM_DELETE_WINDOW. Thank you!
Christoph Lohmann 20h@r-36.net
bf6cf05b
Fixing the brightening on bold. For the 256 colors and greyscale I assumed a

reasonable solution.
Christoph Lohmann 20h@r-36.net
5caa46cf
Turning on antialias by default really makes it more unreadable. Maybe if once

the majority has bigger screens, this can be turned on by default again.
Thanks pancake, for the hint.
Christoph Lohmann 20h@r-36.net
0b489c4a
When the drawing behaviour was changed underline was not corrected.

Thanks to Peter A. Shevtsov!
Christoph Lohmann 20h@r-36.net
2752018e
This adds the fontcache dependency to try something out. Additionally the

invert mode now works as expected. In the config.def.h autohint is set to
false, so the fonts are drawn correctly, without any overlapping.
Christoph Lohmann 20h@r-36.net
0d88f1ef
Thanks to c00kiemon5ter. Not changing bold to bright colors seems to be the

right choice.
Christoph Lohmann 20h@r-36.net
af9e248f
Removing the now obsolete definitions from the config.def.h file.
Christoph Lohmann 20h@r-36.net
5dfd5df4
This changes -f to be the parameter for the font. Now -f is -o.

The parameters were reordered according to the alphabet too.
Christoph Lohmann 20h@r-36.net
9cae1eb0
Remove the cruft of the user to have to define the different font styles.
Christoph Lohmann 20h@r-36.net
ed5b8700
We need all the colors to be available, so die() on some not available.

This is a new opportunity to see if X11 somewhen handled colors in a strange
way.
Christoph Lohmann 20h@r-36.net
d7b1e31e
All xcolors are not Xft colors and the clearing of the borders has been

optimized. There is a speedup when resizing windows.
Christoph Lohmann 20h@r-36.net
29b209f5
Vt escape sequences allow escape sequences in escape sequences and escape

sequences, so we have to support escape sequences in escape sequences that
escape sequences in escape sequences – setting a title won't notify you
anymore.
Christoph Lohmann 20h@r-36.net
3af49e34
Allow control characters inside escape sequences

Taken from vt100 manual programmer:

	Control characters (codes \0 to \37 inclusive) are specifically
	excluded from the control sequence syntax, but may be embedded
	within a control sequence. Embedded control characters are executed
	as soon as they are encountered by the VT100. The processing of the
	control sequence then continues with the next character received.
---
 st.c |   68 +++++++++++++++++++++++++++++++++---------------------------------
 1 file changed, 34 insertions(+), 34 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
a7d7e293
Ignore all control characters not handled

Taken from vt100 programmer manual:

	Control characters have values of \000 - \037, and \177. The control
	characters recognized by the VT100 are shown in Table 3-10. All
	other control codes cause no action to be taken.

We have to take attention when we are using alternate charset, because in
this cases they are not used as control characters.
---
 st.c |   20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
375b6e5b
Switching to Liberation Mono as default solely because of line drawing. A next

patch to fix the font symbols in all fonts should make it easier to choose a
better font.
Christoph Lohmann 20h@r-36.net
3a095984
Implementing line drawing right.
Christoph Lohmann 20h@r-36.net
c3b0e220
A reset should reset the line drawing too.
Christoph Lohmann 20h@r-36.net
980c5956
Enabling enacs and adding compatibility to xterm and urxvt for alternative

charsets.
Christoph Lohmann 20h@r-36.net
eb360e5f
Fix bug in tputc writing to io file

If -f options is enabled then tputc() writes all the data to a file. Actual
code assumes that all the strings in 'c' parameters have always 1 byte
length, but this is not always true, because due to utf-8 encoding some
characters can have a diferent length. So it is necessary pass string length
to tputc in order it can call to write() correctly.
---
 st.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
246d704b
Changing the default font to DejaVu Sans Mono, which is more appealing and

activating antialiasing.
Christoph Lohmann 20h@r-36.net
055a4f6d
The xinit() call needs to be behind all the tty init, otherwise all the

allocated structures are wrong. The xclear() is now done on purpose. Please
keep X11 calls out of the way of pure tty-related calls.
Christoph Lohmann 20h@r-36.net
e9c67781
Adding a TODO for xft fallback.
Christoph Lohmann 20h@r-36.net
74d6abfe
Add some documentetion to tsetmode

The names of the terminal modes supported by vt102 are (taken from the VT220
programmer reference manual):

Table 4-7 ANSI-Standardized Modes
Name  Mnemonic		    Parameter (Ps)
Error (ignored)		    -         0 (3/0)
Keyboard action		    KAM	      2 (3/2)
Insert/replace		    IRM	      4 (3/4)
Send/receive		    SRM	      12 (3/1 3/2)
Line feed/new line	    LNM       20 (3/2 3/0)

Table 4-8 ANSI-Compatible DEC Private Modes
Name  Mnemonic		  Parameter (Ps)
Error (ignored)		  -	    0 (3/0)
Cursor key		  DECCKM    1 (3/1)
ANSI/VT52		  DECANM    2 (3/2)
Column			  DECCOLM   3 (3/3)
Scroll			  DECSCLM   4 (3/4)
Screen			  DECSCNM   5 (3/5)
Origin			  DECOM	    6 (3/6)
Auto wrap		  DECAWM    7 (3/7)
Auto repeat		  DECARM    8 (3/8)
Printer form feed	  DECPFF    18 (3/1 3/8)
Printer extent		  DECPEX    19 (3/1 3/9)
Text cursor enable	  DECTCEM   25 (3/2 3/5)
National replacement character sets DECNRCM 42 (3/4 3/2)

This patch adds a comment for each one of these sequences.
---
 st.c |   26 +++++++++++++++++++++-----
 1 file changed, 21 insertions(+), 5 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
c3b63455
Fix LNM sequence

LNM sequence is a standard ANSI mode, not a DEC private mode.
---
 st.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
2f215654
Add KAM sequence

This sequence lock/unlock the keyboard ignoring all the key pressing events
from X server.
---
 st.c |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
Roberto E. Vargas Caballero k0ga@shike2.com
11bec678
Remove unused parameters in ttyresize

---
 st.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
b6cfff16
Clear X window in tsetreset()

tsetreset() is called when it is necessary a full initialization of the
terminal, so it also should clean the full X window and not only the
terminal content. It is necessary change the order of the
initialization in main(), and put xinit before of tnew(), because tnew()
calls to tsetreset(), and  this can cause a call to xreset() with
incorrect values.
---
 st.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
Roberto E. Vargas Caballero k0ga@shike2.com
21a0c4a2
Merging xft and current st heads.
Christoph Lohmann 20h@r-36.net
2b3c1219
Initial Xft support for st. More to follow.
Christoph Lohmann 20h@r-36.net
1ba5f417
config.def.h: typo in comment.
Aurélien Aptel aurelien.aptel@gmail.com
50a619ce
LEGACY: typo.
Aurélien Aptel aurelien.aptel@gmail.com
0eaed8f0
Redrawing is fixed.
Christoph Lohmann 20h@r-36.net
e4bf2679
Fixing the redrawing patch of k0ga, so it's using xclear() in redraw() too.
Christoph Lohmann 20h@r-36.net
4876d6e0
Clean windows display after resizing

Some times the size after a resizing is not an exact multiply of a number of
characters, so redrawn the screen using the lines and columns of the neww
size can cause that some old graphics keep in the screen. Solution is clean
all the windows with the background color.
---
 st.c |    3 +++
 1 file changed, 3 insertions(+)
Roberto E. Vargas Caballero k0ga@shike2.com
88a8f85a
Copy non set positions as spaces

st selection don't insert in the selection position whose value is not
set. This is correct for the positions in the end of the line, but cause
some problems in the beginning. For example echo -e 'a\tb' will print in the
screen:

a	b

but after selecting and copying in some place you get:

ab

because positions from 1 to 7 don't have any value. This patch deals all
positions without value as blank (even at the end of the line).
---
 st.c |   17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
111199cf
Add newline in error messages

---
 st.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
e3671006
Add xcalloc wrapper

malloc and realloc are called through xmalloc and xrealloc, so calloc should
be called through xcalloc.
---
 st.c |   13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
426887cc
Applying a shortening proposal for the run loop of k0ga.
Christoph Lohmann 20h@r-36.net
58a57a23
Remove call to draw in resize

In previous commits draw was removed from all the X events, but I forgot do
it in resize.
---
 st.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
22579322
Adding some more fields to the manpage, like authors, license etc.
Christoph Lohmann 20h@r-36.net
b93741e3
Remove some solved issues and add some new.
Christoph Lohmann 20h@r-36.net
9fbafe55
Preliminary solution to the stuttering problem.
Christoph Lohmann 20h@r-36.net
d81250e5
Fix selection bug

After the commit named "Remove timeout in the main loop", selection is not
working in the proper way. After selecting something, press mouse button in
a line outside of selection causes an incorrect highlight. This patch fix
the problem forcing a draw after the press event, but this is only a fast
hack. Real solution means rewriting selection code.
---
 st.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
Roberto E. Vargas Caballero k0ga@shike2.com
c5a9b799
Render only once in each main loop iteration

draw() runs over all lines of the screen and renders only the dirty lines,
this avoids render lines which are not modified since last draw() call. In
this moment the main loop is something like:

     - Wait something to read from file descriptors
     - Read from pseudo tty
     - Call draw() for rending
     - Read X events

This cause the problem that all the X events that have to update the screen
have to call draw() (because draw() is called before of X events handling),
so you can have multiples renderings in only one iteration, that will waste
a lot of resources.

This patch change the main loop to:

     - Wait something to read from file descriptors
     - Read from pseudo tty
     - Read X events
     - Call draw() for rending

So X events don't have to worry about rendering, because draw() is called
after them.

The only place where draw is called outside of the main loop is in redraw(),
but it is necessary for getting a good tput flash.
---
 st.c |   29 ++++++-----------------------
 1 file changed, 6 insertions(+), 23 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
85849ce7
Remove timeout in the main loop

The main loop waits until there is some data to read in file descriptors of
the X server or the pseudo tty. But it uses a timeout in select(), which
causes that st awake each 20 ms, even it doesn't have something to do. This
patch removes this problem removing the timeout, which is not needed.
---
 TODO |    1 -
 st.c |   27 +++------------------------
 2 files changed, 3 insertions(+), 25 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
15cc8754
Call XSync in redraw

It is necessary call to XSync if you want a good tput flash, because in
other way you can not be sure that white screen will be shown.
---
 st.c |    1 +
 1 file changed, 1 insertion(+)
Roberto E. Vargas Caballero k0ga@shike2.com
ba1e9dae
Call XdbeQueryExtension before of calling any Xdbe function

XdbeQueryExtension() tells to the caller if the Xdbe extension is present in
the X server, so it should be called for sanity. But like is said in
XdbeQueryExtension(3):

	No other Xdbe functions may be called before this function.  If a
	client violates this rule, the effects of all subsequent Xdbe calls
	that it makes are undefined.

it is mandatory call this function.
---
 st.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
a6278978
Implementing italic-bold. This will require an increase of the avgWdth.
Christoph Lohmann 20h@r-36.net
b1563526
Ignore NUL character as a padding character. Telnet may use this. Patch of

Roberto Vargas.
Christoph Lohmann 20h@r-36.net
776a022e
Importing the patch of Roberto Vargas to inherit signal handlers.
Christoph Lohmann 20h@r-36.net
fe2ba95b
Reset window title on terminal reset too.
Christoph Lohmann 20h@r-36.net
977c5d90
Adding a statemant on legacy support.
Christoph Lohmann 20h@r-36.net
d018c9c8
Adding another bold off sequence.
Christoph Lohmann 20h@r-36.net
720cb816
Remove buffering to fileio instead of calling fflush

By default text files are line buffered, and this means that -f option will
not write the line until a \n is printed. This is not very useful for
debugging, so a call to fflush was added. This patch substitute this call
(which will be done by each character painted) by the full remove of the
buffering in the file.
---
 st.c |   12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
b9d5fec4
Add xmalloc and xrealloc wrappers

If malloc  or realloc fail they return NULL. Theorically this condition
should be tested in the code, but it's a strange condition today (basically
if this is hapenning thenyou have a big problem), and even Linux never returns
NULL in the default configuration (only if the process don't have room in
the space address, something a bit impossible in the case of st). But stis
enough small for being executed in low resources computers where this can be
a real problem. So the easy way is creating a wrappers function for them and
call to die in case of error.
---
 st.c |   44 +++++++++++++++++++++++++++++++-------------
 1 file changed, 31 insertions(+), 13 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
8f1144ed
Make nyancat(1) work. Important release feature!
Christoph Lohmann 20h@r-36.net
121d9109
Add preliminary blink stubs. Real implementation is still missing.
Christoph Lohmann 20h@r-36.net
c092bce3
Add another obscure way to set a window title.
Christoph Lohmann 20h@r-36.net
af29fb2a
Fixing the too small window in non-tiling window managers.
Christoph Lohmann 20h@r-36.net
122ed577
Making the selection work again.
Christoph Lohmann 20h@r-36.net
a1cd28f8
Allow simpler stdout -f handling.
Christoph Lohmann 20h@r-36.net
f2da43a0
Adding instantenous debug output and fixing italic with a reset.
Christoph Lohmann 20h@r-36.net
86cf8e30
Adding the removal of the timeouts to the TODO.
Christoph Lohmann 20h@r-36.net
4a4ae191
Removing masks for unhandled enter and leaving events.
Christoph Lohmann 20h@r-36.net
dd0b7a07
If the selection is cleared, draw() and do it on button press too.
Christoph Lohmann 20h@r-36.net
f471a32d
Unhighlight selection when selection is owner by other window

st marks the active selection using reverse colors in the box selection, but
once that another window becomes owner of the selection, it is very
confusing that st keeps highlight the old selection. Usually terminal
emulators remove the highlight when it is not valid anymore.

X sends a SelectionClear event in this situation, so we only have to add a
callback which unhighlight the selectin box.
---
 st.c |    9 +++++++++
 1 file changed, 9 insertions(+)
Roberto E. Vargas Caballero k0ga@shike2.com
017af76f
Forcing the parameter limit to xcopy() and selpaste(). Thanks to Rob Pilling.
Christoph Lohmann 20h@r-36.net
42505c52
Removing unneeded arguments to copy(). Thanks to Andrew Hills.
Christoph Lohmann 20h@r-36.net
462a966e
Implement italic font support.
Christoph Lohmann 20h@r-36.net
56c551e4
Add to TODO to make function keys work.
Christoph Lohmann 20h@r-36.net
a61b9ea8
Enable keypad set and unset commands.
Christoph Lohmann 20h@r-36.net
da4a77ed
Disable BCE again.
Christoph Lohmann 20h@r-36.net
98dc91eb
Removing the resize issue from the TODO file.
Christoph Lohmann 20h@r-36.net
67c1a230
Fixing the resizing behaviour.
Christoph Lohmann 20h@r-36.net
e09709d9
Forgot one line. It's late.
Christoph Lohmann 20h@r-36.net
b1d383a0
Cleaning up the fixed window size and the resizing of clients.
Christoph Lohmann 20h@r-36.net
e02d7244
Another thing for TODO – resize.
Christoph Lohmann 20h@r-36.net
052a6178
Updating the TODO and enabling BCE.
Christoph Lohmann 20h@r-36.net
6e88c7f6
CUP == HVP; CHA == HPA;
Christoph Lohmann 20h@r-36.net
59fe59d3
Unifying the old style.
Christoph Lohmann 20h@r-36.net
98b6f84b
Check alternative screen before drawing box selection

Some programs use the alternative screen (vi, less, ...), whose
content is different of the main screen. If you select text in one of
the screen, you don't wait the box selection is painted in the other
screen, so it is necessary check if the selection was done in the same
screen we are going to paint. Before to this commit, you could do
something like:

	$ LESS="" ls | less
	(select some code)
	q

and selection box remains drawing in the main screen, but the content
of selection keeps text of the alternate screen.
---
 st.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
Roberto E. Vargas Caballero k0ga@shike2.com
66669a55
Add newline to stderr message

---
 st.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Roberto E. Vargas Caballero k0ga@shike2.com
1d670202
Fixing the border pixel when there is a negative position.
Christoph Lohmann 20h@r-36.net
579f12d4
Add -g geometry to st and the manpage.
Christoph Lohmann 20h@r-36.net
466decd5
Fixing a type in in2 in the st.info.
Christoph Lohmann 20h@r-36.net
930b2c4a
Force redisplay of all lines in DECSCNM

When it is called DECSCNM all lines become dirty, because it is necessary
redraw all lines for getting the new colors. It is easy see the problem
running 'echo ^[[?5h'.

In order to get a correct flash when running tput flash is necessary wait
after DECSCNM, until the changes are displayed, because in other case the
switch between reverse on/reverse off will be too much fast and nothing will
happen.
---
 st.c |   12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
Roberto E. Vargas Caballero k0ga@shike2.com
a984ffc4
Add write I/O to file

This is a theorical feature listed in http://st.suckless.org/goals. All the
input/output of the terminal will be written to a file, which can be very
useful for debugging, and also allow interconnect st to other process
through named pipes.
---
 st.1 |    6 ++++++
 st.c |   14 +++++++++++++-
 2 files changed, 19 insertions(+), 1 deletion(-)
Roberto E. Vargas Caballero k0ga@shike2.com
cfefa054
Patch from Roberto Vargas. »Add initialization strings in terminfo«


Taken from the description:

When tput init is executed the list of task performed are (taken from
terminfo(5)):

              run the program
                     iprog

              output is1 is2

              set the margins using
                     mgc, smgl and smgr

              set tabs using
                     tbc and hts

              print the file
                     if

              and finally
                     output is3.

When reset is executed, a more stronger initialization process is performed,
so the terminal can return from an unknown state. rs1, rs2 and rs3 are used
in this case instead of
using is1, is2 and is3.

This patch makes is2 = rs2, resets insert mode and set normal keypad
mode. For rs1 it performs a full initilization using ^[c.
Christoph Lohmann 20h@r-36.net
b11d85c9
Add standout mode.
Christoph Lohmann 20h@r-36.net
7f17a708
Cleaning up lonely tabs.
Christoph Lohmann 20h@r-36.net
588ba51a
Make it more obvious where the wrong attribute is used.
Christoph Lohmann 20h@r-36.net
c79df9f7
Enable multiple arguments in SM and RM

SM and RM can receive multiple parameters, but the code only was accepting
only one. This patch join the code of set and reset modes (SM and RM) in a
common function and uses a loop which deals with all the arguments of the
sequence. This patch improves xterm and vt100 compability.
---
 st.c |  180 ++++++++++++++++++++++++++++--------------------------------------
 1 file changed, 76 insertions(+), 104 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
4cdcc395
Add vpa terminfo capability

---
 st.info |    2 ++
 1 file changed, 2 insertions(+)
Roberto E. Vargas Caballero k0ga@shike2.com
81c678e5
Silencing the compiler but keeping strparse.

This will really be needed when there is a full 256 color support.
Christoph Lohmann 20h@r-36.net
c58950f2
Applying the CBT patch of Roberto Vargas. Thanks.
Christoph Lohmann 20h@r-36.net
91fa81db
Never trust terminfo fata morganas. And adding other xterm compatibility.
Christoph Lohmann 20h@r-36.net
6696ef85
Add OSC, DSC, PM, APC and settitle.
Christoph Lohmann 20h@r-36.net
ff040e98
Adding setb and setf and a comment about terminfo installation.
Christoph Lohmann 20h@r-36.net
aaef13aa
Add CHT sequence

This sequence performs "Cursor Forward Tabulation <n> tab stops", which
although is not present in vt100 or vt102, xterm accepts it.
---
 st.c |    5 +++++
 1 file changed, 5 insertions(+)
Roberto E. Vargas Caballero k0ga@shike2.com
12de47a9
Applying the patches of k0ga and changing the LICENSE file in the appropriate

way.
Christoph Lohmann 20h@r-36.net
c084c06b
Add TBC sequence

This sequence clears tab stops in the terminal. If the argument is not present
or is zero, then removes the tab stop of the current horizontal position. If
the argument is 3 then removes all the tab stops of the terminal. It was
necessary modify the terminfo entry tbc, because it has \E[2g instead of the
correct \E[3g.

Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>
---
 st.c    |   12 ++++++++++++
 st.info |    2 +-
 2 files changed, 13 insertions(+), 1 deletion(-)
Roberto E. Vargas Caballero k0ga@shike2.com
93901ca4
Add HTS sequence

This sequence adds a new tab stop in the current horizontal position. This
means that tputtab must be look for the next tab stop in the tabs array
instead of using a hard coded value offset. Also, CHT sequence XXX message
is removed because it is not a vt10x sequence (as far as I know it is a
vt50x sequence), and it is not implemented by linux virtual terminal neither
by xterm.

Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>
---
 st.c |   12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
ee7fd748
Add tabs field into Term struct

Tabs stop are simulated in st using a fixed size of 8, always, without be
worried about sequences changing the tab stops. A user can put a tab stop in
each horizontal position of the screen, so we need at least one flag for
each column of the screen. In the same way as dirty flags is used for the
rows, it is used a bool dinamic array.

Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>
---
 st.c |   22 +++++++++++++++++++---
 1 file changed, 19 insertions(+), 3 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
c6853fe1
apply post-XDBE patch BORDER fix
Brandon Invergo brandon@invergo.net
94771d05
Implement Xdbe-based double-buffering
Brandon Invergo brandon@invergo.net
8fdba749
update TODO.
Aurélien Aptel aurelien.aptel@gmail.com
cfea72c7
cleanup. refactored dirt-related function.
Aurélien Aptel aurelien.aptel@gmail.com
6c0a1eff
use SHELL as default shell.
Aurélien Aptel aurelien.aptel@gmail.com
7823aeb1
revert to "tip" in VERSION.
Aurélien Aptel aurelien.aptel@gmail.com
83b06565
Added tag 0.2.1 for changeset 108926a0fe61
Aurélien Aptel aurelien.aptel@gmail.com
970d44a6
bump version.
Aurélien Aptel aurelien.aptel@gmail.com
ff5edcfd
replace fwrite by printf.
Aurélien Aptel aurelien.aptel@gmail.com
cb2e0e9c
rewrite csidump().
Aurélien Aptel aurelien.aptel@gmail.com
53ac69e9
clean and name enum definitions.
Aurélien Aptel aurelien.aptel@gmail.com
751fb765
fix default color overwriten bug.
Aurélien Aptel aurelien.aptel@gmail.com
be2877cd
show dark cursor when unfocused.
Aurélien Aptel aurelien.aptel@gmail.com
d8e11bdb
document possible configuration.
Aurélien Aptel aurelien.aptel@gmail.com
33558ca0
handle dim/bright colors.
Aurélien Aptel aurelien.aptel@gmail.com
6de1ba6e
merge
Aurélien Aptel aurelien.aptel@gmail.com
cee6ccc6
reduce size of each glyph for faster copy.
Aurélien Aptel aurelien.aptel@gmail.com
b6b90253
Added tag 0.2 for changeset 3c2f9f2ab5e4
Aurélien Aptel aurelien.aptel@gmail.com
bcb7ec68
cosmetic, whitespace, etc.
Aurélien Aptel aurelien.aptel@gmail.com
df54ab04
fix PRINT/DRAW _TIMEOUT and fix redrawing bug.
Aurélien Aptel aurelien.aptel@gmail.com
896310e5
copy dirty lines to screen, add select() timeout & min time between draw() calls.


* add a timeout value (SELECT_TIMEOUT) of 20ms in the select() call
* wait at least 20ms (DRAW_TIMEOUT) between draw() calls
* only copy dirty lines from the buffer to the screen

what draw() does:
* clears dirty lines in the buffer
* draws the longest same-attributes string of each
  dirty line to the buffer with multiple xdraws() call
* copies the current dirty line from buffer to the screen with a single
  xcopy() call

this changeset makes st run ~10x faster.
Aurélien Aptel aurelien.aptel@gmail.com
13a8eeb8
fix segfault in selection. (thx Martti Kühne)
Aurélien Aptel aurelien.aptel@gmail.com
ab9c9a4e
merge.
Aurélien Aptel aurelien.aptel@gmail.com
a20125a3
fix selection. (thx Tarmo Heiskanen)
Aurélien Aptel aurelien.aptel@gmail.com
0dbf9c8c
add dirty flag for lines
Aurélien Aptel aurelien.aptel@gmail.com
907cb8bf
no palette limit (thx Nick)
Aurélien Aptel aurelien.aptel@gmail.com
9d613092
simplify version format.
Aurélien Aptel aurelien.aptel@gmail.com
4bd08776
selection is removed or scrolled properly. (thx Rafa Garcia Gallego)
Aurélien Aptel aurelien.aptel@gmail.com
b032814e
working on old repo, merging recent changesets.
Aurélien Aptel aurelien.aptel@gmail.com
8e66b5cc
move xembedatom in XWindow struct, add link to xembed specs.
Aurélien Aptel aurelien.aptel@gmail.com
8d2d8848
tweak focus to support XEMBED client message and remove focus on EnterNotify. (thx Adrian)
Aurélien Aptel aurelien.aptel@gmail.com
d5f3d120
remove dup of default window size.
Aurélien Aptel aurelien.aptel@gmail.com
8503f954
fix focus state when embed in another window.
Aurélien Aptel aurelien.aptel@gmail.com
cddbd6ee
fix segfault with mouse selection. (thx anonymous)
Aurélien Aptel aurelien.aptel@gmail.com
3959a992
add -w option to embed st. (thx nodus cursorius)
Aurélien Aptel aurelien.aptel@gmail.com
4736edd4
applied parts of "anonymous" cleanup patch.
Aurélien Aptel aurelien.aptel@gmail.com
189a81ca
add altscreen escseq alias & caps to terminfo entry. (thx Bert Münnich)
Aurélien Aptel aurelien.aptel@gmail.com
9b404c0d
disable mouse highlight when mouse report enabled. (thx Bert Münnich)
Aurélien Aptel aurelien.aptel@gmail.com
d59f92d6
reverse video mode. (thx Bert Münnich)
Aurélien Aptel aurelien.aptel@gmail.com
b2db58c2
add status bar (window title) to terminfo. (thx Rafa Gallego)
Aurélien Aptel aurelien.aptel@gmail.com
6734de9b
set title before mapping window (thx Kamil Cholewiński).
Aurélien Aptel aurelien.aptel@gmail.com
7d352f14
applied parts of Connor Lane Smith's cleanup patch.
Aurélien Aptel aurelien.aptel@gmail.com
5beae6a6
macro cleanup.
Aurélien Aptel aurelien.aptel@gmail.com
0107293a
add mouse report escape to terminfo entry.
Aurélien Aptel aurelien.aptel@gmail.com
80da3720
support for x11 xterm mouse reporting
Aurélien Aptel aurelien.aptel@gmail.com
8eaed2cd
whitespace.
Aurélien Aptel aurelien.aptel@gmail.com
babf4db5
cleanup.
Aurélien Aptel aurelien.aptel@gmail.com
aede91e2
update TODO
Aurélien Aptel aurelien.aptel@gmail.com
9d5ea14b
selection clicks, shift+arrow keys, fast(er) redraw, key mask in config.h (thx Magnus Leuthner)
Aurélien Aptel aurelien.aptel@gmail.com
d3c5aba2
update README.
Aurélien Aptel aurelien.aptel@gmail.com
742a4a18
quick bug-fixing 0.1.1 release.
Aurélien Aptel aurelien.aptel@gmail.com
73e37f56
update VERSION.
Aurélien Aptel aurelien.aptel@gmail.com
89c8a3a2
take BORDER into account for selection. (thx Petr Sabata)
Aurélien Aptel aurelien.aptel@gmail.com
9b63dd9f
fix utf8 clipboard. (thx Petr Sabata)
Aurélien Aptel aurelien.aptel@gmail.com
1adf2e39
Added tag 0.1 for changeset cbc18c988236
Aurélien Aptel aurelien.aptel@gmail.com
674434ef
add support for utf8 clipboard. fix usage message.
Aurélien Aptel aurelien.aptel@gmail.com
a047431d
do not add newline to selection text if next line not selected (Nick)
pancake@nopcode.org unknown
fe724836
remove debugging printf
pancake@nopcode.org unknown
1ab42fd4
apply Nick's patch to fix some error printf to use stderr
pancake@nopcode.org unknown
4d649c24
fix insert key, terminfo and changed TERM back to st. (thx Ondrej Martinek)
Aurélien Aptel aurelien.aptel@gmail.com
0a208cb6
change X cursor to "I".
Aurélien Aptel aurelien.aptel@gmail.com
e8b18dd9
update terminfo entry.
Aurélien Aptel aurelien.aptel@gmail.com
fd114986
add new line glitch to terminfo entry.
Aurélien Aptel aurelien.aptel@gmail.com
86c5cb6d
change -e behaviour and update man page.
Aurélien Aptel aurelien.aptel@gmail.com
732b9601
-e flag handles arguments.
Aurélien Aptel aurelien.aptel@gmail.com
54bc450d
use memmove() instead of memcpy() in ttyread().
Aurélien Aptel aurelien.aptel@gmail.com
af75c433
fix and clean ttyread(). buf wasn't static.
Aurélien Aptel aurelien.aptel@gmail.com
41a4497e
merge.
Aurélien Aptel aurelien.aptel@gmail.com
00ba6969
s/xw.dis/xw.dpy/
Aurélien Aptel aurelien.aptel@gmail.com
b61925b5
cleanup & bugfix in xdraws().
Aurélien Aptel aurelien.aptel@gmail.com
81a048d6
clean comment regarding redrawing in bmotion().
Aurélien Aptel aurelien.aptel@gmail.com
b61afd24
Add -c option to override the default window class
Gregor Best gbe@ring0.de
70464e20
some code cleaning.
Aurélien Aptel aurelien.aptel@gmail.com
9b74fcad
utf8 support! print text in delicious unicode greatness! all hail to the glorious Damian Okrasa for the patch!

TERM set back to xterm.
changed default fonts.
Note: drawing is now (even) slower.
Aurélien Aptel aurelien.aptel@gmail.com
d581bfcc
selection code cleanup.
Aurélien Aptel aurelien.aptel@gmail.com
b1e60992
fixed ED.
Aurélien Aptel aurelien.aptel@gmail.com
edfbc9b4
redraw if we scroll on resize
Devin J. Pohly djpohly@djpohly.com
638a3035
get rid of artifacts in border on resize down
Devin J. Pohly djpohly@djpohly.com
d85f7319
copy old pixmap to new on resize
Devin J. Pohly djpohly@djpohly.com
12435817
move code into new xresize func, add early exit to resize
Devin J. Pohly djpohly@djpohly.com
722688d9
\v and \f are have the same behaviour of \n.
Aurélien Aptel aurelien.aptel@gmail.com
6f87a394
added LNM mode; re-organized kpress() to handle it.
Aurélien Aptel aurelien.aptel@gmail.com
ce27e634
redraw optimization.
Aurélien Aptel aurelien.aptel@gmail.com
9e004846
fixed newline bug.
Aurélien Aptel aurelien.aptel@gmail.com
68d8fcf6
replaced memset by loops in tresize(); turns out it's faster.
Aurélien Aptel aurelien.aptel@gmail.com
e4bf56ae
remove useless draw().
Aurélien Aptel aurelien.aptel@gmail.com
d693b304
applied xclipboard patch. thx David Isaac Wolinsky.
Aurélien Aptel aurelien.aptel@gmail.com
3a50a4fd
clean button selection code.
Aurélien Aptel aurelien.aptel@gmail.com
3470e3af
compose key patch. thx federico luna.
Aurélien Aptel aurelien.aptel@gmail.com
6faedce5
s/hasfocus/focus/ for consistency.
Aurélien Aptel aurelien.aptel@gmail.com
ab7037cb
don't draw if the window is not visible.
Aurélien Aptel aurelien.aptel@gmail.com
f6934763
use xclear() in draw().
Aurélien Aptel aurelien.aptel@gmail.com
8c375798
use XCreateWindow(), set gravity bit.
Aurélien Aptel aurelien.aptel@gmail.com
273d4ba9
cleaning st.info. added comment in st.c for DECSCNM.
Aurélien Aptel aurelien.aptel@gmail.com
c4352615
cleaning st.info. fixed cvvis.
Aurélien Aptel aurelien.aptel@gmail.com
58083da6
set terminal colors to xterm default ones.
Aurélien Aptel aurelien.aptel@gmail.com
ebc28727
removed gfx chars not present in xterm acsc.
Aurélien Aptel aurelien.aptel@gmail.com
7d325a37
fixed start/end sequence of gfx.
Aurélien Aptel aurelien.aptel@gmail.com
223909e0
undefined gfx doesn't draw \0.
Aurélien Aptel aurelien.aptel@gmail.com
b6af0fdc
fixed makefile.
Aurélien Aptel aurelien.aptel@gmail.com
2080dfeb
added manpage.
Aurélien Aptel aurelien.aptel@gmail.com
fbc6ec32
resize from the top.
Aurélien Aptel aurelien.aptel@gmail.com
9d82bdd9
added -e and -t option.
Aurélien Aptel aurelien.aptel@gmail.com
97695baf
factored code and fixed behaviour of tnewline().
Aurélien Aptel aurelien.aptel@gmail.com
32e160c9
updated TODO.
Aurélien Aptel aurelien.aptel@gmail.com
42344b71
started to go through st.info and fix things.
Aurélien Aptel aurelien.aptel@gmail.com
a79bc96c
capabilities sorted by capname in st.info. copy acsc from xterm.
Aurélien Aptel aurelien.aptel@gmail.com
df5c5ed0
removed debug code.
Aurélien Aptel aurelien.aptel@gmail.com
5ce6c5c0
fixed IL and DL.
Aurélien Aptel aurelien.aptel@gmail.com
ef691180
factor and cleanup code.
Aurélien Aptel aurelien.aptel@gmail.com
f732ca5f
added correct line drawing characters for default font.
Aurélien Aptel aurelien.aptel@gmail.com
cfe89755
use struct instead of array.
Aurélien Aptel aurelien.aptel@gmail.com
9703859e
cleanup.
Aurélien Aptel aurelien.aptel@gmail.com
591d147a
fix segfault when selecting big buffers

shift+insert paste clipboard
honor CFLAGS and LDFLAGS in config.mk
pancake@nopcode.org unknown
1132d9e2
fix build.
Aurélien Aptel aurelien.aptel@gmail.com
c4225bdc
add selinit() and renamed clipboard_* to sel*.
Aurélien Aptel aurelien.aptel@gmail.com
f211bc2e
move event configuration in xinit().
Aurélien Aptel aurelien.aptel@gmail.com
ee858b48
use one global struct instead of many vars for selection. Cleanup.
Aurélien Aptel aurelien.aptel@gmail.com
80f70f1c
use GLYPH_SET to test if a char is set; cleanup.
Aurélien Aptel aurelien.aptel@gmail.com
23cc3fc5
fix crash for small windows

use unconditional infinite loops
pancake@nopcode.org unknown
160bda1b
toggle ATTR_REVERSE on selected text, factored some code and fixed Makefile.
Aurélien Aptel aurelien.aptel@gmail.com
596bb133
fix build

use config.def.h mechanism
add SHELL in config.h
pancake pancake@nopcode.org
0ba53e48
initial implementation of selection and clipboard
pancake pancake@nopcode.org
e1ce89f2
fix segfault
pancake@nopcode.org unknown
12c25bce
added support for alternate screen.
Aurélien Aptel aurelien.aptel@gmail.com
326586ba
cursor is hid when unfocused.
Aurélien Aptel aurelien.aptel@gmail.com
ae5baac9
use predefined OS macro instead of uname.
Aurélien Aptel aurelien.aptel@gmail.com
bef87acd
st should compile on NetBSD.
Aurélien Aptel aurelien.aptel@gmail.com
1bb7398f
removed pty.h. minimal system guessing added in config.mk.
Aurélien Aptel aurelien.aptel@gmail.com
e851736e
removed (visual) bell. '\a' sets the urgency flag if st is unfocused.
Aurélien Aptel aurelien.aptel@gmail.com
188293c8
removed useless cursor init. and renamed xcursor() to xdrawcursor().
Aurélien Aptel aurelien.aptel@gmail.com
7d88cf88
added support for the "magic margin", changed c.hide to c.state, changed xcursor() to use term instead of a

parameter and fixed the cursor position after setting a scrolling region.
Aurélien Aptel aurelien.aptel@gmail.com
1f6e7b84
removed old VT52 escapes, fixed VT100 IND.
Aurélien Aptel aurelien.aptel@gmail.com
5258d605
fixed optimized drawing routine and factored some code.
Aurélien Aptel aurelien.aptel@gmail.com
b4f623f9
fixed pixmap buffer drawing.
Aurélien Aptel aurelien.aptel@gmail.com
eab9aad1
added a XFlush() in xbell().
Aurélien Aptel aurelien.aptel@gmail.com
21810405
moved term.hidec in term.c for consistency, put back delay in xbell()

along with duration in config.h, factored some code in tnew()/treset()
and cleaned some code.
Aurélien Aptel aurelien.aptel@gmail.com
c186c8ef
merged tscroll() with tscrollup().
Aurélien Aptel aurelien.aptel@gmail.com
6db6980e
st now runs on Linux, OpenBSD and FreeBSD.
Aurélien Aptel aurelien.aptel@gmail.com
c5633285
removed XINERAMA from config.mk and fixed a segfault when st is

started without a display. (thx Hiltjo Posthuma)
Aurélien Aptel aurelien.aptel@gmail.com
a1018e0e
fixed potential bug in IS_SET().
Aurélien Aptel aurelien.aptel@gmail.com
fbb66da9
merged tcursorwrap() with tnewline(), added few comments and updated copyright.
Aurélien Aptel aurelien.aptel@gmail.com
42b2912e
cleaned some spaces.
Aurélien Aptel aurelien.aptel@gmail.com
5d611cd5
added macro to test flags, removed tmovecursor().
Aurélien Aptel aurelien.aptel@gmail.com
4db3df31
faster resizing.
Aurélien Aptel aurelien.aptel@gmail.com
e8c13ebe
close master/slave pty in the shell process.
Aurélien Aptel aurelien.aptel@gmail.com
5c93f399
clean \t.
Aurélien Aptel aurelien.aptel@gmail.com
44226483
update function prototypes.
Aurélien Aptel aurelien.aptel@gmail.com
b09401b9
fix \b and clean \t.
Aurélien Aptel aurelien.aptel@gmail.com
a7922bd1
added F1-12 key, fixed DCH and ICH.
Aurélien Aptel aurelien.aptel@gmail.com
ce3f4fc6
fixed backspace problem, updated terminfo entry and moved TNAME in config.h.
Aurélien Aptel aurelien.aptel@gmail.com
d2f157c7
renamed a function.
Aurélien Aptel aurelien.aptel@gmail.com
10e49a05
applied Devin J Pohly's st color info patches, thanks Devin!
Anselm R Garbe anselm@garbe.us
9e8f5f13
fix gcc warnings
pancake@nopcode.org unknown
499c70cd
fixed background color bug (thx Devin J. Pohly).
Aurélien Aptel aurelien.aptel@gmail.com
2f96cfea
added PBaseSize hint and set default title to "st".
Aurélien Aptel aurelien.aptel@gmail.com
2f5ebe0a
rearranged code, resize fixed.
Aurélien Aptel aurelien.aptel@gmail.com
476f9379
little clean up.
Aurélien Aptel aurelien.aptel@gmail.com
d01c55c9
use SHELL environment variable (thx Thomas Adam)
Aurélien Aptel aurelien.aptel@gmail.com
b3b7ffce
double-buffering added using pixmap (finally).

results in a lot of simplification :
	- no more dirty flags (perf are good enough).
	- no more ugly gfx call in emulation functions.
LINESPACE removed from config.h.
BORDER is now handled correctly.
Aurélien Aptel aurelien.aptel@gmail.com
0f4dd503
bold attribute is back.

visibility of the cursor is not saved/loaded anymore.
scrolling up/down is fixed.
added RI and RIS sequences.
fixed cursor drawing bug.
Aurélien Aptel aurelien.aptel@gmail.com
7cdaf130
added VT100 NEL.
Aurélien Aptel aurelien.aptel@gmail.com
639f16d2
added VT100 RI.
Aurélien Aptel aurelien.aptel@gmail.com
636c369d
added VT100 save&load cursor support.
Aurélien Aptel aurelien.aptel@gmail.com
3ba517e7
ECH handled correctly.
Aurélien Aptel aurelien.aptel@gmail.com
eff05c7b
more escapes & more compability:

cursor keys are handled in kpress according to the Application Mode (DECPAM).
define & enum were renamed.
tcursor() is now tmovecursor() which is more correct.
tcpos() is now tcursor(), as DECSC is also supposed to save attributes.
capnames are indicated whenever possible.

Currently:
alsamixer looks fine, totally usable.
ncmpc is almost ok.
emacs looks like shit.
Aurélien Aptel aurelien.aptel@gmail.com
e6b3f5c7
graphic charset and a few more escapes.
Aurélien Aptel aurelien.aptel@gmail.com
09814375
TERM set to xterm by default (which broke a lot of stuff), better escape handling (title), and a little clean up.
Aurélien Aptel aurelien.aptel@gmail.com
f2dff29a
drawing is faster but the bold attr is not supported anymore.
Aurélien Aptel aurelien.aptel@gmail.com
4e6915a1
Fixed possible segfault by reverting to the key struct (again).
Aurélien Aptel aurelien.aptel@gmail.com
dab8326e
only compile tdump if DEBUG flag is set
Anselm R Garbe garbeam@gmail.com
cf65699a
we definately need pixmaps for the drawing, currently drawing into the window is painfully slow! much more slower than drawing into a pixmap and mapping that when finished -- several optimisations
Anselm R Garbe garbeam@gmail.com
0a5e5102
reverted back to the old Key struct.
Aurélien Aptel aurelien.aptel@gmail.com
4d794b34
updated "key" to a lookup table.
Aurélien Aptel aurelien.aptel@gmail.com
44d8c319
removed old unused cursor() proto.
Aurélien Aptel aurelien.aptel@gmail.com
b8ffa1d7
fixed the scrolling bug and cleaned some stuff.
Aurélien Aptel aurelien.aptel@gmail.com
d5f45544
dump escseq if not handled.
Aurélien Aptel aurelien.aptel@gmail.com
53937e04
clean up.
Aurélien Aptel aurelien.aptel@gmail.com
2e377529
added/removed files, updated Makefile.
Aurélien Aptel aurelien.aptel@gmail.com
8b4bfe31
made kpress() more flexible, removed st.h, added config.h.
Aurélien Aptel aurelien.aptel@gmail.com
5d8aa08b
updated TODO.
Aurélien Aptel aurelien.aptel@gmail.com
ad39f000
added sigchld handler, cleaned error checking.
Aurélien Aptel aurelien.aptel@gmail.com
2f35cef5
cleaned up (removed space indentation). select/event bug fixed.
Aurélien Aptel aurelien.aptel@gmail.com
129bcd75
fixed a memory leak & segfault in tresize.
Aurélien Aptel aurelien.aptel@gmail.com
059d2ba2
updated TODO.
Aurélien Aptel aurelien.aptel@gmail.com
a866108a
tab moves the cursor instead of inserting spaces.
Aurélien Aptel aurelien.aptel@gmail.com
1cf8b77d
handle tabulation (still not perfect)
Aurélien Aptel aurelien.aptel@gmail.com
0ecfcc39
removed truecolor stuff
Aurélien Aptel aurelien.aptel@gmail.com
abe6f3b0
removed the truecolor stuff
Aurélien Aptel aurelien.aptel@gmail.com
86fa7560
same thing, really fixed this time.
Aurélien Aptel aurelien.aptel@gmail.com
ccafacb3
added some error checking in xinit (fixed the segfault caused by a missing font)
Aurélien Aptel aurelien.aptel@gmail.com
fd281ad3
Removed unused variable and cleaned some comment.
Aurélien Aptel aurelien.aptel@gmail.com
d58dd3b8
backport of local changes
Anselm R Garbe garbeam@gmail.com
802f1922
add accidentally omitted word
Matthias-Christian Ott ott@enolink.de
a7f50ebb
use stdio(3)
Matthias-Christian Ott ott@enolink.de
07d1edcd
add description of std
Matthias-Christian Ott ott@enolink.de
d61a2a8f
add prototype for command parsing
Matthias-Christian Ott ott@enolink.de
240411e7
correct year of copyright notice
Matthias-Christian Ott ott@enolink.de
e0d0a2b9
simplify Makefile


Due to consideration of POSIX compliance issues config.mk had
to be removed. Configuration variables can be overridden by
environment variables or specified via command line.

Additionally all pretty-printed messages were removed and
built-in rules are used. This also simplifies and purges
the Makefile.
Matthias-Christian Ott ott@enolink.de
082d8bb8
reunite pty.c with std.c
Matthias-Christian Ott ott@enolink.de
6c6b65ea
correct programme name
Matthias-Christian Ott ott@enolink.de
746931a3
use errx() for help and version messages
Matthias-Christian Ott ott@enolink.de
a95f4f2e
merge with backout head
Matthias-Christian Ott ott@enolink.de
fb4508b0
remove TODO
Matthias-Christian Ott ott@enolink.de
0cbcedb8
make ptm and pts static
Matthias-Christian Ott ott@enolink.de
afc73c92
remove useless variable
Matthias-Christian Ott ott@enolink.de
b3902ca1
remove emallocz()
Matthias-Christian Ott ott@enolink.de
f982c1c3
replace eprint() functions with BSD error functions
Matthias-Christian Ott ott@enolink.de
d83cbc27
simplify flushing
Matthias-Christian Ott ott@enolink.de
3cb67937
correct buffering
Matthias-Christian Ott ott@enolink.de
cf147ae9
make local functions and variables static
Matthias-Christian Ott ott@enolink.de
f9a0524f
add select(2)-based i/o multiplexing
Matthias-Christian Ott ott@enolink.de
a49919a1
drop stdio usage


Std requires I/O multiplexing which is very complicated with
stdio, because it provides no transparent buffering.
Matthias-Christian Ott ott@enolink.de
0c0ada8a
make st and std separate programmes
Matthias-Christian Ott ott@enolink.de
339e7f35
add missing header file
Matthias-Christian Ott ott@enolink.de
09fe1e22
assume glibc by default
Matthias-Christian Ott ott@enolink.de
5f287254
source utility functions out to util.c
Matthias-Christian Ott ott@enolink.de
05ebee60
add copyright comment
Matthias-Christian Ott ott@enolink.de
47d8633f
source getpty() out to pty.c
Matthias-Christian Ott ott@enolink.de
0dedee5d
update TODO
Matthias-Christian Ott ott@enolink.de
0dce422d
correct function name
Matthias-Christian Ott ott@enolink.de
b8f79f0e
remove xinerama flags


The xinerama related variables in config.mk are a relict of
dwm and therefore should be removed.
Matthias-Christian Ott ott@enolink.de
5e680d71
add missing header file
Matthias-Christian Ott ott@enolink.de
dc01596e
add parser loop
Matthias-Christian Ott ott@enolink.de
5d055fdc
remove useless variable
Matthias-Christian Ott ott@enolink.de
a6efc851
replace state with separate variables
Matthias-Christian Ott ott@enolink.de
50b4785f
terminate error message with newline
Matthias-Christian Ott ott@enolink.de
c61b34e8
correct LENGTH()
Matthias-Christian Ott ott@enolink.de
693e2413
simplify control flow
Matthias-Christian Ott ott@enolink.de
0b3510df
remove debug code
Matthias-Christian Ott ott@enolink.de
40c0ecfe
remove stdio slave pty opening
Matthias-Christian Ott ott@enolink.de
e2ac1676
drop support for proprietary UNIX variants


Proprietary UNIX variants like AIX, HP-UX or SCO UNIX
are nowadays rarely used and maintaining compatibility to
non-standard operating systems interfaces is wasteful and
practically useless.

Projects like xterm suffer from backward compatibility to decades-old
UNIX variants and terminal standards. This does not conform to st's
design goals.
Matthias-Christian Ott ott@enolink.de
375efb88
slight changes
Anselm R Garbe garbeam@gmail.com
771ece25
applied Matthias-Christians changes to std.c
Anselm R Garbe garbeam@gmail.com
1987ae4b
added some new files for the initial rewrite of st from scratch
Anselm R Garbe garbeam@gmail.com
16f373e3
added new TODO
arg@localhost.localdomain unknown
7a132bd6
Backed out changeset d2bb4220fdf3


Ptm and pts are used by pty.c, thus they have to be non-static.
Matthias-Christian Ott ott@enolink.de
581ae58b
fix warning
pancake pancake@nopcode.org
eaf38bf3
Fix unused variable issue and OSX includes
pancake@nopcode.org unknown
f78b793d
change "op" cap in terminfo entry to xterm/rxvt value.
Aurélien Aptel aurelien.aptel@gmail.com
6f260ba1
fix custom key handling.
Aurélien Aptel aurelien.aptel@gmail.com
23bb97d9
drawregion() only copies region on screen.
Aurélien Aptel aurelien.aptel@gmail.com
b11e22df
some minor fixes
anselm@garbe.us unknown
816a70c0
use typedef'd unsigned type and regular bool type.
Aurélien Aptel aurelien.aptel@gmail.com
489982d4
Fixed lock up when system time jumps backwards

Signed-off-by: Christoph Lohmann <20h@r-36.net>
Rob Pilling rob@egbert