aboutsummaryrefslogtreecommitdiff
path: root/libbutl/prompt.mxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2018-07-07 12:34:08 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2018-07-07 12:34:08 +0200
commit726f4573a5d183a685e0a1032a3e247e3b47482e (patch)
treea92ee55bdea255789df662c77063ee89ccca6eff /libbutl/prompt.mxx
parentfb9b318a77ad9364aa2303679c0b84d2d1bdb055 (diff)
Move prompt facility from bpkg to libbutl
Diffstat (limited to 'libbutl/prompt.mxx')
-rw-r--r--libbutl/prompt.mxx36
1 files changed, 36 insertions, 0 deletions
diff --git a/libbutl/prompt.mxx b/libbutl/prompt.mxx
new file mode 100644
index 0000000..5d431a6
--- /dev/null
+++ b/libbutl/prompt.mxx
@@ -0,0 +1,36 @@
+// file : libbutl/prompt.mxx -*- C++ -*-
+// copyright : Copyright (c) 2014-2018 Code Synthesis Ltd
+// license : MIT; see accompanying LICENSE file
+
+#ifndef __cpp_modules
+#pragma once
+#endif
+
+// C includes.
+
+#ifndef __cpp_lib_modules
+#include <string>
+#endif
+
+// Other includes.
+
+#ifdef __cpp_modules
+export module butl.prompt;
+#ifdef __cpp_lib_modules
+import std.core;
+#endif
+#endif
+
+#include <libbutl/export.hxx>
+
+LIBBUTL_MODEXPORT namespace butl
+{
+ // The Y/N prompt. The def argument, if specified, should be either 'y' or
+ // 'n'. It is used as the default answer, in case the user just hits enter.
+ //
+ // Write the prompt to diag_stream. Throw ios_base::failure if no answer
+ // could be extracted from stdin (for example, because it was closed).
+ //
+ LIBBUTL_SYMEXPORT bool
+ yn_prompt (const std::string&, char def = '\0');
+}