Mailinglist Archive: zypp-commit (171 mails)

< Previous Next >
[zypp-commit] <sat-solver> master : - add pool_tmpjoin and sat_dupjoin helpers
  • From: Michael Schroeder <mls@xxxxxxx>
  • Date: Wed, 24 Jun 2009 13:53:30 +0200
  • Message-id: <E1MJR2x-00011F-4e@xxxxxxxxxxxxxxxx>
ref: refs/heads/master
commit a0a50d58fc36591062459d03eeb2f271da7bada2
Author: Michael Schroeder <mls@xxxxxxx>
Date: Wed Jun 24 13:53:30 2009 +0200

- add pool_tmpjoin and sat_dupjoin helpers
---
src/pool.c | 29 +++++++++++++++++++++++++++++
src/pool.h | 1 +
src/util.c | 28 ++++++++++++++++++++++++++++
src/util.h | 1 +
4 files changed, 59 insertions(+), 0 deletions(-)

diff --git a/src/pool.c b/src/pool.c
index ec87a4b..9155c2f 100644
--- a/src/pool.c
+++ b/src/pool.c
@@ -1173,6 +1173,35 @@ pool_alloctmpspace(Pool *pool, int len)
return pool->tmpspacebuf[n];
}

+char *
+pool_tmpjoin(Pool *pool, const char *str1, const char *str2, const char *str3)
+{
+ int l1, l2, l3;
+ char *s, *str;
+ l1 = str1 ? strlen(str1) : 0;
+ l2 = str2 ? strlen(str2) : 0;
+ l3 = str3 ? strlen(str3) : 0;
+ s = str = pool_alloctmpspace(pool, l1 + l2 + l3 + 1);
+ if (l1)
+ {
+ strcpy(s, str1);
+ s += l1;
+ }
+ if (l2)
+ {
+ strcpy(s, str2);
+ s += l2;
+ }
+ if (l3)
+ {
+ strcpy(s, str3);
+ s += l3;
+ }
+ *s = 0;
+ return str;
+}
+
+
/*******************************************************************/

struct mptree {
diff --git a/src/pool.h b/src/pool.h
index 47e12cc..3df007b 100644
--- a/src/pool.h
+++ b/src/pool.h
@@ -176,6 +176,7 @@ extern void pool_free(Pool *pool);
extern void pool_debug(Pool *pool, int type, const char *format, ...)
__attribute__((format(printf, 3, 4)));

extern char *pool_alloctmpspace(Pool *pool, int len);
+extern char *pool_tmpjoin(Pool *pool, const char *str1, const char *str2,
const char *str3);

extern void pool_set_installed(Pool *pool, struct _Repo *repo);

diff --git a/src/util.c b/src/util.c
index cde01f4..7dea6aa 100644
--- a/src/util.c
+++ b/src/util.c
@@ -108,3 +108,31 @@ sat_sort(void *base, size_t nmemb, size_t size, int
(*compar)(const void *, cons
{
qsort_r(base, nmemb, size, compar, compard);
}
+
+char *
+sat_dupjoin(const char *str1, const char *str2, const char *str3)
+{
+ int l1, l2, l3;
+ char *s, *str;
+ l1 = str1 ? strlen(str1) : 0;
+ l2 = str2 ? strlen(str2) : 0;
+ l3 = str3 ? strlen(str3) : 0;
+ s = str = sat_malloc(l1 + l2 + l3 + 1);
+ if (l1)
+ {
+ strcpy(s, str1);
+ s += l1;
+ }
+ if (l2)
+ {
+ strcpy(s, str2);
+ s += l2;
+ }
+ if (l3)
+ {
+ strcpy(s, str3);
+ s += l3;
+ }
+ *s = 0;
+ return str;
+}
diff --git a/src/util.h b/src/util.h
index e578faf..6191d43 100644
--- a/src/util.h
+++ b/src/util.h
@@ -29,6 +29,7 @@ extern void *sat_free(void *);
extern void sat_oom(size_t, size_t);
extern unsigned int sat_timems(unsigned int subtract);
extern void sat_sort(void *base, size_t nmemb, size_t size, int
(*compar)(const void *, const void *, void *), void *compard);
+extern char *sat_dupjoin(const char *str1, const char *str2, const char *str3);

static inline void *sat_extend(void *buf, size_t len, size_t nmemb, size_t
size, size_t block)
{
--
To unsubscribe, e-mail: zypp-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: zypp-commit+help@xxxxxxxxxxxx

< Previous Next >
This Thread
  • No further messages