You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stdcxx.apache.org by se...@apache.org on 2007/09/25 01:40:26 UTC

svn commit: r579018 - in /incubator/stdcxx/trunk/util: charmap.cpp charmap.h

Author: sebor
Date: Mon Sep 24 16:40:24 2007
New Revision: 579018

URL: http://svn.apache.org/viewvc?rev=579018&view=rev
Log:
2007-09-24  Martin Sebor  <se...@roguewave.com>

	STDCXX-404
	* charmap.h (<iconv.h>): Removed a redundant _MSC_VER guard.
	(open_iconv_to_utf8, open_iconv_to_ext, ic_to_utf8_, ic_to_ext_):
	Guarded declarations with _RWSTD_NO_ICONV instead of _MSC_VER.
	* charmap.cpp (my_iconv_open): Guarded function definition with
	_RWSTD_NO_ICONV instead of _MSC_VER.
	(convert_to_utf8): Defined function unconditionally and guarded
	implementation with _RWSTD_NO_ICONV (defaulting to returning 0
	when the macro is #defined).
	(ic_to_utf8_, ic_to_ext_): Guarded the assignment of variables
	with _RWSTD_NO_ICONV.
	Guarded MSVC-specific behavior with _MSC_VER.

Modified:
    incubator/stdcxx/trunk/util/charmap.cpp
    incubator/stdcxx/trunk/util/charmap.h

Modified: incubator/stdcxx/trunk/util/charmap.cpp
URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/util/charmap.cpp?rev=579018&r1=579017&r2=579018&view=diff
==============================================================================
--- incubator/stdcxx/trunk/util/charmap.cpp (original)
+++ incubator/stdcxx/trunk/util/charmap.cpp Mon Sep 24 16:40:24 2007
@@ -22,7 +22,7 @@
  * implied.   See  the License  for  the  specific language  governing
  * permissions and limitations under the License.
  *
- * Copyright 2001-2006 Rogue Wave Software.
+ * Copyright 2001-2007 Rogue Wave Software, Inc.
  * 
  **************************************************************************/
 
@@ -73,7 +73,7 @@
 // the numeric values cannot be greater then 3 digits long
 #define MAX_BYTE_LEN 5
 
-#ifndef _MSC_VER
+#ifndef _RWSTD_NO_ICONV
 
 static iconv_t
 my_iconv_open (const char *to_codeset, const char *from_codeset)
@@ -163,7 +163,7 @@
 }
 
 #  endif   // _RWSTD_NO_ISO_10646_WCHAR_T
-#endif  // _MSC_VER
+#endif   // _RWSTD_NO_ICONV
 
 
 // utf8_decode translates the UTF-8 encoded character (specified
@@ -433,20 +433,21 @@
 }
 
 
-#ifndef _MSC_VER
 char* Charmap::convert_to_utf8 (const char *inbuf, size_t inbuf_s, 
                                 char *outbuf, size_t outbuf_s) const
 {
+#ifndef _RWSTD_NO_ICONV
+
     if (ic_to_utf8_ == iconv_t (-1))
         return 0;
 
     char* outbufp = outbuf;
 
-#ifndef _RWSTD_NO_ICONV_CONST_CHAR
+#  ifndef _RWSTD_NO_ICONV_CONST_CHAR
     const char* inbufp = inbuf;
-#else
+#  else
     char* inbufp = _RWSTD_CONST_CAST(char*, inbuf);
-#endif   // _RWSTD_NO_ICONV_CONST_CHAR
+#  endif   // _RWSTD_NO_ICONV_CONST_CHAR
     
     if (std::size_t (-1) == 
         iconv (ic_to_utf8_, &inbufp, &inbuf_s, &outbufp, &outbuf_s)) {
@@ -460,8 +461,15 @@
     }
 
     return outbufp;
+
+#else   // if defined (_RWSTD_NO_ICONV)
+
+    return 0;
+
+#endif   // _RWSTD_NO_ICONV
+
 }
-#endif  // _MSC_VER
+
 
 
 std::string Charmap::get_charmap_name () const
@@ -988,10 +996,10 @@
        reverse_maps (create_reverse_maps),
        UCS4_internal_ (use_UCS4)
 {
-#ifndef _MSC_VER
+#ifndef _RWSTD_NO_ICONV
     ic_to_utf8_ = 0;
     ic_to_ext_ = 0;
-#endif  // _MSC_VER
+#endif   // _RWSTD_NO_ICONV
 
     scanner_.open (fname, '#', '\\');
 
@@ -1020,21 +1028,26 @@
 
             // we always need a iconv to utf8 so that we can create
             // the utf8_charmap unless we are on windows
-#if !defined (_MSC_VER)
+#ifndef _RWSTD_NO_ICONV
             if (!in_utf8_) {
                 ic_to_utf8_ = open_iconv_to_utf8 ();
 #  if !defined (_RWSTD_NO_ISO_10646_WCHAR_T)
                 ic_to_ext_ = open_iconv_to_ext ();
 #  endif   // _RWSTD_NO_ISO_10646_WCHAR_T
             }
-#else
+
+#else   // if defined (_RWSTD_NO_ICONV)
+
+#  ifdef _MSC_VER
             codepage_ = get_codepage (code_set_name_);
             if (codepage_ == 0) {
                 issue_diag (W_ICONV, false, 0, 
                             "iconv_open (%s to UTF-8) failed\n",
                             code_set_name_.c_str());
             }
-#endif     // _MSC_VER
+
+#  endif   // _MSC_VER
+#endif   // _RWSTD_NO_ICONV
 
             scanner_.ignore_line ();
             break;

Modified: incubator/stdcxx/trunk/util/charmap.h
URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/util/charmap.h?rev=579018&r1=579017&r2=579018&view=diff
==============================================================================
--- incubator/stdcxx/trunk/util/charmap.h (original)
+++ incubator/stdcxx/trunk/util/charmap.h Mon Sep 24 16:40:24 2007
@@ -22,24 +22,23 @@
  * implied.   See  the License  for  the  specific language  governing
  * permissions and limitations under the License.
  *
- * Copyright 2001-2006 Rogue Wave Software.
+ * Copyright 2001-2007 Rogue Wave Software, Inc.
  * 
  **************************************************************************/
 
 
-#ifndef _RWSTD_LOC_CHARMAP_H_INCLUDED
-#define _RWSTD_LOC_CHARMAP_H_INCLUDED
+#ifndef _RWSTD_CHARMAP_H_INCLUDED
+#define _RWSTD_CHARMAP_H_INCLUDED
 
 #include <string>
 #include <list>
 #include <map>
 #include <set>
 
-#ifndef _MSC_VER
-#  ifndef _RWSTD_NO_ICONV
-#    include <iconv.h>
-#  endif
-#endif  // _MSC_VER
+#ifndef _RWSTD_NO_ICONV
+#  include <iconv.h>
+#endif   // _RWSTD_NO_ICONV
+
 
 #include "scanner.h"
 
@@ -162,10 +161,10 @@
     // are defined in the character map
     void verify_portable_charset () const;
 
-#ifndef _MSC_VER
+#ifndef _RWSTD_NO_ICONV
     // open the iconv descriptor to convert to utf8
     iconv_t open_iconv_to_utf8 () const;
-#endif  // _MSC_VER
+#endif   // _RWSTD_NO_ICONV
 
     // convert a human-readable encoding of a character
     // to its raw multibyte character representation
@@ -175,13 +174,14 @@
     char* convert_to_utf8 (const char *inbuf, std::size_t inbuf_s, 
                            char *outbuf, std::size_t outbuf_s) const;
 
-#ifndef _MSC_VER
+#ifndef _RWSTD_NO_ICONV
 #  ifndef _RWSTD_NO_ISO_10646_WCHAR_T    
+
     // open the iconv descriptor to convert from utf8 to the external encoding
     iconv_t open_iconv_to_ext ();
 
 #  endif   // _RWSTD_NO_ISO_10646_WCHAR_T
-#endif  // _MSC_VER
+#endif   // _RWSTD_NO_ICONV
     
     // add the symbolic name of a character and the raw multibyte
     // character corresponding to it to the character maps
@@ -225,13 +225,13 @@
     // the number of bytes in the largest multi-byte value
     int mb_cur_max_;
 
-#ifndef _MSC_VER
+#ifndef _RWSTD_NO_ICONV
     // the iconv file descriptor that converts to utf8
     iconv_t ic_to_utf8_;
 
     // the iconv file descriptor that converts from utf8 to external
     iconv_t ic_to_ext_;
-#endif  // _MSC_VER
+#endif   // _RWSTD_NO_ICONV
 
     // the name of the character map file
     std::string charmap_name_;
@@ -260,5 +260,5 @@
 };
 
 
-#endif   // _RWSTD_LOC_CHARMAP_H_INCLUDED
+#endif   // _RWSTD_CHARMAP_H_INCLUDED