st 0.8.5 upgrade.
This commit is contained in:
parent
fbf57efaf4
commit
7eeeb54de9
9 changed files with 5131 additions and 11 deletions
|
@ -29,8 +29,8 @@ you can manually run `tic -sx st.info`.
|
||||||
|
|
||||||
## I would like to have utmp and/or scroll functionality by default
|
## 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
|
You can add the absolute path of both programs in your config.h file. You only
|
||||||
file. You only have to modify the value of utmp and scroll variables.
|
have to modify the value of utmp and scroll variables.
|
||||||
|
|
||||||
|
|
||||||
## Why doesn't the Del key work in some programs?
|
## Why doesn't the Del key work in some programs?
|
||||||
|
|
|
@ -129,7 +129,8 @@ static const char *colorname[] = {
|
||||||
/* more colors can be added after 255 to use with DefaultXX */
|
/* more colors can be added after 255 to use with DefaultXX */
|
||||||
"#cccccc",
|
"#cccccc",
|
||||||
"#555555",
|
"#555555",
|
||||||
"black",
|
"gray90", /* default foreground colour */
|
||||||
|
"black", /* default background colour */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -137,9 +138,9 @@ static const char *colorname[] = {
|
||||||
* Default colors (colorname index)
|
* Default colors (colorname index)
|
||||||
* foreground, background, cursor, reverse cursor
|
* foreground, background, cursor, reverse cursor
|
||||||
*/
|
*/
|
||||||
unsigned int defaultfg = 7;
|
unsigned int defaultfg = 258;
|
||||||
unsigned int defaultbg = 258;
|
unsigned int defaultbg = 259;
|
||||||
static unsigned int defaultcs = 256;
|
unsigned int defaultcs = 256;
|
||||||
static unsigned int defaultrcs = 257;
|
static unsigned int defaultrcs = 257;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -133,7 +133,7 @@ static const char *colorname[] = {
|
||||||
*/
|
*/
|
||||||
unsigned int defaultfg = 256;
|
unsigned int defaultfg = 256;
|
||||||
unsigned int defaultbg = 257;
|
unsigned int defaultbg = 257;
|
||||||
static unsigned int defaultcs = 258;
|
unsigned int defaultcs = 258;
|
||||||
static unsigned int defaultrcs = 259;
|
static unsigned int defaultrcs = 259;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# st version
|
# st version
|
||||||
VERSION = 0.8.4
|
VERSION = 0.8.5
|
||||||
|
|
||||||
# Customize below to fit your system
|
# Customize below to fit your system
|
||||||
|
|
||||||
|
|
|
@ -1910,6 +1910,42 @@ csireset(void)
|
||||||
memset(&csiescseq, 0, sizeof(csiescseq));
|
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
|
void
|
||||||
strhandle(void)
|
strhandle(void)
|
||||||
{
|
{
|
||||||
|
@ -1948,14 +1984,56 @@ strhandle(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
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();
|
||||||
|
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
|
||||||
|
redraw();
|
||||||
|
return;
|
||||||
|
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();
|
||||||
|
return;
|
||||||
case 4: /* color set */
|
case 4: /* color set */
|
||||||
if (narg < 3)
|
if (narg < 3)
|
||||||
break;
|
break;
|
||||||
p = strescseq.args[2];
|
p = strescseq.args[2];
|
||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
case 104: /* color reset, here p = NULL */
|
case 104: /* color reset */
|
||||||
j = (narg > 1) ? atoi(strescseq.args[1]) : -1;
|
j = (narg > 1) ? atoi(strescseq.args[1]) : -1;
|
||||||
if (xsetcolorname(j, p)) {
|
|
||||||
|
if (p && !strcmp(p, "?"))
|
||||||
|
osc4_color_response(j);
|
||||||
|
else if (xsetcolorname(j, p)) {
|
||||||
if (par == 104 && narg <= 1)
|
if (par == 104 && narg <= 1)
|
||||||
return; /* color reset without parameter */
|
return; /* color reset without parameter */
|
||||||
fprintf(stderr, "erresc: invalid color j=%d, p=%s\n",
|
fprintf(stderr, "erresc: invalid color j=%d, p=%s\n",
|
||||||
|
@ -2550,6 +2628,10 @@ check_control_code:
|
||||||
if (width == 2) {
|
if (width == 2) {
|
||||||
gp->mode |= ATTR_WIDE;
|
gp->mode |= ATTR_WIDE;
|
||||||
if (term.c.x+1 < term.col) {
|
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].u = '\0';
|
||||||
gp[1].mode = ATTR_WDUMMY;
|
gp[1].mode = ATTR_WDUMMY;
|
||||||
}
|
}
|
||||||
|
|
2820
_suckless/st/st.c.orig
Normal file
2820
_suckless/st/st.c.orig
Normal file
File diff suppressed because it is too large
Load diff
|
@ -83,9 +83,9 @@ void die(const char *, ...);
|
||||||
void redraw(void);
|
void redraw(void);
|
||||||
void draw(void);
|
void draw(void);
|
||||||
|
|
||||||
void externalpipe(const Arg *);
|
|
||||||
void kscrolldown(const Arg *);
|
void kscrolldown(const Arg *);
|
||||||
void kscrollup(const Arg *);
|
void kscrollup(const Arg *);
|
||||||
|
void externalpipe(const Arg *);
|
||||||
void printscreen(const Arg *);
|
void printscreen(const Arg *);
|
||||||
void printsel(const Arg *);
|
void printsel(const Arg *);
|
||||||
void sendbreak(const Arg *);
|
void sendbreak(const Arg *);
|
||||||
|
@ -116,6 +116,8 @@ void *xmalloc(size_t);
|
||||||
void *xrealloc(void *, size_t);
|
void *xrealloc(void *, size_t);
|
||||||
char *xstrdup(const char *);
|
char *xstrdup(const char *);
|
||||||
|
|
||||||
|
int xgetcolor(int x, unsigned char *r, unsigned char *g, unsigned char *b);
|
||||||
|
|
||||||
/* config.h globals */
|
/* config.h globals */
|
||||||
extern char *utmp;
|
extern char *utmp;
|
||||||
extern char *scroll;
|
extern char *scroll;
|
||||||
|
@ -128,4 +130,5 @@ extern char *termname;
|
||||||
extern unsigned int tabspaces;
|
extern unsigned int tabspaces;
|
||||||
extern unsigned int defaultfg;
|
extern unsigned int defaultfg;
|
||||||
extern unsigned int defaultbg;
|
extern unsigned int defaultbg;
|
||||||
|
extern unsigned int defaultcs;
|
||||||
extern float alpha;
|
extern float alpha;
|
||||||
|
|
|
@ -812,6 +812,19 @@ xloadcols(void)
|
||||||
loaded = 1;
|
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
|
int
|
||||||
xsetcolorname(int x, const char *name)
|
xsetcolorname(int x, const char *name)
|
||||||
{
|
{
|
||||||
|
|
2201
_suckless/st/x.c.orig
Normal file
2201
_suckless/st/x.c.orig
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue