[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Add a handler
From: |
Michael Albinus |
Subject: |
Re: Add a handler |
Date: |
Wed, 23 Apr 2014 08:34:50 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) |
Germán Arias <germanandre@gmx.es> writes:
> Hi,
Hi,
> How add a handler at "file-name-handler-alist"?
First, you shall know which file names the handler is supposed to
handle. You need a regexp for this, let's say "handled\\'". This would
match all files which names have "handled" at their end (it's a stupid
example, just for illustration).
Second, you need to write a function (the "handler"), which does the
work. It must have a general argument list, which would cover all
supported operations. Something like this:
(defun my-file-name-handler (operation &rest args)
"Invoke my file name handler."
(message "my-file-name-handler %s %s" operation args))
Third, you must add both to `file-name-handler-alist as cons cell:
(add-to-list 'file-name-handler-alist
(cons "handled\\'" 'my-file-name-handler))
If a magic file name operation is called now with a file name matching
your regexp, your file name handler is called:
(file-exists-p "/path/to/this-file-name-is-handled")
would write into the *Messages* buffer
my-file-name-handler expand-file-name (/path/to/this-file-name-is-handled nil)
That's all. Now you need only to implement all supported operations, see
(info "(elisp)Magic File Names")
You could also check `file-name-handler-alist' for existing file name
handlers, and steal^W be inspired by their implementation.
> Thanks.
Best regards, Michael.