diff --git a/src/efibootmgr/efibootmgr.c b/src/efibootmgr/efibootmgr.c index 236365a..9883961 100644 --- a/src/efibootmgr/efibootmgr.c +++ b/src/efibootmgr/efibootmgr.c @@ -803,6 +803,7 @@ usage() printf("\t-V | --version return version and exit\n"); printf("\t-w | --write-signature write unique sig to MBR if needed\n"); printf("\t-@ | --append-binary-args file append extra args from file (use \"-\" for stdin)\n"); + printf("\t | --help show help/usage\n"); } static void @@ -863,6 +864,7 @@ parse_opts(int argc, char **argv) {"version", no_argument, 0, 'V'}, {"write-signature", no_argument, 0, 'w'}, {"append-binary-args", required_argument, 0, '@'}, + {"help", no_argument, 0, 2}, {0, 0, 0, 0} }; @@ -1014,6 +1016,10 @@ parse_opts(int argc, char **argv) opts.write_signature = 1; break; + case 2: + usage(); + exit(1); + default: usage(); exit(1); diff --git a/src/lib/efi.c b/src/lib/efi.c index a4ce5cf..8ef8be8 100644 --- a/src/lib/efi.c +++ b/src/lib/efi.c @@ -70,6 +70,16 @@ efi_guid_unparse(efi_guid_t *guid, char *out) return out; } +char * +tilt_slashes(char *s) +{ + char *p; + for (p = s; *p; p++) + if (*p == '/') + *p = '\\'; + return s; +} + void set_fs_kernel_calls() { @@ -535,7 +545,7 @@ char *make_disk_load_option(char *p, char *disk) signature, mbr_type, signature_type); - efichar_from_char(os_loader_path, opts.loader, sizeof(os_loader_path)); + efichar_from_char(os_loader_path, tilt_slashes(opts.loader), sizeof(os_loader_path)); p += make_file_path_device_path (p, os_loader_path); p += make_end_device_path (p);