mirror of
https://github.com/mintycube/st.git
synced 2024-10-22 14:05:49 +02:00
Add support for scroll(1)
Scroll is a program that stores all the lines of its child and be used in st as a way of implementing scrollback. This solution is much better than implementing the scrollback in st itself because having a different program allows to use it in any other program without doing modifications to those programs.
This commit is contained in:
parent
2465559051
commit
2090981be3
@ -25,13 +25,14 @@ static int borderpx = 2;
|
||||
/*
|
||||
* What program is execed by st depends of these precedence rules:
|
||||
* 1: program passed with -e
|
||||
* 2: utmp option
|
||||
* 2: scroll and/or utmp
|
||||
* 3: SHELL environment variable
|
||||
* 4: value of shell in /etc/passwd
|
||||
* 5: value of shell in config.h
|
||||
*/
|
||||
static char *shell = "/bin/sh";
|
||||
char *utmp = NULL;
|
||||
char *scroll = NULL;
|
||||
char *stty_args = "stty raw pass8 nl -echo -iexten -cstopb 38400";
|
||||
|
||||
/* identification sequence returned in DA and DECID */
|
||||
|
3
st.1
3
st.1
@ -170,7 +170,8 @@ See the LICENSE file for the terms of redistribution.
|
||||
.SH SEE ALSO
|
||||
.BR tabbed (1),
|
||||
.BR utmp (1),
|
||||
.BR stty (1)
|
||||
.BR stty (1),
|
||||
.BR scroll (1)
|
||||
.SH BUGS
|
||||
See the TODO file in the distribution.
|
||||
|
||||
|
16
st.c
16
st.c
@ -726,7 +726,7 @@ die(const char *errstr, ...)
|
||||
void
|
||||
execsh(char *cmd, char **args)
|
||||
{
|
||||
char *sh, *prog;
|
||||
char *sh, *prog, *arg;
|
||||
const struct passwd *pw;
|
||||
|
||||
errno = 0;
|
||||
@ -740,12 +740,16 @@ execsh(char *cmd, char **args)
|
||||
if ((sh = getenv("SHELL")) == NULL)
|
||||
sh = (pw->pw_shell[0]) ? pw->pw_shell : cmd;
|
||||
|
||||
if (args)
|
||||
if (args) {
|
||||
prog = args[0];
|
||||
else if (utmp)
|
||||
prog = utmp;
|
||||
else
|
||||
arg = NULL;
|
||||
} else if (scroll || utmp) {
|
||||
prog = scroll ? scroll : utmp;
|
||||
arg = scroll ? utmp : NULL;
|
||||
} else {
|
||||
prog = sh;
|
||||
arg = NULL;
|
||||
}
|
||||
DEFAULT(args, ((char *[]) {prog, NULL}));
|
||||
|
||||
unsetenv("COLUMNS");
|
||||
@ -2768,4 +2772,4 @@ redraw(void)
|
||||
draw();
|
||||
}
|
||||
|
||||
#include "patch/st_include.c"
|
||||
#include "patch/st_include.c"
|
||||
|
3
st.h
3
st.h
@ -132,6 +132,7 @@ int borderpx;
|
||||
|
||||
/* config.h globals */
|
||||
extern char *utmp;
|
||||
extern char *scroll;
|
||||
extern char *stty_args;
|
||||
extern char *vtiden;
|
||||
extern wchar_t *worddelimiters;
|
||||
@ -145,4 +146,4 @@ extern const int boxdraw, boxdraw_bold, boxdraw_braille;
|
||||
#endif // BOXDRAW_PATCH
|
||||
#if ALPHA_PATCH
|
||||
extern float alpha;
|
||||
#endif // ALPHA_PATCH
|
||||
#endif // ALPHA_PATCH
|
||||
|
Loading…
Reference in New Issue
Block a user