mirror of
https://gitlab.com/cryptsetup/cryptsetup.git
synced 2025-12-14 20:30:04 +01:00
Refactor yesDialog utility.
This commit is contained in:
@@ -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)) \
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user