aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorkoekeishiya <aasvi93@hotmail.com>2017-09-12 12:43:38 +0200
committerkoekeishiya <aasvi93@hotmail.com>2017-09-12 12:43:38 +0200
commit07f864c03ecdfbbc761cdfa8cf54321ba17bec47 (patch)
tree1275e554d48a3e43877843340b9f03cc763932a8 /src
parent1723966a65c5fd591aca85ed427e53674bae056e (diff)
downloadskhd-07f864c03ecdfbbc761cdfa8cf54321ba17bec47.tar.gz
skhd-07f864c03ecdfbbc761cdfa8cf54321ba17bec47.zip
code cleanup
Diffstat (limited to 'src')
-rw-r--r--src/hotkey.c6
-rw-r--r--src/hotload.c52
-rw-r--r--src/parse.c7
-rw-r--r--src/skhd.c3
-rw-r--r--src/tokenize.c89
5 files changed, 72 insertions, 85 deletions
diff --git a/src/hotkey.c b/src/hotkey.c
index cdf8de1..9e99064 100644
--- a/src/hotkey.c
+++ b/src/hotkey.c
@@ -13,15 +13,13 @@ fork_and_exec(char *command)
{
local_persist char arg[] = "-c";
local_persist char *shell = NULL;
- if(!shell)
- {
+ if(!shell) {
char *env_shell = getenv("SHELL");
shell = env_shell ? env_shell : "/bin/bash";
}
int cpid = fork();
- if(cpid == 0)
- {
+ if(cpid == 0) {
char *exec[] = { shell, arg, command, NULL};
int status_code = execvp(exec[0], exec);
exit(status_code);
diff --git a/src/hotload.c b/src/hotload.c
index c0e8279..6bcd848 100644
--- a/src/hotload.c
+++ b/src/hotload.c
@@ -69,34 +69,34 @@ void hotloader_add_file(struct hotloader *hotloader, const char *file)
bool hotloader_begin(struct hotloader *hotloader, hotloader_callback *callback)
{
- if(!hotloader->enabled) {
- if(hotloader->watch_count) {
- CFStringRef string_refs[hotloader->watch_count];
- for(unsigned index = 0; index < hotloader->watch_count; ++index) {
- string_refs[index] = CFStringCreateWithCString(kCFAllocatorDefault,
- hotloader->watch_list[index].directory,
- kCFStringEncodingUTF8);
- }
+ if((hotloader->enabled) ||
+ (!hotloader->watch_count)) {
+ return false;
+ }
- FSEventStreamContext context = {};
- context.info = (void *) hotloader;
-
- hotloader->enabled = true;
- hotloader->path = (CFArrayRef) CFArrayCreate(NULL, (const void **) string_refs, hotloader->watch_count, &kCFTypeArrayCallBacks);
- hotloader->flags = kFSEventStreamCreateFlagNoDefer | kFSEventStreamCreateFlagFileEvents;
- hotloader->stream = FSEventStreamCreate(NULL,
- callback,
- &context,
- hotloader->path,
- kFSEventStreamEventIdSinceNow,
- 0.5,
- hotloader->flags);
- FSEventStreamScheduleWithRunLoop(hotloader->stream, CFRunLoopGetMain(), kCFRunLoopDefaultMode);
- FSEventStreamStart(hotloader->stream);
- return true;
- }
+ CFStringRef string_refs[hotloader->watch_count];
+ for(unsigned index = 0; index < hotloader->watch_count; ++index) {
+ string_refs[index] = CFStringCreateWithCString(kCFAllocatorDefault,
+ hotloader->watch_list[index].directory,
+ kCFStringEncodingUTF8);
}
- return false;
+
+ FSEventStreamContext context = {};
+ context.info = (void *) hotloader;
+
+ hotloader->enabled = true;
+ hotloader->path = (CFArrayRef) CFArrayCreate(NULL, (const void **) string_refs, hotloader->watch_count, &kCFTypeArrayCallBacks);
+ hotloader->flags = kFSEventStreamCreateFlagNoDefer | kFSEventStreamCreateFlagFileEvents;
+ hotloader->stream = FSEventStreamCreate(NULL,
+ callback,
+ &context,
+ hotloader->path,
+ kFSEventStreamEventIdSinceNow,
+ 0.5,
+ hotloader->flags);
+ FSEventStreamScheduleWithRunLoop(hotloader->stream, CFRunLoopGetMain(), kCFRunLoopDefaultMode);
+ FSEventStreamStart(hotloader->stream);
+ return true;
}
void hotloader_end(struct hotloader *hotloader)
diff --git a/src/parse.c b/src/parse.c
index 5c3ed6d..56f3c7f 100644
--- a/src/parse.c
+++ b/src/parse.c
@@ -18,8 +18,7 @@ read_file(const char *file)
char *buffer = NULL;
FILE *handle = fopen(file, "r");
- if(handle)
- {
+ if(handle) {
fseek(handle, 0, SEEK_END);
length = ftell(handle);
fseek(handle, 0, SEEK_SET);
@@ -105,7 +104,6 @@ parse_key_literal(struct parser *parser)
uint32_t keycode;
struct token key = parser_previous(parser);
- // NOTE(koekeishiya): Might want to replace this mapping with a hashtable
for(int i = 0; i < array_count(literal_keycode_str); ++i) {
if(token_equals(key, literal_keycode_str[i])) {
keycode = literal_keycode_value[i];
@@ -132,7 +130,6 @@ parse_modifier(struct parser *parser)
uint32_t flags = 0;
struct token modifier = parser_previous(parser);
- // NOTE(koekeishiya): Might want to replace this mapping with a hashtable
for(int i = 0; i < array_count(modifier_flags_str); ++i) {
if(token_equals(modifier, modifier_flags_str[i])) {
flags |= modifier_flags_value[i];
@@ -270,7 +267,7 @@ parser_advance(struct parser *parser)
bool parser_check(struct parser *parser, enum token_type type)
{
- if(parser_eof(parser)) return 0;
+ if(parser_eof(parser)) return false;
struct token token = parser_peek(parser);
return token.type == type;
}
diff --git a/src/skhd.c b/src/skhd.c
index 5ec6b27..d915926 100644
--- a/src/skhd.c
+++ b/src/skhd.c
@@ -70,9 +70,6 @@ parse_config_helper(char *absolutepath)
struct parser parser;
if(parser_init(&parser, absolutepath)) {
parse_config(&parser, &hotkey_map);
- if(parser.error) {
- free_hotkeys(&hotkey_map);
- }
parser_destroy(&parser);
} else {
warn("skhd: could not open file '%s'\n", absolutepath);
diff --git a/src/tokenize.c b/src/tokenize.c
index 28a5336..4feca6d 100644
--- a/src/tokenize.c
+++ b/src/tokenize.c
@@ -121,54 +121,49 @@ get_token(struct tokenizer *tokenizer)
c = *token.text;
advance(tokenizer);
- switch(c)
- {
- case '\0': { token.type = Token_EndOfStream; } break;
- case '+': { token.type = Token_Plus; } break;
- case '-':
- {
- if(*tokenizer->at && *tokenizer->at == '>') {
- advance(tokenizer);
- token.length = tokenizer->at - token.text;
- token.type = Token_Arrow;
- } else {
- token.type = Token_Dash;
- }
- } break;
- case ':':
- {
- eat_whitespace(tokenizer);
-
- token.text = tokenizer->at;
- token.line = tokenizer->line;
- token.cursor = tokenizer->cursor;
-
- eat_command(tokenizer);
+ switch(c) {
+ case '\0':{ token.type = Token_EndOfStream; } break;
+ case '+': { token.type = Token_Plus; } break;
+ case '#': {
+ eat_comment(tokenizer);
+ token = get_token(tokenizer);
+ } break;
+ case '-': {
+ if(*tokenizer->at && *tokenizer->at == '>') {
+ advance(tokenizer);
+ token.length = tokenizer->at - token.text;
+ token.type = Token_Arrow;
+ } else {
+ token.type = Token_Dash;
+ }
+ } break;
+ case ':': {
+ eat_whitespace(tokenizer);
+
+ token.text = tokenizer->at;
+ token.line = tokenizer->line;
+ token.cursor = tokenizer->cursor;
+
+ eat_command(tokenizer);
+ token.length = tokenizer->at - token.text;
+ token.type = Token_Command;
+ } break;
+ default: {
+ if(c == '0' && *tokenizer->at == 'x') {
+ advance(tokenizer);
+ eat_hex(tokenizer);
+ token.length = tokenizer->at - token.text;
+ token.type = Token_Key_Hex;
+ } else if(isdigit(c)) {
+ token.type = Token_Key;
+ } else if(isalpha(c)) {
+ eat_identifier(tokenizer);
token.length = tokenizer->at - token.text;
- token.type = Token_Command;
- } break;
- case '#':
- {
- eat_comment(tokenizer);
- token = get_token(tokenizer);
- } break;
- default:
- {
- if(c == '0' && *tokenizer->at == 'x') {
- advance(tokenizer);
- eat_hex(tokenizer);
- token.length = tokenizer->at - token.text;
- token.type = Token_Key_Hex;
- } else if(isdigit(c)) {
- token.type = Token_Key;
- } else if(isalpha(c)) {
- eat_identifier(tokenizer);
- token.length = tokenizer->at - token.text;
- token.type = resolve_identifier_type(token);
- } else {
- token.type = Token_Unknown;
- }
- } break;
+ token.type = resolve_identifier_type(token);
+ } else {
+ token.type = Token_Unknown;
+ }
+ } break;
}
return token;