unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: martin rudalics <rudalics@gmx.at>
Cc: emacs-devel@gnu.org
Subject: Re: Window tree and window's internal height
Date: Tue, 20 Nov 2018 18:06:39 +0200	[thread overview]
Message-ID: <83va4rivhs.fsf@gnu.org> (raw)
In-Reply-To: <5BF3D3B3.9020105@gmx.at> (message from martin rudalics on Tue, 20 Nov 2018 10:28:19 +0100)

> Date: Tue, 20 Nov 2018 10:28:19 +0100
> From: martin rudalics <rudalics@gmx.at>
> CC: emacs-devel@gnu.org
> 
>  > Well, I turned to the manual after becoming disappointed in the
>  > comments to 'struct window' definition...
> 
> Tell me which ones you find not useful or incomplete and I'll try to
> fix them.

The next/prev pointers and their relation to the parent pointer and to
the 'contents' and pseudo_window_p members.  You will see that I
already added some details there, but maybe they aren't accurate
enough, or you can add more explanations.

The original problem was that when I saw this:

      if (!NILP (w->parent)
	  || WINDOWP (w->contents)
	  || !NILP (w->next)
	  || !NILP (w->prev)

I concluded that I didn't have a clear idea what each one of the tests
means, and how they differ from the following test from
window_wants_mode_line:

  return ((WINDOW_LEAF_P (w)
	   && !MINI_WINDOW_P (w)
	   && !WINDOW_PSEUDO_P (w)
	   && !EQ (window_mode_line_format, Qnone)
	   && (!NILP (window_mode_line_format)
	       || !NILP (BVAR (XBUFFER (WINDOW_BUFFER (w)), mode_line_format)))
	   && WINDOW_PIXEL_HEIGHT (w) > WINDOW_FRAME_LINE_HEIGHT (w))

> We should also decide what to do with the Object Internals
> section of the Elisp manual - update or remove it.  I'd do the latter
> because IMHO we'll be hardly able to keep it up to date unless we add
> rather strong advices to window.h, buffer.h and process.h.

Emacs is sometimes accused to be completely devoid of documentation of
its internals, something that is said to be an obstacle for people who
might otherwise try hacking Emacs on the C level.  So I think we
should keep the little of the internals documentation we have.  We
don't (or rather shouldn't) change the internals too frequently, so
the maintenance burden isn't supposed to be too heavy.

I will fix that chapter soon.



  reply	other threads:[~2018-11-20 16:06 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-17 12:58 Window tree and window's internal height Eli Zaretskii
2018-11-17 18:39 ` martin rudalics
2018-11-18 15:53   ` Eli Zaretskii
2018-11-18 19:40     ` martin rudalics
2018-11-18 20:25       ` Eli Zaretskii
2018-11-19  9:41         ` martin rudalics
2018-11-19 18:36           ` Eli Zaretskii
2018-11-20  9:28             ` martin rudalics
2018-11-20 16:06               ` Eli Zaretskii [this message]
2018-11-20 18:49                 ` Eli Zaretskii
2018-11-20 23:50                   ` Richard Stallman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83va4rivhs.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=rudalics@gmx.at \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).