Replace prefer_unicode with LKFLAG_PREFER_UNICODE
authorAlexey Gladkov <gladkov.alexey@gmail.com>
Mon, 29 Apr 2013 13:02:49 +0000 (17:02 +0400)
committerAlexey Gladkov <gladkov.alexey@gmail.com>
Mon, 29 Apr 2013 13:02:49 +0000 (17:02 +0400)
Signed-off-by: Alexey Gladkov <gladkov.alexey@gmail.com>
src/dumpkeys.c
src/libkeymap/dump.c
src/libkeymap/keymap/data.h
src/libkeymap/kmap.c
src/libkeymap/ksyms.c
src/libkeymap/ksyms.h
src/libkeymap/loadkeys.c
src/libkeymap/parser.y
src/loadkeys.c
tests/libkeymap-dumpkeys.c

index 38376b2..71facc0 100644 (file)
@@ -153,7 +153,7 @@ main (int argc, char *argv[]) {
        }
 
        if (kbd_mode == K_UNICODE) {
-               kmap.prefer_unicode = 1;
+               kmap.flags |= LKFLAG_PREFER_UNICODE;
        }
 
        if ((rc = lk_kernel_keymap(&kmap, fd)) < 0)
index 9ec1930..f2a8e3e 100644 (file)
@@ -194,7 +194,7 @@ lk_dump_ctable(struct keymap *kmap, FILE *fd)
        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{");
@@ -269,7 +269,7 @@ lk_dump_diacs(struct keymap *kmap, FILE *fd)
 {
        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);
index 10f29e3..43cee74 100644 (file)
@@ -15,6 +15,7 @@ typedef enum {
        LKFLAG_UNICODE_MODE  = (1 << 1),
        LKFLAG_CLEAR_COMPOSE = (1 << 2),
        LKFLAG_CLEAR_STRINGS = (1 << 3),
+       LKFLAG_PREFER_UNICODE= (1 << 4)
 } lkflags;
 
 typedef enum {
@@ -50,8 +51,6 @@ struct keymap {
        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;
index f42a5d6..ff366c9 100644 (file)
@@ -232,7 +232,7 @@ lk_add_compose(struct keymap *kmap,
        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,
index 66ad0c2..8b711e0 100644 (file)
@@ -241,7 +241,8 @@ ksymtocode(struct keymap *kmap, const char *s, int direction) {
        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);
@@ -341,7 +342,8 @@ convert_code(struct keymap *kmap, int code, int direction)
        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;
@@ -376,7 +378,7 @@ convert_code(struct keymap *kmap, int code, int direction)
 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 */
index 45430fe..822c473 100644 (file)
@@ -28,7 +28,7 @@ extern const unsigned int syn_size;
 #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
 
index 88404dc..a585005 100644 (file)
@@ -188,7 +188,7 @@ defdiacs(struct keymap *kmap, int fd)
                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++) {
index 0291bf8..fd453ff 100644 (file)
@@ -196,9 +196,9 @@ charsetline : CHARSET STRLITERAL EOL
 
                                /* 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
index bb775e5..50c3ee6 100644 (file)
@@ -138,7 +138,7 @@ main(int argc, char *argv[])
                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);
@@ -181,7 +181,7 @@ main(int argc, char *argv[])
                                          "    (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 */
index a63fc1d..f0d490e 100644 (file)
@@ -22,7 +22,7 @@ int main(int argc, char **argv)
        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]);