<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>plantuml on
A Scripter's Notes</title><link>https://scripter.co/tags/plantuml/</link><description>Recent content in plantuml
on A Scripter's Notes</description><language>en-us</language><managingEditor>kaushal.modi@gmail.com (Kaushal Modi)</managingEditor><webMaster>kaushal.modi@gmail.com (Kaushal Modi)</webMaster><lastBuildDate>Wed, 22 Apr 2026 08:24:58 -0400</lastBuildDate><generator>Hugo -- gohugo.io</generator><docs>https://validator.w3.org/feed/docs/rss2.html</docs><atom:link href="https://scripter.co/tags/plantuml/index.xml" rel="self" type="application/rss+xml"/><item><title>Emacs Lisp: Advice Combinators</title><link>https://scripter.co/emacs-lisp-advice-combinators/</link><description>&lt;blockquote>My diagrammatic take on summarizing all the Emacs advice combinators.&lt;/blockquote>&lt;div class="ox-hugo-toc toc">
&lt;div class="heading">Table of Contents&lt;/div>
&lt;ul>
&lt;li>&lt;a href="#overview-on-using-advices">Overview on using advices&lt;/a>&lt;/li>
&lt;li>&lt;a href="#advice-combinators--before">&lt;span class="section-num">1&lt;/span> &lt;code>:before&lt;/code>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#advice-combinators--after">&lt;span class="section-num">2&lt;/span> &lt;code>:after&lt;/code>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#advice-combinators--override">&lt;span class="section-num">3&lt;/span> &lt;code>:override&lt;/code>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#advice-combinators--around">&lt;span class="section-num">4&lt;/span> &lt;code>:around&lt;/code>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#advice-combinators--before-while">&lt;span class="section-num">5&lt;/span> &lt;code>:before-while&lt;/code>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#advice-combinators--before-until">&lt;span class="section-num">6&lt;/span> &lt;code>:before-until&lt;/code>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#advice-combinators--after-while">&lt;span class="section-num">7&lt;/span> &lt;code>:after-while&lt;/code>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#advice-combinators--after-until">&lt;span class="section-num">8&lt;/span> &lt;code>:after-until&lt;/code>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#advice-combinators--filter-args">&lt;span class="section-num">9&lt;/span> &lt;code>:filter-args&lt;/code>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#advice-combinators--filter-return">&lt;span class="section-num">10&lt;/span> &lt;code>:filter-return&lt;/code>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#summary">Summary&lt;/a>&lt;/li>
&lt;li>&lt;a href="#advice-combinators--references">References&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>
&lt;!--endtoc-->
&lt;p>If you have read some of my earlier posts, you would know that I
really enjoy using the Emacs Advice system 😃.&lt;/p>
&lt;p>The &amp;ldquo;advice&amp;rdquo; feature lets you add to the existing definition of a
function, by &lt;em>advising the function&lt;/em>. This is a cleaner method than
redefining the whole function, because it&amp;rsquo;s easier to debug and if you
don&amp;rsquo;t need it, you can just &lt;em>remove&lt;/em> the advice.&lt;/p>
&lt;div class="note">
&lt;p>You can jump to the &lt;a href="#advice-combinators--references">References section&lt;/a> below if you need to look at
the related sections in the Emacs Lisp Manual.&lt;/p>
&lt;/div>
&lt;h2 id="overview-on-using-advices">Overview on using advices&amp;nbsp;&lt;a class="headline-hash no-text-decoration" href="#overview-on-using-advices">#&lt;/a>&lt;/h2>
&lt;p>I do not plan to write a tutorial on how to write advices in
Emacs-Lisp, but here&amp;rsquo;s a 3-second primer:&lt;/p>
&lt;dl>
&lt;dt>To add an advice&lt;/dt>
&lt;dd>&lt;code class="code-inline language-emacs-lisp">&lt;span class="p">(&lt;/span>&lt;span class="nv">advice-add&lt;/span> &lt;span class="ss">&amp;#39;original-fn&lt;/span> &lt;span class="nv">&amp;lt;combinator&amp;gt;&lt;/span> &lt;span class="nf">#&amp;#39;&lt;/span>&lt;span class="nv">advising-fn&lt;/span>&lt;span class="p">)&lt;/span>&lt;/code>&lt;/dd>
&lt;dt>To remove an advice&lt;/dt>
&lt;dd>&lt;code class="code-inline language-emacs-lisp">&lt;span class="p">(&lt;/span>&lt;span class="nv">advice-remove&lt;/span> &lt;span class="ss">&amp;#39;original-fn&lt;/span> &lt;span class="nf">#&amp;#39;&lt;/span>&lt;span class="nv">advising-fn&lt;/span>&lt;span class="p">)&lt;/span>&lt;/code>&lt;/dd>
&lt;/dl>
&lt;p>This article attempts to briefly describe different ways of advising a
function, using 10 different &lt;em>combinators&lt;/em>. If you have never used
advices in your Emacs config, don&amp;rsquo;t worry. I am hopeful that the
diagrams in this post and the examples linked for some of the
combinators in the Summary section makes this concept a bit easier to
assimilate.&lt;/p>
&lt;dl>
&lt;dt>Diagram Legend&lt;/dt>
&lt;dd>&lt;ul>
&lt;li>Initial black circle: Original Fn input arguments&lt;/li>
&lt;li>Yellow box: Original Fn&lt;/li>
&lt;li>Gray box: Advising Fn&lt;/li>
&lt;li>Black circle inside a white circle: Return values&lt;/li>
&lt;/ul>
&lt;/dd>
&lt;/dl>
&lt;h2 id="advice-combinators--before">&lt;span class="section-num">1&lt;/span> &lt;code>:before&lt;/code>&amp;nbsp;&lt;a class="headline-hash no-text-decoration" href="#advice-combinators--before">#&lt;/a>&lt;/h2>
&lt;p>&lt;a id="figure--advice-combinators-before">&lt;/a>&lt;/p>
&lt;figure>
&lt;img src="https://scripter.co/emacs-lisp-advice-combinators/before.svg" alt="Figure 1: :before advice"/> &lt;figcaption>
&lt;p>
&lt;span class="figure-number">Figure 1: &lt;/span>&lt;strong>:before&lt;/strong> advice
&lt;/p>
&lt;/figcaption>&lt;/figure>
&lt;h2 id="advice-combinators--after">&lt;span class="section-num">2&lt;/span> &lt;code>:after&lt;/code>&amp;nbsp;&lt;a class="headline-hash no-text-decoration" href="#advice-combinators--after">#&lt;/a>&lt;/h2>
&lt;p>&lt;a id="figure--advice-combinators-after">&lt;/a>&lt;/p>
&lt;figure>
&lt;img src="https://scripter.co/emacs-lisp-advice-combinators/after.svg" alt="Figure 2: :after advice"/> &lt;figcaption>
&lt;p>
&lt;span class="figure-number">Figure 2: &lt;/span>&lt;strong>:after&lt;/strong> advice
&lt;/p>
&lt;/figcaption>&lt;/figure>
&lt;h2 id="advice-combinators--override">&lt;span class="section-num">3&lt;/span> &lt;code>:override&lt;/code>&amp;nbsp;&lt;a class="headline-hash no-text-decoration" href="#advice-combinators--override">#&lt;/a>&lt;/h2>
&lt;p>&lt;a id="figure--advice-combinators-override">&lt;/a>&lt;/p>
&lt;figure>
&lt;img src="https://scripter.co/emacs-lisp-advice-combinators/override.svg" alt="Figure 3: :override advice"/> &lt;figcaption>
&lt;p>
&lt;span class="figure-number">Figure 3: &lt;/span>&lt;strong>:override&lt;/strong> advice
&lt;/p>
&lt;/figcaption>&lt;/figure>
&lt;h2 id="advice-combinators--around">&lt;span class="section-num">4&lt;/span> &lt;code>:around&lt;/code>&amp;nbsp;&lt;a class="headline-hash no-text-decoration" href="#advice-combinators--around">#&lt;/a>&lt;/h2>
&lt;p>&lt;a id="figure--advice-combinators-around">&lt;/a>&lt;/p>
&lt;figure>
&lt;img src="https://scripter.co/emacs-lisp-advice-combinators/around.svg" alt="Figure 4: :around advice"/> &lt;figcaption>
&lt;p>
&lt;span class="figure-number">Figure 4: &lt;/span>&lt;strong>:around&lt;/strong> advice
&lt;/p>
&lt;/figcaption>&lt;/figure>
&lt;h2 id="advice-combinators--before-while">&lt;span class="section-num">5&lt;/span> &lt;code>:before-while&lt;/code>&amp;nbsp;&lt;a class="headline-hash no-text-decoration" href="#advice-combinators--before-while">#&lt;/a>&lt;/h2>
&lt;p>&lt;a id="figure--advice-combinators-before-while">&lt;/a>&lt;/p>
&lt;figure>
&lt;img src="https://scripter.co/emacs-lisp-advice-combinators/before-while.svg" alt="Figure 5: :before-while advice"/> &lt;figcaption>
&lt;p>
&lt;span class="figure-number">Figure 5: &lt;/span>&lt;strong>:before-while&lt;/strong> advice
&lt;/p>
&lt;/figcaption>&lt;/figure>
&lt;h2 id="advice-combinators--before-until">&lt;span class="section-num">6&lt;/span> &lt;code>:before-until&lt;/code>&amp;nbsp;&lt;a class="headline-hash no-text-decoration" href="#advice-combinators--before-until">#&lt;/a>&lt;/h2>
&lt;p>&lt;a id="figure--advice-combinators-before-until">&lt;/a>&lt;/p>
&lt;figure>
&lt;img src="https://scripter.co/emacs-lisp-advice-combinators/before-until.svg" alt="Figure 6: :before-until advice"/> &lt;figcaption>
&lt;p>
&lt;span class="figure-number">Figure 6: &lt;/span>&lt;strong>:before-until&lt;/strong> advice
&lt;/p>
&lt;/figcaption>&lt;/figure>
&lt;h2 id="advice-combinators--after-while">&lt;span class="section-num">7&lt;/span> &lt;code>:after-while&lt;/code>&amp;nbsp;&lt;a class="headline-hash no-text-decoration" href="#advice-combinators--after-while">#&lt;/a>&lt;/h2>
&lt;p>&lt;a id="figure--advice-combinators-after-while">&lt;/a>&lt;/p>
&lt;figure>
&lt;img src="https://scripter.co/emacs-lisp-advice-combinators/after-while.svg" alt="Figure 7: :after-while advice"/> &lt;figcaption>
&lt;p>
&lt;span class="figure-number">Figure 7: &lt;/span>&lt;strong>:after-while&lt;/strong> advice
&lt;/p>
&lt;/figcaption>&lt;/figure>
&lt;h2 id="advice-combinators--after-until">&lt;span class="section-num">8&lt;/span> &lt;code>:after-until&lt;/code>&amp;nbsp;&lt;a class="headline-hash no-text-decoration" href="#advice-combinators--after-until">#&lt;/a>&lt;/h2>
&lt;p>&lt;a id="figure--advice-combinators-after-until">&lt;/a>&lt;/p>
&lt;figure>
&lt;img src="https://scripter.co/emacs-lisp-advice-combinators/after-until.svg" alt="Figure 8: :after-until advice"/> &lt;figcaption>
&lt;p>
&lt;span class="figure-number">Figure 8: &lt;/span>&lt;strong>:after-until&lt;/strong> advice
&lt;/p>
&lt;/figcaption>&lt;/figure>
&lt;h2 id="advice-combinators--filter-args">&lt;span class="section-num">9&lt;/span> &lt;code>:filter-args&lt;/code>&amp;nbsp;&lt;a class="headline-hash no-text-decoration" href="#advice-combinators--filter-args">#&lt;/a>&lt;/h2>
&lt;p>&lt;a id="figure--advice-combinators-filter-args">&lt;/a>&lt;/p>
&lt;figure>
&lt;img src="https://scripter.co/emacs-lisp-advice-combinators/filter-args.svg" alt="Figure 9: :filter-args advice"/> &lt;figcaption>
&lt;p>
&lt;span class="figure-number">Figure 9: &lt;/span>&lt;strong>:filter-args&lt;/strong> advice
&lt;/p>
&lt;/figcaption>&lt;/figure>
&lt;h2 id="advice-combinators--filter-return">&lt;span class="section-num">10&lt;/span> &lt;code>:filter-return&lt;/code>&amp;nbsp;&lt;a class="headline-hash no-text-decoration" href="#advice-combinators--filter-return">#&lt;/a>&lt;/h2>
&lt;p>&lt;a id="figure--advice-combinators-filter-return">&lt;/a>&lt;/p>
&lt;figure>
&lt;img src="https://scripter.co/emacs-lisp-advice-combinators/filter-return.svg" alt="Figure 10: :filter-return advice"/> &lt;figcaption>
&lt;p>
&lt;span class="figure-number">Figure 10: &lt;/span>&lt;strong>:filter-return&lt;/strong> advice
&lt;/p>
&lt;/figcaption>&lt;/figure>
&lt;h2 id="summary">Summary&amp;nbsp;&lt;a class="headline-hash no-text-decoration" href="#summary">#&lt;/a>&lt;/h2>
&lt;p>Here&amp;rsquo;s a concise summary of what each advice combinator does. For
brevity, the &lt;em>advising function&lt;/em> is called &lt;em>A&lt;/em> and the &lt;em>original
function&lt;/em> is called &lt;em>O&lt;/em>.&lt;/p>
&lt;div class="note">
&lt;p>Once you click on any of the example posts, search for &lt;code>advice-add&lt;/code> on
that page to find the code example.&lt;/p>
&lt;/div>
&lt;p>&lt;a id="table--advice-combinator-summary">&lt;/a>&lt;/p>
&lt;div class="table-caption">
&lt;span class="table-number">&lt;a href="#table--advice-combinator-summary">Table 1&lt;/a>:&lt;/span>
Summary of what each advice combinator means
&lt;/div>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Combinator&lt;/th>
&lt;th>Description&lt;/th>
&lt;th>Example&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>:before&lt;/code>&lt;/td>
&lt;td>&lt;em>A&lt;/em> is called before &lt;em>O&lt;/em>. &lt;em>O&lt;/em> args and return values are not modified.&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>:after&lt;/code>&lt;/td>
&lt;td>&lt;em>A&lt;/em> is called after &lt;em>O&lt;/em>. &lt;em>O&lt;/em> args and return values are not modified.&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>:override&lt;/code>&lt;/td>
&lt;td>&lt;em>A&lt;/em> is called in lieu of &lt;em>O&lt;/em>. &lt;em>A&lt;/em> gets the same args as &lt;em>O&lt;/em>.&lt;/td>
&lt;td>&lt;a href="https://scripter.co/zero-html-validation-errors/">Zero HTML Validation Errors!&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>:around&lt;/code>&lt;/td>
&lt;td>&lt;em>A&lt;/em> is called in lieu of &lt;em>O&lt;/em>. &lt;em>A&lt;/em> gets &lt;em>O&lt;/em> fn + &lt;em>O&lt;/em> args as args.&lt;/td>
&lt;td>&lt;a href="https://scripter.co/using-emacs-advice-to-silence-messages-from-functions/">Using Emacs advice to silence messages from functions&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>:before-while&lt;/code>&lt;/td>
&lt;td>&lt;em>A&lt;/em> is called first. If it returns non-nil, &lt;em>O&lt;/em> is called.&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>:before-until&lt;/code>&lt;/td>
&lt;td>&lt;em>A&lt;/em> is called first. If it returns nil, &lt;em>O&lt;/em> is called.&lt;/td>
&lt;td>&lt;a href="https://scripter.co/org-show-only-post-subtree-headings/">Org: Show only Post subtree headings&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>:after-while&lt;/code>&lt;/td>
&lt;td>&lt;em>O&lt;/em> is called first. If it returns non-nil, &lt;em>A&lt;/em> is called.&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>:after-until&lt;/code>&lt;/td>
&lt;td>&lt;em>O&lt;/em> is called first. If it returns nil, &lt;em>A&lt;/em> is called.&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>:filter-args&lt;/code>&lt;/td>
&lt;td>&lt;em>A&lt;/em> is called first. &lt;em>O&lt;/em> is called next with return value from &lt;em>A&lt;/em> as input.&lt;/td>
&lt;td>&lt;a href="https://scripter.co/narrowing-the-author-column-in-magit/">Narrowing the Author column in Magit&lt;/a>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>:filter-return&lt;/code>&lt;/td>
&lt;td>&lt;em>O&lt;/em> is called first. &lt;em>A&lt;/em> is called next with return value from &lt;em>O&lt;/em> as input.&lt;/td>
&lt;td>&lt;a href="https://scripter.co/zero-html-validation-errors/">Zero HTML Validation Errors!&lt;/a>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>If you have any feedback on how these diagrams can be made easier to
understand, please let me know.&lt;/p>
&lt;h2 id="advice-combinators--references">References&amp;nbsp;&lt;a class="headline-hash no-text-decoration" href="#advice-combinators--references">#&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://www.gnu.org/software/emacs/manual/html_node/elisp/Advising-Functions.html" title="Emacs Lisp: (info &amp;quot;(elisp) Advising Functions&amp;quot;)">Elisp Info: Advising Functions&lt;/a>
&lt;ul>
&lt;li>&lt;a href="https://www.gnu.org/software/emacs/manual/html_node/elisp/Advice-Combinators.html" title="Emacs Lisp: (info &amp;quot;(elisp) Advice Combinators&amp;quot;)">Elisp Info: Advice Combinators&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description><author>Kaushal.Modi@fakeEmailToMakeValidatorHappy.com (Kaushal Modi)</author><category domain="https://scripter.co/categories/emacs">emacs</category><category domain="https://scripter.co/categories/elisp">elisp</category><category domain="https://scripter.co/tags/100daystooffload">100DaysToOffload</category><category domain="https://scripter.co/tags/advice">advice</category><category domain="https://scripter.co/tags/plantuml">plantuml</category><guid>https://scripter.co/emacs-lisp-advice-combinators/</guid><pubDate>Fri, 17 Jun 2022 21:30:00 -0400</pubDate></item><item><title>Org Contribution Flow-chart</title><link>https://scripter.co/org-contribution-flowchart/</link><description>&lt;blockquote>A handy flow-chart if you are confused about when commits happen to
Org &lt;code>bugfix&lt;/code> branch vs &lt;code>main&lt;/code> branch, what ends up in the GNU Elpa
version, and so on.&lt;/blockquote>&lt;p>I have often seen questions and confusion about why certain fixes or
features added to Org mode did not show up in its update on GNU Elpa.&lt;/p>
&lt;p>Below flow chart is an attempt to answer all such questions, and also
my first attempt at creating one using &lt;strong>PlantUML&lt;/strong> (&lt;em>legacy syntax&lt;/em>)
&lt;span class="sidenote-number">&lt;small class="sidenote">
See the &lt;a href="http://plantuml.com/activity-diagram-legacy">legacy&lt;/a> vs &lt;a href="http://plantuml.com/activity-diagram-beta">new (beta)&lt;/a> PlantUML syntax for activity
diagrams. When I tried the new (beta) syntax, it did not allow using
the &amp;ldquo;labels&amp;rdquo;.. see the &lt;code>as bugfix&lt;/code>, &lt;code>as main&lt;/code> syntax in the &lt;a href="#org-target--org-contrib-plantuml-source-code">flowchart
source code&lt;/a>.
&lt;/small>&lt;/span>
.&lt;/p>
&lt;p>&lt;a id="figure--org-contribution-flow-chart">&lt;/a>&lt;/p>
&lt;figure>
&lt;img src="https://scripter.co/org-contribution-flowchart/flowchart.svg" alt="Figure 1: Flow of a commit in Org mode repo from bugfix branch to main branch to Emacs repo"/> &lt;figcaption>
&lt;p>
&lt;span class="figure-number">Figure 1: &lt;/span>Flow of a commit in Org mode repo from &lt;code>bugfix&lt;/code> branch to &lt;code>main&lt;/code> branch to Emacs repo
&lt;/p>
&lt;/figcaption>&lt;/figure>
&lt;p>&lt;span class="org-target" id="org-target--org-contrib-plantuml-source-code">&lt;/span>&lt;/p>
&lt;details>
&lt;summary>PlantUML source code&lt;/summary>
&lt;div class="details">
&lt;pre tabindex="0">&lt;code class="language-plantuml" data-lang="plantuml">(*) --&amp;gt; &amp;#34;My Org commit&amp;#34;
--&amp;gt; &amp;#34;Discuss on Org mailing list&amp;#34;
if &amp;#34;Bug fix commit?&amp;#34; then
--&amp;gt;[yes] &amp;#34;Commit to Org **bugfix**&amp;#34; as bugfix
else
-&amp;gt;[no] if &amp;#34;**bugfix** compatible doc fix commit?&amp;#34; then
--&amp;gt;[yes] bugfix
else
-&amp;gt;[no] &amp;#34;Commit to Org **main**&amp;#34; as main
endif
endif
bugfix --&amp;gt; &amp;#34;Merge to Org **main**&amp;#34;
--&amp;gt; main
bugfix --&amp;gt; &amp;#34;Wait till next Monday&amp;#34;
--&amp;gt; &amp;#34;Push to GNU Elpa&amp;#34; as push
bugfix --&amp;gt; &amp;#34;Short maturity time&amp;#34;
--&amp;gt; &amp;#34;Cut a minor release&amp;#34; as minor_release
minor_release --&amp;gt; ===RELEASE===
minor_release --&amp;gt; main
main --&amp;gt; &amp;#34;**Long maturity time**&amp;#34;
--&amp;gt; &amp;#34;Cut a major release&amp;#34; as major_release
major_release --&amp;gt; ===RELEASE===
major_release --&amp;gt; &amp;#34;Merge to Org **bugfix**&amp;#34;
--&amp;gt; bugfix
===RELEASE=== --&amp;gt; push
===RELEASE=== --&amp;gt; &amp;#34;Squash and commit to Emacs release or main branch&amp;#34;
--&amp;gt; (*)
push --&amp;gt; (*)
&lt;/code>&lt;/pre>&lt;dl>
&lt;dt>Few notes on PlantUML syntax&lt;/dt>
&lt;dd>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Syntax&lt;/th>
&lt;th>Output&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>-​-​&amp;gt;&lt;/code>&lt;/td>
&lt;td>Vertical arrow&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>-​&amp;gt;&lt;/code>&lt;/td>
&lt;td>Horizontal arrow&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>(*) -​-​&amp;gt;&lt;/code>&lt;/td>
&lt;td>Start point&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>-​-​&amp;gt; (*)&lt;/code>&lt;/td>
&lt;td>End point&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/dd>
&lt;/dl>
&lt;/div>
&lt;/details></description><author>Kaushal.Modi@fakeEmailToMakeValidatorHappy.com (Kaushal Modi)</author><category domain="https://scripter.co/categories/emacs">emacs</category><category domain="https://scripter.co/categories/org">org</category><category domain="https://scripter.co/tags/plantuml">plantuml</category><category domain="https://scripter.co/tags/flow-chart">flow-chart</category><category domain="https://scripter.co/tags/contribution">contribution</category><category domain="https://scripter.co/tags/development">development</category><guid>https://scripter.co/org-contribution-flowchart/</guid><pubDate>Tue, 06 Mar 2018 00:23:00 -0500</pubDate></item></channel></rss>