diff --git a/plugins/truncate_text.inc b/plugins/truncate_text.inc index ccc03d0..8a8acde 100644 --- a/plugins/truncate_text.inc +++ b/plugins/truncate_text.inc @@ -39,8 +39,10 @@ function feeds_tamper_truncate_text_validate($settings) { } function feeds_tamper_truncate_text_callback($source, $item_key, $element_key, &$field, $settings) { - $field = drupal_substr($field, 0, $settings['num_char']); - if ($settings['ellipses']) { - $field .= '...'; + if (drupal_strlen($field) > $settings['num_char']) { + $field = drupal_substr($field, 0, $settings['num_char']); + if ($settings['ellipses']) { + $field .= '...'; + } } } diff --git a/tests/feeds_tamper_plugins.test b/tests/feeds_tamper_plugins.test index d8d2aba..6ed824c 100644 --- a/tests/feeds_tamper_plugins.test +++ b/tests/feeds_tamper_plugins.test @@ -782,6 +782,7 @@ class FeedsTamperTruncateTextTestCase extends FeedsTamperUnitTestCase { public function test() { $this->execute('Hello, how are you today?', 'Hello', array('num_char' => 5, 'ellipses' => FALSE)); $this->execute('Hello, how are you today?', 'Hello...', array('num_char' => 5, 'ellipses' => TRUE)); + $this->execute('Hello', 'Hello', array('num_char' => 5, 'ellipses' => TRUE)); } }