Commit Graph

1303 Commits

Author SHA1 Message Date
Ashish Kumar Yadav a9a0f9b66c Upstream update ef0551932fb162f907b40185d2f48c3b497708ee
Author: NRK <nrk@disroot.org>
    Date:   Fri Mar 18 17:03:34 2022 +0600

    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-23 02:17:58 +05:30
Ashish Kumar Yadav cf784c1db7 Upstream update af3bb68add1c40d19d0dee382009e21b0870a38f
Author: NRK <nrk@disroot.org>
    Date:   Fri Mar 18 16:20:54 2022 +0600

    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-23 02:15:12 +05:30
Ashish Kumar Yadav 1154978c55 Upstream update 2aefa348baf4b702fdce98eb105bcba175d8283f
Author: Zacchary Dempsey-Plante <zacc@ztdp.ca>
    Date:   Sun Mar 13 10:44:08 2022 +0100

    make underlines and strikethroughs respect `chscale`
2022-03-23 02:12:37 +05:30
Ashish Kumar Yadav 3df2c4893e Upstream update e823e2308f2a99023032a3966ebb7036a31d305f
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-27 02:14:48 +05:30
Ashish Kumar Yadav b259114879 Upstream update 2c5edf28ec851907305d73c6218ce75d39f1767f
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date:   Wed Jan 12 09:44:27 2022 +0100

X10/SGR mouse: use alt as meta key instead of super/windows key
2022-01-20 20:31:22 +05:30
Ashish Kumar Yadav 8becd85927 Upstream update ea7cd7b62fdfa6a1fbd882d1565d557577f2cf32
Author: robert <robertrussell.72001@gmail.com>
Date: Sat Jan 8 11:40:34 2022 -0800

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-20 20:29:29 +05:30
Ashish Kumar Yadav fd43b7ccb0 Fixed typo in PKGBUILD 2022-01-18 12:29:10 +05:30
Ashish Kumar Yadav 1258eda7bd Bump version to 0.8.5 2022-01-08 00:09:33 +05:30
Ashish Kumar Yadav bd9e2beac7 Upstream 7e1c68f25d9f08687a94eeef8d7f8ffd0d14b911
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date:   Sun Jan 2 12:15:45 2022 +0100

FAQ: fix a typo, patch -> path
2022-01-05 21:13:32 +05:30
Ashish Kumar Yadav 4714fdc9bf Upstream commit 65f1dc428315ae9d7f362e10c668557c1379e7af
Author: jamin <acdimalev@gmail.com>
Date:   Wed Dec 29 09:07:17 2021 -0800

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
2022-01-05 21:12:17 +05:30
Ashish Kumar Yadav 43cc346637 Updated TODO 2021-12-28 23:53:20 +05:30
Ashish Kumar Yadav a6b07ad3bd Upstream Update
8e310303903792c010d03c046ba75f8b18f7d3a7
Add support for OSC color sequences

273db5ceaf392e68c2faf8f7dec14ea2e25e980d
follow-up fix for OSC color sequences, return

Otherwise the message "erresc: unknown str" is printed.

a0467c802d4f86ed162486e3453dd61181423902
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-28 14:37:57 +05:30
Ashish Kumar Yadav 8b7c67b591 Unnecessary after removal of tab copying 2021-12-27 23:58:55 +05:30
Ashish Kumar Yadav a6ed88b509 Reorderd glyph_attributes 2021-12-27 23:51:22 +05:30
Ashish Kumar Yadav 4c72575219 Removed the ability of copying tab characters
'\t' is for cursor movement, no point of workarounds to be able to copy
it. Anyway in alt screens like less and vim they are represented as ' '.
Not as useful as I thought while implementing.
2021-12-27 23:39:24 +05:30
Ashish Kumar Yadav bd4d655f69 Remove lingering ATTR_TDUMMY 2021-12-27 23:24:40 +05:30
Ashish Kumar Yadav b61b4529ce Removed unnecessary gp.state and GLYPH_*
Accomadated gp.state in gp.mode. This also fixes a bug introduced in the
text wrapping fix in the second last commit. gp.mode = GLYPH_SET might
have overwritten GLYPH_T* in gp.mode.
2021-12-27 23:12:22 +05:30
Ashish Kumar Yadav 5a5d33afa9 Fixed bug in and improved tab selsnapping 2021-12-26 21:14:36 +05:30
Ashish Kumar Yadav 558eda1214 Fixed two bugs - 1 text wrapping, 2 memory 2021-12-26 21:06:09 +05:30
Ashish Kumar Yadav 5dbb218d8b Fixed small bug in tgetline 2021-12-26 19:55:56 +05:30
Ashish Kumar Yadav 0dd12d9e02 Fix long standing bug
tswapscreen doesn't change term.dirty. Many others are unchanged. Be
careful with those.
2021-12-15 12:52:29 +05:30
Ashish Kumar Yadav d3c61342aa This hopefully completely fixes "letters disappear in nano" 2021-12-12 18:30:21 +05:30
Ashish Kumar Yadav 60d1e25445 Fixed bug in twritetab 2021-12-12 11:14:33 +05:30
Ashish Kumar Yadav 5296dee5e2 Consistency 2021-12-12 01:57:10 +05:30
Ashish Kumar Yadav 4160076bd0 Hopefully fixes 'Letters disappear in nano' issue
'\t' can also be used only for cursor movement.
2021-12-12 01:51:25 +05:30
Ashish Kumar Yadav a66a1b8e06 Cleanup - removed unnecessary duplication of code 2021-12-11 14:57:32 +05:30
Ashish Kumar Yadav bd304fa55e Fixed typo 2021-12-10 00:46:17 +05:30
Ashish Kumar Yadav ade8fcdfea Fixed bug due to my ignorance 2021-11-09 08:39:14 +05:30
Ashish Kumar Yadav d84cd16cb6 Cleanup - sigchld 2021-09-25 02:19:11 +05:30
Ashish Kumar Yadav 9b144c0242 Applied upstream update 2f6e597ed871cff91c627850d03152cae5f45779
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-30 22:25:14 +05:30
Ashish Kumar Yadav faebbe62fb Upstream update 1d3142da968da7f6f61f1c1708f39ca233eda150
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-30 22:21:13 +05:30
Ashish Kumar Yadav 4e9d5c5eb2 Fixed bug in ECS (CSI 'X') handling 2021-08-21 15:41:15 +05:30
Ashish Kumar Yadav 5f58eddfa1 Renamed RESIZEBUF to RESIZEBUFFER 2021-08-21 13:29:27 +05:30
Ashish Kumar Yadav 0c96426b5b Let selection disappear when something else is selected 2021-08-19 13:56:05 +05:30
Ashish Kumar Yadav 9bcf7aba0b Resolved unnecessary duplication of code - title and icontitle 2021-08-19 02:35:26 +05:30
Ashish Kumar Yadav d1cae57175 reset icon title as well 2021-08-19 01:05:56 +05:30
Ashish Kumar Yadav 296a17beb0 Added icon title back along with implementing stack for it 2021-08-16 23:37:13 +05:30
Ashish Kumar Yadav d39cc94c41 Fixed typo and styling consistency 2021-08-16 21:20:24 +05:30
Ashish Kumar Yadav 00c2de4ed6 Expanded worddelimiters for mutt links 2021-08-14 20:25:24 +05:30
Ashish Kumar Yadav 6e4b7e2110 Updated TODO 2021-08-14 01:37:04 +05:30
Ashish Kumar Yadav a30a17c9b3 Fixed a couple of bad typos in tdeletechar and tinsertblank 2021-08-13 23:07:01 +05:30
Ashish Kumar Yadav 24fbda099f Fixed typo/bug in regionselected 2021-08-13 18:57:57 +05:30
Ashish Kumar Yadav e4b95c9ba0 Cleanup 2021-08-13 18:45:57 +05:30
Ashish Kumar Yadav fc84ddafb9 Fixed st-pager
When quitting st instead of nvim, the file wasn't getting deleted
We are not forking st anyway so there is no point sticking to the hack.
2021-08-13 18:28:13 +05:30
Ashish Kumar Yadav dab4969479 Bug fix; cleanup
1) Fixed bug introduced in last commit in tdeletechar and tinsertchar

2) No need to use size_t in tscrollup, can mess up subtractions

3) Removed terasechar
2021-08-13 17:20:18 +05:30
Ashish Kumar Yadav 8eceb035f9 Bug fixes, cleanup and improvements
1) Implement regionselected (much more optimal for tclearregion than
   calling selected in a loop)

2) Removed redundant (escpecially after 1) tfullclear

3) tresetcursor only needed to be called once in treset

4) Removed necessity of LIMIT and SWAP in tclearregion by fixing the
   places from where it was called (tscrollup, tscrolldown and new
   terasechar)

5) Fixed bugs in CSI 'J', case 1 handling, tdeletechar and tinsertblank
   (Add reminder to send bugfix to upstream)
2021-08-13 16:06:28 +05:30
Ashish Kumar Yadav 233864428e Fixed low intensity bug in tfullclear 2021-08-13 04:37:25 +05:30
Ashish Kumar Yadav 9387074ce0 Small optimization 2021-08-13 01:09:39 +05:30
Ashish Kumar Yadav c8f300dd43 Consistency 2021-08-13 00:31:25 +05:30
Ashish Kumar Yadav 4f0721a0ef No term resets cursor when clearing alt screen 2021-08-13 00:20:21 +05:30