<FeatureCominteropWinRTManagedActivation>true</FeatureCominteropWinRTManagedActivation>
<FeatureHostAssemblyResolver>true</FeatureHostAssemblyResolver>
<FeatureLazyCOWPages Condition="('$(TargetArch)' == 'i386') or ('$(TargetArch)' == 'arm')">true</FeatureLazyCOWPages>
- <FeatureLatin1>true</FeatureLatin1>
- <FeatureEncodingNls>true</FeatureEncodingNls>
- <FeatureAscii>true</FeatureAscii>
- <FeatureUtf7>true</FeatureUtf7>
- <FeatureUtf32>true</FeatureUtf32>
<FeatureRandomizedStringHashing>true</FeatureRandomizedStringHashing>
<!-- The rejit feature is available only on supported architectures (x86 & x64) -->
<FeatureReJIT Condition="('$(TargetArch)' == 'i386') or ('$(TargetArch)' == 'amd64')">true</FeatureReJIT>
<DefineConstants Condition="'$(FeatureAptca)' == 'true'">$(DefineConstants);FEATURE_APTCA</DefineConstants>
<DefineConstants Condition="'$(FeatureArrayStubAsIL)' == 'true'">$(DefineConstants);FEATURE_ARRAYSTUB_AS_IL</DefineConstants>
<DefineConstants Condition="'$(FeatureStubsAsIL)' == 'true'">$(DefineConstants);FEATURE_STUBS_AS_IL</DefineConstants>
- <DefineConstants Condition="'$(FeatureAscii)' == 'true'">$(DefineConstants);FEATURE_ASCII</DefineConstants>
<DefineConstants Condition="'$(FeatureBclFormatting)' == 'true'">$(DefineConstants);FEATURE_BCL_FORMATTING</DefineConstants>
<DefineConstants Condition="'$(FeatureCasPolicy)' == 'true'">$(DefineConstants);FEATURE_CAS_POLICY</DefineConstants>
<DefineConstants Condition="'$(FeatureClassicCominterop)' == 'true'">$(DefineConstants);FEATURE_CLASSIC_COMINTEROP</DefineConstants>
<DefineConstants Condition="'$(FeatureCrypto)' == 'true'">$(DefineConstants);FEATURE_CRYPTO</DefineConstants>
<DefineConstants Condition="'$(FeatureDisplayCultureInfo)' == 'true'">$(DefineConstants);FEATURE_DISPLAY_CULTURE_INFO</DefineConstants>
<DefineConstants Condition="'$(FeatureDisplayRegionInfo)' == 'true'">$(DefineConstants);FEATURE_DISPLAY_REGION_INFO</DefineConstants>
- <DefineConstants Condition="'$(FeatureEncodingNls)' == 'true'">$(DefineConstants);FEATURE_ENCODINGNLS</DefineConstants>
<DefineConstants Condition="'$(FeatureExceptionDispatchInfo)' == 'true'">$(DefineConstants);FEATURE_EXCEPTIONDISPATCHINFO</DefineConstants>
<DefineConstants Condition="'$(FeatureExceptionNotifications)' == 'true'">$(DefineConstants);FEATURE_EXCEPTION_NOTIFICATIONS</DefineConstants>
<DefineConstants Condition="'$(FeatureFusion)' == 'true'">$(DefineConstants);FEATURE_FUSION</DefineConstants>
<DefineConstants Condition="'$(FeatureIsolatedStorageQuotaEnforcement)' == 'true'">$(DefineConstants);FEATURE_ISOLATED_STORAGE_QUOTA_ENFORCEMENT</DefineConstants>
<DefineConstants Condition="'$(FeatureIsostore)' == 'true'">$(DefineConstants);FEATURE_ISOSTORE</DefineConstants>
<DefineConstants Condition="'$(FeatureIsostoreLight)' == 'true'">$(DefineConstants);FEATURE_ISOSTORE_LIGHT</DefineConstants>
- <DefineConstants Condition="'$(FeatureLatin1)' == 'true'">$(DefineConstants);FEATURE_LATIN1</DefineConstants>
<DefineConstants Condition="'$(FeatureLeakCultureInfo)' == 'true'">$(DefineConstants);FEATURE_LEAK_CULTURE_INFO</DefineConstants>
<DefineConstants Condition="'$(FeatureLegacySurface)' == 'true'">$(DefineConstants);FEATURE_LEGACYSURFACE</DefineConstants>
<DefineConstants Condition="'$(FeatureLoaderOptimization)' == 'true'">$(DefineConstants);FEATURE_LOADER_OPTIMIZATION</DefineConstants>
<DefineConstants Condition="'$(FeatureSyntheticCultures)' == 'true'">$(DefineConstants);FEATURE_SYNTHETIC_CULTURES</DefineConstants>
<DefineConstants Condition="'$(FeatureTypeEquivalence)' == 'true'">$(DefineConstants);FEATURE_TYPEEQUIVALENCE</DefineConstants>
<DefineConstants Condition="'$(FeatureUseLcid)' == 'true'">$(DefineConstants);FEATURE_USE_LCID</DefineConstants>
- <DefineConstants Condition="'$(FeatureUtf32)' == 'true'">$(DefineConstants);FEATURE_UTF32</DefineConstants>
- <DefineConstants Condition="'$(FeatureUtf7)' == 'true'">$(DefineConstants);FEATURE_UTF7</DefineConstants>
<DefineConstants Condition="'$(FeatureValidator)' == 'true'">$(DefineConstants);FEATURE_VALIDATOR</DefineConstants>
<DefineConstants Condition="'$(FeatureVersioning)' == 'true'">$(DefineConstants);FEATURE_VERSIONING</DefineConstants>
<DefineConstants Condition="'$(FeatureWin32Registry)' == 'true'">$(DefineConstants);FEATURE_WIN32_REGISTRY</DefineConstants>
<FeatureAppXBinder>true</FeatureAppXBinder>
<FeatureAptca>true</FeatureAptca>
<FeatureArrayStubAsIL Condition="('$(TargetArch)' == 'arm')">true</FeatureArrayStubAsIL>
- <FeatureAscii>true</FeatureAscii>
<FeatureBclFormatting>true</FeatureBclFormatting>
<FeatureCasPolicy>true</FeatureCasPolicy>
<FeatureTraceLogging>true</FeatureTraceLogging>
<FeatureDbiOopDebugging_HostWindowsx86>false</FeatureDbiOopDebugging_HostWindowsx86>
<FeatureDisplayCultureInfo>true</FeatureDisplayCultureInfo>
<FeatureDisplayRegionInfo>true</FeatureDisplayRegionInfo>
- <FeatureEncodingNls>true</FeatureEncodingNls>
<FeatureEventTrace>true</FeatureEventTrace>
<FeatureExceptionDispatchInfo>true</FeatureExceptionDispatchInfo>
<FeatureExceptionNotifications>true</FeatureExceptionNotifications>
<FeatureIsymReader>true</FeatureIsymReader>
<!-- This is here for testing purposes only, and only on checked builds for x86/ARM -->
<FeatureLazyCOWPages Condition="'$(_BuildType)'!='ret' and (('$(TargetArch)' == 'i386') or ('$(TargetArch)' == 'arm'))">true</FeatureLazyCOWPages>
- <FeatureLatin1>true</FeatureLatin1>
<FeatureLeakCultureInfo>true</FeatureLeakCultureInfo>
<FeatureLoaderOptimization>true</FeatureLoaderOptimization>
<FeatureMacl>true</FeatureMacl>
<FeatureTypeEquivalence>true</FeatureTypeEquivalence>
<FeatureUefChainmanager>true</FeatureUefChainmanager>
<FeatureUseLcid>true</FeatureUseLcid>
- <FeatureUtf32>true</FeatureUtf32>
- <FeatureUtf7>true</FeatureUtf7>
<FeatureValidator>true</FeatureValidator>
<FeatureWatson>true</FeatureWatson>
<FeatureWin32Registry>true</FeatureWin32Registry>
CompressBuffer(2);
changedEncoding = true;
}
-#if FEATURE_UTF32
else {
encoding = Encoding.UTF32;
CompressBuffer(4);
changedEncoding = true;
- }
-#endif
+ }
}
else if (byteLen >= 3 && byteBuffer[0]==0xEF && byteBuffer[1]==0xBB && byteBuffer[2]==0xBF) {
CompressBuffer(3);
changedEncoding = true;
}
-#if FEATURE_UTF32
else if (byteLen >= 4 && byteBuffer[0] == 0 && byteBuffer[1] == 0 &&
byteBuffer[2] == 0xFE && byteBuffer[3] == 0xFF) {
// Big Endian UTF32
CompressBuffer(4);
changedEncoding = true;
}
-#endif
else if (byteLen == 2)
_detectEncoding = true;
// Note: in the future, if we change this algorithm significantly,
#region Private properties for async method performance
// Access to instance fields of MarshalByRefObject-derived types requires special JIT helpers that check
- // if the instance operated on is remote. This is optimised for fields on \93this\94 but if a method is Async
+ // if the instance operated on is remote. This is optimised for fields on this but if a method is Async
// and is thus lifted to a state machine type, access will be slow.
// As a workaround, we either cache instance fields in locals or use properties to access such fields.
private PermissionSet BruteForceParseStream(Stream stream)
{
Encoding[] encodings = new Encoding[] { Encoding.UTF8,
-#if FEATURE_ASCII
Encoding.ASCII,
-#endif
Encoding.Unicode };
StreamReader reader = null;
private static volatile Encoding defaultEncoding;
private static volatile Encoding unicodeEncoding;
private static volatile Encoding bigEndianUnicode;
-#if FEATURE_UTF7
private static volatile Encoding utf7Encoding;
-#endif
private static volatile Encoding utf8Encoding;
-#if FEATURE_UTF32
private static volatile Encoding utf32Encoding;
-#endif
-#if FEATURE_ASCII
private static volatile Encoding asciiEncoding;
-#endif
-#if FEATURE_LATIN1
private static volatile Encoding latin1Encoding;
-#endif
+
static volatile Hashtable encodings;
//
}
// This constructor is needed to allow any sub-classing implementation to provide encoder/decoder fallback objects
- // because the encoding object is always created as read-only object and don\92t allow setting encoder/decoder fallback
+ // because the encoding object is always created as read-only object and don't allow setting encoder/decoder fallback
// after the creation is done.
protected Encoding(int codePage, EncoderFallback encoderFallback, DecoderFallback decoderFallback)
{
result = new SBCSCodePageEncoding(codepage);
break;
#else
-
-#if FEATURE_UTF7
// on desktop, UTF7 is handled by GetEncodingRare.
// On Coreclr, we handle this directly without bringing GetEncodingRare, so that we get real UTF-7 encoding.
case CodePageUTF7: // 65000, UTF7
result = UTF7;
break;
-#endif
-
-#if FEATURE_UTF32
case CodePageUTF32: // 12000
result = UTF32;
break;
result = new UTF32Encoding(true, true);
break;
#endif
-
-#endif
case CodePageUTF8: // 65001, UTF8
result = UTF8;
break;
// #define CP_SYMBOL 42 // SYMBOL translations
throw new ArgumentException(Environment.GetResourceString(
"Argument_CodepageNotSupported", codepage), "codepage");
-#if FEATURE_ASCII
// Have to do ASCII and Latin 1 first so they don't get loaded as code pages
case CodePageASCII: // 20127
result = ASCII;
break;
-#endif
-#if FEATURE_LATIN1
case ISO_8859_1: // 28591
result = Latin1;
break;
-#endif
default:
{
#if FEATURE_CODEPAGES_FILE
}
}
-#if FEATURE_ASCII
// Returns an encoding for the ASCII character set. The returned encoding
// will be an instance of the ASCIIEncoding class.
return asciiEncoding;
}
}
-#endif
-#if FEATURE_LATIN1
// Returns an encoding for the Latin1 character set. The returned encoding
// will be an instance of the Latin1Encoding class.
//
return latin1Encoding;
}
}
-#endif
// Returns the number of bytes required to encode the given character
// array.
}
}
-#if FEATURE_UTF7
// Returns an encoding for the UTF-7 format. The returned encoding will be
// an instance of the UTF7Encoding class.
//
return utf7Encoding;
}
}
-#endif
+
// Returns an encoding for the UTF-8 format. The returned encoding will be
// an instance of the UTF8Encoding class.
//
// Returns an encoding for the UTF-32 format. The returned encoding will be
// an instance of the UTF32Encoding class.
//
-#if FEATURE_UTF32
public static Encoding UTF32 {
get {
if (utf32Encoding == null) utf32Encoding = new UTF32Encoding(false, true);
return utf32Encoding;
}
}
-#endif
-
public override bool Equals(Object value) {
Encoding that = value as Encoding;
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
-#if FEATURE_ENCODINGNLS
namespace System.Text
{
}
}
}
-#endif // FEATURE_ENCODINGNLS
//
// Ported from windows c_iscii. If you find bugs here, there're likely similar
// bugs in the windows version
-#if FEATURE_ENCODINGNLS
namespace System.Text
{
using System;
}
}
-#endif // FEATURE_ENCODINGNLS
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
-#if FEATURE_ENCODINGNLS
namespace System.Text
{
using System;
};
}
}
-#endif // FEATURE_ENCODINGNLS
// Don't override IsAlwaysNormalized because it is just a Unicode Transformation and could be confused.
//
-#if FEATURE_UTF32
-
namespace System.Text
{
}
}
}
-
-#endif // FEATURE_UTF32