emacs-devel
[Top][All Lists]
Advanced

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

Re: intern-soft, find-face/get-face, and facep for determining faces' de


From: Stephen J. Turnbull
Subject: Re: intern-soft, find-face/get-face, and facep for determining faces' definedness
Date: Thu, 04 Nov 2004 12:41:59 +0900
User-agent: Gnus/5.1006 (Gnus v5.10.6) XEmacs/21.5 (chayote, linux)

>>>>> "Stefan" == Stefan  <address@hidden> writes:

    >> A C structure wrapped in Lisp housekeeping information that
    >> implements a face.  I'm not sure why they were exposed to Lisp
    >> in the first place; I suspect to avoid repeated lookups in code
    >> that compares faces to determine if they contrast and the like.
    >> Probably a premature optimization.

    Stefan> I doubt the motivation was optimization.  I think it had
    Stefan> more to do with philosophical convictions.

Could be.  Might also be the issue of anonymous faces; at the time we
didn't have weak structures, so there was no easy way to guarantee it
would get GC'd in a timely fashion.

    >> A face name is a symbol.  A face object is a data structure.

    Stefan> I still don't understand why (facep 'foo) returns nil,
[...]
    Stefan> Just like (progn (fset 'foobar (make-keymap)) (keymapp
    Stefan> 'foobar)) return t rather than nil.

And so does (progn (fset 'foobar (make-keymap)) (fboundp 'foobar)), of
course.  But (progn (fset 'foobar (make-keymap)) (foobar)) errors, of
course.  Hardly convincing!

Anway, "that's different".  The symbol foobar is not a key in a table
somewhere, it _is_ the keymap in a physical sense.

I don't remember if Emacs has special object types for charsets and
coding systems, which are also named by symbols.  However, in XEmacs
the APIs all work the same way; type predicates return t for the object
but nil for the name, and have find-<type> and get-<type> interfaces.

Whether any of this really makes sense, I don't know, but it's consistent.

-- 
Institute of Policy and Planning Sciences     http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba                    Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
               Ask not how you can "do" free software business;
              ask what your business can "do for" free software.




reply via email to

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