28
28
#include "strlist.h"
31
char *calc_addsuffix(const char *str1,const char *str2) {
32
return mprintf("%s.%s",str1,str2);
35
char *calc_dirconcat(const char *str1,const char *str2) {
36
return mprintf("%s/%s",str1,str2);
39
char *calc_dirconcat3(const char *str1,const char *str2,const char *str3) {
40
return mprintf("%s/%s/%s",str1,str2,str3);
31
char *calc_addsuffix(const char *str1, const char *str2) {
32
return mprintf("%s.%s", str1, str2);
35
char *calc_dirconcat(const char *str1, const char *str2) {
36
return mprintf("%s/%s", str1, str2);
39
char *calc_dirconcat3(const char *str1, const char *str2, const char *str3) {
40
return mprintf("%s/%s/%s", str1, str2, str3);
43
43
/* Create a strlist consisting out of calc_dirconcat'ed entries of the old */
49
assert(directory != NULL && basefilenames != NULL && files != NULL );
49
assert (directory != NULL && basefilenames != NULL && files != NULL);
51
r = strlist_init_n(basefilenames->count,files);
52
if( RET_WAS_ERROR(r) )
51
r = strlist_init_n(basefilenames->count, files);
56
for( i = 0 ; i < basefilenames->count ; i++ ) {
56
for (i = 0 ; i < basefilenames->count ; i++) {
59
59
file = calc_dirconcat(directory, basefilenames->values[i]);
60
if (FAILEDTOALLOC(file)) {
61
61
strlist_done(files);
62
62
return RET_ERROR_OOM;
64
r = strlist_add(files,file);
65
if( RET_WAS_ERROR(r) ) {
64
r = strlist_add(files, file);
65
if (RET_WAS_ERROR(r)) {
66
66
strlist_done(files);
91
91
const char *n = *version;
92
92
bool hadepoch = epochsuppressed;
94
if( *n < '0' || *n > '9' ) {
95
if( (*n < 'a' || *n > 'z') && (*n < 'A' || *n > 'Z') )
94
if (*n < '0' || *n > '9') {
95
if ((*n < 'a' || *n > 'z') && (*n < 'A' || *n > 'Z'))
99
while( *n >= '0' && *n <= '9' )
99
while (*n >= '0' && *n <= '9')
105
while( ( *n >= '0' && *n <= '9' ) || ( *n >= 'a' && *n <= 'z')
106
|| ( *n >= 'A' && *n <= 'Z' ) || *n == '.' || *n == '~'
107
|| *n == '-' || *n == '+' || (hadepoch && *n == ':') )
105
while ((*n >= '0' && *n <= '9') || (*n >= 'a' && *n <= 'z')
106
|| (*n >= 'A' && *n <= 'Z') || *n == '.' || *n == '~'
107
|| *n == '-' || *n == '+' || (hadepoch && *n == ':'))
112
char *calc_trackreferee(const char *codename,const char *sourcename,const char *sourceversion) {
113
return mprintf("%s %s %s",codename,sourcename,sourceversion);
112
char *calc_trackreferee(const char *codename, const char *sourcename, const char *sourceversion) {
113
return mprintf("%s %s %s", codename, sourcename, sourceversion);
116
char *calc_changes_basename(const char *name,const char *version,const struct strlist *architectures) {
116
char *calc_changes_basename(const char *name, const char *version, const struct strlist *architectures) {
117
117
size_t name_l, version_l, l;
121
121
name_l = strlen(name);
122
122
version_l = strlen(version);
123
123
l = name_l + version_l + sizeof("__.changes");
125
for( i = 0 ; i < architectures->count ; i++ ) {
125
for (i = 0 ; i < architectures->count ; i++) {
126
126
l += strlen(architectures->values[i]);
131
if (FAILEDTOALLOC(n))
134
134
memcpy(p, name, name_l); p+=name_l;
136
136
memcpy(p, version, version_l); p+=version_l;
138
for( i = 0 ; i < architectures->count ; i++ ) {
138
for (i = 0 ; i < architectures->count ; i++) {
139
139
size_t a_l = strlen(architectures->values[i]);
142
assert( (size_t)((p+a_l)-n) < l );
142
assert ((size_t)((p+a_l)-n) < l);
143
143
memcpy(p, architectures->values[i], a_l);
146
assert( (size_t)(p-n) < l-8 );
147
memcpy(p, ".changes", 9 ); p += 9;
148
assert( *(p-1) == '\0' );
149
assert( (size_t)(p-n) == l );
146
assert ((size_t)(p-n) < l-8);
147
memcpy(p, ".changes", 9); p += 9;
148
assert (*(p-1) == '\0');
149
assert ((size_t)(p-n) == l);