Index: emacs/src/fileio.c diff -c emacs/src/fileio.c:1.538 emacs/src/fileio.c:1.539 *** emacs/src/fileio.c:1.538 Sun Apr 24 09:18:15 2005 --- emacs/src/fileio.c Sat Apr 30 20:12:13 2005 *************** *** 175,180 **** --- 175,184 ---- whose I/O is done with a special handler. */ Lisp_Object Vfile_name_handler_alist; + /* Property name of a file name handler, + which gives a list of operations it handles.. */ + Lisp_Object Qoperations; + /* Lisp functions for translating file formats */ Lisp_Object Qformat_decode, Qformat_annotate_function; *************** *** 366,378 **** elt = XCAR (chain); if (CONSP (elt)) { ! Lisp_Object string; int match_pos; ! string = XCAR (elt); if (STRINGP (string) ! && (match_pos = fast_string_match (string, filename)) > pos) { ! Lisp_Object handler, tem; handler = XCDR (elt); tem = Fmemq (handler, inhibited_handlers); --- 370,385 ---- elt = XCAR (chain); if (CONSP (elt)) { ! Lisp_Object string = XCAR (elt); int match_pos; ! Lisp_Object handler = XCDR (elt); ! Lisp_Object operations = Fget (handler, Qoperations); ! if (STRINGP (string) ! && (match_pos = fast_string_match (string, filename)) > pos ! && (NILP (operations) || ! NILP (Fmemq (operation, operations)))) { ! Lisp_Object tem; handler = XCDR (elt); tem = Fmemq (handler, inhibited_handlers); *************** *** 6437,6442 **** --- 6444,6450 ---- void syms_of_fileio () { + Qoperations = intern ("operations"); Qexpand_file_name = intern ("expand-file-name"); Qsubstitute_in_file_name = intern ("substitute-in-file-name"); Qdirectory_file_name = intern ("directory-file-name"); *************** *** 6471,6476 **** --- 6479,6485 ---- Qset_visited_file_modtime = intern ("set-visited-file-modtime"); Qauto_save_coding = intern ("auto-save-coding"); + staticpro (&Qoperations); staticpro (&Qexpand_file_name); staticpro (&Qsubstitute_in_file_name); staticpro (&Qdirectory_file_name);
_______________________________________________ Emacs-diffs mailing list Emacs-diffs@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-diffs