summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark McLoughlin <mark@skynet.ie>2004-12-10 15:50:05 +0000
committerMark McLoughlin <mark@skynet.ie>2004-12-10 15:50:05 +0000
commite1b6bf680dc4d021e7f2122841f812975a31985c (patch)
treebacf818e650fd36a04d5f9e6792ec337b8ab7ada
parent87fb46a8631a8b509bb1b8026b88c7059f869ffd (diff)
downloadxdg-specs-e1b6bf680dc4d021e7f2122841f812975a31985c.tar.xz
make <OnlyUnallocated/> be for entries which don't match any <Include>
2004-12-08 Mark McLoughlin <mark@skynet.ie> * menu-spec.xml: make <OnlyUnallocated/> be for entries which don't match any <Include> rule rather than entries which don't appear in any menu.
-rw-r--r--menu/ChangeLog6
-rw-r--r--menu/menu-spec.xml29
2 files changed, 22 insertions, 13 deletions
diff --git a/menu/ChangeLog b/menu/ChangeLog
index 89a9b2f..2406bf7 100644
--- a/menu/ChangeLog
+++ b/menu/ChangeLog
@@ -1,3 +1,9 @@
+2004-12-08 Mark McLoughlin <mark@skynet.ie>
+
+ * menu-spec.xml: make <OnlyUnallocated/> be for entries
+ which don't match any <Include> rule rather than entries
+ which don't appear in any menu.
+
2004-09-03 Mark McLoughlin <mark@skynet.ie>
* menu-spec.xml: minor typo - "This specification adds two
diff --git a/menu/menu-spec.xml b/menu/menu-spec.xml
index 192d53d..b227535 100644
--- a/menu/menu-spec.xml
+++ b/menu/menu-spec.xml
@@ -4,8 +4,8 @@
<article id="index">
<articleinfo>
<title>Desktop Menu Specification</title>
- <releaseinfo>Version 0.8</releaseinfo>
- <date>9 November 2003</date>
+ <releaseinfo>Version 0.9</releaseinfo>
+ <date>8 December 2004</date>
<authorgroup>
<author>
<firstname>Waldo</firstname>
@@ -483,12 +483,13 @@ entries</ulink>: <varname>Categories</varname>,
To handle &lt;OnlyUnallocated&gt;, the menu file must be
analyzed in two conceptual passes. The first pass processes
&lt;Menu&gt; elements that can match any desktop entry. During
- this pass, each desktop entry is marked according to whether it
- was included in some &lt;Menu&gt;. The second pass processes
- only &lt;Menu&gt; elements that are restricted to unallocated
- desktop entries. During the second pass, queries may only match
- desktop entries that were not allocated to some menu during the
- first pass. See <xref linkend="query-algorithm"/>.
+ this pass, each desktop entry is marked as allocated according
+ to whether it was matched by an &lt;Include&gt; rule in some
+ &lt;Menu&gt;. The second pass processes only &lt;Menu&gt;
+ elements that are restricted to unallocated desktop entries.
+ During the second pass, queries may only match desktop entries
+ that were not marked as allocated during the first pass.
+ See <xref linkend="query-algorithm"/>.
</para>
</listitem>
</varlistentry>
@@ -1044,13 +1045,15 @@ entries</ulink>: <varname>Categories</varname>,
Next, walk through all &lt;Include&gt; and &lt;Exclude&gt; statements.
For each &lt;Include&gt;, match the rules against the pool of all desktop
entries. For each desktop entry that matches one of the rules,
- add it to the menu to be displayed. For each &lt;Exclude&gt;, match
- the rules against the currently-included desktop entries. For each
- desktop entry that matches, remove it again from the menu.
+ add it to the menu to be displayed and mark it as having been allocated.
+ For each &lt;Exclude&gt;, match the rules against the currently-included
+ desktop entries. For each desktop entry that matches, remove it again
+ from the menu.
</para>
<para>
- Two passes are necessary, once for regular menus, and
- once for &lt;OnlyUnallocated&gt; menus.
+ Two passes are necessary, once for regular menus where any entry may
+ be matched, and once for &lt;OnlyUnallocated&gt; menus where only entries
+ which have not been marked as allocated may be matched.
</para>
<para>
The result is a tree of desktop entries, of course.