Mercurial > emacs
annotate lisp/pcvs-util.el @ 72550:666bd542be19
(get_window_cursor_type): Replace BOX cursor on images
with a hollow box cursor if image is larger than 32x32 (or the default
frame font if that is bigger). Replace any other cursor on images
with hollow box cursor, as redisplay doesn't support bar and hbar
cursors on images.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Sun, 27 Aug 2006 22:23:07 +0000 |
parents | 63a604af4b8e |
children | e3694f1cb928 858cb33ae39d |
rev | line source |
---|---|
38422
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
37338
diff
changeset
|
1 ;;; pcvs-util.el --- utility functions for PCL-CVS -*- byte-compile-dynamic: t -*- |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
2 |
56956
14b1949ce3d4
(cvs-string-prefix-p): Use compare-strings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
55791
diff
changeset
|
3 ;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, |
68651
3bd95f4f2941
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64762
diff
changeset
|
4 ;; 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
5 |
70292
2b77fa42947f
Update my email address.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
69746
diff
changeset
|
6 ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
7 ;; Keywords: pcl-cvs |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
8 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
9 ;; This file is part of GNU Emacs. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
10 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
11 ;; GNU Emacs is free software; you can redistribute it and/or modify |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
12 ;; it under the terms of the GNU General Public License as published by |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
13 ;; the Free Software Foundation; either version 2, or (at your option) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
14 ;; any later version. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
15 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
16 ;; GNU Emacs is distributed in the hope that it will be useful, |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
19 ;; GNU General Public License for more details. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
20 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
21 ;; You should have received a copy of the GNU General Public License |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
22 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
64091 | 23 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
24 ;; Boston, MA 02110-1301, USA. | |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
25 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
26 ;;; Commentary: |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
27 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
28 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
29 ;;; Code: |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
30 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
31 (eval-when-compile (require 'cl)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
32 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
33 ;;;; |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
34 ;;;; list processing |
33229
c76308387eec
(cvs-butlast, cvs-nbutlast): New (copied from CL).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30618
diff
changeset
|
35 ;;;; |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
36 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
37 (defsubst cvs-car (x) (if (consp x) (car x) x)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
38 (defalias 'cvs-cdr 'cdr-safe) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
39 (defsubst cvs-append (&rest xs) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
40 (apply 'append (mapcar (lambda (x) (if (listp x) x (list x))) xs))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
41 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
42 (defsubst cvs-every (-cvs-every-f -cvs-every-l) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
43 (while (consp -cvs-every-l) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
44 (unless (funcall -cvs-every-f (pop -cvs-every-l)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
45 (setq -cvs-every-l t))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
46 (not -cvs-every-l)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
47 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
48 (defun cvs-union (xs ys) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
49 (let ((zs ys)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
50 (dolist (x xs zs) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
51 (unless (member x ys) (push x zs))))) |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
42205
diff
changeset
|
52 |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
53 (defun cvs-map (-cvs-map-f &rest -cvs-map-ls) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
54 (unless (cvs-every 'null -cvs-map-ls) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
55 (cons (apply -cvs-map-f (mapcar 'car -cvs-map-ls)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
56 (apply 'cvs-map -cvs-map-f (mapcar 'cdr -cvs-map-ls))))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
57 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
58 (defun cvs-first (l &optional n) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
59 (if (null n) (car l) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
60 (when l |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
61 (let* ((nl (list (pop l))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
62 (ret nl)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
63 (while (and l (> n 1)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
64 (setcdr nl (list (pop l))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
65 (setq nl (cdr nl)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
66 (decf n)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
67 ret)))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
68 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
69 (defun cvs-partition (p l) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
70 "Partition a list L into two lists based on predicate P. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
71 The function returns a `cons' cell where the `car' contains |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
72 elements of L for which P is true while the `cdr' contains |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
73 the other elements. The ordering among elements is maintained." |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
74 (let (car cdr) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
75 (dolist (x l) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
76 (if (funcall p x) (push x car) (push x cdr))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
77 (cons (nreverse car) (nreverse cdr)))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
78 |
34407
bcedf6eef407
Minor doc/comment changes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
34304
diff
changeset
|
79 ;;; |
bcedf6eef407
Minor doc/comment changes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
34304
diff
changeset
|
80 ;;; frame, window, buffer handling |
bcedf6eef407
Minor doc/comment changes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
34304
diff
changeset
|
81 ;;; |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
82 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
83 (defun cvs-pop-to-buffer-same-frame (buf) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
84 "Pop to BUF like `pop-to-buffer' but staying on the same frame. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
85 If `pop-to-buffer' would have opened a new frame, this function would |
34407
bcedf6eef407
Minor doc/comment changes.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
34304
diff
changeset
|
86 try to split a new window instead." |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
87 (let ((pop-up-windows (or pop-up-windows pop-up-frames)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
88 (pop-up-frames nil)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
89 (or (let ((buf (get-buffer-window buf))) (and buf (select-window buf))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
90 (and pop-up-windows |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
91 (ignore-errors (select-window (split-window-vertically))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
92 (switch-to-buffer buf)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
93 (pop-to-buffer (current-buffer))))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
94 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
95 (defun cvs-bury-buffer (buf &optional mainbuf) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
96 "Hide the buffer BUF that was temporarily popped up. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
97 BUF is assumed to be a temporary buffer used from the buffer MAINBUF." |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
98 (interactive (list (current-buffer))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
99 (save-current-buffer |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
100 (let ((win (if (eq buf (window-buffer (selected-window))) (selected-window) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
101 (get-buffer-window buf t)))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
102 (when win |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
103 (if (window-dedicated-p win) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
104 (condition-case () |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
105 (delete-window win) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
106 (error (iconify-frame (window-frame win)))) |
57528
c39903008a0d
(cvs-bury-buffer): Don't call get-buffer-window for effect.
Richard M. Stallman <rms@gnu.org>
parents:
56956
diff
changeset
|
107 ;;; (if (and mainbuf (get-buffer-window mainbuf)) |
c39903008a0d
(cvs-bury-buffer): Don't call get-buffer-window for effect.
Richard M. Stallman <rms@gnu.org>
parents:
56956
diff
changeset
|
108 ;;; ;; FIXME: if the buffer popped into a pre-existing window, |
c39903008a0d
(cvs-bury-buffer): Don't call get-buffer-window for effect.
Richard M. Stallman <rms@gnu.org>
parents:
56956
diff
changeset
|
109 ;;; ;; we don't want to delete that window. |
c39903008a0d
(cvs-bury-buffer): Don't call get-buffer-window for effect.
Richard M. Stallman <rms@gnu.org>
parents:
56956
diff
changeset
|
110 ;;; t ;;(delete-window win) |
c39903008a0d
(cvs-bury-buffer): Don't call get-buffer-window for effect.
Richard M. Stallman <rms@gnu.org>
parents:
56956
diff
changeset
|
111 ;;; ) |
c39903008a0d
(cvs-bury-buffer): Don't call get-buffer-window for effect.
Richard M. Stallman <rms@gnu.org>
parents:
56956
diff
changeset
|
112 ))) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
113 (with-current-buffer buf |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
114 (bury-buffer (unless (and (eq buf (window-buffer (selected-window))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
115 (not (window-dedicated-p (selected-window)))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
116 buf))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
117 (when mainbuf |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
118 (let ((mainwin (or (get-buffer-window mainbuf) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
119 (get-buffer-window mainbuf 'visible)))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
120 (when mainwin (select-window mainwin)))))) |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
42205
diff
changeset
|
121 |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
122 (defun cvs-get-buffer-create (name &optional noreuse) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
123 "Create a buffer NAME unless such a buffer already exists. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
124 If the NAME looks like an absolute file name, the buffer will be created |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
125 with `create-file-buffer' and will probably get another name than NAME. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
126 In such a case, the search for another buffer with the same name doesn't |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
127 use the buffer name but the buffer's `list-buffers-directory' variable. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
128 If NOREUSE is non-nil, always return a new buffer." |
72244
63a604af4b8e
(cvs-get-buffer-create): Obey `noreuse' even if `name'
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70292
diff
changeset
|
129 (or (and (not (file-name-absolute-p name)) |
63a604af4b8e
(cvs-get-buffer-create): Obey `noreuse' even if `name'
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70292
diff
changeset
|
130 (if noreuse (generate-new-buffer name) |
63a604af4b8e
(cvs-get-buffer-create): Obey `noreuse' even if `name'
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
70292
diff
changeset
|
131 (get-buffer-create name))) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
132 (unless noreuse |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
133 (dolist (buf (buffer-list)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
134 (with-current-buffer buf |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
135 (when (equal name list-buffers-directory) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
136 (return buf))))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
137 (with-current-buffer (create-file-buffer name) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
138 (set (make-local-variable 'list-buffers-directory) name) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
139 (current-buffer)))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
140 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
141 ;;;; |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
142 ;;;; string processing |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
143 ;;;; |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
144 |
33229
c76308387eec
(cvs-butlast, cvs-nbutlast): New (copied from CL).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30618
diff
changeset
|
145 (defun cvs-insert-strings (strings) |
c76308387eec
(cvs-butlast, cvs-nbutlast): New (copied from CL).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30618
diff
changeset
|
146 "Insert a list of STRINGS into the current buffer. |
c76308387eec
(cvs-butlast, cvs-nbutlast): New (copied from CL).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30618
diff
changeset
|
147 Uses columns to keep the listing readable but compact." |
c76308387eec
(cvs-butlast, cvs-nbutlast): New (copied from CL).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30618
diff
changeset
|
148 (when (consp strings) |
c76308387eec
(cvs-butlast, cvs-nbutlast): New (copied from CL).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30618
diff
changeset
|
149 (let* ((length (apply 'max (mapcar 'length strings))) |
c76308387eec
(cvs-butlast, cvs-nbutlast): New (copied from CL).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30618
diff
changeset
|
150 (wwidth (1- (window-width))) |
c76308387eec
(cvs-butlast, cvs-nbutlast): New (copied from CL).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30618
diff
changeset
|
151 (columns (min |
c76308387eec
(cvs-butlast, cvs-nbutlast): New (copied from CL).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30618
diff
changeset
|
152 ;; At least 2 columns; at least 2 spaces between columns. |
c76308387eec
(cvs-butlast, cvs-nbutlast): New (copied from CL).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30618
diff
changeset
|
153 (max 2 (/ wwidth (+ 2 length))) |
c76308387eec
(cvs-butlast, cvs-nbutlast): New (copied from CL).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30618
diff
changeset
|
154 ;; Don't allocate more columns than we can fill. |
37338 | 155 ;; Windows can't show less than 3 lines anyway. |
33229
c76308387eec
(cvs-butlast, cvs-nbutlast): New (copied from CL).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30618
diff
changeset
|
156 (max 1 (/ (length strings) 2)))) |
c76308387eec
(cvs-butlast, cvs-nbutlast): New (copied from CL).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30618
diff
changeset
|
157 (colwidth (/ wwidth columns))) |
37338 | 158 ;; Use tab-width rather than indent-to. |
33229
c76308387eec
(cvs-butlast, cvs-nbutlast): New (copied from CL).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30618
diff
changeset
|
159 (setq tab-width colwidth) |
c76308387eec
(cvs-butlast, cvs-nbutlast): New (copied from CL).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30618
diff
changeset
|
160 ;; The insertion should be "sensible" no matter what choices were made. |
c76308387eec
(cvs-butlast, cvs-nbutlast): New (copied from CL).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30618
diff
changeset
|
161 (dolist (str strings) |
69746
768d198de598
(cvs-insert-strings): Fix bug with strings longer than wwidth.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68651
diff
changeset
|
162 (unless (bolp) |
768d198de598
(cvs-insert-strings): Fix bug with strings longer than wwidth.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68651
diff
changeset
|
163 (insert " \t") |
768d198de598
(cvs-insert-strings): Fix bug with strings longer than wwidth.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68651
diff
changeset
|
164 (when (< wwidth (+ (max colwidth (length str)) (current-column))) |
768d198de598
(cvs-insert-strings): Fix bug with strings longer than wwidth.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68651
diff
changeset
|
165 (delete-char -2) (insert "\n"))) |
768d198de598
(cvs-insert-strings): Fix bug with strings longer than wwidth.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68651
diff
changeset
|
166 (insert str))))) |
33229
c76308387eec
(cvs-butlast, cvs-nbutlast): New (copied from CL).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30618
diff
changeset
|
167 |
c76308387eec
(cvs-butlast, cvs-nbutlast): New (copied from CL).
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30618
diff
changeset
|
168 |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
169 (defun cvs-file-to-string (file &optional oneline args) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
170 "Read the content of FILE and return it as a string. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
171 If ONELINE is t, only the first line (no \\n) will be returned. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
172 If ARGS is non-nil, the file will be executed with ARGS as its |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
173 arguments. If ARGS is not a list, no argument will be passed." |
41780
fd46c3fb8ae5
(cvs-file-to-string): Move condition-case outside.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41174
diff
changeset
|
174 (condition-case nil |
fd46c3fb8ae5
(cvs-file-to-string): Move condition-case outside.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41174
diff
changeset
|
175 (with-temp-buffer |
fd46c3fb8ae5
(cvs-file-to-string): Move condition-case outside.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41174
diff
changeset
|
176 (if args |
fd46c3fb8ae5
(cvs-file-to-string): Move condition-case outside.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41174
diff
changeset
|
177 (apply 'call-process |
fd46c3fb8ae5
(cvs-file-to-string): Move condition-case outside.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41174
diff
changeset
|
178 file nil t nil (when (listp args) args)) |
fd46c3fb8ae5
(cvs-file-to-string): Move condition-case outside.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41174
diff
changeset
|
179 (insert-file-contents file)) |
fd46c3fb8ae5
(cvs-file-to-string): Move condition-case outside.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41174
diff
changeset
|
180 (goto-char (point-min)) |
fd46c3fb8ae5
(cvs-file-to-string): Move condition-case outside.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41174
diff
changeset
|
181 (buffer-substring (point) |
fd46c3fb8ae5
(cvs-file-to-string): Move condition-case outside.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41174
diff
changeset
|
182 (if oneline (line-end-position) (point-max)))) |
fd46c3fb8ae5
(cvs-file-to-string): Move condition-case outside.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41174
diff
changeset
|
183 (file-error nil))) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
184 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
185 (defun cvs-string-prefix-p (str1 str2) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
186 "Tell whether STR1 is a prefix of STR2." |
56956
14b1949ce3d4
(cvs-string-prefix-p): Use compare-strings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
55791
diff
changeset
|
187 (eq t (compare-strings str2 nil (length str1) str1 nil nil))) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
188 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
189 ;; (string->strings (strings->string X)) == X |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
190 (defun cvs-strings->string (strings &optional separator) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
191 "Concatenate the STRINGS, adding the SEPARATOR (default \" \"). |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
192 This tries to quote the strings to avoid ambiguity such that |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
193 (cvs-string->strings (cvs-strings->string strs)) == strs |
64545
f227dc7508ad
(cvs-flags-query, cvs-strings->string, cvs-prefix-get): Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents:
64091
diff
changeset
|
194 Only some SEPARATORs will work properly." |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
195 (let ((sep (or separator " "))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
196 (mapconcat |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
197 (lambda (str) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
198 (if (string-match "[\\\"]" str) |
28177 | 199 (concat "\"" (replace-regexp-in-string "[\\\"]" "\\\\\\&" str) "\"") |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
200 str)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
201 strings sep))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
202 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
203 ;; (string->strings (strings->string X)) == X |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
204 (defun cvs-string->strings (string &optional separator) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
205 "Split the STRING into a list of strings. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
206 It understands elisp style quoting within STRING such that |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
207 (cvs-string->strings (cvs-strings->string strs)) == strs |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
208 The SEPARATOR regexp defaults to \"\\s-+\"." |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
209 (let ((sep (or separator "\\s-+")) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
210 (i (string-match "[\"]" string))) |
60591
e1ebbef182c4
(cvs-string->strings): Strip trailing whitespace.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57528
diff
changeset
|
211 (if (null i) (split-string string sep t) ; no quoting: easy |
e1ebbef182c4
(cvs-string->strings): Strip trailing whitespace.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
57528
diff
changeset
|
212 (append (unless (eq i 0) (split-string (substring string 0 i) sep t)) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
213 (let ((rfs (read-from-string string i))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
214 (cons (car rfs) |
41780
fd46c3fb8ae5
(cvs-file-to-string): Move condition-case outside.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41174
diff
changeset
|
215 (cvs-string->strings (substring string (cdr rfs)) |
fd46c3fb8ae5
(cvs-file-to-string): Move condition-case outside.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
41174
diff
changeset
|
216 sep))))))) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
217 |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
42205
diff
changeset
|
218 ;;;; |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
219 ;;;; file names |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
42205
diff
changeset
|
220 ;;;; |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
221 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
222 (defsubst cvs-expand-dir-name (d) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
223 (file-name-as-directory (expand-file-name d))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
224 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
225 ;;;; |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
226 ;;;; (interactive <foo>) support function |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
227 ;;;; |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
228 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
229 (defstruct (cvs-qtypedesc |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
230 (:constructor nil) (:copier nil) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
231 (:constructor cvs-qtypedesc-create |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
232 (str2obj obj2str &optional complete hist-sym require))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
233 str2obj |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
234 obj2str |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
235 hist-sym |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
236 complete |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
237 require) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
238 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
239 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
240 (defconst cvs-qtypedesc-string1 (cvs-qtypedesc-create 'identity 'identity t)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
241 (defconst cvs-qtypedesc-string (cvs-qtypedesc-create 'identity 'identity)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
242 (defconst cvs-qtypedesc-strings |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
243 (cvs-qtypedesc-create 'cvs-string->strings 'cvs-strings->string nil)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
244 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
245 (defun cvs-query-read (default prompt qtypedesc &optional hist-sym) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
246 (let* ((qtypedesc (or qtypedesc cvs-qtypedesc-strings)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
247 (hist-sym (or hist-sym (cvs-qtypedesc-hist-sym qtypedesc))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
248 (complete (cvs-qtypedesc-complete qtypedesc)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
249 (completions (and (functionp complete) (funcall complete))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
250 (initval (funcall (cvs-qtypedesc-obj2str qtypedesc) default))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
251 (funcall (cvs-qtypedesc-str2obj qtypedesc) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
252 (cond |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
253 ((null complete) (read-string prompt initval hist-sym)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
254 ((functionp complete) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
255 (completing-read prompt completions |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
256 nil (cvs-qtypedesc-require qtypedesc) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
257 initval hist-sym)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
258 (t initval))))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
259 |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
42205
diff
changeset
|
260 ;;;; |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
261 ;;;; Flags handling |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
42205
diff
changeset
|
262 ;;;; |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
263 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
264 (defstruct (cvs-flags |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
265 (:constructor nil) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
266 (:constructor -cvs-flags-make |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
267 (desc defaults &optional qtypedesc hist-sym))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
268 defaults persist desc qtypedesc hist-sym) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
269 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
270 (defmacro cvs-flags-define (sym defaults |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
271 &optional desc qtypedesc hist-sym docstring) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
272 `(defconst ,sym |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
273 (let ((bound (boundp ',sym))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
274 (if (and bound (cvs-flags-p ,sym)) ,sym |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
275 (let ((defaults ,defaults)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
276 (-cvs-flags-make ,desc |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
277 (if bound (cons ,sym (cdr defaults)) defaults) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
278 ,qtypedesc ,hist-sym)))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
279 ,docstring)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
280 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
281 (defun cvs-flags-query (sym &optional desc arg) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
282 "Query flags based on SYM. |
64545
f227dc7508ad
(cvs-flags-query, cvs-strings->string, cvs-prefix-get): Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents:
64091
diff
changeset
|
283 Optional argument DESC will be used for the prompt. |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
284 If ARG (or a prefix argument) is nil, just use the 0th default. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
285 If it is a non-negative integer, use the corresponding default. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
286 If it is a negative integer query for a new value of the corresponding |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
287 default and return that new value. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
288 If it is \\[universal-argument], just query and return a value without |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
289 altering the defaults. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
290 If it is \\[universal-argument] \\[universal-argument], behave just |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
291 as if a negative zero was provided." |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
292 (let* ((flags (symbol-value sym)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
293 (desc (or desc (cvs-flags-desc flags))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
294 (qtypedesc (cvs-flags-qtypedesc flags)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
295 (hist-sym (cvs-flags-hist-sym flags)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
296 (arg (if (eq arg 'noquery) 0 (or arg current-prefix-arg 0))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
297 (numarg (prefix-numeric-value arg)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
298 (defaults (cvs-flags-defaults flags)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
299 (permstr (if (< numarg 0) (format " (%sth default)" (- numarg))))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
300 ;; special case for universal-argument |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
301 (when (consp arg) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
302 (setq permstr (if (> numarg 4) " (permanent)" "")) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
303 (setq numarg 0)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
304 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
305 ;; sanity check |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
306 (unless (< (abs numarg) (length defaults)) |
38422
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
37338
diff
changeset
|
307 (error "There is no %sth default" (abs numarg))) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
308 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
309 (if permstr |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
310 (let* ((prompt (format "%s%s: " desc permstr)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
311 (fs (cvs-query-read (nth (- numarg) (cvs-flags-defaults flags)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
312 prompt qtypedesc hist-sym))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
313 (when (not (equal permstr "")) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
314 (setf (nth (- numarg) (cvs-flags-defaults flags)) fs)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
315 fs) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
316 (nth numarg defaults)))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
317 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
318 (defsubst cvs-flags-set (sym index value) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
319 "Set SYM's INDEX'th setting to VALUE." |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
320 (setf (nth index (cvs-flags-defaults (symbol-value sym))) value)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
321 |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
42205
diff
changeset
|
322 ;;;; |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
323 ;;;; Prefix keys |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
42205
diff
changeset
|
324 ;;;; |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
325 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
326 (defconst cvs-prefix-number 10) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
327 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
328 (defsubst cvs-prefix-sym (sym) (intern (concat (symbol-name sym) "-cps"))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
329 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
330 (defmacro cvs-prefix-define (sym docstring desc defaults |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
331 &optional qtypedesc hist-sym) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
332 (let ((cps (cvs-prefix-sym sym))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
333 `(progn |
39542
48d3de634dc8
(cvs-prefix-define): Typo cons->concat.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
38422
diff
changeset
|
334 (defvar ,sym nil ,(concat (or docstring "") " |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
335 See `cvs-prefix-set' for further description of the behavior.")) |
41174
6f2dcaad706b
(cvs-prefix-define): Don't defconst a variable.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
39542
diff
changeset
|
336 (defvar ,cps |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
337 (let ((defaults ,defaults)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
338 ;; sanity ensurance |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
339 (unless (>= (length defaults) cvs-prefix-number) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
340 (setq defaults (append defaults |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
341 (make-list (1- cvs-prefix-number) |
30618
9dd1a6504bdd
Use `nth' instead of `first', `second', and `third'.
Gerd Moellmann <gerd@gnu.org>
parents:
28256
diff
changeset
|
342 (nth 0 defaults))))) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
343 (-cvs-flags-make ,desc defaults ,qtypedesc ,hist-sym)))))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
344 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
345 (defun cvs-prefix-make-local (sym) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
346 (let ((cps (cvs-prefix-sym sym))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
347 (make-local-variable sym) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
348 (set (make-local-variable cps) (copy-cvs-flags (symbol-value cps))))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
349 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
350 (defun cvs-prefix-set (sym arg) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
351 ;; we could distinguish between numeric and non-numeric prefix args instead of |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
352 ;; relying on that magic `4'. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
353 "Set the cvs-prefix contained in SYM. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
354 If ARG is between 0 and 9, it selects the corresponding default. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
355 If ARG is negative (or \\[universal-argument] which corresponds to negative 0), |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
356 it queries the user and sets the -ARG'th default. |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
357 If ARG is greater than 9 (or \\[universal-argument] \\[universal-argument]), |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
358 the (ARG mod 10)'th prefix is made persistent. |
42205 | 359 If ARG is nil toggle the PREFIX's value between its 0th default and nil |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
360 and reset the persistence." |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
361 (let* ((prefix (symbol-value (cvs-prefix-sym sym))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
362 (numarg (if (integerp arg) arg 0)) |
69746
768d198de598
(cvs-insert-strings): Fix bug with strings longer than wwidth.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68651
diff
changeset
|
363 ;; (defs (cvs-flags-defaults prefix)) |
768d198de598
(cvs-insert-strings): Fix bug with strings longer than wwidth.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
68651
diff
changeset
|
364 ) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
365 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
366 ;; set persistence if requested |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
367 (when (> (prefix-numeric-value arg) 9) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
368 (setf (cvs-flags-persist prefix) t) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
369 (setq numarg (mod numarg 10))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
370 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
371 ;; set the value |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
372 (set sym |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
373 (cond |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
374 ((null arg) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
375 (setf (cvs-flags-persist prefix) nil) |
30618
9dd1a6504bdd
Use `nth' instead of `first', `second', and `third'.
Gerd Moellmann <gerd@gnu.org>
parents:
28256
diff
changeset
|
376 (unless (symbol-value sym) (nth 0 (cvs-flags-defaults prefix)))) |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
377 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
378 ((or (consp arg) (< numarg 0)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
379 (setf (nth (- numarg) (cvs-flags-defaults prefix)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
380 (cvs-query-read (nth (- numarg) (cvs-flags-defaults prefix)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
381 (format "%s: " (cvs-flags-desc prefix)) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
382 (cvs-flags-qtypedesc prefix) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
383 (cvs-flags-hist-sym prefix)))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
384 (t (nth numarg (cvs-flags-defaults prefix))))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
385 (force-mode-line-update))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
386 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
387 (defun cvs-prefix-get (sym &optional read-only) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
388 "Return the current value of the prefix SYM. |
64545
f227dc7508ad
(cvs-flags-query, cvs-strings->string, cvs-prefix-get): Fix typos in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents:
64091
diff
changeset
|
389 And reset it unless READ-ONLY is non-nil." |
28088
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
390 (prog1 (symbol-value sym) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
391 (unless (or read-only |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
392 (cvs-flags-persist (symbol-value (cvs-prefix-sym sym)))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
393 (set sym nil) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
394 (force-mode-line-update)))) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
395 |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
396 (provide 'pcvs-util) |
b442dfc3cef0
*** empty log message ***
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
diff
changeset
|
397 |
56956
14b1949ce3d4
(cvs-string-prefix-p): Use compare-strings.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
55791
diff
changeset
|
398 ;; arch-tag: 3b2588bb-2ae3-4f1f-bf5b-dea91b1f8a59 |
38422
7a94f1c588c4
Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents:
37338
diff
changeset
|
399 ;;; pcvs-util.el ends here |