mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-17 18:37:33 +00:00
file-attribute-collect: New defun
* lisp/files.el (file-attribute-collect): Return a sublist of the attributes returned by 'file-attributes'. Suggested by Ted Zlatanov in: http://lists.gnu.org/archive/html/emacs-devel/2016-07/msg01195.html ; * etc/NEWS: Mention this defun in NEWS.
This commit is contained in:
parent
80082d00d8
commit
8d4039bcd6
2 changed files with 22 additions and 2 deletions
4
etc/NEWS
4
etc/NEWS
|
|
@ -115,8 +115,8 @@ have been added. They are: 'file-attribute-type',
|
|||
'file-attribute-group-id', 'file-attribute-access-time',
|
||||
'file-attribute-modification-time',
|
||||
'file-attribute-status-change-time', 'file-attribute-size',
|
||||
'file-attribute-modes', 'file-attribute-inode-number', and
|
||||
'file-attribute-device-number'.
|
||||
'file-attribute-modes', 'file-attribute-inode-number',
|
||||
'file-attribute-device-number' and 'file-attribute-collect'.
|
||||
|
||||
+++
|
||||
** The new function 'buffer-hash' computes a fast, non-consing hash of
|
||||
|
|
|
|||
|
|
@ -7225,6 +7225,26 @@ of the form (HIGH MIDDLE . LOW): first the high bits, then the
|
|||
middle 24 bits, and finally the low 16 bits."
|
||||
(nth 11 attributes))
|
||||
|
||||
(defun file-attribute-collect (attributes &rest attr-names)
|
||||
"Return a sublist of ATTRIBUTES returned by `file-attributes'.
|
||||
ATTR-NAMES are symbols with the selected attribute names.
|
||||
|
||||
Valid attribute names are: type, link-number, user-id, group-id,
|
||||
access-time, modification-time, status-change-time, size, modes,
|
||||
inode-number and device-number."
|
||||
(let ((all '(type link-number user-id group-id access-time
|
||||
modification-time status-change-time
|
||||
size modes inode-number device-number))
|
||||
result)
|
||||
(while attr-names
|
||||
(let ((attr (pop attr-names)))
|
||||
(if (memq attr all)
|
||||
(push (funcall
|
||||
(intern (format "file-attribute-%s" (symbol-name attr)))
|
||||
attributes)
|
||||
result)
|
||||
(error "Wrong attribute name '%S'" attr))))
|
||||
(nreverse result)))
|
||||
|
||||
(define-key ctl-x-map "\C-f" 'find-file)
|
||||
(define-key ctl-x-map "\C-r" 'find-file-read-only)
|
||||
|
|
|
|||
Loading…
Reference in a new issue