Added %li print format to dc_queuecmd.
[doldaconnect.git] / lib / uilib.c
index 26429f8..48b3eed 100644 (file)
@@ -58,6 +58,7 @@
 #define RESP_STR 1
 #define RESP_INT 2
 #define RESP_FLOAT 3
+#define RESP_LNUM 4
 
 struct respclass
 {
@@ -476,6 +477,9 @@ int dc_queuecmd(int (*callback)(struct dc_response *), void *data, ...)
                {
                    freepart = 1;
                    part = swprintf2(L"%i", va_arg(al, int));
+               } else if(!wcscmp(tpart, L"li")) {
+                   freepart = 1;
+                   part = swprintf2(L"%ji", (intmax_t)va_arg(al, dc_lnum_t));
                } else if(!wcscmp(tpart, L"s")) {
                    freepart = 1;
                    part = icmbstowcs(sarg = va_arg(al, char *), NULL);
@@ -1372,6 +1376,12 @@ struct dc_intresp *dc_interpret(struct dc_response *resp)
            iresp->argv[iresp->argc].type = cls->wordt[i];
            iresp->argc++;
            break;
+       case RESP_LNUM:
+           sizebuf(&(iresp->argv), &args, iresp->argc + 1, sizeof(*(iresp->argv)), 1);
+           iresp->argv[iresp->argc].val.lnum = wcstoll(resp->rlines[resp->curline].argv[i + 1], NULL, 0);
+           iresp->argv[iresp->argc].type = cls->wordt[i];
+           iresp->argc++;
+           break;
        }
     }
     resp->curline++;