]> granicus.if.org Git - mutt/commitdiff
Various little patches from Gero Treuner.
authorThomas Roessler <roessler@does-not-exist.org>
Wed, 29 Mar 2000 09:42:46 +0000 (09:42 +0000)
committerThomas Roessler <roessler@does-not-exist.org>
Wed, 29 Mar 2000 09:42:46 +0000 (09:42 +0000)
doc/Makefile.in
doc/manual.sgml.head
init.c
po/de.po
thread.c

index 2efef58459b94db067b757669faafd8e8fcd184b..20284c138caa7da896e2a1dc0174fe0064c12898 100644 (file)
@@ -58,12 +58,12 @@ srcdir_DOCFILES = PGP-Notes.txt applying-patches.txt        \
 topsrcdir_DOCFILES = COPYRIGHT GPL INSTALL ChangeLog   \
        README NEWS TODO README.SECURITY README.SSL README.UPGRADE
 
-all: try-html try-txt muttrc.man
+all: muttrc.man try-html try-txt
 
-try-html:
+try-html: ../makedoc
        test -f manual.html || $(MAKE) manual.html || cp $(srcdir)/manual*.html ./
 
-try-txt:
+try-txt: ../makedoc
        test -f manual.txt || $(MAKE) manual.txt || cp $(srcdir)/manual.txt ./
 
 install: all
index d90312288109085d3db447f26efaf9497e631ab8..541f2651fd1b8c316382bb1ddfe79965bb2c6c20 100644 (file)
@@ -1147,7 +1147,8 @@ command line with the <tt/-y/ option.
 <bf/Note:/ new mail is detected by comparing the last modification time to
 the last access time.  Utilities like <tt/biff/ or <tt/frm/ or any other
 program which accesses the mailbox might cause Mutt to never detect new mail
-for that mailbox if they do not properly reset the access time.
+for that mailbox if they do not properly reset the access time.  Backup
+tools are another common reason for updated access times.
 <p>
 
 <bf/Note:/ the filenames in the <tt/mailboxes/ command are resolved when
diff --git a/init.c b/init.c
index 37ac4372c9123f8f1d0d0dbcf8a837928e1ad543..68429cbfe3e9ac918d9245aa8af64f6716432807 100644 (file)
--- a/init.c
+++ b/init.c
@@ -1167,6 +1167,8 @@ static int parse_set (BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER *err)
   return (r);
 }
 
+#define MAXERRS 128
+
 /* reads the specified initialization file.  returns -1 if errors were found
    so that we can pause to let the user know...  */
 static int source_rc (const char *rcfile, BUFFER *err)
@@ -1190,8 +1192,12 @@ static int source_rc (const char *rcfile, BUFFER *err)
     if (mutt_parse_rc_line (linebuf, &token, err) == -1)
     {
       mutt_error (_("Error in %s, line %d: %s"), rcfile, line, err->data);
-      rc = -1;
+      if (--rc < -MAXERRS)
+        break;
     }
+    else
+      if (rc < 0)
+        rc = -1;
   }
   FREE (&token.data);
   safe_free ((void **) &linebuf);
@@ -1199,11 +1205,17 @@ static int source_rc (const char *rcfile, BUFFER *err)
   if (pid != -1)
     mutt_wait_filter (pid);
   if (rc)
+  {
     /* the muttrc source keyword */
-    snprintf (err->data, err->dsize, _("source: errors in %s"), rcfile);
+    snprintf (err->data, err->dsize, rc >= -MAXERRS ? _("source: errors in %s")
+      : _("source: reading aborted due too many errors in %s"), rcfile);
+    rc = -1;
+  }
   return (rc);
 }
 
+#undef MAXERRS
+
 static int parse_source (BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER *err)
 {
   char path[_POSIX_PATH_MAX];
index 4c1e68006d2e7fea940babe73bd951ef567f5925..554d25d39938c029ccab219999c96ea4a7d003c3 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -1420,6 +1420,11 @@ msgstr "Fehler in %s, Zeile %d: %s"
 msgid "source: errors in %s"
 msgstr "source: Fehler in %s"
 
+#: init.c:1210
+#, c-format
+msgid "source: reading aborted due too many errors in %s"
+msgstr "source: Lesevorgang abgebrochen, zu viele Fehler in %s"
+
 #: init.c:1213
 #, c-format
 msgid "source: error at %s"
index cbb6e6e302c2d3b31064abb26703ab26b63a5ef9..3c12c28d92d7175a4412036504fa75e5a7bba517 100644 (file)
--- a/thread.c
+++ b/thread.c
@@ -149,7 +149,7 @@ void mutt_linearize_tree (CONTEXT *ctx, int linearize)
   char *pfx = NULL, *mypfx = NULL, *arrow = NULL, *myarrow = NULL;
   char corner = Sort & SORT_REVERSE ? M_TREE_ULCORNER : M_TREE_LLCORNER;
   int depth = 0, start_depth = 0, max_depth = 0, max_width = 0;
-  int nextdisp = 0;
+  int nextdisp = 0, visible;
   HEADER *tree = ctx->tree;
   HEADER **array = ctx->hdrs + (Sort & SORT_REVERSE ? ctx->msgcount - 1 : 0);
 
@@ -161,7 +161,7 @@ void mutt_linearize_tree (CONTEXT *ctx, int linearize)
 
   FOREVER
   {
-    if (tree->virtual >= 0 || (tree->collapsed && (!ctx->pattern || tree->limited)))
+    if ((visible = (tree->virtual >= 0 || (tree->collapsed && (!ctx->pattern || tree->limited)))))
       tree->display_subject = need_display_subject (ctx, tree);
 
     if (depth >= max_depth)
@@ -173,12 +173,8 @@ void mutt_linearize_tree (CONTEXT *ctx, int linearize)
                    (max_width += 16) * 2 * sizeof (char));
 
     safe_free ((void **) &tree->tree);
-    if (!depth)
-    {
-      if (tree->virtual >= 0 || (tree->collapsed && (!ctx->pattern || tree->limited)))
-       tree->tree = safe_strdup ("");
-    }
-    else
+
+    if (depth)
     {
       myarrow = arrow + (depth - start_depth - (start_depth ? 0 : 1)) * 2;
       nextdisp = is_next_displayed (ctx, tree);
@@ -188,13 +184,13 @@ void mutt_linearize_tree (CONTEXT *ctx, int linearize)
       else
        myarrow[0] = M_TREE_HIDDEN;
       myarrow[1] = tree->fake_thread ? M_TREE_STAR : M_TREE_HLINE;
-      if (tree->virtual >= 0 || (tree->collapsed && (!ctx->pattern || tree->limited)))
+      if (visible)
       {
        myarrow[2] = M_TREE_RARROW;
        myarrow[3] = 0;
       }
 
-      if (tree->virtual >= 0 || (tree->collapsed && (!ctx->pattern || tree->limited)))
+      if (visible)
       {
        tree->tree = safe_malloc ((2 + depth * 2) * sizeof (char));
        if (start_depth > 1)
@@ -223,7 +219,7 @@ void mutt_linearize_tree (CONTEXT *ctx, int linearize)
        mypfx[1] = M_TREE_SPACE;
       }
       depth++;
-      if (tree->virtual >= 0 || (tree->collapsed && (!ctx->pattern || tree->limited)))
+      if (visible)
         start_depth = depth;
       tree = tree->child;
     }