X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Futil%2Fcommon.c;h=f6fa36e32c2c0f8cbbfaeda9f339809c4db1f880;hb=460902abc1d5b34c6ea4c9492369533d3ec216d9;hp=67ddc5dffe6a2ccace129469ac8c516ecd6b0840;hpb=14bb7c359cd5d07fb27cd36f6dae19991bb6836f;p=chaz%2Ftint2 diff --git a/src/util/common.c b/src/util/common.c index 67ddc5d..f6fa36e 100644 --- a/src/util/common.c +++ b/src/util/common.c @@ -3,7 +3,7 @@ * Tint2 : common windows function * * Copyright (C) 2007 PÃ¥l Staurland (staura@gmail.com) -* Modified (C) 2008 thierry lorthiois (lorthiois@bbsoft.fr) +* Modified (C) 2008 thierry lorthiois (lorthiois@bbsoft.fr) from Omega distribution * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version 2 @@ -25,7 +25,7 @@ #include #include #include - +#include #include "common.h" #include "../server.h" @@ -77,6 +77,23 @@ int parse_line (const char *line, char **key, char **value) } +void tint_exec(const char *command) +{ + if (command) { + pid_t pid; + pid = fork(); + if (pid == 0) { + // change for the fork the signal mask +// sigset_t sigset; +// sigprocmask(SIG_SETMASK, &sigset, 0); +// sigprocmask(SIG_UNBLOCK, &sigset, 0); + execl("/bin/sh", "/bin/sh", "-c", command, NULL); + _exit(0); + } + } +} + + int hex_char_to_int (char c) { int r; @@ -129,6 +146,45 @@ void get_color (char *hex, double *rgb) } +void extract_values (const char *value, char **value1, char **value2, char **value3) +{ + char *b=0, *c=0; + + if (*value1) free (*value1); + if (*value2) free (*value2); + if (*value3) free (*value3); + + if ((b = strchr (value, ' '))) { + b[0] = '\0'; + b++; + } + else { + *value2 = 0; + *value3 = 0; + } + *value1 = strdup (value); + g_strstrip(*value1); + + if (b) { + if ((c = strchr (b, ' '))) { + c[0] = '\0'; + c++; + } + else { + c = 0; + *value3 = 0; + } + *value2 = strdup (b); + g_strstrip(*value2); + } + + if (c) { + *value3 = strdup (c); + g_strstrip(*value3); + } +} + + void adjust_asb(DATA32 *data, int w, int h, int alpha, float satur, float bright) { unsigned int x, y; @@ -281,6 +337,7 @@ void render_image(Drawable d, int x, int y, int w, int h) Picture pict_drawable = XRenderCreatePicture(server.dsp, d, XRenderFindVisualFormat(server.dsp, server.visual), 0, 0); XRenderComposite(server.dsp, PictOpIn, pict_image, None, pict_image, 0, 0, 0, 0, 0, 0, w, h); XRenderComposite(server.dsp, PictOpOver, pict_image, None, pict_drawable, 0, 0, 0, 0, x, y, w, h); + imlib_context_set_blend(1); XFreePixmap(server.dsp, pmap_tmp); XRenderFreePicture(server.dsp, pict_image); XRenderFreePicture(server.dsp, pict_drawable);