/usr/include/rpm/rpmstring.h is in librpm-dev 4.12.0.1+dfsg1-3build3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 | #ifndef _RPMSTRING_H_
#define _RPMSTRING_H_
/** \ingroup rpmstring
* \file rpmio/rpmstring.h
* String manipulation helper functions
*/
#include <stddef.h>
#include <string.h>
#include <rpm/rpmutil.h>
#ifdef __cplusplus
extern "C" {
#endif
/** \ingroup rpmstring
* Locale insensitive islower(3)
*/
RPM_GNUC_CONST
static inline int rislower(int c) {
return (c >= 'a' && c <= 'z');
}
/** \ingroup rpmstring
* Locale insensitive isupper(3)
*/
RPM_GNUC_CONST
static inline int risupper(int c) {
return (c >= 'A' && c <= 'Z');
}
/** \ingroup rpmstring
* Locale insensitive isalpha(3)
*/
RPM_GNUC_CONST
static inline int risalpha(int c) {
return (rislower(c) || risupper(c));
}
/** \ingroup rpmstring
* Locale insensitive isdigit(3)
*/
RPM_GNUC_CONST
static inline int risdigit(int c) {
return (c >= '0' && c <= '9');
}
/** \ingroup rpmstring
* Locale insensitive isalnum(3)
*/
RPM_GNUC_CONST
static inline int risalnum(int c) {
return (risalpha(c) || risdigit(c));
}
/** \ingroup rpmstring
* Locale insensitive isblank(3)
*/
RPM_GNUC_CONST
static inline int risblank(int c) {
return (c == ' ' || c == '\t');
}
/** \ingroup rpmstring
* Locale insensitive isspace(3)
*/
RPM_GNUC_CONST
static inline int risspace(int c) {
return (risblank(c) || c == '\n' || c == '\r' || c == '\f' || c == '\v');
}
/** \ingroup rpmstring
* Locale insensitive tolower(3)
*/
RPM_GNUC_CONST
static inline int rtolower(int c) {
return ((risupper(c)) ? (c | ('a' - 'A')) : c);
}
/** \ingroup rpmstring
* Locale insensitive toupper(3)
*/
RPM_GNUC_CONST
static inline int rtoupper(int c) {
return ((rislower(c)) ? (c & ~('a' - 'A')) : c);
}
/**
* Convert hex to binary nibble.
* @param c hex character
* @return binary nibble
*/
RPM_GNUC_CONST
static inline unsigned char rnibble(char c)
{
if (c >= '0' && c <= '9')
return (c - '0');
if (c >= 'a' && c <= 'f')
return (c - 'a') + 10;
if (c >= 'A' && c <= 'F')
return (c - 'A') + 10;
return 0;
}
/**
* Test for string equality
* @param s1 string 1
* @param s2 string 2
* @return 0 if strings differ, 1 if equal
*/
static inline int rstreq(const char *s1, const char *s2)
{
return (strcmp(s1, s2) == 0);
}
/**
* Test for string equality
* @param s1 string 1
* @param s2 string 2
* @param n compare at most n characters
* @return 0 if strings differ, 1 if equal
*/
static inline int rstreqn(const char *s1, const char *s2, size_t n)
{
return (strncmp(s1, s2, n) == 0);
}
/** \ingroup rpmstring
* Locale insensitive strcasecmp(3).
*/
RPM_GNUC_PURE
int rstrcasecmp(const char * s1, const char * s2) ;
/** \ingroup rpmstring
* Locale insensitive strncasecmp(3).
*/
RPM_GNUC_PURE
int rstrncasecmp(const char *s1, const char * s2, size_t n) ;
/** \ingroup rpmstring
* asprintf() clone
*/
int rasprintf(char **strp, const char *fmt, ...) RPM_GNUC_PRINTF(2, 3);
/** \ingroup rpmstring
* Concatenate two strings with dynamically (re)allocated memory.
* @param dest pointer to destination string
* @param src source string
* @return realloc'd dest with src appended
*/
char *rstrcat(char **dest, const char *src);
/** \ingroup rpmstring
* Concatenate multiple strings with dynamically (re)allocated memory.
* @param dest pointer to destination string
* @param arg NULL terminated list of strings to concatenate
* @return realloc'd dest with strings appended
*/
char *rstrscat(char **dest, const char *arg, ...) RPM_GNUC_NULL_TERMINATED;
/** \ingroup rpmstring
* strlcpy() clone:
* Copy src to string dest of size n. At most n-1 characters
* will be copied. Always zero-terminates (unless n == 0).
* Length of src is returned; if retval >= n, truncation occurred.
* @param dest destination buffer
* @param src string to copy
* @param n destination buffer size
* @return length of src string
*/
size_t rstrlcpy(char *dest, const char *src, size_t n);
/** \ingroup rpmstring
* String hashing function
* @param string string to hash
* @return hash id
*/
RPM_GNUC_PURE
unsigned int rstrhash(const char * string);
#ifdef __cplusplus
}
#endif
#endif /* _RPMSTRING_H_ */
|