]> Dogcows Code - chaz/tint2/blobdiff - src/util/common.c
start tint2conf work
[chaz/tint2] / src / util / common.c
index 545a6be6e29689b723c9846f444dbc364c9afa61..f6fa36e32c2c0f8cbbfaeda9f339809c4db1f880 100644 (file)
@@ -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 <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-
+#include <unistd.h>
 
 #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;
This page took 0.022145 seconds and 4 git commands to generate.