All pastes #794032 Raw Edit

Miscellany

public diff v1 · immutable
·published 2007-11-22 20:46 UTC
rendered paste body
diff --git a/src/lib/lightmediascanner_db_common.c b/src/lib/lightmediascanner_db_common.cindex e7a4b0c..a8ec54a 100644--- a/src/lib/lightmediascanner_db_common.c+++ b/src/lib/lightmediascanner_db_common.c@@ -2,6 +2,9 @@ #include <stdlib.h> #include <stdio.h> #include <string.h>+#include <iconv.h>+#include <limits.h>+#include <locale.h>  #if SQLITE_VERSION_NUMBER < 3003009 int@@ -127,7 +130,16 @@ lms_db_bind_text(sqlite3_stmt *stmt, int col, const char *text, int len)     int r;      if (text)-        r = sqlite3_bind_text(stmt, col, text, len, SQLITE_STATIC);+    {+        char *locale = setlocale(LC_ALL, "");+        iconv_t cd = iconv_open("UTF-8", locale);+        char *inbuf = strdup(text);+        size_t inbytesleft = strlen(inbuf);+        char outbuf[PATH_MAX];+        size_t outbytesleft = PATH_MAX;+        iconv(cd, &inbuf, &inbytesleft, (char **) &outbuf, &outbytesleft);+        r = sqlite3_bind_text(stmt, col, outbuf, len, SQLITE_STATIC);+    }     else         r = sqlite3_bind_null(stmt, col);