Use bzr status --no-classify when supported (bug#6724)
authorGlenn Morris <rgm@gnu.org>
Thu, 22 Mar 2012 19:06:03 +0000 (15:06 -0400)
committerGlenn Morris <rgm@gnu.org>
Thu, 22 Mar 2012 19:06:03 +0000 (15:06 -0400)
* lisp/vc/vc-bzr.el (vc-bzr-status-switches): New option.
(vc-bzr-command): If running "status", pass vc-bzr-status-switches.

lisp/ChangeLog
lisp/vc/vc-bzr.el

index 488d9d4..f0d01df 100644 (file)
@@ -1,3 +1,8 @@
+2012-03-22  Glenn Morris  <rgm@gnu.org>
+
+       * vc/vc-bzr.el (vc-bzr-status-switches): New option.  (Bug#6724)
+       (vc-bzr-command): If running "status", pass vc-bzr-status-switches.
+
 2012-03-22  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * net/network-stream.el (network-stream-open-starttls): Make error
index 9f35fc8..0c1e07d 100644 (file)
@@ -89,18 +89,40 @@ If nil, use the value of `vc-diff-switches'.  If t, use no switches."
                  (repeat :tag "Argument List" :value ("") string))
   :group 'vc-bzr)
 
+(defcustom vc-bzr-status-switches
+  (ignore-errors
+    (with-temp-buffer
+      (call-process vc-bzr-program nil t nil "help" "status")
+      (goto-char (point-min))
+      (if (search-forward "--no-classify")
+          "--no-classify")))
+  "String or list of strings specifying switches for bzr status under VC.
+The option \"--no-classify\" should be present if your bzr supports it."
+  :type '(choice (const :tag "None" nil)
+                 (string :tag "Argument String")
+                 (repeat :tag "Argument List" :value ("") string))
+  :group 'vc-bzr
+  :version "24.1")
+
 ;; since v0.9, bzr supports removing the progress indicators
 ;; by setting environment variable BZR_PROGRESS_BAR to "none".
 (defun vc-bzr-command (bzr-command buffer okstatus file-or-list &rest args)
   "Wrapper round `vc-do-command' using `vc-bzr-program' as COMMAND.
 Invoke the bzr command adding `BZR_PROGRESS_BAR=none' and
-`LC_MESSAGES=C' to the environment."
+`LC_MESSAGES=C' to the environment.  If BZR-COMMAND is \"status\",
+prepends `vc-bzr-status-switches' to ARGS."
   (let ((process-environment
          (list* "BZR_PROGRESS_BAR=none" ; Suppress progress output (bzr >=0.9)
                 "LC_MESSAGES=C"         ; Force English output
                 process-environment)))
     (apply 'vc-do-command (or buffer "*vc*") okstatus vc-bzr-program
-           file-or-list bzr-command args)))
+           file-or-list bzr-command
+           (if (string-equal "status" bzr-command)
+               (append (if (stringp vc-bzr-status-switches)
+                           (list vc-bzr-status-switches)
+                         vc-bzr-status-switches)
+                       args)
+             args))))
 
 (defun vc-bzr-async-command (bzr-command &rest args)
   "Wrapper round `vc-do-async-command' using `vc-bzr-program' as COMMAND.