diff options
author | Lennart Poettering <lennart@poettering.net> | 2015-02-08 11:22:39 -0500 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2015-02-08 11:22:39 -0500 |
commit | 21212e522478551f3d256619a2efe2b885ad0948 (patch) | |
tree | b132101f9c1d5656596ed083a82c3ac220bce74a | |
parent | udev: event - minor nit (diff) | |
download | eudev-21212e522478551f3d256619a2efe2b885ad0948.tar.gz eudev-21212e522478551f3d256619a2efe2b885ad0948.tar.bz2 eudev-21212e522478551f3d256619a2efe2b885ad0948.zip |
util: rework strappenda(), and rename it strjoina()
After all it is now much more like strjoin() than strappend(). At the
same time, add support for NULL sentinels, even if they are normally not
necessary.
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
-rw-r--r-- | src/shared/conf-files.c | 2 | ||||
-rw-r--r-- | src/shared/util.h | 26 | ||||
-rw-r--r-- | src/udev/udev-builtin-net_id.c | 2 | ||||
-rw-r--r-- | src/udev/udevadm-util.c | 2 |
4 files changed, 16 insertions, 16 deletions
diff --git a/src/shared/conf-files.c b/src/shared/conf-files.c index c68f36113..b4c2f7154 100644 --- a/src/shared/conf-files.c +++ b/src/shared/conf-files.c @@ -42,7 +42,7 @@ static int files_add(Hashmap *h, const char *root, const char *path, const char assert(path); assert(suffix); - dirpath = strappenda(root ? root : "", path); + dirpath = strjoina(root ? root : "", path); dir = opendir(dirpath); if (!dir) { diff --git a/src/shared/util.h b/src/shared/util.h index b9f095791..c5dd6bde0 100644 --- a/src/shared/util.h +++ b/src/shared/util.h @@ -414,19 +414,19 @@ static inline unsigned log2u_round_up(unsigned x) { int unlink_noerrno(const char *path); -#define strappenda(a, ...) \ - ({ \ - int _len = strlen(a); \ - unsigned _i; \ - char *_d_, *_p_; \ - const char *_appendees_[] = { __VA_ARGS__ }; \ - for (_i = 0; _i < ELEMENTSOF(_appendees_); _i++) \ - _len += strlen(_appendees_[_i]); \ - _d_ = alloca(_len + 1); \ - _p_ = stpcpy(_d_, a); \ - for (_i = 0; _i < ELEMENTSOF(_appendees_); _i++) \ - _p_ = stpcpy(_p_, _appendees_[_i]); \ - _d_; \ +#define strjoina(a, ...) \ + ({ \ + const char *_appendees_[] = { a, __VA_ARGS__ }; \ + char *_d_, *_p_; \ + int _len_ = 0; \ + unsigned _i_; \ + for (_i_ = 0; _i_ < ELEMENTSOF(_appendees_) && _appendees_[_i_]; _i_++) \ + _len_ += strlen(_appendees_[_i_]); \ + _p_ = _d_ = alloca(_len_ + 1); \ + for (_i_ = 0; _i_ < ELEMENTSOF(_appendees_) && _appendees_[_i_]; _i_++) \ + _p_ = stpcpy(_p_, _appendees_[_i_]); \ + *_p_ = 0; \ + _d_; \ }) #define procfs_file_alloca(pid, field) \ diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c index 70ba06b29..97eb9dec0 100644 --- a/src/udev/udev-builtin-net_id.c +++ b/src/udev/udev-builtin-net_id.c @@ -153,7 +153,7 @@ static bool is_pci_multifunction(struct udev_device *dev) { const char *filename; uint8_t config[64]; - filename = strappenda(udev_device_get_syspath(dev), "/config"); + filename = strjoina(udev_device_get_syspath(dev), "/config"); f = fopen(filename, "re"); if (!f) return false; diff --git a/src/udev/udevadm-util.c b/src/udev/udevadm-util.c index 37e80c31d..3f0e45e26 100644 --- a/src/udev/udevadm-util.c +++ b/src/udev/udevadm-util.c @@ -25,7 +25,7 @@ struct udev_device *find_device(struct udev *udev, assert(id); if (prefix && !startswith(id, prefix)) - id = strappenda(prefix, id); + id = strjoina(prefix, id); if (startswith(id, "/dev/")) { struct stat statbuf; |