summaryrefslogtreecommitdiffstats
path: root/recipes/libjson/libjson/json-c-longlongint.patch
blob: 5d68249175a9feb708ed02b12d766f934973286c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
Index: jsonjson_object_private.h
===================================================================
--- json.old/json_object_private.h	(revision 55)
+++ json/json_object_private.h	(working copy)
@@ -30,7 +30,7 @@
   union data {
     boolean c_boolean;
     double c_double;
-    int c_int;
+    long long int c_int;
     struct lh_table *c_object;
     struct array_list *c_array;
     char *c_string;
Index: jsonjson_object.c
===================================================================
--- json.old/json_object.c	(revision 55)
+++ json/json_object.c	(working copy)
@@ -319,10 +319,10 @@
 static int json_object_int_to_json_string(struct json_object* jso,
 					  struct printbuf *pb)
 {
-  return sprintbuf(pb, "%d", jso->o.c_int);
+  return sprintbuf(pb, "%lld", jso->o.c_int);
 }
 
-struct json_object* json_object_new_int(int i)
+struct json_object* json_object_new_int(long long int i)
 {
   struct json_object *jso = json_object_new(json_type_int);
   if(!jso) return NULL;
@@ -331,20 +331,20 @@
   return jso;
 }
 
-int json_object_get_int(struct json_object *jso)
+long long int json_object_get_int(struct json_object *jso)
 {
-  int cint;
+  long long int cint;
 
   if(!jso) return 0;
   switch(jso->o_type) {
   case json_type_int:
     return jso->o.c_int;
   case json_type_double:
-    return (int)jso->o.c_double;
+    return (long long int)jso->o.c_double;
   case json_type_boolean:
     return jso->o.c_boolean;
   case json_type_string:
-    if(sscanf(jso->o.c_string, "%d", &cint) == 1) return cint;
+    if(sscanf(jso->o.c_string, "%lld", &cint) == 1) return cint;
   default:
     return 0;
   }
Index: jsonjson_tokener.c
===================================================================
--- json.old/json_tokener.c	(revision 55)
+++ json/json_tokener.c	(working copy)
@@ -542,9 +542,9 @@
           printbuf_memappend_fast(tok->pb, case_start, case_len);
       }
       {
-        int numi;
+        long long int numi;
         double numd;
-        if(!tok->is_double && sscanf(tok->pb->buf, "%d", &numi) == 1) {
+        if(!tok->is_double && sscanf(tok->pb->buf, "%lld", &numi) == 1) {
           current = json_object_new_int(numi);
         } else if(tok->is_double && sscanf(tok->pb->buf, "%lf", &numd) == 1) {
           current = json_object_new_double(numd);
Index: jsonjson_object.h
===================================================================
--- json.old/json_object.h	(revision 55)
+++ json/json_object.h	(working copy)
@@ -252,18 +252,18 @@
  * @param i the integer
  * @returns a json_object of type json_type_int
  */
-extern struct json_object* json_object_new_int(int i);
+extern struct json_object* json_object_new_int(long long int i);
 
-/** Get the int value of a json_object
+/** Get the long long int value of a json_object
  *
  * The type is coerced to a int if the passed object is not a int.
  * double objects will return their integer conversion. Strings will be
  * parsed as an integer. If no conversion exists then 0 is returned.
  *
  * @param obj the json_object instance
- * @returns an int
+ * @returns a long long int
  */
-extern int json_object_get_int(struct json_object *obj);
+extern long long int json_object_get_int(struct json_object *obj);
 
 
 /* double type methods */
Index: jsonChangeLog
===================================================================
--- json.old/ChangeLog	(revision 55)
+++ json/ChangeLog	(working copy)
@@ -8,6 +8,9 @@
     Brent Miller, bdmiller at yahoo dash inc dot com
   * Correction to comment describing printbuf_memappend in printbuf.h
     Brent Miller, bdmiller at yahoo dash inc dot com
+  * Use long long int instead of plain int for integers (needed for stuff like
+    twitter, which has some long long ints in it's status IDs
+    Rui Miguel Seabra, rms at 1407 dot org
 
 0.9
   * Add README.html README-WIN32.html config.h.win32 to Makefile.am