]> granicus.if.org Git - neomutt/commitdiff
keywords: Remove dead code/doc of keywords patch 792/head
authorMehdi Abaakouk <sileht@sileht.net>
Wed, 27 Sep 2017 05:32:52 +0000 (07:32 +0200)
committerRichard Russon <rich@flatcap.org>
Tue, 3 Oct 2017 15:20:28 +0000 (16:20 +0100)
Keywords patch support have been removed by 92e6dc1d89f7187eeea1412e51598600925e23f5.

This change removes associated config and docs.

Closes #769

README.md
copy.c
doc/manual.xml.head
doc/neomutt-syntax.vim
envelope.h
globals.h
imap/message.c
init.h
mutt.h
options.h
version.c

index 20cc1f81aae71505ca89aea9d72c38f2379d1cc2..ebc3928f8a8521bfa8f43ba5cc39276277d94b73 100644 (file)
--- a/README.md
+++ b/README.md
@@ -33,7 +33,6 @@ sorted through them, fixed them up and documented them.
 | Ifdef                | Conditional config options
 | Index Color          | Custom rules for theming the email index
 | Initials Expando     | Expando for author's initials
-| Keywords             | Labels/Tagging for emails
 | Kyoto Cabinet        | Kyoto Cabinet backend for the header cache
 | Limit Current Thread | Focus on one Email Thread
 | LMDB                 | LMDB backend for the header cache
diff --git a/copy.c b/copy.c
index 71014bd7d06661067816d573607fc9115bcc08d2..931af08789ecb13ab53f704b218169326bdfed4c 100644 (file)
--- a/copy.c
+++ b/copy.c
@@ -132,15 +132,6 @@ int mutt_copy_hdr(FILE *in, FILE *out, LOFF_T off_start, LOFF_T off_end,
         ignore = false;
       }
 
-      if (flags & CH_UPDATE_LABEL)
-      {
-        if ((mutt_strncasecmp("X-Label:", buf, 8) == 0) ||
-            (mutt_strncasecmp("X-Keywords:", buf, 11) == 0) ||
-            (mutt_strncasecmp("X-Mozilla-Keys:", buf, 15) == 0) ||
-            (mutt_strncasecmp("Keywords:", buf, 9) == 0))
-          continue;
-      }
-
       if (!ignore && fputs(buf, out) == EOF)
         return -1;
     }
index 3d38169762446edd241f0a2b09ea4e964561018b..7d3b272dc9710e4de30b8d4f33a1fa5e2ecb87a7 100644 (file)
@@ -7671,93 +7671,6 @@ roessler@does-not-exist.org        Thomas Roessler mutt pgp
       find topics of value.</para>
     </sect1>
 
-    <sect1 id="using-keywords">
-      <title>Keyword Management</title>
-      <para>NeoMutt has supported textual labels (usually known as X-Labels after
-      the header that we use to store them) for many years. Since we initially
-      added support for X-Labels, however, the larger community has evolved
-      more common ways of using and managing such labels, often known as
-      <quote>keywords</quote> or
-      <quote>tags</quote>.</para>
-      <para>If you are new to NeoMutt or to using keywords in NeoMutt, you only need
-      to know that the &lt;edit-label&gt; binding will edit keywords, and that
-      you can search for keywords using the
-      <literal>~y</literal> pattern, and use the
-      <literal>%y</literal> expando to display it in your
-      <literal>$index_format</literal>. You also can sort by keyword. Keywords
-      that you set will be stored to the
-      <literal>X-Label:</literal>header by default.</para>
-      <para>If you've been using X-Labels for a while, things have grown
-      slightly. NeoMutt still supports X-Labels much as it has since 2000, but the
-      scope of this support has expanded to support three additional
-      header-based techniques for storing keyword metadata on messages:</para>
-      <variablelist>
-        <varlistentry>
-          <term>X-Keywords</term>
-          <listitem>
-            <para>Informal design; space-delimited keywords</para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term>X-Mozilla-Keys</term>
-          <listitem>
-            <para>Informal design used by Mozilla-based agents; space-delimited
-            keywords</para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term>Keywords</term>
-          <listitem>
-            <para>Standardized in RFC2822 (2001); comma-space-delimited
-            keywords</para>
-          </listitem>
-        </varlistentry>
-        <varlistentry>
-          <term>X-Label</term>
-          <listitem>
-            <para>NeoMutt-specific design; freeform text (but see
-            <link linkend="xlabel-delimiter">$xlabel_delimiter</link>)</para>
-          </listitem>
-        </varlistentry>
-      </variablelist>
-      <para>With X-Label, NeoMutt's only notion of a message keyword was the
-      literal string value of the X-Label header. Under the new, integrated
-      support, each message may have a list of distinct message keywords. When
-      reading keywords from one of the headers in the list above, the header
-      value is split on the indicated delimiter (space or comma-space) for
-      X-Keywords:, X-Mozilla-Keys:, and Keywords:. By default, X-Label: is
-      parsed as a single keyword. By setting $xlabel_delimiter, you can force
-      splitting of X-Label: as well.</para>
-      <para>Two boolean variables control how keywords are saved when writing
-      messages to a mailbox. The default settings preserve backward
-      compatibility within NeoMutt completely, but by changing these values you
-      can transition to more standard keyword storage.
-      <link linkend="keywords-legacy">$keywords_legacy</link>, if set, will
-      tell NeoMutt to use only "legacy" headers -- i.e.,
-      <literal>X-Keywords:</literal>,
-      <literal>X-Mozilla-Keys</literal>,
-      <literal>Keywords</literal>, or
-      <literal>X-Label:</literal>. Keywords will be saved to whichever header
-      was in use by the message the keyword was read from. If
-      <link linkend="keywords-standard">$keywords_standard</link> is set,
-      keywords will be saved without exception to the standard
-      <literal>Keywords:</literal>header. (If both are set, both will be used;
-      if both are unset, legacy headers are used.) Additionally,
-      <link linkend="xlabel-delimiter">$xlabel_delimiter</link> is used to
-      format the X-Label: header on saves.</para>
-      <para>To migrate completely to the new standard, unset
-      <literal>$keywords_legacy</literal> and set
-      <literal>$keywords_standard</literal>, and set
-      <literal>$xlabel_delimiter</literal> either to what you currently use to
-      delimit keywords in X-Labels, or to
-      <quote>,&#160;</quote>(comma space).</para>
-      <para>Note that it is common practice to insert
-      <literal>X-Label:</literal>or other keyword headers from proxmail or
-      other mail filters. This is a useful trick for categorizing messages en
-      masse as they are delivered to your inbox, and it is fully compatible
-      with the new keywords code.</para>
-    </sect1>
-
     <sect1 id="display-munging">
       <title>Display Munging</title>
       <para>Working within the confines of a console or terminal window, it is
@@ -11451,219 +11364,6 @@ set index_format='%4C %Z %{%b %d} %I (%?l?%4l&amp;%4c?) %s'
       </sect2>
     </sect1>
 
-    <sect1 id="keywords">
-      <title>Keywords Feature</title>
-      <subtitle>Labels/Tagging for emails</subtitle>
-
-      <sect2 id="keywords-support">
-        <title>Support</title>
-        <para>
-        <emphasis role="bold">Since:</emphasis>NeoMutt 2016-05-30</para>
-        <para>
-        <emphasis role="bold">Dependencies:</emphasis>None</para>
-      </sect2>
-
-      <sect2 id="keywords-intro">
-        <title>Introduction</title>
-        <para>Unify label/keyword handling.</para>
-        <para>Since x-labels were added to NeoMutt in 2000, a number of other
-        approaches to what we now call
-        <quote>tagging</quote> have also emerged. One of them was even made
-        standard in RFC 2822. This update unifies the handling of all these
-        strategies.</para>
-        <para>We start by changing NeoMutt's internal keyword storage from a
-        single string which may contain whitespace to a list of discrete
-        keywords. This has advantages for keyword completion as well as for
-        portability among varying "standards" for keyword storage. This may
-        represent a significant change for existing NeoMutt users who have set
-        x-labels containing spaces, and should be regarded with suspicion. The
-        advantages are significant, though.</para>
-        <para>Next we allow NeoMutt to parse keywords into this internal list from
-        any of the following headers: X-Label (freeform), X-Keywords
-        (space-delimited), X-Mozilla-Keys (space-delimited), and Keywords (RFC
-        2822, comma-space-delimited). NeoMutt remembers which headers it sourced
-        keywords from, and can rewrite those headers when saving messages for
-        compatibility with the mailer of origin.</para>
-        <para>(X-Label was specified as freeform text by NeoMutt, its only known
-        implementation. X-Labels have been used both as a
-        <quote>tagging</quote> device, probably with space delimiting, and as a
-        <quote>memo</quote> field, where space-delimited parsing would ruin the
-        semantics of the memo. By default NeoMutt will not split X-Labels at all.
-        Set $xlabel_delimiter if your needs vary.)</para>
-        <para>Finally we add two booleans: $keywords_legacy=true and
-        $keywords_standard=FALSE. When $keywords_legacy is true, NeoMutt will
-        always save keyword to whatever original header it came from. When
-        $keywords_standard=true, NeoMutt will save to the Keywords: header. If
-        both are true NeoMutt saves to both; if neither is true, NeoMutt saves only
-        to legacy headers to avoid complete loss of keywords.</para>
-        <para>Overall this represents convergence path for all competing
-        labelling/tagging/keywording systems toward one that is specified by
-        RFC.</para>
-        <para>You can change or delete the X-Label: field within NeoMutt using the
-        edit-label command. This works for tagged messages, too.</para>
-      </sect2>
-
-      <sect2 id="keywords-variables">
-        <title>Variables</title>
-
-        <table id="table-keywords-variables">
-          <title>Keywords Variables</title>
-          <tgroup cols="3">
-            <thead>
-              <row>
-                <entry>Name</entry>
-                <entry>Type</entry>
-                <entry>Default</entry>
-              </row>
-            </thead>
-            <tbody>
-              <row>
-                <entry>
-                  <literal>keywords_legacy</literal>
-                </entry>
-                <entry>boolean</entry>
-                <entry>
-                  <literal>yes</literal>
-                </entry>
-              </row>
-              <row>
-                <entry>
-                  <literal>keywords_standard</literal>
-                </entry>
-                <entry>boolean</entry>
-                <entry>
-                  <literal>no</literal>
-                </entry>
-              </row>
-              <row>
-                <entry>
-                  <literal>xlabel_delimiter</literal>
-                </entry>
-                <entry>string</entry>
-                <entry>(empty)</entry>
-              </row>
-            </tbody>
-          </tgroup>
-        </table>
-      </sect2>
-
-      <sect2 id="keywords-functions">
-        <title>Functions</title>
-        <para>Keywords adds the following function to NeoMutt. By default, it is
-        not bound to a key.</para>
-
-        <table id="table-keywords-funcions">
-          <title>Keyword Functions</title>
-          <tgroup cols="3">
-            <thead>
-              <row>
-                <entry>Menus</entry>
-                <entry>Function</entry>
-                <entry>Description</entry>
-              </row>
-            </thead>
-            <tbody>
-              <row>
-                <entry>index,pager</entry>
-                <entry>
-                  <literal>&lt;edit-label&gt;</literal>
-                </entry>
-                <entry>add, change, or delete a message's label</entry>
-              </row>
-            </tbody>
-          </tgroup>
-        </table>
-      </sect2>
-
-      <sect2 id="keywords-sort">
-        <title>Sort</title>
-
-        <table id="table-keywords-sort">
-          <title>Keywords Sort</title>
-          <tgroup cols="2">
-            <thead>
-              <row>
-                <entry>Sort</entry>
-                <entry>Description</entry>
-              </row>
-            </thead>
-            <tbody>
-              <row>
-                <entry>
-                  <literal>label</literal>
-                </entry>
-                <entry>Sort by label</entry>
-              </row>
-            </tbody>
-          </tgroup>
-        </table>
-      </sect2>
-
-      <sect2 id="keywords-neomuttrc">
-        <title>neomuttrc</title>
-        <screen>
-<emphasis role="comment"># Example NeoMutt config file for the keywords feature.
-
-# --------------------------------------------------------------------------
-# VARIABLES - shown with their default values
-# --------------------------------------------------------------------------
-# Should NeoMutt save the keywords to whatever keyword it came from?</emphasis>
-set keywords_legacy = yes
-<emphasis role="comment"># Should NeoMutt use the "Keywords:" header?</emphasis>
-set keywords_standard = no
-<emphasis role="comment"># How should the keywords be separated?</emphasis>
-set xlabel_delimiter = ""
-<emphasis role="comment"># --------------------------------------------------------------------------
-# FUNCTIONS - shown with an example mapping
-# --------------------------------------------------------------------------
-# Bind 'y' to edit labels/keywords</emphasis>
-bind index,pager y edit-label
-
-        <emphasis role="comment"># vim: syntax=neomuttrc</emphasis>
-</screen>
-      </sect2>
-
-      <sect2 id="keywords-see-also">
-        <title>See Also</title>
-        <itemizedlist>
-          <listitem>
-            <para>
-              <link linkend="index-format">$index_format</link>
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <link linkend="index-color">index-color feature</link>
-            </para>
-          </listitem>
-          <listitem>
-            <para>
-              <link linkend="folder-hook">folder-hook</link>
-            </para>
-          </listitem>
-        </itemizedlist>
-      </sect2>
-
-      <sect2 id="keywords-known-bugs">
-        <title>Known Bugs</title>
-        <para>None</para>
-      </sect2>
-
-      <sect2 id="keywords-credits">
-        <title>Credits</title>
-        <itemizedlist>
-          <listitem>
-            <para>David Champion
-            <email>dgc@uchicago.edu</email></para>
-          </listitem>
-          <listitem>
-            <para>Richard Russon
-            <email>rich@flatcap.org</email></para>
-          </listitem>
-        </itemizedlist>
-      </sect2>
-    </sect1>
-
     <sect1 id="kyoto-cabinet">
       <title>Kyoto Cabinet Feature</title>
       <subtitle>Kyoto Cabinet backend for the header cache</subtitle>
index 72e4f5fdd3d661be4f1f4cf6ddc359e015f1a65d..df5e653d906c652e4cfae94db80982995833e8dc 100644 (file)
@@ -441,7 +441,7 @@ syn match muttrcFunction    contained "\<current-\%(bottom\|middle\|top\)\>"
 syn match muttrcFunction       contained "\<decode-\%(copy\|save\)\>"
 syn match muttrcFunction       contained "\<delete-\%(char\|pattern\|subthread\)\>"
 syn match muttrcFunction       contained "\<display-\%(address\|toggle-weed\)\>"
-syn match muttrcFunction       contained "\<edit\%(-\%(bcc\|cc\|description\|encoding\|fcc\|file\|from\|headers\|mime\|reply-to\|subject\|to\|type\)\)\?\>"
+syn match muttrcFunction       contained "\<edit\%(-\%(bcc\|cc\|description\|encoding\|fcc\|file\|from\|headers\|mime\|reply-to\|subject\|to\|type\|label\)\)\?\>"
 syn match muttrcFunction       contained "\<enter-\%(command\|mask\)\>"
 syn match muttrcFunction       contained "\<half-\%(up\|down\)\>"
 syn match muttrcFunction       contained "\<history-\%(up\|down\)\>"
@@ -817,14 +817,6 @@ syntax keyword muttrcColorField contained index_number
 syntax keyword muttrcColorField contained index_size
 syntax keyword muttrcColorField contained index_subject
 syn region muttrcColorLine keepend start=/^\s*color\s\+index_\%(author\|collapsed\|date\|flags\|label\|number\|size\|subject\)/ skip=+\\$+ end=+$+ contains=muttrcColorKeyword,muttrcComment,muttrcUnHighlightSpace
-" Vim syntax file for the NeoMutt keywords feature.
-
-syntax keyword muttrcVarBool    contained skipwhite keywords_legacy       nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-syntax keyword muttrcVarBool    contained skipwhite keywords_standard     nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
-
-syntax keyword muttrcVarStr     contained skipwhite xlabel_delimiter      nextgroup=muttrcVarEqualsIdxFmt
-
-syntax match muttrcFunction     contained "\<edit-label\>"
 
 " Vim syntax file for the NeoMutt new-mail feature.
 
index c0aed881f63e180eb64c48cf1fde2817d00f8873..e882f197d3bd3efedf7694814605ac0cebe367e5 100644 (file)
@@ -59,7 +59,6 @@ struct Envelope
   struct ListHead references;  /**< message references (in reverse order) */
   struct ListHead in_reply_to; /**< in-reply-to header content */
   struct ListHead userhdrs;    /**< user defined headers */
-  int kwtypes;
 
   bool irt_changed : 1;  /**< In-Reply-To changed to link/break threads */
   bool refs_changed : 1; /**< References changed to break thread */
index 79a966dd811586a13e02951ec4df90b901aeaaff..c032afb90575f3592673d9dad45cd309f43be9e0 100644 (file)
--- a/globals.h
+++ b/globals.h
@@ -189,7 +189,6 @@ WHERE char *TSIconFormat;
 WHERE short TSSupported;
 WHERE char *Username;
 WHERE char *Visual;
-WHERE char *XlabelDelimiter;
 
 WHERE char *CurrentFolder;
 WHERE char *LastFolder;
index 65f5dc416657261074635928b0c57d5d367b5475..58b3b19e513004e05b82ba01db70bc6737fc933a 100644 (file)
@@ -499,7 +499,7 @@ int imap_read_headers(struct ImapData *idata, unsigned int msn_begin, unsigned i
   static const char *const want_headers =
       "DATE FROM SUBJECT TO CC MESSAGE-ID REFERENCES CONTENT-TYPE "
       "CONTENT-DESCRIPTION IN-REPLY-TO REPLY-TO LINES LIST-POST X-LABEL "
-      "X-KEYWORDS X-MOZILLA-KEYS KEYWORDS X-ORIGINAL-TO";
+      "X-ORIGINAL-TO";
   struct Progress progress;
   int retval = -1;
   bool evalhc = false;
diff --git a/init.h b/init.h
index d0982bb17baebc08446793c573a679ef87e7afbe..83de046ea1dd377da832f8560adf5410e0774e8e 100644 (file)
--- a/init.h
+++ b/init.h
@@ -1638,28 +1638,6 @@ struct Option MuttVars[] = {
   ** from your spool mailbox to your $$mbox mailbox, or as a result of
   ** a ``$mbox-hook'' command.
   */
-  { "keywords_legacy", DT_BOOL, R_NONE, OPT_KEYWORDS_LEGACY, 1 },
-  /*
-  ** .pp
-  ** If \fIset\fP, keywords/labels/tags will be written to whatever
-  ** legacy, nonstandard headers (X-Label, X-Keywords, X-Mozilla-Keys)
-  ** they were sourced from.
-  ** .pp
-  ** If both ``$$keywords_legacy'' and
-  ** ``$$keywords_standard'' are \fCfalse\fP, NeoMutt will save keywords
-  ** to legacy headers to ensure that it does not lose your labels.
-  */
-  { "keywords_standard", DT_BOOL, R_NONE, OPT_KEYWORDS_STANDARD, 0 },
-  /*
-  ** .pp
-  ** If \fIset\fP, keywords/labels/tags will be written to the
-  ** RFC2822-standard Keywords: header; this may imply a conversion from
-  ** legacy headers.
-  ** .pp
-  ** If both ``$$keywords_legacy'' and
-  ** ``$$keywords_standard'' are \fCfalse\fP, NeoMutt will save keywords
-  ** to legacy headers to ensure that it does not lose your labels.
-  */
   { "mail_check",       DT_NUMBER,  R_NONE, UL &MailCheck, 5 },
   /*
   ** .pp
@@ -4403,20 +4381,6 @@ struct Option MuttVars[] = {
   { "xterm_set_titles",  DT_SYNONYM,  R_NONE, UL "ts_enabled", 0 },
   /*
   */
-  { "xlabel_delimiter", DT_STRING, R_NONE, UL &XlabelDelimiter, UL "" },
-  /*
-  ** .pp
-  ** The character used to delimit distinct keywords in X-Label headers.
-  ** X-Label is primarily a NeoMutt artifact, and the semantics of the field
-  ** were never defined: it is free-form text.  However interaction with
-  ** X-Keywords:, X-Mozilla-Keys:, and Keywords: requires that we adopt
-  ** some means of identifying separate keywords within the field.  Set
-  ** this to your personal convention.
-  ** .pp
-  ** This affect both parsing existing X-Label headers and writing new
-  ** X-Label headers.  You can modify this variable in runtime to accomplish
-  ** various kinds of conversion.
-  */
 #ifdef USE_NNTP
   { "x_comment_to",     DT_BOOL, R_NONE, OPT_X_COMMENT_TO, 0 },
   /*
diff --git a/mutt.h b/mutt.h
index 92106cecd5d10f83565389aad405d166633b4a8c..be0850cf6681793d93a86779ccf6222d3fe2e1e9 100644 (file)
--- a/mutt.h
+++ b/mutt.h
@@ -303,12 +303,6 @@ enum QuadOptionVars
 #define MUTT_SPAM   1
 #define MUTT_NOSPAM 2
 
-/* flags for keywords headers */
-#define MUTT_X_LABEL        (1 << 0) /**< introduced to neomutt in 2000 */
-#define MUTT_X_KEYWORDS     (1 << 1) /**< used in c-client, dovecot */
-#define MUTT_X_MOZILLA_KEYS (1 << 2) /**< tbird */
-#define MUTT_KEYWORDS       (1 << 3) /**< rfc2822 */
-
 void mutt_free_regex_list(struct RegexList **list);
 void mutt_free_replace_list(struct ReplaceList **list);
 bool mutt_matches_ignore(const char *s);
index 81eef975e76d1644dd4bd38cfa1ca5c2d89fcd50..e26c60bbf55e6a8c877e87b5c9805436efa0df78 100644 (file)
--- a/options.h
+++ b/options.h
@@ -111,8 +111,6 @@ enum GlobalBool
   OPT_IMPLICIT_AUTOVIEW,
   OPT_INCLUDE_ONLYFIRST,
   OPT_KEEP_FLAGGED,
-  OPT_KEYWORDS_LEGACY,
-  OPT_KEYWORDS_STANDARD,
   OPT_MAILCAP_SANITIZE,
   OPT_MAIL_CHECK_RECENT,
   OPT_MAIL_CHECK_STATS,
index 47f22a2a327dcb11233ca8b53710cbdabf90e70e..a46668fe2c0d5751ad269412a978d6a74a2d42cf 100644 (file)
--- a/version.c
+++ b/version.c
@@ -116,7 +116,6 @@ static struct CompileOptions comp_opts_default[] = {
   { "imap", 1 },
   { "index_color", 1 },
   { "initials", 1 },
-  { "keywords", 1 },
   { "limit_current_thread", 1 },
   { "multiple_fcc", 1 },
   { "nested_if", 1 },