From 2654ba5735ce357108f5d0322fd01159cbe7df78 Mon Sep 17 00:00:00 2001
From: Nicolas Del Piano <ndel314@gmail.com>
Date: Wed, 15 Jan 2014 10:14:10 -0300
Subject: [PATCH] Bug 957084 - Allow the sending of empty SMS messages (Gecko
 side). r=gene

This patch allows to send empty messages. The fragmentText function did not
contemplate the empty message case. So, I changed and added some behaviours
that removed the conflict.
---
 dom/system/gonk/RadioInterfaceLayer.js | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/dom/system/gonk/RadioInterfaceLayer.js b/dom/system/gonk/RadioInterfaceLayer.js
index 9d4f5acd8a629..4bd47353c5b80 100644
--- a/dom/system/gonk/RadioInterfaceLayer.js
+++ b/dom/system/gonk/RadioInterfaceLayer.js
@@ -3318,6 +3318,15 @@ RadioInterface.prototype = {
   _fragmentText7Bit: function(text, langTable, langShiftTable, segmentSeptets, strict7BitEncoding) {
     let ret = [];
     let body = "", len = 0;
+    // If the message is empty, we only push the empty message to ret.
+    if (text.length == 0) {
+      ret.push({
+        body: text,
+        encodedBodyLength: text.length,
+      });
+      return ret;
+    }
+
     for (let i = 0, inc = 0; i < text.length; i++) {
       let c = text.charAt(i);
       if (strict7BitEncoding) {
@@ -3387,6 +3396,15 @@ RadioInterface.prototype = {
    */
   _fragmentTextUCS2: function(text, segmentChars) {
     let ret = [];
+    // If the message is empty, we only push the empty message to ret.
+    if (text.length == 0) {
+      ret.push({
+        body: text,
+        encodedBodyLength: text.length,
+      });
+      return ret;
+    }
+
     for (let offset = 0; offset < text.length; offset += segmentChars) {
       let str = text.substr(offset, segmentChars);
       ret.push({
-- 
GitLab