summaryrefslogtreecommitdiff
path: root/audio/firefly/files/extra-patch-src_scan-mp3.c
diff options
context:
space:
mode:
authorRene Ladan <rene@FreeBSD.org>2018-09-16 09:14:45 +0000
committerRene Ladan <rene@FreeBSD.org>2018-09-16 09:14:45 +0000
commit74beb9901ff7a93ff1b8dc2e585c38286a5786c6 (patch)
tree4086c411954ba99393d96f380d77e166e2b8bd71 /audio/firefly/files/extra-patch-src_scan-mp3.c
parent- Add LICENSE (diff)
Remove expired ports:
2018-09-15 www/bookmarkbridge: Unmaintained. Unlikely to work correctly with modern browsers 2018-09-15 mail/annoyance-filter: Unmaintained upstream 2018-09-15 mail/pop3vscan: Unmaintained upstream 2018-09-15 audio/firefly: Unmaintained. Use audio/forked-daapd instead 2018-09-15 www/hs-hS3: Not being developed upstream 2018-09-15 converters/hs-dataenc: Not being developed upstream 2018-09-15 devel/tinyq: Unmaintained upstream and unused in the ports tree 2018-09-15 devel/hs-hashed-storage: Not being developed upstream
Diffstat (limited to 'audio/firefly/files/extra-patch-src_scan-mp3.c')
-rw-r--r--audio/firefly/files/extra-patch-src_scan-mp3.c138
1 files changed, 0 insertions, 138 deletions
diff --git a/audio/firefly/files/extra-patch-src_scan-mp3.c b/audio/firefly/files/extra-patch-src_scan-mp3.c
deleted file mode 100644
index 2110bea067a1..000000000000
--- a/audio/firefly/files/extra-patch-src_scan-mp3.c
+++ /dev/null
@@ -1,138 +0,0 @@
---- src/scan-mp3.c.orig 2007-09-25 16:55:23.000000000 +0900
-+++ src/scan-mp3.c 2011-09-05 13:52:16.000000000 +0900
-@@ -18,6 +18,15 @@
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-+#define USE_CP932
-+
-+#ifdef USE_CP932
-+ #define UNKNOWN_STR "UNKNOWN"
-+ #ifndef FILESYSTEM_CES
-+ #define FILESYSTEM_CES "CP932"
-+ #endif
-+#endif
-+
- #ifdef HAVE_CONFIG_H
- # include "config.h"
- #endif
-@@ -34,6 +43,10 @@
- #include <string.h>
- #include <time.h>
-
-+#ifdef USE_CP932
-+ #include <iconv.h>
-+#endif
-+
- #include "daapd.h"
- #include "conf.h"
- #include "err.h"
-@@ -289,6 +302,96 @@
- return 1;
- }
-
-+#ifdef USE_CP932
-+#define MAX_ICONV_BUF 1024
-+
-+typedef enum {
-+ ICONV_OK,
-+ ICONV_TRYNEXT,
-+ ICONV_FATAL
-+} iconv_result;
-+
-+static iconv_result do_convert(const char* to_ces, const char* from_ces,
-+ char *inbuf, size_t inbytesleft,
-+ char *outbuf_orig, size_t outbytesleft_orig) {
-+ size_t rc;
-+ iconv_result ret = ICONV_OK;
-+
-+ size_t outbytesleft = outbytesleft_orig - 1;
-+ char* outbuf = outbuf_orig;
-+
-+ iconv_t cd = iconv_open(to_ces, from_ces);
-+ if (cd == (iconv_t)-1) {
-+ return ICONV_FATAL;
-+ }
-+ rc = iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft);
-+ if (rc == (size_t)-1) {
-+ if (errno == E2BIG) {
-+ ret = ICONV_FATAL;
-+ } else {
-+ ret = ICONV_TRYNEXT;
-+ memset(outbuf_orig, '\0', outbytesleft_orig);
-+ }
-+ }
-+ iconv_close(cd);
-+
-+ return ret;
-+}
-+
-+static unsigned char* get_utf8_text(const id3_ucs4_t* native_text) {
-+ unsigned char* utf8_text = NULL;
-+ char * in, * in8, * iconv_buf;
-+ iconv_result rc;
-+
-+ in = (char*)id3_ucs4_latin1duplicate(native_text);
-+ if (!in) goto out;
-+
-+ in8 = (char*)id3_ucs4_utf8duplicate(native_text);
-+ if (!in8) {
-+ free(in);
-+ goto out;
-+ }
-+
-+ iconv_buf = (char*)calloc(MAX_ICONV_BUF, sizeof(char));
-+ if (!iconv_buf) {
-+ free(in); free(in8);
-+ goto out;
-+ }
-+
-+ /* (1) try utf8 -> cp932 */
-+ rc = do_convert("CP932", "UTF-8", in8, strlen(in8), iconv_buf, MAX_ICONV_BUF);
-+ if (rc == ICONV_OK) {
-+ utf8_text = (unsigned char*)in8;
-+ free(iconv_buf);
-+ } else if (rc == ICONV_TRYNEXT) {
-+ /* (2) try cp932 -> utf8 */
-+ rc = do_convert("UTF-8", "CP932", in, strlen(in), iconv_buf, MAX_ICONV_BUF);
-+ if (rc == ICONV_OK) {
-+ utf8_text = (unsigned char*)iconv_buf;
-+ } else if (rc == ICONV_TRYNEXT) {
-+ /* (3) try euc-jp -> utf8 */
-+ rc = do_convert("UTF-8", "EUC-JP", in, strlen(in), iconv_buf, MAX_ICONV_BUF);
-+ if (rc == ICONV_OK) {
-+ utf8_text = (unsigned char*)iconv_buf;
-+ } else if (rc == ICONV_TRYNEXT) {
-+ /* utf-8 including non-japanese char? fallback. */
-+ utf8_text = (unsigned char*)id3_ucs4_utf8duplicate(native_text);
-+ free(iconv_buf);
-+ }
-+ }
-+ free(in8);
-+ }
-+ free(in);
-+
-+ out:
-+ if (!utf8_text) {
-+ utf8_text = (unsigned char*)strdup(UNKNOWN_STR);
-+ }
-+
-+ return utf8_text;
-+}
-+#endif
-+
- int scan_mp3_get_mp3tags(char *file, MP3FILE *pmp3) {
- struct id3_file *pid3file;
- struct id3_tag *pid3tag;
-@@ -352,8 +455,11 @@
- if(native_text) {
- have_utf8=1;
-
--
-+#ifdef USE_CP932
-+ utf8_text = (char *)get_utf8_text(native_text);
-+#else
- utf8_text = (char*)id3_ucs4_utf8duplicate(native_text);
-+#endif
- if(utf8_text)
- mem_register(utf8_text,0);