emacs-devel
[Top][All Lists]
Advanced

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

Re: Building emacs with and without X -- packaging question.


From: Rob Browning
Subject: Re: Building emacs with and without X -- packaging question.
Date: Sat, 14 Sep 2002 16:16:13 -0500
User-agent: Gnus/5.090006 (Oort Gnus v0.06) Emacs/21.2 (i386-pc-linux-gnu)

Richard Stallman <address@hidden> writes:

>     Sure I can try.  I presume you're talking about this diff:
>
>     -(put 'frames 'custom-loads '( "desktop" "ediff-wind" "faces" "frame" 
> "imenu" "menu-bar" "rsz-mini" "scroll-bar" "two-column"))
>     +(put 'frames 'custom-loads '( "desktop" "ediff-wind" "faces" "frame" 
> "imenu" "menu-bar" "rsz-mini" "two-column"))
>
> That one and the other one, both.
>
>     Is this one related, or likely something else?
>
>     -(custom-put-if-not 'gnus-article-x-face-command 'custom-version "21.1")
>     -(custom-put-if-not 'gnus-article-x-face-command 'standard-value t)
>
> There is no way of knowing a priori whether they are related.

I finally had time to work on this, and I think I've tracked it down.
In cus-dep.el we have:

                    (let ((expr (read (current-buffer))))
                      (condition-case nil
                          (progn
                            (eval expr)
                            (put (nth 1 expr) 'custom-autoloaded is-autoloaded)
                            (put (nth 1 expr) 'custom-where name))
                        (error nil))))

Note that the condition-case ignores errors.  However, if you rewrite
the above to actually catch the signalled-condition data and print it
via message, you will find that when compiling --with-x=no, there's an
error while handling both the scroll-bar-mode and
gnus-article-x-face-command defcustoms.  In the scroll-bar-mode case
this appears to be because set-scroll-bar-mode-1 is undefined, even
though it's used as the :set value in the relevant defcustom:

  (defcustom scroll-bar-mode
    (if (eq system-type 'windows-nt) 'right 'left)
    "*Specify whether to have vertical scroll bars, and on which side.
  Possible values are nil (no scroll bars), `left' (scroll bars on left)
  and `right' (scroll bars on right).
  To set this variable in a Lisp program, use `set-scroll-bar-mode'
  to make it take real effect.
  Setting the variable with a customization buffer also takes effect."
    :type '(choice (const :tag "none (nil)")
                   (const left)
                   (const right))
    :group 'frames
    :set 'set-scroll-bar-mode-1)

The actual condition-case signalled-condition data for this error is
(void-function set-scroll-bar-mode-1), and removing the :set line from
the defcustom fixes the problem, at least to the extent that the
scroll-bar related diff in cus-dep.el goes away.  For
gnus-article-x-face-command, the condition-case signalled-condition
data is (void-variable gnus-article-compface-xbm).

If my analysis is right, is this something that should be fixed, and
if so, what would be the right way to fix it?

Thanks

-- 
Rob Browning
rlb @defaultvalue.org, @linuxdevel.com, and @debian.org
Previously @cs.utexas.edu
GPG=1C58 8B2C FB5E 3F64 EA5C  64AE 78FE E5FE F0CB A0AD




reply via email to

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