]> glassweightruler.freedombox.rocks Git - Ventoy.git/blobdiff - GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy.c
Support * fuzzy matching for file path in some plugins
[Ventoy.git] / GRUB2 / MOD_SRC / grub-2.04 / grub-core / ventoy / ventoy.c
index 396b376438bdea8c3f3d887de293fee0e4db1f44..0422ced5b95aaa73e256ca283cdcb8131ce8f07f 100644 (file)
@@ -148,6 +148,38 @@ void ventoy_debug(const char *fmt, ...)
     va_end (args);
 }
 
+int ventoy_strcmp(const char *pattern, const char *str)
+{
+    while (*pattern && *str)
+    {
+        if ((*pattern != *str) && (*pattern != '*'))
+            break;
+
+        pattern++;
+        str++;
+    }
+
+    return (int)(grub_uint8_t)*pattern - (int)(grub_uint8_t)*str;
+}
+
+int ventoy_strncmp (const char *pattern, const char *str, grub_size_t n)
+{
+    if (n == 0)
+        return 0;
+
+    while (*pattern && *str && --n)
+    {
+        if ((*pattern != *str) && (*pattern != '*'))
+            break;
+
+        pattern++;
+        str++;
+    }
+
+    return (int)(grub_uint8_t)*pattern - (int)(grub_uint8_t)*str;
+}
+
+
 void ventoy_debug_dump_guid(const char *prefix, grub_uint8_t *guid)
 {
     int i;