x11/st-sdk: new port

This commit is contained in:
c0dev0id
2026-07-08 11:11:31 +02:00
parent f29ebb456f
commit 7f2ab0a62e
10 changed files with 1062 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
Index: config.def.h
--- config.def.h.orig
+++ config.def.h
@@ -106,7 +106,7 @@ static const char *colorname[] = {
"blue2",
"magenta3",
"cyan3",
- "gray90",
+ "gray",
/* 8 bright colors */
"gray50",
@@ -341,6 +341,7 @@ static Key key[] = {
{ XK_ISO_Left_Tab, ShiftMask, "\033[Z", 0, 0},
{ XK_Return, Mod1Mask, "\033\r", 0, 0},
{ XK_Return, XK_ANY_MOD, "\r", 0, 0},
+ { XK_Return, ShiftMask, "\033[13;2u", 0, 0, 0},
{ XK_Insert, ShiftMask, "\033[4l", -1, 0},
{ XK_Insert, ShiftMask, "\033[2;2~", +1, 0},
{ XK_Insert, ControlMask, "\033[L", -1, 0},

View File

@@ -0,0 +1,36 @@
Index: config.mk
--- config.mk.orig
+++ config.mk
@@ -15,10 +15,12 @@ PKG_CONFIG = pkg-config
# includes and libs
INCS = -I$(X11INC) \
`$(PKG_CONFIG) --cflags fontconfig` \
- `$(PKG_CONFIG) --cflags freetype2`
+ `$(PKG_CONFIG) --cflags freetype2` \
+ `$(PKG_CONFIG) --libs harfbuzz`
LIBS = -L$(X11LIB) -lm -lrt -lX11 -lutil -lXft \
`$(PKG_CONFIG) --libs fontconfig` \
- `$(PKG_CONFIG) --libs freetype2`
+ `$(PKG_CONFIG) --libs freetype2` \
+ `$(PKG_CONFIG) --libs harfbuzz`
# flags
STCPPFLAGS = -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=600
@@ -26,11 +28,12 @@ STCFLAGS = $(INCS) $(STCPPFLAGS) $(CPPFLAGS) $(CFLAGS)
STLDFLAGS = $(LIBS) $(LDFLAGS)
# OpenBSD:
-#CPPFLAGS = -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=600 -D_BSD_SOURCE
-#LIBS = -L$(X11LIB) -lm -lX11 -lutil -lXft \
-# `$(PKG_CONFIG) --libs fontconfig` \
-# `$(PKG_CONFIG) --libs freetype2`
-#MANPREFIX = ${PREFIX}/man
+CPPFLAGS = -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=600 -D_BSD_SOURCE
+LIBS = -L$(X11LIB) -lm -lX11 -lutil -lXft \
+ `$(PKG_CONFIG) --libs fontconfig` \
+ `$(PKG_CONFIG) --libs freetype2` \
+ `$(PKG_CONFIG) --libs harfbuzz`
+MANPREFIX = ${PREFIX}/man
# compiler and linker
# CC = c99

View File

@@ -0,0 +1,34 @@
Index: st.c
--- st.c.orig
+++ st.c
@@ -35,6 +35,7 @@
#define ESC_ARG_SIZ 16
#define STR_BUF_SIZ ESC_BUF_SIZ
#define STR_ARG_SIZ ESC_ARG_SIZ
+#define STR_BUF_MAX (256*1024)
#define HISTSIZE 2000
#define RESIZEBUFFER 1000
@@ -2025,7 +2026,8 @@ csihandle(void)
case 6: /* Report Cursor Position (CPR) "<row>;<column>R" */
n = snprintf(buf, sizeof(buf), "\033[%i;%iR",
term.c.y+1, term.c.x+1);
- ttywrite(buf, n, 0);
+ if (n > 0)
+ ttywrite(buf, n, 0);
break;
default:
goto unknown;
@@ -2645,8 +2647,11 @@ tputc(Rune u)
* term.esc = 0;
* strhandle();
*/
- if (strescseq.siz > (SIZE_MAX - UTF_SIZ) / 2)
+ if (strescseq.siz > (SIZE_MAX - UTF_SIZ) / 2 ||
+ strescseq.siz >= STR_BUF_MAX) {
+ strreset();
return;
+ }
strescseq.siz *= 2;
strescseq.buf = xrealloc(strescseq.buf, strescseq.siz);
}