]> glassweightruler.freedombox.rocks Git - Ventoy.git/blobdiff - GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy.c
Support BSD style for .md5/.sha1/.sh256/.sha512 checksum file.
[Ventoy.git] / GRUB2 / MOD_SRC / grub-2.04 / grub-core / ventoy / ventoy.c
index 5242cb0332d0c7834fdcf475b62df8a9aac06a4e..38927df89788b0ed4dbab1c162c2f9ce235e947a 100644 (file)
@@ -115,6 +115,92 @@ int ventoy_str_all_digit(const char *str)
     return 1;
 }
 
+int ventoy_str_all_alnum(const char *str)
+{
+    if (NULL == str || 0 == *str)
+    {
+        return 0;
+    }
+
+    while (*str)
+    {
+        if (!grub_isalnum(*str))
+        {
+            return 0;
+        }
+    }
+
+    return 1;
+}
+
+int ventoy_str_len_alnum(const char *str, int len)
+{
+    int i;
+    int slen;
+    
+    if (NULL == str || 0 == *str)
+    {
+        return 0;
+    }
+
+    slen = grub_strlen(str);
+    if (slen <= len)
+    {
+        return 0;
+    }
+
+    for (i = 0; i < len; i++)
+    {
+        if (!grub_isalnum(str[i]))
+        {
+            return 0;
+        }
+    }
+
+    if (str[len] == 0 || grub_isspace(str[len]))
+    {
+        return 1;
+    }
+
+    return 0;
+}
+
+char * ventoy_str_basename(char *path)
+{
+    char *pos = NULL;
+    
+    pos = grub_strrchr(path, '/');
+    if (pos)
+    {
+        pos++;
+    }
+    else
+    {
+        pos = path;
+    }
+
+    return pos;
+}
+
+int ventoy_str_chrcnt(const char *str, char c)
+{
+    int n = 0;
+    
+    if (str)
+    {
+        while (*str)
+        {
+            if (*str == c)
+            {
+                n++;                
+            }
+            str++;
+        }        
+    }
+
+    return n;
+}
+
 int ventoy_strcmp(const char *pattern, const char *str)
 {
     while (*pattern && *str)
@@ -146,6 +232,14 @@ int ventoy_strncmp (const char *pattern, const char *str, grub_size_t n)
     return (int)(grub_uint8_t)*pattern - (int)(grub_uint8_t)*str;
 }
 
+grub_err_t ventoy_env_int_set(const char *name, int value)
+{
+    char buf[16];
+    
+    grub_snprintf(buf, sizeof(buf), "%d", value);
+    return grub_env_set(name, buf);
+}
+
 void ventoy_debug_dump_guid(const char *prefix, grub_uint8_t *guid)
 {
     int i;