aboutsummaryrefslogtreecommitdiff
path: root/st.c
AgeCommit message (Collapse)Author
2016-03-09st: Fix off-by-one error when calculating character width.Tor Andersson
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>
2016-03-08Fix vertical character alignment in some casesTon van den Heuvel
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>
2016-03-08Measure the single advance width with a heuristic methodRyusei Yamaguchi
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>
2016-03-07xtermclear() is now done by xdrawglyphfontspecs()Christoph Lohmann
Thanks Ton van den Heuvel for the proposal!
2016-02-01Fix forgotten bracket and duplicate option in usage()Quentin Rameau
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>
2016-01-30Extract ttyresize() out of cresize()Quentin Rameau
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>
2016-01-30Ok, no need for a separate version function.Christoph Lohmann
This is just redundant metadata. Please add Java comment meta classes too.
2016-01-30Add -n option for setting WM_CLASS instance nameQuentin Rameau
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2016-01-30Reformat usage and separate version from itQuentin Rameau
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2016-01-28Enforce a terminal size to reduce race conditions in too efficient apps.Christoph Lohmann
dvtm is too fast in starting up. It will then have a race condition in finding the right. terminal size.
2016-01-14Height is height.Christoph Lohmann
2016-01-01Bump year.Christoph Lohmann
2015-12-20Fixing the XClassHint setting in st.Christoph Lohmann
2015-11-21Avoid recursive call to ttywrite from ttyreadRoberto E. Vargas Caballero
Ttyread() calls to ttywrite, so if we check for reading before that for writing in ttywrite we can get a circular call sequence.
2015-11-06Introduce lim in all ttywrite() checks.Christoph Lohmann
2015-11-06Fix ttywrite()Roberto E. Vargas Caballero
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.
2015-11-01Now the mshortcuts are even more consistent.Ivan Tham
Keep everyone happy Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-10-31Now the Shortcuts are more consistent.Christoph Lohmann
Keep the debile happy.
2015-10-11fix bug where first selection snaps to linesJason Woofenden
2015-10-06Fix the cursor colors selectionQuentin Rameau
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-10-06Normalize the whole color selection in xdrawcursor.Christoph Lohmann
2015-10-06Fix the cursor color when over selection.Quentin Rameau
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>
2015-10-05Snowman is everywhere.Christoph Lohmann
2015-10-05The definition of the reverse cursor is now up to the user.Christoph Lohmann
2015-10-05Fixing the cursor movement in selections.Christoph Lohmann
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.
2015-10-05When the cursor is moved, clear the selection.Christoph Lohmann
2015-10-05Reverse the cursor on selection.Christoph Lohmann
2015-10-05More style changes. We forgot some switches.Christoph Lohmann
2015-10-05Small style change.Christoph Lohmann
2015-09-25Fix extra bracketed paste markers when pasting >8kbdequis
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>
2015-09-22dup() -> dup2()FRIGN
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.
2015-09-10Fix copy of line with len = 0Roberto E. Vargas Caballero
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).
2015-09-08Expose cursor shape in config.def.hJan Christoph Ebersbach
Signed-off-by: Christoph Lohmann <20h@r-36.net>
2015-09-08Add key to send a break to the serial lineRoberto E. Vargas Caballero
2015-09-07Making st.1 more descriptive about -l and fix -l in st.c.Christoph Lohmann
2015-08-31Reordering and adding control codes.Christoph Lohmann
For completeness and documentation add all C1 control codes.
2015-08-30Merge branch 'master' of ssh://suckless.org/gitrepos/stChristoph Lohmann
2015-08-30Don't read if we chunked the input data.Christoph Lohmann
2015-08-18Do not mark as invalid UTF8 control codesRoberto E. Vargas Caballero
wcwidth() returns -1 for all the non visible characters, but it doesn't necessarilly mean that they are incorrect. It only means that they are not printable.
2015-07-28Adding mouse colour/shape settingsAlex Kozadaev
2015-07-24Adding -T to the usage too.Christoph Lohmann
2015-07-24Add -T, as recommended by Dmitrij D. CzarkoffChristoph Lohmann
2015-07-24Fix type for write(2) return variable.Quentin Rameau
A little fix in xwrite(). >From 3727d2e3344b57128ab51c7839795204f1f839ff Mon Sep 17 00:00:00 2001 From: Quentin Rameau <quinq@fifth.space> Date: Fri, 24 Jul 2015 11:40:46 +0200 Subject: [PATCH] Fix type for write(2) return variable. The allocated lengh of s fits into an integer so we can safely use ssize_t here.
2015-07-24Fix style in execshRoberto E. Vargas Caballero
2015-07-10Make the comment for the IM XFilter more understandable.Christoph Lohmann
2015-07-10Return style unification.Christoph Lohmann
2015-07-10Aligning the macros.Christoph Lohmann
2015-07-10Unix end of file.Christoph Lohmann
2015-07-10No inline declarations please.Christoph Lohmann
2015-07-10Typo and the missing incr atom from the patches.Christoph Lohmann