X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/ed7f1a6c5caaf4159125c08db5d18c5471fdd032..170266d096bc4d0952bee907532d14503e882bf6:/lisp/eshell/esh-arg.el diff --git a/lisp/eshell/esh-arg.el b/lisp/eshell/esh-arg.el index 1fb8b7f4c3..e3a12d5ece 100644 --- a/lisp/eshell/esh-arg.el +++ b/lisp/eshell/esh-arg.el @@ -1,6 +1,6 @@ ;;; esh-arg.el --- argument processing -;; Copyright (C) 1999-2011 Free Software Foundation, Inc. +;; Copyright (C) 1999-2013 Free Software Foundation, Inc. ;; Author: John Wiegley @@ -27,7 +27,7 @@ (provide 'esh-arg) -(eval-when-compile (require 'eshell)) +(require 'esh-mode) (defgroup eshell-arg nil "Argument parsing involves transforming the arguments passed on the @@ -202,6 +202,18 @@ If POS is nil, the location of point is checked." (or (= pos (point-max)) (memq (char-after pos) eshell-delimiter-argument-list)))) +(defun eshell-quote-argument (string) + "Return STRING with magic characters quoted. +Magic characters are those in `eshell-special-chars-outside-quoting'." + (let ((index 0)) + (mapconcat (lambda (c) + (prog1 + (or (eshell-quote-backslash string index) + (char-to-string c)) + (setq index (1+ index)))) + string + ""))) + ;; Argument parsing (defun eshell-parse-arguments (beg end) @@ -266,7 +278,7 @@ Point is left at the end of the arguments." (eshell-resolve-current-argument) eshell-current-argument)) -(defsubst eshell-operator (&rest args) +(defsubst eshell-operator (&rest _args) "A stub function that generates an error if a floating operator is found." (error "Unhandled operator in input text")) @@ -311,7 +323,7 @@ special character that is not itself a backslash." (char-to-string (char-before)))) ;; allow \\ to mean a literal "\" character followed by a ;; normal return, rather than a backslash followed by a line - ;; continuator (i.e., "\\ + \n" rather than "\ + \\n"). This + ;; continuation (i.e., "\\ + \n" rather than "\ + \\n"). This ;; is necessary because backslashes in Eshell are not special ;; unless they either precede something special, or precede a ;; backslash that precedes something special. (Mainly this is