comparison lispref/files.texi @ 75476:330094c564c4

(File Attributes): UID and GID can be floats. (Magic File Names): Explain why deferring all operations to the standard handler does not work.
author Richard M. Stallman <rms@gnu.org>
date Sun, 28 Jan 2007 07:19:16 +0000
parents 6d19c76d81c5
children fc9d442f98d2 f83d17e1ace6
comparison
equal deleted inserted replaced
75475:688a9d290d4d 75476:330094c564c4
1155 The number of names the file has. Alternate names, also known as hard 1155 The number of names the file has. Alternate names, also known as hard
1156 links, can be created by using the @code{add-name-to-file} function 1156 links, can be created by using the @code{add-name-to-file} function
1157 (@pxref{Changing Files}). 1157 (@pxref{Changing Files}).
1158 1158
1159 @item 1159 @item
1160 The file's @acronym{UID} as a string or an integer. If a string 1160 The file's @acronym{UID}, normally as a string. However, if it does
1161 value cannot be looked up, the integer value is returned. 1161 not correspond to a named user, the value is an integer or a floating
1162 point number.
1162 1163
1163 @item 1164 @item
1164 The file's @acronym{GID} likewise. 1165 The file's @acronym{GID}, likewise.
1165 1166
1166 @item 1167 @item
1167 The time of last access, as a list of two integers. 1168 The time of last access, as a list of two integers.
1168 The first integer has the high-order 16 bits of time, 1169 The first integer has the high-order 16 bits of time,
1169 the second has the low 16 bits. (This is similar to the 1170 the second has the low 16 bits. (This is similar to the
2552 If the specified file name matches more than one handler, the one 2553 If the specified file name matches more than one handler, the one
2553 whose match starts last in the file name gets precedence. This rule 2554 whose match starts last in the file name gets precedence. This rule
2554 is chosen so that handlers for jobs such as uncompression are handled 2555 is chosen so that handlers for jobs such as uncompression are handled
2555 first, before handlers for jobs such as remote file access. 2556 first, before handlers for jobs such as remote file access.
2556 2557
2557 Here are the operations that a magic file name handler gets to handle: 2558 Here are the operations that a magic file name handler gets to handle:
2558 2559
2559 @ifnottex 2560 @ifnottex
2560 @noindent 2561 @noindent
2561 @code{access-file}, @code{add-name-to-file}, 2562 @code{access-file}, @code{add-name-to-file},
2562 @code{byte-compiler-base-file-name},@* 2563 @code{byte-compiler-base-file-name},@*
2702 operations; then only those operations will call the handler. This 2703 operations; then only those operations will call the handler. This
2703 avoids inefficiency, but its main purpose is for autoloaded handler 2704 avoids inefficiency, but its main purpose is for autoloaded handler
2704 functions, so that they won't be loaded except when they have real 2705 functions, so that they won't be loaded except when they have real
2705 work to do. 2706 work to do.
2706 2707
2708 Simply deferring all operations to the usual primitives does not
2709 work. For instance, if the file name handler applies to
2710 @code{file-exists-p}, then it must handle @code{load} itself, because
2711 the usual @code{load} code won't work properly in that case. However,
2712 if the handler uses the @code{operations} property to say it doesn't
2713 handle @code{file-exists-p}, then it need not handle @code{load}
2714 nontrivially.
2715
2707 @defvar inhibit-file-name-handlers 2716 @defvar inhibit-file-name-handlers
2708 This variable holds a list of handlers whose use is presently inhibited 2717 This variable holds a list of handlers whose use is presently inhibited
2709 for a certain operation. 2718 for a certain operation.
2710 @end defvar 2719 @end defvar
2711 2720