Browse Source

Fix some Windows compile issues, add JSON_EXPORT's, fix bogus character escapes, define __func__ and omit unistd.h if needed.

tags/json-c-0.14-20200419
Eric Haszlakiewicz 5 years ago
parent
commit
7f30afc6e5
8 changed files with 34 additions and 17 deletions
  1. +14
    -6
      debug.h
  2. +1
    -1
      json_object.c
  3. +4
    -4
      json_object.h
  4. +3
    -1
      random_seed.c
  5. +1
    -1
      strerror_override_private.h
  6. +2
    -2
      tests/test_json_pointer.c
  7. +6
    -1
      tests/test_printbuf.c
  8. +3
    -1
      tests/test_util_file.c

+ 14
- 6
debug.h View File

@@ -23,14 +23,22 @@
extern "C" { extern "C" {
#endif #endif


extern void mc_set_debug(int debug);
extern int mc_get_debug(void);
#ifndef JSON_EXPORT
#if defined(_MSC_VER)
#define JSON_EXPORT __declspec(dllexport)
#else
#define JSON_EXPORT extern
#endif
#endif

JSON_EXPORT void mc_set_debug(int debug);
JSON_EXPORT int mc_get_debug(void);


extern void mc_set_syslog(int syslog);
JSON_EXPORT void mc_set_syslog(int syslog);


extern void mc_debug(const char *msg, ...);
extern void mc_error(const char *msg, ...);
extern void mc_info(const char *msg, ...);
JSON_EXPORT void mc_debug(const char *msg, ...);
JSON_EXPORT void mc_error(const char *msg, ...);
JSON_EXPORT void mc_info(const char *msg, ...);


#ifndef __STRING #ifndef __STRING
#define __STRING(x) #x #define __STRING(x) #x


+ 1
- 1
json_object.c View File

@@ -166,7 +166,7 @@ static int json_escape_str(struct printbuf *pb, const char *str, int len, int fl


/* reference counting */ /* reference counting */


extern struct json_object* json_object_get(struct json_object *jso)
struct json_object* json_object_get(struct json_object *jso)
{ {
if (!jso) return jso; if (!jso) return jso;




+ 4
- 4
json_object.h View File

@@ -351,7 +351,7 @@ JSON_EXPORT void json_object_set_serializer(json_object *jso,
* @param jso unused * @param jso unused
* @param userdata the pointer that is passed to free(). * @param userdata the pointer that is passed to free().
*/ */
json_object_delete_fn json_object_free_userdata;
JSON_EXPORT json_object_delete_fn json_object_free_userdata;


/** /**
* Copy the jso->_userdata string over to pb as-is. * Copy the jso->_userdata string over to pb as-is.
@@ -362,7 +362,7 @@ json_object_delete_fn json_object_free_userdata;
* @param level Ignored. * @param level Ignored.
* @param flags Ignored. * @param flags Ignored.
*/ */
json_object_to_json_string_fn json_object_userdata_to_json_string;
JSON_EXPORT json_object_to_json_string_fn json_object_userdata_to_json_string;


#ifdef __clang__ #ifdef __clang__
/* } */ /* } */
@@ -825,7 +825,7 @@ JSON_EXPORT struct json_object* json_object_new_double_s(double d, const char *d
* *
* @return -1 on errors, 0 on success. * @return -1 on errors, 0 on success.
*/ */
int json_c_set_serialization_double_format(const char *double_format, int global_or_thread);
JSON_EXPORT int json_c_set_serialization_double_format(const char *double_format, int global_or_thread);






@@ -1013,7 +1013,7 @@ typedef int (json_c_shallow_copy_fn)(json_object *src, json_object *parent, cons
* *
* @return 1 on success, -1 on errors, but never 2. * @return 1 on success, -1 on errors, but never 2.
*/ */
json_c_shallow_copy_fn json_c_shallow_copy_default;
JSON_EXPORT json_c_shallow_copy_fn json_c_shallow_copy_default;


/** /**
* Copy the contents of the JSON object. * Copy the contents of the JSON object.


+ 3
- 1
random_seed.c View File

@@ -128,7 +128,9 @@ retry:


#include <string.h> #include <string.h>
#include <fcntl.h> #include <fcntl.h>
#include <unistd.h>
#if HAVE_UNISTD_H
# include <unistd.h>
#endif /* HAVE_UNISTD_H */
#include <stdlib.h> #include <stdlib.h>
#include <sys/stat.h> #include <sys/stat.h>




+ 1
- 1
strerror_override_private.h View File

@@ -7,6 +7,6 @@
*/ */


/* Used by tests to get consistent output */ /* Used by tests to get consistent output */
extern int _json_c_strerror_enable;
JSON_EXPORT int _json_c_strerror_enable;


#endif #endif

+ 2
- 2
tests/test_json_pointer.c View File

@@ -20,7 +20,7 @@ static const char *input_json_str = "{ "
"'foo': ['bar', 'baz'], " "'foo': ['bar', 'baz'], "
"'': 0, " "'': 0, "
"'a/b': 1, " "'a/b': 1, "
"'c\%d': 2, "
"'c%d': 2, "
"'e^f': 3, " "'e^f': 3, "
"'g|h': 4, " "'g|h': 4, "
"'i\\\\j': 5, " "'i\\\\j': 5, "
@@ -238,7 +238,7 @@ static void test_example_set()
assert(0 == json_pointer_set(&jo1, "/", json_object_new_int(9))); assert(0 == json_pointer_set(&jo1, "/", json_object_new_int(9)));
printf("PASSED - SET - / == 9\n"); printf("PASSED - SET - / == 9\n");


jo2 = json_tokener_parse("{ 'foo': [ 'bar', 'cod' ], '': 9, 'a/b': 1, 'c\%d': 2, 'e^f': 3, 'g|h': 4, 'i\\\\j': 5, 'k\\\"l': 6, ' ': 7, 'm~n': 8, 'fud': { 'gaw': [ 0, 2, 3, 4 ] } }");
jo2 = json_tokener_parse("{ 'foo': [ 'bar', 'cod' ], '': 9, 'a/b': 1, 'c%d': 2, 'e^f': 3, 'g|h': 4, 'i\\\\j': 5, 'k\\\"l': 6, ' ': 7, 'm~n': 8, 'fud': { 'gaw': [ 0, 2, 3, 4 ] } }");
assert(json_object_equal(jo2, jo1)); assert(json_object_equal(jo2, jo1));
printf("PASSED - SET - Final JSON is: %s\n", json_object_get_string(jo1)); printf("PASSED - SET - Final JSON is: %s\n", json_object_get_string(jo1));
json_object_put(jo2); json_object_put(jo2);


+ 6
- 1
tests/test_printbuf.c View File

@@ -11,6 +11,11 @@
static void test_basic_printbuf_memset(void); static void test_basic_printbuf_memset(void);
static void test_printbuf_memset_length(void); static void test_printbuf_memset_length(void);


#ifndef __func__
/* VC++ compat */
#define __func__ __FUNCTION__
#endif

static void test_basic_printbuf_memset() static void test_basic_printbuf_memset()
{ {
struct printbuf *pb; struct printbuf *pb;
@@ -158,7 +163,7 @@ int main(int argc, char **argv)
{ {
int before_resize = 0; int before_resize = 0;


mc_set_debug(1);
MC_SET_DEBUG(1);


test_basic_printbuf_memset(); test_basic_printbuf_memset();
printf("========================================\n"); printf("========================================\n");


+ 3
- 1
tests/test_util_file.c View File

@@ -6,7 +6,9 @@
#include <string.h> #include <string.h>
#include <fcntl.h> #include <fcntl.h>
#include <limits.h> #include <limits.h>
#include <unistd.h>
#if HAVE_UNISTD_H
# include <unistd.h>
#endif /* HAVE_UNISTD_H */
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>




Loading…
Cancel
Save