From 4b52e23b8a9c6c5c0a98910a6b52a2a35224bb7d Mon Sep 17 00:00:00 2001
From: Brad King <brad.king@kitware.com>
Date: Thu, 19 Apr 2007 12:12:19 -0400
Subject: [PATCH] COMP: Fixes for Watcom.

---
 String.hxx.in          | 8 ++++++++
 kwsys_ios_sstream.h.in | 9 +++++++++
 2 files changed, 17 insertions(+)

diff --git a/String.hxx.in b/String.hxx.in
index 6f449bb..5157fb6 100644
--- a/String.hxx.in
+++ b/String.hxx.in
@@ -54,6 +54,14 @@ public:
     stl_string(s, pos, n) {}
 }; // End Class: String
 
+#if defined(__WATCOMC__)
+inline bool operator<(String const& l, String const& r)
+  {
+  return (static_cast<@KWSYS_NAMESPACE@_stl::string const&>(l) <
+          static_cast<@KWSYS_NAMESPACE@_stl::string const&>(r));
+  }
+#endif
+
 } // namespace @KWSYS_NAMESPACE@
 
 #endif
diff --git a/kwsys_ios_sstream.h.in b/kwsys_ios_sstream.h.in
index 241dfcd..050694d 100644
--- a/kwsys_ios_sstream.h.in
+++ b/kwsys_ios_sstream.h.in
@@ -95,6 +95,8 @@ public:
 // Visual Studio 6 has a strstream::pcount, but this is not rdbuf()->pcount()
 #if (@KWSYS_NAMESPACE@_IOS_USE_STRSTREA_H) && defined(_MSC_VER) && (_MSC_VER == 1200)
     int count = this->pcount();
+#elif defined(__WATCOMC__)
+    int count = this->rdbuf()->out_waiting();
 #else
     int count = this->rdbuf()->pcount();
 #endif
@@ -151,6 +153,10 @@ private:
 # pragma warning (push)
 # pragma warning (disable: 4097) /* typedef-name used as synonym for class */
 #endif
+#if defined(__WATCOMC__)
+// W728: class modifiers for 'A' conflict with class modifiers for 'B'
+# pragma warning 728 10
+#endif
 
 class istringstream: private kwsys_stl::string, public istrstream
 {
@@ -172,6 +178,9 @@ private:
   void operator=(const istringstream&);
 };
 
+#if defined(__WATCOMC__)
+# pragma warning 728 9
+#endif
 #if defined(_MSC_VER)
 # pragma warning (pop)
 #endif
-- 
GitLab