mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-06 06:20:55 -08:00
Add support for arguments in emacsclient's ALTERNATE_EDITOR (Bug #25082)
* lib-src/emacsclient.c (fail): Parse ALTERNATE_EDITOR, or corresponding command-line argument, into quote- or space-separated tokens. If a token starts with a quote, then it naturally is expected to end with a quote; escaping is not supported. This is enough to cope with the typical case of requiring the initial path to be quoted, common on Windows where it may contain spaces. * etc/NEWS: Document. * doc/emacs/misc.texi: Likewise. * doc/man/emacsclient.1: Tweak to remove the implication that only an editor can be specified (the manual already mentions a “command”). Fix a small error where “EDITOR” is referred to rather than “ALTERNATE_EDITOR”. * test/lib-src/emacsclient-tests.el: Add tests.
This commit is contained in:
parent
dc313922d8
commit
98f01a13a3
5 changed files with 129 additions and 22 deletions
50
test/lib-src/emacsclient-tests.el
Normal file
50
test/lib-src/emacsclient-tests.el
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
;;; emacsclient-tests.el --- Test emacsclient
|
||||
|
||||
;; Copyright (C) 2016 Free Software Foundation, Inc.
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;;
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'ert)
|
||||
|
||||
(defconst emacsclient-test-emacs
|
||||
(expand-file-name "emacsclient" (concat
|
||||
(file-name-directory
|
||||
(directory-file-name
|
||||
(file-name-directory invocation-directory)))
|
||||
"lib-src"))
|
||||
"Path to emacsclient binary in build tree.")
|
||||
|
||||
(ert-deftest emacsclient-test-alternate-editor-allows-arguments ()
|
||||
(let (process-environment process-environment)
|
||||
(setenv "ALTERNATE_EDITOR" (concat
|
||||
(expand-file-name invocation-name invocation-directory)
|
||||
" --batch"))
|
||||
(should (= 0 (call-process emacsclient-test-emacs nil nil nil "foo")))))
|
||||
|
||||
(ert-deftest emacsclient-test-alternate-editor-allows-quotes ()
|
||||
(let (process-environment process-environment)
|
||||
(setenv "ALTERNATE_EDITOR" (concat
|
||||
"\""
|
||||
(expand-file-name invocation-name invocation-directory)
|
||||
"\"" " --batch"))
|
||||
(should (= 0 (call-process emacsclient-test-emacs nil nil nil "foo")))))
|
||||
|
||||
(provide 'emacsclient-tests)
|
||||
;;; emacsclient-tests.el ends here
|
||||
Loading…
Add table
Add a link
Reference in a new issue