mmlib/mmat.*:
authorMatthew Mondor <mmondor@pulsar-zone.net>
Sun, 14 Apr 2019 15:49:44 +0000 (15:49 +0000)
committerMatthew Mondor <mmondor@pulsar-zone.net>
Sun, 14 Apr 2019 15:49:44 +0000 (15:49 +0000)
- Improve comments
- Add a few more proprietary long command prefixes (!, ^)
- Make long command prefix as part of the long command supplied to
  user code

mmsoftware/mmlib/mmat.c

index 16074f8..31d0acf 100644 (file)
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+ /*
+  * Modem AT command set (Hayes style) parsing library
+  * To compile test binary:
+  * cc -Wall -Os -I. -DTEST -o mmat mmat.c
+  */
 
 #include <mmat.h>
 
@@ -141,7 +146,7 @@ at_type_str(int t)
 /*
  * D<...>              Dial long command
  * [&|%|\]<l>[0|<n>]   Commands (including &V status)
- * [+|#]<cmd>          Long V.250+GSM and voice commands
+ * [+|#|!|^]<cmd>      Long V.250+GSM and voice commands and proprietary
  * S<n>                        Register select command
  * =<v>                        Register assignment command
  */
@@ -173,8 +178,12 @@ next:
                        type = AT_VENDOR2;
                        continue;
                }
-               if (*cptr == '+' || *cptr == '#') {
+               if (*cptr == '+' || *cptr == '#' || *cptr == '!' ||
+                   *cptr == '^') {
+                       /* Long command */
                        type = AT_LONG;
+                       ctx->lcmd[0] = *cptr;
+                       lcmdn = 1;
                        longcmd = true;
                        continue;
                }