more cleanse
authorPierre Habouzit <madcoder@debian.org>
Fri, 9 Mar 2007 20:29:07 +0000 (21:29 +0100)
committerPierre Habouzit <madcoder@debian.org>
Fri, 9 Mar 2007 20:29:07 +0000 (21:29 +0100)
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
init.c
parse.h [deleted file]
rcparser.y [deleted file]

diff --git a/init.c b/init.c
index bcb8139..da7227d 100644 (file)
--- a/init.c
+++ b/init.c
@@ -2304,9 +2304,6 @@ static int mutt_execute_commands (string_list_t * p)
   return 0;
 }
 
   return 0;
 }
 
-#include "parse.h"
-#include "rcparser.h"
-
 void mutt_init (int skip_sys_rc, string_list_t * commands)
 {
   struct passwd *pw;
 void mutt_init (int skip_sys_rc, string_list_t * commands)
 {
   struct passwd *pw;
diff --git a/parse.h b/parse.h
deleted file mode 100644 (file)
index f7e0f59..0000000
--- a/parse.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef MUTT_PARSE_H
-#define MUTT_PARSE_H
-
-typedef struct segment {
-    const char *s;
-    ssize_t len;
-} segment;
-
-#ifdef NDEBUG
-#  define rcparseTrace(a, b)
-#else
-void rcparseTrace(FILE *, char *);
-#endif
-
-const char *rcparseTokenName(int);
-void *rcparseAlloc(void *(*)(size_t));
-void rcparseFree(void*, void (*)(void*));
-
-struct rcstate {
-    int linenum;
-};
-
-void rcparse(void *, int, segment, struct rcstate *state);
-
-#endif
diff --git a/rcparser.y b/rcparser.y
deleted file mode 100644 (file)
index 114c043..0000000
+++ /dev/null
@@ -1,352 +0,0 @@
-/*
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or (at
- *  your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful, but
- *  WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- *  General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- *  MA 02110-1301, USA.
- *
- *  Copyright © 2006 Pierre Habouzit
- */
-
-%include {
-#   include <lib-lib/lib-lib.h>
-#   include "mutt.h"
-#   include "parse.h"
-#   include "buffy.h"
-
-    static buffer_t *buffer_merge(buffer_t *A, buffer_t **B)
-    {
-        buffer_addbuf(A, *B);
-        buffer_delete(B);
-        return A;
-    }
-
-    static inline int to_control(int c) {
-        return (toupper((unsigned char)c) - 'A' + 1) & 0x7f;
-    }
-
-    static buffer_t *buffer_escape(buffer_t *buf, const char *s, ssize_t len)
-    {
-        assert (len > 0);
-
-        switch (*s) {
-          case 'c': case 'Z':
-            if (len < 2)
-                break;
-            buffer_addch(buf, to_control(s[1]));
-            buffer_add(buf, s + 2, len - 2);
-            return buf;
-
-          case 'x':
-            if (len >= 3) {
-                int i = (hexval(s[1]) << 4) | hexval(s[2]);
-                if (i >= 0) {
-                    buffer_addch(buf, i);
-                    buffer_add(buf, s + 3, len - 3);
-                    return buf;
-                }
-            }
-            break;
-
-          case '0': case '1': case '2': case '3':
-            if (len >= 3) {
-                int i = (octval(s[0]) << 6) | (octval(s[1]) << 3) | octval(s[2]);
-                if (i >= 0) {
-                    buffer_addch(buf, i);
-                    buffer_add(buf, s + 3, len - 3);
-                    return buf;
-                }
-            }
-            break;
-
-          case 'e': buffer_addch(buf, '\e'); return buf;
-          case 'f': buffer_addch(buf, '\f'); return buf;
-          case 'n': buffer_addch(buf, '\n'); return buf;
-          case 'r': buffer_addch(buf, '\r'); return buf;
-          case 't': buffer_addch(buf, '\t'); return buf;
-          case 'v': buffer_addch(buf, '\v'); return buf;
-
-          default:
-            break;
-        }
-
-        buffer_add(buf, s, len);
-        return buf;
-    }
-
-    static void substvar(buffer_t *buf, const segment seg)
-    {
-        const char *res;
-        char tmp[STRING];
-        char var[STRING];
-
-        if (m_strncpy(var, sizeof(var), seg.s, seg.len) <= 0)
-            return;
-
-        if ((res = getenv(var))) {
-            buffer_addstr(buf, res);
-            return;
-        }
-        if (mutt_option_value(var, tmp, sizeof(tmp))) {
-            buffer_addstr(buf, tmp);
-        }
-    }
-}
-
-%name rcparse
-%token_prefix RCTK_
-%token_type  { segment }
-%start_symbol rc
-%extra_argument { struct rcstate *state }
-
-/****************************************************************************/
-/* Often used                                                               */
-/****************************************************************************/
-
-escnl ::= BSLASH NL .                      { state->linenum++; }
-
-sp ::= SPACE .
-sp ::= sp SPACE .
-sp ::= sp escnl SPACE .
-
-non_nl ::= ATOM|SPACE|BQUOTE|BSLASH|SHARP|DOLLAR|DQUOTE|EQUAL|LBRACE|SQUOTE|RBRACE .
-non_nl_star ::= .
-non_nl_star ::= non_nl_star non_nl .
-
-to_eol_aux ::= NL .                        { state->linenum++; }
-to_eol_aux ::= SHARP non_nl_star NL .      { state->linenum++; }
-to_eol ::= to_eol_aux .
-to_eol ::= sp to_eol_aux .
-
-/****************************************************************************/
-/* Our macro tokens                                                         */
-/****************************************************************************/
-/*                                                                       {{{*/
-
-%type svar { segment }
-svar(Z) ::= DOLLAR ATOM(B) .               { Z = B; }
-svar(Z) ::= DOLLAR LBRACE ATOM(B) RBRACE . { Z = B; }
-
-/* '-quoted tokens */
-%type sqtok { buffer_t* }
-%destructor sqtok  { buffer_delete(&$$); }
-sqtok(Z) ::= .                                 { Z = buffer_new(); }
-sqtok(Z) ::= sqtok(A) escnl .                  { Z = A; }
-sqtok(Z) ::= sqtok(A) BSLASH BSLASH|SQUOTE(B) . { buffer_addch(Z = A, *B.s); }
-sqtok(Z) ::= sqtok(A) BSLASH ATOM|SPACE|BQUOTE|SHARP|DOLLAR|DQUOTE|EQUAL|LBRACE|RBRACE(B) . {
-    buffer_addch(Z = A, '\\');
-    buffer_add(Z, B.s, B.len);
-}
-sqtok(Z) ::= sqtok(A) ATOM|SPACE|BQUOTE|SHARP|DOLLAR|DQUOTE|EQUAL|LBRACE|RBRACE(B) . {
-    buffer_add(Z = A, B.s, B.len);
-}
-
-/* `-quoted tokens */
-%type bqtok { buffer_t* }
-%destructor bqtok { buffer_delete(&$$); }
-bqtok(Z) ::= .                             { Z = buffer_new(); }
-bqtok(Z) ::= bqtok(A) escnl .              { Z = A; }
-bqtok(Z) ::= bqtok(A) BSLASH non_nl(B) .   { Z = buffer_escape(A, B.s, B.len); }
-bqtok(Z) ::= bqtok(A) svar(B) .            { substvar(Z = A, B); }
-bqtok(Z) ::= bqtok(A) ATOM|SPACE|SHARP|EQUAL|LBRACE|RBRACE|SQUOTE|DQUOTE(B)  . {
-    buffer_add(Z = A, B.s, B.len);
-}
-
-/* "-quoted tokens */
-%type dqtok { buffer_t* }
-%destructor dqtok { buffer_delete(&$$); }
-dqtok(Z) ::= .                             { Z = buffer_new(); }
-dqtok(Z) ::= dqtok(A) escnl .              { Z = A; }
-dqtok(Z) ::= dqtok(A) BSLASH non_nl(B) .   { Z = buffer_escape(A, B.s, B.len); }
-dqtok(Z) ::= dqtok(A) svar(B) .            { substvar(Z = A, B); }
-dqtok(Z) ::= dqtok(A) ATOM|SPACE|SHARP|EQUAL|LBRACE|RBRACE|SQUOTE(B)  . {
-    buffer_add(Z = A, B.s, B.len);
-}
-dqtok(Z) ::= dqtok(A) BQUOTE bqtok(B) BQUOTE . { /* XXX */ buffer_merge(Z = A, &B); }
-
-/* unquoted tokens */
-%type uqtok { buffer_t* }
-%destructor uqtok { buffer_delete(&$$); }
-uqtok(Z) ::= BSLASH non_nl(A) .            { buffer_add(Z = buffer_new(), A.s, A.len); }
-uqtok(Z) ::= svar(A) .                     { substvar(Z = buffer_new(), A); }
-uqtok(Z) ::= ATOM|EQUAL|LBRACE|RBRACE(A) . { buffer_add(Z = buffer_new(), A.s, A.len); }
-uqtok(Z) ::= SQUOTE sqtok(A) SQUOTE .      { Z = A; }
-uqtok(Z) ::= DQUOTE dqtok(A) DQUOTE .      { Z = A; }
-uqtok(Z) ::= BQUOTE bqtok(A) BQUOTE .      { /* XXX */ Z = A; }
-
-/* token accumulator: NEVER USE DIRECTLY */
-%type tokaux { buffer_t* }
-%destructor tokaux { abort(); }
-tokaux(Z) ::= uqtok(A) .                   { Z = A; }
-tokaux(Z) ::= tokaux(A) escnl .            { Z = A; }
-tokaux(Z) ::= tokaux(A) uqtok(B) .         { Z = buffer_merge(A, &B); }
-
-%type token { buffer_t* }
-%destructor token { buffer_delete(&$$); }
-token(Z) ::= sp tokaux(A) .                 { Z = A; }
-
-/*                                                                       }}}*/
-/****************************************************************************/
-/* list of tokens                                                           */
-/****************************************************************************/
-
-%type simple_list { string_list_t * }
-%destructor simple_list { string_list_wipe(&$$); }
-simple_list ::= .
-simple_list(L) ::= simple_list(A) token(B) . {
-    if (B->len) {
-        L = string_item_new();
-        L->data = buffer_unwrap(&B);
-        L->next = A;
-    } else {
-        L = A;
-        buffer_delete(&B);
-    }
-}
-
-
-/****************************************************************************/
-/* Entry point : the rc lines                                               */
-/****************************************************************************/
-
-rc ::= rclines .
-rclines ::= .
-rclines ::= rclines rcline .
-
-rcline ::= to_eol .
-rcline ::= BIND token token token to_eol .
-rcline ::= EXEC simple_list to_eol .
-rcline ::= MACRO token token token to_eol .
-rcline ::= MACRO token token token token to_eol .
-rcline ::= PUSH token to_eol .
-rcline ::= SCORE token token to_eol .
-rcline ::= UNSCORE simple_list to_eol .
-
-/* {{{ alias */
-
-%type atok { buffer_t* }
-%destructor atok { buffer_delete(&$$); }
-atok(Z) ::= ATOM|SHARP|DQUOTE|EQUAL|LBRACE|SQUOTE|RBRACE(A) . {
-    buffer_add(Z = buffer_new(), A.s, A.len);
-}
-atok(Z) ::= SPACE(A) . {
-    buffer_add(Z = buffer_new(), A.s, A.len);
-}
-atok(Z) ::= atok(A) escnl .              { Z = A; }
-atok(Z) ::= atok(A) BSLASH non_nl(B) .   { Z = buffer_escape(A, B.s, B.len); }
-atok(Z) ::= atok(A) svar(B) .            { substvar(Z = A, B); }
-atok(Z) ::= atok(A) BQUOTE bqtok(B) BQUOTE . { /* XXX */ buffer_merge(Z = A, &B); }
-
-rcline ::= ALIAS token SPACE atok to_eol .
-
-/* }}} */
-/* {{{ colors */
-
-rcline ::= COLOR token token token to_eol .
-rcline ::= COLOR token token token token to_eol .
-rcline ::= UNCOLOR token simple_list to_eol .
-rcline ::= MONO token token to_eol .
-rcline ::= MONO token token token to_eol .
-rcline ::= UNMONO token simple_list to_eol .
-
-/* }}} */
-/* {{{ hooks */
-
-rcline ::= ACCOUNT_HOOK token token to_eol .
-rcline ::= APPEND_HOOK token token to_eol .
-rcline ::= CHARSET_HOOK token token to_eol .
-rcline ::= CLOSE_HOOK token token to_eol .
-rcline ::= CRYPT_HOOK token token to_eol .
-rcline ::= FCC_HOOK token token to_eol .
-rcline ::= FCC_SAVE_HOOK token token to_eol .
-rcline ::= FOLDER_HOOK token token to_eol .
-rcline ::= ICONV_HOOK token token to_eol .
-rcline ::= MBOX_HOOK token token to_eol .
-rcline ::= MESSAGE_HOOK token token to_eol .
-rcline ::= OPEN_HOOK token token to_eol .
-rcline ::= PGP_HOOK token token to_eol .
-rcline ::= REPLY_HOOK token token to_eol .
-rcline ::= SAVE_HOOK token token to_eol .
-rcline ::= SEND2_HOOK token token to_eol .
-rcline ::= SEND_HOOK token token to_eol .
-
-rcline ::= UNHOOK token to_eol .
-
-/* }}} */
-/* {{{ buffy related  */
-
-mailboxes ::= .
-mailboxes ::= mailboxes token(A) . {
-    if (A->len) {
-        char buf[_POSIX_PATH_MAX];
-        BUFFY *tmp;
-        int i;
-
-        m_strcpy(buf, sizeof(buf), A->data);
-        mutt_expand_path(buf, sizeof(buf));
-        i = buffy_lookup(buf);
-        if (i < 0) {
-            tmp = p_new(BUFFY, 1);
-            tmp->path = m_strdup(buf);
-            buffy_array_append(&Incoming, tmp);
-        } else {
-            tmp = Incoming.arr[i];
-        }
-
-        tmp->new = 0;
-        tmp->notified = 1;
-        tmp->newly_created = 0;
-    }
-    buffer_delete(&A);
-}
-rcline ::= MAILBOXES mailboxes to_eol .
-
-unmailboxes ::= .
-unmailboxes ::= unmailboxes token(A) . {
-    if (A->len) {
-        if (A->data[0] == '*' && A->len == 1) {
-            buffy_array_wipe(&Incoming);
-        } else {
-            char buf[_POSIX_PATH_MAX];
-            BUFFY *tmp;
-            int i;
-
-            m_strcpy(buf, sizeof(buf), A->data);
-            mutt_expand_path(buf, sizeof(buf));
-            i = buffy_lookup(buf);
-            tmp = buffy_array_take(&Incoming, i);
-            buffy_delete(&tmp);
-        }
-    }
-    buffer_delete(&A);
-}
-rcline ::= UNMAILBOXES unmailboxes to_eol .
-
-/* }}} */
-/* {{{ lists (alternative_order, auto_view, hdr_order, mime_lookup */
-
-rcline ::= ALTERNATIVE_ORDER simple_list(L) to_eol . {
-    string_list_append(&AlternativeOrderList, string_list_rev(L));
-}
-rcline ::= AUTO_VIEW         simple_list(L) to_eol . {
-    string_list_append(&AutoViewList, string_list_rev(L));
-}
-rcline ::= HDR_ORDER         simple_list(L) to_eol . {
-    string_list_append(&HeaderOrderList, string_list_rev(L));
-}
-rcline ::= MIME_LOOKUP       simple_list(L) to_eol . {
-    string_list_append(&MimeLookupList, string_list_rev(L));
-}
-
-/* }}} */
-
-/* vim: set indentexpr= cin: */