diff options
author | Drew DeVault <sir@cmpwn.com> | 2016-12-02 08:10:03 -0500 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2016-12-02 08:10:03 -0500 |
commit | f23880b1fdd70a21b04317c18208a1f3ce356839 (patch) | |
tree | 51a54d43531ac28ef014193abef8f4ccd7a78332 /sway/config.c | |
parent | Enforce mouse permissions (diff) | |
download | sway-f23880b1fdd70a21b04317c18208a1f3ce356839.tar.gz sway-f23880b1fdd70a21b04317c18208a1f3ce356839.tar.zst sway-f23880b1fdd70a21b04317c18208a1f3ce356839.zip |
Add support for command policies in config file
Diffstat (limited to 'sway/config.c')
-rw-r--r-- | sway/config.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/sway/config.c b/sway/config.c index a2f6a728..e55c6dea 100644 --- a/sway/config.c +++ b/sway/config.c | |||
@@ -580,7 +580,13 @@ bool read_config(FILE *file, struct sway_config *config) { | |||
580 | free(line); | 580 | free(line); |
581 | continue; | 581 | continue; |
582 | } | 582 | } |
583 | struct cmd_results *res = config_command(line, block); | 583 | struct cmd_results *res; |
584 | if (block == CMD_BLOCK_COMMANDS) { | ||
585 | // Special case | ||
586 | res = config_commands_command(line); | ||
587 | } else { | ||
588 | res = config_command(line, block); | ||
589 | } | ||
584 | switch(res->status) { | 590 | switch(res->status) { |
585 | case CMD_FAILURE: | 591 | case CMD_FAILURE: |
586 | case CMD_INVALID: | 592 | case CMD_INVALID: |
@@ -626,6 +632,14 @@ bool read_config(FILE *file, struct sway_config *config) { | |||
626 | } | 632 | } |
627 | break; | 633 | break; |
628 | 634 | ||
635 | case CMD_BLOCK_COMMANDS: | ||
636 | if (block == CMD_BLOCK_END) { | ||
637 | block = CMD_BLOCK_COMMANDS; | ||
638 | } else { | ||
639 | sway_log(L_ERROR, "Invalid block '%s'", line); | ||
640 | } | ||
641 | break; | ||
642 | |||
629 | case CMD_BLOCK_END: | 643 | case CMD_BLOCK_END: |
630 | switch(block) { | 644 | switch(block) { |
631 | case CMD_BLOCK_MODE: | 645 | case CMD_BLOCK_MODE: |
@@ -651,6 +665,11 @@ bool read_config(FILE *file, struct sway_config *config) { | |||
651 | block = CMD_BLOCK_BAR; | 665 | block = CMD_BLOCK_BAR; |
652 | break; | 666 | break; |
653 | 667 | ||
668 | case CMD_BLOCK_COMMANDS: | ||
669 | sway_log(L_DEBUG, "End of commands block"); | ||
670 | block = CMD_BLOCK_END; | ||
671 | break; | ||
672 | |||
654 | case CMD_BLOCK_END: | 673 | case CMD_BLOCK_END: |
655 | sway_log(L_ERROR, "Unmatched }"); | 674 | sway_log(L_ERROR, "Unmatched }"); |
656 | break; | 675 | break; |