summaryrefslogtreecommitdiff
path: root/lib/faad2/frontend/unicode_support.c
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-01-18 14:55:27 +1100
committerjacqueline <me@jacqueline.id.au>2024-01-18 14:55:27 +1100
commitd1ae1a4230b413b6a92179936d431c83247c5fd2 (patch)
tree3d209249d1829ff0e24660190035fad64fef050d /lib/faad2/frontend/unicode_support.c
parent442c45d461ad4c81d01898962e3ad420d390495a (diff)
downloadtangara-fw-d1ae1a4230b413b6a92179936d431c83247c5fd2.tar.gz
on second thought, let's not violate patents. 'tis a silly system.
Diffstat (limited to 'lib/faad2/frontend/unicode_support.c')
-rw-r--r--lib/faad2/frontend/unicode_support.c172
1 files changed, 0 insertions, 172 deletions
diff --git a/lib/faad2/frontend/unicode_support.c b/lib/faad2/frontend/unicode_support.c
deleted file mode 100644
index d3f50ac6..00000000
--- a/lib/faad2/frontend/unicode_support.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/* Copyright (c) 2004-2012 LoRd_MuldeR <mulder2@gmx.de>
- File: unicode_support.c
-
- This file was originally part of a patch included with LameXP,
- released under the same license as the original audio tools.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
-
- - Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- - Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#define _CRT_SECURE_NO_WARNINGS
-#include <stdio.h>
-
-#if defined WIN32 || defined _WIN32 || defined WIN64 || defined _WIN64
-
-#include "unicode_support.h"
-
-#include <stdlib.h>
-
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#include <shellapi.h>
-#include <io.h>
-
-static UINT g_old_output_cp = ((UINT)-1);
-
-static char *utf16_to_utf8(const wchar_t *input)
-{
- char *Buffer;
- int BuffSize = 0, Result = 0;
-
- BuffSize = WideCharToMultiByte(CP_UTF8, 0, input, -1, NULL, 0, NULL, NULL);
- Buffer = (char*) malloc(sizeof(char) * BuffSize);
- if(Buffer)
- {
- Result = WideCharToMultiByte(CP_UTF8, 0, input, -1, Buffer, BuffSize, NULL, NULL);
- }
-
- return ((Result > 0) && (Result <= BuffSize)) ? Buffer : NULL;
-}
-
-static wchar_t *utf8_to_utf16(const char *input)
-{
- wchar_t *Buffer;
- int BuffSize = 0, Result = 0;
-
- BuffSize = MultiByteToWideChar(CP_UTF8, 0, input, -1, NULL, 0);
- Buffer = (wchar_t*) malloc(sizeof(wchar_t) * BuffSize);
- if(Buffer)
- {
- Result = MultiByteToWideChar(CP_UTF8, 0, input, -1, Buffer, BuffSize);
- }
-
- return ((Result > 0) && (Result <= BuffSize)) ? Buffer : NULL;
-}
-
-void init_commandline_arguments_utf8(int *argc, char ***argv)
-{
- int i, nArgs;
- LPWSTR *szArglist;
-
- szArglist = CommandLineToArgvW(GetCommandLineW(), &nArgs);
-
- if(NULL == szArglist)
- {
- fprintf(stderr, "\nFATAL: CommandLineToArgvW failed\n\n");
- exit(-1);
- }
-
- *argv = (char**) malloc(sizeof(char*) * nArgs);
- *argc = nArgs;
-
- if(NULL == *argv)
- {
- fprintf(stderr, "\nFATAL: Malloc failed\n\n");
- exit(-1);
- }
-
- for(i = 0; i < nArgs; i++)
- {
- (*argv)[i] = utf16_to_utf8(szArglist[i]);
- if(NULL == (*argv)[i])
- {
- fprintf(stderr, "\nFATAL: utf16_to_utf8 failed\n\n");
- exit(-1);
- }
- }
-
- LocalFree(szArglist);
-}
-
-void free_commandline_arguments_utf8(int *argc, char ***argv)
-{
- int i = 0;
-
- if(*argv != NULL)
- {
- for(i = 0; i < *argc; i++)
- {
- if((*argv)[i] != NULL)
- {
- free((*argv)[i]);
- (*argv)[i] = NULL;
- }
- }
- free(*argv);
- *argv = NULL;
- }
-}
-
-FILE *faad_fopen(const char *filename, const char *mode)
-{
- FILE *ret = NULL;
- wchar_t *filename_utf16 = utf8_to_utf16(filename);
- wchar_t *mode_utf16 = utf8_to_utf16(mode);
-
- if(filename_utf16 && mode_utf16)
- {
- ret = _wfopen(filename_utf16, mode_utf16);
- }
-
- if(filename_utf16) free(filename_utf16);
- if(mode_utf16) free(mode_utf16);
-
- return ret;
-}
-
-void init_console_utf8(FILE *const stream)
-{
- if (_isatty(_fileno(stream)))
- {
- g_old_output_cp = GetConsoleOutputCP();
- SetConsoleOutputCP(CP_UTF8);
- }
-}
-
-void uninit_console_utf8(void)
-{
- if(g_old_output_cp != ((UINT)-1))
- {
- SetConsoleOutputCP(g_old_output_cp);
- }
-}
-
-#else
-
-FILE *faad_fopen(const char *filename, const char *mode)
-{
- return fopen(filename, mode);
-}
-
-#endif