|
From: | Steven Tamm |
Subject: | Re: Mac OS X GNU Emacs Installer (make-package) |
Date: | Sat, 30 Nov 2002 17:53:05 -0800 |
This is the solution that Andrew proposes. /usr/local/bin/emacs would be a shell script that calls /usr/local/bin/emacs-21.3.50 -nw $*. I don'tlike that solution very much. This is a patch I placed on the list earlier; it causes the executable to determine if it is inside an application bundle. If it is not, it will cause it toinhibit_windowing_system. I placed the call to this right after the callto init_mac_osx_environment inside emacs.c:main[..]That was my initial idea. But in the end I like the way the shell script works better. Typing plain "emacs" gives you a new window, while "emacs -nw" gives you the console. It works just like under X Windows. Otherwise there is no way to get a nice window from the command line, except by writing your own shell wrapper. To me that is the only reason to choose the shell script road over the patch you propose (Although I think patch should be there as well, since emacs should never segfault).
Yeah, I think you are right. The one concern that I had was what would happen if the location of the Emacs.app was moved. Your solution fixes that by creating a "shadow" application. Why not make the whole Emacs.app directory be a link to the lib-exec one? That way you wouldn't have the problem of dealing with two sets of files depending on whether you did it from the command line or from the finder. The downside is that the icon in the Applications menu would be a little screwed up.
As another aside, I think the make-package script should eventually be rewritten in perl because of the guarantee that it exists on Mac OS X. Any objections.
BTW, I think making Contents/MacOS/Emacs be a hard link to emacs-21.3.50 is a bad idea. The Application may (and in my case usually will) live ona different volume than the /usr/local tree. I'll keep the symlink option there for the Application, but remove the bad behavior.The question is, does the installer (or pax) automatically copy the file if it's getting unloaded accross filesystems? If so then there's no problem with a hard link.
If Emacs.app is a symlink then it's a non-issue (obviously). pax at that point is just a wrapper around tar (see the man page), so I would assume it would do the right thing in any case.
-Steven
[Prev in Thread] | Current Thread | [Next in Thread] |