Hi,

I had some updates regarding kitty.

While going through one of the errors, there was this one `union` called 
`CPUCell` defined as

```
> typedef union CPUCell {
>     struct {
>         char_type ch_or_idx: sizeof(char_type) * 8 - 1;
>         char_type ch_is_idx: 1;
>         char_type hyperlink_id: sizeof(hyperlink_id_type) * 8;
>         char_type next_char_was_wrapped : 1;
>         char_type is_multicell : 1;
>         char_type natural_width: 1;
>         char_type scale: SCALE_BITS;
>         char_type subscale_n: SUBSCALE_BITS;
>         char_type subscale_d: SUBSCALE_BITS;
>         char_type x : WIDTH_BITS + SCALE_BITS;
>         char_type y : SCALE_BITS;
>         char_type width: WIDTH_BITS;
>         char_type valign: VALIGN_BITS;
>         char_type halign: HALIGN_BITS;
>         char_type temp_flag: 1;
>         char_type : 15;
>     };
>     struct {
>         char_type ch_and_idx: sizeof(char_type) * 8;
>         char_type : 32;
>         char_type : 32;
>     };
> } CPUCell;
```

where `char_type` is `typedef` for `uint32_t` and `hyperlink_id_type` is 
`typedef` for `uint16_t`.
Here, in the test, `ch_and_idx` was set to `1` and the tuple `(ch_is_idx, 
ch_or_idx, ch_and_idx)` is returned.
That means `1` is set to the first 32 bits and value is read from 32nd bit, 
first 31 bits and from first 32 bits.
In little endian machines this `0`, `1` and `1` which is the expected output, 
while in big endian machines this will be `1`, `0` and `1`.

For the `test_zsh_integration` failure, the test case is trying to `cd` into a 
directory whose name has a unicode character in it.
They are using a temporary `.zshrc` file which will receive some of its value 
from the systems default rc file (`.bashrc` in my case).
`LANG` variable also takes the value likewise. By default, what I saw is that 
the `LANG` is having the value `C`. Changing it to a format like `en_US.UTF-8` 
seems to fix the test.

Thanks,
Pranav

Reply via email to