From 5e34e79700c05ed0a318ac2d97857fb8f8bd1b2a Mon Sep 17 00:00:00 2001 From: umherirrender Date: Wed, 20 Nov 2013 19:56:42 +0100 Subject: [PATCH] Truncate protect reason for whole multibyte characters This avoids broken characters for long comment. The reason is shown on action=edit for unprivilieged users. Change-Id: Ie8099f50628d55ff880760721169803ccbb3555c --- includes/WikiPage.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/includes/WikiPage.php b/includes/WikiPage.php index 6c2c6ad881..7b68510249 100644 --- a/includes/WikiPage.php +++ b/includes/WikiPage.php @@ -2247,7 +2247,7 @@ class WikiPage implements Page, IDBAccessObject { * @return Status */ public function doUpdateRestrictions( array $limit, array $expiry, &$cascade, $reason, User $user ) { - global $wgCascadingRestrictionLevels; + global $wgCascadingRestrictionLevels, $wgContLang; if ( wfReadOnly() ) { return Status::newFatal( 'readonlytext', wfReadOnlyReason() ); @@ -2320,6 +2320,9 @@ class WikiPage implements Page, IDBAccessObject { $logAction = 'protect'; } + // Truncate for whole multibyte characters + $reason = $wgContLang->truncate( $reason, 255 ); + if ( $id ) { // Protection of existing page if ( !wfRunHooks( 'ArticleProtect', array( &$this, &$user, $limit, $reason ) ) ) { return Status::newGood(); @@ -2421,7 +2424,7 @@ class WikiPage implements Page, IDBAccessObject { // Update the protection log $log = new LogPage( 'protect' ); - $log->addEntry( $logAction, $this->mTitle, trim( $reason ), $params, $user ); + $log->addEntry( $logAction, $this->mTitle, $reason, $params, $user ); return Status::newGood(); } -- 2.20.1