[[ Mailed copy of news article posted to lists.emacs.rcp ]]

>>>>> "Stefan" == Stefan Monnier <[EMAIL PROTECTED]> 
>writes:

>>>>> "Kai" == Kai Gro�johann <[EMAIL PROTECTED]> writes:
    Kai> How do I transform a large number into such a cons cell?

    Stefan> How about something like:

    Stefan>     (condition-case err
    Stefan>             (read buf)
    Stefan>       (invalid-read-syntax
    Stefan>        (when (and (equal (cadr err) "Integer constant overflow in reader")
    Stefan>                       (string-match 
"^[0-9]+\\([0-9][0-9][0-9][0-9][0-9]\\)\\'"
    Stefan>                                     (caddr err)))
    Stefan>              (let* ((big (read (substring (caddr err) 0 (match-beginning 
1))))
    Stefan>                     (small (read (match-string 1 (caddr err))))
    Stefan>                     (twiddle (/ small 65536)))
    Stefan>                (cons (+ big twiddle)
    Stefan>                      (- small (* twiddle 65536)))))))

Yup, that works.  "(read buf)" becomes "(read (current-buffer))" in my
version 1.130 of rcp.el.
-- 
Pete Forman
Western Geophysical
[EMAIL PROTECTED]

Reply via email to