/*We use the internal routines from the text editor
to cut and paste lines to rev the order of
lines in a text file.
*/

Cd(__DIR__);;

U0 Rev(U8 *in_name, U8 *out_name)
{
        CDoc    *doc_in  = DocRead(in_name),
                        *doc_out = DocNew(out_name);
        DocTop(doc_in);
        while (doc_in->head.next != doc_in)
        {
                EdLineDown(doc_in, SC_CURSOR_DOWN | SCF_SHIFT);
                ClipCut(doc_in);
                DocTop(doc_out);
                ClipPaste(doc_out);
        }
        DocWrite(doc_out);
}

Rev("DemoPoemBwd.DD", "~/DemoPoemFwd.DD");