diff options
Diffstat (limited to 'mg_tools.c')
-rw-r--r-- | mg_tools.c | 69 |
1 files changed, 64 insertions, 5 deletions
@@ -8,13 +8,13 @@ * \author file owner: $Author$ */ -#include "mg_tools.h" - #include <stdarg.h> #include <stdio.h> #include <stdlib.h> #include <syslog.h> +#include "mg_tools.h" + //! \brief buffer for messages #define MAX_BUFLEN 2048 @@ -22,6 +22,7 @@ static char buffer[MAX_BUFLEN]; static int DEBUG_LEVEL = 3; + void mgSetDebugLevel (int new_level) { @@ -40,6 +41,7 @@ mgDebug (int level, const char *fmt, ...) vsnprintf (buffer, MAX_BUFLEN - 1, fmt, ap); syslog(LOG_DEBUG,"%s\n",buffer); + fprintf(stderr,"%s\n",buffer); } va_end (ap); } @@ -51,8 +53,10 @@ mgDebug (const char *fmt, ...) va_list ap; va_start (ap, fmt); mgDebug (1, fmt, ap); + va_end (ap); } +extern void showmessage(int duration,const char*,...); void mgWarning (const char *fmt, ...) @@ -61,10 +65,9 @@ mgWarning (const char *fmt, ...) va_list ap; va_start (ap, fmt); vsnprintf (buffer, MAX_BUFLEN - 1, fmt, ap); - syslog(LOG_INFO,"Warning: %s\n",buffer); - extern void showmessage(const char*,int duration=0); - showmessage(buffer); + fprintf(stderr,"%s\n",buffer); + showmessage(0,buffer); va_end (ap); } @@ -78,6 +81,8 @@ mgError (const char *fmt, ...) vsnprintf (buffer, MAX_BUFLEN - 1, fmt, ap); syslog (LOG_ERR,"Error in Muggle: %s\n", buffer); + fprintf(stderr,"%s\n",buffer); + showmessage(0,buffer); va_end (ap); } @@ -116,3 +121,57 @@ SeparateFolders(const char *filename, char * folders[],unsigned int fcount) return fbuf; } +string& +addsep (string & s, string sep, string n) +{ + if (!n.empty ()) + { + if (!s.empty ()) + s.append (sep); + s.append (n); + } + return s; +} + + +string +comma (string & s, string n) +{ + return addsep (s, ",", n); +} + +//! \brief converts long to string +string +itos (int i) +{ + std::stringstream s; + s << i; + return s.str (); +} + +//! \brief convert long to string +string +ltos (long l) +{ + std::stringstream s; + s << l; + return s.str (); +} + +char * +extension(const char *filename) +{ + char *dot = strrchr(filename,'.'); + if (!dot) + dot = strrchr(filename,0)-1; + return dot+1; +} + +bool +notempty(const char *s) +{ + if (!s) + return false; + else + return strlen(s); +} |