summaryrefslogtreecommitdiff
path: root/lisp/cvs-status.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/cvs-status.el')
-rw-r--r--lisp/cvs-status.el48
1 files changed, 35 insertions, 13 deletions
diff --git a/lisp/cvs-status.el b/lisp/cvs-status.el
index 528ab74e509..b03182d87e4 100644
--- a/lisp/cvs-status.el
+++ b/lisp/cvs-status.el
@@ -1,4 +1,4 @@
-;;; cvs-status.el --- major mode for browsing `cvs status' output
+;;; cvs-status.el --- major mode for browsing `cvs status' output -*- coding: utf-8 -*-
;; Copyright (C) 1999, 2000, 03, 2004 Free Software Foundation, Inc.
@@ -277,10 +277,10 @@ BEWARE: because of stability issues, this is not a symetric operation."
(cvs-tree-merge (cdr tree1) (cdr tree2))))))
((> l1 l2)
(cvs-tree-merge
- (list (cons (cvs-tag-make (cvs-butlast vl1)) tree1)) tree2))
+ (list (cons (cvs-tag-make (butlast vl1)) tree1)) tree2))
((< l1 l2)
(cvs-tree-merge
- tree1 (list (cons (cvs-tag-make (cvs-butlast vl2)) tree2)))))))))
+ tree1 (list (cons (cvs-tag-make (butlast vl2)) tree2)))))))))
(defun cvs-tag-make-tag (tag)
(let ((vl (mapcar 'string-to-number (split-string (nth 2 tag) "\\."))))
@@ -293,7 +293,7 @@ BEWARE: because of stability issues, this is not a symetric operation."
(lambda (tag)
(let ((tag (cvs-tag-make-tag tag)))
(list (if (not (eq (cvs-tag->type tag) 'branch)) tag
- (list (cvs-tag-make (cvs-butlast (cvs-tag->vlist tag)))
+ (list (cvs-tag-make (butlast (cvs-tag->vlist tag)))
tag)))))
tags)))
(while (cdr tags)
@@ -384,23 +384,45 @@ the list is a three-string list TAG, KIND, REV."
;;;; CVSTree-style trees
;;;;
-(defvar cvs-tree-use-jisx0208
- (and (char-displayable-p (make-char 'japanese-jisx0208 40 44)) t)
+(defvar cvs-tree-use-jisx0208 nil) ;Old compat var.
+(defvar cvs-tree-use-charset
+ (cond
+ (cvs-tree-use-jisx0208 'jisx0208)
+ ((char-displayable-p ?━) 'unicode)
+ ((char-displayable-p (make-char 'japanese-jisx0208 40 44)) 'jisx0208))
"*Non-nil if we should use the graphical glyphs from `japanese-jisx0208'.
Otherwise, default to ASCII chars like +, - and |.")
(defconst cvs-tree-char-space
- (if cvs-tree-use-jisx0208 (make-char 'japanese-jisx0208 33 33) " "))
+ (case cvs-tree-use-charset
+ (jisx0208 (make-char 'japanese-jisx0208 33 33))
+ (unicode " ")
+ (t " ")))
(defconst cvs-tree-char-hbar
- (if cvs-tree-use-jisx0208 (make-char 'japanese-jisx0208 40 44) "--"))
+ (case cvs-tree-use-charset
+ (jisx0208 (make-char 'japanese-jisx0208 40 44))
+ (unicode "━")
+ (t "--")))
(defconst cvs-tree-char-vbar
- (if cvs-tree-use-jisx0208 (make-char 'japanese-jisx0208 40 45) "| "))
+ (case cvs-tree-use-charset
+ (jisx0208 (make-char 'japanese-jisx0208 40 45))
+ (unicode "┃")
+ (t "| ")))
(defconst cvs-tree-char-branch
- (if cvs-tree-use-jisx0208 (make-char 'japanese-jisx0208 40 50) "+-"))
+ (case cvs-tree-use-charset
+ (jisx0208 (make-char 'japanese-jisx0208 40 50))
+ (unicode "┣")
+ (t "+-")))
(defconst cvs-tree-char-eob ;end of branch
- (if cvs-tree-use-jisx0208 (make-char 'japanese-jisx0208 40 49) "`-"))
+ (case cvs-tree-use-charset
+ (jisx0208 (make-char 'japanese-jisx0208 40 49))
+ (unicode "┗")
+ (t "`-")))
(defconst cvs-tree-char-bob ;beginning of branch
- (if cvs-tree-use-jisx0208 (make-char 'japanese-jisx0208 40 51) "+-"))
+ (case cvs-tree-use-charset
+ (jisx0208 (make-char 'japanese-jisx0208 40 51))
+ (unicode "┳")
+ (t "+-")))
(defun cvs-tag-lessp (tag1 tag2)
(eq (cvs-tag-compare tag1 tag2) 'more2))
@@ -411,7 +433,7 @@ Otherwise, default to ASCII chars like +, - and |.")
"Look for a list of tags, and replace it with a tree.
Optional prefix ARG chooses between two representations."
(interactive "P")
- (when (and cvs-tree-use-jisx0208
+ (when (and cvs-tree-use-charset
(not enable-multibyte-characters))
;; We need to convert the buffer from unibyte to multibyte
;; since we'll use multibyte chars for the tree.