Allow ']' char in string of \s[] sequences, by adding a \ before
This commit is contained in:
parent
2ad1e52051
commit
aa71bf00f9
@ -446,7 +446,6 @@ client_frame_update(struct client *c, struct colpair *cp)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
client_tab_focus(struct client *c)
|
||||
{
|
||||
@ -490,7 +489,7 @@ client_tab_focus(struct client *c)
|
||||
void
|
||||
_client_tab(struct client *c, struct client *cm)
|
||||
{
|
||||
int m[2] = { CLIENT_TILED, CLIENT_FREE };
|
||||
long m[2] = { CLIENT_TILED, CLIENT_FREE };
|
||||
|
||||
/* Do not tab already tabed client */
|
||||
if(c->flags & (CLIENT_TABBED | CLIENT_TABMASTER)
|
||||
@ -1147,7 +1146,7 @@ _fac_check_to_reverse(struct client *c)
|
||||
* Reverse back the flag and the window geo
|
||||
* in previous affected clients
|
||||
*/
|
||||
SLIST_FOREACH(cc, &c->tag->clients, tnext)
|
||||
FOREACH_NFCLIENT(cc, &c->tag->clients, tnext)
|
||||
{
|
||||
cc->tgeo = cc->ttgeo;
|
||||
cc->flags &= ~CLIENT_DID_WINSIZE;
|
||||
|
||||
12
src/status.c
12
src/status.c
@ -92,7 +92,7 @@ status_parse(struct status_ctx *ctx)
|
||||
struct status_seq *sq, *prev = NULL;
|
||||
int i, shift = 0;
|
||||
char *dstr = xstrdup(ctx->status), *sauv = dstr;
|
||||
char type, *p, *end, *arg[6] = { NULL };
|
||||
char type, *p, *pp, *end, *arg[6] = { NULL };
|
||||
|
||||
for(; *dstr; ++dstr)
|
||||
{
|
||||
@ -102,7 +102,11 @@ status_parse(struct status_ctx *ctx)
|
||||
|
||||
p = ++dstr;
|
||||
|
||||
if(!(strchr("sRi", *p)) || !(end = strchr(p, ']')))
|
||||
/* Search end of sequence (] without \ behind) */
|
||||
for(end = strchr(p, ']'); *(end - 1) == '\\';)
|
||||
end = strchr(end + 1, ']');
|
||||
|
||||
if(!(strchr("sRi", *p)) || !end )
|
||||
continue;
|
||||
|
||||
/* Then parse & list it */
|
||||
@ -119,6 +123,10 @@ status_parse(struct status_ctx *ctx)
|
||||
sq->color = color_atoh(arg[1 + shift]);
|
||||
sq->str = xstrdup(arg[2 + shift]);
|
||||
|
||||
/* Remove \ from string */
|
||||
for(pp = sq->str; (pp = strchr(sq->str, '\\'));)
|
||||
memmove(pp, pp + 1, strlen(pp));
|
||||
|
||||
break;
|
||||
|
||||
/*
|
||||
|
||||
@ -126,7 +126,7 @@ parse_args(char *str, char delim, char end, int narg, char *args[])
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
for(args[0] = str; *str && *str != end && i < narg; ++str)
|
||||
for(args[0] = str; *str && (*str != end || *(str - 1) == '\\') && i < narg; ++str)
|
||||
if(*str == delim)
|
||||
{
|
||||
*str = '\0';
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user