paleofetch

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 34b9b6ad58d45a71b6f96efc81fddbe9873b746d
parent db14584397587815e025d8ef570e825852060538
Author: sam-barr <samfbarr@outlook.com>
Date:   Wed, 22 Apr 2020 16:43:50 -0500

Only call XOpenDisplay once

Diffstat:
Mpaleofetch.c | 17+++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/paleofetch.c b/paleofetch.c @@ -38,6 +38,7 @@ // TODO: Finish it +Display *display; struct utsname uname_info; struct sysinfo my_sysinfo; int title_length; @@ -224,16 +225,10 @@ char *get_shell() { } char *get_resolution() { - Display *display = XOpenDisplay(NULL); - if(display == NULL) { - status = -1; - halt_and_catch_fire("XOpenDisplay failed"); - } int screen = DefaultScreen(display); int width = DisplayWidth(display, screen); int height = DisplayHeight(display, screen); - XCloseDisplay(display); char *resolution = malloc(BUF_SIZE); snprintf(resolution, BUF_SIZE, "%dx%d", width, height); @@ -242,7 +237,6 @@ char *get_resolution() { } char *get_terminal() { - Display *display = XOpenDisplay(NULL); unsigned char *prop; unsigned long _, // not unused, but we don't need the results window = RootWindow(display, XDefaultScreen(display)); @@ -257,7 +251,8 @@ char *get_terminal() { window = (prop[3] << 24) + (prop[2] << 16) + (prop[1] << 8) + prop[0]; free(prop); GetProp(class); - XCloseDisplay(display); + +#undef GetProp char *terminal = malloc(BUF_SIZE); snprintf(terminal, BUF_SIZE, "%s", prop); @@ -411,6 +406,11 @@ int main(int argc, char *argv[]) { halt_and_catch_fire("uname failed"); status = sysinfo(&my_sysinfo); halt_and_catch_fire("sysinfo failed"); + display = XOpenDisplay(NULL); + if(display == NULL) { + status = -1; + halt_and_catch_fire("XOpenDisplay failed"); + } cache = get_cache_file(); if(argc == 2 && strcmp(argv[1], "--recache") == 0) @@ -474,5 +474,6 @@ int main(int argc, char *argv[]) { free(colors1); free(colors2); + XCloseDisplay(display); free(cache); }