From 335aff3569f789464324c675e369d0073be66819 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Thu, 22 Mar 2012 15:06:03 -0400 Subject: [PATCH] Use bzr status --no-classify when supported (bug#6724) * lisp/vc/vc-bzr.el (vc-bzr-status-switches): New option. (vc-bzr-command): If running "status", pass vc-bzr-status-switches. --- lisp/ChangeLog | 5 +++++ lisp/vc/vc-bzr.el | 26 ++++++++++++++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 488d9d4229..f0d01df98a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-03-22 Glenn Morris + + * 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 * net/network-stream.el (network-stream-open-starttls): Make error diff --git a/lisp/vc/vc-bzr.el b/lisp/vc/vc-bzr.el index 9f35fc8f03..0c1e07d44c 100644 --- a/lisp/vc/vc-bzr.el +++ b/lisp/vc/vc-bzr.el @@ -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. -- 2.20.1