summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libass/ass.c5
-rw-r--r--subreader.c19
-rw-r--r--subreader.h4
3 files changed, 10 insertions, 18 deletions
diff --git a/libass/ass.c b/libass/ass.c
index e18a540a0d..de0dff8fe5 100644
--- a/libass/ass.c
+++ b/libass/ass.c
@@ -804,7 +804,7 @@ static char* sub_recode(char* data, size_t size, char* codepage)
assert(codepage);
{
- char* cp_tmp = codepage ? strdup(codepage) : 0;
+ const char* cp_tmp = codepage;
#ifdef HAVE_ENCA
char enca_lang[3], enca_fallback[100];
if (sscanf(codepage, "enca:%2s:%99s", enca_lang, enca_fallback) == 2
@@ -816,9 +816,6 @@ static char* sub_recode(char* data, size_t size, char* codepage)
mp_msg(MSGT_ASS,MSGL_V,"LIBSUB: opened iconv descriptor.\n");
} else
mp_msg(MSGT_ASS,MSGL_ERR,MSGTR_LIBASS_ErrorOpeningIconvDescriptor);
-#ifdef HAVE_ENCA
- if (cp_tmp) free(cp_tmp);
-#endif
}
{
diff --git a/subreader.c b/subreader.c
index 1a58b3231d..62b01e964e 100644
--- a/subreader.c
+++ b/subreader.c
@@ -1083,15 +1083,13 @@ void subcp_open (stream_t *st)
char *tocp = "UTF-8";
if (sub_cp){
- char *cp_tmp = sub_cp;
+ const char *cp_tmp = sub_cp;
#ifdef HAVE_ENCA
char enca_lang[3], enca_fallback[100];
- int free_cp_tmp = 0;
if (sscanf(sub_cp, "enca:%2s:%99s", enca_lang, enca_fallback) == 2
|| sscanf(sub_cp, "ENCA:%2s:%99s", enca_lang, enca_fallback) == 2) {
if (st && st->flags & STREAM_SEEK ) {
cp_tmp = guess_cp(st, enca_lang, enca_fallback);
- free_cp_tmp = 1;
} else {
cp_tmp = enca_fallback;
if (st)
@@ -1104,9 +1102,6 @@ void subcp_open (stream_t *st)
sub_utf8 = 2;
} else
mp_msg(MSGT_SUBREADER,MSGL_ERR,"SUB: error opening iconv descriptor.\n");
-#ifdef HAVE_ENCA
- if (free_cp_tmp && cp_tmp) free(cp_tmp);
-#endif
}
}
@@ -1275,13 +1270,13 @@ struct subreader {
};
#ifdef HAVE_ENCA
-void* guess_buffer_cp(unsigned char* buffer, int buflen, char *preferred_language, char *fallback)
+const char* guess_buffer_cp(unsigned char* buffer, int buflen, char *preferred_language, const char *fallback)
{
const char **languages;
size_t langcnt;
EncaAnalyser analyser;
EncaEncoding encoding;
- char *detected_sub_cp = NULL;
+ const char *detected_sub_cp = NULL;
int i;
languages = enca_get_languages(&langcnt);
@@ -1299,7 +1294,7 @@ void* guess_buffer_cp(unsigned char* buffer, int buflen, char *preferred_languag
encoding = enca_analyse_const(analyser, buffer, buflen);
tmp = enca_charset_name(encoding.charset, ENCA_NAME_STYLE_ICONV);
if (tmp && encoding.charset != ENCA_CS_UNKNOWN) {
- detected_sub_cp = strdup(tmp);
+ detected_sub_cp = tmp;
mp_msg(MSGT_SUBREADER, MSGL_INFO, "ENCA detected charset: %s\n", tmp);
}
enca_analyser_free(analyser);
@@ -1308,7 +1303,7 @@ void* guess_buffer_cp(unsigned char* buffer, int buflen, char *preferred_languag
free(languages);
if (!detected_sub_cp) {
- detected_sub_cp = strdup(fallback);
+ detected_sub_cp = fallback;
mp_msg(MSGT_SUBREADER, MSGL_INFO, "ENCA detection failed: fallback to %s\n", fallback);
}
@@ -1316,11 +1311,11 @@ void* guess_buffer_cp(unsigned char* buffer, int buflen, char *preferred_languag
}
#define MAX_GUESS_BUFFER_SIZE (256*1024)
-void* guess_cp(stream_t *st, char *preferred_language, char *fallback)
+const char* guess_cp(stream_t *st, char *preferred_language, const char *fallback)
{
size_t buflen;
unsigned char *buffer;
- char *detected_sub_cp = NULL;
+ const char *detected_sub_cp = NULL;
buffer = malloc(MAX_GUESS_BUFFER_SIZE);
buflen = stream_read(st,buffer, MAX_GUESS_BUFFER_SIZE);
diff --git a/subreader.h b/subreader.h
index 225761572b..ae12c4dc5c 100644
--- a/subreader.h
+++ b/subreader.h
@@ -74,8 +74,8 @@ struct stream_st;
void subcp_open (struct stream_st *st); /* for demux_ogg.c */
void subcp_close (void); /* for demux_ogg.c */
#ifdef HAVE_ENCA
-void* guess_buffer_cp(unsigned char* buffer, int buflen, char *preferred_language, char *fallback);
-void* guess_cp(struct stream_st *st, char *preferred_language, char *fallback);
+const char* guess_buffer_cp(unsigned char* buffer, int buflen, char *preferred_language, const char *fallback);
+const char* guess_cp(struct stream_st *st, char *preferred_language, const char *fallback);
#endif
char ** sub_filenames(const char *path, char *fname);
void list_sub_file(sub_data* subd);