User: stephent
Date: 05/12/23 12:40:39
Modified: xemacs/lisp/mule mule-charset.el
Log:
Add rename function to buffer mode. <87hd902gcp.fsf(a)tleepslib.sk.tsukuba.ac.jp>
Revision Changes Path
1.712 +5 -0 XEmacs/xemacs/lisp/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/ChangeLog,v
retrieving revision 1.711
retrieving revision 1.712
diff -u -p -r1.711 -r1.712
--- ChangeLog 2005/12/18 19:05:56 1.711
+++ ChangeLog 2005/12/23 11:40:32 1.712
@@ -1,3 +1,8 @@
+2005-12-22 Stephen J. Turnbull <stephen(a)xemacs.org>
+
+ * buff-menu.el (Buffer-menu-rename): New command.
+ (Buffer-menu-mode-map): Bind it to ?r.
+
2005-12-18 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.24 "dandelion" is released.
1.10 +13 -0 XEmacs/xemacs/lisp/buff-menu.el
Index: buff-menu.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/buff-menu.el,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -p -r1.9 -r1.10
--- buff-menu.el 2002/03/15 07:43:18 1.9
+++ buff-menu.el 2005/12/23 11:40:33 1.10
@@ -91,6 +91,7 @@
(define-key Buffer-menu-mode-map "k" 'Buffer-menu-delete)
(define-key Buffer-menu-mode-map "\C-d" 'Buffer-menu-delete-backwards)
(define-key Buffer-menu-mode-map "\C-k" 'Buffer-menu-delete)
+ (define-key Buffer-menu-mode-map "r" 'Buffer-menu-rename)
(define-key Buffer-menu-mode-map "x" 'Buffer-menu-execute)
(define-key Buffer-menu-mode-map " " 'next-line)
(define-key Buffer-menu-mode-map "n" 'next-line)
@@ -260,6 +261,18 @@ and then move up one line. Prefix arg m
(Buffer-menu-delete (- (or arg 1)))
(while (looking-at " [-M]")
(forward-line 1)))
+
+(defun Buffer-menu-rename (newname unique)
+ "Rename buffer on this line to NEWNAME, immediately.
+If given a prefix argument, automatically uniquify. See `rename-buffer'."
+ (interactive "sNew name for buffer: \np")
+ (beginning-of-line)
+ (if (looking-at " [-M]") ;header lines
+ (ding)
+ (save-excursion
+ (set-buffer (Buffer-menu-buffer t))
+ (rename-buffer newname unique))
+ (revert-buffer)))
(defun Buffer-menu-save ()
"Mark buffer on this line to be saved by
\\<Buffer-menu-mode-map>\\[Buffer-menu-execute] command."
1.12 +7 -16 XEmacs/xemacs/lisp/derived.el
Index: derived.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/derived.el,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -p -r1.11 -r1.12
--- derived.el 2005/11/13 07:39:27 1.11
+++ derived.el 2005/12/23 11:40:33 1.12
@@ -419,22 +419,13 @@ Where the new table already has an entry
;; (set-char-table-parent new old) here.
;; We use map-char-table, not map-syntax-table, so we can explicitly
;; check for inheritance.
- (map-char-table
- #'(lambda (key value)
- (let ((newval (get-range-char-table key new 'multi)))
- (cond ((eq newval 'multi) ; OK, dive into the class hierarchy
- (map-char-table
- #'(lambda (key1 value1)
- (when (eq ?@ (char-syntax-from-code
- (get-range-char-table key new ?@)))
- (put-char-table key1 value new))
- nil)
- new
- key))
- ((eq ?@ (char-syntax-from-code newval)) ;; class at once
- (put-char-table key value new))))
- nil)
- old))
+ (map-char-table #'(lambda (range value)
+ (when (eq ?@ (char-syntax-from-code value))
+ (map-char-table #'(lambda (rng val)
+ (put-char-table rng val new))
+ old
+ range)))
+ new))
;; Merge an old abbrev table into a new one.
;; This function requires internal knowledge of how abbrev tables work,
1.17 +69 -0 XEmacs/xemacs/lisp/mule/mule-charset.el
Index: mule-charset.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/mule/mule-charset.el,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -p -r1.16 -r1.17
--- mule-charset.el 2004/09/22 02:25:06 1.16
+++ mule-charset.el 2005/12/23 11:40:39 1.17
@@ -62,6 +62,67 @@ BUFFER defaults to the current buffer if
(forward-char))))
list))
+(defun fixed-charsets-in-region (start end &optional buffer)
+ "Return a list of the charsets in the region between START and END.
+BUFFER defaults to the current buffer if omitted."
+ (let (list)
+ (save-excursion
+ (if buffer
+ (set-buffer buffer))
+ (save-restriction
+ (narrow-to-region start end)
+ (goto-char (point-min))
+ (let ((prev-charset nil))
+ (while (not (eobp))
+ (let* ((charset (char-charset (char-after (point)))))
+ (if (not (eq prev-charset charset))
+ (progn
+ (setq prev-charset charset)
+ (or (memq charset list)
+ (setq list (cons charset list))))))
+ (forward-char)))))
+ list))
+
+(defun list-charsets-in-region (start end &optional buffer)
+ "Return a list of the charsets in the region between START and END.
+BUFFER defaults to the current buffer if omitted."
+ (let (list)
+ (save-excursion
+ (if buffer
+ (set-buffer buffer))
+ (save-restriction
+ (narrow-to-region start end)
+ (goto-char (point-min))
+ ;; this could be optimized by maintaining prev-charset and checking
+ ;; for equality, but memq is not that slow for a short list.
+ (while (not (eobp))
+ (let* ((charset (char-charset (char-after (point)))))
+ (or (memq charset list)
+ (setq list (cons charset list))))
+ (forward-char))))
+ list))
+
+(defun hash-charsets-in-region (start end &optional buffer)
+ "Return a list of the charsets in the region between START and END.
+BUFFER defaults to the current buffer if omitted."
+ (let ((ht (make-hash-table :size 10)))
+ (save-excursion
+ (if buffer
+ (set-buffer buffer))
+ (save-restriction
+ (narrow-to-region start end)
+ (goto-char (point-min))
+ (while (not (eobp))
+ (puthash (char-charset (char-after (point))) t ht)
+ (forward-char))))
+ (hash-table-key-list ht)))
+
+(defun c-charsets-in-region (start end &optional buffer)
+ "Return a list of the charsets in the region between START and END.
+BUFFER defaults to the current buffer if omitted."
+ (setq buffer (or buffer (current-buffer)))
+ (charsets-in-region-internal buffer start end))
+
(defun charsets-in-string (string)
"Return a list of the charsets in STRING."
(let (list)
@@ -73,7 +134,15 @@ BUFFER defaults to the current buffer if
string)
list))
+(defun c-charsets-in-string (string)
+ "Return a list of the charsets in STRING."
+ (charsets-in-string-internal string nil nil))
+
+(or (fboundp 'charsets-in-string)
+ (defalias 'charsets-in-string 'c-charsets-in-string))
(defalias 'find-charset-string 'charsets-in-string)
+(or (fboundp 'charsets-in-region)
+ (defalias 'charsets-in-region 'c-charsets-in-region))
(defalias 'find-charset-region 'charsets-in-region)
Show replies by thread