diff options
-rw-r--r-- | mg_db.c | 4 | ||||
-rw-r--r-- | mg_setup.c | 1 | ||||
-rw-r--r-- | mg_tools.c | 15 | ||||
-rw-r--r-- | mg_tools.h | 1 |
4 files changed, 19 insertions, 2 deletions
@@ -1018,7 +1018,9 @@ mgSQLString mgDb::Build_cddbid(const mgSQLString& artist) const { char *s; - asprintf(&s,"%ld-%.9s",random(),artist.original()); + msprintf(&s,"%ld-%.9s",random(),artist.original()); + if (!s) + msprintf(&s,"%ld-X",random()); mgSQLString result = mgSQLString(s); free(s); return result; @@ -55,7 +55,6 @@ mgSetup::mgSetup () if (dot) utf8 = strcmp(dot+1,"UTF-8")==0; } -utf8=false; if (utf8) mgWarning("muggle running in UTF-8 mode"); @@ -31,6 +31,21 @@ mgSetDebugLevel (int new_level) DEBUG_LEVEL = new_level; } +int +msprintf(char **strp, const char *fmt, ...) +{ + va_list ap; + int res; + va_start (ap, fmt); + res=vasprintf (strp, fmt, ap); + if (res<0) + { + *strp=0; + mgError("asprintf() returns %d. This probably means illformed UTF-8 characters." + " Please convert your file names to UTF-8",fmt,res); + } + va_end (ap); +} void mgDebug (int level, const char *fmt, ...) @@ -31,6 +31,7 @@ void mgDebug (int level, const char *fmt, ...); void mgDebug (const char *fmt, ...); void mgWarning (const char *fmt, ...); void mgError (const char *fmt, ...); +int msprintf(char **strp, const char *fmt, ...); //@} #ifdef DEBUG |