grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 09/10] kern: Make it possible to subtract conditions from debug=


From: Javier Martinez Canillas
Subject: [PATCH 09/10] kern: Make it possible to subtract conditions from debug=
Date: Fri, 13 Mar 2020 20:16:59 +0100

From: Peter Jones <address@hidden>

This makes it so you can do set debug to "all,-scripting,-lexer" and get the
obvious outcome.  Any negation present will take preference over that
conditional, so "all,-scripting,scripting" is the same thing as
"all,-scripting".

Signed-off-by: Peter Jones <address@hidden>
Signed-off-by: Javier Martinez Canillas <address@hidden>

---

 grub-core/kern/misc.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c
index ce92ddd076d..e5fd8c1915f 100644
--- a/grub-core/kern/misc.c
+++ b/grub-core/kern/misc.c
@@ -162,12 +162,24 @@ int
 grub_debug_enabled (const char * condition)
 {
   const char *debug;
+  char *negcond;
+  int negated = 0;
 
   debug = grub_env_get ("debug");
   if (!debug)
     return 0;
 
-  if (grub_strword (debug, "all") || grub_strword (debug, condition))
+  negcond = grub_zalloc (grub_strlen (condition) + 2);
+  if (negcond)
+    {
+      grub_strcpy (negcond, "-");
+      grub_strcpy (negcond+1, condition);
+      negated = grub_strword (debug, negcond);
+      grub_free (negcond);
+    }
+
+  if (!negated &&
+      (grub_strword (debug, "all") || grub_strword (debug, condition)))
     return 1;
 
   return 0;
-- 
2.24.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]