From 28b4c822c5c0acec300fdf15c6e3ede9f5e2335d Mon Sep 17 00:00:00 2001 From: John Collis Date: Sun, 6 Sep 2020 17:53:41 +1200 Subject: [PATCH 01/64] ST: Add WM_ICON_NAME property support Also added _NET_WM_ICON_NAME. --- st.c | 9 +++++++++ win.h | 1 + x.c | 16 +++++++++++++++- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/st.c b/st.c index 76b7e0d..ae7fa63 100644 --- a/st.c +++ b/st.c @@ -1844,6 +1844,7 @@ strhandle(void) { char *p = NULL, *dec; int j, narg, par; + static int winname = 0; term.esc &= ~(ESC_STR_END|ESC_STR); strparse(); @@ -1853,7 +1854,15 @@ strhandle(void) case ']': /* OSC -- Operating System Command */ switch (par) { case 0: + if (narg > 1) { + xsettitle(strescseq.args[1]); + xseticontitle(strescseq.args[1]); + } + return; case 1: + if (narg > 1) + xseticontitle(strescseq.args[1]); + return; case 2: if (narg > 1) xsettitle(strescseq.args[1]); diff --git a/win.h b/win.h index a6ef1b9..e6e4369 100644 --- a/win.h +++ b/win.h @@ -30,6 +30,7 @@ void xdrawline(Line, int, int, int); void xfinishdraw(void); void xloadcols(void); int xsetcolorname(int, const char *); +void xseticontitle(char *); void xsettitle(char *); int xsetcursor(int); void xsetmode(int, unsigned int); diff --git a/x.c b/x.c index 210f184..120e495 100644 --- a/x.c +++ b/x.c @@ -93,7 +93,7 @@ typedef struct { Window win; Drawable buf; GlyphFontSpec *specbuf; /* font spec buffer used for rendering */ - Atom xembed, wmdeletewin, netwmname, netwmpid; + Atom xembed, wmdeletewin, netwmname, netwmiconname, netwmpid; struct { XIM xim; XIC xic; @@ -1186,6 +1186,7 @@ xinit(int cols, int rows) xw.xembed = XInternAtom(xw.dpy, "_XEMBED", False); xw.wmdeletewin = XInternAtom(xw.dpy, "WM_DELETE_WINDOW", False); xw.netwmname = XInternAtom(xw.dpy, "_NET_WM_NAME", False); + xw.netwmiconname = XInternAtom(xw.dpy, "_NET_WM_ICON_NAME", False); XSetWMProtocols(xw.dpy, xw.win, &xw.wmdeletewin, 1); xw.netwmpid = XInternAtom(xw.dpy, "_NET_WM_PID", False); @@ -1579,6 +1580,19 @@ xsetenv(void) setenv("WINDOWID", buf, 1); } +void +xseticontitle(char *p) +{ + XTextProperty prop; + DEFAULT(p, opt_title); + + Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle, + &prop); + XSetWMIconName(xw.dpy, xw.win, &prop); + XSetTextProperty(xw.dpy, xw.win, &prop, xw.netwmiconname); + XFree(prop.value); +} + void xsettitle(char *p) { From 4ef0cbd8b9371f37f7d02ef37b5378b879e6b8bf Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Sun, 18 Oct 2020 11:18:03 +0200 Subject: [PATCH 02/64] remove unused variable from previous patch --- st.c | 1 - 1 file changed, 1 deletion(-) diff --git a/st.c b/st.c index ae7fa63..abbbe4b 100644 --- a/st.c +++ b/st.c @@ -1844,7 +1844,6 @@ strhandle(void) { char *p = NULL, *dec; int j, narg, par; - static int winname = 0; term.esc &= ~(ESC_STR_END|ESC_STR); strparse(); From 9e68fdbcdb06dfa3d23fe3a7a7f7b59e40e1ea2f Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Fri, 19 Mar 2021 11:54:36 +0100 Subject: [PATCH 03/64] 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 --- x.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/x.c b/x.c index 120e495..8bf998e 100644 --- a/x.c +++ b/x.c @@ -387,7 +387,9 @@ mousereport(XEvent *e) button = 3; } else { button -= Button1; - if (button >= 3) + if (button >= 7) + button += 128 - 7; + else if (button >= 3) button += 64 - 3; } if (e->xbutton.type == ButtonPress) { From 4536f46cfff50c66a115755def0155d8e246b02f Mon Sep 17 00:00:00 2001 From: "Markus F.X.J. Oberhumer" Date: Sun, 28 Mar 2021 21:16:59 +0200 Subject: [PATCH 04/64] Mild const-correctness improvements. Only touch a few things, the main focus is to improve code readability. --- st.c | 44 +++++++++++++++++++++++--------------------- st.h | 4 ++-- x.c | 6 +++--- 3 files changed, 28 insertions(+), 26 deletions(-) diff --git a/st.c b/st.c index abbbe4b..ebdf360 100644 --- a/st.c +++ b/st.c @@ -186,18 +186,18 @@ static void tputc(Rune); static void treset(void); static void tscrollup(int, int); static void tscrolldown(int, int); -static void tsetattr(int *, int); -static void tsetchar(Rune, Glyph *, int, int); +static void tsetattr(const int *, int); +static void tsetchar(Rune, const Glyph *, int, int); static void tsetdirt(int, int); static void tsetscroll(int, int); static void tswapscreen(void); -static void tsetmode(int, int, int *, int); +static void tsetmode(int, int, const int *, int); static int twrite(const char *, int, int); static void tfulldirt(void); static void tcontrolcode(uchar ); static void tdectest(char ); static void tdefutf8(char); -static int32_t tdefcolor(int *, int *, int); +static int32_t tdefcolor(const int *, int *, int); static void tdeftran(char); static void tstrsequence(uchar); @@ -226,10 +226,10 @@ static int iofd = 1; static int cmdfd; static pid_t pid; -static uchar utfbyte[UTF_SIZ + 1] = {0x80, 0, 0xC0, 0xE0, 0xF0}; -static uchar utfmask[UTF_SIZ + 1] = {0xC0, 0x80, 0xE0, 0xF0, 0xF8}; -static Rune utfmin[UTF_SIZ + 1] = { 0, 0, 0x80, 0x800, 0x10000}; -static Rune utfmax[UTF_SIZ + 1] = {0x10FFFF, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF}; +static const uchar utfbyte[UTF_SIZ + 1] = {0x80, 0, 0xC0, 0xE0, 0xF0}; +static const uchar utfmask[UTF_SIZ + 1] = {0xC0, 0x80, 0xE0, 0xF0, 0xF8}; +static const Rune utfmin[UTF_SIZ + 1] = { 0, 0, 0x80, 0x800, 0x10000}; +static const Rune utfmax[UTF_SIZ + 1] = {0x10FFFF, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF}; ssize_t xwrite(int fd, const char *s, size_t len) @@ -269,12 +269,14 @@ xrealloc(void *p, size_t len) } char * -xstrdup(char *s) +xstrdup(const char *s) { - if ((s = strdup(s)) == NULL) + char *p; + + if ((p = strdup(s)) == NULL) die("strdup: %s\n", strerror(errno)); - return s; + return p; } size_t @@ -518,7 +520,7 @@ selsnap(int *x, int *y, int direction) { int newx, newy, xt, yt; int delim, prevdelim; - Glyph *gp, *prevgp; + const Glyph *gp, *prevgp; switch (sel.snap) { case SNAP_WORD: @@ -591,7 +593,7 @@ getsel(void) { char *str, *ptr; int y, bufsize, lastx, linelen; - Glyph *gp, *last; + const Glyph *gp, *last; if (sel.ob.x == -1) return NULL; @@ -758,7 +760,7 @@ stty(char **args) } int -ttynew(char *line, char *cmd, char *out, char **args) +ttynew(const char *line, char *cmd, const char *out, char **args) { int m, s; @@ -1186,9 +1188,9 @@ tmoveto(int x, int y) } void -tsetchar(Rune u, Glyph *attr, int x, int y) +tsetchar(Rune u, const Glyph *attr, int x, int y) { - static char *vt100_0[62] = { /* 0x41 - 0x7e */ + static const char *vt100_0[62] = { /* 0x41 - 0x7e */ "↑", "↓", "→", "←", "█", "▚", "☃", /* A - G */ 0, 0, 0, 0, 0, 0, 0, 0, /* H - O */ 0, 0, 0, 0, 0, 0, 0, 0, /* P - W */ @@ -1300,7 +1302,7 @@ tdeleteline(int n) } int32_t -tdefcolor(int *attr, int *npar, int l) +tdefcolor(const int *attr, int *npar, int l) { int32_t idx = -1; uint r, g, b; @@ -1350,7 +1352,7 @@ tdefcolor(int *attr, int *npar, int l) } void -tsetattr(int *attr, int l) +tsetattr(const int *attr, int l) { int i; int32_t idx; @@ -1468,9 +1470,9 @@ tsetscroll(int t, int b) } void -tsetmode(int priv, int set, int *args, int narg) +tsetmode(int priv, int set, const int *args, int narg) { - int alt, *lim; + int alt; const int *lim; for (lim = args + narg; args < lim; ++args) { if (priv) { @@ -2020,7 +2022,7 @@ void tdumpline(int n) { char buf[UTF_SIZ]; - Glyph *bp, *end; + const Glyph *bp, *end; bp = &term.line[n][0]; end = &bp[MIN(tlinelen(n), term.col) - 1]; diff --git a/st.h b/st.h index 3d351b6..fa2eddf 100644 --- a/st.h +++ b/st.h @@ -91,7 +91,7 @@ void tnew(int, int); void tresize(int, int); void tsetdirtattr(int); void ttyhangup(void); -int ttynew(char *, char *, char *, char **); +int ttynew(const char *, char *, const char *, char **); size_t ttyread(void); void ttyresize(int, int); void ttywrite(const char *, size_t, int); @@ -109,7 +109,7 @@ size_t utf8encode(Rune, char *); void *xmalloc(size_t); void *xrealloc(void *, size_t); -char *xstrdup(char *); +char *xstrdup(const char *); /* config.h globals */ extern char *utmp; diff --git a/x.c b/x.c index 8bf998e..7186040 100644 --- a/x.c +++ b/x.c @@ -156,7 +156,7 @@ static void xresize(int, int); static void xhints(void); static int xloadcolor(int, const char *, Color *); static int xloadfont(Font *, FcPattern *); -static void xloadfonts(char *, double); +static void xloadfonts(const char *, double); static void xunloadfont(Font *); static void xunloadfonts(void); static void xsetenv(void); @@ -952,7 +952,7 @@ xloadfont(Font *f, FcPattern *pattern) } void -xloadfonts(char *fontstr, double fontsize) +xloadfonts(const char *fontstr, double fontsize) { FcPattern *pattern; double fontval; @@ -960,7 +960,7 @@ xloadfonts(char *fontstr, double fontsize) if (fontstr[0] == '-') pattern = XftXlfdParse(fontstr, False, False); else - pattern = FcNameParse((FcChar8 *)fontstr); + pattern = FcNameParse((const FcChar8 *)fontstr); if (!pattern) die("can't open font %s\n", fontstr); From 2ec571a30c0c3b1a17f6b3631c80d573582f59a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petar=20Kapri=C5=A1?= Date: Sun, 18 Jul 2021 00:14:00 +0200 Subject: [PATCH 05/64] 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. --- x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x.c b/x.c index 7186040..248d505 100644 --- a/x.c +++ b/x.c @@ -48,7 +48,7 @@ typedef struct { /* X modifiers */ #define XK_ANY_MOD UINT_MAX #define XK_NO_MOD 0 -#define XK_SWITCH_MOD (1<<13) +#define XK_SWITCH_MOD (1<<13|1<<14) /* function definitions used in config.h */ static void clipcopy(const Arg *); From 1d3142da968da7f6f61f1c1708f39ca233eda150 Mon Sep 17 00:00:00 2001 From: Koichi Murase Date: Tue, 24 Aug 2021 06:25:05 +0900 Subject: [PATCH 06/64] 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. --- st.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/st.c b/st.c index ebdf360..a9338e1 100644 --- a/st.c +++ b/st.c @@ -793,14 +793,15 @@ ttynew(const char *line, char *cmd, const char *out, char **args) break; case 0: close(iofd); + close(m); setsid(); /* create a new process group */ dup2(s, 0); dup2(s, 1); dup2(s, 2); if (ioctl(s, TIOCSCTTY, NULL) < 0) die("ioctl TIOCSCTTY failed: %s\n", strerror(errno)); - close(s); - close(m); + if (s > 2) + close(s); #ifdef __OpenBSD__ if (pledge("stdio getpw proc exec", NULL) == -1) die("pledge\n"); From 2f6e597ed871cff91c627850d03152cae5f45779 Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Tue, 24 Aug 2021 13:44:35 +0200 Subject: [PATCH 07/64] 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 , thanks! --- x.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/x.c b/x.c index 248d505..89786b8 100644 --- a/x.c +++ b/x.c @@ -1588,8 +1588,9 @@ xseticontitle(char *p) XTextProperty prop; DEFAULT(p, opt_title); - Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle, - &prop); + if (Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle, + &prop) != Success) + return; XSetWMIconName(xw.dpy, xw.win, &prop); XSetTextProperty(xw.dpy, xw.win, &prop, xw.netwmiconname); XFree(prop.value); @@ -1601,8 +1602,9 @@ xsettitle(char *p) XTextProperty prop; DEFAULT(p, opt_title); - Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle, - &prop); + if (Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle, + &prop) != Success) + return; XSetWMName(xw.dpy, xw.win, &prop); XSetTextProperty(xw.dpy, xw.win, &prop, xw.netwmname); XFree(prop.value); From 8e310303903792c010d03c046ba75f8b18f7d3a7 Mon Sep 17 00:00:00 2001 From: Raheman Vaiya Date: Sun, 26 Dec 2021 18:57:04 +0100 Subject: [PATCH 08/64] Add support for OSC color sequences --- config.def.h | 8 ++++-- st.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++- st.h | 3 ++ x.c | 13 +++++++++ 4 files changed, 100 insertions(+), 4 deletions(-) diff --git a/config.def.h b/config.def.h index 6f05dce..91ab8ca 100644 --- a/config.def.h +++ b/config.def.h @@ -120,6 +120,8 @@ static const char *colorname[] = { /* more colors can be added after 255 to use with DefaultXX */ "#cccccc", "#555555", + "gray90", /* default foreground colour */ + "black", /* default background colour */ }; @@ -127,9 +129,9 @@ static const char *colorname[] = { * Default colors (colorname index) * foreground, background, cursor, reverse cursor */ -unsigned int defaultfg = 7; -unsigned int defaultbg = 0; -static unsigned int defaultcs = 256; +unsigned int defaultfg = 258; +unsigned int defaultbg = 259; +unsigned int defaultcs = 256; static unsigned int defaultrcs = 257; /* diff --git a/st.c b/st.c index a9338e1..781dbf2 100644 --- a/st.c +++ b/st.c @@ -1842,6 +1842,42 @@ csireset(void) memset(&csiescseq, 0, sizeof(csiescseq)); } +void +osc4_color_response(int num) +{ + int n; + char buf[32]; + unsigned char r, g, b; + + if (xgetcolor(num, &r, &g, &b)) { + fprintf(stderr, "erresc: failed to fetch osc4 color %d\n", num); + return; + } + + n = snprintf(buf, sizeof buf, "\033]4;%d;rgb:%02x%02x/%02x%02x/%02x%02x\007", + num, r, r, g, g, b, b); + + ttywrite(buf, n, 1); +} + +void +osc_color_response(int index, int num) +{ + int n; + char buf[32]; + unsigned char r, g, b; + + if (xgetcolor(index, &r, &g, &b)) { + fprintf(stderr, "erresc: failed to fetch osc color %d\n", index); + return; + } + + n = snprintf(buf, sizeof buf, "\033]%d;rgb:%02x%02x/%02x%02x/%02x%02x\007", + num, r, r, g, g, b, b); + + ttywrite(buf, n, 1); +} + void strhandle(void) { @@ -1880,6 +1916,45 @@ strhandle(void) } } return; + case 10: + if (narg < 2) + break; + + p = strescseq.args[1]; + + if (!strcmp(p, "?")) + osc_color_response(defaultfg, 10); + else if (xsetcolorname(defaultfg, p)) + fprintf(stderr, "erresc: invalid foreground color: %s\n", p); + else + redraw(); + break; + case 11: + if (narg < 2) + break; + + p = strescseq.args[1]; + + if (!strcmp(p, "?")) + osc_color_response(defaultbg, 11); + else if (xsetcolorname(defaultbg, p)) + fprintf(stderr, "erresc: invalid background color: %s\n", p); + else + redraw(); + break; + case 12: + if (narg < 2) + break; + + p = strescseq.args[1]; + + if (!strcmp(p, "?")) + osc_color_response(defaultcs, 12); + else if (xsetcolorname(defaultcs, p)) + fprintf(stderr, "erresc: invalid cursor color: %s\n", p); + else + redraw(); + break; case 4: /* color set */ if (narg < 3) break; @@ -1887,7 +1962,10 @@ strhandle(void) /* FALLTHROUGH */ case 104: /* color reset, here p = NULL */ j = (narg > 1) ? atoi(strescseq.args[1]) : -1; - if (xsetcolorname(j, p)) { + + if (!strcmp(p, "?")) + osc4_color_response(j); + else if (xsetcolorname(j, p)) { if (par == 104 && narg <= 1) return; /* color reset without parameter */ fprintf(stderr, "erresc: invalid color j=%d, p=%s\n", diff --git a/st.h b/st.h index fa2eddf..519b9bd 100644 --- a/st.h +++ b/st.h @@ -111,6 +111,8 @@ void *xmalloc(size_t); void *xrealloc(void *, size_t); char *xstrdup(const char *); +int xgetcolor(int x, unsigned char *r, unsigned char *g, unsigned char *b); + /* config.h globals */ extern char *utmp; extern char *scroll; @@ -123,3 +125,4 @@ extern char *termname; extern unsigned int tabspaces; extern unsigned int defaultfg; extern unsigned int defaultbg; +extern unsigned int defaultcs; diff --git a/x.c b/x.c index 89786b8..8a16faa 100644 --- a/x.c +++ b/x.c @@ -799,6 +799,19 @@ xloadcols(void) loaded = 1; } +int +xgetcolor(int x, unsigned char *r, unsigned char *g, unsigned char *b) +{ + if (!BETWEEN(x, 0, dc.collen)) + return 1; + + *r = dc.col[x].color.red >> 8; + *g = dc.col[x].color.green >> 8; + *b = dc.col[x].color.blue >> 8; + + return 0; +} + int xsetcolorname(int x, const char *name) { From 273db5ceaf392e68c2faf8f7dec14ea2e25e980d Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Sun, 26 Dec 2021 19:00:41 +0100 Subject: [PATCH 09/64] follow-up fix for OSC color sequences, return Otherwise the message "erresc: unknown str" is printed. --- st.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/st.c b/st.c index 781dbf2..6783c2b 100644 --- a/st.c +++ b/st.c @@ -1928,7 +1928,7 @@ strhandle(void) fprintf(stderr, "erresc: invalid foreground color: %s\n", p); else redraw(); - break; + return; case 11: if (narg < 2) break; @@ -1941,7 +1941,7 @@ strhandle(void) fprintf(stderr, "erresc: invalid background color: %s\n", p); else redraw(); - break; + return; case 12: if (narg < 2) break; @@ -1954,7 +1954,7 @@ strhandle(void) fprintf(stderr, "erresc: invalid cursor color: %s\n", p); else redraw(); - break; + return; case 4: /* color set */ if (narg < 3) break; From a0467c802d4f86ed162486e3453dd61181423902 Mon Sep 17 00:00:00 2001 From: Jochen Sprickerhof Date: Mon, 27 Dec 2021 11:41:42 +0100 Subject: [PATCH 10/64] 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. --- st.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/st.c b/st.c index 6783c2b..de2dd0e 100644 --- a/st.c +++ b/st.c @@ -1960,10 +1960,10 @@ strhandle(void) break; p = strescseq.args[2]; /* FALLTHROUGH */ - case 104: /* color reset, here p = NULL */ + case 104: /* color reset */ j = (narg > 1) ? atoi(strescseq.args[1]) : -1; - if (!strcmp(p, "?")) + if (p && !strcmp(p, "?")) osc4_color_response(j); else if (xsetcolorname(j, p)) { if (par == 104 && narg <= 1) From 65f1dc428315ae9d7f362e10c668557c1379e7af Mon Sep 17 00:00:00 2001 From: jamin Date: Wed, 29 Dec 2021 09:07:17 -0800 Subject: [PATCH 11/64] Fix overtyping wide characters. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- st.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/st.c b/st.c index de2dd0e..51049ba 100644 --- a/st.c +++ b/st.c @@ -2507,6 +2507,10 @@ check_control_code: if (width == 2) { gp->mode |= ATTR_WIDE; if (term.c.x+1 < term.col) { + if (gp[1].mode == ATTR_WIDE && term.c.x+2 < term.col) { + gp[2].u = ' '; + gp[2].mode &= ~ATTR_WDUMMY; + } gp[1].u = '\0'; gp[1].mode = ATTR_WDUMMY; } From 41f72f3204054fe9a9b6aac8ba9f340beb405f62 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Sun, 2 Jan 2022 10:39:19 +0100 Subject: [PATCH 12/64] Added first version of PKGBUILD --- .gitignore | 3 +++ PKGBUILD | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ config.mk | 2 +- 3 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 PKGBUILD diff --git a/.gitignore b/.gitignore index 9d8af76..8068c9a 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,6 @@ st *.rej *.orig +src/ +pkg/ +*.tar* diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000..08c7be7 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,53 @@ +# Maintainer: Jef Roosens + +pkgname=jjr-st +pkgver=1.0.0 +pkgrel=1 +pkgdesc="My build of the st terminal" +arch=("x86_64") + +url="https://git.rustybever.be/Chewing_Bever/st" +license=("MIT") + +depends=("libxft") +makedepends=("clang") +provides=("st") +conflicts=("st" "st-git") + +source=("arg.h" "boxdraw.c" "boxdraw.o" "boxdraw_data.h" "config.def.h" "config.h" "config.mk" "hb.c" "hb.h" "hb.o" "LICENSE" "Makefile" "st.1" "st.c" "st.h" "st.info" "win.h" "x.c" "x.o" "README") +md5sums=('7a0155e070d14041f69ca4466aad18bf' + '67a7923385b308ab714a66a81e2803f5' + '977a6000f83c90e69b2dde8288128dcf' + '54322cef62604ce8c288b3d2d20f1baa' + 'ce86c3890ce6cc520f7d895c44089a7e' + '34a60a679fdc80ab649982ca014b8883' + '1b17a98e945baec7837087e219df4ec1' + 'f6fcbd03c6f1013e4f592278bf96086d' + '704b67624d026f76577ce51d021ef00a' + 'b581e688384ca1f3d93c18e6933e3f9d' + '04c3ca13a702147c62db90f556c5b3ca' + '84025d924d1ddf176f8dc028bc5f6453' + 'bafec1da6c9f80fffd25dd5a85004b42' + 'ef77a180cc99be9226e8296e5ae3ada5' + '4f1e1612b1e43442b34bb0fb44254af0' + '0cbfe790d927cce15ae8e658de03f8aa' + 'ab9cbb2f172fd88c3c0d8a87eb7bd666' + '63ed863d96f9571cbdb50664b3e70001' + '661a69b61e9da7b94bb0e4abd22fe365' + 'd344c31a3b60c2a3ba1c84b914dd2509') + +build() { + make +} + +package() { + local installopts='--mode 0644 -D --target-directory' + local shrdir="$pkgdir/usr/share" + local licdir="$shrdir/licenses/$pkgname" + local docdir="$shrdir/doc/$pkgname" + make PREFIX=/usr DESTDIR="$pkgdir" install + install $installopts "$licdir" "LICENSE" + install $installopts "$docdir" "README" + # install $installopts "$docdir" README.terminfo.rst + # install $installopts "$shrdir/$pkgname" "$_sourcedir/st.info" +} diff --git a/config.mk b/config.mk index 8adb05d..0ff59fc 100644 --- a/config.mk +++ b/config.mk @@ -34,4 +34,4 @@ STLDFLAGS = $(LIBS) $(LDFLAGS) # `$(PKG_CONFIG) --libs freetype2` # compiler and linker -# CC = c99 +CC = clang From 4551a969c1be3e66747608fe7b8a3df479907d92 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Sun, 2 Jan 2022 11:00:02 +0100 Subject: [PATCH 13/64] Added CI configuration --- .woodpecker.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .woodpecker.yml diff --git a/.woodpecker.yml b/.woodpecker.yml new file mode 100644 index 0000000..40740c6 --- /dev/null +++ b/.woodpecker.yml @@ -0,0 +1,26 @@ +when: + branch: master + event: push + +pipeline: + build: + image: 'archlinux:latest' + commands: + # Update packages + - pacman -Syu --needed --noconfirm base-devel + # Create non-root user to perform build & switch to their home + - groupadd -g 1000 builder + - useradd -mg builder builder + - chown -R builder:builder "$PWD" + - "echo 'builder ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers" + - su builder + # Build the package + - MAKEFLAGS="-j$(nproc)" makepkg -s --noconfirm --needed + + publish: + image: 'archlinux:latest' + commands: + # Publish the package + - 'curl -F "file=@$(ls *.pkg*)" -H "X-API-KEY: $API_KEY" https://pkgs.rustybever.be/api/publish' + secrets: + - api_key From db273781b24612c8d1f2c852468bdd77d313b6e2 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Sun, 2 Jan 2022 11:02:36 +0100 Subject: [PATCH 14/64] Updated ci restrictions --- .woodpecker.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index 40740c6..c27bbef 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -1,5 +1,6 @@ +branches: master + when: - branch: master event: push pipeline: From 7e1c68f25d9f08687a94eeef8d7f8ffd0d14b911 Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Sun, 2 Jan 2022 12:15:45 +0100 Subject: [PATCH 15/64] FAQ: fix a typo, patch -> path --- FAQ | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FAQ b/FAQ index 0f9609d..969b195 100644 --- a/FAQ +++ b/FAQ @@ -29,8 +29,8 @@ you can manually run `tic -sx st.info`. ## I would like to have utmp and/or scroll functionality by default -You can add the absolute patch of both programs in your config.h -file. You only have to modify the value of utmp and scroll variables. +You can add the absolute path of both programs in your config.h file. You only +have to modify the value of utmp and scroll variables. ## Why doesn't the Del key work in some programs? From 7fb0c0cc681f36be2ad12091ef93a41671f32738 Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Fri, 7 Jan 2022 12:39:57 +0100 Subject: [PATCH 16/64] bump version to 0.8.5 --- config.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.mk b/config.mk index c070a4a..4c4c5d5 100644 --- a/config.mk +++ b/config.mk @@ -1,5 +1,5 @@ # st version -VERSION = 0.8.4 +VERSION = 0.8.5 # Customize below to fit your system From c6cb2bc12d58db74e43d02e1a0b718f8b1dddf1a Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Fri, 7 Jan 2022 21:58:15 +0100 Subject: [PATCH 17/64] Changed to right PKGBUILD version --- PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PKGBUILD b/PKGBUILD index 08c7be7..4c43b8a 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: Jef Roosens pkgname=jjr-st -pkgver=1.0.0 +pkgver=0.8.4 pkgrel=1 pkgdesc="My build of the st terminal" arch=("x86_64") From 2210dbf3fe852821dd5325003923328d067d34c6 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Fri, 7 Jan 2022 21:59:17 +0100 Subject: [PATCH 18/64] Updated PKGBUILD version --- PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PKGBUILD b/PKGBUILD index 4c43b8a..2335256 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: Jef Roosens pkgname=jjr-st -pkgver=0.8.4 +pkgver=0.8.5 pkgrel=1 pkgdesc="My build of the st terminal" arch=("x86_64") From c13646bbb8a6392cc657e5e282a9fb059240ff59 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Fri, 7 Jan 2022 22:02:53 +0100 Subject: [PATCH 19/64] Updated md5sums --- PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PKGBUILD b/PKGBUILD index 2335256..f18944c 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -21,7 +21,7 @@ md5sums=('7a0155e070d14041f69ca4466aad18bf' '54322cef62604ce8c288b3d2d20f1baa' 'ce86c3890ce6cc520f7d895c44089a7e' '34a60a679fdc80ab649982ca014b8883' - '1b17a98e945baec7837087e219df4ec1' + 'db3ef406027a4e75e6ddb50b986caa52' 'f6fcbd03c6f1013e4f592278bf96086d' '704b67624d026f76577ce51d021ef00a' 'b581e688384ca1f3d93c18e6933e3f9d' From 41364111da70de97c7023ae695605161dc6ed9d0 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Fri, 7 Jan 2022 22:06:53 +0100 Subject: [PATCH 20/64] Removed object files from PKGBUILD sources list --- PKGBUILD | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/PKGBUILD b/PKGBUILD index f18944c..252b4dc 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -14,17 +14,15 @@ makedepends=("clang") provides=("st") conflicts=("st" "st-git") -source=("arg.h" "boxdraw.c" "boxdraw.o" "boxdraw_data.h" "config.def.h" "config.h" "config.mk" "hb.c" "hb.h" "hb.o" "LICENSE" "Makefile" "st.1" "st.c" "st.h" "st.info" "win.h" "x.c" "x.o" "README") +source=("arg.h" "boxdraw.c" "boxdraw_data.h" "config.def.h" "config.h" "config.mk" "hb.c" "hb.h" "LICENSE" "Makefile" "st.1" "st.c" "st.h" "st.info" "win.h" "x.c" "README") md5sums=('7a0155e070d14041f69ca4466aad18bf' '67a7923385b308ab714a66a81e2803f5' - '977a6000f83c90e69b2dde8288128dcf' '54322cef62604ce8c288b3d2d20f1baa' 'ce86c3890ce6cc520f7d895c44089a7e' '34a60a679fdc80ab649982ca014b8883' 'db3ef406027a4e75e6ddb50b986caa52' 'f6fcbd03c6f1013e4f592278bf96086d' '704b67624d026f76577ce51d021ef00a' - 'b581e688384ca1f3d93c18e6933e3f9d' '04c3ca13a702147c62db90f556c5b3ca' '84025d924d1ddf176f8dc028bc5f6453' 'bafec1da6c9f80fffd25dd5a85004b42' @@ -33,7 +31,6 @@ md5sums=('7a0155e070d14041f69ca4466aad18bf' '0cbfe790d927cce15ae8e658de03f8aa' 'ab9cbb2f172fd88c3c0d8a87eb7bd666' '63ed863d96f9571cbdb50664b3e70001' - '661a69b61e9da7b94bb0e4abd22fe365' 'd344c31a3b60c2a3ba1c84b914dd2509') build() { From 3c62497033645848d471ec81d2e8769408d190a5 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Fri, 7 Jan 2022 22:22:11 +0100 Subject: [PATCH 21/64] Removed unnecessary border --- PKGBUILD | 2 +- config.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/PKGBUILD b/PKGBUILD index 252b4dc..cdfa8d9 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: Jef Roosens pkgname=jjr-st -pkgver=0.8.5 +pkgver=0.8.6 pkgrel=1 pkgdesc="My build of the st terminal" arch=("x86_64") diff --git a/config.h b/config.h index 6a01ab3..fd6daba 100644 --- a/config.h +++ b/config.h @@ -9,7 +9,7 @@ static char *font = "Fira Code:size=10:antialias=true;autohint=true"; static char *font2[] = { "Noto Color Emoji:size=10:antialias=true;autohint=true" }; -static int borderpx = 2; +static int borderpx = 0; float alpha = 0.7; /* Lines to move per scroll */ From b3dce446f12b3ae953b52a51b062d938d5cf0e16 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Fri, 7 Jan 2022 22:23:27 +0100 Subject: [PATCH 22/64] Forgot to update checksums again --- PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PKGBUILD b/PKGBUILD index cdfa8d9..5f46c1f 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -19,7 +19,7 @@ md5sums=('7a0155e070d14041f69ca4466aad18bf' '67a7923385b308ab714a66a81e2803f5' '54322cef62604ce8c288b3d2d20f1baa' 'ce86c3890ce6cc520f7d895c44089a7e' - '34a60a679fdc80ab649982ca014b8883' + 'a018a90da9a432abf64f53c5356cf055' 'db3ef406027a4e75e6ddb50b986caa52' 'f6fcbd03c6f1013e4f592278bf96086d' '704b67624d026f76577ce51d021ef00a' From 5920a16065a869e85fcf8bf86184fcd64e7b24fa Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Fri, 7 Jan 2022 23:14:16 +0100 Subject: [PATCH 23/64] Switched to -O3 optimisations --- PKGBUILD | 4 ++-- config.mk | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/PKGBUILD b/PKGBUILD index 5f46c1f..7de6402 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -2,7 +2,7 @@ pkgname=jjr-st pkgver=0.8.6 -pkgrel=1 +pkgrel=2 pkgdesc="My build of the st terminal" arch=("x86_64") @@ -20,7 +20,7 @@ md5sums=('7a0155e070d14041f69ca4466aad18bf' '54322cef62604ce8c288b3d2d20f1baa' 'ce86c3890ce6cc520f7d895c44089a7e' 'a018a90da9a432abf64f53c5356cf055' - 'db3ef406027a4e75e6ddb50b986caa52' + 'e218acce08fe5e32368acd62bf5aa646' 'f6fcbd03c6f1013e4f592278bf96086d' '704b67624d026f76577ce51d021ef00a' '04c3ca13a702147c62db90f556c5b3ca' diff --git a/config.mk b/config.mk index b194785..17fdfe4 100644 --- a/config.mk +++ b/config.mk @@ -1,5 +1,5 @@ # st version -VERSION = 0.8.5 +VERSION = 0.8.6 # Customize below to fit your system @@ -24,8 +24,9 @@ LIBS = -L$(X11LIB) -lm -lrt -lX11 -lutil -lXft -lXrender\ # flags STCPPFLAGS = -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=600 -STCFLAGS = $(INCS) $(STCPPFLAGS) $(CPPFLAGS) $(CFLAGS) -STLDFLAGS = $(LIBS) $(LDFLAGS) +CFLAGS = -O3 +STCFLAGS = $(INCS) $(STCPPFLAGS) $(CPPFLAGS) $(CFLAGS) +STLDFLAGS = $(LIBS) $(LDFLAGS) # OpenBSD: #CPPFLAGS = -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=600 -D_BSD_SOURCE From c853108d208fde2c2ad95a6a9d9d1a5fb97b2140 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Sat, 8 Jan 2022 12:13:56 +0100 Subject: [PATCH 24/64] Switched back to -O1 in fear of undefined behavior --- PKGBUILD | 4 ++-- config.mk | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/PKGBUILD b/PKGBUILD index 7de6402..0a53a6b 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -2,7 +2,7 @@ pkgname=jjr-st pkgver=0.8.6 -pkgrel=2 +pkgrel=3 pkgdesc="My build of the st terminal" arch=("x86_64") @@ -20,7 +20,7 @@ md5sums=('7a0155e070d14041f69ca4466aad18bf' '54322cef62604ce8c288b3d2d20f1baa' 'ce86c3890ce6cc520f7d895c44089a7e' 'a018a90da9a432abf64f53c5356cf055' - 'e218acce08fe5e32368acd62bf5aa646' + 'ad217c165bd7a52f3335ded5e863c509' 'f6fcbd03c6f1013e4f592278bf96086d' '704b67624d026f76577ce51d021ef00a' '04c3ca13a702147c62db90f556c5b3ca' diff --git a/config.mk b/config.mk index 17fdfe4..feff5d9 100644 --- a/config.mk +++ b/config.mk @@ -24,7 +24,7 @@ LIBS = -L$(X11LIB) -lm -lrt -lX11 -lutil -lXft -lXrender\ # flags STCPPFLAGS = -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=600 -CFLAGS = -O3 +CFLAGS = -O1 STCFLAGS = $(INCS) $(STCPPFLAGS) $(CPPFLAGS) $(CFLAGS) STLDFLAGS = $(LIBS) $(LDFLAGS) From ea7cd7b62fdfa6a1fbd882d1565d557577f2cf32 Mon Sep 17 00:00:00 2001 From: robert Date: Sat, 8 Jan 2022 11:40:34 -0800 Subject: [PATCH 25/64] 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. --- x.c | 86 ++++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 51 insertions(+), 35 deletions(-) diff --git a/x.c b/x.c index 8a16faa..5f4ea73 100644 --- a/x.c +++ b/x.c @@ -252,7 +252,7 @@ static char *opt_line = NULL; static char *opt_name = NULL; static char *opt_title = NULL; -static int oldbutton = 3; /* button event on startup: 3 = release */ +static uint buttons; /* bit field of pressed buttons */ void clipcopy(const Arg *dummy) @@ -364,61 +364,68 @@ mousesel(XEvent *e, int done) void mousereport(XEvent *e) { - int len, x = evcol(e), y = evrow(e), - button = e->xbutton.button, state = e->xbutton.state; + int len, btn, code; + int x = evcol(e), y = evrow(e); + int state = e->xbutton.state; char buf[40]; static int ox, oy; - /* from urxvt */ - if (e->xbutton.type == MotionNotify) { + if (e->type == MotionNotify) { if (x == ox && y == oy) return; if (!IS_SET(MODE_MOUSEMOTION) && !IS_SET(MODE_MOUSEMANY)) return; - /* MOUSE_MOTION: no reporting if no button is pressed */ - if (IS_SET(MODE_MOUSEMOTION) && oldbutton == 3) + /* MODE_MOUSEMOTION: no reporting if no button is pressed */ + if (IS_SET(MODE_MOUSEMOTION) && buttons == 0) return; - - button = oldbutton + 32; - ox = x; - oy = y; + /* Set btn to lowest-numbered pressed button, or 12 if no + * buttons are pressed. */ + for (btn = 1; btn <= 11 && !(buttons & (1<<(btn-1))); btn++) + ; + code = 32; } else { - if (!IS_SET(MODE_MOUSESGR) && e->xbutton.type == ButtonRelease) { - button = 3; - } else { - button -= Button1; - if (button >= 7) - button += 128 - 7; - else if (button >= 3) - button += 64 - 3; - } - if (e->xbutton.type == ButtonPress) { - oldbutton = button; - ox = x; - oy = y; - } else if (e->xbutton.type == ButtonRelease) { - oldbutton = 3; + btn = e->xbutton.button; + /* Only buttons 1 through 11 can be encoded */ + if (btn < 1 || btn > 11) + return; + if (e->type == ButtonRelease) { /* MODE_MOUSEX10: no button release reporting */ if (IS_SET(MODE_MOUSEX10)) return; - if (button == 64 || button == 65) + /* Don't send release events for the scroll wheel */ + if (btn == 4 || btn == 5) return; } + code = 0; } + ox = x; + oy = y; + + /* Encode btn into code. If no button is pressed for a motion event in + * MODE_MOUSEMANY, then encode it as a release. */ + if ((!IS_SET(MODE_MOUSESGR) && e->type == ButtonRelease) || btn == 12) + code += 3; + else if (btn >= 8) + code += 128 + btn - 8; + else if (btn >= 4) + code += 64 + btn - 4; + else + code += btn - 1; + if (!IS_SET(MODE_MOUSEX10)) { - button += ((state & ShiftMask ) ? 4 : 0) - + ((state & Mod4Mask ) ? 8 : 0) - + ((state & ControlMask) ? 16 : 0); + code += ((state & ShiftMask ) ? 4 : 0) + + ((state & Mod4Mask ) ? 8 : 0) + + ((state & ControlMask) ? 16 : 0); } if (IS_SET(MODE_MOUSESGR)) { len = snprintf(buf, sizeof(buf), "\033[<%d;%d;%d%c", - button, x+1, y+1, - e->xbutton.type == ButtonRelease ? 'm' : 'M'); + code, x+1, y+1, + e->type == ButtonRelease ? 'm' : 'M'); } else if (x < 223 && y < 223) { len = snprintf(buf, sizeof(buf), "\033[M%c%c%c", - 32+button, 32+x+1, 32+y+1); + 32+code, 32+x+1, 32+y+1); } else { return; } @@ -461,9 +468,13 @@ mouseaction(XEvent *e, uint release) void bpress(XEvent *e) { + int btn = e->xbutton.button; struct timespec now; int snap; + if (1 <= btn && btn <= 11) + buttons |= 1 << (btn-1); + if (IS_SET(MODE_MOUSE) && !(e->xbutton.state & forcemousemod)) { mousereport(e); return; @@ -472,7 +483,7 @@ bpress(XEvent *e) if (mouseaction(e, 0)) return; - if (e->xbutton.button == Button1) { + if (btn == Button1) { /* * If the user clicks below predefined timeouts specific * snapping behaviour is exposed. @@ -686,6 +697,11 @@ xsetsel(char *str) void brelease(XEvent *e) { + int btn = e->xbutton.button; + + if (1 <= btn && btn <= 11) + buttons &= ~(1 << (btn-1)); + if (IS_SET(MODE_MOUSE) && !(e->xbutton.state & forcemousemod)) { mousereport(e); return; @@ -693,7 +709,7 @@ brelease(XEvent *e) if (mouseaction(e, 1)) return; - if (e->xbutton.button == Button1) + if (btn == Button1) mousesel(e, 1); } From b1d97fec47b0d6633addb848131388ec40154ebc Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Mon, 10 Jan 2022 17:11:17 +0100 Subject: [PATCH 26/64] LICENSE: bump year --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index d80eb47..3cbf420 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT/X Consortium License -© 2014-2020 Hiltjo Posthuma +© 2014-2022 Hiltjo Posthuma © 2018 Devin J. Pohly © 2014-2017 Quentin Rameau © 2009-2012 Aurélien APTEL From 2c5edf28ec851907305d73c6218ce75d39f1767f Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Wed, 12 Jan 2022 09:44:27 +0100 Subject: [PATCH 27/64] X10/SGR mouse: use alt as meta key instead of super/windows key --- x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x.c b/x.c index 5f4ea73..cd96575 100644 --- a/x.c +++ b/x.c @@ -415,7 +415,7 @@ mousereport(XEvent *e) if (!IS_SET(MODE_MOUSEX10)) { code += ((state & ShiftMask ) ? 4 : 0) - + ((state & Mod4Mask ) ? 8 : 0) + + ((state & Mod1Mask ) ? 8 : 0) /* meta key: alt */ + ((state & ControlMask) ? 16 : 0); } From 6a8231388f6ba9406342f1a1b85dc8e216046a4c Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Wed, 2 Feb 2022 11:18:22 +0100 Subject: [PATCH 28/64] Switched to vieter server --- .woodpecker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index c27bbef..8e4f11d 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -22,6 +22,6 @@ pipeline: image: 'archlinux:latest' commands: # Publish the package - - 'curl -F "file=@$(ls *.pkg*)" -H "X-API-KEY: $API_KEY" https://pkgs.rustybever.be/api/publish' + - 'curl -s -XPOST -H "X-API-KEY: $API_KEY" -T "$(ls *.pkg*)" https://arch.r8r.be/publish' secrets: - api_key From e823e2308f2a99023032a3966ebb7036a31d305f Mon Sep 17 00:00:00 2001 From: Santtu Lakkala Date: Thu, 17 Feb 2022 16:00:47 +0200 Subject: [PATCH 29/64] 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. --- st.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/st.c b/st.c index 51049ba..c71fa06 100644 --- a/st.c +++ b/st.c @@ -1927,7 +1927,7 @@ strhandle(void) else if (xsetcolorname(defaultfg, p)) fprintf(stderr, "erresc: invalid foreground color: %s\n", p); else - redraw(); + tfulldirt(); return; case 11: if (narg < 2) @@ -1940,7 +1940,7 @@ strhandle(void) else if (xsetcolorname(defaultbg, p)) fprintf(stderr, "erresc: invalid background color: %s\n", p); else - redraw(); + tfulldirt(); return; case 12: if (narg < 2) @@ -1953,7 +1953,7 @@ strhandle(void) else if (xsetcolorname(defaultcs, p)) fprintf(stderr, "erresc: invalid cursor color: %s\n", p); else - redraw(); + tfulldirt(); return; case 4: /* color set */ if (narg < 3) @@ -1975,7 +1975,7 @@ strhandle(void) * TODO if defaultbg color is changed, borders * are dirty */ - redraw(); + tfulldirt(); } return; } From 3e676eadfbae95e8ee2b309172ea6f8c733cec32 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Sat, 5 Mar 2022 10:30:18 +0100 Subject: [PATCH 30/64] Added platform restriction to CI --- .woodpecker.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.woodpecker.yml b/.woodpecker.yml index 8e4f11d..4da8998 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -1,4 +1,5 @@ branches: master +platform: linux/amd64 when: event: push From c8b1194ad01e89c11866930708209ab566887808 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Sat, 5 Mar 2022 10:32:11 +0100 Subject: [PATCH 31/64] Switched back to gcc --- PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PKGBUILD b/PKGBUILD index 3a19dd4..4c9967e 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -9,8 +9,8 @@ arch=("x86_64") url="https://git.rustybever.be/Chewing_Bever/st" license=("MIT") -depends=("libxft") -makedepends=("clang") +depends=("glibc" "libxft") +makedepends=("gcc") provides=("st") conflicts=("st" "st-git") From 84b417c22ea6b9ddcb3c9fcbe03ecf31e502a744 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Sat, 5 Mar 2022 10:33:34 +0100 Subject: [PATCH 32/64] Forgot to switch back to cc --- config.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.mk b/config.mk index feff5d9..23cead8 100644 --- a/config.mk +++ b/config.mk @@ -35,4 +35,4 @@ STLDFLAGS = $(LIBS) $(LDFLAGS) # `$(PKG_CONFIG) --libs freetype2` # compiler and linker -CC = clang +CC = cc From ab3513a0522de4cbd248bc3da88d9d272008ae08 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Sat, 5 Mar 2022 10:34:38 +0100 Subject: [PATCH 33/64] Updated PKGBUILD checksums --- PKGBUILD | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/PKGBUILD b/PKGBUILD index 4c9967e..a3bcfe2 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -17,23 +17,23 @@ conflicts=("st" "st-git") source=("arg.h" "boxdraw.c" "boxdraw_data.h" "config.def.h" "config.h" "config.mk" "hb.c" "hb.h" "LICENSE" "Makefile" "st.1" "st.c" "st.h" "st.info" "win.h" "x.c" "README") -md5sums=('7a0155e070d14041f69ca4466aad18bf' - '67a7923385b308ab714a66a81e2803f5' - '54322cef62604ce8c288b3d2d20f1baa' - 'ce86c3890ce6cc520f7d895c44089a7e' - 'a018a90da9a432abf64f53c5356cf055' - 'ad217c165bd7a52f3335ded5e863c509' - 'f6fcbd03c6f1013e4f592278bf96086d' - '704b67624d026f76577ce51d021ef00a' - '703e9835709f45ee7b81082277f1daec' - '84025d924d1ddf176f8dc028bc5f6453' - 'bafec1da6c9f80fffd25dd5a85004b42' - 'dde058f89688f3039f8d3809c7b36c5d' - '4f1e1612b1e43442b34bb0fb44254af0' - '0cbfe790d927cce15ae8e658de03f8aa' - 'ab9cbb2f172fd88c3c0d8a87eb7bd666' - 'cf03cbcdf728f24bb276f67dca5ed3fd' - 'd344c31a3b60c2a3ba1c84b914dd2509') +sha256sums=('1a10fac42d03b3a1231cd6998a73fb4ab4f191694628953e7229f6de2053a985' + 'e8366b6b7840759157761b4d311028fa29b846f393b9e928a2587b3ac9bffdd1' + '808dbefe40e81b88da173985e1bd5c0a0d88d517b7cc1c6d68753e586ffe1698' + '49bff578b6c882123393c867689f4330d6ba7cfe85fe359ea7424b228b22970e' + '6fa7874b83e98a30e8c66c8f7d5539d1b2ec6c2267ef2c3945620826187b6b64' + '42a38096ce2dcd3c44142fbd54c8024e4762cc17073b81e83351f7bfc9d07948' + 'f4fae0ee42168f492ea59825928d1dbaceae5cf9e6fe2f820a429a68266000c7' + '4a133d16a818379ab849b41c30cb4b4f989a00c9b1e96907a4d130d12c36a79e' + '5c25b701b4482ccc8d5ea0770e553ad8a8c5c87650df07543b3b3f9456726d54' + '7398527a5e5cf9fd53f56dba332a2565c680058bc329c6bd08f623a813baab27' + '5b0d65d135fcc3d51f60e4fe4d86c5bbd1331266f9b38ecfb86914668c03921c' + '684c5bbcd7c657b55dfce156e881f93ef1ac05f3ebaab8912dbcb4b9b962ab6a' + '285b883ebd0884467be95562885f4cf594cd72cf7b4925476538483fe4022f39' + '2eb2f15957b8132a2d25129c24bb97f64657bd821447f36ef2cf0526b42846e8' + 'd30e818fb119a94f23aac1684f7c50bc1cd49cd3364472e0d17d195ecdcd9240' + '71386eb28230af38f55e22157e3a18c082b1be8dd25610f4b663253abc2ae799' + 'f767c242485eb537f0df13cbcc182980d29152a6e25036cf65f334fb3ae8b29e') build() { make From 276ba3336767f34e34bcb38f5e7fc32a564632a4 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Sat, 5 Mar 2022 10:36:04 +0100 Subject: [PATCH 34/64] Forgot to bump pkgrel --- PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PKGBUILD b/PKGBUILD index a3bcfe2..aef7351 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -2,7 +2,7 @@ pkgname=jjr-st pkgver=0.8.7 -pkgrel=1 +pkgrel=2 pkgdesc="My build of the st terminal" arch=("x86_64") From 2aefa348baf4b702fdce98eb105bcba175d8283f Mon Sep 17 00:00:00 2001 From: Zacchary Dempsey-Plante Date: Sun, 13 Mar 2022 10:44:08 +0100 Subject: [PATCH 35/64] make underlines and strikethroughs respect `chscale` --- x.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x.c b/x.c index cd96575..2a3bd38 100644 --- a/x.c +++ b/x.c @@ -1493,12 +1493,12 @@ xdrawglyphfontspecs(const XftGlyphFontSpec *specs, Glyph base, int len, int x, i /* Render underline and strikethrough. */ if (base.mode & ATTR_UNDERLINE) { - XftDrawRect(xw.draw, fg, winx, winy + dc.font.ascent + 1, + XftDrawRect(xw.draw, fg, winx, winy + dc.font.ascent * chscale + 1, width, 1); } if (base.mode & ATTR_STRUCK) { - XftDrawRect(xw.draw, fg, winx, winy + 2 * dc.font.ascent / 3, + XftDrawRect(xw.draw, fg, winx, winy + 2 * dc.font.ascent * chscale / 3, width, 1); } From af3bb68add1c40d19d0dee382009e21b0870a38f Mon Sep 17 00:00:00 2001 From: NRK Date: Fri, 18 Mar 2022 16:20:54 +0600 Subject: [PATCH 36/64] 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. --- st.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/st.c b/st.c index c71fa06..1307fdf 100644 --- a/st.c +++ b/st.c @@ -367,7 +367,7 @@ static const char base64_digits[] = { char base64dec_getc(const char **src) { - while (**src && !isprint(**src)) + while (**src && !isprint((unsigned char)**src)) (*src)++; return **src ? *((*src)++) : '='; /* emulate padding if string ends */ } From ef0551932fb162f907b40185d2f48c3b497708ee Mon Sep 17 00:00:00 2001 From: NRK Date: Fri, 18 Mar 2022 17:03:34 +0600 Subject: [PATCH 37/64] 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. --- st.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/st.c b/st.c index 1307fdf..f43cfd3 100644 --- a/st.c +++ b/st.c @@ -349,21 +349,6 @@ utf8validate(Rune *u, size_t i) return i; } -static const char base64_digits[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, - 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, 0, -1, 0, 0, 0, 0, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - char base64dec_getc(const char **src) { @@ -377,6 +362,13 @@ base64dec(const char *src) { size_t in_len = strlen(src); char *result, *dst; + static const char base64_digits[256] = { + [43] = 62, 0, 0, 0, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 0, 0, 0, -1, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, + 0, 0, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 + }; if (in_len % 4) in_len += 4 - (in_len % 4); From 6f9d603bf58cff6adf3b078dc034db2940f79075 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Sat, 19 Mar 2022 17:30:21 +0100 Subject: [PATCH 38/64] Bumped pkgver --- PKGBUILD | 8 ++++---- config.mk | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/PKGBUILD b/PKGBUILD index aef7351..eb68544 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,8 +1,8 @@ # Maintainer: Jef Roosens pkgname=jjr-st -pkgver=0.8.7 -pkgrel=2 +pkgver=0.8.8 +pkgrel=1 pkgdesc="My build of the st terminal" arch=("x86_64") @@ -22,13 +22,13 @@ sha256sums=('1a10fac42d03b3a1231cd6998a73fb4ab4f191694628953e7229f6de2053a985' '808dbefe40e81b88da173985e1bd5c0a0d88d517b7cc1c6d68753e586ffe1698' '49bff578b6c882123393c867689f4330d6ba7cfe85fe359ea7424b228b22970e' '6fa7874b83e98a30e8c66c8f7d5539d1b2ec6c2267ef2c3945620826187b6b64' - '42a38096ce2dcd3c44142fbd54c8024e4762cc17073b81e83351f7bfc9d07948' + '86613a3c3bd74fc44d364a4e611db1d93674b85351d2453e49a89e86304a1472' 'f4fae0ee42168f492ea59825928d1dbaceae5cf9e6fe2f820a429a68266000c7' '4a133d16a818379ab849b41c30cb4b4f989a00c9b1e96907a4d130d12c36a79e' '5c25b701b4482ccc8d5ea0770e553ad8a8c5c87650df07543b3b3f9456726d54' '7398527a5e5cf9fd53f56dba332a2565c680058bc329c6bd08f623a813baab27' '5b0d65d135fcc3d51f60e4fe4d86c5bbd1331266f9b38ecfb86914668c03921c' - '684c5bbcd7c657b55dfce156e881f93ef1ac05f3ebaab8912dbcb4b9b962ab6a' + '517dcc181f40aeb62ec35bcab0e7e51fd5a16d37331667c4dc9de68faf20a7a9' '285b883ebd0884467be95562885f4cf594cd72cf7b4925476538483fe4022f39' '2eb2f15957b8132a2d25129c24bb97f64657bd821447f36ef2cf0526b42846e8' 'd30e818fb119a94f23aac1684f7c50bc1cd49cd3364472e0d17d195ecdcd9240' diff --git a/config.mk b/config.mk index 23cead8..d7106b1 100644 --- a/config.mk +++ b/config.mk @@ -1,5 +1,5 @@ # st version -VERSION = 0.8.6 +VERSION = 0.8.8 # Customize below to fit your system From 6ff3b518d89cbe6d0fc4569229307b9b82bd77e7 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Thu, 7 Apr 2022 21:15:30 +0200 Subject: [PATCH 39/64] Switched to multi-platform build --- .woodpecker.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index 4da8998..2b30980 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -1,15 +1,20 @@ +matrix: + PLATFORM: + - linux/amd64 + - linux/arm64 + branches: master -platform: linux/amd64 +platform: ${PLATFORM} when: event: push pipeline: build: - image: 'archlinux:latest' + image: 'menci/archlinuxarm:base-devel' commands: # Update packages - - pacman -Syu --needed --noconfirm base-devel + - pacman -Syu --noconfirm # Create non-root user to perform build & switch to their home - groupadd -g 1000 builder - useradd -mg builder builder @@ -23,6 +28,6 @@ pipeline: image: 'archlinux:latest' commands: # Publish the package - - 'curl -s -XPOST -H "X-API-KEY: $API_KEY" -T "$(ls *.pkg*)" https://arch.r8r.be/publish' + - 'curl -s -XPOST -H "X-API-KEY: $API_KEY" -T "$(ls *.pkg*)" https://arch.r8r.be/jjr/publish' secrets: - api_key From ece0b1641db513d22157f6c455f75f92fdb72c61 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Thu, 7 Apr 2022 21:16:30 +0200 Subject: [PATCH 40/64] Added aarch64 to PKGBUILD --- PKGBUILD | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PKGBUILD b/PKGBUILD index eb68544..a73edec 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -4,7 +4,7 @@ pkgname=jjr-st pkgver=0.8.8 pkgrel=1 pkgdesc="My build of the st terminal" -arch=("x86_64") +arch=("x86_64" "aarch64") url="https://git.rustybever.be/Chewing_Bever/st" license=("MIT") From e05a06731f436e6f278cdc2a3722696f9bba52d3 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Thu, 7 Apr 2022 21:18:25 +0200 Subject: [PATCH 41/64] Switched to curlimages/curl for publish --- .woodpecker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index 2b30980..196b9a5 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -25,7 +25,7 @@ pipeline: - MAKEFLAGS="-j$(nproc)" makepkg -s --noconfirm --needed publish: - image: 'archlinux:latest' + image: 'curlimages/curl' commands: # Publish the package - 'curl -s -XPOST -H "X-API-KEY: $API_KEY" -T "$(ls *.pkg*)" https://arch.r8r.be/jjr/publish' From 50ecbe5286add3e040aabba036ec1801da370385 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Sat, 9 Apr 2022 11:28:37 +0200 Subject: [PATCH 42/64] Replaced libxft dep with libxft-bgra --- PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PKGBUILD b/PKGBUILD index a73edec..5860988 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -2,14 +2,14 @@ pkgname=jjr-st pkgver=0.8.8 -pkgrel=1 +pkgrel=2 pkgdesc="My build of the st terminal" arch=("x86_64" "aarch64") url="https://git.rustybever.be/Chewing_Bever/st" license=("MIT") -depends=("glibc" "libxft") +depends=("glibc" "libxft-bgra") makedepends=("gcc") provides=("st") conflicts=("st" "st-git") From 28f926e4da1b1277be0fcf925be0e93e16839c95 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Sat, 9 Apr 2022 11:32:10 +0200 Subject: [PATCH 43/64] Add bur repo to build containers --- .woodpecker.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.woodpecker.yml b/.woodpecker.yml index 196b9a5..d4e5b51 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -13,6 +13,8 @@ pipeline: build: image: 'menci/archlinuxarm:base-devel' commands: + # Add my bur repo to pacman for the libxft-bgra dependency + echo '[bur]\nServer = https://arch.r8r.be/$repo/$arch\nSigLevel = Optional' # Update packages - pacman -Syu --noconfirm # Create non-root user to perform build & switch to their home From 63c8917670ace6d9eee0cd1e5aa6043bf1584e67 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Sat, 9 Apr 2022 11:33:59 +0200 Subject: [PATCH 44/64] Totally didn't forget a part --- .woodpecker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index d4e5b51..e1c4a99 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -14,7 +14,7 @@ pipeline: image: 'menci/archlinuxarm:base-devel' commands: # Add my bur repo to pacman for the libxft-bgra dependency - echo '[bur]\nServer = https://arch.r8r.be/$repo/$arch\nSigLevel = Optional' + - echo '[bur]\nServer = https://arch.r8r.be/$repo/$arch\nSigLevel = Optional' >> /etc/pacman.conf # Update packages - pacman -Syu --noconfirm # Create non-root user to perform build & switch to their home From db3d1d3007770dfd39d5fdb0dcb9196c63487391 Mon Sep 17 00:00:00 2001 From: Jef Roosens Date: Sat, 9 Apr 2022 11:34:51 +0200 Subject: [PATCH 45/64] Weird it happened twice --- .woodpecker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index e1c4a99..3bc8b0b 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -14,7 +14,7 @@ pipeline: image: 'menci/archlinuxarm:base-devel' commands: # Add my bur repo to pacman for the libxft-bgra dependency - - echo '[bur]\nServer = https://arch.r8r.be/$repo/$arch\nSigLevel = Optional' >> /etc/pacman.conf + - echo -e '[bur]\nServer = https://arch.r8r.be/$repo/$arch\nSigLevel = Optional' >> /etc/pacman.conf # Update packages - pacman -Syu --noconfirm # Create non-root user to perform build & switch to their home From 8629d9a1da72cc18568a8f146307b0e939b77ebf Mon Sep 17 00:00:00 2001 From: NRK Date: Fri, 7 Jan 2022 23:21:04 +0600 Subject: [PATCH 46/64] 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. --- st.c | 88 +++++++++++++++++++++-------------------------------------- st.h | 2 -- win.h | 1 + 3 files changed, 32 insertions(+), 59 deletions(-) diff --git a/st.c b/st.c index f43cfd3..6ba467d 100644 --- a/st.c +++ b/st.c @@ -161,6 +161,7 @@ static void csidump(void); static void csihandle(void); static void csiparse(void); static void csireset(void); +static void osc_color_response(int, int, int); static int eschandle(uchar); static void strdump(void); static void strhandle(void); @@ -1835,39 +1836,28 @@ csireset(void) } void -osc4_color_response(int num) +osc_color_response(int num, int index, int is_osc4) { int n; char buf[32]; unsigned char r, g, b; - if (xgetcolor(num, &r, &g, &b)) { - fprintf(stderr, "erresc: failed to fetch osc4 color %d\n", num); + if (xgetcolor(is_osc4 ? num : index, &r, &g, &b)) { + fprintf(stderr, "erresc: failed to fetch %s color %d\n", + is_osc4 ? "osc4" : "osc", + is_osc4 ? num : index); return; } - n = snprintf(buf, sizeof buf, "\033]4;%d;rgb:%02x%02x/%02x%02x/%02x%02x\007", - num, r, r, g, g, b, b); - - ttywrite(buf, n, 1); -} - -void -osc_color_response(int index, int num) -{ - int n; - char buf[32]; - unsigned char r, g, b; - - if (xgetcolor(index, &r, &g, &b)) { - fprintf(stderr, "erresc: failed to fetch osc color %d\n", index); - return; + n = snprintf(buf, sizeof buf, "\033]%s%d;rgb:%02x%02x/%02x%02x/%02x%02x\007", + is_osc4 ? "4;" : "", num, r, r, g, g, b, b); + if (n < 0 || n >= sizeof(buf)) { + fprintf(stderr, "error: %s while printing %s response\n", + n < 0 ? "snprintf failed" : "truncation occurred", + is_osc4 ? "osc4" : "osc"); + } else { + ttywrite(buf, n, 1); } - - n = snprintf(buf, sizeof buf, "\033]%d;rgb:%02x%02x/%02x%02x/%02x%02x\007", - num, r, r, g, g, b, b); - - ttywrite(buf, n, 1); } void @@ -1875,6 +1865,11 @@ strhandle(void) { char *p = NULL, *dec; int j, narg, par; + const struct { int idx; char *str; } osc_table[] = { + { defaultfg, "foreground" }, + { defaultbg, "background" }, + { defaultcs, "cursor" } + }; term.esc &= ~(ESC_STR_END|ESC_STR); strparse(); @@ -1909,43 +1904,22 @@ strhandle(void) } return; case 10: - if (narg < 2) - break; - - p = strescseq.args[1]; - - if (!strcmp(p, "?")) - osc_color_response(defaultfg, 10); - else if (xsetcolorname(defaultfg, p)) - fprintf(stderr, "erresc: invalid foreground color: %s\n", p); - else - tfulldirt(); - return; case 11: - if (narg < 2) - break; - - p = strescseq.args[1]; - - if (!strcmp(p, "?")) - osc_color_response(defaultbg, 11); - else if (xsetcolorname(defaultbg, p)) - fprintf(stderr, "erresc: invalid background color: %s\n", p); - else - tfulldirt(); - return; case 12: if (narg < 2) break; - p = strescseq.args[1]; + if ((j = par - 10) < 0 || j >= LEN(osc_table)) + break; /* shouldn't be possible */ - if (!strcmp(p, "?")) - osc_color_response(defaultcs, 12); - else if (xsetcolorname(defaultcs, p)) - fprintf(stderr, "erresc: invalid cursor color: %s\n", p); - else + if (!strcmp(p, "?")) { + osc_color_response(par, osc_table[j].idx, 0); + } else if (xsetcolorname(osc_table[j].idx, p)) { + fprintf(stderr, "erresc: invalid %s color: %s\n", + osc_table[j].str, p); + } else { tfulldirt(); + } return; case 4: /* color set */ if (narg < 3) @@ -1955,9 +1929,9 @@ strhandle(void) case 104: /* color reset */ j = (narg > 1) ? atoi(strescseq.args[1]) : -1; - if (p && !strcmp(p, "?")) - osc4_color_response(j); - else if (xsetcolorname(j, p)) { + if (p && !strcmp(p, "?")) { + osc_color_response(j, 0, 1); + } else if (xsetcolorname(j, p)) { if (par == 104 && narg <= 1) return; /* color reset without parameter */ fprintf(stderr, "erresc: invalid color j=%d, p=%s\n", diff --git a/st.h b/st.h index 519b9bd..fd3b0d8 100644 --- a/st.h +++ b/st.h @@ -111,8 +111,6 @@ void *xmalloc(size_t); void *xrealloc(void *, size_t); char *xstrdup(const char *); -int xgetcolor(int x, unsigned char *r, unsigned char *g, unsigned char *b); - /* config.h globals */ extern char *utmp; extern char *scroll; diff --git a/win.h b/win.h index e6e4369..6de960d 100644 --- a/win.h +++ b/win.h @@ -30,6 +30,7 @@ void xdrawline(Line, int, int, int); void xfinishdraw(void); void xloadcols(void); int xsetcolorname(int, const char *); +int xgetcolor(int, unsigned char *, unsigned char *, unsigned char *); void xseticontitle(char *); void xsettitle(char *); int xsetcursor(int); From baa9357e96d2478baa52a3301e70ac80a229b726 Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Sun, 1 May 2022 18:38:40 +0200 Subject: [PATCH 47/64] Makefile: add manual path for OpenBSD --- config.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/config.mk b/config.mk index 4c4c5d5..ddf278a 100644 --- a/config.mk +++ b/config.mk @@ -30,6 +30,7 @@ STLDFLAGS = $(LIBS) $(LDFLAGS) #LIBS = -L$(X11LIB) -lm -lX11 -lutil -lXft \ # `$(PKG_CONFIG) --libs fontconfig` \ # `$(PKG_CONFIG) --libs freetype2` +#MANPREFIX = ${PREFIX}/man # compiler and linker # CC = c99 From 5256878b9c544ee489985ac99c32ce8510d3ffec Mon Sep 17 00:00:00 2001 From: Chewing_Bever Date: Mon, 6 Jun 2022 23:09:29 +0200 Subject: [PATCH 48/64] Stop building for arm64; build microarch-optimised packages --- .woodpecker.yml | 18 ++++++++++++------ PKGBUILD | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index 3bc8b0b..867ec45 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -1,10 +1,16 @@ matrix: - PLATFORM: - - linux/amd64 - - linux/arm64 + # PLATFORM: + # - linux/amd64 + # - linux/arm64 + + ARCH: + # tuur + - tigerlake + # cenny + - skylake branches: master -platform: ${PLATFORM} +platform: linux/amd64 when: event: push @@ -24,12 +30,12 @@ pipeline: - "echo 'builder ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers" - su builder # Build the package - - MAKEFLAGS="-j$(nproc)" makepkg -s --noconfirm --needed + - MAKEFLAGS="-j$(nproc)" makepkg -s --noconfirm --needed CFLAGS="-O3 -flto -march=${ARCH}" publish: image: 'curlimages/curl' commands: # Publish the package - - 'curl -s -XPOST -H "X-API-KEY: $API_KEY" -T "$(ls *.pkg*)" https://arch.r8r.be/jjr/publish' + - 'curl -s -XPOST -H "X-API-KEY: $API_KEY" -T "$(ls *.pkg*)" https://arch.r8r.be/jjr-${ARCH}/publish' secrets: - api_key diff --git a/PKGBUILD b/PKGBUILD index 5860988..d5de2a3 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -36,7 +36,7 @@ sha256sums=('1a10fac42d03b3a1231cd6998a73fb4ab4f191694628953e7229f6de2053a985' 'f767c242485eb537f0df13cbcc182980d29152a6e25036cf65f334fb3ae8b29e') build() { - make + make CFLAGS="$CFLAGS" } package() { From 72fd32736a612edec43596c14148322122a5544d Mon Sep 17 00:00:00 2001 From: Tom Schwindl Date: Thu, 18 Aug 2022 14:55:19 +0000 Subject: [PATCH 49/64] st: use `void' to indicate an empty parameter list --- st.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/st.c b/st.c index 6ba467d..62def59 100644 --- a/st.c +++ b/st.c @@ -939,7 +939,7 @@ ttyresize(int tw, int th) } void -ttyhangup() +ttyhangup(void) { /* Send SIGHUP to shell */ kill(pid, SIGHUP); From 7aa4a0ec889633c594c5f297a3912d7032b01a5a Mon Sep 17 00:00:00 2001 From: Chewing_Bever Date: Sun, 28 Aug 2022 11:05:25 +0200 Subject: [PATCH 50/64] ci: output to different architectures instead --- .woodpecker.yml | 8 ++++++-- PKGBUILD | 9 ++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index 867ec45..bf5bdff 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -30,12 +30,16 @@ pipeline: - "echo 'builder ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers" - su builder # Build the package - - MAKEFLAGS="-j$(nproc)" makepkg -s --noconfirm --needed CFLAGS="-O3 -flto -march=${ARCH}" + - > + MAKEFLAGS="-j$(nproc)" + makepkg -s --noconfirm --needed + CFLAGS="-O3 -flto -march=${ARCH}" + CARCH="x86_64_${ARCH}" publish: image: 'curlimages/curl' commands: # Publish the package - - 'curl -s -XPOST -H "X-API-KEY: $API_KEY" -T "$(ls *.pkg*)" https://arch.r8r.be/jjr-${ARCH}/publish' + - 'curl -s -XPOST -H "X-API-KEY: $API_KEY" -T "$(ls *.pkg*)" https://arch.r8r.be/jjr/publish' secrets: - api_key diff --git a/PKGBUILD b/PKGBUILD index d5de2a3..ec1aa65 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -4,7 +4,12 @@ pkgname=jjr-st pkgver=0.8.8 pkgrel=2 pkgdesc="My build of the st terminal" -arch=("x86_64" "aarch64") +arch=( + "x86_64" + "x86_64_tigerlake" + "x86_64_skylake" + "aarch64" +) url="https://git.rustybever.be/Chewing_Bever/st" license=("MIT") @@ -50,3 +55,5 @@ package() { # install $installopts "$docdir" README.terminfo.rst # install $installopts "$shrdir/$pkgname" "$_sourcedir/st.info" } + +# vim: ft=bash From f89f255d35cf22751d69d6c89ff7684f62de9270 Mon Sep 17 00:00:00 2001 From: Chewing_Bever Date: Sun, 4 Sep 2022 15:26:33 +0200 Subject: [PATCH 51/64] Bumped package version to 0.8.9 --- .woodpecker.yml | 2 +- PKGBUILD | 36 +++++++++++++++++++++++++++--------- config.mk | 2 +- 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index bf5bdff..c8d6c15 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -33,7 +33,7 @@ pipeline: - > MAKEFLAGS="-j$(nproc)" makepkg -s --noconfirm --needed - CFLAGS="-O3 -flto -march=${ARCH}" + CFLAGS+=" -O3 -flto -march=${ARCH} -mtune=${ARCH}" CARCH="x86_64_${ARCH}" publish: diff --git a/PKGBUILD b/PKGBUILD index ec1aa65..062945b 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,9 +1,12 @@ # Maintainer: Jef Roosens pkgname=jjr-st -pkgver=0.8.8 -pkgrel=2 -pkgdesc="My build of the st terminal" +pkgver=0.8.9 +pkgrel=1 +pkgdesc="Chewing_Bever's personal build of the st terminal" + +url="https://git.rustybever.be/Chewing_Bever/st" +license=("MIT") arch=( "x86_64" "x86_64_tigerlake" @@ -11,11 +14,9 @@ arch=( "aarch64" ) -url="https://git.rustybever.be/Chewing_Bever/st" -license=("MIT") - depends=("glibc" "libxft-bgra") makedepends=("gcc") + provides=("st") conflicts=("st" "st-git") @@ -27,18 +28,35 @@ sha256sums=('1a10fac42d03b3a1231cd6998a73fb4ab4f191694628953e7229f6de2053a985' '808dbefe40e81b88da173985e1bd5c0a0d88d517b7cc1c6d68753e586ffe1698' '49bff578b6c882123393c867689f4330d6ba7cfe85fe359ea7424b228b22970e' '6fa7874b83e98a30e8c66c8f7d5539d1b2ec6c2267ef2c3945620826187b6b64' - '86613a3c3bd74fc44d364a4e611db1d93674b85351d2453e49a89e86304a1472' + '9ac98be0992996daa9b2f8a68ff425288ef67156b4195333560c8fd8ee4c4933' 'f4fae0ee42168f492ea59825928d1dbaceae5cf9e6fe2f820a429a68266000c7' '4a133d16a818379ab849b41c30cb4b4f989a00c9b1e96907a4d130d12c36a79e' '5c25b701b4482ccc8d5ea0770e553ad8a8c5c87650df07543b3b3f9456726d54' '7398527a5e5cf9fd53f56dba332a2565c680058bc329c6bd08f623a813baab27' '5b0d65d135fcc3d51f60e4fe4d86c5bbd1331266f9b38ecfb86914668c03921c' - '517dcc181f40aeb62ec35bcab0e7e51fd5a16d37331667c4dc9de68faf20a7a9' + 'aa11f624de7836ecbbc1a686985b968cf52fdeaac65a2a090955e8cfc7a5745c' '285b883ebd0884467be95562885f4cf594cd72cf7b4925476538483fe4022f39' '2eb2f15957b8132a2d25129c24bb97f64657bd821447f36ef2cf0526b42846e8' - 'd30e818fb119a94f23aac1684f7c50bc1cd49cd3364472e0d17d195ecdcd9240' + 'c1f30d9d38828194c25fa943978a4ee766fe77294e98cea0e4fffa81756bddad' '71386eb28230af38f55e22157e3a18c082b1be8dd25610f4b663253abc2ae799' 'f767c242485eb537f0df13cbcc182980d29152a6e25036cf65f334fb3ae8b29e') +sha512sums=('53846896087eee0242e3679e8f35be8330e5de63b0247876ac368cf13f62b03c564f99957d49c7f9a7b74cc5190a32b034955d7bf633cc2848da266d7a7f1786' + '031a4bcec190b6e8dbc64e604674f5b754ecc2a79d63f0bb1d9bfe7c79bcb17ee3f36440dd55580e5b238e5e4bf808aa0f0f65cf00072f47d8c9851df06e6489' + '19d9d5414d78d5cc59a080e7f9955e02420c1d18268299160cb4bcb156c6cb0d0cbcf16a9e20094b67cfba3b721a4bfb71223d772c37238a9390388b00eb8919' + '0dba6f78e020f6b51acbd5b19a1e6d62ce990fcbe5a0d5f49eca065cc5f4600dad1222be282c01daf08a213d16e45dcd96497ff686b1bc5cc5e8996b5cda9864' + 'bf0d3f0cbeb07b7268c8e08331cb3a82ee438d8414a62233a0accc3966ff96cc37da932ab17fda9a8d560446e4e2c931bd62af0c1e8eb84447ccf48774ee92db' + '76890bc48eb13d0066cdd892e585a75f25d1fca0c1489c17e0155406b8f022db0e5bd30002a6ba3dc71a902e1dc83e926631d8dc1e1f353bdb038ab6146d6bca' + 'd847eb005da53e8938379854017451fc716c15228ffccd7a75b75cbccb6259371ec233ddbdd5fefdacd28e0b5aaad41d163358732bdbefb9178678b637bf050c' + 'e287b76dfd1cb6930bdc3c74a77888b6f7e2309c24bf9466c65425418dcff8e977649c71a0ca0ce8c118901d4e81c3781f60324df8394ceee12dae9c7875dc02' + '60bda0e2668626949c4d70ce338c03ce8e2d0f98544ca7053f3061111506a3d8426357253982e56140bb005b6f3a3a383086d9b58a40d4dbd79a6bee9ec2677f' + '40e82e5679efd030a6be51d454fc31607a23fedee49b00d015b1559c5cb8b5f73afb35822adfed3aa488a1985f1f1fee224c2c55eb689d91259dd085b7ea9b88' + '3e9378413277f344d46056e72c2cf19a3f68ed3175fcaa177a6a0c90d3ff6282d3cb423aa98d32fed9647d2be8cbd52b8adb6f73f87186e95d81320e90fc185d' + '768638edae6e4a07ee0a8fd5625ab31fcc0ead2c45745ea23b7340f64b9d6358d8ed23ad5072e3a476bf06dfe16c11d01a16c50876bcf44226094c31d8df366c' + 'c6f08ba53ea59c74b35f889a183feca2a124d46654a6f0556fb181c3843d7d11f9174a934ce01de630c46be2caf705c9ae636f3e59f9762079c3c821652cea87' + '683b40e8d7173ec8d84e2d53454e5111f2effce0c27641e010da1bcec7ee169bfad46142e01893b5e66df87f109bc1afeb944cbae5ce56aa55bfc2544d04e87a' + '28234c79599248929c85936c68ab68f977a722069c51424ae0faa92eddd5d4bf9fc75df0f4a509704ae5b56a2be13481883d675627c4e7fd47f6320a70d259ea' + '04c7a49e50eac436f9d5935ef0b7a5166cd373134822992a31bb6fb2183b1c5a0c5d67f186b5923946ee20c453c737f9233b0be3a809cedb100cddae67a1730e' + 'd345c041854864ff8c21cbc5c934d3b5dda2fc7f97eee484d8cee4f3c8671ba5f2dcecad313a199e750a2d64d4e0dfbe9a6033d0ea701c1f9d9b6753502bf72b') build() { make CFLAGS="$CFLAGS" diff --git a/config.mk b/config.mk index c5249d5..76c6258 100644 --- a/config.mk +++ b/config.mk @@ -1,5 +1,5 @@ # st version -VERSION = 0.8.8 +VERSION = 0.8.9 # Customize below to fit your system From 00085199039ee63acc7b1ecb7e3774a9c3552b2a Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Fri, 16 Sep 2022 23:07:09 +0200 Subject: [PATCH 52/64] FAQ: document the color emojis crash issue which affected some systems is fixed It is fixed in libXft 2.3.6: https://gitlab.freedesktop.org/xorg/lib/libxft/-/blob/libXft-2.3.5/NEWS --- FAQ | 3 +++ 1 file changed, 3 insertions(+) diff --git a/FAQ b/FAQ index 969b195..6287a27 100644 --- a/FAQ +++ b/FAQ @@ -248,3 +248,6 @@ fonts: Please don't bother reporting this bug to st, but notify the upstream Xft developers about fixing this bug. + +As of 2022-09-05 this now seems to be finally fixed in libXft 2.3.5: +https://gitlab.freedesktop.org/xorg/lib/libxft/-/blob/libXft-2.3.5/NEWS From 68d1ad9b54e952e3079356aeab8ab37e44c56c2c Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Tue, 4 Oct 2022 19:40:30 +0200 Subject: [PATCH 53/64] bump version to 0.9 --- config.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.mk b/config.mk index ddf278a..1e306f8 100644 --- a/config.mk +++ b/config.mk @@ -1,5 +1,5 @@ # st version -VERSION = 0.8.5 +VERSION = 0.9 # Customize below to fit your system From 3df1a49deca4cad3f75c6c19772796787b865bf6 Mon Sep 17 00:00:00 2001 From: Chewing_Bever Date: Wed, 19 Oct 2022 15:58:44 +0200 Subject: [PATCH 54/64] Updated PKGBUILD --- PKGBUILD | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/PKGBUILD b/PKGBUILD index 1220287..8d8ee29 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: Jef Roosens pkgname=jjr-st -pkgver=0.8.9 +pkgver=0.9.0 pkgrel=1 pkgdesc="Chewing_Bever's personal build of the st terminal" @@ -20,8 +20,6 @@ makedepends=("gcc") provides=("st") conflicts=("st" "st-git") -options=(lto) - source=("arg.h" "boxdraw.c" "boxdraw_data.h" "config.def.h" "config.h" "config.mk" "hb.c" "hb.h" "LICENSE" "Makefile" "st.1" "st.c" "st.h" "st.info" "win.h" "x.c" "README") @@ -30,7 +28,7 @@ sha256sums=('1a10fac42d03b3a1231cd6998a73fb4ab4f191694628953e7229f6de2053a985' '808dbefe40e81b88da173985e1bd5c0a0d88d517b7cc1c6d68753e586ffe1698' '49bff578b6c882123393c867689f4330d6ba7cfe85fe359ea7424b228b22970e' '6fa7874b83e98a30e8c66c8f7d5539d1b2ec6c2267ef2c3945620826187b6b64' - '9ac98be0992996daa9b2f8a68ff425288ef67156b4195333560c8fd8ee4c4933' + '7554a718422882d577dc279a87a1c5f5140d38321752cf12f6da17552d55dc04' 'f4fae0ee42168f492ea59825928d1dbaceae5cf9e6fe2f820a429a68266000c7' '4a133d16a818379ab849b41c30cb4b4f989a00c9b1e96907a4d130d12c36a79e' '5c25b701b4482ccc8d5ea0770e553ad8a8c5c87650df07543b3b3f9456726d54' @@ -47,7 +45,7 @@ sha512sums=('53846896087eee0242e3679e8f35be8330e5de63b0247876ac368cf13f62b03c564 '19d9d5414d78d5cc59a080e7f9955e02420c1d18268299160cb4bcb156c6cb0d0cbcf16a9e20094b67cfba3b721a4bfb71223d772c37238a9390388b00eb8919' '0dba6f78e020f6b51acbd5b19a1e6d62ce990fcbe5a0d5f49eca065cc5f4600dad1222be282c01daf08a213d16e45dcd96497ff686b1bc5cc5e8996b5cda9864' 'bf0d3f0cbeb07b7268c8e08331cb3a82ee438d8414a62233a0accc3966ff96cc37da932ab17fda9a8d560446e4e2c931bd62af0c1e8eb84447ccf48774ee92db' - '76890bc48eb13d0066cdd892e585a75f25d1fca0c1489c17e0155406b8f022db0e5bd30002a6ba3dc71a902e1dc83e926631d8dc1e1f353bdb038ab6146d6bca' + 'f4421a179c205e2089004c6fd3ee7c49981a9454183f5ce3f4cbfdf09fd9d90612a106aeedd5889982d7652f5dca5c2baf93a4645ae7bc8b0396cdd7e9208189' 'd847eb005da53e8938379854017451fc716c15228ffccd7a75b75cbccb6259371ec233ddbdd5fefdacd28e0b5aaad41d163358732bdbefb9178678b637bf050c' 'e287b76dfd1cb6930bdc3c74a77888b6f7e2309c24bf9466c65425418dcff8e977649c71a0ca0ce8c118901d4e81c3781f60324df8394ceee12dae9c7875dc02' '60bda0e2668626949c4d70ce338c03ce8e2d0f98544ca7053f3061111506a3d8426357253982e56140bb005b6f3a3a383086d9b58a40d4dbd79a6bee9ec2677f' From e5e959835b195c023d1f685ef4dbbcfc3b5120b2 Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Tue, 25 Oct 2022 17:11:11 +0200 Subject: [PATCH 55/64] fix buffer overflow when handling long composed input To reproduce the issue: " If you already have the multi-key enabled on your system, then add this line to your ~/.XCompose file: [...] : "1234567890123456789012345678901234567890123456789012345678901234567890" " Reported by and an initial patch by Andy Gozas , thanks! Adapted the patch, for now st (like dmenu) handles a fixed amount of composed characters, or otherwise ignores it. This is done for simplicity sake. --- x.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/x.c b/x.c index 2a3bd38..aa09997 100644 --- a/x.c +++ b/x.c @@ -1833,7 +1833,7 @@ void kpress(XEvent *ev) { XKeyEvent *e = &ev->xkey; - KeySym ksym; + KeySym ksym = NoSymbol; char buf[64], *customkey; int len; Rune c; @@ -1843,10 +1843,13 @@ kpress(XEvent *ev) if (IS_SET(MODE_KBDLOCK)) return; - if (xw.ime.xic) + if (xw.ime.xic) { len = XmbLookupString(xw.ime.xic, e, buf, sizeof buf, &ksym, &status); - else + if (status == XBufferOverflow) + return; + } else { len = XLookupString(e, buf, sizeof buf, &ksym, NULL); + } /* 1. shortcuts */ for (bp = shortcuts; bp < shortcuts + LEN(shortcuts); bp++) { if (ksym == bp->keysym && match(bp->mod, e->state)) { From 15479145de656ac4b76be427bd36afc57fbec482 Mon Sep 17 00:00:00 2001 From: Chewing_Bever Date: Sat, 26 Nov 2022 08:49:38 +0100 Subject: [PATCH 56/64] Bumped version --- PKGBUILD | 10 +++++----- config.mk | 3 +-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/PKGBUILD b/PKGBUILD index 8d8ee29..84cbdc5 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: Jef Roosens pkgname=jjr-st -pkgver=0.9.0 +pkgver=0.9.1 pkgrel=1 pkgdesc="Chewing_Bever's personal build of the st terminal" @@ -28,7 +28,7 @@ sha256sums=('1a10fac42d03b3a1231cd6998a73fb4ab4f191694628953e7229f6de2053a985' '808dbefe40e81b88da173985e1bd5c0a0d88d517b7cc1c6d68753e586ffe1698' '49bff578b6c882123393c867689f4330d6ba7cfe85fe359ea7424b228b22970e' '6fa7874b83e98a30e8c66c8f7d5539d1b2ec6c2267ef2c3945620826187b6b64' - '7554a718422882d577dc279a87a1c5f5140d38321752cf12f6da17552d55dc04' + '31ff61b5263663723d57c2c65f5c77abf63849839a60f678d9d0a4e990f8da6b' 'f4fae0ee42168f492ea59825928d1dbaceae5cf9e6fe2f820a429a68266000c7' '4a133d16a818379ab849b41c30cb4b4f989a00c9b1e96907a4d130d12c36a79e' '5c25b701b4482ccc8d5ea0770e553ad8a8c5c87650df07543b3b3f9456726d54' @@ -38,14 +38,14 @@ sha256sums=('1a10fac42d03b3a1231cd6998a73fb4ab4f191694628953e7229f6de2053a985' '285b883ebd0884467be95562885f4cf594cd72cf7b4925476538483fe4022f39' '2eb2f15957b8132a2d25129c24bb97f64657bd821447f36ef2cf0526b42846e8' 'c1f30d9d38828194c25fa943978a4ee766fe77294e98cea0e4fffa81756bddad' - '71386eb28230af38f55e22157e3a18c082b1be8dd25610f4b663253abc2ae799' + 'ad0cfcd7242682a05421788163aefe45164005f7916cc29a4dc60c4d74005805' 'f767c242485eb537f0df13cbcc182980d29152a6e25036cf65f334fb3ae8b29e') sha512sums=('53846896087eee0242e3679e8f35be8330e5de63b0247876ac368cf13f62b03c564f99957d49c7f9a7b74cc5190a32b034955d7bf633cc2848da266d7a7f1786' '031a4bcec190b6e8dbc64e604674f5b754ecc2a79d63f0bb1d9bfe7c79bcb17ee3f36440dd55580e5b238e5e4bf808aa0f0f65cf00072f47d8c9851df06e6489' '19d9d5414d78d5cc59a080e7f9955e02420c1d18268299160cb4bcb156c6cb0d0cbcf16a9e20094b67cfba3b721a4bfb71223d772c37238a9390388b00eb8919' '0dba6f78e020f6b51acbd5b19a1e6d62ce990fcbe5a0d5f49eca065cc5f4600dad1222be282c01daf08a213d16e45dcd96497ff686b1bc5cc5e8996b5cda9864' 'bf0d3f0cbeb07b7268c8e08331cb3a82ee438d8414a62233a0accc3966ff96cc37da932ab17fda9a8d560446e4e2c931bd62af0c1e8eb84447ccf48774ee92db' - 'f4421a179c205e2089004c6fd3ee7c49981a9454183f5ce3f4cbfdf09fd9d90612a106aeedd5889982d7652f5dca5c2baf93a4645ae7bc8b0396cdd7e9208189' + '3c4432beb4a3e93e397b59f7dc5e60386f93e56f641ef73e9bb6f479979f120f52c48a69a953311699cdd0b18075464f35c2655b36bd9aa9ba9f654cd196168d' 'd847eb005da53e8938379854017451fc716c15228ffccd7a75b75cbccb6259371ec233ddbdd5fefdacd28e0b5aaad41d163358732bdbefb9178678b637bf050c' 'e287b76dfd1cb6930bdc3c74a77888b6f7e2309c24bf9466c65425418dcff8e977649c71a0ca0ce8c118901d4e81c3781f60324df8394ceee12dae9c7875dc02' '60bda0e2668626949c4d70ce338c03ce8e2d0f98544ca7053f3061111506a3d8426357253982e56140bb005b6f3a3a383086d9b58a40d4dbd79a6bee9ec2677f' @@ -55,7 +55,7 @@ sha512sums=('53846896087eee0242e3679e8f35be8330e5de63b0247876ac368cf13f62b03c564 'c6f08ba53ea59c74b35f889a183feca2a124d46654a6f0556fb181c3843d7d11f9174a934ce01de630c46be2caf705c9ae636f3e59f9762079c3c821652cea87' '683b40e8d7173ec8d84e2d53454e5111f2effce0c27641e010da1bcec7ee169bfad46142e01893b5e66df87f109bc1afeb944cbae5ce56aa55bfc2544d04e87a' '28234c79599248929c85936c68ab68f977a722069c51424ae0faa92eddd5d4bf9fc75df0f4a509704ae5b56a2be13481883d675627c4e7fd47f6320a70d259ea' - '04c7a49e50eac436f9d5935ef0b7a5166cd373134822992a31bb6fb2183b1c5a0c5d67f186b5923946ee20c453c737f9233b0be3a809cedb100cddae67a1730e' + '4cb372dd9b5711242bce1b82008f9b7c2cfae59c4d2f378df20a88134b61b050aa8f000b01e6e1c0195c14967111497974d67104c1895afb75065d2b6f461255' 'd345c041854864ff8c21cbc5c934d3b5dda2fc7f97eee484d8cee4f3c8671ba5f2dcecad313a199e750a2d64d4e0dfbe9a6033d0ea701c1f9d9b6753502bf72b') build() { diff --git a/config.mk b/config.mk index d546e88..bc0e74a 100644 --- a/config.mk +++ b/config.mk @@ -1,6 +1,5 @@ # st version -VERSION = 0.8.9 -VERSION = 0.9 +VERSION = 0.9.1 # Customize below to fit your system From 7e8050cc621f27002eaf1be8114dee2497beff91 Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Sun, 5 Feb 2023 13:29:35 +0100 Subject: [PATCH 57/64] Fixed OSC color reset without parameter->resets all colors Adapted from (garbled) patch by wim Additional notes: it should reset all the colors using xloadcols(). To reproduce: set a different (theme) color using some escape code, then reset it: printf '\x1b]104\x07' --- st.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/st.c b/st.c index 62def59..34c27ad 100644 --- a/st.c +++ b/st.c @@ -1932,8 +1932,10 @@ strhandle(void) if (p && !strcmp(p, "?")) { osc_color_response(j, 0, 1); } else if (xsetcolorname(j, p)) { - if (par == 104 && narg <= 1) + if (par == 104 && narg <= 1) { + xloadcols(); return; /* color reset without parameter */ + } fprintf(stderr, "erresc: invalid color j=%d, p=%s\n", j, p ? p : "(null)"); } else { From f17abd25b376c292f783062ecf821453eaa9cc4c Mon Sep 17 00:00:00 2001 From: Adam Price Date: Tue, 7 Feb 2023 19:54:29 +0100 Subject: [PATCH 58/64] Add support for DSR response "OK" escape sequence "VT100 defines an escape sequence [1] called Device Status Report (DSR). When the DSR sequence received is `csi 5n`, an "OK" response `csi 0n` is returned. This patch adds that "OK" response. I encountered this missing sequence when I noticed that fzf [2] would clobber my prompt whenever completing a find. To test that ST doesn't currently respond to `csi 5n`, use fzf's shell extension in ST's repo to complete the path for a file. my-fancy-prompt $ vim ** my-fancy prompt $ vim st.c Thank you for considering my first patch submission. [1] https://www.xfree86.org/current/ctlseqs.html#VT100%20Mode [2] https://github.com/junegunn/fzf " Patch slightly adapted with input from the mailinglist, --- st.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/st.c b/st.c index 34c27ad..49357cc 100644 --- a/st.c +++ b/st.c @@ -1769,11 +1769,18 @@ csihandle(void) case 'm': /* SGR -- Terminal attribute (color) */ tsetattr(csiescseq.arg, csiescseq.narg); break; - case 'n': /* DSR – Device Status Report (cursor position) */ - if (csiescseq.arg[0] == 6) { + case 'n': /* DSR -- Device Status Report */ + switch (csiescseq.arg[0]) { + case 5: /* Status Report "OK" `0n` */ + ttywrite("\033[0n", sizeof("\033[0n") - 1, 0); + break; + case 6: /* Report Cursor Position (CPR) ";R" */ len = snprintf(buf, sizeof(buf), "\033[%i;%iR", - term.c.y+1, term.c.x+1); + term.c.y+1, term.c.x+1); ttywrite(buf, len, 0); + break; + default: + goto unknown; } break; case 'r': /* DECSTBM -- Set Scrolling Region */ From 211964d56ee00a7d46e251cbc150afb79138ae37 Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Tue, 7 Feb 2023 20:00:59 +0100 Subject: [PATCH 59/64] ignore C1 control characters in UTF-8 mode Ignore processing and printing C1 control characters in UTF-8 mode. These are in the range: 0x80 - 0x9f. By default in st the mode is set to UTF-8. This matches more the behaviour of xterm with the options -u8 or +u8 also. Also see the xterm resource "allowC1Printable". Let me know if this breaks something, in most cases I don't think so. As usual a very good reference is: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html --- st.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/st.c b/st.c index 49357cc..134e724 100644 --- a/st.c +++ b/st.c @@ -2422,6 +2422,9 @@ check_control_code: * they must not cause conflicts with sequences. */ if (control) { + /* in UTF-8 mode ignore handling C1 control characters */ + if (IS_SET(MODE_UTF8) && ISCONTROLC1(u)) + return; tcontrolcode(u); /* * control codes are not shown ever From 3a6d6d740110e6ee1b092d05ad746244eedabe4b Mon Sep 17 00:00:00 2001 From: Shi Tian Date: Sun, 25 Jun 2023 05:38:33 +0000 Subject: [PATCH 60/64] Fix for wide character being incorrectly cleared on MODE_INSERT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Under insert mode, when inserting a normal character in front of a wide character, the affected region is shifted to the right by one cell. However, the empty cell is reset as if being a part of a wide character, causing the following cell being mishandled as a dummy cell. To reproduce the bug: printf '\033[4h' # set MODE_INSERT printf 妳好 printf '\033[4D' printf 'x' printf '\033[4l\n' --- st.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/st.c b/st.c index 134e724..623376e 100644 --- a/st.c +++ b/st.c @@ -2471,8 +2471,10 @@ check_control_code: gp = &term.line[term.c.y][term.c.x]; } - if (IS_SET(MODE_INSERT) && term.c.x+width < term.col) + if (IS_SET(MODE_INSERT) && term.c.x+width < term.col) { memmove(gp+width, gp, (term.col - term.c.x - width) * sizeof(Glyph)); + gp->mode &= ~ATTR_WIDE; + } if (term.c.x+width > term.col) { tnewline(1); From 57e181e55fde8cea19769ab18f416ead45674681 Mon Sep 17 00:00:00 2001 From: Chewing_Bever Date: Mon, 7 Aug 2023 09:13:16 +0200 Subject: [PATCH 61/64] Publish to new rieter instance --- .woodpecker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index c8d6c15..f31c234 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -40,6 +40,6 @@ pipeline: image: 'curlimages/curl' commands: # Publish the package - - 'curl -s -XPOST -H "X-API-KEY: $API_KEY" -T "$(ls *.pkg*)" https://arch.r8r.be/jjr/publish' + - 'curl -s -XPOST -H "X-API-KEY: $API_KEY" -T "$(ls *.pkg*)" https://arch2.r8r.be/jjr' secrets: - api_key From 02dd34b4074832d865c48618e91ae25f53fbcc00 Mon Sep 17 00:00:00 2001 From: Chewing_Bever Date: Mon, 7 Aug 2023 09:28:02 +0200 Subject: [PATCH 62/64] Bump version to 0.9.2 --- PKGBUILD | 10 +++++----- config.mk | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/PKGBUILD b/PKGBUILD index 84cbdc5..ed28a04 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: Jef Roosens pkgname=jjr-st -pkgver=0.9.1 +pkgver=0.9.2 pkgrel=1 pkgdesc="Chewing_Bever's personal build of the st terminal" @@ -28,13 +28,13 @@ sha256sums=('1a10fac42d03b3a1231cd6998a73fb4ab4f191694628953e7229f6de2053a985' '808dbefe40e81b88da173985e1bd5c0a0d88d517b7cc1c6d68753e586ffe1698' '49bff578b6c882123393c867689f4330d6ba7cfe85fe359ea7424b228b22970e' '6fa7874b83e98a30e8c66c8f7d5539d1b2ec6c2267ef2c3945620826187b6b64' - '31ff61b5263663723d57c2c65f5c77abf63849839a60f678d9d0a4e990f8da6b' + '2ac9d7e18c87595165dffdcedc96c2355d74778667a0770e5079d740cb50ce0c' 'f4fae0ee42168f492ea59825928d1dbaceae5cf9e6fe2f820a429a68266000c7' '4a133d16a818379ab849b41c30cb4b4f989a00c9b1e96907a4d130d12c36a79e' '5c25b701b4482ccc8d5ea0770e553ad8a8c5c87650df07543b3b3f9456726d54' '7398527a5e5cf9fd53f56dba332a2565c680058bc329c6bd08f623a813baab27' '5b0d65d135fcc3d51f60e4fe4d86c5bbd1331266f9b38ecfb86914668c03921c' - 'aa11f624de7836ecbbc1a686985b968cf52fdeaac65a2a090955e8cfc7a5745c' + '24f5497597f2704e22ba58891c6a3502e391755eed5e8cbd7dfe875fef63b43c' '285b883ebd0884467be95562885f4cf594cd72cf7b4925476538483fe4022f39' '2eb2f15957b8132a2d25129c24bb97f64657bd821447f36ef2cf0526b42846e8' 'c1f30d9d38828194c25fa943978a4ee766fe77294e98cea0e4fffa81756bddad' @@ -45,13 +45,13 @@ sha512sums=('53846896087eee0242e3679e8f35be8330e5de63b0247876ac368cf13f62b03c564 '19d9d5414d78d5cc59a080e7f9955e02420c1d18268299160cb4bcb156c6cb0d0cbcf16a9e20094b67cfba3b721a4bfb71223d772c37238a9390388b00eb8919' '0dba6f78e020f6b51acbd5b19a1e6d62ce990fcbe5a0d5f49eca065cc5f4600dad1222be282c01daf08a213d16e45dcd96497ff686b1bc5cc5e8996b5cda9864' 'bf0d3f0cbeb07b7268c8e08331cb3a82ee438d8414a62233a0accc3966ff96cc37da932ab17fda9a8d560446e4e2c931bd62af0c1e8eb84447ccf48774ee92db' - '3c4432beb4a3e93e397b59f7dc5e60386f93e56f641ef73e9bb6f479979f120f52c48a69a953311699cdd0b18075464f35c2655b36bd9aa9ba9f654cd196168d' + 'c5a6dda87f542378261327ae53f8c6c8ef9cc35575f10c51291d4b36fed47ced77bec7b136fbf2c678794501d34f35911f740ee2b50b30af2e52c9baf393407f' 'd847eb005da53e8938379854017451fc716c15228ffccd7a75b75cbccb6259371ec233ddbdd5fefdacd28e0b5aaad41d163358732bdbefb9178678b637bf050c' 'e287b76dfd1cb6930bdc3c74a77888b6f7e2309c24bf9466c65425418dcff8e977649c71a0ca0ce8c118901d4e81c3781f60324df8394ceee12dae9c7875dc02' '60bda0e2668626949c4d70ce338c03ce8e2d0f98544ca7053f3061111506a3d8426357253982e56140bb005b6f3a3a383086d9b58a40d4dbd79a6bee9ec2677f' '40e82e5679efd030a6be51d454fc31607a23fedee49b00d015b1559c5cb8b5f73afb35822adfed3aa488a1985f1f1fee224c2c55eb689d91259dd085b7ea9b88' '3e9378413277f344d46056e72c2cf19a3f68ed3175fcaa177a6a0c90d3ff6282d3cb423aa98d32fed9647d2be8cbd52b8adb6f73f87186e95d81320e90fc185d' - '768638edae6e4a07ee0a8fd5625ab31fcc0ead2c45745ea23b7340f64b9d6358d8ed23ad5072e3a476bf06dfe16c11d01a16c50876bcf44226094c31d8df366c' + 'ce7d57550c1fd4731ec0adac11f2fcc6a163524bbdf72359ed544062226ce8775c5bb909e31f4bc92643442bd46be4061ade23d5dd356ad745bea9e59b8536d0' 'c6f08ba53ea59c74b35f889a183feca2a124d46654a6f0556fb181c3843d7d11f9174a934ce01de630c46be2caf705c9ae636f3e59f9762079c3c821652cea87' '683b40e8d7173ec8d84e2d53454e5111f2effce0c27641e010da1bcec7ee169bfad46142e01893b5e66df87f109bc1afeb944cbae5ce56aa55bfc2544d04e87a' '28234c79599248929c85936c68ab68f977a722069c51424ae0faa92eddd5d4bf9fc75df0f4a509704ae5b56a2be13481883d675627c4e7fd47f6320a70d259ea' diff --git a/config.mk b/config.mk index bc0e74a..c107a00 100644 --- a/config.mk +++ b/config.mk @@ -1,5 +1,5 @@ # st version -VERSION = 0.9.1 +VERSION = 0.9.2 # Customize below to fit your system From ec708fbd4879850a13965cb71ffd65a657457e6e Mon Sep 17 00:00:00 2001 From: Chewing_Bever Date: Mon, 7 Aug 2023 09:32:40 +0200 Subject: [PATCH 63/64] disable tic for now --- Makefile | 2 +- PKGBUILD | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 2ffd3c8..d1fa877 100644 --- a/Makefile +++ b/Makefile @@ -49,7 +49,7 @@ install: st mkdir -p $(DESTDIR)$(MANPREFIX)/man1 sed "s/VERSION/$(VERSION)/g" < st.1 > $(DESTDIR)$(MANPREFIX)/man1/st.1 chmod 644 $(DESTDIR)$(MANPREFIX)/man1/st.1 - tic -sx st.info + # tic -sx st.info @echo Please see the README file regarding the terminfo entry of st. uninstall: diff --git a/PKGBUILD b/PKGBUILD index ed28a04..8f1e4fa 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -32,7 +32,7 @@ sha256sums=('1a10fac42d03b3a1231cd6998a73fb4ab4f191694628953e7229f6de2053a985' 'f4fae0ee42168f492ea59825928d1dbaceae5cf9e6fe2f820a429a68266000c7' '4a133d16a818379ab849b41c30cb4b4f989a00c9b1e96907a4d130d12c36a79e' '5c25b701b4482ccc8d5ea0770e553ad8a8c5c87650df07543b3b3f9456726d54' - '7398527a5e5cf9fd53f56dba332a2565c680058bc329c6bd08f623a813baab27' + '20459f3d01ba1750c55764c0554a7aebcfad74f8f359c6cc30848c691483c2ef' '5b0d65d135fcc3d51f60e4fe4d86c5bbd1331266f9b38ecfb86914668c03921c' '24f5497597f2704e22ba58891c6a3502e391755eed5e8cbd7dfe875fef63b43c' '285b883ebd0884467be95562885f4cf594cd72cf7b4925476538483fe4022f39' @@ -49,7 +49,7 @@ sha512sums=('53846896087eee0242e3679e8f35be8330e5de63b0247876ac368cf13f62b03c564 'd847eb005da53e8938379854017451fc716c15228ffccd7a75b75cbccb6259371ec233ddbdd5fefdacd28e0b5aaad41d163358732bdbefb9178678b637bf050c' 'e287b76dfd1cb6930bdc3c74a77888b6f7e2309c24bf9466c65425418dcff8e977649c71a0ca0ce8c118901d4e81c3781f60324df8394ceee12dae9c7875dc02' '60bda0e2668626949c4d70ce338c03ce8e2d0f98544ca7053f3061111506a3d8426357253982e56140bb005b6f3a3a383086d9b58a40d4dbd79a6bee9ec2677f' - '40e82e5679efd030a6be51d454fc31607a23fedee49b00d015b1559c5cb8b5f73afb35822adfed3aa488a1985f1f1fee224c2c55eb689d91259dd085b7ea9b88' + '81259bdec9c42cbdffd12913672af141095b5c49be4c8d19951bd2a5dc4f2c525b7923579561c3259cb9b58d9f24b04d5e846ff4308a759c92e6eda12adb7b01' '3e9378413277f344d46056e72c2cf19a3f68ed3175fcaa177a6a0c90d3ff6282d3cb423aa98d32fed9647d2be8cbd52b8adb6f73f87186e95d81320e90fc185d' 'ce7d57550c1fd4731ec0adac11f2fcc6a163524bbdf72359ed544062226ce8775c5bb909e31f4bc92643442bd46be4061ade23d5dd356ad745bea9e59b8536d0' 'c6f08ba53ea59c74b35f889a183feca2a124d46654a6f0556fb181c3843d7d11f9174a934ce01de630c46be2caf705c9ae636f3e59f9762079c3c821652cea87' From 43303fc6843a7238a90be5d8a5bef606ccee6b7a Mon Sep 17 00:00:00 2001 From: Chewing_Bever Date: Mon, 7 Aug 2023 09:38:47 +0200 Subject: [PATCH 64/64] update curl for rieter structure --- .woodpecker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index f31c234..6d2e6e8 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -40,6 +40,6 @@ pipeline: image: 'curlimages/curl' commands: # Publish the package - - 'curl -s -XPOST -H "X-API-KEY: $API_KEY" -T "$(ls *.pkg*)" https://arch2.r8r.be/jjr' + - 'curl --fail -s -XPOST -H "Authorization: Bearer $API_KEY" -T "$(ls *.pkg*)" https://arch2.r8r.be/jjr' secrets: - api_key