diff --git a/inc/lib/Twig/Extensions/Extension/Tinyboard.php b/inc/lib/Twig/Extensions/Extension/Tinyboard.php
index 61cf9fc9..58a98c40 100644
--- a/inc/lib/Twig/Extensions/Extension/Tinyboard.php
+++ b/inc/lib/Twig/Extensions/Extension/Tinyboard.php
@@ -83,9 +83,9 @@ function twig_hasPermission_filter($mod, $permission, $board = null) {
}
function twig_extension_filter($value, $case_insensitive = true) {
- $ext = substr($value, strrpos($value, '.') + 1);
+ $ext = mb_substr($value, mb_strrpos($value, '.') + 1);
if($case_insensitive)
- $ext = strtolower($ext);
+ $ext = mb_strtolower($ext);
return $ext;
}
@@ -96,11 +96,11 @@ function twig_sprintf_filter( $value, $var) {
function twig_truncate_filter($value, $length = 30, $preserve = false, $separator = '…') {
if (mb_strlen($value) > $length) {
if ($preserve) {
- if (false !== ($breakpoint = strpos($value, ' ', $length))) {
+ if (false !== ($breakpoint = mb_strpos($value, ' ', $length))) {
$length = $breakpoint;
}
}
- return substr($value, 0, $length) . $separator;
+ return mb_substr($value, 0, $length) . $separator;
}
return $value;
}
diff --git a/inc/locale/pl_PL/LC_MESSAGES/tinyboard.mo b/inc/locale/pl_PL/LC_MESSAGES/tinyboard.mo
index 2a31d64e..bc603e67 100644
Binary files a/inc/locale/pl_PL/LC_MESSAGES/tinyboard.mo and b/inc/locale/pl_PL/LC_MESSAGES/tinyboard.mo differ
diff --git a/inc/locale/pl_PL/LC_MESSAGES/tinyboard.po b/inc/locale/pl_PL/LC_MESSAGES/tinyboard.po
index ca4f7ea4..20802b7d 100644
--- a/inc/locale/pl_PL/LC_MESSAGES/tinyboard.po
+++ b/inc/locale/pl_PL/LC_MESSAGES/tinyboard.po
@@ -16,7 +16,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#. There is no previous page.
#: /var/www/html/Tinyboard/inc/functions.php:958
diff --git a/post.php b/post.php
index 45bca539..f6cdcb00 100644
--- a/post.php
+++ b/post.php
@@ -286,7 +286,7 @@ if (isset($_POST['delete'])) {
$post['has_file'] = !isset($post['embed']) && (($post['op'] && !isset($post['no_longer_require_an_image_for_op']) && $config['force_image_op']) || (isset($_FILES['file']) && $_FILES['file']['tmp_name'] != ''));
if ($post['has_file'])
- $post['filename'] = utf8tohtml(get_magic_quotes_gpc() ? stripslashes($_FILES['file']['name']) : $_FILES['file']['name']);
+ $post['filename'] = urldecode(get_magic_quotes_gpc() ? stripslashes($_FILES['file']['name']) : $_FILES['file']['name']);
if (!($post['has_file'] || isset($post['embed'])) || (($post['op'] && $config['force_body_op']) || (!$post['op'] && $config['force_body']))) {
$stripped_whitespace = preg_replace('/[\s]/u', '', $post['body']);
@@ -349,7 +349,7 @@ if (isset($_POST['delete'])) {
} else $noko = false;
if ($post['has_file']) {
- $post['extension'] = strtolower(substr($post['filename'], strrpos($post['filename'], '.') + 1));
+ $post['extension'] = strtolower(mb_substr($post['filename'], mb_strrpos($post['filename'], '.') + 1));
if (isset($config['filename_func']))
$post['file_id'] = $config['filename_func']($post);
else
@@ -416,7 +416,7 @@ if (isset($_POST['delete'])) {
$is_an_image = !in_array($post['extension'], $config['allowed_ext_files']);
// Truncate filename if it is too long
- $post['filename'] = substr($post['filename'], 0, $config['max_filename_len']);
+ $post['filename'] = mb_substr($post['filename'], 0, $config['max_filename_len']);
$upload = $_FILES['file']['tmp_name'];
diff --git a/templates/post_reply.html b/templates/post_reply.html
index bc96e74c..b0391f19 100644
--- a/templates/post_reply.html
+++ b/templates/post_reply.html
@@ -66,9 +66,9 @@
{% if config.show_filename and post.filename %}
,
{% if post.filename|length > config.max_filename_display %}
- {{ post.filename|truncate(config.max_filename_display)|bidi_cleanup }}
+ {{ post.filename|truncate(config.max_filename_display)|bidi_cleanup }}
{% else %}
- {{ post.filename|bidi_cleanup }}
+ {{ post.filename|e|bidi_cleanup }}
{% endif %}
{% endif %}
{% if post.thumb != 'file' and config.image_identification %}
diff --git a/templates/post_thread.html b/templates/post_thread.html
index c8da07e3..a24d7557 100644
--- a/templates/post_thread.html
+++ b/templates/post_thread.html
@@ -23,9 +23,9 @@
{% if config.show_filename and post.filename %}
,
{% if post.filename|length > config.max_filename_display %}
- {{ post.filename|truncate(config.max_filename_display)|bidi_cleanup }}
+ {{ post.filename|truncate(config.max_filename_display)|bidi_cleanup }}
{% else %}
- {{ post.filename|bidi_cleanup }}
+ {{ post.filename|e|bidi_cleanup }}
{% endif %}
{% endif %}
{% if post.thumb != 'file' and config.image_identification %}