64-bit BER integers. Fixes bug #114.
[yaz-moved-to-github.git] / src / cqltransform.c
index ea6c20a..3846685 100644 (file)
@@ -106,8 +106,8 @@ static int cql_transform_parse_tok_line(cql_transform_t ct,
             wrbuf_puts(type_str, yaz_tok_parse_string(tp));
             t = yaz_tok_move(tp);
         }
             wrbuf_puts(type_str, yaz_tok_parse_string(tp));
             t = yaz_tok_move(tp);
         }
-        elem->attributeType = nmem_intdup(ct->nmem, 0);
-        if (sscanf(wrbuf_cstr(type_str), "%d", elem->attributeType)
+        elem->attributeType = nmem_longintdup(ct->nmem, 0);
+        if (sscanf(wrbuf_cstr(type_str), ODR_INT_PRINTF, elem->attributeType)
             != 1)
         {
             wrbuf_destroy(type_str);
             != 1)
         {
             wrbuf_destroy(type_str);
@@ -140,7 +140,7 @@ static int cql_transform_parse_tok_line(cql_transform_t ct,
         {
             elem->which = Z_AttributeValue_numeric;
             elem->value.numeric =
         {
             elem->which = Z_AttributeValue_numeric;
             elem->value.numeric =
-                nmem_intdup(ct->nmem, atoi(value_str));
+                nmem_longintdup(ct->nmem, atoi(value_str));
         }
         else
         {
         }
         else
         {