diff src/General/scrobbler/fmt.c @ 0:13389e613d67 trunk

[svn] - initial import of audacious-plugins tree (lots to do)
author nenolod
date Mon, 18 Sep 2006 01:11:49 -0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/General/scrobbler/fmt.c	Mon Sep 18 01:11:49 2006 -0700
@@ -0,0 +1,84 @@
+#include <wchar.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <ctype.h>
+#include "fmt.h"
+#include <curl/curl.h>
+
+char *fmt_escape(char *str)
+{
+	return curl_escape(str, 0);
+}
+
+char *fmt_unescape(char *str)
+{
+	return curl_unescape(str, 0);
+}
+
+char *fmt_timestr(time_t t, int gmt)
+{
+	struct tm *tm;
+	static char buf[30];
+
+	tm = gmt ? gmtime(&t) : localtime(&t);
+	snprintf(buf, sizeof(buf), "%d-%.2d-%.2d %.2d:%.2d:%.2d",
+			tm->tm_year + 1900,
+			tm->tm_mon + 1,
+			tm->tm_mday,
+			tm->tm_hour,
+			tm->tm_min,
+			tm->tm_sec);
+	return buf;
+}
+
+char *fmt_vastr(char *fmt, ...)
+{
+	va_list ap;
+	static char buf[4096];
+	va_start(ap, fmt);
+	vsnprintf(buf, sizeof(buf), fmt, ap);
+	va_end(ap);
+	return buf;
+}
+
+void fmt_debug(char *file, const char *fun, char *str)
+{
+	fprintf(stderr, "%s [%s] %s: %s\n", fmt_timestr(time(NULL), 0), 
+			file, fun, str);
+}
+
+char *fmt_string_pack(char *string, char *fmt, ...)
+{
+	int buflen = 0, stringlen = 0;
+	char buf[4096];
+	va_list ap;
+
+	va_start(ap, fmt);
+	vsnprintf(buf, sizeof(buf), fmt, ap);
+	va_end(ap);
+	if(string != NULL) stringlen = strlen(string);
+	buflen = strlen(buf);
+
+	string = realloc(string, stringlen + buflen + 1);
+	memcpy(string + stringlen, buf, buflen);
+	*(string + stringlen + buflen) = 0;
+	return string;
+}
+
+int fmt_strcasecmp(const char *s1, const char *s2)
+{
+	while (toupper((int) *s1) == toupper((int) *s2++))
+		if (!*s1++)
+			return 0;
+	return toupper((int) s1[0]) - toupper((int) s2[-1]);
+}
+
+int fmt_strncasecmp(const char *s1, const char *s2, size_t n)
+{
+	while (toupper((int) *s1) == toupper((int) *s2++) && --n)
+		if(!*s1++)
+			return 0;
+	return n ? toupper((int) s1[0]) - toupper((int) s2[-1]) : 0;
+}