Merge pull request #699 from roosemberth/master

Sway: Configuration: Support for escaping line breaks.
This commit is contained in:
Drew DeVault 2016-06-05 18:24:12 -04:00
commit cb14f5f576
2 changed files with 13 additions and 0 deletions

View File

@ -5,17 +5,24 @@
char *read_line(FILE *file) { char *read_line(FILE *file) {
size_t length = 0, size = 128; size_t length = 0, size = 128;
char *string = malloc(size); char *string = malloc(size);
char lastChar = '\0';
if (!string) { if (!string) {
return NULL; return NULL;
} }
while (1) { while (1) {
int c = getc(file); int c = getc(file);
if (c == '\n' && lastChar == '\\'){
--length; // Ignore last character.
lastChar = '\0';
continue;
}
if (c == EOF || c == '\n' || c == '\0') { if (c == EOF || c == '\n' || c == '\0') {
break; break;
} }
if (c == '\r') { if (c == '\r') {
continue; continue;
} }
lastChar = c;
if (length == size) { if (length == size) {
char *new_string = realloc(string, size *= 2); char *new_string = realloc(string, size *= 2);
if (!new_string) { if (!new_string) {

View File

@ -16,6 +16,12 @@ on startup. These commands usually consist of setting your preferences and
setting key bindings. An example config is likely present in /etc/sway/config setting key bindings. An example config is likely present in /etc/sway/config
for you to check out. for you to check out.
Lines in the configuration file might be extended through multiple lines by
adding a '\' character at the end of line. e.g.:
bindsym Shift+XF86AudioRaiseVolume exec pactl set-sink-volume \
$(pactl list sinks | grep -B 1 RUNNING | sed '1q;d' | sed 's/[^0-9]\+//g') +5%
These commands can be executed in your config file, via **sway-msg**(1), or via These commands can be executed in your config file, via **sway-msg**(1), or via
the bindsym command. the bindsym command.