Support 'operating-system-release' on MS-Windows
* src/w32fns.c (w32_version_string) [WINDOWSNT]: New function. * src/w32common.h (w32_version_string) [WINDOWSNT]: Add prototype. * src/editfns.c (init_editfns) [WINDOWSNT]: Produce a non-nil string with the OS version.
This commit is contained in:
parent
83591e1aec
commit
75eb2d0e85
3 changed files with 23 additions and 1 deletions
|
@ -52,6 +52,9 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */
|
|||
#include "window.h"
|
||||
#include "blockinput.h"
|
||||
|
||||
#ifdef WINDOWSNT
|
||||
# include "w32common.h"
|
||||
#endif
|
||||
static void update_buffer_properties (ptrdiff_t, ptrdiff_t);
|
||||
static Lisp_Object styled_format (ptrdiff_t, Lisp_Object *, bool);
|
||||
|
||||
|
@ -121,12 +124,14 @@ init_editfns (void)
|
|||
else if (NILP (Vuser_full_name))
|
||||
Vuser_full_name = build_string ("unknown");
|
||||
|
||||
#ifdef HAVE_SYS_UTSNAME_H
|
||||
#if defined HAVE_SYS_UTSNAME_H
|
||||
{
|
||||
struct utsname uts;
|
||||
uname (&uts);
|
||||
Voperating_system_release = build_string (uts.release);
|
||||
}
|
||||
#elif defined WINDOWSNT
|
||||
Voperating_system_release = build_string (w32_version_string ());
|
||||
#else
|
||||
Voperating_system_release = Qnil;
|
||||
#endif
|
||||
|
|
|
@ -50,6 +50,11 @@ extern int os_subtype;
|
|||
/* Cache system info, e.g., the NT page size. */
|
||||
extern void cache_system_info (void);
|
||||
|
||||
#ifdef WINDOWSNT
|
||||
/* Return a static buffer with the MS-Windows version string. */
|
||||
extern char * w32_version_string (void);
|
||||
#endif
|
||||
|
||||
typedef void (* VOIDFNPTR) (void);
|
||||
|
||||
/* Load a function address from a DLL. Cast the result via VOIDFNPTR
|
||||
|
|
12
src/w32fns.c
12
src/w32fns.c
|
@ -9480,6 +9480,18 @@ cache_system_info (void)
|
|||
w32_num_mouse_buttons = GetSystemMetrics (SM_CMOUSEBUTTONS);
|
||||
}
|
||||
|
||||
#ifdef WINDOWSNT
|
||||
char *
|
||||
w32_version_string (void)
|
||||
{
|
||||
/* NNN.NNN.NNNNNNNNNN */
|
||||
static char version_string[3 + 1 + 3 + 1 + 10 + 1];
|
||||
_snprintf (version_string, sizeof version_string, "%d.%d.%d",
|
||||
w32_major_version, w32_minor_version, w32_build_number);
|
||||
return version_string;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef EMACSDEBUG
|
||||
void
|
||||
_DebPrint (const char *fmt, ...)
|
||||
|
|
Loading…
Add table
Reference in a new issue