}
if (kbd_mode == K_UNICODE) {
- kmap.prefer_unicode = 1;
+ kmap.flags |= LKFLAG_PREFER_UNICODE;
}
if ((rc = lk_kernel_keymap(&kmap, fd)) < 0)
fprintf(fd, "};\n");
#ifdef KDSKBDIACRUC
- if (kmap->prefer_unicode) {
+ if (kmap->flags & LKFLAG_PREFER_UNICODE) {
fprintf(fd, "\nstruct kbdiacruc accent_table[MAX_DIACR] = {\n");
for (i = 0; i < kmap->accent_table_size; i++) {
fprintf(fd, "\t{");
{
unsigned int i;
#ifdef KDSKBDIACRUC
- if (kmap->prefer_unicode) {
+ if (kmap->flags & LKFLAG_PREFER_UNICODE) {
for (i = 0; i < kmap->accent_table_size; i++) {
fprintf(fd, "compose ");
dumpchar(fd, kmap->accent_table[i].diacr & 0xff, 0);
LKFLAG_UNICODE_MODE = (1 << 1),
LKFLAG_CLEAR_COMPOSE = (1 << 2),
LKFLAG_CLEAR_STRINGS = (1 << 3),
+ LKFLAG_PREFER_UNICODE= (1 << 4)
} lkflags;
typedef enum {
int mod; /* Line by line modifiers */
int key_buf[MAX_NR_KEYMAPS]; /* Key definitions on one line */
- int prefer_unicode;
-
unsigned int charset;
int rvalct;
int direction = TO_8BIT;
#ifdef KDSKBDIACRUC
- if (kmap->prefer_unicode)
+ if (kmap->flags & LKFLAG_PREFER_UNICODE)
direction = TO_UNICODE;
#endif
return lk_add_diacr(kmap,
sym *p;
if (direction == TO_AUTO)
- direction = kmap->prefer_unicode ? TO_UNICODE : TO_8BIT;
+ direction = (kmap->flags & LKFLAG_PREFER_UNICODE)
+ ? TO_UNICODE : TO_8BIT;
if (!strncmp(s, "Meta_", 5)) {
keycode = ksymtocode(kmap, s+5, TO_8BIT);
int result;
if (direction == TO_AUTO)
- direction = kmap->prefer_unicode ? TO_UNICODE : TO_8BIT;
+ direction = (kmap->flags & LKFLAG_PREFER_UNICODE)
+ ? TO_UNICODE : TO_8BIT;
if (KTYP(code) == KT_META)
return code;
int
add_capslock(struct keymap *kmap, int code)
{
- if (KTYP(code) == KT_LATIN && (!(kmap->prefer_unicode) || code < 0x80))
+ if (KTYP(code) == KT_LATIN && (!(kmap->flags & LKFLAG_PREFER_UNICODE) || code < 0x80))
return K(KT_LETTER, KVAL(code));
else if ((code ^ 0xf000) < 0x100)
/* Unicode Latin-1 Supplement */
#define CODE_FOR_UNKNOWN_KSYM (-1)
/* Directions for converting keysyms */
-#define TO_AUTO (-1) /* use prefer_unicode */
+#define TO_AUTO (-1) /* use LKFLAG_PREFER_UNICODE */
#define TO_8BIT 0
#define TO_UNICODE 1
ERR(kmap, _("too many compose definitions"));
}
#ifdef KDSKBDIACRUC
- if (kmap->prefer_unicode) {
+ if (kmap->flags & LKFLAG_PREFER_UNICODE) {
kdu.kb_cnt = count;
for (i = 0; i < kdu.kb_cnt; i++) {
/* Unicode: The first 256 code points were made
identical to the content of ISO 8859-1 */
- if (kmap->prefer_unicode &&
+ if (kmap->flags & LKFLAG_PREFER_UNICODE &&
!strcasecmp((char *) $2.data, "iso-8859-1"))
- kmap->prefer_unicode = 0;
+ kmap->flags ^= LKFLAG_PREFER_UNICODE;
}
;
altismetaline : ALT_IS_META EOL
case 'u':
options |= OPT_U;
kmap.flags |= LKFLAG_UNICODE_MODE;
- kmap.prefer_unicode = 1;
+ kmap.flags |= LKFLAG_PREFER_UNICODE;
break;
case 'q':
lk_set_log_priority(&kmap, LOG_ERR);
" (perhaps you want to do `kbd_mode -a'?)\n"),
progname);
} else {
- kmap.prefer_unicode = 1;
+ kmap.flags |= LKFLAG_PREFER_UNICODE;
}
/* reset -u option if keyboard is in K_UNICODE anyway */
numeric = (!strcasecmp(argv[3], "TRUE")) ? 1 : 0;
lk_init(&kmap);
- kmap.prefer_unicode = 1;
+ kmap.flags |= LKFLAG_PREFER_UNICODE;
f.pipe = 0;
strcpy(f.pathname, argv[1]);