Commit Graph

1172 Commits (14a8129b39ba5db5ebe4e14158e974a211f332ef)

Author SHA1 Message Date
Jef Roosens 14a8129b39
Merge branch 'master' of git.rustybever.be:Chewing_Bever/st 2022-03-05 10:30:45 +01:00
Jef Roosens 3e676eadfb
Added platform restriction to CI 2022-03-05 10:30:18 +01:00
Jef Roosens 2cddf3f42f
Merge branch 'master' of git://git.suckless.org/st
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-02-19 13:27:46 +01:00
Santtu Lakkala e823e2308f Delay redrawals on palette changes
Build on auto-sync and only mark window dirty on palette changes and let
the event handler do the actual draw.
2022-02-18 13:03:37 +01:00
Jef Roosens 6a8231388f
Switched to vieter server
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-02-02 11:18:22 +01:00
Hiltjo Posthuma 2c5edf28ec X10/SGR mouse: use alt as meta key instead of super/windows key 2022-01-12 09:44:27 +01:00
Hiltjo Posthuma b1d97fec47 LICENSE: bump year 2022-01-10 17:11:17 +01:00
robert ea7cd7b62f Fix mousereport
This patch replaces the previous one I sent.

The following changes are made in this patch:
 - Fix tracking of pressed buttons. Previously, pressing two buttons and
   then releasing one would make st think no buttons are pressed, which
   in particular broke MODE_MOUSEMOTION.
 - Always send the lowest-numbered pressed button on motion events; when
   no button is pressed for a motion event in MODE_MOUSEMANY, then send
   a release. This matches the behaviour of xterm. (Previously, st sent
   the most recently pressed button in the motion report.)
 - Remove UB (?) access to potentially inactive struct member
   e->xbutton.button of XEvent union.
 - Fix (unlikely) possibility of overflow for large button numbers.

The one discrepancy I found between st and xterm is that xterm sometimes
encodes buttons with large numbers (>5) strangely. E.g., xterm reports
presses of buttons 8 and 9 as releases, whereas st properly (?) encodes
them as presses.
2022-01-10 17:04:01 +01:00
Jef Roosens c853108d20
Switched back to -O1 in fear of undefined behavior
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-01-08 12:13:56 +01:00
Jef Roosens 5920a16065
Switched to -O3 optimisations
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-01-07 23:14:16 +01:00
Jef Roosens b3dce446f1
Forgot to update checksums again
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-01-07 22:23:27 +01:00
Jef Roosens 3c62497033
Removed unnecessary border
ci/woodpecker/push/woodpecker Pipeline failed Details
2022-01-07 22:22:11 +01:00
Jef Roosens 41364111da
Removed object files from PKGBUILD sources list
ci/woodpecker/push/woodpecker Pipeline was successful Details
2022-01-07 22:06:53 +01:00
Jef Roosens fb097697ec
Merge branch 'dev'
ci/woodpecker/push/woodpecker Pipeline failed Details
2022-01-07 22:04:13 +01:00
Jef Roosens c13646bbb8
Updated md5sums 2022-01-07 22:02:53 +01:00
Jef Roosens 2210dbf3fe
Updated PKGBUILD version 2022-01-07 21:59:17 +01:00
Jef Roosens 440223a0b6
Merge branch 'master' of git://git.suckless.org/st into dev 2022-01-07 21:58:26 +01:00
Jef Roosens c6cb2bc12d
Changed to right PKGBUILD version 2022-01-07 21:58:15 +01:00
Hiltjo Posthuma 7fb0c0cc68 bump version to 0.8.5 2022-01-07 12:39:57 +01:00
Hiltjo Posthuma 7e1c68f25d FAQ: fix a typo, patch -> path 2022-01-02 12:16:57 +01:00
Jef Roosens db273781b2
Updated ci restrictions 2022-01-02 11:02:36 +01:00
Jef Roosens 4551a969c1
Added CI configuration
ci/woodpecker/push/woodpecker Pipeline failed Details
2022-01-02 11:00:02 +01:00
Jef Roosens 41f72f3204
Added first version of PKGBUILD 2022-01-02 10:39:19 +01:00
Jef Roosens 01f86e5c2a
Merge branch 'master' of git://git.suckless.org/st 2022-01-02 10:15:56 +01:00
jamin 65f1dc4283 Fix overtyping wide characters.
Overtyping the first half of a wide character with the
second half of a wide character results in display garbage.
This is because the trailing dummy is not cleaned up.

i.e.  ATTR_WIDE, ATTR_WDUMMY, ATTR_WDUMMY

Here is a short script for demonstrating the behavior:

	#!/bin/sh
	alias printf=/usr/bin/printf
	printf こんにちは!; sleep 2
	printf '\x1b[5D'; sleep 2
	printf へ; sleep 2
	printf ' '; sleep 2
	echo
2021-12-30 18:37:17 +01:00
Jochen Sprickerhof a0467c802d Fix null pointer access in strhandle
According to the spec the argument is optional for 104, so p can be
NULL as can be tested with printf '\x1b]104\x07'. This is a regression
of 8e31030.
2021-12-27 13:07:11 +01:00
Hiltjo Posthuma 273db5ceaf follow-up fix for OSC color sequences, return
Otherwise the message "erresc: unknown str" is printed.
2021-12-26 19:00:41 +01:00
Raheman Vaiya 8e31030390 Add support for OSC color sequences 2021-12-26 18:57:44 +01:00
Jef Roosens 95ccc62779
Merge remote-tracking branch 'upstream/master' 2021-09-22 16:04:19 +02:00
Hiltjo Posthuma 2f6e597ed8 fix possible rare crash when Xutf8TextPropertyToTextList fails
from the XmbTextListToTextProperty(3) man page:

"If insufficient memory is available for the new value string, the functions
return XNoMemory.  If the current locale is not supported, the functions return
XLocaleNotSupported.  In both of these error cases, the functions do not set
text_prop_return."

Reported by Steffen Nurpmeso <steffen@sdaoden.eu>, thanks!
2021-08-24 13:44:35 +02:00
Koichi Murase 1d3142da96 fix a problem that the standard streams are unexpectedly closed
In the current implementation, the slave PTY (assigned to the variable
`s') is always closed after duplicating it to file descriptors of
standard streams (0, 1, and 2).  However, when the allocated slave PTY
`s' is already one of 0, 1, or 2, this causes unexpected closing of a
standard stream.  The same problem occurs when the file descriptor of
the master PTY (the variable `m') is one of 0, 1, or 2.

In this patch, the original master PTY (m) is closed before it would
be overwritten by duplicated slave PTYs.  The original slave PTY (s)
is closed only when it is not one of the stanrad streams.
2021-08-24 13:30:11 +02:00
Petar Kapriš 2ec571a30c Add 14th bit to XK_SWITCH_MOD bitmask
The bits of uint signal in an XKeyEvent which concern the key group (keyboard
layout) are bits 13 and 14, as documented here:
https://www.x.org/releases/X11R7.7/doc/libX11/XKB/xkblib.html#Groups_and_Shift_Levels
In the older version, only bit 13 was marked as part of XK_SWITCH_MOD, this
causes issues for users who have more than two keymaps. the 14th bit is not
in ignoremod, key sequences are not caught by match(), if they switch to a third
or fourth keyboard.
2021-07-18 11:44:56 +02:00
Markus F.X.J. Oberhumer 4536f46cff Mild const-correctness improvements.
Only touch a few things, the main focus is to
improve code readability.
2021-05-06 18:21:10 +02:00
Hiltjo Posthuma 9e68fdbcdb fix: correctly encode mouse buttons >= 8 in X10 and SGR mode
These are typically mapped in X11 to the side-buttons (backward/forwards) on
the mouse. A comparison of the button numbers in SGR mode (first field):

st old:
0 1 2 64 65 66 67 68 69 70

st new (it is the same as xterm now):
0 1 2 64 65 66 67 128 129 130

A script to test and reproduce it, first argument is "h" (on) or "l" (off):

	#!/bin/sh
	printf '\x1b[?1000%s\x1b[?1006%s' "$1" "$1"

	for n in 1 2 3 4 5 6 7 8 9 10; do
		printf 'button %d\n' "$n"
		xdotool click "$n"
		printf '\n\n'
	done
2021-03-19 11:58:59 +01:00
Hiltjo Posthuma 4ef0cbd8b9 remove unused variable from previous patch 2020-10-18 11:18:03 +02:00
John Collis 28b4c822c5 ST: Add WM_ICON_NAME property support
Also added _NET_WM_ICON_NAME.
2020-10-18 11:17:11 +02:00
Jef Roosens 63733ff8da Added solarized theme 2020-08-22 17:42:30 +02:00
Jef Roosens 2c22d95d5b Added mouse & keys scrollback 2020-08-22 17:26:25 +02:00
Jef Roosens 9537484ded Added disappearing cursor 2020-08-22 17:01:04 +02:00
Jef Roosens d391a7831a Added fallback font support 2020-08-22 16:47:46 +02:00
Jef Roosens cc114781d3 Added ligature support 2020-08-22 16:44:37 +02:00
Jef Roosens 723b8d85ed Added boxdraw patch 2020-08-22 14:36:06 +02:00
Jef Roosens e71df0c4d8 Removed final binary from repo 2020-08-22 14:23:43 +02:00
Jef Roosens 753e707b38 Switched to Fira Code font 2020-08-22 14:23:14 +02:00
jef c00b5dbbe1 Added anysize & clipboard patch 2020-06-21 08:41:58 +02:00
Hiltjo Posthuma fa253f077f bump version to 0.8.4 2020-06-19 11:27:17 +02:00
Hiltjo Posthuma b27a383a3a config.mk: use PKG_CONFIG in commented OpenBSD section 2020-06-17 23:49:40 +02:00
Hiltjo Posthuma 81067c65ea LICENSE: bump years 2020-06-17 23:49:40 +02:00
Hiltjo Posthuma f74a9df6e1 remove sixel stub code
Remove stub code that was used for an experiment of adding sixel code to st
from the commit f7398434.
2020-06-17 23:49:22 +02:00
Hiltjo Posthuma 818ec746f4 fix unicode glitch in DCS strings, patch by Tim Allen
Reported on the mailinglist:

"
I discovered recently that if an application running inside st tries to
send a DCS string, subsequent Unicode characters get messed up. For
example, consider the following test-case:

    printf '\303\277\033P\033\\\303\277'

...where:

  - \303\277 is the UTF-8 encoding of U+00FF LATIN SMALL LETTER Y WITH
    DIAERESIS (ÿ).
  - \033P is ESC P, the token that begins a DCS string.
  - \033\\ is ESC \, a token that ends a DCS string.
  - \303\277 is the same ÿ character again.

If I run the above command in a VTE-based terminal, or xterm, or
QTerminal, or pterm (PuTTY), I get the output:

    ÿÿ

...which is to say, the empty DCS string is ignored. However, if I run
that command inside st (as of commit 9ba7ecf), I get:

    ÿÿ

...where those last two characters are \303\277 interpreted as ISO8859-1
characters, instead of UTF-8.

I spent some time tracing through the state machines in st.c, and so far
as I can tell, this is how it works currently:

  - ESC P sets the "ESC_DCS" and "ESC_STR" flags, indicating that
    incoming bytes should be collected into the strescseq buffer, rather
    than being interpreted.
  - ESC \ sets the "ESC_STR_END" flag (when ESC is received), and then
    calls strhandle() (when \ is received) to interpret the collected
    bytes.
  - If the collected bytes begin with 'P' (i.e. if this was a DCS
    string) strhandle() sets the "ESC_DCS" flag again, confusing the
    state machine.

If my understanding is correct, fixing the problem should be as easy as
removing the line that sets ESC_DCS from strhandle():

diff --git a/st.c b/st.c
index ef8abd5..b5b805a 100644
--- a/st.c
+++ b/st.c
@@ -1897,7 +1897,6 @@ strhandle(void)
		xsettitle(strescseq.args[0]);
		return;
	case 'P': /* DCS -- Device Control String */
-		term.mode |= ESC_DCS;
	case '_': /* APC -- Application Program Command */
	case '^': /* PM -- Privacy Message */
		return;

I've tried the above patch and it fixes my problem, but I don't know if
it introduces any others.
"
2020-06-17 21:35:39 +02:00