summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/common.inc7
-rw-r--r--modules/comment.module2
-rw-r--r--modules/comment/comment.module2
3 files changed, 8 insertions, 3 deletions
diff --git a/includes/common.inc b/includes/common.inc
index dc72c88b9..31f3f426d 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -1722,14 +1722,19 @@ function drupal_xml_parser_create(&$data) {
* The string to truncate.
* @param $len
* An upper limit on the returned string length.
+ * @param $wordsafe
+ * Flag to truncate at nearest word boundary. Defaults to FALSE.
* @return
* The truncated string.
*/
-function truncate_utf8($string, $len) {
+function truncate_utf8($string, $len, $wordsafe = FALSE) {
$slen = strlen($string);
if ($slen <= $len) {
return $string;
}
+ if ($wordsafe) {
+ while (($string[--$len] != ' ') && ($len > 0)) {};
+ }
if ((ord($string[$len]) < 0x80) || (ord($string[$len]) >= 0xC0)) {
return substr($string, 0, $len);
}
diff --git a/modules/comment.module b/modules/comment.module
index fcf05d73a..08f9029ae 100644
--- a/modules/comment.module
+++ b/modules/comment.module
@@ -494,7 +494,7 @@ function comment_post($edit) {
$edit['subject'] = strip_tags($edit['subject']);
if ($edit['subject'] == '') {
- $edit['subject'] = truncate_utf8(strip_tags($edit['comment']), 29);
+ $edit['subject'] = truncate_utf8(strip_tags($edit['comment']), 29, TRUE);
}
if (!form_get_errors()) {
diff --git a/modules/comment/comment.module b/modules/comment/comment.module
index fcf05d73a..08f9029ae 100644
--- a/modules/comment/comment.module
+++ b/modules/comment/comment.module
@@ -494,7 +494,7 @@ function comment_post($edit) {
$edit['subject'] = strip_tags($edit['subject']);
if ($edit['subject'] == '') {
- $edit['subject'] = truncate_utf8(strip_tags($edit['comment']), 29);
+ $edit['subject'] = truncate_utf8(strip_tags($edit['comment']), 29, TRUE);
}
if (!form_get_errors()) {