Move opt_* into same file as main()/run()
This commit is purely about reducing externs and LOC. If the main and run functions ever move elsewhere (which will probably make sense eventually), these should come along with them. Signed-off-by: Devin J. Pohly <djpohly@gmail.com>master
parent
ed132e1127
commit
69e32a61df
50
st.c
50
st.c
|
@ -48,7 +48,6 @@
|
||||||
|
|
||||||
/* macros */
|
/* macros */
|
||||||
#define NUMMAXLEN(x) ((int)(sizeof(x) * 2.56 + 0.5) + 1)
|
#define NUMMAXLEN(x) ((int)(sizeof(x) * 2.56 + 0.5) + 1)
|
||||||
#define DEFAULT(a, b) (a) = (a) ? (a) : (b)
|
|
||||||
#define ISCONTROLC0(c) (BETWEEN(c, 0, 0x1f) || (c) == '\177')
|
#define ISCONTROLC0(c) (BETWEEN(c, 0, 0x1f) || (c) == '\177')
|
||||||
#define ISCONTROLC1(c) (BETWEEN(c, 0x80, 0x9f))
|
#define ISCONTROLC1(c) (BETWEEN(c, 0x80, 0x9f))
|
||||||
#define ISCONTROL(c) (ISCONTROLC0(c) || ISCONTROLC1(c))
|
#define ISCONTROL(c) (ISCONTROLC0(c) || ISCONTROLC1(c))
|
||||||
|
@ -124,8 +123,8 @@ static void sendbreak(const Arg *);
|
||||||
/* config.h for applying patches and the configuration. */
|
/* config.h for applying patches and the configuration. */
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
static void execsh(void);
|
static void execsh(char **);
|
||||||
static void stty(void);
|
static void stty(char **);
|
||||||
static void sigchld(int);
|
static void sigchld(int);
|
||||||
|
|
||||||
static void csidump(void);
|
static void csidump(void);
|
||||||
|
@ -189,14 +188,6 @@ Term term;
|
||||||
Selection sel;
|
Selection sel;
|
||||||
int cmdfd;
|
int cmdfd;
|
||||||
pid_t pid;
|
pid_t pid;
|
||||||
char **opt_cmd = NULL;
|
|
||||||
char *opt_class = NULL;
|
|
||||||
char *opt_embed = NULL;
|
|
||||||
char *opt_font = NULL;
|
|
||||||
char *opt_io = NULL;
|
|
||||||
char *opt_line = NULL;
|
|
||||||
char *opt_name = NULL;
|
|
||||||
char *opt_title = NULL;
|
|
||||||
int oldbutton = 3; /* button event on startup: 3 = release */
|
int oldbutton = 3; /* button event on startup: 3 = release */
|
||||||
|
|
||||||
static CSIEscape csiescseq;
|
static CSIEscape csiescseq;
|
||||||
|
@ -634,9 +625,9 @@ die(const char *errstr, ...)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
execsh(void)
|
execsh(char **args)
|
||||||
{
|
{
|
||||||
char **args, *sh, *prog;
|
char *sh, *prog;
|
||||||
const struct passwd *pw;
|
const struct passwd *pw;
|
||||||
|
|
||||||
errno = 0;
|
errno = 0;
|
||||||
|
@ -650,13 +641,13 @@ execsh(void)
|
||||||
if ((sh = getenv("SHELL")) == NULL)
|
if ((sh = getenv("SHELL")) == NULL)
|
||||||
sh = (pw->pw_shell[0]) ? pw->pw_shell : shell;
|
sh = (pw->pw_shell[0]) ? pw->pw_shell : shell;
|
||||||
|
|
||||||
if (opt_cmd)
|
if (args)
|
||||||
prog = opt_cmd[0];
|
prog = args[0];
|
||||||
else if (utmp)
|
else if (utmp)
|
||||||
prog = utmp;
|
prog = utmp;
|
||||||
else
|
else
|
||||||
prog = sh;
|
prog = sh;
|
||||||
args = (opt_cmd) ? opt_cmd : (char *[]) {prog, NULL};
|
DEFAULT(args, ((char *[]) {prog, NULL}));
|
||||||
|
|
||||||
unsetenv("COLUMNS");
|
unsetenv("COLUMNS");
|
||||||
unsetenv("LINES");
|
unsetenv("LINES");
|
||||||
|
@ -697,7 +688,7 @@ sigchld(int a)
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
stty(void)
|
stty(char **args)
|
||||||
{
|
{
|
||||||
char cmd[_POSIX_ARG_MAX], **p, *q, *s;
|
char cmd[_POSIX_ARG_MAX], **p, *q, *s;
|
||||||
size_t n, siz;
|
size_t n, siz;
|
||||||
|
@ -707,7 +698,7 @@ stty(void)
|
||||||
memcpy(cmd, stty_args, n);
|
memcpy(cmd, stty_args, n);
|
||||||
q = cmd + n;
|
q = cmd + n;
|
||||||
siz = sizeof(cmd) - n;
|
siz = sizeof(cmd) - n;
|
||||||
for (p = opt_cmd; p && (s = *p); ++p) {
|
for (p = args; p && (s = *p); ++p) {
|
||||||
if ((n = strlen(s)) > siz-1)
|
if ((n = strlen(s)) > siz-1)
|
||||||
die("stty parameter length too long\n");
|
die("stty parameter length too long\n");
|
||||||
*q++ = ' ';
|
*q++ = ' ';
|
||||||
|
@ -721,26 +712,26 @@ stty(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ttynew(void)
|
ttynew(char *line, char *out, char **args)
|
||||||
{
|
{
|
||||||
int m, s;
|
int m, s;
|
||||||
struct winsize w = {term.row, term.col, 0, 0};
|
struct winsize w = {term.row, term.col, 0, 0};
|
||||||
|
|
||||||
if (opt_io) {
|
if (out) {
|
||||||
term.mode |= MODE_PRINT;
|
term.mode |= MODE_PRINT;
|
||||||
iofd = (!strcmp(opt_io, "-")) ?
|
iofd = (!strcmp(out, "-")) ?
|
||||||
1 : open(opt_io, O_WRONLY | O_CREAT, 0666);
|
1 : open(out, O_WRONLY | O_CREAT, 0666);
|
||||||
if (iofd < 0) {
|
if (iofd < 0) {
|
||||||
fprintf(stderr, "Error opening %s:%s\n",
|
fprintf(stderr, "Error opening %s:%s\n",
|
||||||
opt_io, strerror(errno));
|
out, strerror(errno));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (opt_line) {
|
if (line) {
|
||||||
if ((cmdfd = open(opt_line, O_RDWR)) < 0)
|
if ((cmdfd = open(line, O_RDWR)) < 0)
|
||||||
die("open line failed: %s\n", strerror(errno));
|
die("open line failed: %s\n", strerror(errno));
|
||||||
dup2(cmdfd, 0);
|
dup2(cmdfd, 0);
|
||||||
stty();
|
stty(args);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -762,7 +753,7 @@ ttynew(void)
|
||||||
die("ioctl TIOCSCTTY failed: %s\n", strerror(errno));
|
die("ioctl TIOCSCTTY failed: %s\n", strerror(errno));
|
||||||
close(s);
|
close(s);
|
||||||
close(m);
|
close(m);
|
||||||
execsh();
|
execsh(args);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
close(s);
|
close(s);
|
||||||
|
@ -1942,8 +1933,7 @@ void
|
||||||
tprinter(char *s, size_t len)
|
tprinter(char *s, size_t len)
|
||||||
{
|
{
|
||||||
if (iofd != -1 && xwrite(iofd, s, len) < 0) {
|
if (iofd != -1 && xwrite(iofd, s, len) < 0) {
|
||||||
fprintf(stderr, "Error writing in %s:%s\n",
|
perror("Error writing to output file");
|
||||||
opt_io, strerror(errno));
|
|
||||||
close(iofd);
|
close(iofd);
|
||||||
iofd = -1;
|
iofd = -1;
|
||||||
}
|
}
|
||||||
|
@ -2532,7 +2522,7 @@ tresize(int col, int row)
|
||||||
void
|
void
|
||||||
resettitle(void)
|
resettitle(void)
|
||||||
{
|
{
|
||||||
xsettitle(opt_title ? opt_title : "st");
|
xsettitle(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
11
st.h
11
st.h
|
@ -9,6 +9,7 @@
|
||||||
#define LEN(a) (sizeof(a) / sizeof(a)[0])
|
#define LEN(a) (sizeof(a) / sizeof(a)[0])
|
||||||
#define BETWEEN(x, a, b) ((a) <= (x) && (x) <= (b))
|
#define BETWEEN(x, a, b) ((a) <= (x) && (x) <= (b))
|
||||||
#define DIVCEIL(n, d) (((n) + ((d) - 1)) / (d))
|
#define DIVCEIL(n, d) (((n) + ((d) - 1)) / (d))
|
||||||
|
#define DEFAULT(a, b) (a) = (a) ? (a) : (b)
|
||||||
#define LIMIT(x, a, b) (x) = (x) < (a) ? (a) : (x) > (b) ? (b) : (x)
|
#define LIMIT(x, a, b) (x) = (x) < (a) ? (a) : (x) > (b) ? (b) : (x)
|
||||||
#define ATTRCMP(a, b) ((a).mode != (b).mode || (a).fg != (b).fg || \
|
#define ATTRCMP(a, b) ((a).mode != (b).mode || (a).fg != (b).fg || \
|
||||||
(a).bg != (b).bg)
|
(a).bg != (b).bg)
|
||||||
|
@ -194,7 +195,7 @@ void tnew(int, int);
|
||||||
void tresize(int, int);
|
void tresize(int, int);
|
||||||
void tsetdirt(int, int);
|
void tsetdirt(int, int);
|
||||||
void tsetdirtattr(int);
|
void tsetdirtattr(int);
|
||||||
void ttynew(void);
|
void ttynew(char *, char *, char **);
|
||||||
size_t ttyread(void);
|
size_t ttyread(void);
|
||||||
void ttyresize(int, int);
|
void ttyresize(int, int);
|
||||||
void ttysend(char *, size_t);
|
void ttysend(char *, size_t);
|
||||||
|
@ -221,14 +222,6 @@ extern Term term;
|
||||||
extern Selection sel;
|
extern Selection sel;
|
||||||
extern int cmdfd;
|
extern int cmdfd;
|
||||||
extern pid_t pid;
|
extern pid_t pid;
|
||||||
extern char **opt_cmd;
|
|
||||||
extern char *opt_class;
|
|
||||||
extern char *opt_embed;
|
|
||||||
extern char *opt_font;
|
|
||||||
extern char *opt_io;
|
|
||||||
extern char *opt_line;
|
|
||||||
extern char *opt_name;
|
|
||||||
extern char *opt_title;
|
|
||||||
extern int oldbutton;
|
extern int oldbutton;
|
||||||
|
|
||||||
/* config.h globals */
|
/* config.h globals */
|
||||||
|
|
12
x.c
12
x.c
|
@ -179,6 +179,15 @@ static char *usedfont = NULL;
|
||||||
static double usedfontsize = 0;
|
static double usedfontsize = 0;
|
||||||
static double defaultfontsize = 0;
|
static double defaultfontsize = 0;
|
||||||
|
|
||||||
|
static char *opt_class = NULL;
|
||||||
|
static char **opt_cmd = NULL;
|
||||||
|
static char *opt_embed = NULL;
|
||||||
|
static char *opt_font = NULL;
|
||||||
|
static char *opt_io = NULL;
|
||||||
|
static char *opt_line = NULL;
|
||||||
|
static char *opt_name = NULL;
|
||||||
|
static char *opt_title = NULL;
|
||||||
|
|
||||||
void
|
void
|
||||||
zoom(const Arg *arg)
|
zoom(const Arg *arg)
|
||||||
{
|
{
|
||||||
|
@ -1473,6 +1482,7 @@ void
|
||||||
xsettitle(char *p)
|
xsettitle(char *p)
|
||||||
{
|
{
|
||||||
XTextProperty prop;
|
XTextProperty prop;
|
||||||
|
DEFAULT(p, "st");
|
||||||
|
|
||||||
Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle,
|
Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle,
|
||||||
&prop);
|
&prop);
|
||||||
|
@ -1757,7 +1767,7 @@ run(void)
|
||||||
} while (ev.type != MapNotify);
|
} while (ev.type != MapNotify);
|
||||||
|
|
||||||
cresize(w, h);
|
cresize(w, h);
|
||||||
ttynew();
|
ttynew(opt_line, opt_io, opt_cmd);
|
||||||
ttyresize(win.tw, win.th);
|
ttyresize(win.tw, win.th);
|
||||||
|
|
||||||
clock_gettime(CLOCK_MONOTONIC, &last);
|
clock_gettime(CLOCK_MONOTONIC, &last);
|
||||||
|
|
Reference in New Issue