aboutsummaryrefslogtreecommitdiff
path: root/libbutl/pager.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-09-22 23:32:28 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-09-22 23:32:28 +0200
commitc09cd7512491cee1e82c1ad8128ce9fd4bc3f79b (patch)
treea659ed768d849130ab5780a11b7f791a463a1a91 /libbutl/pager.cxx
parent2a00871f07067f8f9e2de08bb9c8f50e1bf6a650 (diff)
Initial modularization with both Clang and VC hacks
Note: gave up on VC about half way though.
Diffstat (limited to 'libbutl/pager.cxx')
-rw-r--r--libbutl/pager.cxx51
1 files changed, 43 insertions, 8 deletions
diff --git a/libbutl/pager.cxx b/libbutl/pager.cxx
index 3910443..6453120 100644
--- a/libbutl/pager.cxx
+++ b/libbutl/pager.cxx
@@ -2,24 +2,59 @@
// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
// license : MIT; see accompanying LICENSE file
-#include <libbutl/pager.hxx>
+#ifndef __cpp_modules
+#include <libbutl/pager.mxx>
+#endif
+
+#include <errno.h> // E*
#ifndef _WIN32
# include <unistd.h> // STDOUT_FILENO
# include <sys/ioctl.h> // ioctl()
+#else
+# include <libbutl/win32-utility.hxx>
+#endif
+#ifndef __cpp_lib_modules
+#include <string>
+#include <vector>
+#include <iostream>
+
+#include <cstring> // strchr()
+#include <utility> // move()
+#ifndef _WIN32
# include <chrono>
# include <thread> // this_thread::sleep_for()
-#else
-# include <libbutl/win32-utility.hxx>
+#endif
#endif
-#include <cstring> // strchr()
-#include <utility> // move()
+// Other includes.
-#include <libbutl/utility.hxx> // operator<<(ostream, exception),
- // throw_generic_error()
-#include <libbutl/fdstream.hxx> // fdclose()
+#ifdef __cpp_modules
+module butl.pager;
+
+// Only imports additional to interface.
+#ifdef __clang__
+#ifdef __cpp_lib_modules
+import std.core;
+import std.io;
+#endif
+import butl.process;
+import butl.fdstream;
+#endif
+
+#ifndef _WIN32
+import std.core; //@@ MOD TODO: import std.threading.
+#endif
+
+import butl.utility; // operator<<(ostream, exception), throw_generic_error()
+import butl.optional;
+import butl.fdstream; // fdclose()
+#else
+#include <libbutl/utility.mxx>
+#include <libbutl/optional.mxx>
+#include <libbutl/fdstream.mxx>
+#endif
using namespace std;