comparison lisp/cvs-status.el @ 89943:4c90ffeb71c5

Revision: miles@gnu.org--gnu-2004/emacs--unicode--0--patch-15 Merge from emacs--cvs-trunk--0 Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-218 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-220 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-221 Restore deleted tagline in etc/TUTORIAL.ru * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-222 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-228 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-229 Remove TeX output files from the archive * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-230 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-247 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-248 src/lisp.h (CYCLE_CHECK): Macro moved from xfaces.c * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-249 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-256 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-258 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-263 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-264 Update from CVS: lispref/display.texi: emacs -> Emacs. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-265 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-274 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-275 Update from CVS: man/makefile.w32-in: Revert last change * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-276 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-295 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-296 Allow restarting an existing debugger session that's exited * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-297 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-299 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-300 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-327 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-328 Update from CVS: src/.gdbinit (xsymbol): Fix last change. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-329 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-344 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-345 Tweak source regexps so that building in place won't cause problems * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-346 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-351 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-352 Update from CVS: lisp/flymake.el: New file. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-353 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-361 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-362 Support " [...]" style defaults in minibuffer-electric-default-mode * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-363 (read-number): Use canonical format for default in prompt. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-364 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-367 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-368 Improve display-supports-face-attributes-p on non-ttys * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-369 Rewrite face-differs-from-default-p * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-370 Move `display-supports-face-attributes-p' entirely into C code * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-371 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-372 Simplify face-differs-from-default-p; don't consider :stipple. * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-373 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-374 (tty_supports_face_attributes_p): Ensure attributes differ from default * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-375 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-376 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-377 (Fdisplay_supports_face_attributes_p): Work around bootstrapping problem * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-378 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-380 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-381 Face merging cleanups * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-382 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-384 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-385 src/xfaces.c (push_named_merge_point): Return 0 if a cycle is detected * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-386 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-395 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-396 Tweak arch tagging to make build/install-in-place less annoying * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-397 Work around vc-arch problems when building eshell * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-398 Tweak permissions * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-399 Tweak directory permissions * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-400 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-401 More build-in-place tweaking of arch tagging * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-402 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-403 Yet more build-in-place tweaking of arch tagging * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-404 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-409 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-410 Make sure image types are initialized for lookup too * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-411 - miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-416 Update from CVS
author Miles Bader <miles@gnu.org>
date Mon, 28 Jun 2004 07:56:49 +0000
parents 68c22ea6027c 45bf91de4d41
children d8411455de48
comparison
equal deleted inserted replaced
89942:9cb747ae49af 89943:4c90ffeb71c5
1 ;;; cvs-status.el --- major mode for browsing `cvs status' output 1 ;;; cvs-status.el --- major mode for browsing `cvs status' output -*- coding: utf-8 -*-
2 2
3 ;; Copyright (C) 1999, 2000, 03, 2004 Free Software Foundation, Inc. 3 ;; Copyright (C) 1999, 2000, 03, 2004 Free Software Foundation, Inc.
4 4
5 ;; Author: Stefan Monnier <monnier@cs.yale.edu> 5 ;; Author: Stefan Monnier <monnier@cs.yale.edu>
6 ;; Keywords: pcl-cvs cvs status tree tools 6 ;; Keywords: pcl-cvs cvs status tree tools
275 (cons (cons (cvs-tag-merge tag1 tag2) 275 (cons (cons (cvs-tag-merge tag1 tag2)
276 (cvs-tree-merge (cvs-cdr rev1) (cvs-cdr rev2))) 276 (cvs-tree-merge (cvs-cdr rev1) (cvs-cdr rev2)))
277 (cvs-tree-merge (cdr tree1) (cdr tree2)))))) 277 (cvs-tree-merge (cdr tree1) (cdr tree2))))))
278 ((> l1 l2) 278 ((> l1 l2)
279 (cvs-tree-merge 279 (cvs-tree-merge
280 (list (cons (cvs-tag-make (cvs-butlast vl1)) tree1)) tree2)) 280 (list (cons (cvs-tag-make (butlast vl1)) tree1)) tree2))
281 ((< l1 l2) 281 ((< l1 l2)
282 (cvs-tree-merge 282 (cvs-tree-merge
283 tree1 (list (cons (cvs-tag-make (cvs-butlast vl2)) tree2))))))))) 283 tree1 (list (cons (cvs-tag-make (butlast vl2)) tree2)))))))))
284 284
285 (defun cvs-tag-make-tag (tag) 285 (defun cvs-tag-make-tag (tag)
286 (let ((vl (mapcar 'string-to-number (split-string (nth 2 tag) "\\.")))) 286 (let ((vl (mapcar 'string-to-number (split-string (nth 2 tag) "\\."))))
287 (cvs-tag-make vl (nth 0 tag) (intern (nth 1 tag))))) 287 (cvs-tag-make vl (nth 0 tag) (intern (nth 1 tag)))))
288 288
291 (let ((tags 291 (let ((tags
292 (mapcar 292 (mapcar
293 (lambda (tag) 293 (lambda (tag)
294 (let ((tag (cvs-tag-make-tag tag))) 294 (let ((tag (cvs-tag-make-tag tag)))
295 (list (if (not (eq (cvs-tag->type tag) 'branch)) tag 295 (list (if (not (eq (cvs-tag->type tag) 'branch)) tag
296 (list (cvs-tag-make (cvs-butlast (cvs-tag->vlist tag))) 296 (list (cvs-tag-make (butlast (cvs-tag->vlist tag)))
297 tag))))) 297 tag)))))
298 tags))) 298 tags)))
299 (while (cdr tags) 299 (while (cdr tags)
300 (let (tl) 300 (let (tl)
301 (while tags 301 (while tags
382 382
383 ;;;; 383 ;;;;
384 ;;;; CVSTree-style trees 384 ;;;; CVSTree-style trees
385 ;;;; 385 ;;;;
386 386
387 (defvar cvs-tree-use-jisx0208 387 (defvar cvs-tree-use-jisx0208 nil) ;Old compat var.
388 (and (char-displayable-p (make-char 'japanese-jisx0208 40 44)) t) 388 (defvar cvs-tree-use-charset
389 (cond
390 (cvs-tree-use-jisx0208 'jisx0208)
391 ((char-displayable-p ?━) 'unicode)
392 ((char-displayable-p (make-char 'japanese-jisx0208 40 44)) 'jisx0208))
389 "*Non-nil if we should use the graphical glyphs from `japanese-jisx0208'. 393 "*Non-nil if we should use the graphical glyphs from `japanese-jisx0208'.
390 Otherwise, default to ASCII chars like +, - and |.") 394 Otherwise, default to ASCII chars like +, - and |.")
391 395
392 (defconst cvs-tree-char-space 396 (defconst cvs-tree-char-space
393 (if cvs-tree-use-jisx0208 (make-char 'japanese-jisx0208 33 33) " ")) 397 (case cvs-tree-use-charset
398 (jisx0208 (make-char 'japanese-jisx0208 33 33))
399 (unicode " ")
400 (t " ")))
394 (defconst cvs-tree-char-hbar 401 (defconst cvs-tree-char-hbar
395 (if cvs-tree-use-jisx0208 (make-char 'japanese-jisx0208 40 44) "--")) 402 (case cvs-tree-use-charset
403 (jisx0208 (make-char 'japanese-jisx0208 40 44))
404 (unicode "━")
405 (t "--")))
396 (defconst cvs-tree-char-vbar 406 (defconst cvs-tree-char-vbar
397 (if cvs-tree-use-jisx0208 (make-char 'japanese-jisx0208 40 45) "| ")) 407 (case cvs-tree-use-charset
408 (jisx0208 (make-char 'japanese-jisx0208 40 45))
409 (unicode "┃")
410 (t "| ")))
398 (defconst cvs-tree-char-branch 411 (defconst cvs-tree-char-branch
399 (if cvs-tree-use-jisx0208 (make-char 'japanese-jisx0208 40 50) "+-")) 412 (case cvs-tree-use-charset
413 (jisx0208 (make-char 'japanese-jisx0208 40 50))
414 (unicode "┣")
415 (t "+-")))
400 (defconst cvs-tree-char-eob ;end of branch 416 (defconst cvs-tree-char-eob ;end of branch
401 (if cvs-tree-use-jisx0208 (make-char 'japanese-jisx0208 40 49) "`-")) 417 (case cvs-tree-use-charset
418 (jisx0208 (make-char 'japanese-jisx0208 40 49))
419 (unicode "┗")
420 (t "`-")))
402 (defconst cvs-tree-char-bob ;beginning of branch 421 (defconst cvs-tree-char-bob ;beginning of branch
403 (if cvs-tree-use-jisx0208 (make-char 'japanese-jisx0208 40 51) "+-")) 422 (case cvs-tree-use-charset
423 (jisx0208 (make-char 'japanese-jisx0208 40 51))
424 (unicode "┳")
425 (t "+-")))
404 426
405 (defun cvs-tag-lessp (tag1 tag2) 427 (defun cvs-tag-lessp (tag1 tag2)
406 (eq (cvs-tag-compare tag1 tag2) 'more2)) 428 (eq (cvs-tag-compare tag1 tag2) 'more2))
407 429
408 (defvar cvs-tree-nomerge nil) 430 (defvar cvs-tree-nomerge nil)
409 431
410 (defun cvs-status-cvstrees (&optional arg) 432 (defun cvs-status-cvstrees (&optional arg)
411 "Look for a list of tags, and replace it with a tree. 433 "Look for a list of tags, and replace it with a tree.
412 Optional prefix ARG chooses between two representations." 434 Optional prefix ARG chooses between two representations."
413 (interactive "P") 435 (interactive "P")
414 (when (and cvs-tree-use-jisx0208 436 (when (and cvs-tree-use-charset
415 (not enable-multibyte-characters)) 437 (not enable-multibyte-characters))
416 ;; We need to convert the buffer from unibyte to multibyte 438 ;; We need to convert the buffer from unibyte to multibyte
417 ;; since we'll use multibyte chars for the tree. 439 ;; since we'll use multibyte chars for the tree.
418 (let ((modified (buffer-modified-p)) 440 (let ((modified (buffer-modified-p))
419 (inhibit-read-only t) 441 (inhibit-read-only t)