30 #ifndef APT_8_CLEANER_HEADERS
36 bool UTF8ToCodeset(
const char *codeset,
const std::string &orig, std::string *dest);
37 char *_strstrip(
char *String);
38 char *_strrstrip(
char *String);
39 char *_strtabexpand(
char *String,
size_t Len);
40 bool ParseQuoteWord(
const char *&String,std::string &Res);
41 bool ParseCWord(
const char *&String,std::string &Res);
42 std::string QuoteString(
const std::string &Str,
const char *Bad);
43 std::string DeQuoteString(
const std::string &Str);
44 std::string DeQuoteString(std::string::const_iterator
const &begin, std::string::const_iterator
const &end);
47 std::string DeEscapeString(
const std::string &input);
49 std::string SizeToStr(
double Bytes);
50 std::string TimeToStr(
unsigned long Sec);
51 std::string Base64Encode(
const std::string &Str);
52 std::string OutputInDepth(
const unsigned long Depth,
const char* Separator=
" ");
53 std::string URItoFileName(
const std::string &
URI);
54 std::string TimeRFC1123(time_t Date);
55 bool RFC1123StrToTime(
const char*
const str,time_t &time) __must_check;
56 bool FTPMDTMStrToTime(
const char*
const str,time_t &time) __must_check;
57 __deprecated
bool StrToTime(
const std::string &Val,time_t &Result);
58 std::string LookupTag(
const std::string &Message,
const char *Tag,
const char *Default = 0);
59 int StringToBool(
const std::string &Text,
int Default = -1);
60 bool ReadMessages(
int Fd, std::vector<std::string> &List);
61 bool StrToNum(
const char *Str,
unsigned long &Res,
unsigned Len,
unsigned Base = 0);
62 bool StrToNum(
const char *Str,
unsigned long long &Res,
unsigned Len,
unsigned Base = 0);
63 bool Base256ToNum(
const char *Str,
unsigned long &Res,
unsigned int Len);
64 bool Hex2Num(
const std::string &Str,
unsigned char *Num,
unsigned int Length);
65 bool TokSplitString(
char Tok,
char *Input,
char **List,
66 unsigned long ListMax);
67 std::vector<std::string> VectorizeString(std::string
const &haystack,
char const &split) __attrib_const;
68 void ioprintf(std::ostream &out,
const char *format,...) __like_printf(2);
69 void strprintf(std::
string &out,const
char *format,...) __like_printf(2);
70 char *safe_snprintf(
char *Buffer,
char *End,const
char *Format,...) __like_printf(3);
71 bool CheckDomainList(const std::
string &Host, const std::
string &List);
72 int tolower_ascii(
int const c) __attrib_const __hot;
73 std::
string StripEpoch(const std::
string &VerStr);
75 #define APT_MKSTRCMP(name,func) \
76 inline int name(const char *A,const char *B) {return func(A,A+strlen(A),B,B+strlen(B));}; \
77 inline int name(const char *A,const char *AEnd,const char *B) {return func(A,AEnd,B,B+strlen(B));}; \
78 inline int name(const std::string& A,const char *B) {return func(A.c_str(),A.c_str()+A.length(),B,B+strlen(B));}; \
79 inline int name(const std::string& A,const std::string& B) {return func(A.c_str(),A.c_str()+A.length(),B.c_str(),B.c_str()+B.length());}; \
80 inline int name(const std::string& A,const char *B,const char *BEnd) {return func(A.c_str(),A.c_str()+A.length(),B,BEnd);};
82 #define APT_MKSTRCMP2(name,func) \
83 inline int name(const char *A,const char *AEnd,const char *B) {return func(A,AEnd,B,B+strlen(B));}; \
84 inline int name(const std::string& A,const char *B) {return func(A.begin(),A.end(),B,B+strlen(B));}; \
85 inline int name(const std::string& A,const std::string& B) {return func(A.begin(),A.end(),B.begin(),B.end());}; \
86 inline int name(const std::string& A,const char *B,const char *BEnd) {return func(A.begin(),A.end(),B,BEnd);};
88 int stringcmp(
const char *A,
const char *AEnd,
const char *B,
const char *BEnd);
89 int stringcasecmp(
const char *A,
const char *AEnd,
const char *B,
const char *BEnd);
95 int stringcmp(std::string::const_iterator A,std::string::const_iterator AEnd,
96 const char *B,
const char *BEnd);
97 int stringcmp(std::string::const_iterator A,std::string::const_iterator AEnd,
98 std::string::const_iterator B,std::string::const_iterator BEnd);
99 int stringcasecmp(std::string::const_iterator A,std::string::const_iterator AEnd,
100 const char *B,
const char *BEnd);
101 int stringcasecmp(std::string::const_iterator A,std::string::const_iterator AEnd,
102 std::string::const_iterator B,std::string::const_iterator BEnd);
104 inline int stringcmp(std::string::const_iterator A,std::string::const_iterator Aend,
const char *B) {
return stringcmp(A,Aend,B,B+strlen(B));};
105 inline int stringcasecmp(std::string::const_iterator A,std::string::const_iterator Aend,
const char *B) {
return stringcasecmp(A,Aend,B,B+strlen(B));};
108 APT_MKSTRCMP2(stringcmp,stringcmp);
109 APT_MKSTRCMP2(stringcasecmp,stringcasecmp);
112 size_t strv_length(
const char **str_array);
115 inline const char *DeNull(
const char *s) {
return (s == 0?
"(null)":s);};
119 void CopyFrom(
const std::string &From);
125 std::string Password;
130 operator std::string();
131 inline void operator =(
const std::string &From) {CopyFrom(From);};
132 inline bool empty() {
return Access.empty();};
133 static std::string SiteOnly(
const std::string &
URI);
134 static std::string NoUserPassword(
const std::string &URI);
136 URI(std::string Path) {CopyFrom(Path);};
143 const std::string *Contents;
146 std::string
SubstVar(
const std::string &Str,
const std::string &Subst,
const std::string &Contents);
154 unsigned long RegexChoice(
RxChoiceList *Rxs,
const char **ListBegin,
155 const char **ListEnd);