dcavalca / rpms / systemd

Forked from rpms/systemd 2 years ago
Clone
Zbigniew Jędrzejewski-Szmek 7f93bc
From f6c97dfac68184fd99a09ee6c048d7a859677fe5 Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek a59965
From: Harald Hoyer <harald@redhat.com>
Zbigniew Jędrzejewski-Szmek a59965
Date: Thu, 6 Mar 2014 16:35:02 +0100
Zbigniew Jędrzejewski-Szmek a59965
Subject: [PATCH] Add strappenda3
Zbigniew Jędrzejewski-Szmek a59965
Zbigniew Jędrzejewski-Szmek a59965
(cherry picked from commit f39d4a08e746e703d562076a0f622eb91dbdcd3e)
Zbigniew Jędrzejewski-Szmek a59965
Zbigniew Jędrzejewski-Szmek a59965
For strappenda3, and it seems a good fix in general.
Zbigniew Jędrzejewski-Szmek a59965
Zbigniew Jędrzejewski-Szmek a59965
(cherry picked from commit 4f0b9b433473d4f2b24675253064fd098d21e5a6)
Zbigniew Jędrzejewski-Szmek a59965
Zbigniew Jędrzejewski-Szmek a59965
Conflicts:
Zbigniew Jędrzejewski-Szmek a59965
	src/systemctl/systemctl.c
Zbigniew Jędrzejewski-Szmek a59965
---
Zbigniew Jędrzejewski-Szmek a59965
 src/shared/util.h | 13 +++++++++++++
Zbigniew Jędrzejewski-Szmek a59965
 1 file changed, 13 insertions(+)
Zbigniew Jędrzejewski-Szmek a59965
Zbigniew Jędrzejewski-Szmek a59965
diff --git a/src/shared/util.h b/src/shared/util.h
Zbigniew Jędrzejewski-Szmek 1cc3df
index 20d81e5c80..3f9766339d 100644
Zbigniew Jędrzejewski-Szmek a59965
--- a/src/shared/util.h
Zbigniew Jędrzejewski-Szmek a59965
+++ b/src/shared/util.h
Zbigniew Jędrzejewski-Szmek a59965
@@ -728,6 +728,19 @@ int unlink_noerrno(const char *path);
Zbigniew Jędrzejewski-Szmek a59965
                 _c_;                                    \
Zbigniew Jędrzejewski-Szmek a59965
         })
Zbigniew Jędrzejewski-Szmek a59965
 
Zbigniew Jędrzejewski-Szmek a59965
+#define strappenda3(a, b, c)                                    \
Zbigniew Jędrzejewski-Szmek a59965
+        ({                                                      \
Zbigniew Jędrzejewski-Szmek a59965
+                const char *_a_ = (a), *_b_ = (b), *_c_ = (c);  \
Zbigniew Jędrzejewski-Szmek a59965
+                char *_d_;                                      \
Zbigniew Jędrzejewski-Szmek a59965
+                size_t _x_, _y_, _z_;                           \
Zbigniew Jędrzejewski-Szmek a59965
+                _x_ = strlen(_a_);                              \
Zbigniew Jędrzejewski-Szmek a59965
+                _y_ = strlen(_b_);                              \
Zbigniew Jędrzejewski-Szmek a59965
+                _z_ = strlen(_c_);                              \
Zbigniew Jędrzejewski-Szmek a59965
+                _d_ = alloca(_x_ + _y_ + _z_ + 1);              \
Zbigniew Jędrzejewski-Szmek a59965
+                strcpy(stpcpy(stpcpy(_d_, _a_), _b_), _c_);     \
Zbigniew Jędrzejewski-Szmek a59965
+                _d_;                                            \
Zbigniew Jędrzejewski-Szmek a59965
+        })
Zbigniew Jędrzejewski-Szmek a59965
+
Zbigniew Jędrzejewski-Szmek a59965
 #define procfs_file_alloca(pid, field)                                  \
Zbigniew Jędrzejewski-Szmek a59965
         ({                                                              \
Zbigniew Jędrzejewski-Szmek a59965
                 pid_t _pid_ = (pid);                                    \