Fix negative width being ignored

In `x_parse_geometry` we modified the global settings struct for
negative width instead of updating it in the struct that is currently
being constructed.

As a result the negative_width field was always false as it was being
overwritten by the struct assignment after the functions return.

Fixes #628
This commit is contained in:
Nikos Tsipinakis 2019-05-02 12:31:24 +03:00
parent d6bd506669
commit 264df67a63

View File

@ -531,16 +531,15 @@ void x_setup(void)
struct geometry x_parse_geometry(const char *geom_str) struct geometry x_parse_geometry(const char *geom_str)
{ {
assert(geom_str); assert(geom_str);
struct geometry geometry = { 0 };
if (geom_str[0] == '-') { if (geom_str[0] == '-') {
settings.geometry.negative_width = true; geometry.negative_width = true;
geom_str++; geom_str++;
} else { } else {
settings.geometry.negative_width = false; geometry.negative_width = false;
} }
struct geometry geometry = { 0 };
int mask = XParseGeometry(geom_str, int mask = XParseGeometry(geom_str,
&geometry.x, &geometry.y, &geometry.x, &geometry.y,
&geometry.w, &geometry.h); &geometry.w, &geometry.h);