|
|
| version 1.1.1.1, 2012/02/21 22:57:48 | version 1.1.1.2, 2012/05/29 09:29:43 |
|---|---|
| Line 1 | Line 1 |
| /* | /* |
| * Copyright (C) 1999-2008 Free Software Foundation, Inc. | * Copyright (C) 1999-2008, 2011 Free Software Foundation, Inc. |
| * This file is part of the GNU LIBICONV Library. | * This file is part of the GNU LIBICONV Library. |
| * | * |
| * The GNU LIBICONV Library is free software; you can redistribute it | * The GNU LIBICONV Library is free software; you can redistribute it |
| Line 97 | Line 97 |
| } | } |
| if (ap->encoding_index == ei_local_wchar_t) { | if (ap->encoding_index == ei_local_wchar_t) { |
| /* On systems which define __STDC_ISO_10646__, wchar_t is Unicode. | /* On systems which define __STDC_ISO_10646__, wchar_t is Unicode. |
| This is also the case on native Woe32 systems. */ | This is also the case on native Woe32 systems and Cygwin >= 1.7, where |
| #if __STDC_ISO_10646__ || ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) | we know that it is UTF-16. */ |
| #if ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) || (defined __CYGWIN__ && CYGWIN_VERSION_DLL_MAJOR >= 1007) | |
| if (sizeof(wchar_t) == 4) { | if (sizeof(wchar_t) == 4) { |
| to_index = ei_ucs4internal; | to_index = ei_ucs4internal; |
| break; | break; |
| } | } |
| if (sizeof(wchar_t) == 2) { | if (sizeof(wchar_t) == 2) { |
| # if WORDS_LITTLEENDIAN | |
| to_index = ei_utf16le; | |
| # else | |
| to_index = ei_utf16be; | |
| # endif | |
| break; | |
| } | |
| #elif __STDC_ISO_10646__ | |
| if (sizeof(wchar_t) == 4) { | |
| to_index = ei_ucs4internal; | |
| break; | |
| } | |
| if (sizeof(wchar_t) == 2) { | |
| to_index = ei_ucs2internal; | to_index = ei_ucs2internal; |
| break; | break; |
| } | } |
| Line 173 | Line 187 |
| } | } |
| if (ap->encoding_index == ei_local_wchar_t) { | if (ap->encoding_index == ei_local_wchar_t) { |
| /* On systems which define __STDC_ISO_10646__, wchar_t is Unicode. | /* On systems which define __STDC_ISO_10646__, wchar_t is Unicode. |
| This is also the case on native Woe32 systems. */ | This is also the case on native Woe32 systems and Cygwin >= 1.7, where |
| #if __STDC_ISO_10646__ || ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) | we know that it is UTF-16. */ |
| #if ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) || (defined __CYGWIN__ && CYGWIN_VERSION_DLL_MAJOR >= 1007) | |
| if (sizeof(wchar_t) == 4) { | |
| from_index = ei_ucs4internal; | |
| break; | |
| } | |
| if (sizeof(wchar_t) == 2) { | |
| # if WORDS_LITTLEENDIAN | |
| from_index = ei_utf16le; | |
| # else | |
| from_index = ei_utf16be; | |
| # endif | |
| break; | |
| } | |
| #elif __STDC_ISO_10646__ | |
| if (sizeof(wchar_t) == 4) { | if (sizeof(wchar_t) == 4) { |
| from_index = ei_ucs4internal; | from_index = ei_ucs4internal; |
| break; | break; |