The value could be an alist or a symbol whose value is an alist.
Each element of the alist has the form
- (REGEXP (ETXENSION...))
+ (REGEXP (ETXENSION...))
+or
+ (REGEXP FUNCTION)
where REGEXP is the regular expression matching a file's extension,
-and EXTENSIONs is the list of literal file-name extensions to search for.
-This list should contain the most used extensions before the others,
-since the search algorithm searches sequentially through each
+EXTENSIONs is the list of literal file-name extensions to search for,
+and FUNCTION is a function of one argument, the current file's name,
+that returns the list of extensions to search for.
+The list of extensions should contain the most used extensions before the
+others, since the search algorithm searches sequentially through each
directory specified in `ff-search-directories'. If a file is not found,
a new one is created with the first matching extension (`.cc' yields `.hh').
This alist should be set by the major mode."