Pastey Patch for uname() from std/os.e v.2
- Posted by Insolor Jun 05, 2014
# HG changeset patch # User Insolor # Date 1401985936 -14400 # Thu Jun 05 20:32:16 2014 +0400 # Node ID 84c30c83253a63ba3f894a2749fffa2ec960fdf6 # Parent d564cc9bc16457c52dded7735c6f923e780ef5fa uname() fix and update diff -r d564cc9bc164 -r 84c30c83253a include/std/os.e --- a/include/std/os.e Thu Jun 05 00:37:17 2014 -0300 +++ b/include/std/os.e Thu Jun 05 20:32:16 2014 +0400 @@ -169,18 +169,30 @@ elsif mine = 90 then sbuf = append(sbuf, "WinME") else - sbuf = append(sbuf, "Unknown") + sbuf = append(sbuf, sprintf("Windows %d.%d", {maj,mine})) end if elsif plat = 2 then sbuf = append(sbuf, "WinNT") - if maj = 6 and mine = 1 then - sbuf = append(sbuf, "Windows7") - elsif maj = 6 and mine = 0 then - sbuf = append(sbuf, "Vista") - elsif maj = 5 and mine = 1 or 2 then - sbuf = append(sbuf, "WinXP") - elsif maj = 5 and mine = 0 then - sbuf = append(sbuf, "Win2K") + if maj = 6 then + if mine = 0 then + sbuf = append(sbuf, "Vista") -- or Win2008 + elsif mine = 1 then + sbuf = append(sbuf, "Windows7") -- or Win2008 R2 + elsif mine = 2 then + sbuf = append(sbuf, "Windows8") -- or Win2012 + elsif mine = 3 then + sbuf = append(sbuf, "Windows8.1") + else + sbuf = append(sbuf, sprintf("Windows %d.%d", {maj,mine})) + end if + elsif maj = 5 then + if mine = 0 then + sbuf = append(sbuf, "Win2K") + elsif mine = 1 then + sbuf = append(sbuf, "WinXP") + elsif mine = 2 then + sbuf = append(sbuf, "Win2003") -- according to http://msdn.microsoft.com/en-us/library/windows/desktop/ms724834%28v=vs.85%29.aspx + else + sbuf = append(sbuf, sprintf("Windows %d.%d", {maj,mine})) + end if elsif maj = 4 and mine = 0 then sbuf = append(sbuf, "WinNT 4.0") elsif maj = 3 and mine = 51 then
1. Comment by andi49 Jun 15, 2014
Hi
As os.e uses GetVersionEx(), your patch wan't work for WIndows NT6.3 (eg WIndows8.1)
please have a look at: http://msdn.microsoft.com/en-us/library/windows/desktop/dn481241%28v=vs.85%29.aspx
You also need to change eu.manifest (see below)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!-- These version numbers have nothing to do with EUPHORIA version numbers. They must not be changed for version updates of EUPHORIA. --> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="4.1.0.0" processorArchitecture="x86" name="euphoria" type="win32" /> <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> <application> <!--This Id value indicates the application supports Windows 8.1 functionality--> <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> </application> </compatibility> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </assembly>