aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2015-11-29 14:02:58 -0500
committerDrew DeVault <sir@cmpwn.com>2015-11-29 14:02:58 -0500
commit5a369b3132a5f79afb4d65ec87562b473b4b29dd (patch)
tree1b892102e07f8a7cf57fcf6838e95f113266cf55
parentef91764bc721633b335af8d5be051db21a9b7eea (diff)
downloadsway-5a369b3132a5f79afb4d65ec87562b473b4b29dd.tar.xz
Only strip comments at the start of a line
This is necessary because i3 config files use CSS notation for colors (i.e. #rrggbb).
-rw-r--r--common/stringop.c20
-rw-r--r--sway/config.c8
2 files changed, 5 insertions, 23 deletions
diff --git a/common/stringop.c b/common/stringop.c
index efa3a207..81d9b963 100644
--- a/common/stringop.c
+++ b/common/stringop.c
@@ -10,7 +10,6 @@
const char whitespace[] = " \f\n\r\t\v";
-/* Note: This returns 8 characters for trimmed_start per tab character. */
char *strip_whitespace(char *_str) {
if (*_str == '\0')
return _str;
@@ -29,25 +28,6 @@ char *strip_whitespace(char *_str) {
return str;
}
-char *strip_comments(char *str) {
- int in_string = 0, in_character = 0;
- int i = 0;
- while (str[i] != '\0') {
- if (str[i] == '"' && !in_character) {
- in_string = !in_string;
- } else if (str[i] == '\'' && !in_string) {
- in_character = !in_character;
- } else if (!in_character && !in_string) {
- if (str[i] == '#') {
- str[i] = '\0';
- break;
- }
- }
- ++i;
- }
- return str;
-}
-
void strip_quotes(char *str) {
bool in_str = false;
bool in_chr = false;
diff --git a/sway/config.c b/sway/config.c
index dd466e5b..67b442ad 100644
--- a/sway/config.c
+++ b/sway/config.c
@@ -207,7 +207,10 @@ bool read_config(FILE *file, bool is_active) {
while (!feof(file)) {
line = read_line(file);
line_number++;
- line = strip_comments(line);
+ line = strip_whitespace(line);
+ if (line[0] == '#') {
+ continue;
+ }
struct cmd_results *res = config_command(line);
switch(res->status) {
case CMD_FAILURE:
@@ -261,8 +264,7 @@ bool read_config(FILE *file, bool is_active) {
return success;
}
-int output_name_cmp(const void *item, const void *data)
-{
+int output_name_cmp(const void *item, const void *data) {
const struct output_config *output = item;
const char *name = data;