Mercurial > prosody-hg
comparison util/dataforms.lua @ 11880:d30c81b875f2
util.dataforms: Ensure larger integers are serialized as such
Assumes that most number fields are integers, as most numeric types
listed in XEP-0122 are, as are all such fields in Prosody as of this.
Otherwise %g produces something like 1.1259e+15
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Thu, 28 Oct 2021 13:00:24 +0200 |
| parents | bf6706057283 |
| children | 2138fc13d53a |
comparison
equal
deleted
inserted
replaced
| 11879:b8b889ba8d27 | 11880:d30c81b875f2 |
|---|---|
| 105 if type(value) == "number" then | 105 if type(value) == "number" then |
| 106 if field.datatype == "xs:dateTime" then | 106 if field.datatype == "xs:dateTime" then |
| 107 value = datetime.datetime(value); | 107 value = datetime.datetime(value); |
| 108 elseif field_type == "boolean" then | 108 elseif field_type == "boolean" then |
| 109 value = value ~= 0; | 109 value = value ~= 0; |
| 110 elseif field.datatype == "xs:double" or field.datatype == "xs:decimal" then | |
| 111 value = ("%f"):format(value); | |
| 110 else | 112 else |
| 111 value = ("%g"):format(value); | 113 value = ("%d"):format(value); |
| 112 end | 114 end |
| 113 end | 115 end |
| 114 -- Add value, depending on type | 116 -- Add value, depending on type |
| 115 if field_type == "hidden" then | 117 if field_type == "hidden" then |
| 116 if type(value) == "table" then | 118 if type(value) == "table" then |
