forked from Bananymous/banan-os
				
			
		
			
				
	
	
		
			43 lines
		
	
	
		
			727 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			727 B
		
	
	
	
		
			C++
		
	
	
	
| #include <stdio.h>
 | |
| #include <string.h>
 | |
| #include <sys/banan-os.h>
 | |
| #include <sys/stat.h>
 | |
| 
 | |
| int try_load_keymap(const char* path)
 | |
| {
 | |
| 	if (load_keymap(path) == -1)
 | |
| 	{
 | |
| 		perror("load_keymap");
 | |
| 		return 1;
 | |
| 	}
 | |
| 	return 0;
 | |
| }
 | |
| 
 | |
| int main(int argc, char** argv)
 | |
| {
 | |
| 	if (argc != 2)
 | |
| 	{
 | |
| 		fprintf(stderr, "usage: %s KEYMAP\n", argv[0]);
 | |
| 		return 1;
 | |
| 	}
 | |
| 
 | |
| 	struct stat st;
 | |
| 	if (stat(argv[1], &st) == 0)
 | |
| 		return try_load_keymap(argv[1]);
 | |
| 
 | |
| 	char buffer[128];
 | |
| 	strcpy(buffer, "/usr/share/keymaps/");
 | |
| 	strcat(buffer, argv[1]);
 | |
| 
 | |
| 	if (stat(buffer, &st) == 0)
 | |
| 		return try_load_keymap(buffer);
 | |
| 
 | |
| 	strcat(buffer, ".keymap");
 | |
| 
 | |
| 	if (stat(buffer, &st) == 0)
 | |
| 		return try_load_keymap(buffer);
 | |
| 
 | |
| 	fprintf(stderr, "Keymap '%s' not found\n", argv[1]);
 | |
| 	return 1;
 | |
| }
 |