summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-02-14 01:07:01 +0100
committerLennart Poettering <lennart@poettering.net>2010-02-14 01:07:01 +0100
commitc85dc17be718014260e10e41d15ba8f7329fed26 (patch)
tree7a6a41ca48f4bb0a6e073ad1dce0b09acac61f7d
parenta6a80b4f440bcc1c6087572503c08a72ee674075 (diff)
util: unify code to check whether certain file names should be ignored when listing files
-rw-r--r--load-dropin.c6
-rw-r--r--util.c14
-rw-r--r--util.h2
3 files changed, 17 insertions, 5 deletions
diff --git a/load-dropin.c b/load-dropin.c
index af95d37a03..a3c9d3c77d 100644
--- a/load-dropin.c
+++ b/load-dropin.c
@@ -60,12 +60,8 @@ int unit_load_dropin(Unit *u) {
free(path);
while ((de = readdir(d))) {
- if (de->d_name[0] == '.')
- continue;
-
- assert(de->d_name[0]);
- if (de->d_name[strlen(de->d_name)-1] == '~')
+ if (ignore_file(de->d_name))
continue;
if (asprintf(&path, "%s/%s.wants/%s", *p, t, de->d_name) < 0) {
diff --git a/util.c b/util.c
index 496f55166b..e31649861d 100644
--- a/util.c
+++ b/util.c
@@ -1058,6 +1058,20 @@ char *ascii_strlower(char *path) {
return p;
}
+bool ignore_file(const char *filename) {
+ assert(filename);
+
+ return
+ filename[0] == '.' ||
+ endswith(filename, "~") ||
+ endswith(filename, ".rpmnew") ||
+ endswith(filename, ".rpmsave") ||
+ endswith(filename, ".rpmorig") ||
+ endswith(filename, ".dpkg-old") ||
+ endswith(filename, ".dpkg-new") ||
+ endswith(filename, ".swp");
+}
+
static const char *const ioprio_class_table[] = {
[IOPRIO_CLASS_NONE] = "none",
[IOPRIO_CLASS_RT] = "realtime",
diff --git a/util.h b/util.h
index 71645a70cc..e005a2a072 100644
--- a/util.h
+++ b/util.h
@@ -151,6 +151,8 @@ char *xescape(const char *s, const char *bad);
char *bus_path_escape(const char *s);
char *bus_path_unescape(const char *s);
+bool ignore_file(const char *filename);
+
#define DEFINE_STRING_TABLE_LOOKUP(name,type) \
const char *name##_to_string(type i) { \
if (i < 0 || i >= (type) ELEMENTSOF(name##_table)) \