WikiFunctions.Diff.CreatePatch C# (CSharp) Method

CreatePatch() public method

public CreatePatch ( ) : Patch
return Patch
        public Patch CreatePatch()
        {
            int ctr = 0;
            foreach (Hunk hunk in this)
            {
                if (!hunk.Same)
                {
                    ctr += hunk.Right.Count;
                }
            }

            object[] rightData = new object[ctr];

            ArrayList hunks = new ArrayList();
            ctr = 0;
            foreach (Hunk hunk in this)
            {
                if (hunk.Same)
                {
                    hunks.Add(new Patch.Hunk(rightData, hunk.Left.Start, hunk.Left.Count, 0, 0, true));
                }
                else
                {
                    hunks.Add(new Patch.Hunk(rightData, hunk.Left.Start, hunk.Left.Count, ctr, hunk.Right.Count, false));
                    foreach (object t in hunk.Right)
                    {
                        rightData[ctr++] = t;
                    }
                }
            }

            return new Patch((Patch.Hunk[]) hunks.ToArray(typeof(Patch.Hunk)));
        }