Now on revision 110945. ------------------------------------------------------------ revno: 110945 committer: Katsumi Yamaoka branch nick: trunk timestamp: Mon 2012-11-19 06:24:14 +0000 message: message.el (message-get-reply-headers): Make sure the reply goes to the author if it is a wide reply diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2012-11-16 17:20:23 +0000 +++ lisp/gnus/ChangeLog 2012-11-19 06:24:14 +0000 @@ -1,3 +1,8 @@ +2012-11-19 Katsumi Yamaoka + + * message.el (message-get-reply-headers): + Make sure the reply goes to the author if it is a wide reply. + 2012-11-16 Jan Tatarik * gnus-score.el (gnus-score-body): === modified file 'lisp/gnus/message.el' --- lisp/gnus/message.el 2012-11-02 23:37:02 +0000 +++ lisp/gnus/message.el 2012-11-19 06:24:14 +0000 @@ -6730,11 +6730,16 @@ ", ")) mct (message-fetch-field "mail-copies-to") author (or (message-fetch-field "mail-reply-to") - (message-fetch-field "reply-to") - (message-fetch-field "from") - "") + (message-fetch-field "reply-to")) mft (and message-use-mail-followup-to - (message-fetch-field "mail-followup-to")))) + (message-fetch-field "mail-followup-to"))) + ;; Make sure this message goes to the author if this is a wide + ;; reply, sine Reply-To address may be a list address a mailing + ;; list server added. + (when (and wide author) + (setq cc (concat author ", " cc))) + (when (or wide (not author)) + (setq author (or (message-fetch-field "from") "")))) ;; Handle special values of Mail-Copies-To. (when mct ------------------------------------------------------------ revno: 110944 committer: Jay Belanger branch nick: trunk timestamp: Sun 2012-11-18 23:03:08 -0600 message: * calc/calc-forms.el (math-leap-year-p): Fix formula for negative year numbers. (math-date-to-julian-dt): Adjust the initial approximation for the year to deal with the new definition of the DATE. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-11-19 01:39:37 +0000 +++ lisp/ChangeLog 2012-11-19 05:03:08 +0000 @@ -1,3 +1,10 @@ +2012-11-19 Jay Belanger + + * calc/calc-forms.el (math-leap-year-p): Fix formula for negative + year numbers. + (math-date-to-julian-dt): Adjust the initial approximation for the + year to deal with the new definition of the DATE. + 2012-11-19 Daniel Colascione * term/w32-win.el (cygwin-convert-path-from-windows): Accomodate === modified file 'lisp/calc/calc-forms.el' --- lisp/calc/calc-forms.el 2012-11-18 03:59:00 +0000 +++ lisp/calc/calc-forms.el 2012-11-19 05:03:08 +0000 @@ -371,9 +371,10 @@ ;;; These versions are rewritten to use arbitrary-size integers. ;;; A numerical date is the number of days since midnight on -;;; the morning of December 31, 1 B.C. Emacs's calendar refers to such -;;; a date as an absolute date, some function names also use that -;;; terminology. If the date is a non-integer, it represents a specific date and time. +;;; the morning of December 31, 1 B.C. (Gregorian) or January 2, 1 A.D. (Julian). +;;; Emacs's calendar refers to such a date as an absolute date, some Calc function +;;; names also use that terminology. If the date is a non-integer, it represents +;;; a specific date and time. ;;; A "dt" is a list of the form, (year month day), corresponding to ;;; an integer code, or (year month day hour minute second), corresponding ;;; to a non-integer code. @@ -408,8 +409,8 @@ (let* ((month 1) day (year (math-quotient (math-add date (if (Math-lessp date 711859) - 365 ; for speed, we take - -108)) ; >1950 as a special case + 367 ; for speed, we take + -106)) ; >1950 as a special case (if (math-negp date) 366 365))) ; this result may be an overestimate temp) @@ -494,6 +495,8 @@ (if (math-negp year) (= (math-imod (math-neg year) 4) 1) (= (math-imod year 4) 0)) + (if (math-negp year) + (setq year (math-sub -1 year))) (setq year (math-imod year 400)) (or (and (= (% year 4) 0) (/= (% year 100) 0)) (= year 0)))) ------------------------------------------------------------ revno: 110943 committer: Daniel Colascione branch nick: trunk timestamp: Sun 2012-11-18 17:39:37 -0800 message: Rename cygwin_convert_path* to cygwin_convert_file_name* diff: === modified file 'etc/NEWS' --- etc/NEWS 2012-11-18 01:52:36 +0000 +++ etc/NEWS 2012-11-19 01:39:37 +0000 @@ -1034,9 +1034,10 @@ Pass --with-w32 to configure. The default remains the X11 interface. ** Two new functions are available in Cygwin builds: -`cygwin-convert-path-from-windows' and `cygwin-convert-path-to-windows'. -These functions allow Lisp code to access the Cygwin file-name mapping -machinery to convert between Cygwin and Windows-native file names. +`cygwin-convert-file-name-from-windows' and +`cygwin-convert-file-name-to-windows'. These functions allow Lisp +code to access the Cygwin file-name mapping machinery to convert +between Cygwin and Windows-native file and directory names. ** When invoked with the -nw switch to run on the Windows text-mode terminal, Emacs now supports mouse highlight, help-echo (in the echo area), and === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-11-18 05:38:13 +0000 +++ lisp/ChangeLog 2012-11-19 01:39:37 +0000 @@ -1,3 +1,8 @@ +2012-11-19 Daniel Colascione + + * term/w32-win.el (cygwin-convert-path-from-windows): Accomodate + rename of cygwin_convert_path* to cygwin_convert_file_name*. + 2012-11-18 Chong Yidong * filecache.el (file-cache--read-list): New function. === modified file 'lisp/term/w32-win.el' --- lisp/term/w32-win.el 2012-11-17 21:52:12 +0000 +++ lisp/term/w32-win.el 2012-11-19 01:39:37 +0000 @@ -91,7 +91,7 @@ (declare-function w32-send-sys-command "w32fns.c") (declare-function set-message-beep "w32fns.c") -(declare-function cygwin-convert-path-from-windows "cygw32.c" +(declare-function cygwin-convert-file-name-from-windows "cygw32.c" (path &optional absolute_p)) ;; Conditional on new-fontset so bootstrapping works on non-GUI compiles @@ -108,7 +108,7 @@ (defun w32-handle-dropped-file (window file-name) (let ((f (if (eq system-type 'cygwin) - (cygwin-convert-path-from-windows file-name t) + (cygwin-convert-file-name-from-windows file-name t) (subst-char-in-string ?\\ ?/ file-name))) (coding (or file-name-coding-system default-file-name-coding-system))) === modified file 'src/ChangeLog' --- src/ChangeLog 2012-11-18 02:29:09 +0000 +++ src/ChangeLog 2012-11-19 01:39:37 +0000 @@ -1,3 +1,12 @@ +2012-11-19 Daniel Colascione + + * w32fns.c (Fx_file_dialog): + (Fx_file_dialog): Accomodate rename of cygwin_convert_path* to + cygwin_convert_file_name*. + + * cygw32.c (Fcygwin_convert_path_to_windows, syms_of_cygw32): + Rename cygwin_convert_path* to cygwin_convert_file_name*. + 2012-11-18 Paul Eggert * nsterm.m (ns_select): Send SIGIO only to self, not to process group. === modified file 'src/cygw32.c' --- src/cygw32.c 2012-10-29 17:24:29 +0000 +++ src/cygw32.c 2012-11-19 01:39:37 +0000 @@ -106,22 +106,24 @@ return unbind_to (count, DECODE_FILE (converted)); } -DEFUN ("cygwin-convert-path-to-windows", - Fcygwin_convert_path_to_windows, Scygwin_convert_path_to_windows, +DEFUN ("cygwin-convert-file-name-to-windows", + Fcygwin_convert_file_name_to_windows, + Scygwin_convert_file_name_to_windows, 1, 2, 0, - doc: /* Convert PATH to a Windows path. If ABSOLUTE-P if - non-nil, return an absolute path.*/) + doc: /* Convert PATH to a Windows path. If ABSOLUTE-P is +non-nil, return an absolute path.*/) (Lisp_Object path, Lisp_Object absolute_p) { return from_unicode ( conv_filename_to_w32_unicode (path, EQ (absolute_p, Qnil) ? 0 : 1)); } -DEFUN ("cygwin-convert-path-from-windows", - Fcygwin_convert_path_from_windows, Scygwin_convert_path_from_windows, +DEFUN ("cygwin-convert-file-name-from-windows", + Fcygwin_convert_file_name_from_windows, + Scygwin_convert_file_name_from_windows, 1, 2, 0, doc: /* Convert a Windows path to a Cygwin path. If ABSOLUTE-P - if non-nil, return an absolute path.*/) +is non-nil, return an absolute path.*/) (Lisp_Object path, Lisp_Object absolute_p) { return conv_filename_from_w32_unicode (to_unicode (path, &path), @@ -131,6 +133,6 @@ void syms_of_cygw32 (void) { - defsubr (&Scygwin_convert_path_from_windows); - defsubr (&Scygwin_convert_path_to_windows); + defsubr (&Scygwin_convert_file_name_from_windows); + defsubr (&Scygwin_convert_file_name_to_windows); } === modified file 'src/w32fns.c' --- src/w32fns.c 2012-11-12 04:00:55 +0000 +++ src/w32fns.c 2012-11-19 01:39:37 +0000 @@ -6167,9 +6167,9 @@ filename = empty_unibyte_string; #ifdef CYGWIN - dir = Fcygwin_convert_path_to_windows (dir, Qt); + dir = Fcygwin_convert_file_name_to_windows (dir, Qt); if (SCHARS (filename) > 0) - filename = Fcygwin_convert_path_to_windows (filename, Qnil); + filename = Fcygwin_convert_file_name_to_windows (filename, Qnil); #endif CHECK_STRING (dir); @@ -6270,7 +6270,7 @@ #endif /* NTGUI_UNICODE */ #ifdef CYGWIN - filename = Fcygwin_convert_path_from_windows (filename, Qt); + filename = Fcygwin_convert_file_name_from_windows (filename, Qt); #endif /* CYGWIN */ /* Strip the dummy filename off the end of the string if we ------------------------------------------------------------ revno: 110942 fixes bug: http://debbugs.gnu.org/12881 committer: Eli Zaretskii branch nick: trunk timestamp: Sun 2012-11-18 18:54:31 +0200 message: Fix latest changes in nt/inc/unistd.h. nt/inc/unistd.h: Don't include fcntl.h and don't define O_RDWR. diff: === modified file 'nt/ChangeLog' --- nt/ChangeLog 2012-11-17 23:58:56 +0000 +++ nt/ChangeLog 2012-11-18 16:54:31 +0000 @@ -1,3 +1,7 @@ +2012-11-18 Eli Zaretskii + + * inc/unistd.h: Don't include fcntl.h and don't define O_RDWR. + 2012-11-17 Juanma Barranquero * config.nt: Sync with autogen/config.in. === modified file 'nt/inc/unistd.h' --- nt/inc/unistd.h 2012-11-17 22:12:47 +0000 +++ nt/inc/unistd.h 2012-11-18 16:54:31 +0000 @@ -26,17 +26,6 @@ #define AT_EACCESS 4 #define AT_SYMLINK_NOFOLLOW 4096 -/* Here are some more fcntl.h macros that default to gnulib-compatible - values. Include first, to make sure we don't override - its values if any. FIXME: If we know does not define - O_NOCTTY and O_RDWR, this can be replaced with a simple "#define - O_NOCTTY 0" and "#define O_RDWR 2". */ -#include -#ifndef O_NOCTTY #define O_NOCTTY 0 -#endif -#ifndef O_RDWR -#define O_RDWR 2 -#endif #endif /* _UNISTD_H */ ------------------------------------------------------------ revno: 110941 committer: Glenn Morris branch nick: trunk timestamp: Sun 2012-11-18 06:19:05 -0500 message: Auto-commit of generated files. diff: === modified file 'autogen/Makefile.in' --- autogen/Makefile.in 2012-11-14 11:17:36 +0000 +++ autogen/Makefile.in 2012-11-18 11:19:05 +0000 @@ -36,7 +36,7 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=at-internal --avoid=errno --avoid=fchdir --avoid=fcntl --avoid=fstat --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow --avoid=openat-die --avoid=openat-h --avoid=raise --avoid=save-cwd --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-ctype c-strcase careadlinkat close-stream crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo faccessat filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub utimens warnings +# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --avoid=at-internal --avoid=errno --avoid=fchdir --avoid=fcntl --avoid=fstat --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow --avoid=openat-die --avoid=openat-h --avoid=raise --avoid=save-cwd --avoid=select --avoid=sigprocmask --avoid=sys_types --avoid=threadlib --makefile-name=gnulib.mk --conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files alloca-opt c-ctype c-strcase careadlinkat close-stream crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 dtoastr dtotimespec dup2 environ execinfo faccessat fcntl-h filemode getloadavg getopt-gnu gettime gettimeofday ignore-value intprops largefile lstat manywarnings mktime pselect pthread_sigmask readlink socklen stat-time stdalign stdarg stdbool stdio strftime strtoimax strtoumax symlink sys_stat sys_time time timer-time timespec-add timespec-sub utimens warnings VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ === modified file 'autogen/config.in' --- autogen/config.in 2012-11-17 11:17:40 +0000 +++ autogen/config.in 2012-11-18 11:19:05 +0000 @@ -369,9 +369,6 @@ /* Define to 1 if you have the `faccessat' function. */ #undef HAVE_FACCESSAT -/* Define to 1 if you have the header file. */ -#undef HAVE_FCNTL_H - /* Define to 1 if you have the `fork' function. */ #undef HAVE_FORK === modified file 'autogen/configure' --- autogen/configure 2012-11-17 11:17:40 +0000 +++ autogen/configure 2012-11-18 11:19:05 +0000 @@ -3206,7 +3206,6 @@ as_fn_append ac_header_list " linux/version.h" as_fn_append ac_header_list " sys/systeminfo.h" -as_fn_append ac_header_list " fcntl.h" as_fn_append ac_header_list " coff.h" as_fn_append ac_header_list " pty.h" as_fn_append ac_header_list " sys/vlimit.h" @@ -8782,8 +8781,6 @@ - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking if personality LINUX32 can be set" >&5 $as_echo_n "checking if personality LINUX32 can be set... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext ------------------------------------------------------------ revno: 110940 fixes bug: http://debbugs.gnu.org/12846 committer: Chong Yidong branch nick: trunk timestamp: Sun 2012-11-18 13:38:13 +0800 message: Avoid using "X" interactive flag in filecache.el. * filecache.el (file-cache--read-list): New function. (file-cache-add-directory-list, file-cache-add-file-list) (file-cache-delete-file-list, file-cache-delete-directory-list): Use it to read a list of files or directories. (file-cache-add-file, file-cache-add-directory) (file-cache-delete-file-list, file-cache-delete-file-regexp) (file-cache-delete-directory): Print an message. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-11-18 03:59:00 +0000 +++ lisp/ChangeLog 2012-11-18 05:38:13 +0000 @@ -1,3 +1,13 @@ +2012-11-18 Chong Yidong + + * filecache.el (file-cache--read-list): New function. + (file-cache-add-directory-list, file-cache-add-file-list) + (file-cache-delete-file-list, file-cache-delete-directory-list): + Use it to read a list of files or directories (Bug#12846). + (file-cache-add-file, file-cache-add-directory) + (file-cache-delete-file-list, file-cache-delete-file-regexp) + (file-cache-delete-directory): Print an message. + 2012-11-18 Jay Belanger * calc/calc-forms.el (math-date-to-dt): Use integer date when === modified file 'lisp/filecache.el' --- lisp/filecache.el 2012-11-18 01:52:36 +0000 +++ lisp/filecache.el 2012-11-18 05:38:13 +0000 @@ -267,44 +267,63 @@ ;; Functions to add files to the cache ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defun file-cache--read-list (file op-prompt) + (let* ((fun (if file 'read-file-name 'read-directory-name)) + (type (if file "file" "directory")) + (prompt-1 (concat op-prompt " " type ": ")) + (prompt-2 (concat op-prompt " another " type "?")) + (continue t) + result) + (while continue + (push (funcall fun prompt-1 nil nil t) result) + (setq continue (y-or-n-p prompt-2))) + (nreverse result))) + ;;;###autoload (defun file-cache-add-directory (directory &optional regexp) - "Add DIRECTORY to the file cache. -If the optional REGEXP argument is non-nil, only files which match it will -be added to the cache." - (interactive "DAdd files from directory: ") + "Add all files in DIRECTORY to the file cache. +If called from Lisp with a non-nil REGEXP argument is non-nil, +only add files whose names match REGEXP." + (interactive (list (read-directory-name "Add files from directory: " + nil nil t) + nil)) ;; Not an error, because otherwise we can't use load-paths that ;; contain non-existent directories. - (if (not (file-accessible-directory-p directory)) - (message "Directory %s does not exist" directory) + (when (file-accessible-directory-p directory) (let* ((dir (expand-file-name directory)) (dir-files (directory-files dir t regexp))) ;; Filter out files we don't want to see (dolist (file dir-files) - (if (file-directory-p file) - (setq dir-files (delq file dir-files)) - (dolist (regexp file-cache-filter-regexps) - (if (string-match regexp file) - (setq dir-files (delq file dir-files)))))) + (if (file-directory-p file) + (setq dir-files (delq file dir-files)) + (dolist (regexp file-cache-filter-regexps) + (if (string-match regexp file) + (setq dir-files (delq file dir-files)))))) (file-cache-add-file-list dir-files)))) ;;;###autoload -(defun file-cache-add-directory-list (directory-list &optional regexp) - "Add DIRECTORY-LIST (a list of directory names) to the file cache. +(defun file-cache-add-directory-list (directories &optional regexp) + "Add DIRECTORIES (a list of directory names) to the file cache. +If called interactively, read the directory names one by one. If the optional REGEXP argument is non-nil, only files which match it will be added to the cache. Note that the REGEXP is applied to the files in each directory, not to the directory list itself." - (interactive "XAdd files from directory list: ") - (mapcar - (lambda (dir) (file-cache-add-directory dir regexp)) - directory-list)) + (interactive (list (file-cache--read-list nil "Add"))) + (dolist (dir directories) + (file-cache-add-directory dir regexp)) + (let ((n (length directories))) + (message "Filecache: cached file names from %d director%s." + n (if (= n 1) "y" "ies")))) -(defun file-cache-add-file-list (file-list) - "Add FILE-LIST (a list of file names) to the file cache. -Interactively, FILE-LIST is read as a Lisp expression, which -should evaluate to the desired list of file names." - (interactive "XFile List: ") - (mapcar 'file-cache-add-file file-list)) +(defun file-cache-add-file-list (files) + "Add FILES (a list of file names) to the file cache. +If called interactively, read the file names one by one." + (interactive (list (file-cache--read-list t "Add"))) + (dolist (f files) + (file-cache-add-file f)) + (let ((n (length files))) + (message "Filecache: cached %d file name%s." + n (if (= n 1) "" "s")))) ;; Workhorse function @@ -319,15 +338,18 @@ (dir-name (file-name-directory file)) (the-entry (assoc-string file-name file-cache-alist file-cache-ignore-case))) - ;; Does the entry exist already? - (if the-entry - (unless (or (and (stringp (cdr the-entry)) - (string= dir-name (cdr the-entry))) - (and (listp (cdr the-entry)) - (member dir-name (cdr the-entry)))) - (setcdr the-entry (cons dir-name (cdr the-entry)))) - ;; If not, add it to the cache - (push (list file-name dir-name) file-cache-alist)))) + (cond ((null the-entry) + ;; If the entry wasn't in the cache, add it. + (push (list file-name dir-name) file-cache-alist) + (if (called-interactively-p 'interactive) + (message "Filecache: cached file name %s." file))) + ((not (member dir-name (cdr the-entry))) + (setcdr the-entry (cons dir-name (cdr the-entry))) + (if (called-interactively-p 'interactive) + (message "Filecache: cached file name %s." file))) + (t + (if (called-interactively-p 'interactive) + (message "Filecache: %s is already cached." file)))))) ;;;###autoload (defun file-cache-add-directory-using-find (directory) @@ -413,17 +435,26 @@ ;; This clears *all* files with the given name (defun file-cache-delete-file (file) - "Delete FILE from the file cache." + "Delete FILE (a relative file name) from the file cache. +Return nil if FILE was not in the file cache, non-nil otherwise." (interactive (list (completing-read "Delete file from cache: " file-cache-alist))) - (setq file-cache-alist - (delq (assoc-string file file-cache-alist file-cache-ignore-case) - file-cache-alist))) + (let ((elt (assoc-string file file-cache-alist file-cache-ignore-case))) + (setq file-cache-alist (delq elt file-cache-alist)) + elt)) -(defun file-cache-delete-file-list (file-list) - "Delete FILE-LIST (a list of files) from the file cache." - (interactive "XFile List: ") - (mapcar 'file-cache-delete-file file-list)) +(defun file-cache-delete-file-list (files &optional message) + "Delete FILES (a list of files) from the file cache. +If called interactively, read the file names one by one. +If MESSAGE is non-nil, or if called interactively, print a +message reporting the number of file names deleted." + (interactive (list (file-cache--read-list t "Uncache") t)) + (let ((n 0)) + (dolist (f files) + (if (file-cache-delete-file f) + (setq n (1+ n)))) + (message "Filecache: uncached %d file name%s." + n (if (= n 1) "" "s")))) (defun file-cache-delete-file-regexp (regexp) "Delete files matching REGEXP from the file cache." @@ -432,21 +463,18 @@ (dolist (elt file-cache-alist) (and (string-match regexp (car elt)) (push (car elt) delete-list))) - (file-cache-delete-file-list delete-list) - (message "Filecache: deleted %d files from file cache" - (length delete-list)))) + (file-cache-delete-file-list delete-list))) (defun file-cache-delete-directory (directory) "Delete DIRECTORY from the file cache." (interactive "DDelete directory from file cache: ") (let ((dir (expand-file-name directory)) - (result 0)) + (n 0)) (dolist (entry file-cache-alist) (if (file-cache-do-delete-directory dir entry) - (setq result (1+ result)))) - (if (zerop result) - (error "Filecache: no entries containing %s found in cache" directory) - (message "Filecache: deleted %d entries" result)))) + (setq n (1+ n)))) + (message "Filecache: uncached %d file name%s." + n (if (= n 1) "" "s")))) (defun file-cache-do-delete-directory (dir entry) (let ((directory-list (cdr entry)) @@ -457,10 +485,12 @@ (delq entry file-cache-alist)) (setcdr entry (delete directory directory-list)))))) -(defun file-cache-delete-directory-list (directory-list) - "Delete DIRECTORY-LIST (a list of directories) from the file cache." - (interactive "XDirectory List: ") - (mapcar 'file-cache-delete-directory directory-list)) +(defun file-cache-delete-directory-list (directories) + "Delete DIRECTORIES (a list of directory names) from the file cache. +If called interactively, read the directory names one by one." + (interactive (list (file-cache--read-list nil "Uncache"))) + (dolist (d directories) + (file-cache-delete-directory d))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Utility functions