[BRLTTY] Low-level BrlAPI questions

Samuel Thibault samuel.thibault at ens-lyon.org
Sat Mar 27 10:09:20 EDT 2021


Aura Kelloniemi, le sam. 27 mars 2021 01:14:13 +0200, a ecrit:
> On 2021-03-26 at 22:51 +0100, Samuel Thibault <samuel.thibault at ens-lyon.org> wrote:
>  > Aura Kelloniemi, le ven. 26 mars 2021 22:45:43 +0200, a ecrit:
>  > > - What is the best way to write to the display if the input text is always
>  > >   UTF-8 encoded? (This is how Rust's strings work).
> 
>  > You can just emit UTF-8.
> 
> Byt what happens if the user's locale uses some other charset and I write with
> brlapi__writeText?

If you pass UTF-8 text to brlapi_writeText while the locale is non-UTF-8
it will get a bogus result, as expected.

There is also brlapi_writeWText which just takes a wchar_t *, so
independent of the locale. We could add a brlapi_writeUTF8Text if
needed.

> How does the charset field in brlapi_writeArguments_t work? What kind of
> charset names it understands?

It is anything that iconv supports.

>  > > - What is the intended use of enterTtyModeWithPath?
> 
>  > It is meant for screen readers, that take control of a whole desktop.
>  > For more rationale, see the “A pile of "paper sheets"” section of the
>  > brlapi documentation.
> 
> Will the given tty path be prepended by tty numbers from other sources – e.g.
> the WINDOWPATH environemnt variable?

It will, yes.

>  > > - It is not always clear who owns the data returned by BrlAPI functions.
> 
>  > For which function is this not clear?
> 
> - brlapi__openConnection: it manipulates the settings struct passd as
>   parameter
> - brlapi_strerror

For these there is actually a const qualifier which means that they are
not to be passed to free(). I'll add a comment to make it clear.

> Additional questions:
> - What is the displayNumber field in brlapi_writeArguments_t?

Basically left for any future case where there could be several displays
on the same device.

> - What happens if I replace my display with another unit with a different size
>   while BrlAPI clients are running?

You will see a parameter update for the display size.

> - Could the BRLAPI_ERROR_... constants form an enum type, or would it break
>   something?

We could do this indeed, we'd still need to define the macros in case
some existing code depends on that.

Samuel


More information about the BRLTTY mailing list