summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-05-21 22:12:05 +0000
committernanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-05-21 22:12:05 +0000
commitdc62ab8b321f424bcf2fc5f763ada9d9cca063ba (patch)
tree59a802316709e693e05416447691b9c8bb1123b6
parent3d0d0259f7c208c03fa9780d4d00397a339402fb (diff)
downloadATCD-dc62ab8b321f424bcf2fc5f763ada9d9cca063ba.tar.gz
Added strrchr and strchr implementations for CE.
-rw-r--r--ace/OS.i30
1 files changed, 27 insertions, 3 deletions
diff --git a/ace/OS.i b/ace/OS.i
index 56044de2fc4..6161bd5a782 100644
--- a/ace/OS.i
+++ b/ace/OS.i
@@ -1252,7 +1252,7 @@ ACE_OS::strrchr (char *s, int c)
p--;
return p;
-#endif /* ACE_HAS_WINCE */
+#endif /* ACE_LACKS_STRRCHR */
}
ACE_INLINE const char *
@@ -1271,7 +1271,7 @@ ACE_OS::strrchr (const char *s, int c)
p--;
return p;
-#endif /* ACE_HAS_WINCE */
+#endif /* ACE_LACKS_STRRCHR */
}
ACE_INLINE int
@@ -8587,7 +8587,19 @@ ACE_INLINE const wchar_t *
ACE_OS::strrchr (const wchar_t *s, wint_t c)
{
// ACE_TRACE ("ACE_OS::strrchr");
+#if !defined (ACE_HAS_WINCE)
return (const wchar_t *) ::wcsrchr (s, c);
+#else
+ const wchar_t *p = s + ::wcslen (s);
+
+ while (*p != c)
+ if (p == s)
+ return 0;
+ else
+ p--;
+
+ return p;
+#endif /* ACE_HAS_WINCE */
}
ACE_INLINE wchar_t *
@@ -8607,7 +8619,19 @@ ACE_INLINE wchar_t *
ACE_OS::strrchr (wchar_t *s, wint_t c)
{
// ACE_TRACE ("ACE_OS::strrchr");
- return ::wcsrchr (s, c);
+#if !defined (ACE_HAS_WINCE)
+ return (const wchar_t *) ::wcsrchr (s, c);
+#else
+ wchar_t *p = s + ::wcslen (s);
+
+ while (*p != c)
+ if (p == s)
+ return 0;
+ else
+ p--;
+
+ return p;
+#endif /* ACE_HAS_WINCE */
}
ACE_INLINE int