;ELC ;;; Compiled ;;; in Emacs version 27.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (require 'cl-lib) #@25 Use for debug messages. (defvar file-notify-debug nil (#$ . 426)) #@231 Non-nil when Emacs has been compiled with file notification support. The value is the name of the low-level file notification package to be used for local file systems. Remote file notifications could use another implementation. (defconst file-notify--library (byte-code "\300\301!\203\301\207\300\302!\203\302\207\300\303!\203\303\207\300\304!\205\304\207" [featurep inotify kqueue gfilenotify w32notify] 2) (#$ . 499)) #@77 compiler-macro for inlining `file-notify--watch-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'file-notify--watch-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block file-notify--watch-p (and (memq (type-of cl-x) cl-struct-file-notify--watch-tags) t)) nil] 9 (#$ . 935)]) (put 'file-notify--watch-p 'compiler-macro 'file-notify--watch-p--cmacro) #@13 (fn CL-X) (defalias 'file-notify--watch-p #[257 "\301!>\205 \302\207" [cl-struct-file-notify--watch-tags type-of t] 3 (#$ . 1316)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put file-notify--watch-p side-effect-free error-free put file-notify--watch cl-deftype-satisfies] 5) #@85 compiler-macro for inlining `file-notify--watch-directory'. (fn CL-WHOLE-ARG CL-X) (defalias 'file-notify--watch-directory--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block file-notify--watch-directory (progn (or (file-notify--watch-p cl-x) (signal 'wrong-type-argument (list 'file-notify--watch cl-x))) (aref cl-x 1))) nil] 9 (#$ . 1622)]) (put 'file-notify--watch-directory 'compiler-macro 'file-notify--watch-directory--cmacro) #@73 Access slot "directory" of `file-notify--watch' struct CL-X. (fn CL-X) (defalias 'file-notify--watch-directory #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-file-notify--watch-tags type-of signal wrong-type-argument file-notify--watch 1] 5 (#$ . 2097)]) (byte-code "\300\301\302\303#\300\207" [function-put file-notify--watch-directory side-effect-free t] 4) #@84 compiler-macro for inlining `file-notify--watch-filename'. (fn CL-WHOLE-ARG CL-X) (defalias 'file-notify--watch-filename--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block file-notify--watch-filename (progn (or (file-notify--watch-p cl-x) (signal 'wrong-type-argument (list 'file-notify--watch cl-x))) (aref cl-x 2))) nil] 9 (#$ . 2484)]) (put 'file-notify--watch-filename 'compiler-macro 'file-notify--watch-filename--cmacro) #@72 Access slot "filename" of `file-notify--watch' struct CL-X. (fn CL-X) (defalias 'file-notify--watch-filename #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-file-notify--watch-tags type-of signal wrong-type-argument file-notify--watch 2] 5 (#$ . 2954)]) (byte-code "\300\301\302\303#\300\207" [function-put file-notify--watch-filename side-effect-free t] 4) #@84 compiler-macro for inlining `file-notify--watch-callback'. (fn CL-WHOLE-ARG CL-X) (defalias 'file-notify--watch-callback--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block file-notify--watch-callback (progn (or (file-notify--watch-p cl-x) (signal 'wrong-type-argument (list 'file-notify--watch cl-x))) (aref cl-x 3))) nil] 9 (#$ . 3338)]) (put 'file-notify--watch-callback 'compiler-macro 'file-notify--watch-callback--cmacro) #@72 Access slot "callback" of `file-notify--watch' struct CL-X. (fn CL-X) (defalias 'file-notify--watch-callback #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-file-notify--watch-tags type-of signal wrong-type-argument file-notify--watch 3] 5 (#$ . 3808)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put file-notify--watch-callback side-effect-free t defalias copy-file-notify--watch copy-sequence] 4) #@103 compiler-macro for inlining `file-notify--watch-make'. (fn CL-WHOLE-ARG DIRECTORY FILENAME CALLBACK) (defalias 'file-notify--watch-make--cmacro #[1028 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (directory filename callback) (cl-block file-notify--watch-make (record 'file-notify--watch directory filename callback)) nil] 13 (#$ . 4250)]) (put 'file-notify--watch-make 'compiler-macro 'file-notify--watch-make--cmacro) #@89 Constructor for objects of type `file-notify--watch'. (fn DIRECTORY FILENAME CALLBACK) (defalias 'file-notify--watch-make #[771 "\300\301$\207" [record file-notify--watch] 8 (#$ . 4692)]) (byte-code "\300\301\302\303#\304\305\306\307\310\311\312\313\305\303& \207" [function-put file-notify--watch-make side-effect-free t cl-struct-define file-notify--watch "The internal struct for bookkeeping watched files or directories.\nUsed in `file-notify-descriptors'." cl-structure-object record nil ((cl-tag-slot) (directory) (filename) (callback)) cl-struct-file-notify--watch-tags] 11) #@61 Return the absolute filename observed by WATCH. (fn WATCH) (defalias 'file-notify--watch-absolute-filename #[257 "\301!>\204\302\303\304D\"\210\211\305H\203<\306\301!>\204%\302\303\304D\"\210\305H\301!>\2047\302\303\304D\"\210\307H\"\207\301!>\204K\302\303\304D\"\210\211\307H\207" [cl-struct-file-notify--watch-tags type-of signal wrong-type-argument file-notify--watch 2 expand-file-name 1] 7 (#$ . 5284)]) #@253 Hash table for registered file notification descriptors. A key in this hash table is the descriptor as returned from `inotify', `kqueue', `gfilenotify', `w32notify' or a file name handler. The value in the hash table is a `file-notify--watch' struct. (defvar file-notify-descriptors (make-hash-table :test 'equal) (#$ . 5721)) #@213 Remove DESCRIPTOR from `file-notify-descriptors'. DESCRIPTOR should be an object returned by `file-notify-add-watch'. If it is registered in `file-notify-descriptors', a `stopped' event is sent. (fn DESCRIPTOR) (defalias 'file-notify--rm-descriptor #[257 "\302\"\211\205H\303! >\204\304\305\306D\"\210\211\307H\303! >\204)\304\305\306D\"\210\211\307\310I\266\311\312\313\314\315!\316\"\307$\216\211\317\320!E!)\262\207" [file-notify-descriptors cl-struct-file-notify--watch-tags gethash type-of signal wrong-type-argument file-notify--watch 3 nil make-byte-code 0 "\302\300 \"\207" vconcat vector [file-notify-descriptors remhash] stopped file-notify--watch-absolute-filename] 9 (#$ . 6056)]) #@70 compiler-macro for inlining `file-notify-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'file-notify-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block file-notify-p (and (memq (car-safe cl-x) cl-struct-file-notify-tags) t)) nil] 9 (#$ . 6773)]) (put 'file-notify-p 'compiler-macro 'file-notify-p--cmacro) #@13 (fn CL-X) (defalias 'file-notify-p #[257 "\211\242>\205\301\207" [cl-struct-file-notify-tags t] 3 (#$ . 7114)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put file-notify-p side-effect-free error-free put file-notify cl-deftype-satisfies] 5) #@75 compiler-macro for inlining `file-notify--event'. (fn CL-WHOLE-ARG CL-X) (defalias 'file-notify--event--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block file-notify--event (progn (or (file-notify-p cl-x) (signal 'wrong-type-argument (list 'file-notify cl-x))) (nth 1 cl-x))) nil] 9 (#$ . 7386)]) (put 'file-notify--event 'compiler-macro 'file-notify--event--cmacro) #@63 Access slot "-event" of `file-notify' struct CL-X. (fn CL-X) (defalias 'file-notify--event #[257 "\211\242>\204\301\302\303D\"\210\211A@\207" [cl-struct-file-notify-tags signal wrong-type-argument file-notify] 5 (#$ . 7796)]) (byte-code "\300\301\302\303#\300\207" [function-put file-notify--event side-effect-free t] 4) #@78 compiler-macro for inlining `file-notify--callback'. (fn CL-WHOLE-ARG CL-X) (defalias 'file-notify--callback--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block file-notify--callback (progn (or (file-notify-p cl-x) (signal 'wrong-type-argument (list 'file-notify cl-x))) (nth 2 cl-x))) nil] 9 (#$ . 8128)]) (put 'file-notify--callback 'compiler-macro 'file-notify--callback--cmacro) #@66 Access slot "-callback" of `file-notify' struct CL-X. (fn CL-X) (defalias 'file-notify--callback #[257 "\211\242>\204\301\302\303D\"\210\3048\207" [cl-struct-file-notify-tags signal wrong-type-argument file-notify 2] 5 (#$ . 8553)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put file-notify--callback side-effect-free t defalias copy-file-notify copy-sequence] 4) #@96 compiler-macro for inlining `make-file-notify'. (fn CL-WHOLE &cl-quote &key -EVENT -CALLBACK) (defalias 'make-file-notify--cmacro #[385 "\300\301\"A@\300\302\"A@\211\2037\211@\303>\203 \211AA\262\202 \304>A@\203.\305\262\202 \306\307@\"\210\202 \210\310\311\312\305\305&\207" [plist-member :-event :-callback (:-event :-callback :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:-event :-callback)" cl--defsubst-expand (-event -callback) (cl-block make-file-notify (list 'file-notify -event -callback))] 12 (#$ . 8946)]) (put 'make-file-notify 'compiler-macro 'make-file-notify--cmacro) #@76 Constructor for objects of type `file-notify'. (fn &key -EVENT -CALLBACK) (defalias 'make-file-notify #[128 "\300\301\"A@\300\302\"A@\211\2037\211@\303>\203 \211AA\262\202 \304>A@\203.\305\262\202 \306\307@\"\210\202 \210\310E\207" [plist-member :-event :-callback (:-event :-callback :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:-event :-callback)" file-notify] 7 (#$ . 9591)]) (byte-code "\300\301\302\303#\304\305\306\307\310\303\311\312\305\307& \207" [function-put make-file-notify side-effect-free t cl-struct-define file-notify "A file system monitoring event, coming from the backends." nil list ((cl-tag-slot) (-event) (-callback)) cl-struct-file-notify-tags] 11) #@167 Handle a file system monitoring event, coming from backends. If OBJECT is a filewatch event, call its callback. Otherwise, signal a `file-notify-error'. (fn OBJECT) (defalias 'file-notify-handle-event #[257 "\203 \302\303\"\210\211\242 >\2034\211\242 >\204\304\305\306D\"\210\3078\242 >\204/\304\305\306D\"\210A@!\207\304\310\311B\"\207" [file-notify-debug cl-struct-file-notify-tags message "file-notify-handle-event %S" signal wrong-type-argument file-notify 2 file-notify-error "Not a valid file-notify-event"] 6 (#$ . 10323) "e"]) #@78 compiler-macro for inlining `file-notify--rename-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'file-notify--rename-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block file-notify--rename-p (and (memq (type-of cl-x) cl-struct-file-notify--rename-tags) t)) nil] 9 (#$ . 10878)]) (put 'file-notify--rename-p 'compiler-macro 'file-notify--rename-p--cmacro) #@13 (fn CL-X) (defalias 'file-notify--rename-p #[257 "\301!>\205 \302\207" [cl-struct-file-notify--rename-tags type-of t] 3 (#$ . 11267)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put file-notify--rename-p side-effect-free error-free put file-notify--rename cl-deftype-satisfies] 5) #@82 compiler-macro for inlining `file-notify--rename-watch'. (fn CL-WHOLE-ARG CL-X) (defalias 'file-notify--rename-watch--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block file-notify--rename-watch (progn (or (file-notify--rename-p cl-x) (signal 'wrong-type-argument (list 'file-notify--rename cl-x))) (aref cl-x 1))) nil] 9 (#$ . 11578)]) (put 'file-notify--rename-watch 'compiler-macro 'file-notify--rename-watch--cmacro) #@70 Access slot "watch" of `file-notify--rename' struct CL-X. (fn CL-X) (defalias 'file-notify--rename-watch #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-file-notify--rename-tags type-of signal wrong-type-argument file-notify--rename 1] 5 (#$ . 12041)]) (byte-code "\300\301\302\303#\300\207" [function-put file-notify--rename-watch side-effect-free t] 4) #@81 compiler-macro for inlining `file-notify--rename-desc'. (fn CL-WHOLE-ARG CL-X) (defalias 'file-notify--rename-desc--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block file-notify--rename-desc (progn (or (file-notify--rename-p cl-x) (signal 'wrong-type-argument (list 'file-notify--rename cl-x))) (aref cl-x 2))) nil] 9 (#$ . 12422)]) (put 'file-notify--rename-desc 'compiler-macro 'file-notify--rename-desc--cmacro) #@69 Access slot "desc" of `file-notify--rename' struct CL-X. (fn CL-X) (defalias 'file-notify--rename-desc #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-file-notify--rename-tags type-of signal wrong-type-argument file-notify--rename 2] 5 (#$ . 12880)]) (byte-code "\300\301\302\303#\300\207" [function-put file-notify--rename-desc side-effect-free t] 4) #@86 compiler-macro for inlining `file-notify--rename-from-file'. (fn CL-WHOLE-ARG CL-X) (defalias 'file-notify--rename-from-file--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block file-notify--rename-from-file (progn (or (file-notify--rename-p cl-x) (signal 'wrong-type-argument (list 'file-notify--rename cl-x))) (aref cl-x 3))) nil] 9 (#$ . 13258)]) (put 'file-notify--rename-from-file 'compiler-macro 'file-notify--rename-from-file--cmacro) #@74 Access slot "from-file" of `file-notify--rename' struct CL-X. (fn CL-X) (defalias 'file-notify--rename-from-file #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-file-notify--rename-tags type-of signal wrong-type-argument file-notify--rename 3] 5 (#$ . 13741)]) (byte-code "\300\301\302\303#\300\207" [function-put file-notify--rename-from-file side-effect-free t] 4) #@83 compiler-macro for inlining `file-notify--rename-cookie'. (fn CL-WHOLE-ARG CL-X) (defalias 'file-notify--rename-cookie--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block file-notify--rename-cookie (progn (or (file-notify--rename-p cl-x) (signal 'wrong-type-argument (list 'file-notify--rename cl-x))) (aref cl-x 4))) nil] 9 (#$ . 14134)]) (put 'file-notify--rename-cookie 'compiler-macro 'file-notify--rename-cookie--cmacro) #@71 Access slot "cookie" of `file-notify--rename' struct CL-X. (fn CL-X) (defalias 'file-notify--rename-cookie #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-file-notify--rename-tags type-of signal wrong-type-argument file-notify--rename 4] 5 (#$ . 14602)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put file-notify--rename-cookie side-effect-free t defalias copy-file-notify--rename copy-sequence] 4) #@104 compiler-macro for inlining `file-notify--rename-make'. (fn CL-WHOLE-ARG WATCH DESC FROM-FILE COOKIE) (defalias 'file-notify--rename-make--cmacro #[1285 "\300\301\302\303\211\211    & \207" [cl--defsubst-expand (watch desc from-file cookie) (cl-block file-notify--rename-make (record 'file-notify--rename watch desc from-file cookie)) nil] 15 (#$ . 15045)]) (put 'file-notify--rename-make 'compiler-macro 'file-notify--rename-make--cmacro) #@90 Constructor for objects of type `file-notify--rename'. (fn WATCH DESC FROM-FILE COOKIE) (defalias 'file-notify--rename-make #[1028 "\300\301%\207" [record file-notify--rename] 10 (#$ . 15496)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put file-notify--rename-make side-effect-free t cl-struct-define file-notify--rename nil cl-structure-object record ((cl-tag-slot) (watch) (desc) (from-file) (cookie)) cl-struct-file-notify--rename-tags] 11) #@136 A pending rename event awaiting the destination file name. It is nil or a `file-notify--rename' defstruct where the cookie can be nil. (defvar file-notify--pending-rename nil (#$ . 15997)) #@61 Full file name of FILE reported for WATCH. (fn WATCH FILE) (defalias 'file-notify--expand-file-name #[514 "\301\302\303!>\204\304\305\306D\"\210\307H\"!\207" [cl-struct-file-notify--watch-tags directory-file-name expand-file-name type-of signal wrong-type-argument file-notify--watch 1] 9 (#$ . 16192)]) #@88 Notification callback for inotify. (fn (DESC ACTIONS FILE &optional FILE1-OR-COOKIE)) (defalias 'file-notify--callback-inotify #[128 "\211G\300U\203\f\211@\202\301\302\303GD\"\211AA\203\"\211A\262\242\202)\301\302\303GD\"\211A\262\242\211A\262\242\211A\262\242\203J\301\302\303\304G\\D\"\210\305\306\307\310\311\"\"$\207" [1 signal wrong-number-of-arguments file-notify--callback-inotify 4 file-notify--handle-event delq nil mapcar #[257 "\211\300\267\202\301\207\302\207\303\207\304\207\305\207\306\207\307\207\310\207" [#s(hash-table size 9 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (create 6 modify 8 attrib 10 delete 12 delete-self 12 move-self 12 moved-from 14 moved-to 16 ignored 18)) created changed attribute-changed deleted renamed-from renamed-to stopped nil] 3 "\n\n(fn ACTION)"]] 13 (#$ . 16511)]) #@87 Notification callback for kqueue. (fn (DESC ACTIONS FILE &optional FILE1-OR-COOKIE)) (defalias 'file-notify--callback-kqueue #[128 "\211G\300U\203\f\211@\202\301\302\303GD\"\211AA\203\"\211A\262\242\202)\301\302\303GD\"\211A\262\242\211A\262\242\211A\262\242\203J\301\302\303\304G\\D\"\210\305\306\307\310\311\"\"$\207" [1 signal wrong-number-of-arguments file-notify--callback-kqueue 4 file-notify--handle-event delq nil mapcar #[257 "\211\300\267\202\301\207\302\207\303\207\304\207\305\207\306\207" [#s(hash-table size 6 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (create 6 write 8 attrib 10 link 10 delete 12 rename 14)) created changed attribute-changed deleted renamed nil] 3 "\n\n(fn ACTION)"]] 13 (#$ . 17376)]) #@90 Notification callback for w32notify. (fn (DESC ACTIONS FILE &optional FILE1-OR-COOKIE)) (defalias 'file-notify--callback-w32notify #[128 "\211G\300U\203\f\211@\202\301\302\303GD\"\211AA\203\"\211A\262\242\202)\301\302\303GD\"\211A\262\242\211A\262\242\211A\262\242\203J\301\302\303\304G\\D\"\210\305\267\202d\306\202e\307\202e\310\202e\311\202e\312\202e\313\211\205p\314C$\262\207" [1 signal wrong-number-of-arguments file-notify--callback-w32notify 4 #s(hash-table size 5 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (added 80 modified 84 removed 88 renamed-from 92 renamed-to 96)) created changed deleted renamed-from renamed-to nil file-notify--handle-event] 12 (#$ . 18150)]) #@92 Notification callback for gfilenotify. (fn (DESC ACTIONS FILE &optional FILE1-OR-COOKIE)) (defalias 'file-notify--callback-gfilenotify #[128 "\211G\300U\203\f\211@\202\301\302\303GD\"\211AA\203\"\211A\262\242\202)\301\302\303GD\"\211A\262\242\211A\262\242\211A\262\242\203J\301\302\303\304G\\D\"\210\305\306\307\310\311:\203[\202^C\"\"$\207" [1 signal wrong-number-of-arguments file-notify--callback-gfilenotify 4 file-notify--handle-event delq nil mapcar #[257 "\211\300\267\202 \207\301\207\302\207" [#s(hash-table size 5 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (created 6 changed 6 attribute-changed 6 deleted 6 moved 7)) renamed nil] 3 "\n\n(fn ACTION)"]] 13 (#$ . 18888)]) #@99 Notification callback for file name handlers. (fn (DESC ACTIONS FILE &optional FILE1-OR-COOKIE)) (defalias 'file-notify-callback #[128 "\211G\300U\203\f\211@\202\301\302\303GD\"\211AA\203\"\211A\262\242\202)\301\302\303GD\"\211A\262\242\211A\262\242\211A\262\242\203J\301\302\303\304G\\D\"\210\305\306\307\310\311:\203[\202^C\"\"$\207" [1 signal wrong-number-of-arguments file-notify-callback 4 file-notify--handle-event delq nil mapcar #[257 "\211\300\267\202\207\301\207\302\207\303\207\304\207\305\207\306\207\307\207\310\207\311\207" [#s(hash-table size 14 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (created 6 changed 6 attribute-changed 6 deleted 6 moved 7 create 9 modify 11 attrib 13 delete 15 delete-self 15 move-self 15 moved-from 17 moved-to 19 ignored 21)) renamed created changed attribute-changed deleted renamed-from renamed-to stopped nil] 3 "\n\n(fn ACTION)"]] 13 (#$ . 19628)]) #@111 Call the handler of WATCH with the arguments DESC, ACTION, FILE and FILE1. (fn WATCH DESC ACTION FILE FILE1) (defalias 'file-notify--call-handler #[1285 "\302!>\204\303\304\305D\"\210\306H\203O\302!>\204&\303\304\305D\"\210\306H\307!\230\204O\211;\205\233\302!>\204E\303\304\305D\"\210\306H\307!\230\205\233 \203w\310\311\n\312\f!\302 !>\204p\303\304\305D\"\210\f\313H&\210\302!>\204\207\303\304\305D\"\210\314H\203\226F\202\232E!\207" [cl-struct-file-notify--watch-tags file-notify-debug type-of signal wrong-type-argument file-notify--watch 2 file-name-nondirectory message "file-notify-callback %S %S %S %S %S %S %S" file-notify--watch-absolute-filename 1 3] 17 (#$ . 20585)]) #@492 Handle an event returned from file notification. DESC is the back-end descriptor. ACTIONS is a list of: `created' `changed' `attribute-changed' `deleted' `renamed' -- FILE is old name, FILE1-OR-COOKIE is new name or nil `renamed-from' -- FILE is old name, FILE1-OR-COOKIE is cookie or nil `renamed-to' -- FILE is new name, FILE1-OR-COOKIE is cookie or nil `stopped' -- no more events after this should be sent (fn DESC ACTIONS FILE FILE1-OR-COOKIE) (defalias 'file-notify--handle-event #[1028 "\304\"\211\205\f\305\"\205\260\205\260\211A\262\242 \203\260\306 !\n>\204-\307\310\311 D\"\210 \312H\232\203;\211\313=\204\260\306\211 !\n>\204K\307\310\311 D\"\210 \314H! >\204l\307\310\315\306 !\n>\204f\307\310\311 D\"\210 \314HD\"\210\306 !\n>\204{\307\310\311 D\"\210 \314H\316H\211\203\255\211\306 !\n>\204\224\307\310\311 D\"\210 \317H\320\306 !\n>\204\247\307\310\311 D\"\210 \316HE!\210\321\210\321\322\267\202\203\305\305\"\262\202\320\262\202\323!\210\321\262\321\262\202\324\311\n %\321\262\202 \203|\306\211 !\n>\204\376\307\310\311 D\"\210 \314H! >\204\307\310\315\306 !\n>\204\307\310\311 D\"\210 \314HD\"\210\306 !\n>\204.\307\310\311 D\"\210 \314H\316H\306 !\n>\204B\307\310\311 D\"\210 \317H\306 !\n>\204T\307\310\311 D\"\210 \316H\262\211\262\n\232\204r\203r\325F!\210\321\325\262\266\202\326\262\203\215\327 %\210\330>\203\253\211;\203\236\331!\204\253\332!\230\203\253\323!\210\266\202\207" [file-notify-descriptors file-notify--pending-rename cl-struct-file-notify--rename-tags cl-struct-file-notify--watch-tags gethash file-notify--expand-file-name type-of signal wrong-type-argument file-notify--rename 4 renamed-to 1 file-notify--watch 3 2 deleted nil #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (renamed 183 stopped 203 renamed-from 217 renamed-to 234)) file-notify-rm-watch record renamed created file-notify--call-handler (deleted renamed) backup-file-name-p file-notify--watch-absolute-filename] 16 (#$ . 21328)]) #@77 Add a watch for FILE in DIR with FLAGS, using inotify. (fn FILE DIR FLAGS) (defalias 'file-notify--add-watch-inotify #[771 "\300\301\302>\205\n\303\304>\205\305\"\306#\207" [inotify-add-watch append change (create delete delete-self modify move-self move) attribute-change (attrib) file-notify--callback-inotify] 9 (#$ . 23456)]) #@76 Add a watch for FILE in DIR with FLAGS, using kqueue. (fn FILE DIR FLAGS) (defalias 'file-notify--add-watch-kqueue #[771 "\300\301\302>\205\n\303\304>\205\305\"\306#\207" [kqueue-add-watch append change (create delete write extend rename) attribute-change (attrib) file-notify--callback-kqueue] 9 (#$ . 23799)]) #@79 Add a watch for FILE in DIR with FLAGS, using w32notify. (fn FILE DIR FLAGS) (defalias 'file-notify--add-watch-w32notify #[771 "\300\301\302>\205\n\303\304>\205\305\"\306#\207" [w32notify-add-watch append change (file-name directory-name size last-write-time) attribute-change (attributes) file-notify--callback-w32notify] 9 (#$ . 24124)]) #@81 Add a watch for FILE in DIR with FLAGS, using gfilenotify. (fn FILE DIR FLAGS) (defalias 'file-notify--add-watch-gfilenotify #[771 "\300\301\302\"\303#\207" [gfile-add-watch append (watch-mounts send-moved) file-notify--callback-gfilenotify] 8 (#$ . 24477)]) #@1420 Add a watch for filesystem events pertaining to FILE. This arranges for filesystem events pertaining to FILE to be reported to Emacs. Use `file-notify-rm-watch' to cancel the watch. The returned value is a descriptor for the added watch. If the file cannot be watched for some reason, this function signals a `file-notify-error' error. FLAGS is a list of conditions to set what will be watched for. It can include the following symbols: `change' -- watch for file changes `attribute-change' -- watch for file attributes changes, like permissions or modification time If FILE is a directory, `change' watches for file creation or deletion in that directory. This does not work recursively. When any event happens, Emacs will call the CALLBACK function passing it a single argument EVENT, which is of the form (DESCRIPTOR ACTION FILE [FILE1]) DESCRIPTOR is the same object as the one returned by this function. ACTION is the description of the event. It could be any one of the following: `created' -- FILE was created `deleted' -- FILE was deleted `changed' -- FILE has changed `renamed' -- FILE has been renamed to FILE1 `attribute-changed' -- a FILE attribute was changed `stopped' -- watching FILE has been stopped FILE is the name of the file whose event is being reported. (fn FILE FLAGS CALLBACK) (defalias 'file-notify-add-watch #[771 ";\204 \303\304C\"\210\305!\262:\203\"\306\307\306\310\311!\"\"\203(\303\304C\"\210\312!\2044\303\304C\"\210\313\314\"\315\316!\203C\202F\317!!\316!\204T\303\320\321D\"\210\203c\314$\202\202\322\267\202y\323\202}\324\202}\325\202}\326\202}\303\320\327\"#\330\211?\205\212 \331!\211\211?\205\226 \332\333\331!\")\266\202\203\264\211G\334U\203\256\335\202\262\336\334\"\262\337!P)\266\203\316!?\205\310\340!\341\342$\266\203\343\n#\266\211\262\207" [file-notify--library file-name-handler-alist file-notify-descriptors signal wrong-type-argument expand-file-name delq change attribute-change copy-tree functionp find-file-name-handler file-notify-add-watch directory-file-name file-directory-p file-name-directory file-notify-error "Directory does not exist" #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (inotify 105 kqueue 109 w32notify 113 gfilenotify 117)) file-notify--add-watch-inotify file-notify--add-watch-kqueue file-notify--add-watch-w32notify file-notify--add-watch-gfilenotify ("No file notification package available") nil file-local-name string-prefix-p "/:" 2 "/" substring file-remote-p file-name-nondirectory record file-notify--watch puthash] 15 (#$ . 24747)]) #@140 Remove an existing watch specified by its DESCRIPTOR. DESCRIPTOR should be an object returned by `file-notify-add-watch'. (fn DESCRIPTOR) (defalias 'file-notify-rm-watch #[257 "\303\"\211\205g\304! >\204\305\306\307D\"\210\211\310H\205g\311\304! >\204-\305\306\307D\"\210\312H\313\"\3141^\211\203A\211\313\"\202Z\n\315\267\202W\316\202X\317\202X\320\202X\321\202X\322!0\202b\210\202c\210\210\323!\207" [file-notify-descriptors cl-struct-file-notify--watch-tags file-notify--library gethash type-of signal wrong-type-argument file-notify--watch 3 find-file-name-handler 1 file-notify-rm-watch (file-notify-error) #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (inotify 71 kqueue 75 gfilenotify 79 w32notify 83)) inotify-rm-watch kqueue-rm-watch gfile-rm-watch w32notify-rm-watch nil file-notify--rm-descriptor] 7 (#$ . 27499)]) #@129 Check a watch specified by its DESCRIPTOR. DESCRIPTOR should be an object returned by `file-notify-add-watch'. (fn DESCRIPTOR) (defalias 'file-notify-valid-p #[257 "\303\"\211\205G\304\305! >\204\306\307\310D\"\210\311H\312\"\211\203(\211\312\"\202A\n\313\267\202>\314\202?\315\202?\316\202?\317\202?\320!\205E\321\262\207" [file-notify-descriptors cl-struct-file-notify--watch-tags file-notify--library gethash find-file-name-handler type-of signal wrong-type-argument file-notify--watch 1 file-notify-valid-p #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (inotify 46 kqueue 50 gfilenotify 54 w32notify 58)) inotify-valid-p kqueue-valid-p gfile-valid-p w32notify-valid-p nil t] 7 (#$ . 28397)]) (provide 'filenotify)