File spandsp-handle-international-dialstring-prefix.diff of Package spandsp

---
 src/at_interpreter.c |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

Index: spandsp-3.0.0.g15/src/at_interpreter.c
===================================================================
--- spandsp-3.0.0.g15.orig/src/at_interpreter.c
+++ spandsp-3.0.0.g15/src/at_interpreter.c
@@ -921,6 +921,7 @@ static const char *at_cmd_A(at_state_t *
 
 static const char *at_cmd_D(at_state_t *s, const char *t)
 {
+    int first = true;
     char *u;
     char num[100 + 1];
     char ch;
@@ -940,6 +941,7 @@ static const char *at_cmd_D(at_state_t *
         {
             /* V.250 6.3.1.1 Basic digit set */
             *u++ = ch;
+            first = false;
         }
         else
         {
@@ -953,7 +955,10 @@ static const char *at_cmd_D(at_state_t *
             case '#':
                 /* V.250 6.3.1.1 Full DTMF repertoire */
                 if (!s->p.pulse_dial)
+                {
                     *u++ = ch;
+                    first = false;
+                }
                 break;
             case ' ':
             case '-':
@@ -963,7 +968,10 @@ static const char *at_cmd_D(at_state_t *
                 break;
             case '+':
                 /* V.250 6.3.1.1 International access code */
-                /* TODO: */
+                /* Allow + as first symbol in a dial string. */
+                if (first)
+                    *u++ = ch;
+                first = false;
                 break;
             case ',':
                 /* V.250 6.3.1.2 Pause */
openSUSE Build Service is sponsored by