aboutsummaryrefslogtreecommitdiffstats
path: root/utils.c
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-06-24 22:45:15 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-06-24 22:45:15 +0000
commit889ce1c0e880478f7269c0751675e8e69ba6ffc0 (patch)
tree3f0f4640d39f272360a860fb49ea3a284b99f757 /utils.c
parentca7d7865a73c71dbd4e180acb2f71892816bd30e (diff)
split up string/time functions into separate header files
make more LOW_MEMORY optimizations, and ensure that a non-inline version of each inlinable function is always available (for external modules) move compiler-specific stuff into a separate header file git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6008 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'utils.c')
-rwxr-xr-xutils.c74
1 files changed, 57 insertions, 17 deletions
diff --git a/utils.c b/utils.c
index d0ee57d82..1319f71b9 100755
--- a/utils.c
+++ b/utils.c
@@ -34,28 +34,17 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#include "asterisk/md5.h"
#define AST_API_MODULE /* ensure that inlinable API functions will be built in this module if required */
+#include "asterisk/strings.h"
+
+#define AST_API_MODULE /* ensure that inlinable API functions will be built in this module if required */
+#include "asterisk/time.h"
+
+#define AST_API_MODULE /* ensure that inlinable API functions will be built in this module if required */
#include "asterisk/utils.h"
static char base64[64];
static char b2a[256];
-char *ast_strip_quoted(char *s, const char *beg_quotes, const char *end_quotes)
-{
- char *e;
- char *q;
-
- s = ast_strip(s);
- if ((q = strchr(beg_quotes, *s))) {
- e = s + strlen(s) - 1;
- if (*e == *(end_quotes + (q - beg_quotes))) {
- s++;
- *e = '\0';
- }
- }
-
- return s;
-}
-
#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined( __NetBSD__ ) || defined(__APPLE__)
/* duh? ERANGE value copied from web... */
@@ -433,6 +422,23 @@ int ast_wait_for_input(int fd, int ms)
return poll(pfd, 1, ms);
}
+char *ast_strip_quoted(char *s, const char *beg_quotes, const char *end_quotes)
+{
+ char *e;
+ char *q;
+
+ s = ast_strip(s);
+ if ((q = strchr(beg_quotes, *s))) {
+ e = s + strlen(s) - 1;
+ if (*e == *(end_quotes + (q - beg_quotes))) {
+ s++;
+ *e = '\0';
+ }
+ }
+
+ return s;
+}
+
int ast_build_string(char **buffer, size_t *space, const char *fmt, ...)
{
va_list ap;
@@ -455,6 +461,40 @@ int ast_build_string(char **buffer, size_t *space, const char *fmt, ...)
return 0;
}
+int ast_true(const char *s)
+{
+ if (!s || ast_strlen_zero(s))
+ return 0;
+
+ /* Determine if this is a true value */
+ if (!strcasecmp(s, "yes") ||
+ !strcasecmp(s, "true") ||
+ !strcasecmp(s, "y") ||
+ !strcasecmp(s, "t") ||
+ !strcasecmp(s, "1") ||
+ !strcasecmp(s, "on"))
+ return -1;
+
+ return 0;
+}
+
+int ast_false(const char *s)
+{
+ if (!s || ast_strlen_zero(s))
+ return 0;
+
+ /* Determine if this is a false value */
+ if (!strcasecmp(s, "no") ||
+ !strcasecmp(s, "false") ||
+ !strcasecmp(s, "n") ||
+ !strcasecmp(s, "f") ||
+ !strcasecmp(s, "0") ||
+ !strcasecmp(s, "off"))
+ return -1;
+
+ return 0;
+}
+
/* Case-insensitive substring matching */
#ifndef LINUX
static char *upper(const char *orig, char *buf, int bufsize)