all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Drew Adams <drew.adams@oracle.com>
To: Eli Zaretskii <eliz@gnu.org>, Drew Adams <drew.adams@oracle.com>
Cc: 27238@debbugs.gnu.org
Subject: bug#27238: 24.5; Rename `face-spec-set-2' and give it a better doc string
Date: Sun, 4 Jun 2017 22:44:40 -0700 (PDT)	[thread overview]
Message-ID: <c2f33d90-673d-4f13-894f-a26a52cf1a0d@default> (raw)
In-Reply-To: <<83tw3v9njh.fsf@gnu.org>>

> > > > This is a useful, general function, not just a helper.
> > > 
> > > FWIW, I don't think it's general enough, because it is
> > > tightly couples with face-x-resources.
> > 
> > That's only the _implementation_.
> > 
> > (That reasoning would apply also to `face-spec-recalc', `face-spec-set',
> > `face-set-after-frame-default', `custom-face-set', `custom-face-save',
> > `custom-face-mark-to-save', `custom-face-reset-saved',
> > `custom-face-mark-to-reset-standard', `custom-declare-face',
> > `custom-theme-set-faces', `custom-reset-faces', `woman-default-faces',
> > ...)
> 
> They all call face-spec-recalc.

`face-spec-recalc' calls `face-spec-2', which calls
`face-x-resources'.

Your complaint is that `face-spec-2' should not be treated as
first-class (i.e., given a reasonable name and accurate doc)
because it depends on using `face-x-resources'.  As I said,
that is only its current _implementation_.

As far as _using_ `face-spec-2' is concerned (which is what
this is about), all of the above make use of it.  Given its
current implementation, they depend on that implementation
just as much as it does.  Change the implementation and there
is no coupling with it.  Leave the implementation as is and
they all continue to depend on it.

Your reasoning applies also to all of those functions.  If
your argument is that we should not encourage users to use
this function (by improving its name and doc) because its
implementation is fragile, then that same argument applies
to all current uses of it.

And there are plenty, including uses defining functions,
such as `face-spec-set', that are very widely used, including
by users.

> > Unless you essentially repeat its body, it is the only way
> > to do what it does.  Here's one use case:
> >
> > (face-spec-set-2 TARGET-FACE
> >                  FRAME
> >                  (face-spec-choose
> >                    (get SOURCE-FACE 'face-defface-spec)
> >                    FRAME))
> 
> Why can't you do this by calling a higher-level function?

What higher-level function would you suggest?  That function
does that job - and so it is used in `faces.el' (ultimately
by all of the functions listed above).

How would _you_ set one face (`fringe' or whatever), in
only a given frame, to the spec of another face (or to
a spec that isn't yet used for any face)?

I don't see `face-spec-set' offering that possibility, at
least not directly.  Am I missing something?  I tried it
with each of the allowed SPEC-TYPEs, to see what they'd
do, but none of them did that.  A nil SPEC-TYPE sort of
does the job, but without the ability to limit the setting
to a given frame.

But perhaps you have some other higher-level function in
mind to do this job?  If so, I wonder why `face-set-recalc'
doesn't use it, instead of `face-spec-set-2.





       reply	other threads:[~2017-06-05  5:44 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <<<06a7cc83-a2a8-45a0-97d4-bd3a478aab92@default>
     [not found] ` <<<83wp8ra9g6.fsf@gnu.org>
     [not found]   ` <<26a213b3-908e-43b1-a009-b8a18f0a1c23@default>
     [not found]     ` <<83tw3v9njh.fsf@gnu.org>
2017-06-05  5:44       ` Drew Adams [this message]
2017-06-05 15:24         ` bug#27238: 24.5; Rename `face-spec-set-2' and give it a better doc string Eli Zaretskii
     [not found] <<<<<<<06a7cc83-a2a8-45a0-97d4-bd3a478aab92@default>
     [not found] ` <<<<<<<83wp8ra9g6.fsf@gnu.org>
     [not found]   ` <<<<<<26a213b3-908e-43b1-a009-b8a18f0a1c23@default>
     [not found]     ` <<<<<<83tw3v9njh.fsf@gnu.org>
     [not found]       ` <<<<<c2f33d90-673d-4f13-894f-a26a52cf1a0d@default>
     [not found]         ` <<<<<83lgp6a257.fsf@gnu.org>
     [not found]           ` <<<<139eede5-534a-47ad-805a-bad9995526eb@default>
     [not found]             ` <<<<83d1ai9yy1.fsf@gnu.org>
     [not found]               ` <<<2ceee035-593d-4831-be30-06443ba3bc92@default>
     [not found]                 ` <<<83bmq29x63.fsf@gnu.org>
     [not found]                   ` <<a67cb3cf-a77f-4161-babd-eb475e16da95@default>
     [not found]                     ` <<83a85m9sxe.fsf@gnu.org>
2017-06-05 19:36                       ` Drew Adams
2017-06-10  8:41                         ` Eli Zaretskii
     [not found] <<<<<<06a7cc83-a2a8-45a0-97d4-bd3a478aab92@default>
     [not found] ` <<<<<<83wp8ra9g6.fsf@gnu.org>
     [not found]   ` <<<<<26a213b3-908e-43b1-a009-b8a18f0a1c23@default>
     [not found]     ` <<<<<83tw3v9njh.fsf@gnu.org>
     [not found]       ` <<<<c2f33d90-673d-4f13-894f-a26a52cf1a0d@default>
     [not found]         ` <<<<83lgp6a257.fsf@gnu.org>
     [not found]           ` <<<139eede5-534a-47ad-805a-bad9995526eb@default>
     [not found]             ` <<<83d1ai9yy1.fsf@gnu.org>
     [not found]               ` <<2ceee035-593d-4831-be30-06443ba3bc92@default>
     [not found]                 ` <<83bmq29x63.fsf@gnu.org>
2017-06-05 17:56                   ` Drew Adams
2017-06-05 18:43                     ` Eli Zaretskii
     [not found] <<<<<06a7cc83-a2a8-45a0-97d4-bd3a478aab92@default>
     [not found] ` <<<<<83wp8ra9g6.fsf@gnu.org>
     [not found]   ` <<<<26a213b3-908e-43b1-a009-b8a18f0a1c23@default>
     [not found]     ` <<<<83tw3v9njh.fsf@gnu.org>
     [not found]       ` <<<c2f33d90-673d-4f13-894f-a26a52cf1a0d@default>
     [not found]         ` <<<83lgp6a257.fsf@gnu.org>
     [not found]           ` <<139eede5-534a-47ad-805a-bad9995526eb@default>
     [not found]             ` <<83d1ai9yy1.fsf@gnu.org>
2017-06-05 16:40               ` Drew Adams
2017-06-05 17:11                 ` Eli Zaretskii
     [not found] <<<<06a7cc83-a2a8-45a0-97d4-bd3a478aab92@default>
     [not found] ` <<<<83wp8ra9g6.fsf@gnu.org>
     [not found]   ` <<<26a213b3-908e-43b1-a009-b8a18f0a1c23@default>
     [not found]     ` <<<83tw3v9njh.fsf@gnu.org>
     [not found]       ` <<c2f33d90-673d-4f13-894f-a26a52cf1a0d@default>
     [not found]         ` <<83lgp6a257.fsf@gnu.org>
2017-06-05 15:55           ` Drew Adams
2017-06-05 16:33             ` Eli Zaretskii
     [not found] <<06a7cc83-a2a8-45a0-97d4-bd3a478aab92@default>
     [not found] ` <<83wp8ra9g6.fsf@gnu.org>
2017-06-04 19:38   ` Drew Adams
2017-06-05  2:27     ` Eli Zaretskii
2017-06-04 17:42 Drew Adams
2017-06-04 18:34 ` Eli Zaretskii

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=c2f33d90-673d-4f13-894f-a26a52cf1a0d@default \
    --to=drew.adams@oracle.com \
    --cc=27238@debbugs.gnu.org \
    --cc=eliz@gnu.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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.