# define json_object_object_foreach(obj,key,val) \
char *key; \
struct json_object *val; \
- for(struct lh_entry *entry = json_object_get_object(obj)->head, *entry_next = NULL; \
- ({ if(entry) { \
- key = (char*)entry->k; \
- val = (struct json_object*)entry->v; \
- entry_next = entry->next; \
- } ; entry; }); \
- entry = entry_next )
+ for(struct lh_entry *entry ## key = json_object_get_object(obj)->head, *entry_next ## key = NULL; \
+ ({ if(entry ## key) { \
+ key = (char*)entry ## key->k; \
+ val = (struct json_object*)entry ## key->v; \
+ entry_next ## key = entry ## key->next; \
+ } ; entry ## key; }); \
+ entry ## key = entry_next ## key )
#else /* ANSI C or MSC */
# define json_object_object_foreach(obj,key,val) \
char *key;\
struct json_object *val; \
- struct lh_entry *entry; \
- struct lh_entry *entry_next = NULL; \
- for(entry = json_object_get_object(obj)->head; \
- (entry ? ( \
- key = (char*)entry->k, \
- val = (struct json_object*)entry->v, \
- entry_next = entry->next, \
- entry) : 0); \
- entry = entry_next)
+ struct lh_entry *entry ## key; \
+ struct lh_entry *entry_next ## key = NULL; \
+ for(entry ## key = json_object_get_object(obj)->head; \
+ (entry ## key ? ( \
+ key = (char*)entry ## key->k, \
+ val = (struct json_object*)entry ## key->v, \
+ entry_next ## key = entry ## key->next, \
+ entry ## key) : 0); \
+ entry ## key = entry_next ## key)
#endif /* defined(__GNUC__) && !defined(__STRICT_ANSI__) */