+ /* This is a possible completion */
+ if (directoryp)
+ {
+ /* This completion is a directory; make it end with '/' */
+ name = Ffile_name_as_directory (make_string (dp->d_name, len));
+ }
+ else
+ name = make_string (dp->d_name, len);
+
+ /* Test the predicate, if any. */
+
+ if (!NILP (predicate))
+ {
+ Lisp_Object decoded;
+ decoded = Fexpand_file_name (DECODE_FILE (name), dirname);
+ if (NILP (call1 (predicate, decoded)))
+ continue;
+ }
+
+ /* Suitably record this match. */