Subject: bug#1077: 23.0.60; x-create-frame: (wrong-type-argument number-or-marker-p nil)

From: martin rudalics <[email-masked]>
Date: Tue, 30 Nov 2010 15:01:09 +0100

> Is it different from (menu-bar-lines . 0) ?

The only difference I can think of is that nil stands for "this frame
cannot have a menubar" and zero for "the menubar has been temporarily
disabled".  But if not entry for `menu-bar-lines' exists, calling
(frame-parameter ... 'menu-bar-lines) returns nil.  Hence, the caller
should be prepared to deal with a return value of nil anyway (ideally
using `numberp' since the call might return any value).

 > If not, do you happen to
 > know why are we using two different conventions to convey the same
 > information?

Probably for using `menu-bar-lines' in a uniform manner instead of a
combination of `menu-bar-mode' and `menu-bar-lines'.  The most
interesting thing about this is that on GNU systems Emacs never uses a
value greater than 1 (if I correctly recall a discussion about this).
And on Windows any calculations with a value greater than 1 are broken
anway.  So using a boolean `menu-bar' should suffice.

martin