comparison lisp/files.el @ 5211:cdca98f2d36f

Move `default-file-system-ignore-case' to C; fix bug in directory hash tables src/ChangeLog addition: 2010-05-16 Aidan Kehoe <kehoea@parhasard.net> Move `default-file-system-ignore-case' to C; pay attention to it in creating the directory hash tables for #'locate-file. Fix a bug where #'eq was specified when creating directory hash tables in dired.c. * config.h.in (DEFAULT_FILE_SYSTEM_IGNORE_CASE): This is 1 on Darwin. * dired.c (make_directory_hash_table): If #'file-system-ignore-case-p gives non-nil for a directory, created the associated hash table with #'equalp as its test. Never use #'eq as a directory hash table test. * fileio.c (vars_of_fileio): Move `default-file-system-ignore-case' here, so it can be a constant boolean reflecting a compile-time #define. * lisp.h: Update the declaration of make_directory_hash_table; remove the declaration of wasteful_word_to_lisp, which was #ifdef'd out. * lread.c (Flocate_file): Take out a debugging statement from this function. (locate_file_refresh_hashing): Call make_directory_hash_table with a Lisp string, not an Ibyte pointer. (vars_of_lread): If DEFAULT_FILE_SYSTEM_IGNORE_CASE is defined, use #'equalp as the hash table test for locate-file-hash-table, not #'equal. * s/win32-common.h (DEFAULT_FILE_SYSTEM_IGNORE_CASE): Case should normally be ignored in file names on Win32. lisp/ChangeLog addition: 2010-05-16 Aidan Kehoe <kehoea@parhasard.net> * files.el (default-file-system-ignore-case): Move this to fileio.c, where it's a constant boolean variable initialised at dump time.
author Aidan Kehoe <kehoea@parhasard.net>
date Sun, 16 May 2010 12:33:21 +0100
parents 733f067a73ce
children 0d71bcf96ffd
comparison
equal deleted inserted replaced
5208:9fa29ec759e3 5211:cdca98f2d36f
4513 (car arguments) 4513 (car arguments)
4514 (apply operation arguments)))) 4514 (apply operation arguments))))
4515 4515
4516 ;; END SYNC WITH FSF 21.2. 4516 ;; END SYNC WITH FSF 21.2.
4517 4517
4518 ;; XEmacs: 4518 ;; XEmacs. Question; do any of the Linuxes mount Windows partitions in
4519 (defvar default-file-system-ignore-case (and 4519 ;; a fixed place?
4520 (memq system-type '(windows-nt
4521 cygwin32
4522 darwin))
4523 t)
4524 "What `file-system-ignore-case-p' returns by default.
4525 This is in the case that nothing in `file-system-case-alist' matches.")
4526
4527 ;; Question; do any of the Linuxes mount Windows partitions in a fixed
4528 ;; place?
4529 (defvar file-system-case-alist nil 4520 (defvar file-system-case-alist nil
4530 "Alist to decide where file name case is significant. 4521 "Alist to decide where file name case is significant.
4531 4522
4532 The format is ((PATTERN . VAL) ...), where PATTERN is a regular expression 4523 The format is ((PATTERN . VAL) ...), where PATTERN is a regular expression
4533 matching a file name, and VAL is t if corresponding file names are 4524 matching a file name, and VAL is t if corresponding file names are