From 49fa21d023feb89e236ad4d655d96dde3574560e Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Thu, 20 Jul 2017 23:46:15 -0400 Subject: main: Call setlocale() at startup to use the system locale --- main.c | 4 ++++ util.c | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/main.c b/main.c index f925915..ef87898 100644 --- a/main.c +++ b/main.c @@ -13,6 +13,7 @@ #include "util.h" #include #include +#include #include #include #include @@ -46,6 +47,9 @@ int main(int argc, char *argv[]) { goto done; } + // Use the system locale instead of "C" + setlocale(LC_ALL, ""); + struct cmdline *cmdline = parse_cmdline(argc, argv); if (cmdline) { ret = eval_cmdline(cmdline); diff --git a/util.c b/util.c index 81eeda0..0d7e17d 100644 --- a/util.c +++ b/util.c @@ -373,6 +373,16 @@ static int xrpmatch(const char *response) { ret = xrpregex(YESEXPR, response); if (ret == 0) { return 1; + } else if (ret != REG_NOMATCH) { + return -1; + } + + // Failsafe: always handle y/n + char c = response[0]; + if (c == 'n' || c == 'N') { + return 0; + } else if (c == 'y' || c == 'Y') { + return 1; } else { return -1; } -- cgit v1.2.3