diff --git a/.htaccess b/.htaccess
index 8e33b6f3..30a33a42 100644
--- a/.htaccess
+++ b/.htaccess
@@ -53,6 +53,7 @@ AddType audio/ogg oga ogg opus
AddType image/jpeg jpg jpeg
AddType image/bmp bmp
AddType image/svg+xml svg svgz
+AddType image/x-icon ico ani cur
AddType image/webp webp
AddType video/mp4 f4v f4p m4v mp4
AddType video/ogg ogv
diff --git a/core/imageboard.pack.php b/core/imageboard.pack.php
index b619f3d5..0827b411 100644
--- a/core/imageboard.pack.php
+++ b/core/imageboard.pack.php
@@ -1102,6 +1102,11 @@ class Tag {
$tag = preg_replace("/^(\.+[\/\\\\])+/", "", $tag); # trailing slashes?
$tag = trim($tag, ", \t\n\r\0\x0B");
+ if(mb_strlen($tag, 'UTF-8') > 255){
+ flash_message("The tag below is longer than 255 characters, please use a shorter tag.\n$tag\n");
+ continue;
+ }
+
if(!empty($tag)) {
$tag_array[] = $tag;
}
diff --git a/core/util.inc.php b/core/util.inc.php
index 94cf1eb0..1d5460f9 100644
--- a/core/util.inc.php
+++ b/core/util.inc.php
@@ -15,6 +15,16 @@ function html_escape($input) {
return htmlentities($input, ENT_QUOTES, "UTF-8");
}
+/**
+ * Unescape data that was made safe for printing into HTML
+ *
+ * @param $input
+ * @return string
+ */
+function html_unescape($input) {
+ return html_entity_decode($input, ENT_QUOTES, "UTF-8");
+}
+
/**
* Make sure some data is safe to be used in integer context
*
diff --git a/ext/arrowkey_navigation/main.php b/ext/arrowkey_navigation/main.php
index 75cc22bd..023ca87b 100644
--- a/ext/arrowkey_navigation/main.php
+++ b/ext/arrowkey_navigation/main.php
@@ -47,6 +47,7 @@ class ArrowkeyNavigation extends Extension {
(function($){
$(document).keyup(function(e) {
if($(e.target).is('input', 'textarea')){ return; }
+ if (e.metaKey || e.ctrlKey || e.altKey || e.shiftKey) { return; }
if (e.keyCode == 37) { window.location.href = '{$prev_url}'; }
else if (e.keyCode == 39) { window.location.href = '{$next_url}'; }
});
diff --git a/ext/comment/theme.php b/ext/comment/theme.php
index 20e963f9..f017bdb3 100644
--- a/ext/comment/theme.php
+++ b/ext/comment/theme.php
@@ -259,8 +259,6 @@ class CommentListTheme extends Themelet {
else {
$h_userlink = ''.$h_name.'';
}
- $stripped_nonl = str_replace("\n", "\\n", substr($tfe->stripped, 0, 50));
- $stripped_nonl = str_replace("\r", "\\r", $stripped_nonl);
$hb = ($comment->owner_class == "hellbanned" ? "hb" : "");
if($trim) {
@@ -280,9 +278,14 @@ class CommentListTheme extends Themelet {
}
$h_reply = " - Reply";
$h_ip = $user->can("view_ip") ? "
".show_ip($comment->poster_ip, "Comment posted {$comment->posted}") : "";
- $h_del = $user->can("delete_comment") ?
- ' - Del' : '';
+ $h_del = "";
+ if ($user->can("delete_comment")) {
+ $comment_preview = substr(html_unescape($tfe->stripped), 0, 50);
+ $j_delete_confirm_message = json_encode("Delete comment by {$comment->owner_name}:\n$comment_preview");
+ $h_delete_script = html_escape("return confirm($j_delete_confirm_message);");
+ $h_delete_link = make_link("comment/delete/$i_comment_id/$i_image_id");
+ $h_del = " - Del";
+ }
$html = "