summaryrefslogtreecommitdiff
path: root/ace/OS_NS_stdio.inl
diff options
context:
space:
mode:
Diffstat (limited to 'ace/OS_NS_stdio.inl')
-rw-r--r--ace/OS_NS_stdio.inl102
1 files changed, 43 insertions, 59 deletions
diff --git a/ace/OS_NS_stdio.inl b/ace/OS_NS_stdio.inl
index d3f2c08c99e..0f4a460723b 100644
--- a/ace/OS_NS_stdio.inl
+++ b/ace/OS_NS_stdio.inl
@@ -589,7 +589,6 @@ ACE_OS::cuserid (char *user, size_t maxlen)
#endif /* VXWORKS */
}
-#if defined (ACE_HAS_WCHAR)
ACE_INLINE wchar_t *
ACE_OS::cuserid (wchar_t *user, size_t maxlen)
{
@@ -600,14 +599,14 @@ ACE_OS::cuserid (wchar_t *user, size_t maxlen)
else
return user;
# else /* ACE_WIN32 */
- char *char_user;
+ char *char_user = 0;
wchar_t *result = 0;
ACE_NEW_RETURN (char_user, char[maxlen + 1], 0);
if (ACE_OS::cuserid (char_user, maxlen))
{
- ACE_OS::strcpy (user, ACE_Ascii_To_Wide (char_user).wchar_rep ());
+ ACE_OS::string_copy (user, char_user, maxlen + 1);
result = user;
}
@@ -616,7 +615,6 @@ ACE_OS::cuserid (wchar_t *user, size_t maxlen)
return result;
# endif /* ACE_WIN32 */
}
-#endif /* ACE_HAS_WCHAR */
#endif /* ACE_LACKS_CUSERID */
ACE_INLINE int
@@ -631,9 +629,9 @@ ACE_OS::fdopen (ACE_HANDLE handle, const ACE_TCHAR *mode)
{
ACE_OS_TRACE ("ACE_OS::fdopen");
# if defined (ACE_HAS_WINCE)
- ACE_OSCALL_RETURN (::_wfdopen (handle, ACE_TEXT_ALWAYS_WCHAR (mode)),
- FILE*,
- 0);
+ ACE_OSCALL_RETURN (::_wfdopen (handle, ACE_TEXT_TO_WCHAR_IN (mode)),
+ FILE*,
+ 0);
# elif defined (ACE_WIN32)
// kernel file handle -> FILE* conversion...
// Options: _O_APPEND, _O_RDONLY and _O_TEXT are lost
@@ -678,7 +676,7 @@ ACE_OS::fdopen (ACE_HANDLE handle, const ACE_TCHAR *mode)
ACE_NOTSUP_RETURN (0);
# else
ACE_OSCALL_RETURN
- (::fdopen (handle, ACE_TEXT_ALWAYS_CHAR (mode)), FILE *, 0);
+ (::fdopen (handle, ACE_TEXT_TO_CHAR_IN (mode)), FILE *, 0);
# endif /* ACE_HAS_WINCE */
}
@@ -716,14 +714,19 @@ ACE_OS::fgets (char *buf, int size, FILE *fp)
ACE_OSCALL_RETURN (ACE_STD_NAMESPACE::fgets (buf, size, fp), char *, 0);
}
-#if defined (ACE_HAS_WCHAR) && !defined(ACE_LACKS_FGETWS)
ACE_INLINE wchar_t *
ACE_OS::fgets (wchar_t *buf, int size, FILE *fp)
{
+#if !defined(ACE_LACKS_FGETWS)
ACE_OS_TRACE ("ACE_OS::fgets");
ACE_OSCALL_RETURN (ACE_STD_NAMESPACE::fgetws (buf, size, fp), wchar_t *, 0);
+#else
+ ACE_UNUSED_ARG( buf );
+ ACE_UNUSED_ARG( size );
+ ACE_UNUSED_ARG( fp );
+ ACE_NOTSUP_RETURN (0);
+#endif
}
-#endif /* ACE_HAS_WCHAR && !ACE_LACKS_FGETWS */
#if !(defined (ACE_WIN32) && !defined (ACE_HAS_WINCE))
// Win32 PC implementation of fopen () is in OS_NS_stdio.cpp.
@@ -732,25 +735,23 @@ ACE_OS::fopen (const char *filename, const ACE_TCHAR *mode)
{
ACE_OS_TRACE ("ACE_OS::fopen");
ACE_OSCALL_RETURN
- (::fopen (filename, ACE_TEXT_ALWAYS_CHAR (mode)), FILE *, 0);
+ (::fopen (filename, ACE_TEXT_TO_CHAR_IN (mode)), FILE *, 0);
}
-#if defined (ACE_HAS_WCHAR)
ACE_INLINE FILE *
ACE_OS::fopen (const wchar_t *filename, const ACE_TCHAR *mode)
{
ACE_OS_TRACE ("ACE_OS::fopen");
#if defined (ACE_HAS_WINCE)
ACE_OSCALL_RETURN
- (::_wfopen (filename, ACE_TEXT_ALWAYS_WCHAR (mode)), FILE *, 0);
+ (::_wfopen (filename, ACE_TEXT_TO_WCHAR_IN (mode)), FILE *, 0);
#else
// Non-Windows doesn't use wchar_t file systems.
- ACE_Wide_To_Ascii n_filename (filename);
ACE_OSCALL_RETURN
- (::fopen (n_filename.char_rep (), ACE_TEXT_ALWAYS_CHAR (mode)), FILE*, 0);
+ (::fopen (ACE_TEXT_TO_CHAR_IN (filename),
+ ACE_TEXT_TO_CHAR_IN (mode)), FILE*, 0);
#endif /* ACE_HAS_WINCE */
}
-#endif /* ACE_HAS_WCHAR */
#endif /* ACE_WIN32 */
@@ -761,14 +762,18 @@ ACE_OS::fputs (const char *s, FILE *stream)
ACE_OSCALL_RETURN (ACE_STD_NAMESPACE::fputs (s, stream), int, -1);
}
-#if defined (ACE_HAS_WCHAR) && !defined(ACE_LACKS_FPUTWS)
ACE_INLINE int
ACE_OS::fputs (const wchar_t *s, FILE *stream)
{
+#if !defined(ACE_LACKS_FPUTWS)
ACE_OS_TRACE ("ACE_OS::fputs");
ACE_OSCALL_RETURN (ACE_STD_NAMESPACE::fputws (s, stream), int, -1);
+#else
+ ACE_UNUSED_ARG( s );
+ ACE_UNUSED_ARG( stream );
+ ACE_NOTSUP_RETURN (-1);
+#endif
}
-#endif /* ACE_HAS_WCHAR && !ACE_LACKS_FPUTWS */
ACE_INLINE size_t
ACE_OS::fread (void *ptr, size_t size, size_t nelems, FILE *fp)
@@ -784,14 +789,14 @@ ACE_OS::freopen (const ACE_TCHAR *filename, const ACE_TCHAR *mode, FILE* stream)
{
ACE_OS_TRACE ("ACE_OS::freopen");
#if defined (ACE_WIN32) && (defined(ACE_USES_WCHAR) || defined(ACE_HAS_WINCE))
- ACE_OSCALL_RETURN (::_wfreopen (ACE_TEXT_ALWAYS_WCHAR (filename),
- ACE_TEXT_ALWAYS_WCHAR (mode),
- stream),
- FILE *, 0);
+ ACE_OSCALL_RETURN (::_wfreopen (ACE_TEXT_TO_WCHAR_IN (filename),
+ ACE_TEXT_TO_WCHAR_IN (mode),
+ stream),
+ FILE *, 0);
#else
ACE_OSCALL_RETURN
- (ACE_STD_NAMESPACE::freopen (ACE_TEXT_ALWAYS_CHAR (filename),
- ACE_TEXT_ALWAYS_CHAR (mode),
+ (ACE_STD_NAMESPACE::freopen (ACE_TEXT_TO_CHAR_IN (filename),
+ ACE_TEXT_TO_CHAR_IN (mode),
stream),
FILE *, 0);
#endif /* ACE_WIN32 && ACE_USES_WCHAR */
@@ -856,7 +861,6 @@ ACE_OS::perror (const char *s)
#endif /* ACE_HAS_WINCE */
}
-#if defined (ACE_HAS_WCHAR)
ACE_INLINE void
ACE_OS::perror (const wchar_t *s)
{
@@ -867,11 +871,9 @@ ACE_OS::perror (const wchar_t *s)
#elif defined (ACE_WIN32)
::_wperror (s);
#else
- ACE_Wide_To_Ascii n_s (s);
- ::perror (n_s.char_rep ());
+ ::perror (ACE_TEXT_TO_CHAR_IN (s));
#endif /* ACE_HAS_WINCE */
}
-#endif /* ACE_HAS_WCHAR */
ACE_INLINE int
ACE_OS::puts (const char *s)
@@ -880,7 +882,6 @@ ACE_OS::puts (const char *s)
ACE_OSCALL_RETURN (::puts (s), int, -1);
}
-#if defined (ACE_HAS_WCHAR)
ACE_INLINE int
ACE_OS::puts (const wchar_t *s)
{
@@ -889,11 +890,9 @@ ACE_OS::puts (const wchar_t *s)
ACE_OSCALL_RETURN (::_putws (s), int, -1);
#else /* ACE_WIN32 */
// There's no putws()...
- ACE_Wide_To_Ascii n_s (s);
- ACE_OSCALL_RETURN (::puts (n_s.char_rep ()), int, -1);
+ ACE_OSCALL_RETURN (::puts (ACE_TEXT_TO_CHAR_IN (s)), int, -1);
#endif /* ACE_WIN32 */
}
-#endif /* ACE_HAS_WCHAR */
ACE_INLINE int
ACE_OS::rename (const char *old_name,
@@ -908,8 +907,8 @@ ACE_OS::rename (const char *old_name,
# elif defined (ACE_HAS_WINCE)
// Win CE is always wide-char.
ACE_UNUSED_ARG (flags);
- if (0 != MoveFile (ACE_TEXT_CHAR_TO_TCHAR (old_name),
- ACE_TEXT_CHAR_TO_TCHAR (new_name)))
+ if (0 != MoveFile (ACE_TEXT_TO_TCHAR_IN (old_name),
+ ACE_TEXT_TO_TCHAR_IN (new_name)))
ACE_FAIL_RETURN (-1);
return 0;
# elif defined (ACE_WIN32) && defined (ACE_HAS_WINNT4) && (ACE_HAS_WINNT4 == 1)
@@ -928,7 +927,6 @@ ACE_OS::rename (const char *old_name,
# endif /* ACE_LACKS_RENAME */
}
-#if defined (ACE_HAS_WCHAR)
ACE_INLINE int
ACE_OS::rename (const wchar_t *old_name,
const wchar_t *new_name,
@@ -958,12 +956,10 @@ ACE_OS::rename (const wchar_t *old_name,
ACE_UNUSED_ARG (flags);
ACE_OSCALL_RETURN (::_wrename (old_name, new_name), int, -1);
# else /* ACE_LACKS_RENAME */
- ACE_Wide_To_Ascii nold_name (old_name);
- ACE_Wide_To_Ascii nnew_name (new_name);
- return ACE_OS::rename (nold_name.char_rep (), nnew_name.char_rep (), flags);
+ return ACE_OS::rename (ACE_TEXT_TO_CHAR_IN (old_name),
+ ACE_TEXT_TO_CHAR_IN (new_name), flags);
# endif /* ACE_LACKS_RENAME */
}
-#endif /* ACE_HAS_WCHAR */
ACE_INLINE void
ACE_OS::rewind (FILE *fp)
@@ -973,7 +969,7 @@ ACE_OS::rewind (FILE *fp)
::rewind (fp);
#else
// This isn't perfect since it doesn't reset EOF, but it's probably
- // the closest we can get on WINCE.
+ // the closest we can get on WINCE.
(void) fseek (fp, 0L, SEEK_SET);
#endif /* ACE_HAS_WINCE */
}
@@ -997,7 +993,6 @@ ACE_OS::tempnam (const char *dir, const char *pfx)
#endif /* ACE_LACKS_TEMPNAM */
}
-#if defined (ACE_HAS_WCHAR)
ACE_INLINE wchar_t *
ACE_OS::tempnam (const wchar_t *dir, const wchar_t *pfx)
{
@@ -1011,28 +1006,21 @@ ACE_OS::tempnam (const wchar_t *dir, const wchar_t *pfx)
ACE_OSCALL_RETURN (::_wtempnam (const_cast <wchar_t*> (dir), const_cast <wchar_t*> (pfx)), wchar_t *, 0);
# else
ACE_OSCALL_RETURN (::_wtempnam (dir, pfx), wchar_t *, 0);
-# endif /* __BORLANDC__ */
-#else /* ACE_LACKS_TEMPNAM */
+# endif // __BORLANDC__
+#else // ACE_LACKS_TEMPNAM
// No native wide-char support; convert to narrow and call the char* variant.
- char *ndir = ACE_Wide_To_Ascii (dir).char_rep ();
- char *npfx = ACE_Wide_To_Ascii (pfx).char_rep ();
- char *name = ACE_OS::tempnam (ndir, npfx);
+ char *name = ACE_OS::tempnam (ACE_TEXT_TO_CHAR_IN (dir),
+ ACE_TEXT_TO_CHAR_IN (pfx));
// ACE_OS::tempnam returns a pointer to a malloc()-allocated space.
// Convert that string to wide-char and free() the original.
- wchar_t *wname = 0;
if (name != 0)
{
- size_t namelen = ACE_OS::strlen (name) + 1;
- wname = reinterpret_cast<wchar_t *>
- (ACE_OS::malloc (namelen * sizeof (wchar_t)));
- if (wname != 0)
- ACE_OS::strcpy (wname, ACE_Ascii_To_Wide (name).wchar_rep ());
- ACE_OS::free (name);
+ ::free( name );
+ return ACE_TEXT_TO_MALLOC_WCHAR_OUT( name );
}
- return wname;
+ return 0;
#endif /* ACE_LACKS_TEMPNAM */
}
-#endif /* ACE_HAS_WCHAR */
ACE_INLINE int
ACE_OS::vsprintf (char *buffer, const char *format, va_list argptr)
@@ -1074,7 +1062,6 @@ ACE_OS::vsnprintf (char *buffer, size_t maxlen, const char *format, va_list ap)
#endif /* ACE_HAS_SNPRINTF */
}
-#if defined (ACE_HAS_WCHAR)
ACE_INLINE int
ACE_OS::vsprintf (wchar_t *buffer, const wchar_t *format, va_list argptr)
{
@@ -1103,9 +1090,7 @@ ACE_OS::vsprintf (wchar_t *buffer, const wchar_t *format, va_list argptr)
# endif /* XPG5 || ACE_HAS_DINKUM_STL */
}
-#endif /* ACE_HAS_WCHAR */
-#if defined (ACE_HAS_WCHAR)
ACE_INLINE int
ACE_OS::vsnprintf (wchar_t *buffer, size_t maxlen, const wchar_t *format, va_list ap)
{
@@ -1141,7 +1126,6 @@ ACE_OS::vsnprintf (wchar_t *buffer, size_t maxlen, const wchar_t *format, va_lis
# endif /* platforms with a variant of vswprintf */
}
-#endif /* ACE_HAS_WCHAR */
#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0)
#if defined (ACE_WIN32)