summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2017-12-17 15:52:34 -0500
committerLibravatar Drew DeVault <sir@cmpwn.com>2017-12-17 15:52:34 -0500
commitd0bd0ed59887fdbcbe0630c23e5d1cc6a254340c (patch)
tree4444227f247f9b7cdb854144eb4332e607c34987
parentMerge remote-tracking branch 'besser82/bugfix/json-c' into 0.15 (diff)
downloadsway-d0bd0ed59887fdbcbe0630c23e5d1cc6a254340c.tar.gz
sway-d0bd0ed59887fdbcbe0630c23e5d1cc6a254340c.tar.zst
sway-d0bd0ed59887fdbcbe0630c23e5d1cc6a254340c.zip
Revert "Merge remote-tracking branch 'besser82/bugfix/json-c' into 0.15"
-rw-r--r--.travis.yml7
-rw-r--r--CMakeLists.txt11
-rw-r--r--include/sway_json_helper.h16
-rw-r--r--include/swaygrab/json.h2
-rw-r--r--sway/ipc-server.c7
-rw-r--r--swaybar/status_line.c5
-rw-r--r--swaygrab/json.c9
-rw-r--r--swaylock/main.c4
-rw-r--r--swaymsg/main.c4
9 files changed, 17 insertions, 48 deletions
diff --git a/.travis.yml b/.travis.yml
index 3eeb1682..69634765 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,11 +6,6 @@ compiler:
6 - gcc 6 - gcc
7 - clang 7 - clang
8 8
9env:
10 - BUILD_TYPE=Release
11 - BUILD_TYPE=Debug
12 - BUILD_TYPE=ASAN
13
14arch: 9arch:
15 packages: 10 packages:
16 - cmake 11 - cmake
@@ -24,7 +19,7 @@ arch:
24 - wlc-git 19 - wlc-git
25 - libcap 20 - libcap
26 script: 21 script:
27 - "cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE ." 22 - "cmake ."
28 - "make" 23 - "make"
29 24
30script: 25script:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index dc521570..99081dca 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,17 +9,6 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
9set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) 9set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
10add_compile_options(-Wall -Wextra -Wno-unused-parameter -Wno-unused-result -Werror) 10add_compile_options(-Wall -Wextra -Wno-unused-parameter -Wno-unused-result -Werror)
11 11
12# Add Address Sanitiezed build type
13set(CMAKE_C_FLAGS_ASAN
14 "${CMAKE_C_FLAGS_DEBUG} -fsanitize=address -fno-omit-frame-pointer"
15 CACHE STRING "Flags used by the C compiler during address sanitizer builds."
16 FORCE )
17mark_as_advanced(
18 CMAKE_C_FLAGS_ASAN
19 CMAKE_EXE_LINKER_FLAGS_DEBUG
20 CMAKE_SHARED_LINKER_FLAGS_DEBUG
21 )
22
23list(INSERT CMAKE_MODULE_PATH 0 12list(INSERT CMAKE_MODULE_PATH 0
24 ${CMAKE_CURRENT_SOURCE_DIR}/CMake 13 ${CMAKE_CURRENT_SOURCE_DIR}/CMake
25 ) 14 )
diff --git a/include/sway_json_helper.h b/include/sway_json_helper.h
deleted file mode 100644
index 66f9cff1..00000000
--- a/include/sway_json_helper.h
+++ /dev/null
@@ -1,16 +0,0 @@
1#ifndef _SWAY_JSON_HELPER_H
2#define _SWAY_JSON_HELPER_H
3
4#include <json-c/json.h>
5
6// Macros for checking a specific version.
7#define JSON_C_VERSION_013 (13 << 8)
8
9// json-c v0.13 uses size_t for array_list_length().
10#if defined(JSON_C_VERSION_NUM) && JSON_C_VERSION_NUM >= JSON_C_VERSION_013
11typedef size_t json_ar_len_t;
12#else
13typedef int json_ar_len_t;
14#endif
15
16#endif // _SWAY_JSON_HELPER_H
diff --git a/include/swaygrab/json.h b/include/swaygrab/json.h
index c0bd8587..c1093ef1 100644
--- a/include/swaygrab/json.h
+++ b/include/swaygrab/json.h
@@ -1,4 +1,4 @@
1#include "sway_json_helper.h" 1#include <json-c/json.h>
2#include "wlc/wlc.h" 2#include "wlc/wlc.h"
3 3
4void init_json_tree(int socketfd); 4void init_json_tree(int socketfd);
diff --git a/sway/ipc-server.c b/sway/ipc-server.c
index e10445cf..b560b930 100644
--- a/sway/ipc-server.c
+++ b/sway/ipc-server.c
@@ -15,6 +15,7 @@
15#include <stdlib.h> 15#include <stdlib.h>
16#include <sys/ioctl.h> 16#include <sys/ioctl.h>
17#include <fcntl.h> 17#include <fcntl.h>
18#include <json-c/json.h>
18#include <list.h> 19#include <list.h>
19#include <libinput.h> 20#include <libinput.h>
20#ifdef __linux__ 21#ifdef __linux__
@@ -24,7 +25,6 @@ struct ucred {
24 gid_t gid; 25 gid_t gid;
25}; 26};
26#endif 27#endif
27#include "sway_json_helper.h"
28#include "sway/ipc-json.h" 28#include "sway/ipc-json.h"
29#include "sway/ipc-server.h" 29#include "sway/ipc-server.h"
30#include "sway/security.h" 30#include "sway/security.h"
@@ -724,7 +724,7 @@ void ipc_client_handle_command(struct ipc_client *client) {
724 } 724 }
725 725
726 // parse requested event types 726 // parse requested event types
727 for (json_ar_len_t i = 0; i < json_object_array_length(request); i++) { 727 for (int i = 0; i < json_object_array_length(request); i++) {
728 const char *event_type = json_object_get_string(json_object_array_get_idx(request, i)); 728 const char *event_type = json_object_get_string(json_object_array_get_idx(request, i));
729 if (strcmp(event_type, "workspace") == 0) { 729 if (strcmp(event_type, "workspace") == 0) {
730 client->subscribed_events |= event_mask(IPC_EVENT_WORKSPACE); 730 client->subscribed_events |= event_mask(IPC_EVENT_WORKSPACE);
@@ -1126,8 +1126,7 @@ static void ipc_event_binding(json_object *sb_obj) {
1126 sway_log(L_DEBUG, "Sending binding::run event"); 1126 sway_log(L_DEBUG, "Sending binding::run event");
1127 json_object *obj = json_object_new_object(); 1127 json_object *obj = json_object_new_object();
1128 json_object_object_add(obj, "change", json_object_new_string("run")); 1128 json_object_object_add(obj, "change", json_object_new_string("run"));
1129 // sb_obj gets owned by the temporary json_object, too. 1129 json_object_object_add(obj, "binding", sb_obj);
1130 json_object_object_add(obj, "binding", json_object_get(sb_obj));
1131 1130
1132 const char *json_string = json_object_to_json_string(obj); 1131 const char *json_string = json_object_to_json_string(obj);
1133 ipc_send_event(json_string, IPC_EVENT_BINDING); 1132 ipc_send_event(json_string, IPC_EVENT_BINDING);
diff --git a/swaybar/status_line.c b/swaybar/status_line.c
index e3cc0bf4..87e90caf 100644
--- a/swaybar/status_line.c
+++ b/swaybar/status_line.c
@@ -2,8 +2,8 @@
2#include <stdlib.h> 2#include <stdlib.h>
3#include <string.h> 3#include <string.h>
4#include <unistd.h> 4#include <unistd.h>
5#include <json-c/json.h>
5 6
6#include "sway_json_helper.h"
7#include "swaybar/config.h" 7#include "swaybar/config.h"
8#include "swaybar/status_line.h" 8#include "swaybar/status_line.h"
9#include "log.h" 9#include "log.h"
@@ -70,7 +70,8 @@ static void parse_json(struct bar *bar, const char *text) {
70 70
71 bar->status->block_line = create_list(); 71 bar->status->block_line = create_list();
72 72
73 for (json_ar_len_t i = 0; i < json_object_array_length(results); ++i) { 73 int i;
74 for (i = 0; i < json_object_array_length(results); ++i) {
74 json_object *full_text, *short_text, *color, *min_width, *align, *urgent; 75 json_object *full_text, *short_text, *color, *min_width, *align, *urgent;
75 json_object *name, *instance, *separator, *separator_block_width; 76 json_object *name, *instance, *separator, *separator_block_width;
76 json_object *background, *border, *border_top, *border_bottom; 77 json_object *background, *border, *border_top, *border_bottom;
diff --git a/swaygrab/json.c b/swaygrab/json.c
index f0e8fa90..286085c3 100644
--- a/swaygrab/json.c
+++ b/swaygrab/json.c
@@ -50,7 +50,8 @@ static json_object *get_focused_container_r(json_object *c) {
50 } else { 50 } else {
51 json_object *nodes, *node, *child; 51 json_object *nodes, *node, *child;
52 json_object_object_get_ex(c, "nodes", &nodes); 52 json_object_object_get_ex(c, "nodes", &nodes);
53 for (json_ar_len_t i = 0; i < json_object_array_length(nodes); i++) { 53 int i;
54 for (i = 0; i < json_object_array_length(nodes); i++) {
54 node = json_object_array_get_idx(nodes, i); 55 node = json_object_array_get_idx(nodes, i);
55 56
56 if ((child = get_focused_container_r(node))) { 57 if ((child = get_focused_container_r(node))) {
@@ -59,7 +60,7 @@ static json_object *get_focused_container_r(json_object *c) {
59 } 60 }
60 61
61 json_object_object_get_ex(c, "floating_nodes", &nodes); 62 json_object_object_get_ex(c, "floating_nodes", &nodes);
62 for (json_ar_len_t i = 0; i < json_object_array_length(nodes); i++) { 63 for (i = 0; i < json_object_array_length(nodes); i++) {
63 node = json_object_array_get_idx(nodes, i); 64 node = json_object_array_get_idx(nodes, i);
64 65
65 if ((child = get_focused_container_r(node))) { 66 if ((child = get_focused_container_r(node))) {
@@ -82,7 +83,7 @@ char *get_focused_output() {
82 if (!outputs) { 83 if (!outputs) {
83 sway_abort("Unabled to get focused output. No nodes in tree."); 84 sway_abort("Unabled to get focused output. No nodes in tree.");
84 } 85 }
85 for (json_ar_len_t i = 0; i < json_object_array_length(outputs); i++) { 86 for (int i = 0; i < json_object_array_length(outputs); i++) {
86 output = json_object_array_get_idx(outputs, i); 87 output = json_object_array_get_idx(outputs, i);
87 88
88 if (get_focused_container_r(output)) { 89 if (get_focused_container_r(output)) {
@@ -130,7 +131,7 @@ json_object *get_output_container(const char *output) {
130 json_object *outputs, *json_output, *name; 131 json_object *outputs, *json_output, *name;
131 json_object_object_get_ex(tree, "nodes", &outputs); 132 json_object_object_get_ex(tree, "nodes", &outputs);
132 133
133 for (json_ar_len_t i = 0; i < json_object_array_length(outputs); i++) { 134 for (int i = 0; i < json_object_array_length(outputs); i++) {
134 json_output = json_object_array_get_idx(outputs, i); 135 json_output = json_object_array_get_idx(outputs, i);
135 json_object_object_get_ex(json_output, "name", &name); 136 json_object_object_get_ex(json_output, "name", &name);
136 137
diff --git a/swaylock/main.c b/swaylock/main.c
index 3208a45b..4b486461 100644
--- a/swaylock/main.c
+++ b/swaylock/main.c
@@ -3,6 +3,7 @@
3#include <xkbcommon/xkbcommon.h> 3#include <xkbcommon/xkbcommon.h>
4#include <xkbcommon/xkbcommon-names.h> 4#include <xkbcommon/xkbcommon-names.h>
5#include <security/pam_appl.h> 5#include <security/pam_appl.h>
6#include <json-c/json.h>
6#include <stdio.h> 7#include <stdio.h>
7#include <stdlib.h> 8#include <stdlib.h>
8#include <string.h> 9#include <string.h>
@@ -13,7 +14,6 @@
13#include <signal.h> 14#include <signal.h>
14#include <stdbool.h> 15#include <stdbool.h>
15#include <unistd.h> 16#include <unistd.h>
16#include "sway_json_helper.h"
17#include "client/window.h" 17#include "client/window.h"
18#include "client/registry.h" 18#include "client/registry.h"
19#include "client/cairo.h" 19#include "client/cairo.h"
@@ -583,7 +583,7 @@ int main(int argc, char **argv) {
583 583
584 for (i = 0; i < registry->outputs->length; ++i) { 584 for (i = 0; i < registry->outputs->length; ++i) {
585 if (displays_paths[i * 2] != NULL) { 585 if (displays_paths[i * 2] != NULL) {
586 for (json_ar_len_t j = 0;; ++j) { 586 for (int j = 0;; ++j) {
587 if (j >= json_object_array_length(json_outputs)) { 587 if (j >= json_object_array_length(json_outputs)) {
588 sway_log(L_ERROR, "%s is not an extant output", displays_paths[i * 2]); 588 sway_log(L_ERROR, "%s is not an extant output", displays_paths[i * 2]);
589 exit(EXIT_FAILURE); 589 exit(EXIT_FAILURE);
diff --git a/swaymsg/main.c b/swaymsg/main.c
index 0ee7c76f..2f9cfb14 100644
--- a/swaymsg/main.c
+++ b/swaymsg/main.c
@@ -9,7 +9,7 @@
9#include <sys/socket.h> 9#include <sys/socket.h>
10#include <ctype.h> 10#include <ctype.h>
11#include <unistd.h> 11#include <unistd.h>
12#include "sway_json_helper.h" 12#include <json-c/json.h>
13#include "stringop.h" 13#include "stringop.h"
14#include "ipc-client.h" 14#include "ipc-client.h"
15#include "readline.h" 15#include "readline.h"
@@ -149,7 +149,7 @@ static void pretty_print_version(json_object *v) {
149static void pretty_print_clipboard(json_object *v) { 149static void pretty_print_clipboard(json_object *v) {
150 if (success(v, true)) { 150 if (success(v, true)) {
151 if (json_object_is_type(v, json_type_array)) { 151 if (json_object_is_type(v, json_type_array)) {
152 for (json_ar_len_t i = 0; i < json_object_array_length(v); ++i) { 152 for (int i = 0; i < json_object_array_length(v); ++i) {
153 json_object *o = json_object_array_get_idx(v, i); 153 json_object *o = json_object_array_get_idx(v, i);
154 printf("%s\n", json_object_get_string(o)); 154 printf("%s\n", json_object_get_string(o));
155 } 155 }