unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan <monnier@iro.umontreal.ca>
Cc: xemacs-beta@xemacs.org, emacs-devel@gnu.org,
	Brian Palmer <bpalmer@gmail.com>,
	Brian Palmer <bpalmer@rescomp.stanford.edu>,
	Miles Bader <miles@gnu.org>
Subject: Re: intern-soft, find-face/get-face, and facep for determining faces' definedness
Date: Tue, 02 Nov 2004 07:01:49 -0500	[thread overview]
Message-ID: <m1is8oh3qq.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <87mzy0pl0o.fsf@tleepslib.sk.tsukuba.ac.jp> (Stephen J. Turnbull's message of "Tue, 02 Nov 2004 20:07:03 +0900")

Miles> What's a "face object" in Emacs?
> A symbol, I should think.  I was confused by the fact that `facep'
> returns a vector of length 17 whose first element is the symbol 'face.
> However, I would guess that that's a useless artifact of the
> implementation, since (facep (facep 'bold)) is nil.

I've never seen the vector used in Elisp for anything, so yes: it's just
a useless (and arguably ugly) artifact of the implementation.

Miles> [Indeed, what's a "face object" in Xemacs?]

> 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.

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

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

I still don't understand why (facep 'foo) returns nil, even though

   (put-text-property (point) (+ 10 (point)) 'face 'foo)
and
   (set-face-foreground 'foo "red")

work just fine.  I think `facep' should return non-nil iff the parameter can
be used at those places where faces are expected, so it should return
non-nil for symbols (assuming the symbol is indeed the name of an existing
face, of course).
Just like (progn (fset 'foobar (make-keymap)) (keymapp 'foobar)) return
t rather than nil.


        Stefan

  reply	other threads:[~2004-11-02 12:01 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-11-01 21:40 intern-soft, find-face/get-face, and facep for determining faces' definedness Brian Palmer
2004-11-02  6:14 ` Stephen J. Turnbull
2004-11-02  7:28   ` Brian Palmer
2004-11-02  7:45     ` Miles Bader
2004-11-02  8:48       ` Brian Palmer
2004-11-02  9:08         ` Miles Bader
2004-11-02  9:21           ` Brian Palmer
2004-11-02  9:50             ` Miles Bader
2004-11-02 12:06               ` Stephen J. Turnbull
2004-11-02 22:20                 ` Miles Bader
2004-11-06  9:31                   ` Oliver Scholz
2004-11-02 11:07           ` Stephen J. Turnbull
2004-11-02 12:01             ` Stefan [this message]
2004-11-02 22:23               ` Miles Bader
2004-11-03 12:45               ` Richard Stallman
2004-11-03 14:15                 ` Stefan Monnier
2004-11-03 15:01                   ` Zajcev Evgeny
2004-11-03 15:20                     ` Andreas Schwab
2004-11-03 15:54                       ` Zajcev Evgeny
2004-11-04  9:28                         ` Stephen J. Turnbull
2004-11-03 15:48                     ` Stefan Monnier
2004-11-04  3:41               ` Stephen J. Turnbull
2004-11-05  7:55                 ` Stefan
2004-11-09 14:41                   ` Stephen J. Turnbull

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=m1is8oh3qq.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=bpalmer@gmail.com \
    --cc=bpalmer@rescomp.stanford.edu \
    --cc=emacs-devel@gnu.org \
    --cc=miles@gnu.org \
    --cc=xemacs-beta@xemacs.org \
    /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.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).