Gnus development mailing list
 help / color / mirror / Atom feed
From: Tassilo Horn <tassilo@member.fsf.org>
To: Ted Zlatanov <tzz@lifelogs.com>
Cc: ding@gnus.org
Subject: Re: Debugger entered--Lisp error: (overflow-error "13419098521433281274")
Date: Wed, 02 Mar 2011 21:36:23 +0100	[thread overview]
Message-ID: <87oc5ti7js.fsf@member.fsf.org> (raw)
In-Reply-To: <87aahdmg51.fsf@lifelogs.com> (Ted Zlatanov's message of "Wed, 02 Mar 2011 14:17:14 -0600")

Ted Zlatanov <tzz@lifelogs.com> writes:

Hi Ted,

> TH> Here's the offending code:
> TH> 	  (while (re-search-forward "^\\* [0-9]+ FETCH " start t)
> TH> 	    (setq elems (read (current-buffer)))
> TH> 	    (push (cons (cadr (memq 'UID elems))
> TH> 			(cadr (memq 'FLAGS elems)))
> TH> 		  articles))
>
> TH> Of course, it is convenient to `read' the complete list in lines like
>
> TH>   * 2971 FETCH (FLAGS (%Recent) UID 12509 MODSEQ (13419098521433281274))
>
> TH> but it fails for large numbers.  And if the RFC says those are 64bit
> TH> unsigned ints, well, then Gnus has to handle those.
>
> Gnus has no way to do it when Emacs can't.  The calc package has some
> facilities for big numbers but yeah, (read) will not DTRT with input
> like that.  I've asked for it on emacs-devel.
>
> To fix it now, I would replace such large numbers with a truncated
> version, which can be done safely with a regex before the reader sees
> the input.  But I'll let Lars decide, he knows that code best.

But that huge number is not used by gnus, anyway.  It is `read' but only
the UID and FLAGS values are saved.  So IMHO, the proper fix is to put a
condition-case around the `read' that picks the UID and FLAGS with
string-matching if an overflow-error occurs.

Bye,
Tassilo
-- 
Sent from my Emacs



  reply	other threads:[~2011-03-02 20:36 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-02 15:28 Tassilo Horn
2011-03-02 17:52 ` Tassilo Horn
2011-03-02 19:00 ` Andreas Schwab
2011-03-02 19:24   ` Tassilo Horn
2011-03-02 20:17     ` Ted Zlatanov
2011-03-02 20:36       ` Tassilo Horn [this message]
2011-03-02 20:52         ` Andreas Schwab
2011-03-02 21:02           ` Tassilo Horn
2011-03-02 20:56         ` Ted Zlatanov
2011-03-03  8:11           ` Tassilo Horn
2011-03-04 14:59             ` Ted Zlatanov
2011-03-05 10:52         ` Lars Magne Ingebrigtsen
2011-03-05 10:55 ` Lars Magne Ingebrigtsen
2011-03-07 17:29   ` Ted Zlatanov
2011-03-15 16:50     ` Lars Magne Ingebrigtsen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87oc5ti7js.fsf@member.fsf.org \
    --to=tassilo@member.fsf.org \
    --cc=ding@gnus.org \
    --cc=tzz@lifelogs.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).