Commit graph

1384 commits

Author SHA1 Message Date
Andy Gozas
513536a47a
Fix buffer overflow in input handling
kpress function in x.c previously relied on the wrong understanding
of XmbLookupString behavior. When the composed string is longer
than the available buffer, the buffer is not initialized and the
actual length of the data available to read is returned, not
the amount of data written. When that amount is later used to
process the contents of this buffer, not only will the random
contents of the uninitialized buffer be sent directly to the
terminal and whichever application is now running in it, but
possibly also whatever is in the memory after that buffer,
leading to undefined behavior and possible random command execution.
2022-08-28 22:01:47 +00:00
Luke Smith
ebf6f66fe1 remove flase upstream manual entries 2022-08-15 08:05:02 -04:00
Luke Smith
6f33b1ba55 Merge branch 'equwal-lukesmith-0.8.5' 2022-08-15 08:02:47 -04:00
Luke Smith
5858b22bef ch 2022-08-15 08:02:37 -04:00
Luke Smith
a63ef65ef1 Merge branch 'lukesmith-0.8.5' of https://github.com/equwal/st into equwal-lukesmith-0.8.5 2022-08-15 07:55:34 -04:00
Luke Smith
2e2d560516 colons in urls 2022-08-15 07:55:26 -04:00
Spenser Truex
f5b5452eac Merge latest suckless build into lukesmith-0.8.5
Includes the 0.8.5 version bump, which is great since many of the
patches have already been updated to here too.
2022-08-15 01:54:18 -03:00
Luke Smith
1455fedf56
Merge pull request #334 from kronikpillow/default-font
change default font to a installed one
2022-06-28 13:54:01 +00:00
Dejan Kutle
9371089cb6
change default font to a installed one 2022-06-24 09:57:26 +02:00
Luke Smith
713545c1fc fix #333 2022-06-20 10:57:55 -04:00
Hiltjo Posthuma
baa9357e96 Makefile: add manual path for OpenBSD 2022-05-01 18:38:40 +02:00
NRK
8629d9a1da code-golfing: cleanup osc color related code
* adds missing function prototype
* move xgetcolor() prototype to win.h (that's where all the other x.c
  func prototype seems to be declared at)
* check for snprintf error/truncation
* reduces code duplication for osc 10/11/12
* unify osc_color_response() and osc4_color_response() into a single function

the latter two was suggested by Quentin Rameau in his patch review on
the hackers list.
2022-04-19 11:43:37 +02:00
Luke Smith
3144a61c18
remove problematic and obsolete git lines 2022-04-18 19:59:59 -04:00
NRK
ef0551932f base64_digits: reduce scope, implicit zero, +1 size
the array is not accessed outside of base64dec() so it makes sense to
limit it's scope to the related function. the static-storage duration of
the array is kept intact.

this also removes unnecessary explicit zeroing from the start and end of
the array. anything that wasn't explicitly zero-ed will now be
implicitly zero-ed instead.

the validity of the new array can be easily confirmed via running this
trivial loop:

	for (int i = 0; i < 255; ++i)
		assert(base64_digits[i] == base64_digits_old[i]);

lastly, as pointed out by Roberto, the array needs to have 256 elements
in order to able access it as any unsigned char as an index; the
previous array had 255.

however, this array will only be accessed at indexes which are
isprint() || '=' (see `base64dec_getc()`), so reducing the size of the
array to the highest printable ascii char (127 AFAIK) + 1 might also be
a valid strategy.
2022-03-18 12:20:27 +01:00
NRK
af3bb68add avoid potential UB when using isprint()
all the ctype.h functions' argument must be representable as an unsigned
char or as EOF, otherwise the behavior is undefined.
2022-03-18 12:11:27 +01:00
Zacchary Dempsey-Plante
2aefa348ba make underlines and strikethroughs respect chscale 2022-03-13 10:45:34 +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
Luke Smith
9cabe89a11
Merge branch 'fakhriaunur-master' 2022-01-21 23:00:57 -05: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
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
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
fakhriaunur
fc6581c1b0
Update hb.c
Change the default state to disabled (uncomment the latter).
Clean the unused commented lines.
2021-09-07 18:08:10 +07:00
fakhriaunur
a3e807043e
Add stylistic sets / open type font feature
Using stylistic set hb_feature code from cog1to's patch.
Tested on Fira Code font.

Enable/disable the feature within this file, and then sudo make install as usual.
2021-09-07 13:18:11 +07: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
Luke Smith
e053bd6036
prevent losing columns on resize 2021-08-10 17:25:48 -04: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
Luke Smith
0af4782a47
Merge pull request #304 from monosans/master
Remove scroll info from README.md
2021-06-03 08:09:51 -04:00
monosans
abfbfb6b00 Remove scroll info from README.md 2021-06-03 14:46:08 +03:00
Luke Smith
ecd5e3f798
Merge pull request #296 from zMoooooritz/alpha
Add support for additional alpha when the term-window is not focused
2021-05-21 08:44:26 -04:00
Luke Smith
140f27565b
fix #301 2021-05-21 08:43:39 -04: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
Moritz Biering
bb56685063 Use the additional alpha-value as offset to support a changing alpha properly 2021-05-06 14:41:36 +02:00
Moritz Biering
69925ee23b Add support for additional alpha when the term-window is not focused 2021-05-05 21:23:37 +02:00
Luke Smith
7e6e779130
externalpipe all scrollback history 2021-04-05 17:46:09 -04:00
Luke Smith
4cd9bbae3e
scroll removed 2021-04-05 09:31:07 -04:00
Luke Smith
ed60a20a11
Merge branch 'master' of github.com:LukeSmithxyz/st 2021-04-05 09:27:08 -04:00
Luke Smith
60add40bd1
revert to older, better scrollback patch, fix #284, #289 2021-04-05 09:26:55 -04: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
Luke Smith
d2e4ab7e86
Merge pull request #282 from sahidvelji/make-uninstall
Uninstall scroll when uninstalling st
2021-03-08 10:40:22 -05:00
Sahid Velji
6aee0d97ed Uninstall scroll when uninstalling st 2021-03-08 10:31:37 -05:00
Luke Smith
67ef1c4d4e
remove final punctuation from possible urls 2021-03-03 21:39:35 -05:00
Luke Smith
ebb7b6c96a
Xdefaults example restored, close #278 2021-02-19 10:50:35 -05:00
Luke Smith
03fe8634cd
scroll update, fixes #274 2021-02-06 17:21:10 -05:00