Changeset View
Changeset View
Standalone View
Standalone View
usr.sbin/efivar/efivar.c
Show First 20 Lines • Show All 112 Lines • ▼ Show 20 Lines | rep_errx(int eval, const char *fmt, ...) | ||||
va_start(ap, fmt); | va_start(ap, fmt); | ||||
verrx(eval, fmt, ap); | verrx(eval, fmt, ap); | ||||
va_end(ap); | va_end(ap); | ||||
} | } | ||||
static void | static void | ||||
breakdown_name(char *name, efi_guid_t *guid, char **vname) | breakdown_name(char *name, efi_guid_t *guid, char **vname) | ||||
{ | { | ||||
char *cp; | char *cp, *ocp; | ||||
ocp = NULL; | |||||
while (true) { | |||||
cp = strrchr(name, '-'); | cp = strrchr(name, '-'); | ||||
if (cp == NULL) | if (cp == NULL) { | ||||
rep_errx(1, "Invalid name: %s", name); | if (ocp != NULL) | ||||
*ocp = '-'; | |||||
rep_errx(1, "Invalid guid in: %s", name); | |||||
} | |||||
if (ocp != NULL) | |||||
*ocp = '-'; | |||||
*vname = cp + 1; | *vname = cp + 1; | ||||
*cp = '\0'; | *cp = '\0'; | ||||
if (efi_name_to_guid(name, guid) < 0) | ocp = cp; | ||||
rep_errx(1, "Invalid guid %s", name); | if (efi_name_to_guid(name, guid) >= 0) | ||||
break; | |||||
} | |||||
} | } | ||||
markj: If you instead write `if (efi_name_to_guid(name, guid) >= 0) break;`, you can get rid of the… | |||||
static uint8_t * | static uint8_t * | ||||
get_value(char *val, size_t *datalen) | get_value(char *val, size_t *datalen) | ||||
{ | { | ||||
static char buffer[16*1024]; | static char buffer[16*1024]; | ||||
if (val != NULL) { | if (val != NULL) { | ||||
*datalen = strlen(val); | *datalen = strlen(val); | ||||
▲ Show 20 Lines • Show All 281 Lines • Show Last 20 Lines |
If you instead write if (efi_name_to_guid(name, guid) >= 0) break;, you can get rid of the again flag variable.
BTW, efi_name_to_guid(3) is documented as unimplemented. :)