Subject: bug#32359: [PATCH] Add svg-path

From: "Felix E. Klee" <[email-masked]>
Date: Fri, 12 Jul 2019 16:35:54 +0200

Hi Lars,

finally I got around to finishing documentation.  Find the latest
release at:

https://github.com/feklee/svg-plus

In addition to `svg+-path`, I added:

  * `svg+-clip-path`

  * `svg+-node`

If you want to play with the new functions, simply run the code examples
from the info page inside of `example.el`.  Concerning `svg+-path`, I’d
like to hear your thoughts: Do you see room for further improvement, or
could this be the final interface?

I was thinking about removing the double parentheses in commands such
as:

    (lineto ((100 . 200)))

One could simplify that to:

    (lineto (100 . 200))

Polylines would change from:

    (lineto ((100 . 200) (300 . 200)))

To:

    (lineto (100 . 200) (300 . 200))

Reasons against this change:

  * Parsing optional arguments (plist) could be a pain.  Currently what
    works nicely:

        (lineto ((100 . 200) (200 . 0)) :relative t)

    Elliptical arc allows additional optional arguments, such as:

        (elliptical-arc ((50 100 200 300 :large-arc 1)) :relative t)

  * Aesthetically, some standard Lisp commands aren’t “better.”  For
    example `let` also requires double parentheses for single
    assignments:

        (let ((x 3)) (* x x))

―Felix