Subject: bug#19502: 24.4; Emacs 24.4 on windows: the contents of the system-configuration variable has changed, but its docstring has not. I prefer the behaviour described in the docstring.

From: Albert <[email-masked]>
Date: Sun, 4 Jan 2015 18:17:14 +0100

Thank you!

The function x-server-version indeed serves my needs. You are right,
no need to have non-standard behaviour for the system-configuration
variable. In hindsight it is even documented in an obvious
place. However, the wording in the documentation of x-server-version
and x-server-vendor is a little confusing (the relevant snippets are
included at the end of this mail):

- The elisp manual says "specifically about X displays". I would
expect a word about mswindows here.

- The docstring of x-server-version is compatible with that, but I
would again expect a word about mswindows.

- The docstring of x-server-vendor seems to ONLY mention W32 and
Microsoft. I would expect more or less the same text as in the elisp
manual with an extra remark about W32.

Best regards,

Albert.

>From elisp manual: "Display Feature Testing":
--8><---------------
These functions obtain additional information specifically about X
displays.

 -- Function: x-server-version &optional display
     This function returns the list of version numbers of the X server
     running the display.  The value is a list of three integers: the
     major and minor version numbers of the X protocol, and the
     distributor-specific release number of the X server software
     itself.

 -- Function: x-server-vendor &optional display
     This function returns the "vendor" that provided the X server
     software (as a string).  Really this means whoever distributes the
     X server.

     When the developers of X labeled software distributors as
     "vendors", they showed their false assumption that no system could
     ever be developed and distributed noncommercially.
--8><---------------

And in the docstring of both of them it says:

--8><---------------
x-server-version is a built-in function in `w32fns.c'.

(x-server-version &optional DISPLAY)

Return the version numbers of the server of DISPLAY.
The value is a list of three integers: the major and minor
version numbers of the X Protocol in use, and the distributor-specific
release number.  See also the function `x-server-vendor'.

The optional argument DISPLAY specifies which display to ask about.
DISPLAY should be either a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display.

[forward]
--8><---------------

--8><---------------
x-server-vendor is a built-in function in `w32fns.c'.

(x-server-vendor &optional DISPLAY)

Return the "vendor ID" string of the W32 system (Microsoft).
The optional argument DISPLAY specifies which display to ask about.
DISPLAY should be either a frame or a display name (a string).
If omitted or nil, that stands for the selected frame's display.

[back]
--8><---------------

On 4 January 2015 at 16:57, Eli Zaretskii <[email-masked]> wrote:

> > Date: Sun, 4 Jan 2015 10:55:14 +0100
> > From: Albert <[email-masked]>
> >
> > Evaluating (insert system-configuration) gives
> > in emacs 24.3: i386-mingw-nt6.2.9200
> > in emacs 24.4: i686-pc-mingw32
> >
> > The important difference here is the absence of the "nt6.2.9200" part in
> > emacs 24.4. I have use cases that need to know the version of the
> > windows emacs is currently running on. I would therefore prefer
> > something like "i686-pc-mingw32-nt6.2.9200" if that is somehow better or
> > more accurate than the original string from 24.3. Perhaps the "pc" part
> > is not needed?
>
> The native MS-Windows build of Emacs now uses the same code as on
> other platforms to compute this string, so the OS version is not
> included.
>
> I fixed the doc string, thanks for pointing out the discrepancy.
>
> > In emacs 24.4, the docstring for the variable system-configuration is:
> > "system-configuration is a variable defined in `C source code'.
> > Its value is "i686-pc-mingw32"
> >
> > Documentation:
> > Value is string indicating configuration Emacs was built for.
> > On MS-Windows, the value reflects the OS flavor and version on which
> > Emacs is running."
> >
> > I would prefer if this docstring would remain correct.
> >
> > But, while checking the contents of this entire mail, I see a version
> > number of 6.3.9600 reported just a few lines below.
>
> Exactly.  So in fact the OS version in old value was redundant, and no
> information is lost with this change.
>
> > Could it be that the windows version reported in the
> > system-configuration variable of emacs 24.3 is the version under
> > which that emacs was build?
>
> No, it reported the version of the OS where Emacs was running.
>
> > So it seems the old emacs 24.3 behaviour is not following the
> > docstring either.
>
> It will in the next release.
>
> > Still, I would prefer it if the variable could live up to its
> > current docstring, if possible.
>
> Given that the information you want is still available, both in the
> bug report and independently (see below), why would you need that
> information in system-configuration as well?
>
> > If that is not possible, is there another way of asking emacs on
> > which windows version it is running?  Is it documented somewhere
> > where I could find it?  The bug-reporting code obviously manages to
> > do it, but when I searched for alternatives yesterday I couldn't
> > find any.
>
> You want x-server-version (a function), it is what report-emacs-bug
> calls to get that info.
>