summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut2003-05-27 19:36:55 +0000
committerPeter Eisentraut2003-05-27 19:36:55 +0000
commit4bddc3a5b342dbf99caa787e7c331a49d3ddbc36 (patch)
treede0a96ed913e0118ebce1ce39dfc29db4c9ebde2
parent8619d5678ec3b4a779927d3ddc6a56b4718ad55a (diff)
Internationalize interactive yes/no responses.
-rw-r--r--src/bin/scripts/common.c21
-rw-r--r--src/bin/scripts/common.h3
-rw-r--r--src/bin/scripts/createuser.c4
-rw-r--r--src/bin/scripts/dropdb.c2
-rw-r--r--src/bin/scripts/dropuser.c2
5 files changed, 28 insertions, 4 deletions
diff --git a/src/bin/scripts/common.c b/src/bin/scripts/common.c
index 718479f54f..a3a293d32c 100644
--- a/src/bin/scripts/common.c
+++ b/src/bin/scripts/common.c
@@ -153,3 +153,24 @@ executeQuery(PGconn *conn, const char *query, const char *progname, bool echo)
return res;
}
+
+
+/*
+ * Check yes/no answer in a localized way. 1=yes, 0=no, -1=neither.
+ */
+
+/* translator: Make sure the (y/n) prompts match the translation of this. */
+#define PG_YESLETTER gettext_noop("y")
+/* translator: Make sure the (y/n) prompts match the translation of this. */
+#define PG_NOLETTER gettext_noop("n")
+
+int
+check_yesno_response(const char *string)
+{
+ if (strcmp(string, gettext(PG_YESLETTER)) == 0)
+ return 1;
+ else if (strcmp(string, gettext(PG_NOLETTER)) == 0)
+ return 0;
+ else
+ return -1;
+}
diff --git a/src/bin/scripts/common.h b/src/bin/scripts/common.h
index 6122b686ce..8fb33dfd03 100644
--- a/src/bin/scripts/common.h
+++ b/src/bin/scripts/common.h
@@ -32,3 +32,6 @@ connectDatabase(const char *dbname, const char *pghost, const char *pgport,
PGresult *
executeQuery(PGconn *conn, const char *command, const char *progname, bool echo);
+
+int
+check_yesno_response(const char *string);
diff --git a/src/bin/scripts/createuser.c b/src/bin/scripts/createuser.c
index a1637a5109..c443f7c377 100644
--- a/src/bin/scripts/createuser.c
+++ b/src/bin/scripts/createuser.c
@@ -166,7 +166,7 @@ main(int argc, char *argv[])
char *reply;
reply = simple_prompt("Shall the new user be allowed to create databases? (y/n) ", 1, true);
- if (reply[0] == 'y' || reply[0] == 'Y')
+ if (check_yesno_response(reply) == 1)
createdb = +1;
else
createdb = -1;
@@ -177,7 +177,7 @@ main(int argc, char *argv[])
char *reply;
reply = simple_prompt("Shall the new user be allowed to create more new users? (y/n) ", 1, true);
- if (reply[0] == 'y' || reply[0] == 'Y')
+ if (check_yesno_response(reply) == 1)
adduser = +1;
else
adduser = -1;
diff --git a/src/bin/scripts/dropdb.c b/src/bin/scripts/dropdb.c
index 3e874abee9..74a987e28d 100644
--- a/src/bin/scripts/dropdb.c
+++ b/src/bin/scripts/dropdb.c
@@ -107,7 +107,7 @@ main(int argc, char *argv[])
printf(_("Database \"%s\" will be permanently deleted.\n"), dbname);
reply = simple_prompt("Are you sure? (y/n) ", 1, true);
- if (reply[0] != 'y' && reply[0] != 'Y')
+ if (check_yesno_response(reply) != 1)
exit(0);
}
diff --git a/src/bin/scripts/dropuser.c b/src/bin/scripts/dropuser.c
index 7c492e33ca..eebaa2f494 100644
--- a/src/bin/scripts/dropuser.c
+++ b/src/bin/scripts/dropuser.c
@@ -108,7 +108,7 @@ main(int argc, char *argv[])
printf(_("User \"%s\" will be permanently deleted.\n"), dropuser);
reply = simple_prompt("Are you sure? (y/n) ", 1, true);
- if (reply[0] != 'y' && reply[0] != 'Y')
+ if (check_yesno_response(reply) != 1)
exit(0);
}