[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: "Final" version of tty child frames
From: |
Gerd Möllmann |
Subject: |
Re: "Final" version of tty child frames |
Date: |
Tue, 22 Oct 2024 16:01:08 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Gerd Möllmann <gerd.moellmann@gmail.com>
>> Cc: Eli Zaretskii <eliz@gnu.org>, Jared Finder <jared@finder.org>,
>> emacs-devel@gnu.org
>> Date: Tue, 22 Oct 2024 12:40:21 +0200
>>
>> martin rudalics <rudalics@gmx.at> writes:
>>
>> > Building complains here as
>> >
>> > In file included from ../../src/term.c:30:
>> > ../../src/lisp.h: In function ‘Ftty_display_pixel_height’:
>> > ../../src/lisp.h:406:24: warning: ‘height’ may be used uninitialized
>> > [-Wmaybe-uninitialized]
>> > 406 | XIL ((EMACS_INT) (((EMACS_UINT) (n) << INTTYPEBITS) +
>> > Lisp_Int0))
>> > | ^
>> > ../../src/term.c:4907:14: note: ‘height’ was declared here
>> > 4907 | int width, height;
>> > | ^~~~~~
>> > ../../src/lisp.h: In function ‘Ftty_display_pixel_width’:
>> > ../../src/lisp.h:406:24: warning: ‘width’ may be used uninitialized
>> > [-Wmaybe-uninitialized]
>> > 406 | XIL ((EMACS_INT) (((EMACS_UINT) (n) << INTTYPEBITS) +
>> > Lisp_Int0))
>> > | ^
>> > ../../src/term.c:4896:7: note: ‘width’ was declared here
>> > 4896 | int width, height;
>> > | ^~~~~
>>
>> That's code like this:
>>
>> {
>> int width, height;
>> tty_display_dimension (display, &width, &height);
>> return make_fixnum (height);
>> }
>>
>> So width and height are returned by the call to tty_display_dimension.
>> TBH, I can't make sense of the warning.
>
> I could: tty_display_dimension includes a switch without 'default',
> and thus might not set width and height to any value. I installed
> what should be a fix for that, and I hope Martin will confirm that the
> warning is now gone.
Ok, thanks. I thought that was an exhaustive switch, but apparently not.
>
>> FWIW, clang doesn't complain.
>
> It probably doesn't analyze the code so thoroughly.
>
>> > One thing I noticed is that changing the background color works only
>> > after I changed something like the position or size.
>>
>> Probably a SET_FRAME_GARBAGED missing somewhere, or something like that.
>
> If someone gives the recipe for this, I could look into it.
>
>> > Also I would like to get rid of those |+- borders. What would I have
>> > to do?
>>
>> If you want to get rid of the border completely add a frame parameter
>> (undecorated . t), Default if no no undecorated is specified, it to not
>> draw borders.
>
> You mean, if undecorated is not specified, the default is to _draw_
> the borders, yes? Because the examples I used do not specify
> undecorated, and the borders were drawn.
It's this, so if it's not undecoreated.
if (!FRAME_UNDECORATED (child))
{
/* Horizontal line above. */
The double negation always gets me confused :-).
Re: "Final" version of tty child frames, Jared Finder, 2024/10/28
Re: "Final" version of tty child frames, Dr. Arne Babenhauserheide, 2024/10/22
Re: "Final" version of tty child frames, Eli Zaretskii, 2024/10/22