emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to debug this problem?


From: Stefan Monnier
Subject: Re: How to debug this problem?
Date: Wed, 09 Sep 2009 23:21:30 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux)

> This is the smallest list I can reproduce the problem. If I delete any
> of them, it returns " Paredit Ovwrt".

I see: your list has 50 entries.
And indeed the C code says:

        [...]
        else if (STRINGP (car) || CONSP (car))
          {
            register int limit = 50;
            /* Limit is to protect against circular lists.  */
        [...]

so it looks like you bumped into a hard-coded limit.
I've just installed the patch below which should move the hard limit far
enough for now.


        Stefan


--- xdisp.c.~1.1297.~   2009-09-08 21:20:35.000000000 -0400
+++ xdisp.c     2009-09-09 23:17:16.000000000 -0400
@@ -17750,8 +17750,12 @@
          }
        else if (STRINGP (car) || CONSP (car))
          {
-           register int limit = 50;
-           /* Limit is to protect against circular lists.  */
+           register int limit = 5000;
+           /* Limit is to protect against circular lists.
+              The limit used to be 50, but if you use enough minor modes,
+              minor-mode-alist will easily grow past 50.  Circular lists
+              are rather unlikely, so it's better for the limit to be
+              "too large" rather than "too small".  */
            while (CONSP (elt)
                   && --limit > 0
                   && (precision <= 0 || n < precision))




reply via email to

[Prev in Thread] Current Thread [Next in Thread]