diff options
| author | Glenn Morris | 2011-03-12 11:19:47 -0800 |
|---|---|---|
| committer | Glenn Morris | 2011-03-12 11:19:47 -0800 |
| commit | 09d9db2c4921cb2eb0974892164dd03d6bffdd80 (patch) | |
| tree | 7165f97f16ea0eaab567db2a45f69d1cdf66bdce /lisp | |
| parent | 54ce11a161cd756047fccdfc128dc0527692ea06 (diff) | |
| parent | 6efb972c00a9ea8ffa84118199aa59c2d3a3b50e (diff) | |
| download | emacs-09d9db2c4921cb2eb0974892164dd03d6bffdd80.tar.gz emacs-09d9db2c4921cb2eb0974892164dd03d6bffdd80.zip | |
Merge from emacs-23; up to 2010-06-03T22:16:02Z!dann@ics.uci.edu
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/ChangeLog | 17 | ||||
| -rw-r--r-- | lisp/ebuff-menu.el | 101 | ||||
| -rw-r--r-- | lisp/files.el | 10 | ||||
| -rw-r--r-- | lisp/server.el | 8 |
4 files changed, 83 insertions, 53 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 5f5484af8f2..3b47dd24698 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,20 @@ | |||
| 1 | 2011-03-12 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * ebuff-menu.el (electric-buffer-menu-mode-map): Move initialization | ||
| 4 | into declaration. Remove redundant and harmful binding. | ||
| 5 | |||
| 6 | 2011-03-12 Eli Zaretskii <eliz@gnu.org> | ||
| 7 | |||
| 8 | * files.el (file-ownership-preserved-p): Pass `integer' as an | ||
| 9 | explicit 2nd argument to `file-attributes'. If the file's owner | ||
| 10 | is the Administrators group on Windows, and the current user is | ||
| 11 | Administrator, consider that a match. | ||
| 12 | |||
| 13 | * server.el (server-ensure-safe-dir): Consider server directory | ||
| 14 | safe on MS-Windows if its owner is the Administrators group while | ||
| 15 | the current Emacs user is Administrator. Use `=' to compare | ||
| 16 | numerical UIDs, since they could be integers or floats. | ||
| 17 | |||
| 1 | 2011-03-12 Juanma Barranquero <lekktu@gmail.com> | 18 | 2011-03-12 Juanma Barranquero <lekktu@gmail.com> |
| 2 | 19 | ||
| 3 | * vc/vc-bzr.el (vc-bzr-state): Handle bzr 2.3.0 (follow-up to bug#8170). | 20 | * vc/vc-bzr.el (vc-bzr-state): Handle bzr 2.3.0 (follow-up to bug#8170). |
diff --git a/lisp/ebuff-menu.el b/lisp/ebuff-menu.el index dd589cb58f7..a906cf8516a 100644 --- a/lisp/ebuff-menu.el +++ b/lisp/ebuff-menu.el | |||
| @@ -34,7 +34,56 @@ | |||
| 34 | ;; this depends on the format of list-buffers (from src/buffer.c) and | 34 | ;; this depends on the format of list-buffers (from src/buffer.c) and |
| 35 | ;; on stuff in lisp/buff-menu.el | 35 | ;; on stuff in lisp/buff-menu.el |
| 36 | 36 | ||
| 37 | (defvar electric-buffer-menu-mode-map nil) | 37 | (defvar electric-buffer-menu-mode-map |
| 38 | (let ((map (make-keymap))) | ||
| 39 | (fillarray (car (cdr map)) 'Electric-buffer-menu-undefined) | ||
| 40 | (define-key map "\e" nil) | ||
| 41 | (define-key map "\C-z" 'suspend-frame) | ||
| 42 | (define-key map "v" 'Electric-buffer-menu-mode-view-buffer) | ||
| 43 | (define-key map (char-to-string help-char) 'Helper-help) | ||
| 44 | (define-key map "?" 'Helper-describe-bindings) | ||
| 45 | (define-key map "\C-c" nil) | ||
| 46 | (define-key map "\C-c\C-c" 'Electric-buffer-menu-quit) | ||
| 47 | (define-key map "\C-]" 'Electric-buffer-menu-quit) | ||
| 48 | (define-key map "q" 'Electric-buffer-menu-quit) | ||
| 49 | (define-key map " " 'Electric-buffer-menu-select) | ||
| 50 | (define-key map "\C-m" 'Electric-buffer-menu-select) | ||
| 51 | (define-key map "\C-l" 'recenter) | ||
| 52 | (define-key map "s" 'Buffer-menu-save) | ||
| 53 | (define-key map "d" 'Buffer-menu-delete) | ||
| 54 | (define-key map "k" 'Buffer-menu-delete) | ||
| 55 | (define-key map "\C-d" 'Buffer-menu-delete-backwards) | ||
| 56 | ;; (define-key map "\C-k" 'Buffer-menu-delete) | ||
| 57 | (define-key map "\177" 'Buffer-menu-backup-unmark) | ||
| 58 | (define-key map "~" 'Buffer-menu-not-modified) | ||
| 59 | (define-key map "u" 'Buffer-menu-unmark) | ||
| 60 | (let ((i ?0)) | ||
| 61 | (while (<= i ?9) | ||
| 62 | (define-key map (char-to-string i) 'digit-argument) | ||
| 63 | (define-key map (concat "\e" (char-to-string i)) 'digit-argument) | ||
| 64 | (setq i (1+ i)))) | ||
| 65 | (define-key map "-" 'negative-argument) | ||
| 66 | (define-key map "\e-" 'negative-argument) | ||
| 67 | (define-key map "m" 'Buffer-menu-mark) | ||
| 68 | (define-key map "\C-u" 'universal-argument) | ||
| 69 | (define-key map "\C-p" 'previous-line) | ||
| 70 | (define-key map "\C-n" 'next-line) | ||
| 71 | (define-key map "p" 'previous-line) | ||
| 72 | (define-key map "n" 'next-line) | ||
| 73 | (define-key map "\C-v" 'scroll-up) | ||
| 74 | (define-key map "\ev" 'scroll-down) | ||
| 75 | (define-key map ">" 'scroll-right) | ||
| 76 | (define-key map "<" 'scroll-left) | ||
| 77 | (define-key map "\e\C-v" 'scroll-other-window) | ||
| 78 | (define-key map "\e>" 'end-of-buffer) | ||
| 79 | (define-key map "\e<" 'beginning-of-buffer) | ||
| 80 | (define-key map "\e\e" nil) | ||
| 81 | (define-key map "\e\e\e" 'Electric-buffer-menu-quit) | ||
| 82 | ;; This binding prevents the "escape => ESC" function-key-map mapping from | ||
| 83 | ;; kicking in! | ||
| 84 | ;; (define-key map [escape escape escape] 'Electric-buffer-menu-quit) | ||
| 85 | (define-key map [mouse-2] 'Electric-buffer-menu-mouse-select) | ||
| 86 | map)) | ||
| 38 | 87 | ||
| 39 | (defvar electric-buffer-menu-mode-hook nil | 88 | (defvar electric-buffer-menu-mode-hook nil |
| 40 | "Normal hook run by `electric-buffer-list'.") | 89 | "Normal hook run by `electric-buffer-list'.") |
| @@ -167,55 +216,7 @@ Entry to this mode via command `electric-buffer-list' calls the value of | |||
| 167 | ;; generally the same as Buffer-menu-mode-map | 216 | ;; generally the same as Buffer-menu-mode-map |
| 168 | ;; (except we don't indirect to global-map) | 217 | ;; (except we don't indirect to global-map) |
| 169 | (put 'Electric-buffer-menu-undefined 'suppress-keymap t) | 218 | (put 'Electric-buffer-menu-undefined 'suppress-keymap t) |
| 170 | (if electric-buffer-menu-mode-map | 219 | |
| 171 | nil | ||
| 172 | (let ((map (make-keymap))) | ||
| 173 | (fillarray (car (cdr map)) 'Electric-buffer-menu-undefined) | ||
| 174 | (define-key map "\e" nil) | ||
| 175 | (define-key map "\C-z" 'suspend-frame) | ||
| 176 | (define-key map "v" 'Electric-buffer-menu-mode-view-buffer) | ||
| 177 | (define-key map (char-to-string help-char) 'Helper-help) | ||
| 178 | (define-key map "?" 'Helper-describe-bindings) | ||
| 179 | (define-key map "\C-c" nil) | ||
| 180 | (define-key map "\C-c\C-c" 'Electric-buffer-menu-quit) | ||
| 181 | (define-key map "\C-]" 'Electric-buffer-menu-quit) | ||
| 182 | (define-key map "q" 'Electric-buffer-menu-quit) | ||
| 183 | (define-key map " " 'Electric-buffer-menu-select) | ||
| 184 | (define-key map "\C-m" 'Electric-buffer-menu-select) | ||
| 185 | (define-key map "\C-l" 'recenter) | ||
| 186 | (define-key map "s" 'Buffer-menu-save) | ||
| 187 | (define-key map "d" 'Buffer-menu-delete) | ||
| 188 | (define-key map "k" 'Buffer-menu-delete) | ||
| 189 | (define-key map "\C-d" 'Buffer-menu-delete-backwards) | ||
| 190 | ;(define-key map "\C-k" 'Buffer-menu-delete) | ||
| 191 | (define-key map "\177" 'Buffer-menu-backup-unmark) | ||
| 192 | (define-key map "~" 'Buffer-menu-not-modified) | ||
| 193 | (define-key map "u" 'Buffer-menu-unmark) | ||
| 194 | (let ((i ?0)) | ||
| 195 | (while (<= i ?9) | ||
| 196 | (define-key map (char-to-string i) 'digit-argument) | ||
| 197 | (define-key map (concat "\e" (char-to-string i)) 'digit-argument) | ||
| 198 | (setq i (1+ i)))) | ||
| 199 | (define-key map "-" 'negative-argument) | ||
| 200 | (define-key map "\e-" 'negative-argument) | ||
| 201 | (define-key map "m" 'Buffer-menu-mark) | ||
| 202 | (define-key map "\C-u" 'universal-argument) | ||
| 203 | (define-key map "\C-p" 'previous-line) | ||
| 204 | (define-key map "\C-n" 'next-line) | ||
| 205 | (define-key map "p" 'previous-line) | ||
| 206 | (define-key map "n" 'next-line) | ||
| 207 | (define-key map "\C-v" 'scroll-up) | ||
| 208 | (define-key map "\ev" 'scroll-down) | ||
| 209 | (define-key map ">" 'scroll-right) | ||
| 210 | (define-key map "<" 'scroll-left) | ||
| 211 | (define-key map "\e\C-v" 'scroll-other-window) | ||
| 212 | (define-key map "\e>" 'end-of-buffer) | ||
| 213 | (define-key map "\e<" 'beginning-of-buffer) | ||
| 214 | (define-key map "\e\e" nil) | ||
| 215 | (define-key map "\e\e\e" 'Electric-buffer-menu-quit) | ||
| 216 | (define-key map [escape escape escape] 'Electric-buffer-menu-quit) | ||
| 217 | (define-key map [mouse-2] 'Electric-buffer-menu-mouse-select) | ||
| 218 | (setq electric-buffer-menu-mode-map map))) | ||
| 219 | 220 | ||
| 220 | (defun Electric-buffer-menu-exit () | 221 | (defun Electric-buffer-menu-exit () |
| 221 | (interactive) | 222 | (interactive) |
diff --git a/lisp/files.el b/lisp/files.el index ffc0b33119f..198d5ca87de 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -3895,11 +3895,17 @@ See also `file-name-version-regexp'." | |||
| 3895 | (let ((handler (find-file-name-handler file 'file-ownership-preserved-p))) | 3895 | (let ((handler (find-file-name-handler file 'file-ownership-preserved-p))) |
| 3896 | (if handler | 3896 | (if handler |
| 3897 | (funcall handler 'file-ownership-preserved-p file) | 3897 | (funcall handler 'file-ownership-preserved-p file) |
| 3898 | (let ((attributes (file-attributes file))) | 3898 | (let ((attributes (file-attributes file 'integer))) |
| 3899 | ;; Return t if the file doesn't exist, since it's true that no | 3899 | ;; Return t if the file doesn't exist, since it's true that no |
| 3900 | ;; information would be lost by an (attempted) delete and create. | 3900 | ;; information would be lost by an (attempted) delete and create. |
| 3901 | (or (null attributes) | 3901 | (or (null attributes) |
| 3902 | (= (nth 2 attributes) (user-uid))))))) | 3902 | (= (nth 2 attributes) (user-uid)) |
| 3903 | ;; Files created on Windows by Administrator (RID=500) | ||
| 3904 | ;; have the Administrators group (RID=544) recorded as | ||
| 3905 | ;; their owner. Rewriting them will still preserve the | ||
| 3906 | ;; owner. | ||
| 3907 | (and (eq system-type 'windows-nt) | ||
| 3908 | (= (user-uid) 500) (= (nth 2 attributes) 544))))))) | ||
| 3903 | 3909 | ||
| 3904 | (defun file-name-sans-extension (filename) | 3910 | (defun file-name-sans-extension (filename) |
| 3905 | "Return FILENAME sans final \"extension\". | 3911 | "Return FILENAME sans final \"extension\". |
diff --git a/lisp/server.el b/lisp/server.el index df8cae0a6af..cb1903ad96c 100644 --- a/lisp/server.el +++ b/lisp/server.el | |||
| @@ -485,7 +485,13 @@ See variable `server-auth-dir' for details." | |||
| 485 | (file-name-as-directory dir)) | 485 | (file-name-as-directory dir)) |
| 486 | :warning) | 486 | :warning) |
| 487 | (throw :safe t)) | 487 | (throw :safe t)) |
| 488 | (unless (eql uid (user-uid)) ; is the dir ours? | 488 | (unless (or (= uid (user-uid)) ; is the dir ours? |
| 489 | (and w32 | ||
| 490 | ;; Files created on Windows by | ||
| 491 | ;; Administrator (RID=500) have | ||
| 492 | ;; the Administrators (RID=544) | ||
| 493 | ;; group recorded as the owner. | ||
| 494 | (= uid 544) (= (user-uid) 500))) | ||
| 489 | (throw :safe nil)) | 495 | (throw :safe nil)) |
| 490 | (when w32 ; on NTFS? | 496 | (when w32 ; on NTFS? |
| 491 | (throw :safe t)) | 497 | (throw :safe t)) |