Index: base/shell/cmd/cmd.h =================================================================== --- base/shell/cmd/cmd.h (revision 65840) +++ base/shell/cmd/cmd.h (working copy) @@ -472,6 +472,7 @@ /* Prototypes for VER.C */ +VOID PrintOSVersion (VOID); VOID ShortVersion (VOID); INT cmd_ver (LPTSTR); Index: base/shell/cmd/lang/de-DE.rc =================================================================== --- base/shell/cmd/lang/de-DE.rc (revision 65840) +++ base/shell/cmd/lang/de-DE.rc (working copy) @@ -522,7 +522,7 @@ STRING_REPLACE_ERROR7 "Erweiterter Fehler 32\n" STRING_REACTOS_VERSION "ReactOS Betriebssystem [Version %s-%s]\n" STRING_CMD_SHELLINFO "\nReactOS-Befehlszeileninterpreter\nVersion %s %s" - STRING_VERSION_RUNVER " läuft in %s" + STRING_VERSION_RUNVER "%s [Version %d.%d.%d] %s" STRING_COPY_FILE " %d Datei(en) kopiert\n" STRING_DELETE_WIPE "sicher gelöscht" STRING_FOR_ERROR "ungültige Variablenangabe." Index: base/shell/cmd/lang/el-GR.rc =================================================================== --- base/shell/cmd/lang/el-GR.rc (revision 65840) +++ base/shell/cmd/lang/el-GR.rc (working copy) @@ -527,7 +527,7 @@ STRING_REPLACE_ERROR7 "Extended Error 32\n" STRING_REACTOS_VERSION "ReactOS Operating System [Version %s-%s]\n" STRING_CMD_SHELLINFO "\nReactOS Command Line Interpreter\nVersion %s %s" - STRING_VERSION_RUNVER " running on %s" + STRING_VERSION_RUNVER "%s [Version %d.%d.%d] %s" STRING_COPY_FILE " %d file(s) copied\n" STRING_DELETE_WIPE "wiped" STRING_FOR_ERROR "bad variable specification." Index: base/shell/cmd/lang/en-US.rc =================================================================== --- base/shell/cmd/lang/en-US.rc (revision 65840) +++ base/shell/cmd/lang/en-US.rc (working copy) @@ -523,7 +523,7 @@ STRING_REPLACE_ERROR7 "Extended Error 32\n" STRING_REACTOS_VERSION "ReactOS Operating System [Version %s-%s]\n" STRING_CMD_SHELLINFO "\nReactOS Command Line Interpreter\nVersion %s %s" - STRING_VERSION_RUNVER " running on %s" + STRING_VERSION_RUNVER "%s [Version %d.%d.%d] %s" STRING_COPY_FILE " %d file(s) copied\n" STRING_DELETE_WIPE "wiped" STRING_FOR_ERROR "bad variable specification." Index: base/shell/cmd/lang/es-ES.rc =================================================================== --- base/shell/cmd/lang/es-ES.rc (revision 65840) +++ base/shell/cmd/lang/es-ES.rc (working copy) @@ -525,7 +525,7 @@ STRING_REPLACE_ERROR7 "Extended Error 32\n" STRING_REACTOS_VERSION "ReactOS Operating System [Version %s-%s]\n" STRING_CMD_SHELLINFO "\nIntérprete de comandos de ReactOS\nVersion %s %s" - STRING_VERSION_RUNVER " corriendo en %s" + STRING_VERSION_RUNVER "%s [Version %d.%d.%d] %s" STRING_COPY_FILE " %d archivo(s) copado(s)\n" STRING_DELETE_WIPE "Limpiado" STRING_FOR_ERROR "Especición de variable errónea." Index: base/shell/cmd/lang/fr-FR.rc =================================================================== --- base/shell/cmd/lang/fr-FR.rc (revision 65840) +++ base/shell/cmd/lang/fr-FR.rc (working copy) @@ -537,7 +537,7 @@ STRING_REPLACE_ERROR7 "Erreur étendue 32\n" STRING_REACTOS_VERSION "ReactOS Operating System [Version %s-%s]\n" STRING_CMD_SHELLINFO "\nInterpréteur de ligne de commandes ReactOS\nVersion %s %s" - STRING_VERSION_RUNVER " tournant sur %s" + STRING_VERSION_RUNVER "%s [Version %d.%d.%d] %s" STRING_COPY_FILE " %d fichier(s) copié(s)\n" STRING_DELETE_WIPE "effacé(s)" STRING_FOR_ERROR "mauvaise variable spécifiée." Index: base/shell/cmd/lang/hu-HU.rc =================================================================== --- base/shell/cmd/lang/hu-HU.rc (revision 65840) +++ base/shell/cmd/lang/hu-HU.rc (working copy) @@ -507,7 +507,7 @@ STRING_REPLACE_ERROR7 "Extended Error 32\n" STRING_REACTOS_VERSION "ReactOS Operating System [Version %s-%s]\n" STRING_CMD_SHELLINFO "\nReactOS Parancssor értelmezõ\nVersion %s %s" - STRING_VERSION_RUNVER " running on %s" + STRING_VERSION_RUNVER "%s [Version %d.%d.%d] %s" STRING_COPY_FILE " %d állomány másolva\n" STRING_DELETE_WIPE "wiped" STRING_FOR_ERROR "Hibás változó." Index: base/shell/cmd/lang/id-ID.rc =================================================================== --- base/shell/cmd/lang/id-ID.rc (revision 65840) +++ base/shell/cmd/lang/id-ID.rc (working copy) @@ -522,7 +522,7 @@ STRING_REPLACE_ERROR7 "Extended Error 32\n" STRING_REACTOS_VERSION "ReactOS Operating System [Version %s-%s]\n" STRING_CMD_SHELLINFO "\nInterpreter Baris Perintah ReactOS\nVersion %s %s" - STRING_VERSION_RUNVER " berjalan pada %s" + STRING_VERSION_RUNVER "%s [Version %d.%d.%d] %s" STRING_COPY_FILE " %d file di-copy\n" STRING_DELETE_WIPE "dihapus" STRING_FOR_ERROR "spesifikasi variabel tidak baik." Index: base/shell/cmd/lang/it-IT.rc =================================================================== --- base/shell/cmd/lang/it-IT.rc (revision 65840) +++ base/shell/cmd/lang/it-IT.rc (working copy) @@ -533,7 +533,7 @@ STRING_REPLACE_ERROR7 "Errore esteso 32\n" STRING_REACTOS_VERSION "ReactOS Operating System [Version %s-%s]\n" STRING_CMD_SHELLINFO "\nInterprete di linea di comando di ReactOS\nVersion %s %s" - STRING_VERSION_RUNVER " in esecuzione su %s" + STRING_VERSION_RUNVER "%s [Version %d.%d.%d] %s" STRING_COPY_FILE " %d file copiati\n" STRING_DELETE_WIPE "resi illeggibili" STRING_FOR_ERROR "variabile non valida." Index: base/shell/cmd/lang/ja-JP.rc =================================================================== --- base/shell/cmd/lang/ja-JP.rc (revision 65840) +++ base/shell/cmd/lang/ja-JP.rc (working copy) @@ -530,7 +530,7 @@ STRING_REPLACE_ERROR7 "Extended Error 32\n" STRING_REACTOS_VERSION "ReactOS Operating System [Version %s-%s]\n" STRING_CMD_SHELLINFO "\nReactOS Command Line Interpreter\nVersion %s %s" - STRING_VERSION_RUNVER " running on %s" + STRING_VERSION_RUNVER "%s [Version %d.%d.%d] %s" STRING_COPY_FILE " %d 個のファイルがコピーされました\n" STRING_DELETE_WIPE "完全に消去されました。" STRING_FOR_ERROR "無効な変数が指定されました。" Index: base/shell/cmd/lang/no-NO.rc =================================================================== --- base/shell/cmd/lang/no-NO.rc (revision 65840) +++ base/shell/cmd/lang/no-NO.rc (working copy) @@ -521,7 +521,7 @@ STRING_REPLACE_ERROR7 "Extended Error 32\n" STRING_REACTOS_VERSION "ReactOS Operativsystem [Versjon %s-%s]\n" STRING_CMD_SHELLINFO "\nReactOS Kommandotolk\nVersjon %s %s" - STRING_VERSION_RUNVER " kjører på %s" + STRING_VERSION_RUNVER "%s [Version %d.%d.%d] %s" STRING_COPY_FILE " %d file(r) kopiert\n" STRING_DELETE_WIPE "slettet" STRING_FOR_ERROR "ugyldig variabel spesifikasjon." Index: base/shell/cmd/lang/pl-PL.rc =================================================================== --- base/shell/cmd/lang/pl-PL.rc (revision 65840) +++ base/shell/cmd/lang/pl-PL.rc (working copy) @@ -527,7 +527,7 @@ STRING_REPLACE_ERROR7 "Extended Error 32 - Błąd współdzielenia\n" STRING_REACTOS_VERSION "ReactOS Operating System [Version %s-%s]\n" STRING_CMD_SHELLINFO "\nInterpreter linii poleceń ReactOS\nVersion %s %s" - STRING_VERSION_RUNVER " działający na %s" + STRING_VERSION_RUNVER "%s [Version %d.%d.%d] %s" STRING_COPY_FILE " %d plik(ów) skopiowano\n" STRING_DELETE_WIPE "skasowano" STRING_FOR_ERROR "złe określenie zmiennej." Index: base/shell/cmd/lang/ro-RO.rc =================================================================== --- base/shell/cmd/lang/ro-RO.rc (revision 65840) +++ base/shell/cmd/lang/ro-RO.rc (working copy) @@ -560,7 +560,7 @@ STRING_REPLACE_ERROR7 "Eroare Extinsă 32\n" STRING_REACTOS_VERSION "ReactOS [Versiunea %s-%s]\n" STRING_CMD_SHELLINFO "\nInterpretorul de comenzi ReactOS\nVersiunea %s %s" - STRING_VERSION_RUNVER " operând pe %s" + STRING_VERSION_RUNVER "%s [Version %d.%d.%d] %s" STRING_COPY_FILE " %d fișier(e) copiat(e)\n" STRING_DELETE_WIPE "șters" STRING_FOR_ERROR "specificație de variabilă eronată." Index: base/shell/cmd/lang/ru-RU.rc =================================================================== --- base/shell/cmd/lang/ru-RU.rc (revision 65840) +++ base/shell/cmd/lang/ru-RU.rc (working copy) @@ -532,7 +532,7 @@ STRING_REPLACE_ERROR7 "Расширенная ошибка 32\n" STRING_REACTOS_VERSION "Операционная система ReactOS [Версия %s-%s]\n" STRING_CMD_SHELLINFO "\nИнтерпретатор командной строки ReactOS\nВерсия %s %s" - STRING_VERSION_RUNVER " запущен на %s" + STRING_VERSION_RUNVER "%s [Version %d.%d.%d] %s" STRING_COPY_FILE " %d файл(ов) скопировано\n" STRING_DELETE_WIPE "очищено" STRING_FOR_ERROR "неправильное задание переменной." Index: base/shell/cmd/lang/sk-SK.rc =================================================================== --- base/shell/cmd/lang/sk-SK.rc (revision 65840) +++ base/shell/cmd/lang/sk-SK.rc (working copy) @@ -529,7 +529,7 @@ STRING_REPLACE_ERROR7 "Extended Error 32\n" STRING_REACTOS_VERSION "Operačný systém ReactOS [Verzia %s-%s]\n" STRING_CMD_SHELLINFO "\nInterpréter príkazového riadku systému ReactOS\nVerzia %s %s" - STRING_VERSION_RUNVER " running on %s" + STRING_VERSION_RUNVER "%s [Version %d.%d.%d] %s" STRING_COPY_FILE " %d súbor(ov) skopírovaný(ch)\n" STRING_DELETE_WIPE "wiped" STRING_FOR_ERROR "bad variable specification." Index: base/shell/cmd/lang/sq-AL.rc =================================================================== --- base/shell/cmd/lang/sq-AL.rc (revision 65840) +++ base/shell/cmd/lang/sq-AL.rc (working copy) @@ -527,7 +527,7 @@ STRING_REPLACE_ERROR7 "Error i zgjatur 32\n" STRING_REACTOS_VERSION "Sistemi Operativ ReactOS [Versioni %s-%s]\n" STRING_CMD_SHELLINFO "\nReactOS Interpretuesi i komandave\nVersioni %s %s" - STRING_VERSION_RUNVER " funksionon në %s" + STRING_VERSION_RUNVER "%s [Version %d.%d.%d] %s" STRING_COPY_FILE " %d file(s) copied\n" STRING_DELETE_WIPE "spastruar" STRING_FOR_ERROR "specifikimi i varibleve i keq." Index: base/shell/cmd/lang/sv-SE.rc =================================================================== --- base/shell/cmd/lang/sv-SE.rc (revision 65840) +++ base/shell/cmd/lang/sv-SE.rc (working copy) @@ -521,7 +521,7 @@ STRING_REPLACE_ERROR7 "Extended Error 32\n" STRING_REACTOS_VERSION "ReactOS Operativsystem [Versjon %s-%s]\n" STRING_CMD_SHELLINFO "\nReactOS Kommandotolk\nVersjon %s %s" - STRING_VERSION_RUNVER " körs på %s" + STRING_VERSION_RUNVER "%s [Version %d.%d.%d] %s" STRING_COPY_FILE " %d file(r) kopiert\n" STRING_DELETE_WIPE "slettet" STRING_FOR_ERROR "ugyldig variabel spesifikasjon." Index: base/shell/cmd/lang/uk-UA.rc =================================================================== --- base/shell/cmd/lang/uk-UA.rc (revision 65840) +++ base/shell/cmd/lang/uk-UA.rc (working copy) @@ -533,7 +533,7 @@ STRING_REPLACE_ERROR7 "Розширена помилка 32\n" STRING_REACTOS_VERSION "Операцiйна Система ReactOS [Версiя %s-%s]\n" STRING_CMD_SHELLINFO "\nIнтерпретатор командного рядка ReactOS\nVersion %s %s" - STRING_VERSION_RUNVER " запущений на %s" + STRING_VERSION_RUNVER "%s [Version %d.%d.%d] %s" STRING_COPY_FILE " %d файл(iв) скопiйовано\n" STRING_DELETE_WIPE "витерто" STRING_FOR_ERROR "невiрна специфiкацiя змiнної." Index: base/shell/cmd/lang/zh-CN.rc =================================================================== --- base/shell/cmd/lang/zh-CN.rc (revision 65840) +++ base/shell/cmd/lang/zh-CN.rc (working copy) @@ -492,7 +492,7 @@ STRING_REPLACE_ERROR7 "扩展错误 32\n" STRING_REACTOS_VERSION "ReactOS 操作系统 [版本 %s-%s]\n" STRING_CMD_SHELLINFO "\nReactOS 命令行解释器\n版本 %s %s" - STRING_VERSION_RUNVER " 在 %s 上运行" + STRING_VERSION_RUNVER "%s [Version %d.%d.%d] %s" STRING_COPY_FILE " %d 个文件已复制\n" STRING_DELETE_WIPE "已擦除" STRING_FOR_ERROR "无效的变量指定。" Index: base/shell/cmd/prompt.c =================================================================== --- base/shell/cmd/prompt.c (revision 65840) +++ base/shell/cmd/prompt.c (working copy) @@ -198,22 +198,7 @@ break; case _T('V'): - switch (osvi.dwPlatformId) - { - case VER_PLATFORM_WIN32_WINDOWS: - if (osvi.dwMajorVersion == 4 && - osvi.dwMinorVersion == 1) - ConOutPrintf(_T("Windows 98")); - else - ConOutPrintf(_T("Windows 95")); - break; - - - case VER_PLATFORM_WIN32_NT: - ConOutPrintf(_T("Windows NT Version %lu.%lu"), - osvi.dwMajorVersion, osvi.dwMinorVersion); - break; - } + PrintOSVersion(); break; case _T('_'): Index: base/shell/cmd/ver.c =================================================================== --- base/shell/cmd/ver.c (revision 65840) +++ base/shell/cmd/ver.c (working copy) @@ -25,31 +25,65 @@ #include #include -VOID ShortVersion (VOID) +VOID PrintOSVersion(VOID) { OSVERSIONINFO VersionInfo; - ConOutResPrintf(STRING_CMD_SHELLINFO, _T(KERNEL_RELEASE_STR), _T(KERNEL_VERSION_BUILD_STR)); + ZeroMemory(&VersionInfo, sizeof(OSVERSIONINFO)); VersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + memset(VersionInfo.szCSDVersion, 0, sizeof(VersionInfo.szCSDVersion)); - memset(VersionInfo.szCSDVersion, 0, sizeof(VersionInfo.szCSDVersion)); if (GetVersionEx(&VersionInfo)) { - LPTSTR RosVersion; - SIZE_T RosVersionLen; + TCHAR osName[50]; + DWORD tmp; + HKEY hKey; + + if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion"), 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS) + { + tmp = sizeof(osName); + if (RegQueryValueEx(hKey, TEXT("ProductName"), NULL, NULL, (LPBYTE)osName, &tmp) == ERROR_SUCCESS) + { + osName[(tmp / sizeof(TCHAR))-1] = '\0'; + } + else + { + /* If the registry key somehow doesn't exist or cannot load, then + at least determine if the version of Windows is either 9x or NT */ + switch(VersionInfo.dwPlatformId) + { + case VER_PLATFORM_WIN32_WINDOWS: + { + if (VersionInfo.dwMajorVersion == 4) + { + if (VersionInfo.dwMinorVersion == 0) + _tcscpy(osName, _T("Windows 95")); + else if(VersionInfo.dwMinorVersion == 1) + _tcscpy(osName, _T("Windows 98")); + else if(VersionInfo.dwMinorVersion == 9) + _tcscpy(osName, _T("Windows ME")); + else + _tcscpy(osName, _T("Windows 9x")); + } + break; + } + case VER_PLATFORM_WIN32_NT: + { + _tcscpy(osName, _T("Windows NT")); + break; + } + } + osName[(tmp / sizeof(TCHAR))-1] = L'\0'; + } - RosVersion = VersionInfo.szCSDVersion + _tcslen(VersionInfo.szCSDVersion) + 1; - RosVersionLen = sizeof(VersionInfo.szCSDVersion) / sizeof(VersionInfo.szCSDVersion[0]) - - (RosVersion - VersionInfo.szCSDVersion); - if (7 <= RosVersionLen && 0 == _tcsnicmp(RosVersion, _T("ReactOS"), 7)) - { - ConOutResPrintf(STRING_VERSION_RUNVER, RosVersion); + /* close the key */ + RegCloseKey(hKey); + + ConOutResPrintf(STRING_VERSION_RUNVER, osName, VersionInfo.dwMajorVersion, VersionInfo.dwMinorVersion, VersionInfo.dwBuildNumber, VersionInfo.szCSDVersion); } } - ConOutChar(_T('\n')); } - #ifdef INCLUDE_CMD_VER /* @@ -67,12 +101,16 @@ return 0; } - ShortVersion(); + ConOutResPrintf(STRING_CMD_SHELLINFO, _T(KERNEL_RELEASE_STR), _T(KERNEL_VERSION_BUILD_STR)); + ConOutChar(_T('\n')); + PrintOSVersion(); + ConOutChar(_T('\n')); + /* Basic copyright notice */ if (param[0] != _T('\0')) { - ConOutPuts(_T("Copyright (C) 1994-1998 Tim Norman and others.\n")); + ConOutPuts(_T("\nCopyright (C) 1994-1998 Tim Norman and others.\n")); ConOutPuts(_T("Copyright (C) 1998-") _T(COPYRIGHT_YEAR) _T(" ReactOS Team\n")); for (i = 0; param[i]; i++)