Author: faridz
Date: Mon Jul 30 10:56:49 2007
New Revision: 561069
URL: http://svn.apache.org/viewvc?view=rev&rev=561069
Log:
2007-07-30 Farid Zaripov <[EMAIL PROTECTED]>
* locale.cpp (rw_locales): On error return "C\0" instead of 0.
[_MSC_VER]: Use _free_dbg() instead of free().
Modified:
incubator/stdcxx/trunk/tests/src/locale.cpp
Modified: incubator/stdcxx/trunk/tests/src/locale.cpp
URL:
http://svn.apache.org/viewvc/incubator/stdcxx/trunk/tests/src/locale.cpp?view=diff&rev=561069&r1=561068&r2=561069
==============================================================================
--- incubator/stdcxx/trunk/tests/src/locale.cpp (original)
+++ incubator/stdcxx/trunk/tests/src/locale.cpp Mon Jul 30 10:56:49 2007
@@ -329,6 +329,7 @@
_TEST_EXPORT char*
rw_locales (int loc_cat, const char* grep_exp)
{
+ static char deflocname [3] = "C\0";
static char* slocname = 0;
static size_t size = 0; // the number of elements in the
array
@@ -370,7 +371,7 @@
const char* const fname = rw_tmpnam (0);
if (!fname) {
- return 0; // error
+ return deflocname; // error
}
// make sure that grep_exp is <= 80
@@ -385,7 +386,7 @@
: rw_system ("locale -a > %s", fname);
if (exit_status) {
- return 0; // error
+ return deflocname; // error
}
// open file containing the list of installed locales
@@ -429,7 +430,12 @@
_RWSTD_STATIC_CAST (char*, malloc (total_size));
memcpy (tmp, slocname, total_size - 5120);
+
+#ifndef _MSC_VER
free (slocname);
+#else
+ _free_dbg (slocname, _CLIENT_BLOCK);
+#endif
slocname = tmp;
locname = slocname + size - strlen (linebuf) - 1;
@@ -477,7 +483,7 @@
remove (fname);
- return slocname;
+ return *slocname ? slocname : deflocname;
}
/**************************************************************************/