pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
sway: patches to fix swaybg crash
Module Name: pkgsrc-wip
Committed By: kikadf <kikadf.01%gmail.com@localhost>
Pushed By: kikadf
Date: Sat Feb 7 11:22:03 2026 +0100
Changeset: ba419dd64dac3ff5109dafa4bbf2d4f525ba987a
Modified Files:
sway/Makefile
sway/TODO
sway/distinfo
sway/files/startsway.sh
Added Files:
sway/patches/patch-common_stringop.c
sway/patches/patch-common_util.c
sway/patches/patch-sway_commands.c
sway/patches/patch-sway_commands_move.c
sway/patches/patch-sway_commands_rename.c
sway/patches/patch-sway_commands_workspace.c
sway/patches/patch-sway_input_input-manager.c
sway/patches/patch-sway_ipc-json.c
sway/patches/patch-sway_tree_output.c
sway/patches/patch-sway_tree_workspace.c
sway/patches/patch-swaybar_i3bar.c
sway/patches/patch-swaybar_tray_icon.c
Log Message:
sway: patches to fix swaybg crash
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=ba419dd64dac3ff5109dafa4bbf2d4f525ba987a
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
sway/Makefile | 38 ++-------------------
sway/TODO | 6 ++--
sway/distinfo | 12 +++++++
sway/files/startsway.sh | 4 ++-
sway/patches/patch-common_stringop.c | 15 +++++++++
sway/patches/patch-common_util.c | 15 +++++++++
sway/patches/patch-sway_commands.c | 30 +++++++++++++++++
sway/patches/patch-sway_commands_move.c | 15 +++++++++
sway/patches/patch-sway_commands_rename.c | 15 +++++++++
sway/patches/patch-sway_commands_workspace.c | 15 +++++++++
sway/patches/patch-sway_input_input-manager.c | 15 +++++++++
sway/patches/patch-sway_ipc-json.c | 15 +++++++++
sway/patches/patch-sway_tree_output.c | 23 +++++++++++++
sway/patches/patch-sway_tree_workspace.c | 30 +++++++++++++++++
sway/patches/patch-swaybar_i3bar.c | 33 ++++++++++++++++++
sway/patches/patch-swaybar_tray_icon.c | 48 +++++++++++++++++++++++++++
16 files changed, 291 insertions(+), 38 deletions(-)
diffs:
diff --git a/sway/Makefile b/sway/Makefile
index bc5d339e58..ebc5df0e2a 100644
--- a/sway/Makefile
+++ b/sway/Makefile
@@ -10,48 +10,15 @@ COMMENT= Tilling, i3-compatible Wayland compositor
LICENSE= mit
USE_TOOLS+= pkg-config
-TOOL_DEPENDS+= scdoc-[0-9]*:../../textproc/scdoc
-DEPENDS+= swaybg-[0-9]*:../../wip/swaybg
EGDIR= ${PREFIX}/share/examples/sway
OWN_DIRS+= ${PKG_SYSCONFDIR}/sway
CONF_FILES= ${EGDIR}/config ${PKG_SYSCONFDIR}/sway/config
-INSTALLATION_DIRS+= ${PKGMANDIR}/man1
-INSTALLATION_DIRS+= ${PKGMANDIR}/man5
-INSTALLATION_DIRS+= ${PKGMANDIR}/man7
+#CFLAGS+= -O0 -g
+#INSTALL_UNSTRIPPED= yes
post-install:
- scdoc < ${WRKSRC}/sway/sway.1.scd > ${WRKSRC}/sway/sway.1
- scdoc < ${WRKSRC}/sway/sway.5.scd > ${WRKSRC}/sway/sway.5
- scdoc < ${WRKSRC}/sway/sway-bar.5.scd > ${WRKSRC}/sway/sway-bar.5
- scdoc < ${WRKSRC}/sway/sway-input.5.scd > ${WRKSRC}/sway/sway-input.5
- scdoc < ${WRKSRC}/sway/sway-ipc.7.scd > ${WRKSRC}/sway/sway-ipc.7
- scdoc < ${WRKSRC}/sway/sway-output.5.scd > ${WRKSRC}/sway/sway-output.5
- scdoc < ${WRKSRC}/swaynag/swaynag.1.scd > ${WRKSRC}/swaynag/swaynag.1
- scdoc < ${WRKSRC}/swaynag/swaynag.5.scd > ${WRKSRC}/swaynag/swaynag.5
- scdoc < ${WRKSRC}/swaybar/swaybar-protocol.7.scd > ${WRKSRC}/swaybar/swaybar-protocol.7
- scdoc < ${WRKSRC}/swaymsg/swaymsg.1.scd > ${WRKSRC}/swaymsg/swaymsg.1
- ${INSTALL_MAN} ${WRKSRC}/sway/sway.1 \
- ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1/sway.1
- ${INSTALL_MAN} ${WRKSRC}/sway/sway.5 \
- ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5/sway.5
- ${INSTALL_MAN} ${WRKSRC}/sway/sway-bar.5 \
- ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5/sway-bar.5
- ${INSTALL_MAN} ${WRKSRC}/sway/sway-input.5 \
- ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5/sway-input.5
- ${INSTALL_MAN} ${WRKSRC}/sway/sway-ipc.7 \
- ${DESTDIR}${PREFIX}/${PKGMANDIR}/man7/sway-ipc.7
- ${INSTALL_MAN} ${WRKSRC}/sway/sway-output.5 \
- ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5/sway-output.5
- ${INSTALL_MAN} ${WRKSRC}/swaynag/swaynag.1 \
- ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1/swaynag.1
- ${INSTALL_MAN} ${WRKSRC}/swaynag/swaynag.5 \
- ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5/swaynag.5
- ${INSTALL_MAN} ${WRKSRC}/swaybar/swaybar-protocol.7 \
- ${DESTDIR}${PREFIX}/${PKGMANDIR}/man7/swaybar-protocol.7
- ${INSTALL_MAN} ${WRKSRC}/swaymsg/swaymsg.1 \
- ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1/swaymsg.1
${INSTALL_SCRIPT} ${FILESDIR}/startsway.sh \
${DESTDIR}${PREFIX}/bin/startsway
@@ -62,6 +29,7 @@ post-install:
.include "../../wip/seatd/buildlink3.mk"
.include "../../devel/meson/build.mk"
+.include "../../textproc/scdoc/tool.mk"
.include "../../devel/pango/buildlink3.mk"
.include "../../devel/pcre/buildlink3.mk"
.include "../../devel/wayland/buildlink3.mk"
diff --git a/sway/TODO b/sway/TODO
index 485b0a03bb..555dfd2d49 100644
--- a/sway/TODO
+++ b/sway/TODO
@@ -1,2 +1,4 @@
-Fix security/capabilities
-Add support for pkgsrc CONF_FILES
+Minimal requirements to testing sway:
+- NetBSD >= 11
+- sway
+- wip/foot
diff --git a/sway/distinfo b/sway/distinfo
index 22314942fd..dd85a687c8 100644
--- a/sway/distinfo
+++ b/sway/distinfo
@@ -3,4 +3,16 @@ $NetBSD$
BLAKE2s (sway-1.11.tar.gz) = 08578ebdaaafd31f89219294389dcad8e918b80181444b47f927a09e1132c737
SHA512 (sway-1.11.tar.gz) = 7366b494308b8773e6051a67286e7abe422bb390f58def8df143d6334b949ef4c5df7e8086332053ff57ec65518f5b04f11a2c31bb57a31dd234eda82457aed5
Size (sway-1.11.tar.gz) = 5583731 bytes
+SHA1 (patch-common_stringop.c) = 1d89d81d0e665dec83b312e4d47645923dedbea3
+SHA1 (patch-common_util.c) = 6092b87d425096740409e00b0d9dac3bc5dae8f7
SHA1 (patch-meson.build) = 40b74709af65b55b4f3e93a5fa45b783f88b6463
+SHA1 (patch-sway_commands.c) = 792b1746fcfccafa1ac2bb7386012a31e327d63a
+SHA1 (patch-sway_commands_move.c) = 8b5682f523ccc626e376c4dcceac53a2c2a739f3
+SHA1 (patch-sway_commands_rename.c) = 831cd230384eecba4bd86696163eb4fa385f4cf4
+SHA1 (patch-sway_commands_workspace.c) = ae2389a3d5d9ff453de3d55e5be5ff6fa447c1d3
+SHA1 (patch-sway_input_input-manager.c) = 911f6a14325ba87130cef81e5bc3ad4772e07613
+SHA1 (patch-sway_ipc-json.c) = 8baeb0f81994ec456161d164a28b3dc6a33953c7
+SHA1 (patch-sway_tree_output.c) = 5e8aa608a2a77013d7d0ceef7b74bf1c8a334bf3
+SHA1 (patch-sway_tree_workspace.c) = c62b76e90b3ae1cbaf958fb4cf42a5d8fee4705a
+SHA1 (patch-swaybar_i3bar.c) = b71e4c995ab4b64f76d6604f1010e83d459e4c29
+SHA1 (patch-swaybar_tray_icon.c) = 4cb661059fb46e207e0da1f3a716c1f8a63d8604
diff --git a/sway/files/startsway.sh b/sway/files/startsway.sh
index 0add0eee1d..11c9d9189f 100644
--- a/sway/files/startsway.sh
+++ b/sway/files/startsway.sh
@@ -9,4 +9,6 @@ export XDG_CURRENT_DESKTOP XDG_RUNTIME_DIR QT_QPA_PLATFORM
[ -d "${XDG_RUNTIME_DIR}" ] || mkdir -p -m 700 "${XDG_RUNTIME_DIR}"
-exec /usr/pkg/bin/seatd-launch /usr/pkg/bin/sway "$@"
+exec /usr/pkg/bin/seatd-launch \
+ /usr/pkg/bin/dbus-run-session \
+ /usr/pkg/bin/sway "$@"
diff --git a/sway/patches/patch-common_stringop.c b/sway/patches/patch-common_stringop.c
new file mode 100644
index 0000000000..e5f134bf0e
--- /dev/null
+++ b/sway/patches/patch-common_stringop.c
@@ -0,0 +1,15 @@
+$NetBSD$
+
+* Fix ctype usage
+
+--- common/stringop.c.orig 2026-02-06 15:04:53.573026504 +0000
++++ common/stringop.c
+@@ -18,7 +18,7 @@ void strip_whitespace(char *str) {
+ memmove(str, &str[start], len + 1 - start);
+
+ if (*str) {
+- for (len -= start + 1; isspace(str[len]); --len) {}
++ for (len -= start + 1; isspace((unsigned char)str[len]); --len) {}
+ str[len + 1] = '\0';
+ }
+ }
diff --git a/sway/patches/patch-common_util.c b/sway/patches/patch-common_util.c
new file mode 100644
index 0000000000..58f7eec57e
--- /dev/null
+++ b/sway/patches/patch-common_util.c
@@ -0,0 +1,15 @@
+$NetBSD$
+
+* Fix ctype usage
+
+--- common/util.c.orig 2026-02-06 14:12:13.396723268 +0000
++++ common/util.c
+@@ -18,7 +18,7 @@ bool parse_color(const char *color, uint
+ ++color;
+ }
+ int len = strlen(color);
+- if ((len != 6 && len != 8) || !isxdigit(color[0]) || !isxdigit(color[1])) {
++ if ((len != 6 && len != 8) || !isxdigit((unsigned char)color[0]) || !isxdigit((unsigned char)color[1])) {
+ return false;
+ }
+ char *ptr;
diff --git a/sway/patches/patch-sway_commands.c b/sway/patches/patch-sway_commands.c
new file mode 100644
index 0000000000..16a830a1bb
--- /dev/null
+++ b/sway/patches/patch-sway_commands.c
@@ -0,0 +1,30 @@
+$NetBSD$
+
+* Fix ctype usage
+
+--- sway/commands.c.orig 2026-02-06 14:32:11.294383795 +0000
++++ sway/commands.c
+@@ -228,7 +228,7 @@ list_t *execute_command(char *_exec, str
+ config->handler_context.seat = seat;
+
+ do {
+- for (; isspace(*head); ++head) {}
++ for (; isspace((unsigned char)*head); ++head) {}
+ // Extract criteria (valid for this command list only).
+ if (matched_delim == ';') {
+ using_criteria = false;
+@@ -247,12 +247,12 @@ list_t *execute_command(char *_exec, str
+ criteria_destroy(criteria);
+ using_criteria = true;
+ // Skip leading whitespace
+- for (; isspace(*head); ++head) {}
++ for (; isspace((unsigned char)*head); ++head) {}
+ }
+ }
+ // Split command list
+ cmd = argsep(&head, ";,", &matched_delim);
+- for (; isspace(*cmd); ++cmd) {}
++ for (; isspace((unsigned char)*cmd); ++cmd) {}
+
+ if (strcmp(cmd, "") == 0) {
+ sway_log(SWAY_INFO, "Ignoring empty command.");
diff --git a/sway/patches/patch-sway_commands_move.c b/sway/patches/patch-sway_commands_move.c
new file mode 100644
index 0000000000..167c3ae03e
--- /dev/null
+++ b/sway/patches/patch-sway_commands_move.c
@@ -0,0 +1,15 @@
+$NetBSD$
+
+* Fix ctype usage
+
+--- sway/commands/move.c.orig 2026-02-06 14:59:39.044165905 +0000
++++ sway/commands/move.c
+@@ -472,7 +472,7 @@ static struct cmd_results *cmd_move_cont
+ if (argc < 3) {
+ return cmd_results_new(CMD_INVALID, "%s", expected_syntax);
+ }
+- if (!isdigit(argv[2][0])) {
++ if (!isdigit((unsigned char)argv[2][0])) {
+ return cmd_results_new(CMD_INVALID,
+ "Invalid workspace number '%s'", argv[2]);
+ }
diff --git a/sway/patches/patch-sway_commands_rename.c b/sway/patches/patch-sway_commands_rename.c
new file mode 100644
index 0000000000..caaf92aa1b
--- /dev/null
+++ b/sway/patches/patch-sway_commands_rename.c
@@ -0,0 +1,15 @@
+$NetBSD$
+
+* Fix ctype usage
+
+--- sway/commands/rename.c.orig 2026-02-06 15:17:20.504788687 +0000
++++ sway/commands/rename.c
+@@ -37,7 +37,7 @@ struct cmd_results *cmd_rename(int argc,
+ workspace = config->handler_context.workspace;
+ } else if (strcasecmp(argv[1], "number") == 0) {
+ // 'rename workspace number x to new_name'
+- if (!isdigit(argv[2][0])) {
++ if (!isdigit((unsigned char)argv[2][0])) {
+ return cmd_results_new(CMD_INVALID,
+ "Invalid workspace number '%s'", argv[2]);
+ }
diff --git a/sway/patches/patch-sway_commands_workspace.c b/sway/patches/patch-sway_commands_workspace.c
new file mode 100644
index 0000000000..8222cb8b67
--- /dev/null
+++ b/sway/patches/patch-sway_commands_workspace.c
@@ -0,0 +1,15 @@
+$NetBSD$
+
+* Fix ctype usage
+
+--- sway/commands/workspace.c.orig 2026-02-06 14:28:42.650855570 +0000
++++ sway/commands/workspace.c
+@@ -194,7 +194,7 @@ struct cmd_results *cmd_workspace(int ar
+ return cmd_results_new(CMD_INVALID,
+ "Expected workspace number");
+ }
+- if (!isdigit(argv[1][0])) {
++ if (!isdigit((unsigned char)argv[1][0])) {
+ return cmd_results_new(CMD_INVALID,
+ "Invalid workspace number '%s'", argv[1]);
+ }
diff --git a/sway/patches/patch-sway_input_input-manager.c b/sway/patches/patch-sway_input_input-manager.c
new file mode 100644
index 0000000000..839e196049
--- /dev/null
+++ b/sway/patches/patch-sway_input_input-manager.c
@@ -0,0 +1,15 @@
+$NetBSD$
+
+* Fix ctype usage
+
+--- sway/input/input-manager.c.orig 2026-02-06 14:46:35.813870635 +0000
++++ sway/input/input-manager.c
+@@ -81,7 +81,7 @@ char *input_device_get_identifier(struct
+ char *p = name;
+ for (; *p; ++p) {
+ // There are in fact input devices with unprintable characters in its name
+- if (*p == ' ' || !isprint(*p)) {
++ if (*p == ' ' || !isprint((unsigned char)*p)) {
+ *p = '_';
+ }
+ }
diff --git a/sway/patches/patch-sway_ipc-json.c b/sway/patches/patch-sway_ipc-json.c
new file mode 100644
index 0000000000..f412a1e89a
--- /dev/null
+++ b/sway/patches/patch-sway_ipc-json.c
@@ -0,0 +1,15 @@
+$NetBSD$
+
+* Fix ctype usage
+
+--- sway/ipc-json.c.orig 2026-02-06 14:36:33.994077551 +0000
++++ sway/ipc-json.c
+@@ -494,7 +494,7 @@ static json_object *ipc_json_describe_sc
+ static void ipc_json_describe_workspace(struct sway_workspace *workspace,
+ json_object *object) {
+ int num;
+- if (isdigit(workspace->name[0])) {
++ if (isdigit((unsigned char)workspace->name[0])) {
+ errno = 0;
+ char *endptr = NULL;
+ long long parsed_num = strtoll(workspace->name, &endptr, 10);
diff --git a/sway/patches/patch-sway_tree_output.c b/sway/patches/patch-sway_tree_output.c
new file mode 100644
index 0000000000..67de1db58f
--- /dev/null
+++ b/sway/patches/patch-sway_tree_output.c
@@ -0,0 +1,23 @@
+$NetBSD$
+
+* Fix ctype usage
+
+--- sway/tree/output.c.orig 2026-02-06 15:15:06.294449317 +0000
++++ sway/tree/output.c
+@@ -381,13 +381,13 @@ static int sort_workspace_cmp_qsort(cons
+ struct sway_workspace *a = *(void **)_a;
+ struct sway_workspace *b = *(void **)_b;
+
+- if (isdigit(a->name[0]) && isdigit(b->name[0])) {
++ if (isdigit((unsigned char)a->name[0]) && isdigit((unsigned char)b->name[0])) {
+ int a_num = strtol(a->name, NULL, 10);
+ int b_num = strtol(b->name, NULL, 10);
+ return (a_num < b_num) ? -1 : (a_num > b_num);
+- } else if (isdigit(a->name[0])) {
++ } else if (isdigit((unsigned char)a->name[0])) {
+ return -1;
+- } else if (isdigit(b->name[0])) {
++ } else if (isdigit((unsigned char)b->name[0])) {
+ return 1;
+ }
+ return 0;
diff --git a/sway/patches/patch-sway_tree_workspace.c b/sway/patches/patch-sway_tree_workspace.c
new file mode 100644
index 0000000000..3f19cfd327
--- /dev/null
+++ b/sway/patches/patch-sway_tree_workspace.c
@@ -0,0 +1,30 @@
+$NetBSD$
+
+* Fix ctype usage
+
+--- sway/tree/workspace.c.orig 2026-02-06 15:19:36.101349296 +0000
++++ sway/tree/workspace.c
+@@ -256,7 +256,7 @@ static void workspace_name_from_binding(
+ sway_log(SWAY_DEBUG, "Isolated name from workspace number: '%s'", _target);
+
+ // Make sure the workspace number doesn't already exist
+- if (isdigit(_target[0]) && workspace_by_number(_target)) {
++ if (isdigit((unsigned char)_target[0]) && workspace_by_number(_target)) {
+ free(_target);
+ free(dup);
+ return;
+@@ -346,12 +346,12 @@ char *workspace_next_name(const char *ou
+ static bool _workspace_by_number(struct sway_workspace *ws, void *data) {
+ char *name = data;
+ char *ws_name = ws->name;
+- while (isdigit(*name)) {
++ while (isdigit((unsigned char)*name)) {
+ if (*name++ != *ws_name++) {
+ return false;
+ }
+ }
+- return !isdigit(*ws_name);
++ return !isdigit((unsigned char)*ws_name);
+ }
+
+ struct sway_workspace *workspace_by_number(const char* name) {
diff --git a/sway/patches/patch-swaybar_i3bar.c b/sway/patches/patch-swaybar_i3bar.c
new file mode 100644
index 0000000000..e01b23c137
--- /dev/null
+++ b/sway/patches/patch-swaybar_i3bar.c
@@ -0,0 +1,33 @@
+$NetBSD$
+
+* Fix ctype usage
+
+--- swaybar/i3bar.c.orig 2026-02-06 15:09:17.576197045 +0000
++++ swaybar/i3bar.c
+@@ -126,7 +126,7 @@ bool i3bar_handle_readable(struct status
+ status->buffer_index -= ++c;
+ memmove(status->buffer, &status->buffer[c], status->buffer_index);
+ break;
+- } else if (!isspace(status->buffer[c])) {
++ } else if (!isspace((unsigned char)status->buffer[c])) {
+ sway_log(SWAY_DEBUG, "Invalid i3bar json: expected '[' but encountered '%c'",
+ status->buffer[c]);
+ status_error(status, "[invalid i3bar json]");
+@@ -166,7 +166,7 @@ bool i3bar_handle_readable(struct status
+ status->expecting_comma = false;
+ ++buffer_pos;
+ break;
+- } else if (!isspace(status->buffer[buffer_pos])) {
++ } else if (!isspace((unsigned char)status->buffer[buffer_pos])) {
+ sway_log(SWAY_DEBUG, "Invalid i3bar json: expected ',' but encountered '%c'",
+ status->buffer[buffer_pos]);
+ status_error(status, "[invalid i3bar json]");
+@@ -197,7 +197,7 @@ bool i3bar_handle_readable(struct status
+ char *last_char_pos =
+ &status->buffer[buffer_pos + status->tokener->char_offset - 1];
+ char last_char = *last_char_pos;
+- while (isspace(last_char)) {
++ while (isspace((unsigned char)last_char)) {
+ last_char = *--last_char_pos;
+ }
+ *last_char_pos = '\0';
diff --git a/sway/patches/patch-swaybar_tray_icon.c b/sway/patches/patch-swaybar_tray_icon.c
new file mode 100644
index 0000000000..b941dc2e8d
--- /dev/null
+++ b/sway/patches/patch-swaybar_tray_icon.c
@@ -0,0 +1,48 @@
+$NetBSD$
+
+* Fix ctype usage
+
+--- swaybar/tray/icon.c.orig 2026-02-06 14:22:15.740453549 +0000
++++ swaybar/tray/icon.c
+@@ -228,17 +228,17 @@ static struct icon_theme *read_theme_fil
+ ++line_no;
+
+ char *line = full_line - 1;
+- while (isspace(*++line)) {} // remove leading whitespace
++ while (isspace((unsigned char)*++line)) {} // remove leading whitespace
+ if (!*line || line[0] == '#') continue; // ignore blank lines & comments
+
+ int len = nread - (line - full_line);
+- while (isspace(line[--len])) {}
++ while (isspace((unsigned char)line[--len])) {}
+ line[++len] = '\0'; // remove trailing whitespace
+
+ if (line[0] == '[') { // group header
+ // check well-formed
+ int i = 1;
+- for (; !iscntrl(line[i]) && line[i] != '[' && line[i] != ']'; ++i) {}
++ for (; !iscntrl((unsigned char)line[i]) && line[i] != '[' && line[i] != ']'; ++i) {}
+ if (i != --len || line[i] != ']') {
+ error = "malformed group header";
+ break;
+@@ -268,9 +268,9 @@ static struct icon_theme *read_theme_fil
+
+ // check well-formed
+ int eok = 0;
+- for (; isalnum(line[eok]) || line[eok] == '-'; ++eok) {} // TODO locale?
++ for (; isalnum((unsigned char)line[eok]) || line[eok] == '-'; ++eok) {} // TODO locale?
+ int i = eok - 1;
+- while (isspace(line[++i])) {}
++ while (isspace((unsigned char)line[++i])) {}
+ if (line[i] != '=') {
+ error = "malformed key-value pair";
+ break;
+@@ -278,7 +278,7 @@ static struct icon_theme *read_theme_fil
+
+ line[eok] = '\0'; // split into key-value pair
+ char *value = &line[i];
+- while (isspace(*++value)) {}
++ while (isspace((unsigned char)*++value)) {}
+ // TODO unescape value
+
+ error = entry_handler(groups->items[groups->length - 1], line,
Home |
Main Index |
Thread Index |
Old Index