summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-wm/fvwm/files/new-test-conditions.patch')
-rw-r--r--x11-wm/fvwm/files/new-test-conditions.patch267
1 files changed, 267 insertions, 0 deletions
diff --git a/x11-wm/fvwm/files/new-test-conditions.patch b/x11-wm/fvwm/files/new-test-conditions.patch
new file mode 100644
index 0000000..3cc4072
--- /dev/null
+++ b/x11-wm/fvwm/files/new-test-conditions.patch
@@ -0,0 +1,267 @@
+Index: fvwm/conditional.c
+===================================================================
+RCS file: /home/cvs/fvwm/fvwm/fvwm/conditional.c,v
+retrieving revision 1.119
+diff -u -r1.119 conditional.c
+--- fvwm/conditional.c 27 Jan 2007 11:33:15 -0000 1.119
++++ fvwm/conditional.c 9 Mar 2007 20:23:14 -0000
+@@ -2085,6 +2085,202 @@
+ error = 1;
+ }
+ }
++ else if (StrEquals(cond, "EnvGreaterOrEqual"))
++ {
++ char *var_name;
++ flags_ptr = GetNextSimpleOption(flags_ptr, &var_name);
++ if (var_name)
++ {
++ const char *value = getenv(var_name);
++ char *pattern;
++ /* unfortunately, GetNextSimpleOption is
++ * broken, does not accept quoted empty "" */
++ flags_ptr = GetNextSimpleOption(
++ flags_ptr, &pattern);
++ if (!value)
++ {
++ value = "";
++ }
++ if (pattern)
++ {
++ match =
++ /* include empty string case */
++ (!pattern[0] && !value[0])
++ ||
++ (atoi(value) >= atoi(pattern));
++ }
++ else
++ {
++ error = 1;
++ }
++ }
++ else
++ {
++ error = 1;
++ }
++ }
++ else if (StrEquals(cond, "EnvGreater"))
++ {
++ char *var_name;
++ flags_ptr = GetNextSimpleOption(flags_ptr, &var_name);
++ if (var_name)
++ {
++ const char *value = getenv(var_name);
++ char *pattern;
++ /* unfortunately, GetNextSimpleOption is
++ * broken, does not accept quoted empty "" */
++ flags_ptr = GetNextSimpleOption(
++ flags_ptr, &pattern);
++ if (!value)
++ {
++ value = "";
++ }
++ if (pattern)
++ {
++ match =
++ /* include empty string case */
++ (!pattern[0] && !value[0])
++ ||
++ (atoi(value) > atoi(pattern));
++ }
++ else
++ {
++ error = 1;
++ }
++ }
++ else
++ {
++ error = 1;
++ }
++ }
++ else if (StrEquals(cond, "EnvLesser"))
++ {
++ char *var_name;
++ flags_ptr = GetNextSimpleOption(flags_ptr, &var_name);
++ if (var_name)
++ {
++ const char *value = getenv(var_name);
++ char *pattern;
++ /* unfortunately, GetNextSimpleOption is
++ * broken, does not accept quoted empty "" */
++ flags_ptr = GetNextSimpleOption(
++ flags_ptr, &pattern);
++ if (!value)
++ {
++ value = "";
++ }
++ if (pattern)
++ {
++ match =
++ /* include empty string case */
++ (!pattern[0] && !value[0])
++ ||
++ (atoi(value) < atoi(pattern));
++ }
++ else
++ {
++ error = 1;
++ }
++ }
++ else
++ {
++ error = 1;
++ }
++ }
++ else if (StrEquals(cond, "EnvLesserOrEqual"))
++ {
++ char *var_name;
++ flags_ptr = GetNextSimpleOption(flags_ptr, &var_name);
++ if (var_name)
++ {
++ const char *value = getenv(var_name);
++ char *pattern;
++ /* unfortunately, GetNextSimpleOption is
++ * broken, does not accept quoted empty "" */
++ flags_ptr = GetNextSimpleOption(
++ flags_ptr, &pattern);
++ if (!value)
++ {
++ value = "";
++ }
++ if (pattern)
++ {
++ match =
++ /* include empty string case */
++ (!pattern[0] && !value[0])
++ ||
++ (atoi(value) <= atoi(pattern));
++ }
++ else
++ {
++ error = 1;
++ }
++ }
++ else
++ {
++ error = 1;
++ }
++ }
++ else if (StrEquals(cond, "Compare"))
++ {
++ char *var_name;
++ flags_ptr = GetNextSimpleOption(flags_ptr, &var_name);
++ if (var_name)
++ {
++ const char *value = getenv(var_name);
++ char *operation;
++ char *pattern;
++ /* unfortunately, GetNextSimpleOption is
++ * broken, does not accept quoted empty "" */
++ flags_ptr = GetNextSimpleOption(
++ flags_ptr, &operation);
++ flags_ptr = GetNextSimpleOption(
++ flags_ptr, &pattern);
++ if (!value)
++ {
++ value = "";
++ }
++ if (operation && pattern)
++ {
++ if (strcmp(operation,">=") == 0)
++ {
++ match = (atoi(value) >= atoi(pattern));
++ }
++ else
++ if (strcmp(operation,">") == 0)
++ {
++ match = (atoi(value) > atoi(pattern));
++ }
++ else
++ if (strcmp(operation,"==") == 0)
++ {
++ match = (atoi(value) == atoi(pattern));
++ }
++ else
++ if (strcmp(operation,"<") == 0)
++ {
++ match = (atoi(value) < atoi(pattern));
++ }
++ else
++ if (strcmp(operation,"<=") == 0)
++ {
++ match = (atoi(value) <= atoi(pattern));
++ }
++ else
++ {
++ match = (!pattern[0] && !value[0]);
++ }
++ }
++ else
++ {
++ error = 1;
++ }
++ }
++ else
++ {
++ error = 1;
++ }
++ }
+ else if (StrEquals(cond, "EdgeIsActive"))
+ {
+ direction_t dir= DIR_NONE;
+Index: fvwm/fvwm.1.in
+===================================================================
+RCS file: /home/cvs/fvwm/fvwm/fvwm/fvwm.1.in,v
+retrieving revision 1.251
+diff -u -r1.251 fvwm.1.in
+--- fvwm/fvwm.1.in 4 Feb 2007 20:25:30 -0000 1.251
++++ fvwm/fvwm.1.in 9 Mar 2007 20:23:32 -0000
+@@ -11082,6 +11082,11 @@
+ .IR "Version operator x.y.z" ,
+ .IR "EnvIsSet varname" ,
+ .IR "EnvMatch varname pattern" ,
++.IR "EnvLesser varname pattern" ,
++.IR "EnvLesserOrEqual varname pattern" ,
++.IR "EnvGreaterOrEqual varname pattern" ,
++.IR "EnvGreater varname pattern" ,
++.IR "Compare varname operator pattern" ,
+ .IR "EdgeHasPointer direction" ,
+ .IR "EdgeIsActive direction" ,
+ .IR Start ,
+@@ -11126,6 +11131,37 @@
+ .I pattern
+ matches the given environment variable value.
+ The pattern may contain special "*" and "?" chars.
++The
++.I "EnvGreaterOrEqual varname pattern"
++test-condition is true if
++.I pattern
++matches or is greater than the given environment variable value.
++The
++.I "EnvGreater varname pattern"
++test-condition is true if
++.I pattern
++is greater than the given environment variable value.
++The
++.I "EnvLesser varname pattern"
++test-condition is true if
++.I pattern
++is lesser than the given environment variable value.
++The
++.I "EnvLesserOrEqual varname pattern"
++test-condition is true if
++.I pattern
++matches or is lesser than the given environment variable value.
++
++The
++.IB "Compare varname operator pattern "
++test-condition is true if the logical operation defined by
++.IB "varname",
++.IB "operator "
++and
++.IB "pattern "
++is true. Where
++.IB "operator "
++is one of >=, >, ==, <=, <.
+
+ The
+ .IB "EdgeHasPointer " [ direction ]