Introduction
Introduction Statistics Contact Development Disclaimer Help
tst now runs on Linux, OpenBSD and FreeBSD. - st - [fork] customized build of s…
git clone git://src.adamsgaard.dk/st
Log
Files
Refs
README
LICENSE
---
commit 6db6980e27bdde6f2d444dd3cdd7a46985fa84fc
parent c56332857145d1c6741d4f6c1bbc87dcc6c6ab97
Author: AurĂ©lien Aptel <[email protected]>
Date: Sat, 28 Aug 2010 03:18:22 +0200
st now runs on Linux, OpenBSD and FreeBSD.
Diffstat:
M Makefile | 5 +++--
M config.mk | 13 +++++++------
M st.c | 27 ++++++++++++++-------------
3 files changed, 24 insertions(+), 21 deletions(-)
---
diff --git a/Makefile b/Makefile
t@@ -10,6 +10,7 @@ all: options st
options:
@echo st build options:
+ @echo "SYSTEM = ${SYSTEM}"
@echo "CFLAGS = ${CFLAGS}"
@echo "LDFLAGS = ${LDFLAGS}"
@echo "CC = ${CC}"
t@@ -31,7 +32,7 @@ clean:
dist: clean
@echo creating dist tarball
@mkdir -p st-${VERSION}
- @cp -R LICENSE Makefile README config.mk st.h ${SRC} st-${VERSION}
+ @cp -R LICENSE Makefile README config.mk config.h st.info ${SRC} st-${…
@tar -cf st-${VERSION}.tar st-${VERSION}
@gzip st-${VERSION}.tar
@rm -rf st-${VERSION}
t@@ -41,7 +42,7 @@ install: all
@mkdir -p ${DESTDIR}${PREFIX}/bin
@cp -f st ${DESTDIR}${PREFIX}/bin
@chmod 755 ${DESTDIR}${PREFIX}/bin/st
- @tic st.info
+ @tic -s st.info
uninstall:
@echo removing executable file from ${DESTDIR}${PREFIX}/bin
diff --git a/config.mk b/config.mk
t@@ -12,16 +12,17 @@ X11LIB = /usr/X11R6/lib
# includes and libs
INCS = -I. -I/usr/include -I${X11INC}
-LIBS = -L/usr/lib -lc -L${X11LIB} -lX11
+LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 -lutil
+
+# uncomment your system #
+#SYSTEM = -DLINUX
+#SYSTEM = -DOPENBSD
+#SYSTEM = -DFREEBSD
# flags
-CPPFLAGS = -DVERSION=\"${VERSION}\"
+CPPFLAGS = -DVERSION=\"${VERSION}\" ${SYSTEM}
CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
LDFLAGS = -s ${LIBS}
-# Solaris
-#CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\"
-#LDFLAGS = ${LIBS}
-
# compiler and linker
CC = cc
diff --git a/st.c b/st.c
t@@ -20,6 +20,14 @@
#include <X11/keysym.h>
#include <X11/Xutil.h>
+#if defined(LINUX)
+ #include <pty.h>
+#elif defined(OPENBSD)
+ #include <util.h>
+#elif defined(FREEBSD)
+ #include <libutil.h>
+#endif
+
/* Arbitrary sizes */
#define ESC_TITLE_SIZ 256
#define ESC_BUF_SIZ 256
t@@ -242,19 +250,12 @@ sigchld(int a) {
void
ttynew(void) {
int m, s;
- char *pts;
-
- if((m = posix_openpt(O_RDWR | O_NOCTTY)) < 0)
- die("openpt failed: %s\n", SERRNO);
- if(grantpt(m) < 0)
- die("grantpt failed: %s\n", SERRNO);
- if(unlockpt(m) < 0)
- die("unlockpt failed: %s\n", SERRNO);
- if(!(pts = ptsname(m)))
- die("ptsname failed: %s\n", SERRNO);
- if((s = open(pts, O_RDWR | O_NOCTTY)) < 0)
- die("Couldn't open slave: %s\n", SERRNO);
- fcntl(s, F_SETFL, O_NDELAY);
+
+ /* seems to work fine on linux, openbsd and freebsd */
+ struct winsize w = {term.row, term.col, 0, 0};
+ if(openpty(&m, &s, NULL, NULL, &w) < 0)
+ die("openpty failed: %s\n", SERRNO);
+
switch(pid = fork()) {
case -1:
die("fork failed\n");
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.