Refactor yesDialog utility.

This commit is contained in:
Ondrej Kozina
2019-05-22 12:05:54 +02:00
parent 60d26be325
commit 3f549ad0df
2 changed files with 11 additions and 6 deletions

View File

@@ -69,7 +69,7 @@ void clogger(struct crypt_device *cd, int level, const char *file, int line,
void tool_log(int level, const char *msg, void *usrptr __attribute__((unused))); void tool_log(int level, const char *msg, void *usrptr __attribute__((unused)));
void quiet_log(int level, const char *msg, void *usrptr); void quiet_log(int level, const char *msg, void *usrptr);
int yesDialog(const char *msg, void *usrptr __attribute__((unused))); int yesDialog(const char *msg, void *usrptr);
void show_status(int errcode); void show_status(int errcode);
const char *uuid_or_device(const char *spec); const char *uuid_or_device(const char *spec);
__attribute__ ((noreturn)) \ __attribute__ ((noreturn)) \

View File

@@ -128,12 +128,12 @@ void quiet_log(int level, const char *msg, void *usrptr)
tool_log(level, msg, usrptr); tool_log(level, msg, usrptr);
} }
int yesDialog(const char *msg, void *usrptr) static int _dialog(const char *msg, void *usrptr, int default_answer)
{ {
const char *fail_msg = (const char *)usrptr; const char *fail_msg = (const char *)usrptr;
char *answer = NULL; char *answer = NULL;
size_t size = 0; size_t size = 0;
int r = 1, block; int r = default_answer, block;
block = tools_signals_blocked(); block = tools_signals_blocked();
if (block) if (block)
@@ -150,9 +150,9 @@ int yesDialog(const char *msg, void *usrptr)
log_err(_("Error reading response from terminal.")); log_err(_("Error reading response from terminal."));
else else
log_dbg("Query interrupted on signal."); log_dbg("Query interrupted on signal.");
} else if (strcmp(answer, "YES\n")) { } else {
r = 0; r = !strcmp(answer, "YES\n");
if (fail_msg) if (!r && fail_msg)
log_err("%s", fail_msg); log_err("%s", fail_msg);
} }
} }
@@ -164,6 +164,11 @@ int yesDialog(const char *msg, void *usrptr)
return r; return r;
} }
int yesDialog(const char *msg, void *usrptr)
{
return _dialog(msg, usrptr, 1);
}
void show_status(int errcode) void show_status(int errcode)
{ {
char *crypt_error; char *crypt_error;