pkgsrc/inputmethod/scim/patches/patch-ab
obache 95fce62873 Import scim-1.4.9 as inputmethod/scim.
Currently the SCIM project has a wide range of input methods (some may need
other libraries), covering more than 30 languages, including
(Simplified/Traditional) Chinese, Japanese, Korean and many European languages.
What's more, Composing/Dead key support is one of the built-in features.
In addition, several projects have been established to design IMEngines for
SCIM and others supply their own SCIM plugins.
2009-11-24 11:46:01 +00:00

171 lines
4 KiB
Text

$NetBSD: patch-ab,v 1.1.1.1 2009/11/24 11:46:01 obache Exp $
--- src/scim_chartraits.cpp.orig 2008-11-02 06:42:37.000000000 +0000
+++ src/scim_chartraits.cpp
@@ -26,4 +26,5 @@
*/
+#if 0
#include <string>
#include "scim_types.h"
@@ -41,27 +42,33 @@ namespace std
template<>
-void
-char_traits<ucs4_t>::assign(char_type& __c1, const char_type& __c2)
+struct char_traits<ucs4_t>
+{
+
+typedef ucs4_t char_type;
+typedef ucs4_t int_type;
+typedef streampos pos_type;
+typedef streamoff off_type;
+typedef mbstate_t state_type;
+
+static void
+assign(char_type& __c1, const char_type& __c2)
{
__c1 = __c2;
}
-template<>
-bool
-char_traits<ucs4_t>::eq(const char_type& __c1, const char_type& __c2)
+static bool
+eq(const char_type& __c1, const char_type& __c2)
{
return __c1 == __c2;
}
-template<>
-bool
-char_traits<ucs4_t>::lt(const char_type& __c1, const char_type& __c2)
+static bool
+lt(const char_type& __c1, const char_type& __c2)
{
return __c1 < __c2;
}
-template<>
-char_traits<ucs4_t>::char_type*
-char_traits<ucs4_t>::assign(char_type* __s, size_t __n, char_type __a)
+static char_type*
+assign(char_type* __s, size_t __n, char_type __a)
{
char_type* dest = __s;
@@ -71,7 +78,6 @@ char_traits<ucs4_t>::assign(char_type* _
}
-template<>
-char_traits<ucs4_t>::char_type*
-char_traits<ucs4_t>::copy(char_type* __s1, const char_type* __s2, size_t __n)
+static char_type*
+copy(char_type* __s1, const char_type* __s2, size_t __n)
{
char_type* dest = __s1;
@@ -82,13 +88,12 @@ char_traits<ucs4_t>::copy(char_type* __s
}
-template<>
-char_traits<ucs4_t>::char_type*
-char_traits<ucs4_t>::move(char_type* __s1, const char_type* __s2, size_t __n)
+static char_type*
+move(char_type* __s1, const char_type* __s2, size_t __n)
{
- if (__s1 + __n > __s2) {
+ if (__s1 > __s2) {
char_type* dest = __s1 + __n - 1;
- const char_type* from = __s2;
+ const char_type* from = __s2 + __n - 1;
while (__n-- > 0)
- *(dest--) = *(from++);
+ *(dest--) = *(from--);
return __s1;
} else {
@@ -97,7 +102,6 @@ char_traits<ucs4_t>::move(char_type* __s
}
-template<>
-size_t
-char_traits<ucs4_t>::length(const char_type* __s)
+static size_t
+length(const char_type* __s)
{
size_t __result = 0;
@@ -107,7 +111,6 @@ char_traits<ucs4_t>::length(const char_t
}
-template<>
-int
-char_traits<ucs4_t>::compare(const char_type* __s1, const char_type* __s2, size_t __n)
+static int
+compare(const char_type* __s1, const char_type* __s2, size_t __n)
{
while ( (*__s1 == *__s2++) && __n-- > 0 )
@@ -118,7 +121,6 @@ char_traits<ucs4_t>::compare(const char_
}
-template<>
-const char_traits<ucs4_t>::char_type*
-char_traits<ucs4_t>::find(const char_type* __s, size_t __n, const char_type& __a)
+static const char_type*
+find(const char_type* __s, size_t __n, const char_type& __a)
{
while (__n-- > 0) {
@@ -130,40 +132,38 @@ char_traits<ucs4_t>::find(const char_typ
}
-template<>
-char_traits<ucs4_t>::char_type
-char_traits<ucs4_t>::to_char_type (const int_type& __c)
+static char_type
+to_char_type(const int_type& __c)
{
return static_cast<char_type>(__c);
}
-template<>
-char_traits<ucs4_t>::int_type
-char_traits<ucs4_t>::to_int_type (const char_type& __c)
+static int_type
+to_int_type(const char_type& __c)
{
return static_cast<int_type>(__c);
}
-template<>
-bool
-char_traits<ucs4_t>::eq_int_type(const int_type& __c1, const int_type& __c2)
+static bool
+eq_int_type(const int_type& __c1, const int_type& __c2)
{
return __c1 == __c2;
}
-template<>
-char_traits<ucs4_t>::int_type
-char_traits<ucs4_t>::eof ()
+static int_type
+eof()
{
- return static_cast<int_type>(EOF);
+ return static_cast<int_type>(-1);
}
-template<>
-char_traits<ucs4_t>::int_type
-char_traits<ucs4_t>::not_eof (const int_type& __c)
+static int_type
+not_eof(const int_type& __c)
{
- return (__c == eof()) ? 0 : __c;
+ return eq_int_type(__c, eof()) ? static_cast<int_type>(0) : __c;
}
-}
+}; //struct char_traits<ucs4_t>
+
+} //namespace std
+#endif
#endif