emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] switch to file buffer from command line args regardless of `


From: Samer Masterson
Subject: Re: [PATCH] switch to file buffer from command line args regardless of `initial-buffer-choice'
Date: Wed, 5 Aug 2015 13:46:06 -0700

The patch below works for me. I think the formatting is off because we're using spaces instead of tabs for indentation now. Do you want to test and install it? Otherwise, I can do that later tonight.

Thanks,
Samer


    Modified   lisp/startup.el
diff --git a/lisp/startup.el b/lisp/startup.el
index cfe2269..40f8be8 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -2160,9 +2160,12 @@ A fancy display is used on graphic displays, normal otherwise."
   ;; which includes files parsed from the command line arguments and
   ;; `initial-buffer-choice'.  All of the display logic happens at the
   ;; end of this `let'.  As files as processed from the command line
-  ;; arguments, their buffers are prepended to `displayable-buffers'
-  ;; but they are not displayed until command line parsing has
-  ;; finished.
+  ;; arguments, their buffers are prepended to `displayable-buffers'.
+  ;; In order for options like "--eval" to work with the "--file" arg,
+  ;; the file buffers are switched to as they are seen on the command
+  ;; line (so "emacs --file a --file b --eval='(message "%s"
+  ;; (buffer-name))'" will print "b"), but this does not affect the
+  ;; final displayed state of the buffers.
   (let ((displayable-buffers nil))
     ;; This `let' processes the command line arguments.
     (let ((command-line-args-left args-left))
@@ -2194,10 +2197,10 @@ A fancy display is used on graphic displays, normal otherwise."
                (line 0)
                (column 0)
                ;; `process-file-arg' opens a file buffer for `name'
-               ;; without switching to the buffer, adds the buffer to
-               ;; `displayable-buffers', and puts the point at
-               ;; `line':`column'. `line' and `column' are both reset
-               ;; to zero when `process-file-arg' returns.
+               ;; and adds the buffer to `displayable-buffers', and
+               ;; puts the point at `line':`column'. `line' and
+               ;; `column' are both reset to zero when
+               ;; `process-file-arg' returns.
                (process-file-arg
                 (lambda (name)
           ;; This can only happen if PWD is deleted.
@@ -2207,7 +2210,9 @@ nil default-directory" name)
             (let* ((file (expand-file-name
                   (command-line-normalize-file-name name)
                   dir))
-               (buf (find-file-noselect file)))
+                           ;; Call `find-file' instead of `find-file-noselect'
+                           ;; so that the file buffer can be used with "--eval".
+                           (buf (find-file file)))
               (setq displayable-buffers (cons buf displayable-buffers))
               (with-current-buffer buf
             (unless (zerop line)



On Wed, Aug 5, 2015 at 1:37 PM, Rasmus <address@hidden> wrote:
Samer Masterson <address@hidden> writes:

> The issue here is that my patch uses `find-file-noselect' on the arg for
> --file and delays switching to the file buffer to the end of the function,
> but all of the other commands, like --eval, execute immediately... My first
> reaction is to use `find-file' instead of `find-file-noselect', so that the
> "found" file is selected immediately, and then have the display logic at
> the end, which may be redundant if there is only a single displayable
> buffer. I'll submit a patch later today.

I actually tried to change it to find-file in my local version of the
file, but it didn't solve the problem.  But perhaps I forgot to
byte-compile it.

Let me know.

Thanks,
Rasmus

--
Evidence suggests Snowden used a powerful tool called monospaced fonts


reply via email to

[Prev in Thread] Current Thread [Next in Thread]