File: names.h

package info (click to toggle)
reprepro 4.2.0-2squeeze1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 4,016 kB
  • ctags: 3,674
  • sloc: ansic: 46,905; sh: 13,899; pascal: 160; makefile: 159; python: 138
file content (40 lines) | stat: -rw-r--r-- 1,627 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#ifndef REPREPRO_NAMES_H
#define REPREPRO_NAMES_H

#ifndef REPREPRO_STRLIST_H
#include "strlist.h"
#endif

char *calc_addsuffix(const char *str1,const char *str2);
char *calc_dirconcat(const char *str1,const char *str2);
char *calc_dirconcat3(const char *str1,const char *str2,const char *str3);

#define calc_conffile(name) calc_dirconcat(global.confdir, name)
char *calc_changes_basename(const char *name,const char *version,const struct strlist *architectures);
char *calc_trackreferee(const char *codename,const char *sourcename,const char *sourceversion);
#define calc_snapshotbasedir(codename, name) mprintf("%s/%s/snapshots/%s", global.distdir, codename, name)


/* Create a strlist consisting out of calc_dirconcat'ed entries of the old */
retvalue calc_dirconcats(const char *directory, const struct strlist *basefilenames,/*@out@*/struct strlist *files);
retvalue calc_inplacedirconcats(const char *directory, struct strlist *);

/* move over a version number, if epochsuppresed is true, colons may happen even without epoch there */
void names_overversion(const char **version, bool epochsuppressed);

/* check for forbidden characters */
retvalue propersourcename(const char *string);
retvalue properfilenamepart(const char *string);
retvalue properfilename(const char *string);
retvalue properfilenames(const struct strlist *names);
retvalue properpackagename(const char *string);
retvalue properversion(const char *string);

static inline bool endswith(const char *name, const char *suffix) {
	size_t ln,ls;
	ln = strlen(name);
	ls = strlen(suffix);
	return ln > ls && strcmp(name+(ln-ls),suffix) == 0;
}

#endif