summaryrefslogtreecommitdiffstats
path: root/input/input.c
diff options
context:
space:
mode:
Diffstat (limited to 'input/input.c')
-rw-r--r--input/input.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/input/input.c b/input/input.c
index 913ca5e434..c98023365e 100644
--- a/input/input.c
+++ b/input/input.c
@@ -555,6 +555,9 @@ mp_input_read_keys(int time,int paused) {
n++;
}
+ if(num_key_fd == 0)
+ return NULL;
+
if(time >= 0 ) {
tv.tv_sec=time/1000;
tv.tv_usec = (time%1000)*1000;
@@ -701,6 +704,9 @@ mp_input_read_cmds(int time) {
n++;
}
+ if(num_cmd_fd == 0)
+ return NULL;
+
if(time >= 0) {
tv.tv_sec=time/1000;
tv.tv_usec = (time%1000)*1000;
@@ -885,7 +891,7 @@ mp_input_free_binds(mp_cmd_bind_t* binds) {
static int
mp_input_parse_config(char *file) {
int fd;
- int bs = 0,r,eof = 0;
+ int bs = 0,r,eof = 0,comments = 0;
char *iter,*end;
char buffer[BS_MAX];
int n_binds = 0, keys[MP_MAX_KEY_DOWN+1] = { 0 };
@@ -927,6 +933,23 @@ mp_input_parse_config(char *file) {
iter = buffer;
+ if(comments) {
+ for( ; iter[0] != '\0' && iter[0] != '\n' ; iter++)
+ /* NOTHING */;
+ if(iter[0] == '\0') { // Buffer was full of comment
+ bs = 0;
+ continue;
+ }
+ iter++;
+ r = strlen(iter);
+ if(r)
+ memmove(buffer,iter,r+1);
+ bs = r+1;
+ if(iter[0] != '#')
+ comments = 0;
+ continue;
+ }
+
// Find the wanted key
if(keys[0] == 0) {
// Jump beginnig space
@@ -936,6 +959,10 @@ mp_input_parse_config(char *file) {
bs = 0;
continue;
}
+ if(iter[0] == '#') { // Comments
+ comments = 1;
+ continue;
+ }
// Find the end of the key code name
for(end = iter; end[0] != '\0' && strchr(SPACE_CHAR,end[0]) == NULL ; end++)
/*NOTHING */;