all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Daniel Colascione <dancol@dancol.org>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: [PATCH 3/4] Implement cygw32
Date: Fri, 30 Dec 2011 01:36:03 -0800	[thread overview]
Message-ID: <4EFD8603.3060402@dancol.org> (raw)
In-Reply-To: <83zkeatnto.fsf@gnu.org>

[-- Attachment #1: Type: text/plain, Size: 2680 bytes --]

On 12/30/11 1:23 AM, Eli Zaretskii wrote:
>> Date: Thu, 29 Dec 2011 13:50:32 -0800
>> From: Daniel Colascione <dancol@dancol.org>
>> CC: emacs-devel@gnu.org
>>
>>>>>> -  (if (eq system-type 'windows-nt)
>>>>>> +  (if (featurep 'w32)
>>>>>>        '(("iso8859-1" "ms-oemlatin")
>>>>>>  	("gb2312.1980" "gb2312" "gbk" "gb18030")
>>>>>>  	("jisx0208.1990" "jisx0208.1983" "jisx0208.1978")
>>>>>
>>>>> Why not use window-system (the function) here?
>>>>
>>>> Isn't it a little early for window-system at this point?
>>>
>>> A defcustom is evaluated more than once.  So I'm a bit fuzzy about
>>> "too early" ;-)
>>
>> When we initialize for the first time, we won't have a GUI frame to
>> check, yes? (And then we dump the table into pure storage.)
> 
> In a release tarball, this first time is normally on a GNU/Linux box,
> and so the w32-specific setting will never be chosen.
> 
> The important initialization is when the dumped Emacs is started on a
> Windows system.  At that time, we do have a GUI frame, I think.
> 
>> If there's
>> no facility to force reevaluation of the mapping table, we'll end up
>> using the wrong one when we *do* finally come up with a GUI frame.
> 
> But there _is_ such a facility: defcustoms are reevaluated upon
> startup (and then again when you actually use "M-x customize", or have
> custom-related forms in your .emacs).  

~/software/emacs/cyg.w32/src
$ ./emacs --daemon
("./emacs")
...
Restarting server

~/software/emacs/cyg.w32/src
$ cd ../lib-src/

~/software/emacs/cyg.w32/lib-src
$ ./emacsclient --eval '(emacs-version)'
"GNU Emacs 24.0.92.71 (i686-pc-cygwin)\n of 2011-12-29 on dfaew"

~/software/emacs/cyg.w32/lib-src
$ ./emacsclient --eval '(window-system)'
nil

~/software/emacs/cyg.w32/lib-src
$ ./emacsclient --eval 'window-system'
nil

~/software/emacs/cyg.w32/lib-src
$ ./emacsclient --eval "(featurep 'w32)"
t

> My point, however, is that it is a good idea to use window-system (the
> function) where it could happen that different frames have different
> types, in the current mult-tty Emacs.  If nothing else, using
> window-system consistently contributes to the clarity of the code and
> shows the overall design to newcomers, who would otherwise become
> confused if they see inconsistent tests in each and every place.

I agree that using window-system where appropriate is best.  That said,
window-system isn't always appropriate.  It answers the question "what
window system am I using right now?".  The featurep query answers "what
window system is this copy of Emacs capable of using?".  Sometimes, the
latter question is of greater interest.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 235 bytes --]

  reply	other threads:[~2011-12-30  9:36 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-29 14:03 [PATCH 0/4] Support Win32 GUI in Cygwin Emacs Daniel Colascione
2011-12-29 14:03 ` [PATCH 1/4] Compilation cleanups Daniel Colascione
2011-12-29 17:54   ` Paul Eggert
2011-12-31 14:50     ` Ken Brown
2011-12-31 20:29       ` Paul Eggert
2011-12-29 14:03 ` [PATCH 4/4] Fix emacsclient to work with cygw32 Daniel Colascione
2011-12-29 16:28   ` Juanma Barranquero
2011-12-29 16:36     ` Daniel Colascione
2011-12-29 16:43       ` Juanma Barranquero
2011-12-29 16:47         ` Daniel Colascione
2011-12-29 16:49           ` Juanma Barranquero
2011-12-29 17:39   ` Eli Zaretskii
2011-12-29 17:56     ` Daniel Colascione
2011-12-29 18:18       ` Eli Zaretskii
2011-12-29 18:53         ` Juanma Barranquero
2011-12-29 14:03 ` [PATCH 2/4] Refactor window-system configuration Daniel Colascione
2011-12-29 22:21   ` Dan Nicolaescu
2011-12-29 22:29     ` Daniel Colascione
2011-12-29 22:43       ` Dan Nicolaescu
2011-12-29 22:48         ` Daniel Colascione
2011-12-29 23:05           ` Dan Nicolaescu
2011-12-29 23:08             ` Daniel Colascione
2011-12-30  8:54             ` Eli Zaretskii
2011-12-30  9:07               ` Daniel Colascione
2011-12-30  9:44                 ` Eli Zaretskii
2011-12-30  0:53       ` Stefan Monnier
2011-12-30  8:21       ` Eli Zaretskii
2011-12-30  8:26         ` Daniel Colascione
2011-12-30  9:38           ` Eli Zaretskii
2011-12-30  9:45             ` Daniel Colascione
2011-12-30 11:15             ` Stefan Monnier
2011-12-30  8:19     ` Eli Zaretskii
2011-12-29 14:03 ` [PATCH 3/4] Implement cygw32 Daniel Colascione
2011-12-29 17:29   ` Eli Zaretskii
2011-12-29 17:53     ` Daniel Colascione
2011-12-29 18:17       ` Eli Zaretskii
2011-12-29 21:50         ` Daniel Colascione
2011-12-30  0:56           ` Jason Rumney
2011-12-30  9:23           ` Eli Zaretskii
2011-12-30  9:36             ` Daniel Colascione [this message]
2011-12-30 11:16               ` Eli Zaretskii
2011-12-30  9:49   ` Andreas Schwab

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=4EFD8603.3060402@dancol.org \
    --to=dancol@dancol.org \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@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.