diff options
author | Rafael Fontenelle | 2018-06-22 21:23:15 -0300 |
---|---|---|
committer | Rafael Fontenelle | 2018-06-22 21:23:15 -0300 |
commit | 91472588f534168171d24aeb9b6bb345770432af (patch) | |
tree | dfe1849cf33231c46e11c77ee53be10b4cf3520f /libtranslate-0.99-charsetparse.diff | |
parent | 948fbc12e0a27a0e78b2f43a7fddae11ac069a3c (diff) | |
download | aur-libtranslate.tar.gz |
Improve PKGBUILD + Add fixed
Diffstat (limited to 'libtranslate-0.99-charsetparse.diff')
-rw-r--r-- | libtranslate-0.99-charsetparse.diff | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/libtranslate-0.99-charsetparse.diff b/libtranslate-0.99-charsetparse.diff new file mode 100644 index 000000000000..1626f25ff71f --- /dev/null +++ b/libtranslate-0.99-charsetparse.diff @@ -0,0 +1,47 @@ +--- src/modules/translate-generic-service.c.orig Mon Apr 11 23:08:47 2005 ++++ src/modules/translate-generic-service.c Mon Apr 11 23:15:54 2005 +@@ -484,7 +484,7 @@ + + if (SOUP_STATUS_IS_SUCCESSFUL(message->status_code)) + { +- const char *charset = NULL; ++ char *charset = NULL; + + if (flags & TRANSFER_CONVERT) + { +@@ -493,14 +493,31 @@ + content_type = translate_generic_service_get_header(message, &info, "Content-Type"); + if (content_type) + { +- charset = translate_ascii_strcasestr(content_type, "charset="); +- if (charset) +- charset += 8; ++ const char *tmp; ++ ++ tmp = translate_ascii_strcasestr(content_type, "charset="); ++ if (tmp) ++ { ++ int len; ++ ++ tmp += 8; ++ if (*tmp == '\'' || *tmp == '"') ++ tmp++; ++ ++ len = strlen(tmp); ++ if (len > 0 && (tmp[len - 1] == '\'' || tmp[len - 1] == '"')) ++ len--; ++ ++ charset = g_strndup(tmp, len); ++ } + } + } + + if (charset) +- response = g_convert(message->response.body, message->response.length, "UTF-8", charset, NULL, NULL, err); ++ { ++ response = g_convert(message->response.body, message->response.length, "UTF-8", charset, NULL, NULL, err); ++ g_free(charset); ++ } + else + { + if ((flags & TRANSFER_CONVERT) && ! g_utf8_validate(message->response.body, message->response.length, NULL)) |