Пример #1
0
        public static bool IsLineEnd(string text, int charIndex)
        {
            text = EnsureEndOfText(text);
            LineEndKinds kind = GetLineEndKind(text, charIndex);

            return
                (((kind & LineEndKinds.EndOfText) == LineEndKinds.EndOfText) ||
                 ((kind & LineEndKinds.CarrigeReturnOfSingleByte) == LineEndKinds.CarrigeReturnOfSingleByte) ||
                 ((kind & LineEndKinds.LineFeed) == LineEndKinds.LineFeed));
        }
Пример #2
0
        // --- internal ---
        internal string SanitizeLineEnd(string text)
        {
            StringBuilder ret = new StringBuilder();

            for (int i = 0; i < text.Length; ++i)
            {
                LineEndKinds kind = GetLineEndKind(text, i);
                /// crlf: crを無視,cr: lfをappend,lf: そのままappend,その他: そのままappend
                if ((kind & LineEndKinds.FirstOfDoubleByte) == LineEndKinds.FirstOfDoubleByte)
                {
                    /// do nothing
                }
                else if (((kind & LineEndKinds.CarrigeReturnOfSingleByte) == LineEndKinds.CarrigeReturnOfSingleByte))
                {
                    ret.Append('\n');
                }
                else
                {
                    ret.Append(text[i]);
                }
            }
            return(ret.ToString());
        }
Пример #3
0
 public static bool IsLineEndSecondOfDoubleByte(LineEndKinds kind)
 {
     return((kind & LineEndKinds.SecondOfDoubleByte) == LineEndKinds.SecondOfDoubleByte);
 }
Пример #4
0
 public static bool IsSingleCarrigeReturnLineEnd(LineEndKinds kind)
 {
     return((kind & LineEndKinds.CarrigeReturnOfSingleByte) == LineEndKinds.CarrigeReturnOfSingleByte);
 }