aboutsummaryrefslogtreecommitdiffstats
path: root/st.c
Commit message (Collapse)AuthorAgeFilesLines
...
* Support xterm Ms feature to set clipboardosandov@osandov.com2017-03-191-0/+57
| | | | This is used by, e.g., tmux.
* Split X-specific code into x.cMichael Forney2017-01-201-1961/+65
|
* Move column and row default numbers into config.hfpqc2016-12-161-2/+0
|
* Revert "Initial font size issue."Roberto E. Vargas Caballero2016-11-241-3/+0
| | | | This reverts commit 424202798b02554092ba84dd59fb7b79b59b7b75.
* Fixed 'missing glyph doesn't use fontconfig config substitutions' bugSpencer Phippen2016-11-241-3/+19
| | | | | | | | | | | | | | | | XftFontMatch does display-specific font configuration (commit 528241a). Nice. Unfortunately, when we switched from FcFontMatch, we also stopped storing the post-Fc{Config,Default}Substitute FcPattern for future lookups. The result is that if a glyph isn't found in the primary font, secondary font lookups use the original FcPattern, not the configured one. If you have custom fontconfig rules (like me), this can be disappointing. I basically just copied the guts out of XftFontMatch[1] and saved the intermediate configured FcPattern. Could be related to the bug that inspired commit 4242027. [1]: https://cgit.freedesktop.org/xorg/lib/libXft/tree/src/xftfont.c
* Initial font size issue.ian@remmler.org2016-11-141-0/+3
| | | | | | | | | | | | | | | Hi, When I specify a font by point size (I'm using "Inconsolata:size=12"), characters that are substituted from another font because they are not in the main one appear too small. Doing a zoom reset fixes it. For example: Before: http://i.imgur.com/G4Mfv4X.png After: http://i.imgur.com/PMDhfQA.png I found that adding the pixel size (acquired from the initial font load) to the pattern then reloading the font fixes the problem. I'm not sure if this is a proper fix, though.
* Make strdump(), csidump(), print to stderrpl@ninthfloor.org2016-11-141-14/+15
| | | | | | | | | The two functions strdump(), csidump() are called to show errors and their output is introduced by a message printed to stderr. Thus, it it more consistent to have them print to stderr. Moreover stderr is unbuffered (at least on Linux), making problems immediately visible.
* Do not use color when font attributes are supportedQuentin Rameau2016-10-231-8/+32
| | | | | If fontconfig gives us a font without the attributes we asked for, display an alternative color instead.
* Add support for iso14755Quentin Rameau2016-10-181-0/+28
| | | | | We launch dmenu for getting a codepoint, then convert it and send it to the terminal.
* Add parsing of DCS q sequencesRoberto E. Vargas Caballero2016-09-141-23/+45
| | | | | | These sequences are used to operate with sixels, but they are still str sequences, so they are finished with \a, ST or with a C1 control code. This patch also disables utf8 handling for the case of sixels.
* Add support for enabling/disabling utfRoberto E. Vargas Caballero2016-09-131-17/+62
| | | | | | | There are some ocasions where we want to disable the enconding/decoding of utf8, mainly because it adds an important overhead. This is partial patch for ESC % G and ESC % @, where they modified the way that st reads and write from/to the serial line, but it does not modifies how it interacts with the X window part.
* Use XftFontMatch in place of FcFontMatch.Christoph Lohmann2016-06-031-4/+1
| | | | | | | | | | | | | | git am -s didn't like your patch: From: Mark Edgar <medgar123@gmail.com> XftFontMatch calls XftDefaultSubstitute which configures various match properties according to the user's configured Xft defaults (xrdb) as well as according to the current display and screen. Most importantly, the screen DPI is computed [1]. Without this, st uses a "default" DPI of 75 [2]. [1]: https://cgit.freedesktop.org/xorg/lib/libXft/tree/src/xftdpy.c?id=libXft-2.3.2#n535 [2]: https://cgit.freedesktop.org/fontconfig/tree/src/fcdefault.c?id=2.11.1#n255
* delete clipboard properties after pasting themv4hn2016-06-031-2/+1
| | | | | | | | | | | | | | https://tronche.com/gui/x/icccm/sec-2.html#s-2.4 specifies: > Once all the data in the selection has been retrieved, > the requestor should delete the property in the SelectionNotify request Most Clipboard-Owners ignore whether or not the property is already set, so this is mostly a cosmetic change to keep the windows property list clean. However, at least synergy decides to wait for the requestor to delete the properties if they are already set by a previous paste (from synergy). Signed-off-by: Christoph Lohmann <20h@r-36.net>
* Remove stupid assignation in memcpy()Roberto E. Vargas Caballero2016-04-151-2/+2
|
* st: Fix off-by-one error when calculating character width.Tor Andersson2016-03-091-2/+2
| | | | | | | | | | | | LEN(str) is one larger than strlen(str) because it also counts the zero terminator. The original code would include the .notdef glyph (since it'll try to encode character 0, which gets encoded to the .notdef glyph) when measuring the average dimensions of printable ascii characters. This causes problems with fonts like GNU Unifont where the .notdef glyph is not the same width as the usual half-width characters. Signed-off-by: Christoph Lohmann <20h@r-36.net>
* Fix vertical character alignment in some casesTon van den Heuvel2016-03-081-1/+1
| | | | | | | | | The y-position of a character found by asking fontconfig for a matching font does not take the border pixels into account, resulting in a slightly misaligned vertical position. Signed-off-by: Ton van den Heuvel <tonvandenheuvel@gmail.com> Signed-off-by: Christoph Lohmann <20h@r-36.net>
* Measure the single advance width with a heuristic methodRyusei Yamaguchi2016-03-081-1/+7
| | | | | | | | This fix is needed to use dual-width fonts, which have double-width glyphs (e.g. CJK unified ideographs). Signed-off-by: Ryusei Yamaguchi <mandel59@gmail.com> Signed-off-by: Christoph Lohmann <20h@r-36.net>
* xtermclear() is now done by xdrawglyphfontspecs()Christoph Lohmann2016-03-071-13/+0
| | | | Thanks Ton van den Heuvel for the proposal!
* Fix forgotten bracket and duplicate option in usage()Quentin Rameau2016-02-011-6/+8
| | | | | | | | | | Scratch the preceding patch, this one is more correct (don't forget to 'git am --scissors' ;)) -- >8 -- Also reformat the strings in a saner layout Signed-off-by: Christoph Lohmann <20h@r-36.net>
* Extract ttyresize() out of cresize()Quentin Rameau2016-01-301-4/+4
| | | | | | | This way we can call cresize() to set the terminal size before creating a tty or spawning a process, which will start with the correct size. Signed-off-by: Christoph Lohmann <20h@r-36.net>
* Ok, no need for a separate version function.Christoph Lohmann2016-01-301-8/+1
| | | | This is just redundant metadata. Please add Java comment meta classes too.
* Add -n option for setting WM_CLASS instance nameQuentin Rameau2016-01-301-15/+19
| | | | Signed-off-by: Christoph Lohmann <20h@r-36.net>
* Reformat usage and separate version from itQuentin Rameau2016-01-301-8/+16
| | | | Signed-off-by: Christoph Lohmann <20h@r-36.net>
* Enforce a terminal size to reduce race conditions in too efficient apps.Christoph Lohmann2016-01-281-0/+2
| | | | | dvtm is too fast in starting up. It will then have a race condition in finding the right. terminal size.
* Height is height.Christoph Lohmann2016-01-141-1/+1
|
* Bump year.Christoph Lohmann2016-01-011-1/+1
|
* Fixing the XClassHint setting in st.Christoph Lohmann2015-12-201-1/+1
|
* Avoid recursive call to ttywrite from ttyreadRoberto E. Vargas Caballero2015-11-211-2/+2
| | | | | Ttyread() calls to ttywrite, so if we check for reading before that for writing in ttywrite we can get a circular call sequence.
* Introduce lim in all ttywrite() checks.Christoph Lohmann2015-11-061-4/+4
|
* Fix ttywrite()Roberto E. Vargas Caballero2015-11-061-18/+20
| | | | | | | ttywrite was assuming that if it could not write then it could read, but this is not necessarily true, there are some situations where you cannot read or write. The correct behaviour is to detect if you can read or/and write.
* Now the mshortcuts are even more consistent.Ivan Tham2015-11-011-5/+5
| | | | | | Keep everyone happy Signed-off-by: Christoph Lohmann <20h@r-36.net>
* Now the Shortcuts are more consistent.Christoph Lohmann2015-10-311-2/+2
| | | | Keep the debile happy.
* fix bug where first selection snaps to linesJason Woofenden2015-10-111-2/+3
|
* Fix the cursor colors selectionQuentin Rameau2015-10-061-3/+2
| | | | Signed-off-by: Christoph Lohmann <20h@r-36.net>
* Normalize the whole color selection in xdrawcursor.Christoph Lohmann2015-10-061-11/+22
|
* Fix the cursor color when over selection.Quentin Rameau2015-10-061-1/+2
| | | | | | | If we want to show a custom selected cursor color, we must not set the revert attribute to the drawn glyph. Signed-off-by: Christoph Lohmann <20h@r-36.net>
* Snowman is everywhere.Christoph Lohmann2015-10-051-0/+2
|
* The definition of the reverse cursor is now up to the user.Christoph Lohmann2015-10-051-12/+3
|
* Fixing the cursor movement in selections.Christoph Lohmann2015-10-051-13/+31
| | | | | | Before the fix the cursor wouldn't obey if it's in a selection. If it is inside it will now change to the reverse. This patch also adds that the defaultcs will be reversed for the manually drawn cursors.
* When the cursor is moved, clear the selection.Christoph Lohmann2015-10-051-0/+1
|
* Reverse the cursor on selection.Christoph Lohmann2015-10-051-0/+3
|
* More style changes. We forgot some switches.Christoph Lohmann2015-10-051-33/+33
|
* Small style change.Christoph Lohmann2015-10-051-4/+4
|
* Fix extra bracketed paste markers when pasting >8kbdequis2015-09-251-2/+2
| | | | | | | | | | | | | | | | | | | | Before this patch, when pasting over BUFSIZE (8192 bytes here), st would do the following: \e[200~...8192 bytes...\e[201~\e[200~...remaining bytes...\e[201~ With this patch, the start marker is only sent when the offset is 0 (at the beginning of selnotify) and the end marker is only sent when the remaining bytes to read are 0 (at the end). For short pastes, both conditions are true in the same iteration. For long pastes, it removes the extra markers in the middle, keeping the intended wrapping: \e[200~...8192 bytes......remaining bytes...\e[201~ Signed-off-by: Christoph Lohmann <20h@r-36.net>
* dup() -> dup2()FRIGN2015-09-221-2/+1
| | | | | | | gcc would warn about an unused result. We know it is 0 and dup() can't fail in these circumstances, as we closed fd0 previously. Using dup2() to do the same saves one line and shuts gcc up, bringing us a clean build back.
* Fix copy of line with len = 0Roberto E. Vargas Caballero2015-09-101-1/+4
| | | | | | | When a line has no any character linelen is 0, so last = &term.line[y][MIN(lastx, linelen-1)] generated a pointer to the end of the previous line. The best thing we can do in this case is to add a newline, because we don't have a glyph to print (and consult its state of wrapping).
* Expose cursor shape in config.def.hJan Christoph Ebersbach2015-09-081-1/+1
| | | | Signed-off-by: Christoph Lohmann <20h@r-36.net>
* Add key to send a break to the serial lineRoberto E. Vargas Caballero2015-09-081-0/+9
|
* Making st.1 more descriptive about -l and fix -l in st.c.Christoph Lohmann2015-09-071-1/+1
|
* Reordering and adding control codes.Christoph Lohmann2015-08-311-2/+21
| | | | For completeness and documentation add all C1 control codes.
remember that computers suck.