*****************************************************************************/
#include <vlc/vlc.h>
#include <vlc_charset.h>
+#include "libvlc.h" /* utf8_mkdir */
#include <assert.h>
char *psz_charset;
if (vlc_current_charset (&psz_charset)
|| (psz_charset == NULL)
+ || (strcmp (psz_charset, "ASCII") == 0)
|| ((size_t)snprintf (charset, sizeof (charset), "%s//translit",
psz_charset) >= sizeof (charset)))
strcpy (charset, "UTF-8");
0, string, -1, NULL, 0);
wchar_t wide[len];
- MultiByteToWideChar (from ? CP_UTF8 : CP_ACP, 0, string, -1, wide, len);
- len = 1 + WideCharToMultiByte (p->toCP, 0, wide, -1, NULL, 0, NULL, NULL);
+ MultiByteToWideChar (from ? CP_ACP : CP_UTF8, 0, string, -1, wide, len);
+ len = 1 + WideCharToMultiByte (from ? CP_UTF8 : CP_ACP, 0, wide, -1, NULL, 0, NULL, NULL);
out = malloc (len);
if (out == NULL)
return NULL;
- WideCharToMultiByte (p->toCP, 0, wide, -1, out, len, NULL, NULL);
+ WideCharToMultiByte (from ? CP_UTF8 : CP_ACP, 0, wide, -1, out, len, NULL, NULL);
return out;
#else
return (char *)string;
void LocaleFree (const char *str)
{
#if defined (USE_ICONV)
- if (find_charset ())
+ if (!find_charset ())
free ((char *)str);
#elif defined (USE_MB2MB)
free ((char *)str);
* @return A 0 return value indicates success. A -1 return value indicates an
* error, and an error code is stored in errno
*/
-int utf8_mkdir( const char *dirname )
+int utf8_mkdir( const char *dirname, mode_t mode )
{
#if defined (UNDER_CE) || defined (WIN32)
wchar_t wname[MAX_PATH + 1];
errno = ENOENT;
return -1;
}
- res = mkdir( locname, 0755 );
+ res = mkdir( locname, mode );
LocaleFree( locname );
return res;
*
* @param dir The directory that is being read
*
- * @return a UTF-8 string of the directory entry. Use LocaleFree() to free this memory
+ * @return a UTF-8 string of the directory entry. Use free() to free this memory.
*/
char *utf8_readdir( DIR *dir )
{