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; |