[Top][All Lists]

[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 <address@hidden> writes:

> 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.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]