
/*
    MACRO03 : Benutzung von Funktionen
    AUTOR   : BeatniK / tRSi
    DATE    : 19.09.95

*/


/*
    Linelengh: Berechnet die Laenge der aktuellen Zeile

*/

(defun linelength ()             /* (): Keine Parameter!! */

    (set charpos (getcpos))      /* Charposition holen    */
    (set linepos (getlpos))      /* Line-Number holen     */

    (gobegin)                    /* An den Anfang der Zeile gehen */

    (set count 0)                /* Counter auf 0 setzen */

    (while (eq linepos (getlpos)) /* Solgane linepos = (getlpos) */
        (goright)                /* Ein Zeichen nach rechts gehen */
        (set count (+ count 1))  /* count = count + 1    */
    )

    /* Und wieder an die aktuelle Position gehen! */

    (goup)                       /* Eine Zeile nach oben gehen  */

    (if (> conut 0)              /* count>0 ? */

        (do                      /* Da mehrere Befehle folgen!  */
            (set i 0)            /* Hilfs-Variable i */
            (for i 0 count       /* Schleife count-mal ausfuehren */
                (goright)
            )
        )
    )
    count                        /* Count zuruechliefern */
)


/* Main-funktion */

(set length (linelength))        /* Unsere Funktion!     */

(gobottom)                       /* Ans Ende des Textes gehen.. */
(write 'Laenge: ' length)        /* Laenge ausgeben      */


