Rocco Rutte:
authorpdmef <pdmef@e385b8ad-14ed-0310-8656-cc95a2468c6d>
Mon, 29 Aug 2005 05:00:38 +0000 (05:00 +0000)
committerpdmef <pdmef@e385b8ad-14ed-0310-8656-cc95a2468c6d>
Mon, 29 Aug 2005 05:00:38 +0000 (05:00 +0000)
- repair feature_ tests (jnf gung zr? jnf V qehax?)

git-svn-id: svn://svn.berlios.de/mutt-ng/trunk@464 e385b8ad-14ed-0310-8656-cc95a2468c6d

VERSION.svn
init.c
init.h

index 26551cf..3bb8a49 100644 (file)
@@ -1 +1 @@
-463
+464
diff --git a/init.c b/init.c
index 93c8fbc..e56a916 100644 (file)
--- a/init.c
+++ b/init.c
@@ -791,7 +791,7 @@ static int parse_ifdef (BUFFER * tmp, BUFFER * s, unsigned long data,
   mutt_extract_token (tmp, s, 0);
 
   /* is the item defined as a variable or a function? */
   mutt_extract_token (tmp, s, 0);
 
   /* is the item defined as a variable or a function? */
-  if ((option = hash_find (ConfigOptions, tmp->data)))
+  if ((option = hash_find (ConfigOptions, tmp->data)) != NULL)
     res = 1;
   else {
     for (i = 0; !res && i < MENU_MAX; i++) {
     res = 1;
   else {
     for (i = 0; !res && i < MENU_MAX; i++) {
@@ -809,23 +809,16 @@ static int parse_ifdef (BUFFER * tmp, BUFFER * s, unsigned long data,
     }
   }
   /* check for feature_* */
     }
   }
   /* check for feature_* */
-  if (!res) {
-    char *p = NULL;
-
+  if (!res && ascii_strncasecmp (tmp->data, "feature_", 8) == 0 &&
+      (j = str_len (tmp->data)) > 8) {
     i = 0;
     i = 0;
-    j = str_len (tmp->data);
-    /* need at least input of 'feature_X' */
-    if (j >= 7) {
-      p = tmp->data + 7;
-      j -= 7;
-      while (Features[i].name) {
-        if (str_len (Features[i].name) == j &&
-            ascii_strncasecmp (Features[i].name, p, j)) {
-          res = 1;
-          break;
-        }
-        i++;
+    while (Features[i]) {
+      if (str_len (Features[i]) == j-8 &&
+          ascii_strncasecmp (Features[i], tmp->data+8, j-8) == 0) {
+        res = 1;
+        break;
       }
       }
+      i++;
     }
   }
 
     }
   }
 
@@ -836,9 +829,10 @@ static int parse_ifdef (BUFFER * tmp, BUFFER * s, unsigned long data,
       snprintf (err->data, err->dsize, _("ifndef: too few arguments"));
     return (-1);
   }
       snprintf (err->data, err->dsize, _("ifndef: too few arguments"));
     return (-1);
   }
+
   mutt_extract_token (tmp, s, M_TOKEN_SPACE);
 
   mutt_extract_token (tmp, s, M_TOKEN_SPACE);
 
-  if ((data && res) || (!data && !res)) {
+  if (data == res) {
     if (mutt_parse_rc_line (tmp->data, &token, err) == -1) {
       mutt_error ("Error: %s", err->data);
       mem_free (&token.data);
     if (mutt_parse_rc_line (tmp->data, &token, err) == -1) {
       mutt_error ("Error: %s", err->data);
       mem_free (&token.data);
diff --git a/init.h b/init.h
index aaf956a..0719a13 100644 (file)
--- a/init.h
+++ b/init.h
@@ -70,11 +70,6 @@ struct option_t {
   char* init;
 };
 
   char* init;
 };
 
-struct feature_t {
-  char *name;
-  short builtin;
-};
-
 #define UL (unsigned long)
 
 #endif /* _MAKEDOC */
 #define UL (unsigned long)
 
 #endif /* _MAKEDOC */
@@ -3817,148 +3812,78 @@ struct option_t MuttVars[] = {
   { NULL }
 };
 
   { NULL }
 };
 
-const struct feature_t Features[] = {
-  {"ncurses",
+static const char* Features[] = {
 #ifdef NCURSES_VERSION
 #ifdef NCURSES_VERSION
-   1
-#else
-   0
+  "ncurses",
 #endif
 #endif
-   }, {"slang",
 #ifdef USE_SLANG_CURSES
 #ifdef USE_SLANG_CURSES
-   1
-#else
-   0
+  "slang",
 #endif
 #endif
-   }, {"iconv",
 #ifdef _LIBICONV_VERSION
 #ifdef _LIBICONV_VERSION
-   1
-#else
-   0
+  "iconv",
 #endif
 #endif
-   }, {"idn",
 #ifdef HAVE_LIBIDN
 #ifdef HAVE_LIBIDN
-   1
-#else
-   0
+  "idn",
 #endif
 #endif
-   }, {"dotlock",
 #ifdef USE_DOTLOCK
 #ifdef USE_DOTLOCK
-   1
-#else
-   0
+  "dotlock",
 #endif
 #endif
-   }, {"standalone",
 #ifdef DL_STANDALONE
 #ifdef DL_STANDALONE
-   1
-#else
-   0
+  "standalone",
 #endif
 #endif
-   }, {"pop",
 #ifdef USE_POP
 #ifdef USE_POP
-   1
-#else
-   0
+  "pop",
 #endif
 #endif
-   }, {"nntp",
 #ifdef USE_NNTP
 #ifdef USE_NNTP
-   1
-#else
-   0
+  "nntp",
 #endif
 #endif
-   }, {"imap",
 #ifdef USE_IMAP
 #ifdef USE_IMAP
-   1
-#else
-   0
+  "imap",
 #endif
 #endif
-   }, {"ssl",
 #ifdef USE_SSL
 #ifdef USE_SSL
-   1
-#else
-   0
+  "ssl",
 #endif
 #endif
-   }, {"gnutls",
 #ifdef USE_GNUTLS
 #ifdef USE_GNUTLS
-   1
-#else
-   0
+  "gnutls",
 #endif
 #endif
-   }, {"sasl",
 #ifdef USE_SASL
 #ifdef USE_SASL
-   1
-#else
-   0
+  "sasl",
 #endif
 #endif
-   }, {"sasl2",
 #ifdef USE_SASL2
 #ifdef USE_SASL2
-   1
-#else
-   0
+  "sasl2",
 #endif
 #endif
-   }, {"libesmtp",
 #ifdef USE_LIBESMTP
 #ifdef USE_LIBESMTP
-   1
-#else
-   0
+  "libesmtp",
 #endif
 #endif
-   }, {"compressed",
 #ifdef USE_COMPRESSED
 #ifdef USE_COMPRESSED
-   1
-#else
-   0
+  "compessed",
 #endif
 #endif
-   }, {"color",
 #ifdef HAVE_COLOR
 #ifdef HAVE_COLOR
-   1
-#else
-   0
+  "color",
 #endif
 #endif
-   }, {"classic_pgp",
 #ifdef CRYPT_BACKEND_CLASSIC_PGP
 #ifdef CRYPT_BACKEND_CLASSIC_PGP
-   1
-#else
-   0
+  "classic_pgp",
 #endif
 #endif
-   }, {"classic_smime",
 #ifdef CRYPT_BACKEND_CLASSIC_SMIME
 #ifdef CRYPT_BACKEND_CLASSIC_SMIME
-   1
-#else
-   0
+  "class_smime",
 #endif
 #endif
-   }, {"gpgme",
 #ifdef CRYPT_BACKEND_GPGME
 #ifdef CRYPT_BACKEND_GPGME
-   1
-#else
-   0
+  "gpgme",
 #endif
 #endif
-   }, {"header_cache",
 #ifdef USE_HCACHE
 #ifdef USE_HCACHE
-   1
-#else
-   0
+  "header_cache",
 #endif
 #endif
-   }, {"qdbm",
 #ifdef HAVE_QDBM
 #ifdef HAVE_QDBM
-   1
-#else
-   0
+  "qdbm",
 #endif
 #endif
-   }, {"gdbm",
 #ifdef HAVE_GDBM
 #ifdef HAVE_GDBM
-   1
-#else
-   0
+  "gdbm",
 #endif
 #endif
-   }, {"db4",
 #ifdef HAVE_DB4
 #ifdef HAVE_DB4
-   1
-#else
-   0
+  "db4",
 #endif
 #endif
-   },
   /* last */
   /* last */
-  {NULL, 0}
+  NULL
 };
 
 const struct mapping_t SortMethods[] = {
 };
 
 const struct mapping_t SortMethods[] = {