Allow path where keyboard maps are looked for to be altered using environment

variable.
This commit is contained in:
Maxim Sobolev 2001-05-12 09:16:09 +00:00
parent f6056f14ec
commit b010fac286
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=76502
2 changed files with 16 additions and 8 deletions

View File

@ -145,6 +145,10 @@ compiled from it to stdout.
This option is primarily intended for programmers and is probably
of little use under normal circumstances.
.El
.Sh ENVIRONMENT
The environment variable
.Ev KEYMAP_PATH
can hold an alternative path to the keyboard map files.
.Sh KEYBOARD CONFIGURATION
.Ss Boot Time Configuration
You may set variables in

View File

@ -746,16 +746,20 @@ load_keymap(char *opt, int dumponly)
keymap_t keymap;
accentmap_t accentmap;
FILE *fd;
int i;
int i, j;
char *name, *cp;
char *prefix[] = {"", "", KEYMAP_PATH, KEYMAP_PATH, NULL};
char *postfix[] = {"", ".kbd", "", ".kbd"};
char *prefix[] = {"", "", KEYMAP_PATH, NULL};
char *postfix[] = {"", ".kbd", NULL};
for (i=0; prefix[i]; i++) {
name = mkfullname(prefix[i], opt, postfix[i]);
if ((fd = fopen(name, "r")))
break;
}
if (cp = getenv("KEYMAP_PATH"))
prefix[0] = mkfullname(cp, "/", "");
for (i=0; prefix[i]; i++)
for (j=0; postfix[j]; j++) {
name = mkfullname(prefix[i], opt, postfix[j]);
if ((fd = fopen(name, "r")))
prefix[i + 1] = postfix[j + 1] = NULL;
}
if (fd == NULL) {
warn("keymap file not found");
return;