- if (l > GSM_MAX_SMS_LENGTH)
- {
- if (longSMS)
- {
- sms.UDHType = GSM_ConcatenatedMessages;
- nr_msg = ((l - 1) / 153) + 1;
- udh[0] = 0x05; // UDH length
- udh[1] = 0x00; // concatenated messages (IEI)
- udh[2] = 0x03; // IEI data length
- udh[3] = 0x01; // reference number
- udh[4] = nr_msg; // number of messages
- udh[5] = 0x00; // message reference number
- offset = 6;
-
- for (j = 0; j < nr_msg; j++)
- {
- udh[5] = j + 1;
-
- memcpy(sms.UDH,udh,offset);
- strncpy (sms.MessageText, text + (j * 153), 153);
- sms.MessageText[153] = '\0';
-
- buf = g_strdup_printf (_("Sending SMS to %s (%d/%d) ...\n"),
- sms.Destination, j + 1, nr_msg);
- gtk_label_set_text (GTK_LABEL (infoDialog.text), buf);
- gtk_widget_show_now (infoDialog.dialog);
- g_free (buf);
- GUI_Refresh ();
-
- if (SendSMSCore (&sms) != GE_SMSSENDOK)
- {
- gtk_widget_hide (infoDialog.dialog);
- GUI_Refresh ();
- break;
- }
-
- gtk_widget_hide (infoDialog.dialog);
- GUI_Refresh ();
-
- sleep (1);
- }
- }
- else
- {
- sms.UDHType = GSM_NoUDH;
- nr_msg = ((l - 1) / 153) + 1;
- if (nr_msg > 99) // We have place only for 99 messages in header.
- nr_msg = 99;
- for (j = 0; j < nr_msg; j++)
- {
- gchar header[8];
-
- g_snprintf (header, 8, "%2d/%-2d: ", j + 1, nr_msg);
- header[7] = '\0';