From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: tfb@mudslide.OCF.Berkeley.EDU (Thomas F. Burdick) Newsgroups: gmane.emacs.help Subject: Re: installing emacs and X11 on OS X Date: 28 Oct 2002 13:25:27 -0800 Organization: University of California, Berkeley Sender: help-gnu-emacs-admin@gnu.org Message-ID: References: NNTP-Posting-Host: main.gmane.org X-Trace: main.gmane.org 1035841309 6997 80.91.224.249 (28 Oct 2002 21:41:49 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Mon, 28 Oct 2002 21:41:49 +0000 (UTC) Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 186Hdo-0001oK-00 for ; Mon, 28 Oct 2002 22:41:44 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.10) id 186HTn-0004aM-00; Mon, 28 Oct 2002 16:31:23 -0500 Original-Path: shelby.stanford.edu!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!news-hog.berkeley.edu!ucberkeley!agate.berkeley.edu!agate!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 108 Original-NNTP-Posting-Host: mudslide.ocf.berkeley.edu Original-X-Trace: agate.berkeley.edu 1035840328 70983 192.58.221.203 (28 Oct 2002 21:25:28 GMT) Original-X-Complaints-To: usenet@agate.berkeley.edu Original-NNTP-Posting-Date: Mon, 28 Oct 2002 21:25:28 +0000 (UTC) X-Newsreader: Gnus v5.7/Emacs 20.7 Original-Xref: shelby.stanford.edu gnu.emacs.help:106466 Original-To: help-gnu-emacs@gnu.org Errors-To: help-gnu-emacs-admin@gnu.org X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.0.11 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: Xref: main.gmane.org gmane.emacs.help:3016 X-Report-Spam: http://spam.gmane.org/gmane.emacs.help:3016 Eli Zaretskii writes: > On 27 Oct 2002, Thomas F. Burdick wrote: > > > This doesn't let me differentiate between Carbon-Emacs on OS X, and > > X11-Emacs on the same OS. system-type is darwin on both, and > > display-graphic-p is t on both. However, it makes a lot of sense (to > > me) that someone might want to make the Carbon one behave more like a > > Carbon application, and the X11 one behave like an X11 application. > > If there's a difference between these two configurations, there should be > a way to distinguish between them. Doesn't system-configuration fit the > bill? or maybe system-configuration-options? No, because the determination really needs to be made at runtime. > > Out of curiosity, why is it depricated? Because people abuse it where > > specific feature tests would be better? > > Yes. And that makes application code, including users' .emacs, bitrot > alot when functionality of some window-system changes due to > development. I already mentioned the problem with .emacs files that > assumed window-system being nil means no colors. Well, the conjunction doesn't belong there -- abusing it this way certainly will introduce bit-rot. > > If so, that seems like a bad > > reason ... people can abuse anything > > People will abuse less if they have less opportunities for abuse. I guess so long as a new facility for determining what environment you're working in, is introduced, this is a fine decision. I imagine, though, that any time you give people the ability to ask what look-and-feel environment they're operating in, they'll abuse it to test for display features. > > but AFAIK, window-system is the > > only way to determine what window system you're on. > > A small study into the uses of window-system in Emacs's own code that we > did shows that it is used to test for a small number of features, but those > features are implicit: they are neither stated clearly in the code nor > even clearly understood in some cases. So it seems like window-system is > a powerful tool for obfuscating Lisp code. > > By contrast, the explicit predicates such as display-multi-font-p > actually say exactly what is the feature that's being tested. And the > maintenance effort needed to keep a small number of predicates in sync > with Emacs development is much less than what would be needed to go > through all the *.el files and modify them whenever some window-system > gets an extra feature it didn't have before. As an example, consider a > future development of drop-down menus on a character terminal. Oh, I'm not questioning the wisdom of using the display-*-p functions. > > Or is there a > > plan to replace this with a more competant introspection api? > > Such a plan is already in place: those are the display-*-p predicates > advertized by NEWS in the same item which says window-system should not > be used. What's there is good, but more is needed. I guess that possiblity is part of why window-system was depricated, instead of removed, huh? > > [ It would be cool to be able to have something like a window-system-p > > function, so I could ask (window-system-p 'carbon) or > > (window-system-p 'x11) or (window-system-p 'gtk). > > I think system-configuration and/or system-configuration-options should > allow you to do this. I think what's needed is the ability to ask run-time questions like the above. So either a look-and-feel-p predicate, or a series of display-look&feel-*-p predicates, so I could write code like this: (when (display-look&feel-carbon-p) (setup-carbon-look&feel)) (when (display-look&feel-x11-p) ;; Things like mouse-2 for paste (setup-x11-look&feel)) (when (display-look&feel-mswin-p) ;; No mouse-2 for pasting, use cua-mode instead (setup-mswin-look&feel)) (when (display-look&feel-gtk-p) ;; Whatever is needed for GTK integration (setup-gtk-look&feel)) That way, I could write setup-*-look&feel functions that do only what that feature requires, so for example mouse-2-as-paste wouldn't be a part of the GTK l&f function, it would go with X11. That way if there was an Emacs someday that ran under GTK/MSWin, it wouldn't have weird pasting behavior. -- /|_ .-----------------------. ,' .\ / | No to Imperialist war | ,--' _,' | Wage class war! | / / `-----------------------' ( -. | | ) | (`-. '--.) `. )----'