From: Theodore Tso Date: Thu, 27 Sep 2007 22:52:18 GMT Subject: Re: Mergetool generating blank files (1.5.3) Message-ID: <20070927225218.GD8688@thunk.org> In-Reply-To: <94ccbe710709271523s7e4c7a1dh53e34bd460c31d1f@mail.gmail.com> On Thu, Sep 27, 2007 at 03:23:44PM -0700, Kelvie Wong wrote: > Finally got it to work. emacs (at least the version I'm using, > 22.1.1) seems to set the $PWD via its first argument, that is, > $LOCAL's directory, and when it goes to save, it tries to save $path > on top of that. It's not that emacs sets $PWD via its first argument, but the output file is passed from emerge-files*-command to stashed in the per-buffer variable emerge-file-out, which in turn gets passed to the emacs lisp file write-file, which is what gets run when you run C-x C-w --- and write-file interprets a relative pathname based on the containing directory of the existing buffer. > The updated patch above would be just to use the basename, that is, if > it is certain that $LOCAL and $path will always reside in the same > directory -- and I believe, but am not certain, that this is the case. > Also, I am not sure if this is specific to my version of Emacs, so > perhaps some further testing is required. Yep, I've checked both emacs21 and emacs23-snapshot, and they both use write-file, so this seems to be a long-standing bug (and I would call it that) in emerge.el. So a patch like what you suggested is probably going to be needed. - Ted