chiark / gitweb /
bootctl: always show slashes not backslashes
authorKay Sievers <kay@vrfy.org>
Wed, 13 Feb 2013 16:49:48 +0000 (17:49 +0100)
committerKay Sievers <kay@vrfy.org>
Wed, 13 Feb 2013 16:49:48 +0000 (17:49 +0100)
src/boot/boot-efi.c

index a0305ba77dc1afae99abe2af55ed3048dfd6b92a..faa86805d467f6d2daa8e09f32a023151f11a955 100644 (file)
 #include "efivars.h"
 #include "conf-files.h"
 
+static char *tilt_slashes(char *s) {
+        char *p;
+
+        if (!s)
+                return NULL;
+
+        for (p = s; *p; p++)
+                if (*p == '\\')
+                        *p = '/';
+        return s;
+}
+
 static int get_boot_entries(struct boot_info *info) {
         uint16_t *list;
         int i, n;
@@ -63,7 +75,7 @@ static int get_boot_entries(struct boot_info *info) {
                 err = efi_get_boot_option(list[i], &e->title, &e->part_uuid, &e->path);
                 if (err < 0)
                         continue;
-
+                tilt_slashes(e->path);
                 e->id = list[i];
                 info->fw_entries_count++;
         }
@@ -152,6 +164,7 @@ int boot_info_query(struct boot_info *info) {
         efi_get_variable_string(EFI_VENDOR_LOADER, "LoaderFirmwareType", &info->fw_type);
         efi_get_variable_string(EFI_VENDOR_LOADER, "LoaderFirmwareInfo", &info->fw_info);
         efi_get_variable_string(EFI_VENDOR_LOADER, "LoaderImageIdentifier", &info->loader_image_path);
+        tilt_slashes(info->loader_image_path);
         efi_get_loader_device_part_uuid(&info->loader_part_uuid);
 
         boot_loader_read_entries(info);