[BRLTTY] keycodes problem

Adrian van Bloois adrian at pa0rda.nl
Mon Dec 2 05:23:27 EST 2019


Eric,
One more time.
EVERYTHING in Linux should be done without sudo="root permission" except
things like make install.
The chmod 0777 should not be necessary either.
Just set your umask correct something like 022 should do.
You have to keep security in mind as well.


On Mon, Dec 02, 2019 at 08:53:50AM +0000, Quartel, Eric de wrote:
> 
>    Hello,
> 
> 
>    >>After typing on the raspberrypi/raspbian
> 
>    >sudo chmod -R 777 .
> 
>    >git clone https://github.com/brltty/brltty.git
> 
>    >cd brltty
> 
>    >./autogen
> 
>    >./configure
> 
>    >make //error messages see make_messages.txt
> 
>    >make install //can't do this
> 
> 
>    >>Getting the same error messages. See attached file make_messages.txt
>    and config.mk
> 
>    >>When I look in brlapi_keycodes.h I cannot find BRLAPI_KEY_FLG_SHIFT
>    and the other constants. See attached file brlapi_keycodes.h
> 
>    >>brlapi_constants.h is still a small file =56 lines
> 
> 
>    >>I want to get brltty running on the raspberrypi raspbian, I dont have
>    these problems when I download the tar, from brltty.app. I get
>    brlttyXXX.tar version working on the raspberry pi with attached
>    brailledisplays.
> 
> 
>    >> When I do the same as above on a linux mint machine I dont get error
>    messages and a brltty as output in /bin. Unfortunately  when I run
>    brltty with an adjusted brltty.conf it does not recognize the
>    brailledisplays. (other problem) At this moment I have freedom
>    scientific focus 40, alva bc640, voyager.
> 
> 
>    Thanks for your input, Eric

> /*
>  * libbrlapi - A library providing access to braille terminals for applications.
>  *
>  * Copyright (C) 2002-2019 by
>  *   Samuel Thibault <Samuel.Thibault at ens-lyon.org>
>  *   S??bastien Hinderer <Sebastien.Hinderer at ens-lyon.org>
>  *
>  * libbrlapi comes with ABSOLUTELY NO WARRANTY.
>  *
>  * This is free software, placed under the terms of the
>  * GNU Lesser General Public License, as published by the Free Software
>  * Foundation; either version 2.1 of the License, or (at your option) any
>  * later version. Please see the file LICENSE-LGPL for details.
>  *
>  * Web Page: http://brltty.app/
>  *
>  * This software is maintained by Dave Mielke <dave at mielke.cc>.
>  */
> 
> #ifndef BRLAPI_INCLUDED_CONSTANTS
> #define BRLAPI_INCLUDED_CONSTANTS
> 
> #ifdef __cplusplus
> extern "C" {
> #endif /* __cplusplus */
> 
> /** \file
>  */
> 
> /** \ingroup brlapi_keycodes
>  * @{ */
> 
> 
> /** Helper macro to easily produce braille patterns */
> #define BRLAPI_DOTS(dot1, dot2, dot3, dot4, dot5, dot6, dot7, dot8) (\
>   ((dot1)? BRLAPI_DOT1: 0) | \
>   ((dot2)? BRLAPI_DOT2: 0) | \
>   ((dot3)? BRLAPI_DOT3: 0) | \
>   ((dot4)? BRLAPI_DOT4: 0) | \
>   ((dot5)? BRLAPI_DOT5: 0) | \
>   ((dot6)? BRLAPI_DOT6: 0) | \
>   ((dot7)? BRLAPI_DOT7: 0) | \
>   ((dot8)? BRLAPI_DOT8: 0) \
> )
> 
> /** space key */
> #define BRLAPI_DOT_CHORD 0
> /** @} */
> 
> 
> #ifdef __cplusplus
> }
> #endif /* __cplusplus */
> 
> #endif /* BRLAPI_INCLUDED_CONSTANTS */

> /*
>  * libbrlapi - A library providing access to braille terminals for applications.
>  *
>  * Copyright (C) 2002-2019 by
>  *   Samuel Thibault <Samuel.Thibault at ens-lyon.org>
>  *   S??bastien Hinderer <Sebastien.Hinderer at ens-lyon.org>
>  *
>  * libbrlapi comes with ABSOLUTELY NO WARRANTY.
>  *
>  * This is free software, placed under the terms of the
>  * GNU Lesser General Public License, as published by the Free Software
>  * Foundation; either version 2.1 of the License, or (at your option) any
>  * later version. Please see the file LICENSE-LGPL for details.
>  *
>  * Web Page: http://brltty.app/
>  *
>  * This software is maintained by Dave Mielke <dave at mielke.cc>.
>  */
> 
> /** \file
>  */
> 
> #ifndef BRLAPI_INCLUDED_KEYCODES
> #define BRLAPI_INCLUDED_KEYCODES
> 
> #ifdef __cplusplus
> extern "C" {
> #endif /* __cplusplus */
> 
> /** \defgroup brlapi_keycodes Types and Defines for \e BrlAPI Key Codes
>  *
>  * Key codes are unsigned 64 bit integers.  This 64-bit space is split into 3
>  * parts:
>  *
>  * - bits 63-32 (BRLAPI_KEY_FLAGS_MASK), flags: bits 39-32 are standard X
>  * modifiers (shift, control, meta, ...). Other flags are used for some commands,
>  * see documentation of BRLAPI_KEY_FLG_* for their respective uses.
>  * - bits 31-29 (BRLAPI_KEY_TYPE_MASK), key type: either BRLAPI_KEY_TYPE_CMD for
>  * braille commands, or BRLAPI_KEY_TYPE_SYM for standard X keysyms.
>  * - bits 28-0 (BRLAPI_KEY_CODE_MASK), key code: for braille commands, see
>  * BRLAPI_KEY_CMD_* ; for standard X keysyms, this is the keysym value, see
>  * X11 documentation, a complete list is probably available on your system in
>  * /usr/include/X11/keysymdef.h
>  *
>  * The third part is itself split into two parts: a command number and a command
>  * value.  The relative sizes of these parts vary according to the key type.
>  *
>  * For a braille command, bits 28-16 (BRLAPI_KEY_CMD_BLK_MASK) hold the braille
>  * command number, while bits 15-0 (BRLAPI_KEY_CMD_ARG_MASK) hold the command
>  * value.
>  *
>  * For a X keysym, if it is a unicode keysym (0x1uvwxyz), then the command
>  * number part is 0x1000000 and the value part is 0xuvwxyz. Else, the command
>  * part is held by bits 28-8 and the value part is held by bits 7-0. This
>  * permits to easily handle usual cases like 0x00xy (latin1), 0x01xy (latin2),
>  * XK_Backspace (0xff08, backspace), XK_Tab (0xff09, tab), ...
>  *
>  * For instance, if key == 0x0000000020010008,
>  * - (key & BRLAPI_KEY_TYPE_MASK) == BRLAPI_KEY_TYPE_CMD, so it's a braille
>  * command
>  * - (key & BRLAPI_KEY_CMD_BLK_MASK) == BRLAPI_KEY_CMD_ROUTE, so it's the
>  * braille route command.
>  * - (key & BRLAPI_KEY_CMD_ARG_MASK) == 8, so the highlighted cell is the 9th
>  * one (cells are numbered from 0)
>  * - (key & BRLAPI_KEY_FLAGS_MASK) == 0, so no modifier key was pressed during
>  * the command, and no particular flag applies to the command.
>  *
>  * if key == 0x000000010000FF09,
>  * - (key & BRLAPI_KEY_TYPE_MASK) == BRLAPI_KEY_TYPE_SYM, so it's a keysym
>  * - (key & BRLAPI_KEY_CODE_MASK) == XK_Tab, so it's the tab key.
>  * BRLAPI_KEY_SYM_TAB can also be used here, as well as a few other
>  * BRLAPI_KEY_SYM_* constants which are provided to avoid having to include
>  * X11/keysymdef.h
>  * - (key & BRLAPI_KEY_FLAGS_MASK) == BRLAPI_KEY_FLG_SHIFT, so the shift
>  * modifier was pressed during the command.
>  *
>  * in the X11 standard some keysyms are directly unicode, for instance if
>  * key == 0x0000000001001EA0,
>  * - (key & BRLAPI_KEY_TYPE_MASK) == BRLAPI_KEY_TYPE_SYM, so it's a keysym
>  * - (key & BRLAPI_KEY_SYM_UNICODE) != 0 so it's a unicode keysym, whose value
>  * is key & (BRLAPI_KEY_SYM_UNICODE-1).  Of course, one can also consider
>  * (key & BRLAPI_KEY_CODE_MASK) == XK_Abelowdot
>  * - (key & BRLAPI_KEY_FLAGS_MASK) == 0, so no modifier key was pressed during
>  * the command, and no particular flag applies to the command.
>  *
>  * The brlapi_expandKeyCode() function may be used for splitting key codes into
>  * these parts.
>  * @{
>  */
> typedef uint64_t brlapi_keyCode_t;
> 
> /** Hex print format for brlapi_keyCode_t */
> #define BRLAPI_PRIxKEYCODE PRIx64
> /** Unsigned print format for brlapi_keyCode_t */
> #define BRLAPI_PRIuKEYCODE PRIu64
> 
> /** Brlapi_keyCode_t's biggest value
>  *
>  * As defined in \c <stdint.h> */
> #define BRLAPI_KEY_MAX UINT64_C(0XFFFFFFFFFFFFFFFF)
> 
> /**
>  * Mask for flags of brlapi_keyCode_t
>  */
> #define BRLAPI_KEY_FLAGS_MASK		UINT64_C(0XFFFFFFFF00000000)
> /** Shift for flags of brlapi_keyCode_t */
> #define BRLAPI_KEY_FLAGS_SHIFT		32
> 
> #define BRLAPI_KEY_FLG(v)		((brlapi_keyCode_t)(v) << BRLAPI_KEY_FLAGS_SHIFT)
> /** Standard X modifiers */
> /** Mod1 modifier (AKA meta) */
> #define BRLAPI_KEY_FLG_MOD1		BRLAPI_KEY_FLG(0x00000008)
> /** Mod2 modifier (usually numlock) */
> #define BRLAPI_KEY_FLG_MOD2		BRLAPI_KEY_FLG(0x00000010)
> /** Mod3 modifier */
> #define BRLAPI_KEY_FLG_MOD3		BRLAPI_KEY_FLG(0x00000020)
> /** Mod4 modifier */
> #define BRLAPI_KEY_FLG_MOD4		BRLAPI_KEY_FLG(0x00000040)
> /** Mod5 modifier (usually Alt-Gr) */
> #define BRLAPI_KEY_FLG_MOD5		BRLAPI_KEY_FLG(0x00000080)
> 
> 
> /**
>  * Mask for type of brlapi_keyCode_t
>  */
> #define BRLAPI_KEY_TYPE_MASK		UINT64_C(0X00000000E0000000)
> /** Shift for type of brlapi_keyCode_t */
> #define BRLAPI_KEY_TYPE_SHIFT		29
> /** Braille command brlapi_keyCode_t */
> #define BRLAPI_KEY_TYPE_CMD		UINT64_C(0X0000000020000000)
> /** X Keysym brlapi_keyCode_t */
> #define BRLAPI_KEY_TYPE_SYM		UINT64_C(0X0000000000000000)
> 
> /**
>  * Mask for code of brlapi_keyCode_t
>  */
> #define BRLAPI_KEY_CODE_MASK		UINT64_C(0X000000001FFFFFFF)
> /** Shift for code of brlapi_keyCode_t */
> #define BRLAPI_KEY_CODE_SHIFT		0
> 
> /** Mask for braille command type */
> #define BRLAPI_KEY_CMD_BLK_MASK		UINT64_C(0X1FFF0000)
> /** Shift for braille command type */
> #define BRLAPI_KEY_CMD_BLK_SHIFT	16
> /** Mask for braille command value */
> #define BRLAPI_KEY_CMD_ARG_MASK		UINT64_C(0X0000FFFF)
> /** Shift for braille command value */
> #define BRLAPI_KEY_CMD_ARG_SHIFT	0
> #define BRLAPI_KEY_CMD(v)		((v) << BRLAPI_KEY_CMD_BLK_SHIFT)
> 
> /** Standard X keysyms */
> #define BRLAPI_KEY_SYM_BACKSPACE	UINT64_C(0X0000FF08)
> #define BRLAPI_KEY_SYM_TAB		UINT64_C(0X0000FF09)
> #define BRLAPI_KEY_SYM_LINEFEED		UINT64_C(0X0000FF0D)
> #define BRLAPI_KEY_SYM_ESCAPE		UINT64_C(0X0000FF1B)
> #define BRLAPI_KEY_SYM_HOME		UINT64_C(0X0000FF50)
> #define BRLAPI_KEY_SYM_LEFT		UINT64_C(0X0000FF51)
> #define BRLAPI_KEY_SYM_UP		UINT64_C(0X0000FF52)
> #define BRLAPI_KEY_SYM_RIGHT		UINT64_C(0X0000FF53)
> #define BRLAPI_KEY_SYM_DOWN		UINT64_C(0X0000FF54)
> #define BRLAPI_KEY_SYM_PAGE_UP		UINT64_C(0X0000FF55)
> #define BRLAPI_KEY_SYM_PAGE_DOWN	UINT64_C(0X0000FF56)
> #define BRLAPI_KEY_SYM_END		UINT64_C(0X0000FF57)
> #define BRLAPI_KEY_SYM_INSERT		UINT64_C(0X0000FF63)
> #define BRLAPI_KEY_SYM_FUNCTION		UINT64_C(0X0000FFBE)
> #define BRLAPI_KEY_SYM_DELETE		UINT64_C(0X0000FFFF)
> #define BRLAPI_KEY_SYM_UNICODE		UINT64_C(0X01000000)
> 
> /** @} */
> 
> #include "brlapi_constants.h"
> 
> #ifdef __cplusplus
> }
> #endif /* __cplusplus */
> 
> #endif /* BRLAPI_INCLUDED_KEYCODES */

> /*
>  * BRLTTY - A background process providing access to the console screen (when in
>  *          text mode) for a blind person using a refreshable braille display.
>  *
>  * Copyright (C) 1995-2019 by The BRLTTY Developers.
>  *
>  * BRLTTY comes with ABSOLUTELY NO WARRANTY.
>  *
>  * This is free software, placed under the terms of the
>  * GNU Lesser General Public License, as published by the Free Software
>  * Foundation; either version 2.1 of the License, or (at your option) any
>  * later version. Please see the file LICENSE-LGPL for details.
>  *
>  * Web Page: http://brltty.app/
>  *
>  * This software is maintained by Dave Mielke <dave at mielke.cc>.
>  */
> 
> #include "prologue.h"
> 
> #include <stdio.h>
> 
> #include "cmd_brlapi.h"
> #include "brl_cmds.h"
> #include "ttb.h"
> 
> #ifdef ENABLE_API
> static brlapi_keyCode_t
> cmdWCharToBrlapi (wchar_t wc) {
>   if (iswLatin1(wc)) return BRLAPI_KEY_TYPE_SYM | wc;
>   return BRLAPI_KEY_TYPE_SYM | BRLAPI_KEY_SYM_UNICODE | wc;
> }
> 
> int
> cmdBrlttyToBrlapi (brlapi_keyCode_t *code, int command, int retainDots) {
>   int blk = command & BRL_MSK_BLK;
>   int arg = BRL_ARG_GET(command);
> 
>   switch (blk) {
>     case BRL_CMD_BLK(PASSCHAR):
>       *code = cmdWCharToBrlapi(arg);
>       break;
> 
>     case BRL_CMD_BLK(PASSDOTS):
>       if (retainDots) goto doDefault;
>       *code = cmdWCharToBrlapi(convertDotsToCharacter(textTable, arg));
>       break;
> 
>     case BRL_CMD_BLK(PASSKEY):
>       switch (arg) {
>         case BRL_KEY_ENTER:        *code = BRLAPI_KEY_SYM_LINEFEED;  break;
>         case BRL_KEY_TAB:          *code = BRLAPI_KEY_SYM_TAB;       break;
>         case BRL_KEY_BACKSPACE:    *code = BRLAPI_KEY_SYM_BACKSPACE; break;
>         case BRL_KEY_ESCAPE:       *code = BRLAPI_KEY_SYM_ESCAPE;    break;
>         case BRL_KEY_CURSOR_LEFT:  *code = BRLAPI_KEY_SYM_LEFT;      break;
>         case BRL_KEY_CURSOR_RIGHT: *code = BRLAPI_KEY_SYM_RIGHT;     break;
>         case BRL_KEY_CURSOR_UP:    *code = BRLAPI_KEY_SYM_UP;        break;
>         case BRL_KEY_CURSOR_DOWN:  *code = BRLAPI_KEY_SYM_DOWN;      break;
>         case BRL_KEY_PAGE_UP:      *code = BRLAPI_KEY_SYM_PAGE_UP;   break;
>         case BRL_KEY_PAGE_DOWN:    *code = BRLAPI_KEY_SYM_PAGE_DOWN; break;
>         case BRL_KEY_HOME:         *code = BRLAPI_KEY_SYM_HOME;      break;
>         case BRL_KEY_END:          *code = BRLAPI_KEY_SYM_END;       break;
>         case BRL_KEY_INSERT:       *code = BRLAPI_KEY_SYM_INSERT;    break;
>         case BRL_KEY_DELETE:       *code = BRLAPI_KEY_SYM_DELETE;    break;
> 
>         default: {
>           int key = arg - BRL_KEY_FUNCTION;
>           if (key < 0) return 0;
>           if (key > 34) return 0;
>           *code = BRLAPI_KEY_SYM_FUNCTION + key;
>           break;
>         }
>       }
>       break;
> 
>     default:
>     doDefault:
>       *code = BRLAPI_KEY_TYPE_CMD
>             | (blk >> BRL_SHIFT_BLK << BRLAPI_KEY_CMD_BLK_SHIFT)
>             | (arg                  << BRLAPI_KEY_CMD_ARG_SHIFT)
>             ;
>       break;
>   }
> 
>   switch (blk) {
>     case BRL_CMD_BLK(PASSCHAR):
>     case BRL_CMD_BLK(PASSDOTS):
>     case BRL_CMD_BLK(PASSKEY):
>       *code = *code
>             | (command & BRL_FLG_INPUT_SHIFT   ? BRLAPI_KEY_FLG_SHIFT   : 0)
>             | (command & BRL_FLG_INPUT_UPPER   ? BRLAPI_KEY_FLG_UPPER   : 0)
>             | (command & BRL_FLG_INPUT_CONTROL ? BRLAPI_KEY_FLG_CONTROL : 0)
>             | (command & BRL_FLG_INPUT_META    ? BRLAPI_KEY_FLG_META    : 0)
>             | (command & BRL_FLG_INPUT_ALTGR   ? BRLAPI_KEY_FLG_ALTGR   : 0)
>             | (command & BRL_FLG_INPUT_GUI     ? BRLAPI_KEY_FLG_GUI     : 0)
>             ;
>       break;
> 
>     case BRL_CMD_BLK(PASSXT):
>     case BRL_CMD_BLK(PASSAT):
>     case BRL_CMD_BLK(PASSPS2):
>       *code = *code
>             | (command & BRL_FLG_KBD_RELEASE ? BRLAPI_KEY_FLG_KBD_RELEASE : 0)
>             | (command & BRL_FLG_KBD_EMUL0   ? BRLAPI_KEY_FLG_KBD_EMUL0   : 0)
>             | (command & BRL_FLG_KBD_EMUL1   ? BRLAPI_KEY_FLG_KBD_EMUL1   : 0)
>             ;
>       break;
> 
>     default:
>       *code = *code
>             | (command & BRL_FLG_TOGGLE_ON     ? BRLAPI_KEY_FLG_TOGGLE_ON     : 0)
>             | (command & BRL_FLG_TOGGLE_OFF    ? BRLAPI_KEY_FLG_TOGGLE_OFF    : 0)
>             | (command & BRL_FLG_MOTION_ROUTE  ? BRLAPI_KEY_FLG_MOTION_ROUTE  : 0)
>             | (command & BRL_FLG_MOTION_SCALED ? BRLAPI_KEY_FLG_MOTION_SCALED : 0)
>             | (command & BRL_FLG_MOTION_TOLEFT ? BRLAPI_KEY_FLG_MOTION_TOLEFT : 0)
>             ;
>       break;
>   }
> 
>   return 1;
> }
> 
> int
> cmdBrlapiToBrltty (brlapi_keyCode_t code) {
>   int cmd;
> 
>   switch (code & BRLAPI_KEY_TYPE_MASK) {
>     case BRLAPI_KEY_TYPE_CMD:
>       cmd = BRL_BLK_PUT((code & BRLAPI_KEY_CMD_BLK_MASK) >> BRLAPI_KEY_CMD_BLK_SHIFT);
>       cmd |= BRL_ARG_SET((code & BRLAPI_KEY_CMD_ARG_MASK) >> BRLAPI_KEY_CMD_ARG_SHIFT);
>       break;
> 
>     case BRLAPI_KEY_TYPE_SYM: {
>       unsigned long keysym = code & BRLAPI_KEY_CODE_MASK;
> 
>       switch (keysym) {
>         case BRLAPI_KEY_SYM_BACKSPACE: cmd = BRL_CMD_BLK(PASSKEY)|BRL_KEY_BACKSPACE;    break;
>         case BRLAPI_KEY_SYM_TAB:       cmd = BRL_CMD_BLK(PASSKEY)|BRL_KEY_TAB;          break;
>         case BRLAPI_KEY_SYM_LINEFEED:  cmd = BRL_CMD_BLK(PASSKEY)|BRL_KEY_ENTER;        break;
>         case BRLAPI_KEY_SYM_ESCAPE:    cmd = BRL_CMD_BLK(PASSKEY)|BRL_KEY_ESCAPE;       break;
>         case BRLAPI_KEY_SYM_HOME:      cmd = BRL_CMD_BLK(PASSKEY)|BRL_KEY_HOME;         break;
>         case BRLAPI_KEY_SYM_LEFT:      cmd = BRL_CMD_BLK(PASSKEY)|BRL_KEY_CURSOR_LEFT;  break;
>         case BRLAPI_KEY_SYM_UP:        cmd = BRL_CMD_BLK(PASSKEY)|BRL_KEY_CURSOR_UP;    break;
>         case BRLAPI_KEY_SYM_RIGHT:     cmd = BRL_CMD_BLK(PASSKEY)|BRL_KEY_CURSOR_RIGHT; break;
>         case BRLAPI_KEY_SYM_DOWN:      cmd = BRL_CMD_BLK(PASSKEY)|BRL_KEY_CURSOR_DOWN;  break;
>         case BRLAPI_KEY_SYM_PAGE_UP:   cmd = BRL_CMD_BLK(PASSKEY)|BRL_KEY_PAGE_UP;      break;
>         case BRLAPI_KEY_SYM_PAGE_DOWN: cmd = BRL_CMD_BLK(PASSKEY)|BRL_KEY_PAGE_DOWN;    break;
>         case BRLAPI_KEY_SYM_END:       cmd = BRL_CMD_BLK(PASSKEY)|BRL_KEY_END;          break;
>         case BRLAPI_KEY_SYM_INSERT:    cmd = BRL_CMD_BLK(PASSKEY)|BRL_KEY_INSERT;       break;
>         case BRLAPI_KEY_SYM_DELETE:    cmd = BRL_CMD_BLK(PASSKEY)|BRL_KEY_DELETE;       break;
> 
>         default:
>           if ((keysym >= BRLAPI_KEY_SYM_FUNCTION) &&
>               (keysym <= (BRLAPI_KEY_SYM_FUNCTION + 34))) {
>             cmd = BRL_CMD_KFN(keysym - BRLAPI_KEY_SYM_FUNCTION);
>           } else if ((keysym < 0X100) ||
>                      ((keysym & 0x1F000000) == BRLAPI_KEY_SYM_UNICODE)) {
>             wchar_t c = keysym & 0xFFFFFF;
>             cmd = BRL_CMD_BLK(PASSCHAR) | BRL_ARG_SET(c);
>           } else {
>             return EOF;
>           }
>           break;
>       }
> 
>       break;
>     }
> 
>     default:
>       return EOF;
>   }
> 
>   switch (cmd & BRL_MSK_BLK) {
>     case BRL_CMD_BLK(PASSCHAR):
>     case BRL_CMD_BLK(PASSDOTS):
>     case BRL_CMD_BLK(PASSKEY):
>       cmd = cmd
>           | (code & BRLAPI_KEY_FLG_SHIFT   ? BRL_FLG_INPUT_SHIFT   : 0)
>           | (code & BRLAPI_KEY_FLG_UPPER   ? BRL_FLG_INPUT_UPPER   : 0)
>           | (code & BRLAPI_KEY_FLG_CONTROL ? BRL_FLG_INPUT_CONTROL : 0)
>           | (code & BRLAPI_KEY_FLG_META    ? BRL_FLG_INPUT_META    : 0)
>           | (code & BRLAPI_KEY_FLG_ALTGR   ? BRL_FLG_INPUT_ALTGR   : 0)
>           | (code & BRLAPI_KEY_FLG_GUI     ? BRL_FLG_INPUT_GUI     : 0)
>           ;
>       break;
> 
>     case BRL_CMD_BLK(PASSXT):
>     case BRL_CMD_BLK(PASSAT):
>     case BRL_CMD_BLK(PASSPS2):
>       cmd = cmd
>           | (code & BRLAPI_KEY_FLG_KBD_RELEASE ? BRL_FLG_KBD_RELEASE : 0)
>           | (code & BRLAPI_KEY_FLG_KBD_EMUL0   ? BRL_FLG_KBD_EMUL0   : 0)
>           | (code & BRLAPI_KEY_FLG_KBD_EMUL1   ? BRL_FLG_KBD_EMUL1   : 0)
>           ;
>       break;
> 
>     default:
>       cmd = cmd
>           | (code & BRLAPI_KEY_FLG_TOGGLE_ON     ? BRL_FLG_TOGGLE_ON     : 0)
>           | (code & BRLAPI_KEY_FLG_TOGGLE_OFF    ? BRL_FLG_TOGGLE_OFF    : 0)
>           | (code & BRLAPI_KEY_FLG_MOTION_ROUTE  ? BRL_FLG_MOTION_ROUTE  : 0)
>           | (code & BRLAPI_KEY_FLG_MOTION_SCALED ? BRL_FLG_MOTION_SCALED : 0)
>           | (code & BRLAPI_KEY_FLG_MOTION_TOLEFT ? BRL_FLG_MOTION_TOLEFT : 0)
>           ;
>       break;
>   }
> 
>   return cmd;
> }
> #endif /* ENABLE_API */


> cd Programs && make all
> make[1]: Entering directory '/home/pi/Documents/braille/brltty/Programs'
> ../getrevid -s -f revision_identifier.h -d unknown ../
> gcc -I. -I. -I./../Programs -I../Programs -I../Headers -I./.. -I..   -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=2 -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED -D_GNU_SOURCE -DHAVE_CONFIG_H -g -O2 -std=gnu99 -Wall -Werror=format-security -fPIC -c ./revision.c
> gcc -I. -I. -I./../Programs -I../Programs -I../Headers -I./.. -I..   -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE=2 -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED -D_GNU_SOURCE -DHAVE_CONFIG_H -g -O2 -std=gnu99 -Wall -Werror=format-security -fPIC -c ./cmd_brlapi.c
> ./cmd_brlapi.c: In function ???cmdBrlttyToBrlapi???:
> ./cmd_brlapi.c:90:50: error: ???BRLAPI_KEY_FLG_SHIFT??? undeclared (first use in this function); did you mean ???BRLAPI_KEY_FLAGS_SHIFT????
>              | (command & BRL_FLG_INPUT_SHIFT   ? BRLAPI_KEY_FLG_SHIFT   : 0)
>                                                   ^~~~~~~~~~~~~~~~~~~~
>                                                   BRLAPI_KEY_FLAGS_SHIFT
> ./cmd_brlapi.c:90:50: note: each undeclared identifier is reported only once for each function it appears in
> ./cmd_brlapi.c:91:50: error: ???BRLAPI_KEY_FLG_UPPER??? undeclared (first use in this function); did you mean ???BRLAPI_KEY_FLG_MOD2????
>              | (command & BRL_FLG_INPUT_UPPER   ? BRLAPI_KEY_FLG_UPPER   : 0)
>                                                   ^~~~~~~~~~~~~~~~~~~~
>                                                   BRLAPI_KEY_FLG_MOD2
> ./cmd_brlapi.c:92:50: error: ???BRLAPI_KEY_FLG_CONTROL??? undeclared (first use in this function); did you mean ???BRLAPI_KEY_FLG_MOD2????
>              | (command & BRL_FLG_INPUT_CONTROL ? BRLAPI_KEY_FLG_CONTROL : 0)
>                                                   ^~~~~~~~~~~~~~~~~~~~~~
>                                                   BRLAPI_KEY_FLG_MOD2
> ./cmd_brlapi.c:93:50: error: ???BRLAPI_KEY_FLG_META??? undeclared (first use in this function); did you mean ???BRLAPI_KEY_FLG_MOD2????
>              | (command & BRL_FLG_INPUT_META    ? BRLAPI_KEY_FLG_META    : 0)
>                                                   ^~~~~~~~~~~~~~~~~~~
>                                                   BRLAPI_KEY_FLG_MOD2
> ./cmd_brlapi.c:94:50: error: ???BRLAPI_KEY_FLG_ALTGR??? undeclared (first use in this function); did you mean ???BRLAPI_KEY_FLG_MOD2????
>              | (command & BRL_FLG_INPUT_ALTGR   ? BRLAPI_KEY_FLG_ALTGR   : 0)
>                                                   ^~~~~~~~~~~~~~~~~~~~
>                                                   BRLAPI_KEY_FLG_MOD2
> ./cmd_brlapi.c:95:50: error: ???BRLAPI_KEY_FLG_GUI??? undeclared (first use in this function); did you mean ???BRLAPI_KEY_FLG_MOD2????
>              | (command & BRL_FLG_INPUT_GUI     ? BRLAPI_KEY_FLG_GUI     : 0)
>                                                   ^~~~~~~~~~~~~~~~~~
>                                                   BRLAPI_KEY_FLG_MOD2
> ./cmd_brlapi.c:103:48: error: ???BRLAPI_KEY_FLG_KBD_RELEASE??? undeclared (first use in this function); did you mean ???BRL_FLG_KBD_RELEASE????
>              | (command & BRL_FLG_KBD_RELEASE ? BRLAPI_KEY_FLG_KBD_RELEASE : 0)
>                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
>                                                 BRL_FLG_KBD_RELEASE
> ./cmd_brlapi.c:104:48: error: ???BRLAPI_KEY_FLG_KBD_EMUL0??? undeclared (first use in this function); did you mean ???BRL_FLG_KBD_EMUL0????
>              | (command & BRL_FLG_KBD_EMUL0   ? BRLAPI_KEY_FLG_KBD_EMUL0   : 0)
>                                                 ^~~~~~~~~~~~~~~~~~~~~~~~
>                                                 BRL_FLG_KBD_EMUL0
> ./cmd_brlapi.c:105:48: error: ???BRLAPI_KEY_FLG_KBD_EMUL1??? undeclared (first use in this function); did you mean ???BRL_FLG_KBD_EMUL1????
>              | (command & BRL_FLG_KBD_EMUL1   ? BRLAPI_KEY_FLG_KBD_EMUL1   : 0)
>                                                 ^~~~~~~~~~~~~~~~~~~~~~~~
>                                                 BRL_FLG_KBD_EMUL1
> ./cmd_brlapi.c:111:50: error: ???BRLAPI_KEY_FLG_TOGGLE_ON??? undeclared (first use in this function); did you mean ???BRL_FLG_TOGGLE_ON????
>              | (command & BRL_FLG_TOGGLE_ON     ? BRLAPI_KEY_FLG_TOGGLE_ON     : 0)
>                                                   ^~~~~~~~~~~~~~~~~~~~~~~~
>                                                   BRL_FLG_TOGGLE_ON
> ./cmd_brlapi.c:112:50: error: ???BRLAPI_KEY_FLG_TOGGLE_OFF??? undeclared (first use in this function); did you mean ???BRL_FLG_TOGGLE_OFF????
>              | (command & BRL_FLG_TOGGLE_OFF    ? BRLAPI_KEY_FLG_TOGGLE_OFF    : 0)
>                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~
>                                                   BRL_FLG_TOGGLE_OFF
> ./cmd_brlapi.c:113:50: error: ???BRLAPI_KEY_FLG_MOTION_ROUTE??? undeclared (first use in this function); did you mean ???BRL_FLG_MOTION_ROUTE????
>              | (command & BRL_FLG_MOTION_ROUTE  ? BRLAPI_KEY_FLG_MOTION_ROUTE  : 0)
>                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>                                                   BRL_FLG_MOTION_ROUTE
> ./cmd_brlapi.c:114:50: error: ???BRLAPI_KEY_FLG_MOTION_SCALED??? undeclared (first use in this function); did you mean ???BRL_FLG_MOTION_SCALED????
>              | (command & BRL_FLG_MOTION_SCALED ? BRLAPI_KEY_FLG_MOTION_SCALED : 0)
>                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
>                                                   BRL_FLG_MOTION_SCALED
> ./cmd_brlapi.c:115:50: error: ???BRLAPI_KEY_FLG_MOTION_TOLEFT??? undeclared (first use in this function); did you mean ???BRL_FLG_MOTION_TOLEFT????
>              | (command & BRL_FLG_MOTION_TOLEFT ? BRLAPI_KEY_FLG_MOTION_TOLEFT : 0)
>                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
>                                                   BRL_FLG_MOTION_TOLEFT
> ./cmd_brlapi.c: In function ???cmdBrlapiToBrltty???:
> ./cmd_brlapi.c:178:21: error: ???BRLAPI_KEY_FLG_SHIFT??? undeclared (first use in this function); did you mean ???BRLAPI_KEY_FLAGS_SHIFT????
>            | (code & BRLAPI_KEY_FLG_SHIFT   ? BRL_FLG_INPUT_SHIFT   : 0)
>                      ^~~~~~~~~~~~~~~~~~~~
>                      BRLAPI_KEY_FLAGS_SHIFT
> ./cmd_brlapi.c:179:21: error: ???BRLAPI_KEY_FLG_UPPER??? undeclared (first use in this function); did you mean ???BRLAPI_KEY_FLG_MOD2????
>            | (code & BRLAPI_KEY_FLG_UPPER   ? BRL_FLG_INPUT_UPPER   : 0)
>                      ^~~~~~~~~~~~~~~~~~~~
>                      BRLAPI_KEY_FLG_MOD2
> ./cmd_brlapi.c:180:21: error: ???BRLAPI_KEY_FLG_CONTROL??? undeclared (first use in this function); did you mean ???BRLAPI_KEY_FLG_MOD2????
>            | (code & BRLAPI_KEY_FLG_CONTROL ? BRL_FLG_INPUT_CONTROL : 0)
>                      ^~~~~~~~~~~~~~~~~~~~~~
>                      BRLAPI_KEY_FLG_MOD2
> ./cmd_brlapi.c:181:21: error: ???BRLAPI_KEY_FLG_META??? undeclared (first use in this function); did you mean ???BRLAPI_KEY_FLG_MOD2????
>            | (code & BRLAPI_KEY_FLG_META    ? BRL_FLG_INPUT_META    : 0)
>                      ^~~~~~~~~~~~~~~~~~~
>                      BRLAPI_KEY_FLG_MOD2
> ./cmd_brlapi.c:182:21: error: ???BRLAPI_KEY_FLG_ALTGR??? undeclared (first use in this function); did you mean ???BRLAPI_KEY_FLG_MOD2????
>            | (code & BRLAPI_KEY_FLG_ALTGR   ? BRL_FLG_INPUT_ALTGR   : 0)
>                      ^~~~~~~~~~~~~~~~~~~~
>                      BRLAPI_KEY_FLG_MOD2
> ./cmd_brlapi.c:183:21: error: ???BRLAPI_KEY_FLG_GUI??? undeclared (first use in this function); did you mean ???BRLAPI_KEY_FLG_MOD2????
>            | (code & BRLAPI_KEY_FLG_GUI     ? BRL_FLG_INPUT_GUI     : 0)
>                      ^~~~~~~~~~~~~~~~~~
>                      BRLAPI_KEY_FLG_MOD2
> ./cmd_brlapi.c:191:21: error: ???BRLAPI_KEY_FLG_KBD_RELEASE??? undeclared (first use in this function); did you mean ???BRL_FLG_KBD_RELEASE????
>            | (code & BRLAPI_KEY_FLG_KBD_RELEASE ? BRL_FLG_KBD_RELEASE : 0)
>                      ^~~~~~~~~~~~~~~~~~~~~~~~~~
>                      BRL_FLG_KBD_RELEASE
> ./cmd_brlapi.c:192:21: error: ???BRLAPI_KEY_FLG_KBD_EMUL0??? undeclared (first use in this function); did you mean ???BRL_FLG_KBD_EMUL0????
>            | (code & BRLAPI_KEY_FLG_KBD_EMUL0   ? BRL_FLG_KBD_EMUL0   : 0)
>                      ^~~~~~~~~~~~~~~~~~~~~~~~
>                      BRL_FLG_KBD_EMUL0
> ./cmd_brlapi.c:193:21: error: ???BRLAPI_KEY_FLG_KBD_EMUL1??? undeclared (first use in this function); did you mean ???BRL_FLG_KBD_EMUL1????
>            | (code & BRLAPI_KEY_FLG_KBD_EMUL1   ? BRL_FLG_KBD_EMUL1   : 0)
>                      ^~~~~~~~~~~~~~~~~~~~~~~~
>                      BRL_FLG_KBD_EMUL1
> ./cmd_brlapi.c:199:21: error: ???BRLAPI_KEY_FLG_TOGGLE_ON??? undeclared (first use in this function); did you mean ???BRL_FLG_TOGGLE_ON????
>            | (code & BRLAPI_KEY_FLG_TOGGLE_ON     ? BRL_FLG_TOGGLE_ON     : 0)
>                      ^~~~~~~~~~~~~~~~~~~~~~~~
>                      BRL_FLG_TOGGLE_ON
> ./cmd_brlapi.c:200:21: error: ???BRLAPI_KEY_FLG_TOGGLE_OFF??? undeclared (first use in this function); did you mean ???BRL_FLG_TOGGLE_OFF????
>            | (code & BRLAPI_KEY_FLG_TOGGLE_OFF    ? BRL_FLG_TOGGLE_OFF    : 0)
>                      ^~~~~~~~~~~~~~~~~~~~~~~~~
>                      BRL_FLG_TOGGLE_OFF
> ./cmd_brlapi.c:201:21: error: ???BRLAPI_KEY_FLG_MOTION_ROUTE??? undeclared (first use in this function); did you mean ???BRL_FLG_MOTION_ROUTE????
>            | (code & BRLAPI_KEY_FLG_MOTION_ROUTE  ? BRL_FLG_MOTION_ROUTE  : 0)
>                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>                      BRL_FLG_MOTION_ROUTE
> ./cmd_brlapi.c:202:21: error: ???BRLAPI_KEY_FLG_MOTION_SCALED??? undeclared (first use in this function); did you mean ???BRL_FLG_MOTION_SCALED????
>            | (code & BRLAPI_KEY_FLG_MOTION_SCALED ? BRL_FLG_MOTION_SCALED : 0)
>                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
>                      BRL_FLG_MOTION_SCALED
> ./cmd_brlapi.c:203:21: error: ???BRLAPI_KEY_FLG_MOTION_TOLEFT??? undeclared (first use in this function); did you mean ???BRL_FLG_MOTION_TOLEFT????
>            | (code & BRLAPI_KEY_FLG_MOTION_TOLEFT ? BRL_FLG_MOTION_TOLEFT : 0)
>                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
>                      BRL_FLG_MOTION_TOLEFT
> make[1]: *** [Makefile:769: cmd_brlapi.o] Error 1
> make[1]: Leaving directory '/home/pi/Documents/braille/brltty/Programs'
> make: *** [Makefile:48: all] Error 2

> _______________________________________________
> This message was sent via the BRLTTY mailing list.
> To post a message, send an e-mail to: BRLTTY at brltty.app
> For general information, go to: http://brltty.app/mailman/listinfo/brltty


-- 
	Adri van Bloois
	Antonlaan 104		email:	adrian at pa0rda.nl
	3701 VG Zeist		voice:	+31-(0)-30-691 2741
	The Netherlands		fax:	NONE

52 05"15.77"N 5 4"44.56"E
QTH-locater	 JO 22 OC 90 HT


"Elegance is not a dispensable luxury but a factor that decides between 
 success and failure."
	Edsger W. Dijkstra


More information about the BRLTTY mailing list