示例#1
0
            /// <summary>
            /// Controls the count of linebreaks before an item
            /// These linebreaks are permananet and cannot be deleted by clean-up operations
            /// It is allowed that i_Item may be null !
            /// </summary>
            public static void SetLinebreakBefore(ParseItem i_Item, int s32_Count)
            {
                if (i_Item == null || i_Item.Prev == null) // Don't insert linebreaks before the first item
                    return;

                if (!i_Item.mi_Parser.mb_ModifyLineBR)
                    return;

                // Assure at least s32_Count Linebreaks which are permanent
                for (int i=0; i<s32_Count; i++)
                {
                    if (getType(i_Item.Prev) != eType.LineBreak)
                        i_Item.InsertBefore(new ParseItem(i_Item.mi_Parser, "\n"));

                    i_Item = i_Item.Prev;
                    i_Item.Permanent = true;
                }
            }