add _NET_WM_NAME
Carlos J. Torres vlaadbrain@gmail.com
Simplify logic in kmap().
Mark Edgar medgar123@gmail.com
Simplify logic in match().
Mark Edgar medgar123@gmail.com
Merge remote-tracking branch 'origin/master' into omaster
Roberto E. Vargas Caballero k0ga@shike2.com
Ignore numlock (Mod2Mask) for button events too. Conflicts: config.def.h st.c
Mark Edgar medgar123@gmail.com
Avoid buffer overrun in bpress() Use correct type for Mousekey.b (XButtonEvent.button).
Mark Edgar medgar123@gmail.com
New ttysend() function calls ttywrite() and techo(). Honor MODE_ECHO when pasting in selnotify().
Mark Edgar medgar123@gmail.com
Avoid buffer overrun in kpress() and remove limit on shortcut strings.
Mark Edgar medgar123@gmail.com
Simplify Mod1 logic in kpress(), eliminating locals and a memcpy.
Mark Edgar medgar123@gmail.com
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
People, learn to keep to styles. Thanks.
Christoph Lohmann 20h@r-36.net
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
Add DSR cursor position sequence
Mihail Zenkov mihail.zenkov@gmail.com
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
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
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
Default volume of the bell is 0.
Christoph Lohmann 20h@r-36.net
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
Wide character support. Thanks "Eon S. Jeon" <esjeon@hyunmu.am>!
Christoph Lohmann 20h@r-36.net
Adding some contributors. Thanks to you all!
Christoph Lohmann 20h@r-36.net
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
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
Tmux is using C-b by default. Thanks for noticing Fidel Barrera Cruz!
Christoph Lohmann 20h@r-36.net
Correcting the bitmask value check.
Christoph Lohmann 20h@r-36.net
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
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
Fixed memory leak in xsettitle().
Alexander Sedov alex0player@gmail.com
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
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
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
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
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
fix: whitespace
Markus Teich markus.teich@stusta.mhn.de
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
fix: consistent usage of bitmask operations on unicode functions
Markus Teich markus.teich@stusta.mhn.de
fix: do not need an extra variable for a single read
Markus Teich markus.teich@stusta.mhn.de
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
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
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
fix PageUp Modifier Mask in config.def.h Signed-off-by: Christoph Lohmann <20h@r-36.net>
Markus Teich teichm@fs.tum.de
Fixing title setting with the title argument.
Christoph Lohmann 20h@r-36.net
Adding xterm behaviour to setting the title. Thanks Airwave!
Christoph Lohmann 20h@r-36.net
Bumping up the xfps so mouse motion won't reap the CPU.
Christoph Lohmann 20h@r-36.net
Adding true mouse motion support.
Christoph Lohmann 20h@r-36.net
This is a shorter bit handling in MODE_MOUSE.
Christoph Lohmann 20h@r-36.net
Add some comments about the other mouse reporting modes.
Christoph Lohmann 20h@r-36.net
Implementing mouse focus and all events.
Christoph Lohmann 20h@r-36.net
Fixing bad highlighting on first SNAP_WORD multiline select.
Christoph Lohmann 20h@r-36.net
Fixing the selection in a single line again. Thanks p37sitdu@lavabit.com!
Christoph Lohmann 20h@r-36.net
Fixing the selection scrolling and the selection naming. Thanks p37sitdu@lavabit.com!
Christoph Lohmann 20h@r-36.net
Lazy font unloading too.
Christoph Lohmann 20h@r-36.net
Lazy fontset loading. Thanks Johannes Hofmann <Johannes.Hofmann@gmx.de>!
Christoph Lohmann 20h@r-36.net
Removing an old select() regression.
Christoph Lohmann 20h@r-36.net
Allow more complex delimiters for word selections. Thanks Alexander Rezinsky <alexrez@gmail.com>!
Christoph Lohmann 20h@r-36.net
Expand the last line with '\n' in case of overselection. Thanks Alexander Rezinsky <alexrez@gmail.com>!
Christoph Lohmann 20h@r-36.net
Select to the end of row if end of line is reached. Thanks Alexander Rezinsky <alexrez@gmail.com>!
Christoph Lohmann 20h@r-36.net
Better comments for the snapping code.
Christoph Lohmann 20h@r-36.net
More stable blinking.
Christoph Lohmann 20h@r-36.net
Explaining blinking for the dummies.
Christoph Lohmann 20h@r-36.net
Selection snapping is now considering wrapping. Thanks Alexander Rezinsky <alexrez@gmail.com> for mentioning this!
Christoph Lohmann 20h@r-36.net
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
Be more efficient in blinking.
Christoph Lohmann 20h@r-36.net
Enable blinking in st.
Christoph Lohmann 20h@r-36.net
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
Fixing the selection issue in altscreens.
Christoph Lohmann 20h@r-36.net
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
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
Now clipping is more clear.
Christoph Lohmann 20h@r-36.net
Removing the overdrawing of some fonts.
Christoph Lohmann 20h@r-36.net
Yes, rs2 != is2.
Christoph Lohmann 20h@r-36.net
There is no 8bit by default and reset 8bit too.
Christoph Lohmann 20h@r-36.net
Implementing 8 bit mode for meta.
Christoph Lohmann 20h@r-36.net
Adding wrap handling in selection.
Christoph Lohmann 20h@r-36.net
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
0.4.1 release.
Christoph Lohmann 20h@r-36.net
Making st compile on OpenBSD again.
Christoph Lohmann 20h@r-36.net
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
Removing trailing whitespace.
Christoph Lohmann 20h@r-36.net
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
Removing unneeded comments.
Christoph Lohmann 20h@r-36.net
Got rid of code duplication in tnew() and tresize(). Signed-off-by: Christoph Lohmann <20h@r-36.net>
Alexander Sedov alex0player@gmail.com
Strip trailing spaces from lines when copying selection. Signed-off-by: Christoph Lohmann <20h@r-36.net>
Alexander Sedov alex0player@gmail.com
Enable BCE everywhere.
Christoph Lohmann 20h@r-36.net
Fix the geometry handling.
Christoph Lohmann 20h@r-36.net
\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
Resize now uses xclear().
Christoph Lohmann 20h@r-36.net
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
Patching while not really woken up.
Christoph Lohmann 20h@r-36.net
Minor naming issue fixed.
Christoph Lohmann 20h@r-36.net
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
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
Make st work with a plain -e command.
Christoph Lohmann 20h@r-36.net
Adopting arg.h with more flexible cmd handling.
Christoph Lohmann 20h@r-36.net
Add an option to disable alternative screens.
Christoph Lohmann 20h@r-36.net
Updating the TODO file for after 0.4.
Christoph Lohmann 20h@r-36.net
Releasing 0.4.
Christoph Lohmann 20h@r-36.net
Add the possibility to have default highlight colors. Thanks to stargrave@stargrave.org for the suggestion!
Christoph Lohmann 20h@r-36.net
Adding PgUp + Ctrl. Thanks stargrave@stargrave.org!
Christoph Lohmann 20h@r-36.net
Adding PgUp and PgDown + Ctrl to config.def.h Thanks stargrave@stargrave.org!
Christoph Lohmann 20h@r-36.net
Removing an undefined case. just do regular selections.
Christoph Lohmann 20h@r-36.net
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
Pange seems to use ascent + descent instead of height. Thanks Bobby Powers <bobbypowers@gmail.com> for noticing this!
Christoph Lohmann 20h@r-36.net
Making st compile on OS X.
Christoph Lohmann 20h@r-36.net
Using strsep and fixing null termination in csiparse. Thanks for the hint from Alexander Sedov <alex0player@gmail.com>!
Christoph Lohmann 20h@r-36.net
Changing the way how paste is handled, just for the nano people.
Christoph Lohmann 20h@r-36.net
Fixing a bug while parsing empty arguments in csiparse.
Christoph Lohmann 20h@r-36.net
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
Using strtok_r for the string parsing.
Christoph Lohmann 20h@r-36.net
Using strtol with overflow checking.
Christoph Lohmann 20h@r-36.net
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
Removing dbe and introducing umlauts to titles. Thanks Alexander Sedov <alex0player@gmail.com> for the title patch!
Christoph Lohmann 20h@r-36.net
Add umlaut support for title change. Thanks Alexander Sedov <alex0player@gmail.com>!
Christoph Lohmann 20h@r-36.net
Replace parse_int with atoi().
Christoph Lohmann 20h@r-36.net
Added basic xterm-ish palette swap support. Signed-off-by: Christoph Lohmann <20h@r-36.net>
Alexander Sedov alex0player@gmail.com
Implement rectangular mouse selection. Thanks Alexander Sedov <alex0player@gmail.com>!
Christoph Lohmann 20h@r-36.net
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
Style inquisition.
Christoph Lohmann 20h@r-36.net
Fixing the reverse mode of st colors. Thanks Alexander Sedov <alex0player@gmail.com> for finding this!
Christoph Lohmann 20h@r-36.net
Adding a way to ignore bits in the state.
Christoph Lohmann 20h@r-36.net
Style inquisition.
Christoph Lohmann 20h@r-36.net
The refresh rate for the action needs to be high too.
Christoph Lohmann 20h@r-36.net
Changing the fps to something reasonable high.
Christoph Lohmann 20h@r-36.net
Doing it like the new run() was proposed.
Christoph Lohmann 20h@r-36.net
Adding a more efficient drawing code. Thanks Mihail Zenkov <mihail.zenkov@gmail.com> for giving the hint!
Christoph Lohmann 20h@r-36.net
Tmux wants this to be mutually exclusive. Thanks Egmont Koblinger <egmont@gmail.com> for noticing this!
Christoph Lohmann 20h@r-36.net
Adding mor explict font patterns.
Christoph Lohmann 20h@r-36.net
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
Setting the surrounding border to defaultbg. Thanks Stephen Caraher <moskvax@gmail.com>!
Christoph Lohmann 20h@r-36.net
Removing some debug messages.
Christoph Lohmann 20h@r-36.net
Fixing the menus in mc.
Christoph Lohmann 20h@r-36.net
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
Adding extended mouse reporting in st. Thanks Egmont Koblinger <egmont@gmail.com>!
Christoph Lohmann 20h@r-36.net
Removing the debug messages again.
Christoph Lohmann 20h@r-36.net
Fixing the clipboard copying to st itself.
Christoph Lohmann 20h@r-36.net
St is in 2013 now.
Christoph Lohmann 20h@r-36.net
Removing BCE from the TODO list.
Christoph Lohmann 20h@r-36.net
Implementing Back Color Erase (BCE).
Christoph Lohmann 20h@r-36.net
Make line drawing work again.
Christoph Lohmann 20h@r-36.net
Yes, xft should be on the buffer. Thanks Mihail Zenkov.
Christoph Lohmann 20h@r-36.net
Trying out the double buffering without dbe.
Christoph Lohmann 20h@r-36.net
Dbe is not required anymore.
Christoph Lohmann 20h@r-36.net
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
The title can now be set with UTF-8 characters. Thanks Mihail Zenkov <mihail.zenkov@gmail.com>!
Christoph Lohmann 20h@r-36.net
Adding a nasty resize bug. Maybe it can be fixed.
Christoph Lohmann 20h@r-36.net
Removing the .hgtags file. Thanks ilf.
Christoph Lohmann 20h@r-36.net
Standout mode has changed. Thanks p37sitdu@lavabit.com!
Christoph Lohmann 20h@r-36.net
A different double buffering strategy so the background is default set.
Christoph Lohmann 20h@r-36.net
Standout is now reverse. This makes bsd-games work in st.
Christoph Lohmann 20h@r-36.net
Adding an FAQ entry for the keypad handling. Thanks "Roberto E. Vargas Caballero" <k0ga@shike2.com>!
Christoph Lohmann 20h@r-36.net
Synchronizing the FAQ of the website and the repository.
Christoph Lohmann 20h@r-36.net
Damn, my fault. The cache should have at least some entries.
Christoph Lohmann 20h@r-36.net
Applying the changes to the docs; by Peter Hartman.
Christoph Lohmann 20h@r-36.net
Making the fontconfig and freetype paths portable in config.mk.
Christoph Lohmann 20h@r-36.net
A fix for the XopenIM() errors.
Christoph Lohmann 20h@r-36.net
Increasing font cache for speeding up UTF8 demos.
Christoph Lohmann 20h@r-36.net
Removing the warning about extents.
Christoph Lohmann 20h@r-36.net
Fixing the font unloading in case of zoom.
Christoph Lohmann 20h@r-36.net
Speeding up the drawing, then all characters are known.
Christoph Lohmann 20h@r-36.net
Adding fallback support to st.
Christoph Lohmann 20h@r-36.net
Fixing a compile error.
Christoph Lohmann 20h@r-36.net
Fixing a off-by-one error in the penultimate row drawing.
Christoph Lohmann 20h@r-36.net
Fixing a precedence problem. Thanks tridactyla!
Christoph Lohmann 20h@r-36.net
Checking for the lower X11 special keys too. Thanks Benjamin R. Haskell!
Christoph Lohmann 20h@r-36.net
Adding error checks for XCreateIC and XOpenIM.
Christoph Lohmann 20h@r-36.net
Be careful about mar77i's patches.
Christoph Lohmann 20h@r-36.net
Fixing the nasty selection bug. Thanks p37sitdu@lavabit.com!
Christoph Lohmann 20h@r-36.net
Applying the patch of mar771 right.
Christoph Lohmann 20h@r-36.net
Applying the change of the Del key assingment. Thanks Martti Kühne!
Christoph Lohmann 20h@r-36.net
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
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
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
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
Add a notice in the config.def.h file how to obtain the syntax for xft/fontcache.
Christoph Lohmann 20h@r-36.net
The style inquisition was here.
Christoph Lohmann 20h@r-36.net
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
Fixing the calculation of the base tty pixel size.
Christoph Lohmann 20h@r-36.net
Restoring the Alt + Backspace functionality. Thanks Brandon Invergo!
Christoph Lohmann 20h@r-36.net
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
Fixing some key issues with mc. Thanks nsz!
Christoph Lohmann 20h@r-36.net
Getbuttoninfo is always used the same and just a helper function. Shrinking it a bit. Thanks nsz!
Christoph Lohmann 20h@r-36.net
Fix speech error in comment --- st.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Roberto E. Vargas Caballero k0ga@shike2.com
Remove unused fields in cursor_movement --- st.c | 4 ---- 1 file changed, 4 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
Removing my debug fprintf().
Christoph Lohmann 20h@r-36.net
Optimizing the key lookup to the X11 function key. It is still possible to remap other keys.
Christoph Lohmann 20h@r-36.net
Making all function keys accessible.
Christoph Lohmann 20h@r-36.net
Adding support for XK_F35.
Christoph Lohmann 20h@r-36.net
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
Changing the TODO to the current state.
Christoph Lohmann 20h@r-36.net
Fixing the return and keypad enter sent characters. Terminals produce \r. And some minor style changes.
Christoph Lohmann 20h@r-36.net
Import the patch of Eckehard Berns to add insert mode. Thanks!
Christoph Lohmann 20h@r-36.net
The crlf mode was reversed.
Christoph Lohmann 20h@r-36.net
Fixing Return in non-crlf mode.
Christoph Lohmann 20h@r-36.net
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
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
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
Fixing the tab key, when no mask is wanted.
Christoph Lohmann 20h@r-36.net
The style inquisition was here again.
Christoph Lohmann 20h@r-36.net
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
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
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
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
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
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
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
Gc is not used anymore.
Christoph Lohmann 20h@r-36.net
Removing some xft naming cruft.
Christoph Lohmann 20h@r-36.net
Moving the alt declaration to the beginning of the function.
Christoph Lohmann 20h@r-36.net
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
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
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
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
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
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
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
Adding scrollwheel support. Thanks Brandon Invergo!
Christoph Lohmann 20h@r-36.net
Changing the license to MIT/X.
Christoph Lohmann 20h@r-36.net
Fixing meta+return. Thanks Szabolcs Nagy!
Christoph Lohmann 20h@r-36.net
Removing the debugging for the last fix too.
Christoph Lohmann 20h@r-36.net
Fixing a resize bug, if a smaller amount than the lineheight is resized. Thanks c00kiemon5ter!
Christoph Lohmann 20h@r-36.net
Fixing bold fonts in reverse mode.
Christoph Lohmann 20h@r-36.net
Now italic and bold works.
Christoph Lohmann 20h@r-36.net
Fixing an out-of-bound bug in the selection code. Thanks Szabolczs Nagy!
Christoph Lohmann 20h@r-36.net
Fixing the italic-bold font check. Thanks nsz.
Christoph Lohmann 20h@r-36.net
Added tag 0.3 for changeset 9d54ce4daf34
Christoph Lohmann 20h@r-36.net
0.3 release.
Christoph Lohmann 20h@r-36.net
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
Moving to the dwm config.h variable usage.
Christoph Lohmann 20h@r-36.net
Adding a FAQ to reference utmp(1).
Christoph Lohmann 20h@r-36.net
Cleaning up the TODO file.
Christoph Lohmann 20h@r-36.net
Removing the now senseless comment in config.def.h. Thanks to bnwe!
Christoph Lohmann 20h@r-36.net
Applying the patch of the little girl <yui@blekksprut.net> to make cjk input possible. Thanks!
Christoph Lohmann 20h@r-36.net
Applying the tab expansion patch from koga.
Christoph Lohmann 20h@r-36.net
Adding a more flexible fontstring handling, shortcuts and a zoom function.
Christoph Lohmann 20h@r-36.net
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
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
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
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
If there is really someone without SHELL set, help him/her.
Christoph Lohmann 20h@r-36.net
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
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
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
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
Fixing a typo.
Christoph Lohmann 20h@r-36.net
Fixing a off-by-one error in the new border clearing code.
Christoph Lohmann 20h@r-36.net
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
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
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
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
Forgot to remove the xclearborders() definition from the last commit.
Christoph Lohmann 20h@r-36.net
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
The style inquisition was here. Yes, making it a unified style. The last infidels will be squashed too!
Christoph Lohmann 20h@r-36.net
Adding the patch of David Dufberg Töttrup to implement WM_DELETE_WINDOW. Thank you!
Christoph Lohmann 20h@r-36.net
Fixing the brightening on bold. For the 256 colors and greyscale I assumed a reasonable solution.
Christoph Lohmann 20h@r-36.net
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
When the drawing behaviour was changed underline was not corrected. Thanks to Peter A. Shevtsov!
Christoph Lohmann 20h@r-36.net
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
Thanks to c00kiemon5ter. Not changing bold to bright colors seems to be the right choice.
Christoph Lohmann 20h@r-36.net
Removing the now obsolete definitions from the config.def.h file.
Christoph Lohmann 20h@r-36.net
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
Remove the cruft of the user to have to define the different font styles.
Christoph Lohmann 20h@r-36.net
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
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
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
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
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
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
Implementing line drawing right.
Christoph Lohmann 20h@r-36.net
A reset should reset the line drawing too.
Christoph Lohmann 20h@r-36.net
Enabling enacs and adding compatibility to xterm and urxvt for alternative charsets.
Christoph Lohmann 20h@r-36.net
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
Changing the default font to DejaVu Sans Mono, which is more appealing and activating antialiasing.
Christoph Lohmann 20h@r-36.net
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
Adding a TODO for xft fallback.
Christoph Lohmann 20h@r-36.net
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
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
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
Remove unused parameters in ttyresize --- st.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
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
Merging xft and current st heads.
Christoph Lohmann 20h@r-36.net
Initial Xft support for st. More to follow.
Christoph Lohmann 20h@r-36.net
config.def.h: typo in comment.
Aurélien Aptel aurelien.aptel@gmail.com
LEGACY: typo.
Aurélien Aptel aurelien.aptel@gmail.com
Redrawing is fixed.
Christoph Lohmann 20h@r-36.net
Fixing the redrawing patch of k0ga, so it's using xclear() in redraw() too.
Christoph Lohmann 20h@r-36.net
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
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
Add newline in error messages --- st.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Roberto E. Vargas Caballero k0ga@shike2.com
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
Applying a shortening proposal for the run loop of k0ga.
Christoph Lohmann 20h@r-36.net
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
Adding some more fields to the manpage, like authors, license etc.
Christoph Lohmann 20h@r-36.net
Remove some solved issues and add some new.
Christoph Lohmann 20h@r-36.net
Preliminary solution to the stuttering problem.
Christoph Lohmann 20h@r-36.net
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
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
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
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
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
Implementing italic-bold. This will require an increase of the avgWdth.
Christoph Lohmann 20h@r-36.net
Ignore NUL character as a padding character. Telnet may use this. Patch of Roberto Vargas.
Christoph Lohmann 20h@r-36.net
Importing the patch of Roberto Vargas to inherit signal handlers.
Christoph Lohmann 20h@r-36.net
Reset window title on terminal reset too.
Christoph Lohmann 20h@r-36.net
Adding a statemant on legacy support.
Christoph Lohmann 20h@r-36.net
Adding another bold off sequence.
Christoph Lohmann 20h@r-36.net
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
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
Make nyancat(1) work. Important release feature!
Christoph Lohmann 20h@r-36.net
Add preliminary blink stubs. Real implementation is still missing.
Christoph Lohmann 20h@r-36.net
Add another obscure way to set a window title.
Christoph Lohmann 20h@r-36.net
Fixing the too small window in non-tiling window managers.
Christoph Lohmann 20h@r-36.net
Making the selection work again.
Christoph Lohmann 20h@r-36.net
Allow simpler stdout -f handling.
Christoph Lohmann 20h@r-36.net
Adding instantenous debug output and fixing italic with a reset.
Christoph Lohmann 20h@r-36.net
Adding the removal of the timeouts to the TODO.
Christoph Lohmann 20h@r-36.net
Removing masks for unhandled enter and leaving events.
Christoph Lohmann 20h@r-36.net
If the selection is cleared, draw() and do it on button press too.
Christoph Lohmann 20h@r-36.net
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
Forcing the parameter limit to xcopy() and selpaste(). Thanks to Rob Pilling.
Christoph Lohmann 20h@r-36.net
Removing unneeded arguments to copy(). Thanks to Andrew Hills.
Christoph Lohmann 20h@r-36.net
Implement italic font support.
Christoph Lohmann 20h@r-36.net
Add to TODO to make function keys work.
Christoph Lohmann 20h@r-36.net
Enable keypad set and unset commands.
Christoph Lohmann 20h@r-36.net
Disable BCE again.
Christoph Lohmann 20h@r-36.net
Removing the resize issue from the TODO file.
Christoph Lohmann 20h@r-36.net
Fixing the resizing behaviour.
Christoph Lohmann 20h@r-36.net
Forgot one line. It's late.
Christoph Lohmann 20h@r-36.net
Cleaning up the fixed window size and the resizing of clients.
Christoph Lohmann 20h@r-36.net
Another thing for TODO – resize.
Christoph Lohmann 20h@r-36.net
Updating the TODO and enabling BCE.
Christoph Lohmann 20h@r-36.net
CUP == HVP; CHA == HPA;
Christoph Lohmann 20h@r-36.net
Unifying the old style.
Christoph Lohmann 20h@r-36.net
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
Add newline to stderr message --- st.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Roberto E. Vargas Caballero k0ga@shike2.com
Fixing the border pixel when there is a negative position.
Christoph Lohmann 20h@r-36.net
Add -g geometry to st and the manpage.
Christoph Lohmann 20h@r-36.net
Fixing a type in in2 in the st.info.
Christoph Lohmann 20h@r-36.net
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
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
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
Add standout mode.
Christoph Lohmann 20h@r-36.net
Cleaning up lonely tabs.
Christoph Lohmann 20h@r-36.net
Make it more obvious where the wrong attribute is used.
Christoph Lohmann 20h@r-36.net
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
Add vpa terminfo capability --- st.info | 2 ++ 1 file changed, 2 insertions(+)
Roberto E. Vargas Caballero k0ga@shike2.com
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
Applying the CBT patch of Roberto Vargas. Thanks.
Christoph Lohmann 20h@r-36.net
Never trust terminfo fata morganas. And adding other xterm compatibility.
Christoph Lohmann 20h@r-36.net
Add OSC, DSC, PM, APC and settitle.
Christoph Lohmann 20h@r-36.net
Adding setb and setf and a comment about terminfo installation.
Christoph Lohmann 20h@r-36.net
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
Applying the patches of k0ga and changing the LICENSE file in the appropriate way.
Christoph Lohmann 20h@r-36.net
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
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
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
apply post-XDBE patch BORDER fix
Brandon Invergo brandon@invergo.net
Implement Xdbe-based double-buffering
Brandon Invergo brandon@invergo.net
update TODO.
Aurélien Aptel aurelien.aptel@gmail.com
cleanup. refactored dirt-related function.
Aurélien Aptel aurelien.aptel@gmail.com
use SHELL as default shell.
Aurélien Aptel aurelien.aptel@gmail.com
revert to "tip" in VERSION.
Aurélien Aptel aurelien.aptel@gmail.com
Added tag 0.2.1 for changeset 108926a0fe61
Aurélien Aptel aurelien.aptel@gmail.com
bump version.
Aurélien Aptel aurelien.aptel@gmail.com
replace fwrite by printf.
Aurélien Aptel aurelien.aptel@gmail.com
rewrite csidump().
Aurélien Aptel aurelien.aptel@gmail.com
clean and name enum definitions.
Aurélien Aptel aurelien.aptel@gmail.com
fix default color overwriten bug.
Aurélien Aptel aurelien.aptel@gmail.com
show dark cursor when unfocused.
Aurélien Aptel aurelien.aptel@gmail.com
document possible configuration.
Aurélien Aptel aurelien.aptel@gmail.com
handle dim/bright colors.
Aurélien Aptel aurelien.aptel@gmail.com
merge
Aurélien Aptel aurelien.aptel@gmail.com
reduce size of each glyph for faster copy.
Aurélien Aptel aurelien.aptel@gmail.com
Added tag 0.2 for changeset 3c2f9f2ab5e4
Aurélien Aptel aurelien.aptel@gmail.com
cosmetic, whitespace, etc.
Aurélien Aptel aurelien.aptel@gmail.com
fix PRINT/DRAW _TIMEOUT and fix redrawing bug.
Aurélien Aptel aurelien.aptel@gmail.com
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
fix segfault in selection. (thx Martti Kühne)
Aurélien Aptel aurelien.aptel@gmail.com
merge.
Aurélien Aptel aurelien.aptel@gmail.com
fix selection. (thx Tarmo Heiskanen)
Aurélien Aptel aurelien.aptel@gmail.com
add dirty flag for lines
Aurélien Aptel aurelien.aptel@gmail.com
no palette limit (thx Nick)
Aurélien Aptel aurelien.aptel@gmail.com
simplify version format.
Aurélien Aptel aurelien.aptel@gmail.com
selection is removed or scrolled properly. (thx Rafa Garcia Gallego)
Aurélien Aptel aurelien.aptel@gmail.com
working on old repo, merging recent changesets.
Aurélien Aptel aurelien.aptel@gmail.com
move xembedatom in XWindow struct, add link to xembed specs.
Aurélien Aptel aurelien.aptel@gmail.com
tweak focus to support XEMBED client message and remove focus on EnterNotify. (thx Adrian)
Aurélien Aptel aurelien.aptel@gmail.com
remove dup of default window size.
Aurélien Aptel aurelien.aptel@gmail.com
fix focus state when embed in another window.
Aurélien Aptel aurelien.aptel@gmail.com
fix segfault with mouse selection. (thx anonymous)
Aurélien Aptel aurelien.aptel@gmail.com
add -w option to embed st. (thx nodus cursorius)
Aurélien Aptel aurelien.aptel@gmail.com
applied parts of "anonymous" cleanup patch.
Aurélien Aptel aurelien.aptel@gmail.com
add altscreen escseq alias & caps to terminfo entry. (thx Bert Münnich)
Aurélien Aptel aurelien.aptel@gmail.com
disable mouse highlight when mouse report enabled. (thx Bert Münnich)
Aurélien Aptel aurelien.aptel@gmail.com
reverse video mode. (thx Bert Münnich)
Aurélien Aptel aurelien.aptel@gmail.com
add status bar (window title) to terminfo. (thx Rafa Gallego)
Aurélien Aptel aurelien.aptel@gmail.com
set title before mapping window (thx Kamil Cholewiński).
Aurélien Aptel aurelien.aptel@gmail.com
applied parts of Connor Lane Smith's cleanup patch.
Aurélien Aptel aurelien.aptel@gmail.com
macro cleanup.
Aurélien Aptel aurelien.aptel@gmail.com
add mouse report escape to terminfo entry.
Aurélien Aptel aurelien.aptel@gmail.com
support for x11 xterm mouse reporting
Aurélien Aptel aurelien.aptel@gmail.com
whitespace.
Aurélien Aptel aurelien.aptel@gmail.com
cleanup.
Aurélien Aptel aurelien.aptel@gmail.com
update TODO
Aurélien Aptel aurelien.aptel@gmail.com
selection clicks, shift+arrow keys, fast(er) redraw, key mask in config.h (thx Magnus Leuthner)
Aurélien Aptel aurelien.aptel@gmail.com
update README.
Aurélien Aptel aurelien.aptel@gmail.com
quick bug-fixing 0.1.1 release.
Aurélien Aptel aurelien.aptel@gmail.com
update VERSION.
Aurélien Aptel aurelien.aptel@gmail.com
take BORDER into account for selection. (thx Petr Sabata)
Aurélien Aptel aurelien.aptel@gmail.com
fix utf8 clipboard. (thx Petr Sabata)
Aurélien Aptel aurelien.aptel@gmail.com
Added tag 0.1 for changeset cbc18c988236
Aurélien Aptel aurelien.aptel@gmail.com
add support for utf8 clipboard. fix usage message.
Aurélien Aptel aurelien.aptel@gmail.com
do not add newline to selection text if next line not selected (Nick)
pancake@nopcode.org unknown
remove debugging printf
pancake@nopcode.org unknown
apply Nick's patch to fix some error printf to use stderr
pancake@nopcode.org unknown
fix insert key, terminfo and changed TERM back to st. (thx Ondrej Martinek)
Aurélien Aptel aurelien.aptel@gmail.com
change X cursor to "I".
Aurélien Aptel aurelien.aptel@gmail.com
update terminfo entry.
Aurélien Aptel aurelien.aptel@gmail.com
add new line glitch to terminfo entry.
Aurélien Aptel aurelien.aptel@gmail.com
change -e behaviour and update man page.
Aurélien Aptel aurelien.aptel@gmail.com
-e flag handles arguments.
Aurélien Aptel aurelien.aptel@gmail.com
use memmove() instead of memcpy() in ttyread().
Aurélien Aptel aurelien.aptel@gmail.com
fix and clean ttyread(). buf wasn't static.
Aurélien Aptel aurelien.aptel@gmail.com
merge.
Aurélien Aptel aurelien.aptel@gmail.com
s/xw.dis/xw.dpy/
Aurélien Aptel aurelien.aptel@gmail.com
cleanup & bugfix in xdraws().
Aurélien Aptel aurelien.aptel@gmail.com
clean comment regarding redrawing in bmotion().
Aurélien Aptel aurelien.aptel@gmail.com
Add -c option to override the default window class
Gregor Best gbe@ring0.de
some code cleaning.
Aurélien Aptel aurelien.aptel@gmail.com
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
selection code cleanup.
Aurélien Aptel aurelien.aptel@gmail.com
fixed ED.
Aurélien Aptel aurelien.aptel@gmail.com
redraw if we scroll on resize
Devin J. Pohly djpohly@djpohly.com
get rid of artifacts in border on resize down
Devin J. Pohly djpohly@djpohly.com
copy old pixmap to new on resize
Devin J. Pohly djpohly@djpohly.com
move code into new xresize func, add early exit to resize
Devin J. Pohly djpohly@djpohly.com
\v and \f are have the same behaviour of \n.
Aurélien Aptel aurelien.aptel@gmail.com
added LNM mode; re-organized kpress() to handle it.
Aurélien Aptel aurelien.aptel@gmail.com
redraw optimization.
Aurélien Aptel aurelien.aptel@gmail.com
fixed newline bug.
Aurélien Aptel aurelien.aptel@gmail.com
replaced memset by loops in tresize(); turns out it's faster.
Aurélien Aptel aurelien.aptel@gmail.com
remove useless draw().
Aurélien Aptel aurelien.aptel@gmail.com
applied xclipboard patch. thx David Isaac Wolinsky.
Aurélien Aptel aurelien.aptel@gmail.com
clean button selection code.
Aurélien Aptel aurelien.aptel@gmail.com
compose key patch. thx federico luna.
Aurélien Aptel aurelien.aptel@gmail.com
s/hasfocus/focus/ for consistency.
Aurélien Aptel aurelien.aptel@gmail.com
don't draw if the window is not visible.
Aurélien Aptel aurelien.aptel@gmail.com
use xclear() in draw().
Aurélien Aptel aurelien.aptel@gmail.com
use XCreateWindow(), set gravity bit.
Aurélien Aptel aurelien.aptel@gmail.com
cleaning st.info. added comment in st.c for DECSCNM.
Aurélien Aptel aurelien.aptel@gmail.com
cleaning st.info. fixed cvvis.
Aurélien Aptel aurelien.aptel@gmail.com
set terminal colors to xterm default ones.
Aurélien Aptel aurelien.aptel@gmail.com
removed gfx chars not present in xterm acsc.
Aurélien Aptel aurelien.aptel@gmail.com
fixed start/end sequence of gfx.
Aurélien Aptel aurelien.aptel@gmail.com
undefined gfx doesn't draw \0.
Aurélien Aptel aurelien.aptel@gmail.com
fixed makefile.
Aurélien Aptel aurelien.aptel@gmail.com
added manpage.
Aurélien Aptel aurelien.aptel@gmail.com
resize from the top.
Aurélien Aptel aurelien.aptel@gmail.com
added -e and -t option.
Aurélien Aptel aurelien.aptel@gmail.com
factored code and fixed behaviour of tnewline().
Aurélien Aptel aurelien.aptel@gmail.com
updated TODO.
Aurélien Aptel aurelien.aptel@gmail.com
started to go through st.info and fix things.
Aurélien Aptel aurelien.aptel@gmail.com
capabilities sorted by capname in st.info. copy acsc from xterm.
Aurélien Aptel aurelien.aptel@gmail.com
removed debug code.
Aurélien Aptel aurelien.aptel@gmail.com
fixed IL and DL.
Aurélien Aptel aurelien.aptel@gmail.com
factor and cleanup code.
Aurélien Aptel aurelien.aptel@gmail.com
added correct line drawing characters for default font.
Aurélien Aptel aurelien.aptel@gmail.com
use struct instead of array.
Aurélien Aptel aurelien.aptel@gmail.com
cleanup.
Aurélien Aptel aurelien.aptel@gmail.com
fix segfault when selecting big buffers shift+insert paste clipboard honor CFLAGS and LDFLAGS in config.mk
pancake@nopcode.org unknown
fix build.
Aurélien Aptel aurelien.aptel@gmail.com
add selinit() and renamed clipboard_* to sel*.
Aurélien Aptel aurelien.aptel@gmail.com
move event configuration in xinit().
Aurélien Aptel aurelien.aptel@gmail.com
use one global struct instead of many vars for selection. Cleanup.
Aurélien Aptel aurelien.aptel@gmail.com
use GLYPH_SET to test if a char is set; cleanup.
Aurélien Aptel aurelien.aptel@gmail.com
fix crash for small windows use unconditional infinite loops
pancake@nopcode.org unknown
toggle ATTR_REVERSE on selected text, factored some code and fixed Makefile.
Aurélien Aptel aurelien.aptel@gmail.com
fix build use config.def.h mechanism add SHELL in config.h
pancake pancake@nopcode.org
initial implementation of selection and clipboard
pancake pancake@nopcode.org
fix segfault
pancake@nopcode.org unknown
added support for alternate screen.
Aurélien Aptel aurelien.aptel@gmail.com
cursor is hid when unfocused.
Aurélien Aptel aurelien.aptel@gmail.com
use predefined OS macro instead of uname.
Aurélien Aptel aurelien.aptel@gmail.com
st should compile on NetBSD.
Aurélien Aptel aurelien.aptel@gmail.com
removed pty.h. minimal system guessing added in config.mk.
Aurélien Aptel aurelien.aptel@gmail.com
removed (visual) bell. '\a' sets the urgency flag if st is unfocused.
Aurélien Aptel aurelien.aptel@gmail.com
removed useless cursor init. and renamed xcursor() to xdrawcursor().
Aurélien Aptel aurelien.aptel@gmail.com
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
removed old VT52 escapes, fixed VT100 IND.
Aurélien Aptel aurelien.aptel@gmail.com
fixed optimized drawing routine and factored some code.
Aurélien Aptel aurelien.aptel@gmail.com
fixed pixmap buffer drawing.
Aurélien Aptel aurelien.aptel@gmail.com
added a XFlush() in xbell().
Aurélien Aptel aurelien.aptel@gmail.com
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
merged tscroll() with tscrollup().
Aurélien Aptel aurelien.aptel@gmail.com
st now runs on Linux, OpenBSD and FreeBSD.
Aurélien Aptel aurelien.aptel@gmail.com
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
fixed potential bug in IS_SET().
Aurélien Aptel aurelien.aptel@gmail.com
merged tcursorwrap() with tnewline(), added few comments and updated copyright.
Aurélien Aptel aurelien.aptel@gmail.com
cleaned some spaces.
Aurélien Aptel aurelien.aptel@gmail.com
added macro to test flags, removed tmovecursor().
Aurélien Aptel aurelien.aptel@gmail.com
faster resizing.
Aurélien Aptel aurelien.aptel@gmail.com
close master/slave pty in the shell process.
Aurélien Aptel aurelien.aptel@gmail.com
clean \t.
Aurélien Aptel aurelien.aptel@gmail.com
update function prototypes.
Aurélien Aptel aurelien.aptel@gmail.com
fix \b and clean \t.
Aurélien Aptel aurelien.aptel@gmail.com
added F1-12 key, fixed DCH and ICH.
Aurélien Aptel aurelien.aptel@gmail.com
fixed backspace problem, updated terminfo entry and moved TNAME in config.h.
Aurélien Aptel aurelien.aptel@gmail.com
renamed a function.
Aurélien Aptel aurelien.aptel@gmail.com
applied Devin J Pohly's st color info patches, thanks Devin!
Anselm R Garbe anselm@garbe.us
fix gcc warnings
pancake@nopcode.org unknown
fixed background color bug (thx Devin J. Pohly).
Aurélien Aptel aurelien.aptel@gmail.com
added PBaseSize hint and set default title to "st".
Aurélien Aptel aurelien.aptel@gmail.com
rearranged code, resize fixed.
Aurélien Aptel aurelien.aptel@gmail.com
little clean up.
Aurélien Aptel aurelien.aptel@gmail.com
use SHELL environment variable (thx Thomas Adam)
Aurélien Aptel aurelien.aptel@gmail.com
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
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
added VT100 NEL.
Aurélien Aptel aurelien.aptel@gmail.com
added VT100 RI.
Aurélien Aptel aurelien.aptel@gmail.com
added VT100 save&load cursor support.
Aurélien Aptel aurelien.aptel@gmail.com
ECH handled correctly.
Aurélien Aptel aurelien.aptel@gmail.com
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
graphic charset and a few more escapes.
Aurélien Aptel aurelien.aptel@gmail.com
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
drawing is faster but the bold attr is not supported anymore.
Aurélien Aptel aurelien.aptel@gmail.com
Fixed possible segfault by reverting to the key struct (again).
Aurélien Aptel aurelien.aptel@gmail.com
only compile tdump if DEBUG flag is set
Anselm R Garbe garbeam@gmail.com
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
reverted back to the old Key struct.
Aurélien Aptel aurelien.aptel@gmail.com
updated "key" to a lookup table.
Aurélien Aptel aurelien.aptel@gmail.com
removed old unused cursor() proto.
Aurélien Aptel aurelien.aptel@gmail.com
fixed the scrolling bug and cleaned some stuff.
Aurélien Aptel aurelien.aptel@gmail.com
dump escseq if not handled.
Aurélien Aptel aurelien.aptel@gmail.com
clean up.
Aurélien Aptel aurelien.aptel@gmail.com
added/removed files, updated Makefile.
Aurélien Aptel aurelien.aptel@gmail.com
made kpress() more flexible, removed st.h, added config.h.
Aurélien Aptel aurelien.aptel@gmail.com
updated TODO.
Aurélien Aptel aurelien.aptel@gmail.com
added sigchld handler, cleaned error checking.
Aurélien Aptel aurelien.aptel@gmail.com
cleaned up (removed space indentation). select/event bug fixed.
Aurélien Aptel aurelien.aptel@gmail.com
fixed a memory leak & segfault in tresize.
Aurélien Aptel aurelien.aptel@gmail.com
updated TODO.
Aurélien Aptel aurelien.aptel@gmail.com
tab moves the cursor instead of inserting spaces.
Aurélien Aptel aurelien.aptel@gmail.com
handle tabulation (still not perfect)
Aurélien Aptel aurelien.aptel@gmail.com
removed truecolor stuff
Aurélien Aptel aurelien.aptel@gmail.com
removed the truecolor stuff
Aurélien Aptel aurelien.aptel@gmail.com
same thing, really fixed this time.
Aurélien Aptel aurelien.aptel@gmail.com
added some error checking in xinit (fixed the segfault caused by a missing font)
Aurélien Aptel aurelien.aptel@gmail.com
Removed unused variable and cleaned some comment.
Aurélien Aptel aurelien.aptel@gmail.com
backport of local changes
Anselm R Garbe garbeam@gmail.com
add accidentally omitted word
Matthias-Christian Ott ott@enolink.de
use stdio(3)
Matthias-Christian Ott ott@enolink.de
add description of std
Matthias-Christian Ott ott@enolink.de
add prototype for command parsing
Matthias-Christian Ott ott@enolink.de
correct year of copyright notice
Matthias-Christian Ott ott@enolink.de
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
reunite pty.c with std.c
Matthias-Christian Ott ott@enolink.de
correct programme name
Matthias-Christian Ott ott@enolink.de
use errx() for help and version messages
Matthias-Christian Ott ott@enolink.de
merge with backout head
Matthias-Christian Ott ott@enolink.de
remove TODO
Matthias-Christian Ott ott@enolink.de
make ptm and pts static
Matthias-Christian Ott ott@enolink.de
remove useless variable
Matthias-Christian Ott ott@enolink.de
remove emallocz()
Matthias-Christian Ott ott@enolink.de
replace eprint() functions with BSD error functions
Matthias-Christian Ott ott@enolink.de
simplify flushing
Matthias-Christian Ott ott@enolink.de
correct buffering
Matthias-Christian Ott ott@enolink.de
make local functions and variables static
Matthias-Christian Ott ott@enolink.de
add select(2)-based i/o multiplexing
Matthias-Christian Ott ott@enolink.de
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
make st and std separate programmes
Matthias-Christian Ott ott@enolink.de
add missing header file
Matthias-Christian Ott ott@enolink.de
assume glibc by default
Matthias-Christian Ott ott@enolink.de
source utility functions out to util.c
Matthias-Christian Ott ott@enolink.de
add copyright comment
Matthias-Christian Ott ott@enolink.de
source getpty() out to pty.c
Matthias-Christian Ott ott@enolink.de
update TODO
Matthias-Christian Ott ott@enolink.de
correct function name
Matthias-Christian Ott ott@enolink.de
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
add missing header file
Matthias-Christian Ott ott@enolink.de
add parser loop
Matthias-Christian Ott ott@enolink.de
remove useless variable
Matthias-Christian Ott ott@enolink.de
replace state with separate variables
Matthias-Christian Ott ott@enolink.de
terminate error message with newline
Matthias-Christian Ott ott@enolink.de
correct LENGTH()
Matthias-Christian Ott ott@enolink.de
simplify control flow
Matthias-Christian Ott ott@enolink.de
remove debug code
Matthias-Christian Ott ott@enolink.de
remove stdio slave pty opening
Matthias-Christian Ott ott@enolink.de
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
slight changes
Anselm R Garbe garbeam@gmail.com
applied Matthias-Christians changes to std.c
Anselm R Garbe garbeam@gmail.com
added some new files for the initial rewrite of st from scratch
Anselm R Garbe garbeam@gmail.com
added new TODO
arg@localhost.localdomain unknown
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
fix warning
pancake pancake@nopcode.org
Fix unused variable issue and OSX includes
pancake@nopcode.org unknown
change "op" cap in terminfo entry to xterm/rxvt value.
Aurélien Aptel aurelien.aptel@gmail.com
fix custom key handling.
Aurélien Aptel aurelien.aptel@gmail.com
drawregion() only copies region on screen.
Aurélien Aptel aurelien.aptel@gmail.com
some minor fixes
anselm@garbe.us unknown
use typedef'd unsigned type and regular bool type.
Aurélien Aptel aurelien.aptel@gmail.com
Fixed lock up when system time jumps backwards Signed-off-by: Christoph Lohmann <20h@r-36.net>
Rob Pilling rob@egbert