From: Zbigniew Jędrzejewski-Szmek Date: Wed, 27 Apr 2016 12:59:12 +0000 (-0400) Subject: basic/dirent-util: do not call hidden_file_allow_backup from dirent_is_file_with_suffix X-Git-Tag: v231.3~172 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=792902f968872bb5dd8639bc7c6bbfc7831817f5;p=elogind.git basic/dirent-util: do not call hidden_file_allow_backup from dirent_is_file_with_suffix If the file name is supposed to end in a suffix, there's not need to check the name against a list of "special" file names, which is slow. Instead, just check that the name doens't start with a period. --- diff --git a/src/basic/dirent-util.c b/src/basic/dirent-util.c index 5fb535cb1..5019882a0 100644 --- a/src/basic/dirent-util.c +++ b/src/basic/dirent-util.c @@ -55,9 +55,7 @@ bool dirent_is_file(const struct dirent *de) { if (hidden_file(de->d_name)) return false; - if (de->d_type != DT_REG && - de->d_type != DT_LNK && - de->d_type != DT_UNKNOWN) + if (!IN_SET(de->d_type, DT_REG, DT_LNK, DT_UNKNOWN)) return false; return true; @@ -66,12 +64,10 @@ bool dirent_is_file(const struct dirent *de) { bool dirent_is_file_with_suffix(const struct dirent *de, const char *suffix) { assert(de); - if (de->d_type != DT_REG && - de->d_type != DT_LNK && - de->d_type != DT_UNKNOWN) + if (!IN_SET(de->d_type, DT_REG, DT_LNK, DT_UNKNOWN)) return false; - if (hidden_file_allow_backup(de->d_name)) + if (de->d_name[0] == '.') return false; return endswith(de->d_name, suffix);