diff --git a/base/applications/calc/lang/no-NO.rc b/base/applications/calc/lang/no-NO.rc index 168ba2b6d71..f69437c5f25 100644 --- a/base/applications/calc/lang/no-NO.rc +++ b/base/applications/calc/lang/no-NO.rc @@ -405,7 +405,7 @@ BEGIN BEGIN MENUITEM "Emner i hjelp", IDM_HELP_HELP MENUITEM SEPARATOR - MENUITEM "Om Reactos Kalkulator", IDM_HELP_ABOUT + MENUITEM "Om ReactOS Kalkulator", IDM_HELP_ABOUT END END diff --git a/base/applications/calc/lang/sv-SE.rc b/base/applications/calc/lang/sv-SE.rc index bc812a168a3..e91e2e593d9 100644 --- a/base/applications/calc/lang/sv-SE.rc +++ b/base/applications/calc/lang/sv-SE.rc @@ -412,7 +412,7 @@ BEGIN BEGIN MENUITEM "Visa hjälp", IDM_HELP_HELP MENUITEM SEPARATOR - MENUITEM "Om Reactos Kalkylator", IDM_HELP_ABOUT + MENUITEM "Om ReactOS Kalkylator", IDM_HELP_ABOUT END END diff --git a/base/applications/network/net/lang/es-ES.rc b/base/applications/network/net/lang/es-ES.rc index f781994805e..fc3e12f2106 100644 --- a/base/applications/network/net/lang/es-ES.rc +++ b/base/applications/network/net/lang/es-ES.rc @@ -68,59 +68,59 @@ BEGIN HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |\n\ SHARE | START | STATISTICS | STOP | TIME | USE | NET USER | VIEW ]\n" - IDS_ACCOUNTS_FORCE_LOGOFF "Force logoff after" - IDS_ACCOUNTS_LOGOFF_SECONDS "%lu seconds" - IDS_ACCOUNTS_MIN_PW_AGE "Minimum password age (in days)" - IDS_ACCOUNTS_MAX_PW_AGE "Maximum password age (in days)" - IDS_ACCOUNTS_MIN_PW_LENGTH "Minimum password length" - IDS_ACCOUNTS_PW_HIST_LENGTH "Password history length" - IDS_ACCOUNTS_LOCKOUT_THRESHOLD "Lockout threshold" - IDS_ACCOUNTS_LOCKOUT_DURATION "Lockout duration (in minutes)" - IDS_ACCOUNTS_LOCKOUT_WINDOW "Lockout observation window (in minutes)" - IDS_ACCOUNTS_COMPUTER_ROLE "Computer role" - IDS_ACCOUNTS_PRIMARY_SERVER "Primary server" - IDS_ACCOUNTS_BACKUP_SERVER "Backup server" - IDS_ACCOUNTS_STANDALONE_SERVER "Standalone server" - IDS_ACCOUNTS_WORKSTATION "Workstation" + IDS_ACCOUNTS_FORCE_LOGOFF "Forzar cierre de sesión tras" + IDS_ACCOUNTS_LOGOFF_SECONDS "%lu segundos" + IDS_ACCOUNTS_MIN_PW_AGE "Validez mínima de contraseña (en días)" + IDS_ACCOUNTS_MAX_PW_AGE "Validez máxima de contraseña (en días)" + IDS_ACCOUNTS_MIN_PW_LENGTH "Tamaño mínimo de contraseña" + IDS_ACCOUNTS_PW_HIST_LENGTH "Duración del historial de contraseñas" + IDS_ACCOUNTS_LOCKOUT_THRESHOLD "Umbral de bloqueo" + IDS_ACCOUNTS_LOCKOUT_DURATION "Duración del bloqueo (en minutos)" + IDS_ACCOUNTS_LOCKOUT_WINDOW "Ventana de cumpl. de bloqueo (en minutos)" + IDS_ACCOUNTS_COMPUTER_ROLE "Rol del equipo" + IDS_ACCOUNTS_PRIMARY_SERVER "Servidor primario" + IDS_ACCOUNTS_BACKUP_SERVER "Servidor de respaldo" + IDS_ACCOUNTS_STANDALONE_SERVER "Servidor independiente" + IDS_ACCOUNTS_WORKSTATION "Estación de trabajo" - IDS_LOCALGROUP_ALIASES "Aliases for \\\\%s" - IDS_LOCALGROUP_ALIAS_NAME "Alias name" - IDS_LOCALGROUP_COMMENT "Comment" - IDS_LOCALGROUP_MEMBERS "Members" + IDS_LOCALGROUP_ALIASES "Alias de \\\\%s" + IDS_LOCALGROUP_ALIAS_NAME "Nombre del alias" + IDS_LOCALGROUP_COMMENT "Comentario" + IDS_LOCALGROUP_MEMBERS "Miembros" - IDS_USER_ACCOUNTS "User accounts for \\\\%s" - IDS_USER_NAME "User name" - IDS_USER_FULL_NAME "Full name" - IDS_USER_COMMENT "Comment" - IDS_USER_USER_COMMENT "User comment" - IDS_USER_COUNTRY_CODE "Country code" - IDS_USER_ACCOUNT_ACTIVE "Account active" - IDS_USER_ACCOUNT_EXPIRES "Account expires" - IDS_USER_PW_LAST_SET "Password last set" - IDS_USER_PW_EXPIRES "Password expires" - IDS_USER_PW_CHANGEABLE "Password changeable" - IDS_USER_PW_REQUIRED "Password required" - IDS_USER_CHANGE_PW "User may change password" - IDS_USER_WORKSTATIONS "Workstations allowed" - IDS_USER_LOGON_SCRIPT "Logon script" - IDS_USER_PROFILE "User profile" - IDS_USER_HOME_DIR "Home directory" - IDS_USER_LAST_LOGON "Last logon" - IDS_USER_LOGON_HOURS "Logon hours allowed" - IDS_USER_LOCAL_GROUPS "Local group memberships" - IDS_USER_GLOBAL_GROUPS "Global group memberships" + IDS_USER_ACCOUNTS "Cuentas de usuario en \\\\%s" + IDS_USER_NAME "Nombre de usuario" + IDS_USER_FULL_NAME "Nombre completo" + IDS_USER_COMMENT "Comentario" + IDS_USER_USER_COMMENT "Comentario de usuario" + IDS_USER_COUNTRY_CODE "Código de país" + IDS_USER_ACCOUNT_ACTIVE "Cuenta activa" + IDS_USER_ACCOUNT_EXPIRES "Fecha de expiración" + IDS_USER_PW_LAST_SET "La contraseña se cambió por última vez" + IDS_USER_PW_EXPIRES "La contraseña expira" + IDS_USER_PW_CHANGEABLE "La contraseña se puede cambiar" + IDS_USER_PW_REQUIRED "Se necesita contraseña" + IDS_USER_CHANGE_PW "El usuario puede cambiar la contraseña" + IDS_USER_WORKSTATIONS "Se permiten estaciones de trabajo" + IDS_USER_LOGON_SCRIPT "Script de inicio" + IDS_USER_PROFILE "Perfil de usuario" + IDS_USER_HOME_DIR "Carpeta raíz" + IDS_USER_LAST_LOGON "Último inicio de sesión" + IDS_USER_LOGON_HOURS "Horas de inicio permitidas" + IDS_USER_LOCAL_GROUPS "Miembro de los grupos locales" + IDS_USER_GLOBAL_GROUPS "Miembro de los grupos globales" - IDS_USER_ENTER_PASSWORD1 "Enter a new password for the user: " - IDS_USER_ENTER_PASSWORD2 "Enter the password again: " - IDS_USER_NO_PASSWORD_MATCH "The passwords do not match!" + IDS_USER_ENTER_PASSWORD1 "Escriba una contraseña: " + IDS_USER_ENTER_PASSWORD2 "Vuelva a escribir la contraseña: " + IDS_USER_NO_PASSWORD_MATCH "Las contraseñas no coinciden." - IDS_GENERIC_YES "Yes" + IDS_GENERIC_YES "Sí" IDS_GENERIC_NO "No" - IDS_GENERIC_NEVER "Never" - IDS_GENERIC_NONE "None" - IDS_GENERIC_ALL "All" - IDS_GENERIC_LOCKED "Locked" + IDS_GENERIC_NEVER "Nunca" + IDS_GENERIC_NONE "Ninguno" + IDS_GENERIC_ALL "Todos" + IDS_GENERIC_LOCKED "Bloqueado" - IDS_ERROR_OPTION_NOT_SUPPORTED "The %s option is not supported yet.\n" - IDS_ERROR_INVALID_OPTION_VALUE "You entered an invalid value for the %s option.\n" + IDS_ERROR_OPTION_NOT_SUPPORTED "La opción %s todavía no está disponible.\n" + IDS_ERROR_INVALID_OPTION_VALUE "El valor para la opción %s no es válido.\n" END diff --git a/base/applications/rapps/README.ENG b/base/applications/rapps/README.ENG index 754754b2c10..f4b87132000 100644 --- a/base/applications/rapps/README.ENG +++ b/base/applications/rapps/README.ENG @@ -14,7 +14,7 @@ The File Overview: Name = program name RegName = Name in registry Version = 1.1.1 -Licence = GPL +License = GPL Description = Description Size = 10 mb Category = 5 diff --git a/base/applications/rapps/README.RUS b/base/applications/rapps/README.RUS index 0974ef6dffa..e81dabdb766 100644 --- a/base/applications/rapps/README.RUS +++ b/base/applications/rapps/README.RUS @@ -15,7 +15,7 @@ For more information for RAPPS, see: https://www.reactos.org/wiki/RAPPS Name = ; RegName = ; , Version = 1.1.1 ; -Licence = ; +License = ; Description = ; Size = ; Category = 5 ; diff --git a/base/applications/rapps/available.c b/base/applications/rapps/available.c index 22ba9c608f3..e7ca27081f0 100644 --- a/base/applications/rapps/available.c +++ b/base/applications/rapps/available.c @@ -29,7 +29,7 @@ ShowAvailableAppInfo(INT Index) } \ ADD_TEXT(IDS_AINFO_VERSION, Info->szVersion, CFE_BOLD, 0); - ADD_TEXT(IDS_AINFO_LICENCE, Info->szLicence, CFE_BOLD, 0); + ADD_TEXT(IDS_AINFO_LICENSE, Info->szLicense, CFE_BOLD, 0); ADD_TEXT(IDS_AINFO_SIZE, Info->szSize, CFE_BOLD, 0); ADD_TEXT(IDS_AINFO_URLSITE, Info->szUrlSite, CFE_BOLD, CFE_LINK); ADD_TEXT(IDS_AINFO_DESCRIPTION, Info->szDesc, CFE_BOLD, 0); @@ -217,7 +217,7 @@ EnumAvailableApplications(INT EnumType, AVAILENUMPROC lpEnumProc) GET_STRING2(L"RegName", Info.szRegName); GET_STRING2(L"Version", Info.szVersion); - GET_STRING2(L"Licence", Info.szLicence); + GET_STRING2(L"License", Info.szLicense); GET_STRING2(L"Description", Info.szDesc); GET_STRING2(L"Size", Info.szSize); GET_STRING2(L"URLSite", Info.szUrlSite); diff --git a/base/applications/rapps/lang/bg-BG.rc b/base/applications/rapps/lang/bg-BG.rc index 647756a7379..5eac70d6aa0 100644 --- a/base/applications/rapps/lang/bg-BG.rc +++ b/base/applications/rapps/lang/bg-BG.rc @@ -151,7 +151,7 @@ BEGIN IDS_AINFO_DESCRIPTION "\nОписание: " IDS_AINFO_SIZE "\nРазмер: " IDS_AINFO_URLSITE "\nДомашна страница: " - IDS_AINFO_LICENCE "\nРазрешително: " + IDS_AINFO_LICENSE "\nРазрешително: " END STRINGTABLE diff --git a/base/applications/rapps/lang/cs-CZ.rc b/base/applications/rapps/lang/cs-CZ.rc index 3f037363368..168098b70c0 100644 --- a/base/applications/rapps/lang/cs-CZ.rc +++ b/base/applications/rapps/lang/cs-CZ.rc @@ -152,7 +152,7 @@ BEGIN IDS_AINFO_DESCRIPTION "\nPopis: " IDS_AINFO_SIZE "\nVelikost: " IDS_AINFO_URLSITE "\nDomovská stránka: " - IDS_AINFO_LICENCE "\nLicence: " + IDS_AINFO_LICENSE "\nLicense: " END STRINGTABLE diff --git a/base/applications/rapps/lang/de-DE.rc b/base/applications/rapps/lang/de-DE.rc index f32a3762b78..68c0f7a0529 100644 --- a/base/applications/rapps/lang/de-DE.rc +++ b/base/applications/rapps/lang/de-DE.rc @@ -147,7 +147,7 @@ BEGIN IDS_AINFO_DESCRIPTION "\nBeschreibung: " IDS_AINFO_SIZE "\nGröße: " IDS_AINFO_URLSITE "\nHomepage: " - IDS_AINFO_LICENCE "\nLizenz: " + IDS_AINFO_LICENSE "\nLizenz: " END STRINGTABLE diff --git a/base/applications/rapps/lang/en-US.rc b/base/applications/rapps/lang/en-US.rc index 3333836ed8c..53daebbd5c4 100644 --- a/base/applications/rapps/lang/en-US.rc +++ b/base/applications/rapps/lang/en-US.rc @@ -147,7 +147,7 @@ BEGIN IDS_AINFO_DESCRIPTION "\nDescription: " IDS_AINFO_SIZE "\nSize: " IDS_AINFO_URLSITE "\nHome Page: " - IDS_AINFO_LICENCE "\nLicense: " + IDS_AINFO_LICENSE "\nLicense: " END STRINGTABLE diff --git a/base/applications/rapps/lang/es-ES.rc b/base/applications/rapps/lang/es-ES.rc index 622fef74e3e..9e685dca37c 100644 --- a/base/applications/rapps/lang/es-ES.rc +++ b/base/applications/rapps/lang/es-ES.rc @@ -150,7 +150,7 @@ BEGIN IDS_AINFO_DESCRIPTION "\nDescripción: " IDS_AINFO_SIZE "\nTamaño: " IDS_AINFO_URLSITE "\nPágina Web: " - IDS_AINFO_LICENCE "\nLicencia: " + IDS_AINFO_LICENSE "\nLicencia: " END STRINGTABLE diff --git a/base/applications/rapps/lang/fr-FR.rc b/base/applications/rapps/lang/fr-FR.rc index b57643333e3..397e4338af5 100644 --- a/base/applications/rapps/lang/fr-FR.rc +++ b/base/applications/rapps/lang/fr-FR.rc @@ -147,7 +147,7 @@ BEGIN IDS_AINFO_DESCRIPTION "\nDescription: " IDS_AINFO_SIZE "\nTaille : " IDS_AINFO_URLSITE "\nSite internet : " - IDS_AINFO_LICENCE "\nLicence: " + IDS_AINFO_LICENSE "\nLicense: " END STRINGTABLE diff --git a/base/applications/rapps/lang/he-IL.rc b/base/applications/rapps/lang/he-IL.rc index d53d833f77e..d528b8551d8 100644 --- a/base/applications/rapps/lang/he-IL.rc +++ b/base/applications/rapps/lang/he-IL.rc @@ -149,7 +149,7 @@ BEGIN IDS_AINFO_DESCRIPTION "\nתיאור: " IDS_AINFO_SIZE "\nגודל: " IDS_AINFO_URLSITE "\nדף בית: " - IDS_AINFO_LICENCE "\nרישיון: " + IDS_AINFO_LICENSE "\nרישיון: " END STRINGTABLE diff --git a/base/applications/rapps/lang/it-IT.rc b/base/applications/rapps/lang/it-IT.rc index 595b35ea7c9..6d000486fa3 100644 --- a/base/applications/rapps/lang/it-IT.rc +++ b/base/applications/rapps/lang/it-IT.rc @@ -147,7 +147,7 @@ BEGIN IDS_AINFO_DESCRIPTION "\nDescrizione: " IDS_AINFO_SIZE "\nDimensione: " IDS_AINFO_URLSITE "\nHome Page: " - IDS_AINFO_LICENCE "\nLicenza: " + IDS_AINFO_LICENSE "\nLicenza: " END STRINGTABLE diff --git a/base/applications/rapps/lang/ja-JP.rc b/base/applications/rapps/lang/ja-JP.rc index a49e4b91bc4..b63c6207eb4 100644 --- a/base/applications/rapps/lang/ja-JP.rc +++ b/base/applications/rapps/lang/ja-JP.rc @@ -147,7 +147,7 @@ BEGIN IDS_AINFO_DESCRIPTION "\n概要: " IDS_AINFO_SIZE "\nサイズ: " IDS_AINFO_URLSITE "\nホームページ: " - IDS_AINFO_LICENCE "\nライセンス: " + IDS_AINFO_LICENSE "\nライセンス: " END STRINGTABLE diff --git a/base/applications/rapps/lang/no-NO.rc b/base/applications/rapps/lang/no-NO.rc index f93acbee9fc..25bd694472e 100644 --- a/base/applications/rapps/lang/no-NO.rc +++ b/base/applications/rapps/lang/no-NO.rc @@ -147,7 +147,7 @@ BEGIN IDS_AINFO_DESCRIPTION "\nBeskrivelse: " IDS_AINFO_SIZE "\nStørrelse: " IDS_AINFO_URLSITE "\nHjemmeside: " - IDS_AINFO_LICENCE "\nLisens: " + IDS_AINFO_LICENSE "\nLisens: " END STRINGTABLE diff --git a/base/applications/rapps/lang/pl-PL.rc b/base/applications/rapps/lang/pl-PL.rc index 7b1bca716f9..97d032e569d 100644 --- a/base/applications/rapps/lang/pl-PL.rc +++ b/base/applications/rapps/lang/pl-PL.rc @@ -155,7 +155,7 @@ BEGIN IDS_AINFO_DESCRIPTION "\nOpis: " IDS_AINFO_SIZE "\nRozmiar: " IDS_AINFO_URLSITE "\nStrona: " - IDS_AINFO_LICENCE "\nLicencja: " + IDS_AINFO_LICENSE "\nLicencja: " END STRINGTABLE diff --git a/base/applications/rapps/lang/pt-BR.rc b/base/applications/rapps/lang/pt-BR.rc index 1ff56b713bf..21f6d1f5a19 100644 --- a/base/applications/rapps/lang/pt-BR.rc +++ b/base/applications/rapps/lang/pt-BR.rc @@ -149,7 +149,7 @@ BEGIN IDS_AINFO_DESCRIPTION "\nDescrição: " IDS_AINFO_SIZE "\nTamanho: " IDS_AINFO_URLSITE "\nPágina: " - IDS_AINFO_LICENCE "\nLicença: " + IDS_AINFO_LICENSE "\nLicença: " END STRINGTABLE diff --git a/base/applications/rapps/lang/ro-RO.rc b/base/applications/rapps/lang/ro-RO.rc index cec10d4d637..66327701486 100644 --- a/base/applications/rapps/lang/ro-RO.rc +++ b/base/applications/rapps/lang/ro-RO.rc @@ -153,7 +153,7 @@ BEGIN IDS_AINFO_DESCRIPTION "\nDescriere: " IDS_AINFO_SIZE "\nDimensiune: " IDS_AINFO_URLSITE "\nPagină web: " - IDS_AINFO_LICENCE "\nLicență: " + IDS_AINFO_LICENSE "\nLicență: " END STRINGTABLE diff --git a/base/applications/rapps/lang/ru-RU.rc b/base/applications/rapps/lang/ru-RU.rc index afd0cb3500b..4275a76d314 100644 --- a/base/applications/rapps/lang/ru-RU.rc +++ b/base/applications/rapps/lang/ru-RU.rc @@ -147,7 +147,7 @@ BEGIN IDS_AINFO_DESCRIPTION "\nОписание: " IDS_AINFO_SIZE "\nРазмер: " IDS_AINFO_URLSITE "\nДомашняя страница: " - IDS_AINFO_LICENCE "\nЛицензия: " + IDS_AINFO_LICENSE "\nЛицензия: " END STRINGTABLE diff --git a/base/applications/rapps/lang/sk-SK.rc b/base/applications/rapps/lang/sk-SK.rc index cc6e16d1355..1ee9dc620e7 100644 --- a/base/applications/rapps/lang/sk-SK.rc +++ b/base/applications/rapps/lang/sk-SK.rc @@ -152,7 +152,7 @@ BEGIN IDS_AINFO_DESCRIPTION "\nPopis: " IDS_AINFO_SIZE "\nVeľkosť: " IDS_AINFO_URLSITE "\nDomovská stránka: " - IDS_AINFO_LICENCE "\nLicencia: " + IDS_AINFO_LICENSE "\nLicencia: " END STRINGTABLE diff --git a/base/applications/rapps/lang/sq-AL.rc b/base/applications/rapps/lang/sq-AL.rc index 9c0e6d7d76f..814512e9bab 100644 --- a/base/applications/rapps/lang/sq-AL.rc +++ b/base/applications/rapps/lang/sq-AL.rc @@ -151,7 +151,7 @@ BEGIN IDS_AINFO_DESCRIPTION "\nPershkrimi: " IDS_AINFO_SIZE "\nMasa: " IDS_AINFO_URLSITE "\nHome Page: " - IDS_AINFO_LICENCE "\nLicenca: " + IDS_AINFO_LICENSE "\nLicenca: " END STRINGTABLE diff --git a/base/applications/rapps/lang/sv-SE.rc b/base/applications/rapps/lang/sv-SE.rc index 34054adfadd..18e0c5e913d 100644 --- a/base/applications/rapps/lang/sv-SE.rc +++ b/base/applications/rapps/lang/sv-SE.rc @@ -154,7 +154,7 @@ BEGIN IDS_AINFO_DESCRIPTION "\nBeskrivning: " IDS_AINFO_SIZE "\nStorlek: " IDS_AINFO_URLSITE "\nHemsida: " - IDS_AINFO_LICENCE "\nLicens: " + IDS_AINFO_LICENSE "\nLicens: " END STRINGTABLE diff --git a/base/applications/rapps/lang/tr-TR.rc b/base/applications/rapps/lang/tr-TR.rc index b9f4051e519..01c8ce8173a 100644 --- a/base/applications/rapps/lang/tr-TR.rc +++ b/base/applications/rapps/lang/tr-TR.rc @@ -149,7 +149,7 @@ BEGIN IDS_AINFO_DESCRIPTION "\nAçıklaması: " IDS_AINFO_SIZE "\nBüyüklüğü: " IDS_AINFO_URLSITE "\nAna Sayfası: " - IDS_AINFO_LICENCE "\nRuhsatı: " + IDS_AINFO_LICENSE "\nRuhsatı: " END STRINGTABLE diff --git a/base/applications/rapps/lang/uk-UA.rc b/base/applications/rapps/lang/uk-UA.rc index b42b37d3fe2..8c88bcc735f 100644 --- a/base/applications/rapps/lang/uk-UA.rc +++ b/base/applications/rapps/lang/uk-UA.rc @@ -155,7 +155,7 @@ BEGIN IDS_AINFO_DESCRIPTION "\nОпис: " IDS_AINFO_SIZE "\nРозмір: " IDS_AINFO_URLSITE "\nДомашня сторінка: " - IDS_AINFO_LICENCE "\nЛіцензія: " + IDS_AINFO_LICENSE "\nЛіцензія: " END STRINGTABLE diff --git a/base/applications/rapps/lang/zh-CN.rc b/base/applications/rapps/lang/zh-CN.rc index 87f514c39a9..c62fdd26f28 100644 --- a/base/applications/rapps/lang/zh-CN.rc +++ b/base/applications/rapps/lang/zh-CN.rc @@ -149,7 +149,7 @@ BEGIN IDS_AINFO_DESCRIPTION "\n描述:" IDS_AINFO_SIZE "\n大小:" IDS_AINFO_URLSITE "\n主页:" - IDS_AINFO_LICENCE "\n协议:" + IDS_AINFO_LICENSE "\n协议:" END STRINGTABLE diff --git a/base/applications/rapps/lang/zh-TW.rc b/base/applications/rapps/lang/zh-TW.rc index d2f16da7b76..36494401db2 100644 --- a/base/applications/rapps/lang/zh-TW.rc +++ b/base/applications/rapps/lang/zh-TW.rc @@ -149,7 +149,7 @@ BEGIN IDS_AINFO_DESCRIPTION "\n描述:" IDS_AINFO_SIZE "\n大小:" IDS_AINFO_URLSITE "\n主頁:" - IDS_AINFO_LICENCE "\n協議:" + IDS_AINFO_LICENSE "\n協議:" END STRINGTABLE diff --git a/base/applications/rapps/rapps.h b/base/applications/rapps/rapps.h index 853d991eb30..a710f2c118a 100644 --- a/base/applications/rapps/rapps.h +++ b/base/applications/rapps/rapps.h @@ -73,7 +73,7 @@ typedef struct WCHAR szName[MAX_PATH]; WCHAR szRegName[MAX_PATH]; WCHAR szVersion[MAX_PATH]; - WCHAR szLicence[MAX_PATH]; + WCHAR szLicense[MAX_PATH]; WCHAR szDesc[MAX_PATH]; WCHAR szSize[MAX_PATH]; WCHAR szUrlSite[MAX_PATH]; diff --git a/base/applications/rapps/rapps/7zip.txt b/base/applications/rapps/rapps/7zip.txt index 9c630485ca6..8ee49b47036 100644 --- a/base/applications/rapps/rapps/7zip.txt +++ b/base/applications/rapps/rapps/7zip.txt @@ -4,7 +4,7 @@ [Section] Name = 7-Zip Version = 9.34a -Licence = LGPL +License = LGPL Description = A file archiving utility with support for 7zip, zip, tar, rar and many other archive formats. Size = 1.14 MB Category = 12 diff --git a/base/applications/rapps/rapps/abiword.txt b/base/applications/rapps/rapps/abiword.txt index c15f48bb4f1..434344b5381 100644 --- a/base/applications/rapps/rapps/abiword.txt +++ b/base/applications/rapps/rapps/abiword.txt @@ -4,7 +4,7 @@ [Section] Name = AbiWord Version = 2.9.4 -Licence = GPL +License = GPL Description = Word processor. Size = 9.4 MB Category = 6 diff --git a/base/applications/rapps/rapps/abiword26.txt b/base/applications/rapps/rapps/abiword26.txt index a2d9635fb2a..6f94c3210ce 100644 --- a/base/applications/rapps/rapps/abiword26.txt +++ b/base/applications/rapps/rapps/abiword26.txt @@ -4,7 +4,7 @@ [Section] Name = AbiWord Version = 2.6.8 -Licence = GPL +License = GPL Description = Word processor. Size = 5.64 MB Category = 6 diff --git a/base/applications/rapps/rapps/abyss.txt b/base/applications/rapps/rapps/abyss.txt index 6322dab3a62..3e7b296f2c9 100644 --- a/base/applications/rapps/rapps/abyss.txt +++ b/base/applications/rapps/rapps/abyss.txt @@ -4,7 +4,7 @@ [Section] Name = Abyss Web server X1 Version = 2.9.3.5 -Licence = Freeware +License = Freeware Description = Abyss Web Server enables you to host your Web sites on your computer. It supports secure SSL/TLS connections (HTTPS) as well as a wide range of Web technologies. It can also run advanced PHP, Perl, Python, ASP, ASP.NET, and Ruby on Rails Web applications, which can be backed by databases such as MySQL, SQLite, MS SQL Server, MS Access, or Oracle. Size = 2.06 MB Category = 5 @@ -34,13 +34,13 @@ Może także uruchamiać zaawansowane aplikacje internetowe takie jak PHP, Perl, Mogą one zostać oparte o MySQL, SQLite, MS SQL Server, MS Access, lub Oracle. [Section.0418] -Licence = Gratuită +License = Gratuită Description = Abyss Web Server vă permite găzduirea de pagini Web pe calculatorul dumneavoastră. Oferă conexiuni securizate SSL/TLS (HTTPS) și multe alte tehnologii Web. Poate executa aplicații Web avansate ]n PHP, Perl, Python, ASP, ASP.NET și Ruby on Rails, ce pot fi susținute de baze de date ca MySQL, SQLite, MS SQL Server, MS Access, sau Oracle. Size = 2,06 Mo [Section.041f] Name = Abyss Umûmî Ağ Sunucusu X1 -Licence = Ücretsiz +License = Ücretsiz Description = Abyss Umûmî Ağ Sunucusu, bilgisayarınızda Umûmî Ağ sitelerinizin barındırılmasına olanak sağlar. Umûmî Ağ uygulayım biliminin bir geniş yelpâzesiyle birlikte güvenli SSL/TLS bağlantılarını (HTTPS) destekler. Ayrıca MySQL, SQLite, MS SQL Server, MS Access, ve Oracle gibi veri tabanlarıyla desteklenebilen gelişmiş PHP, Perl, Python, ASP, ASP.NET ve Rails üzerinde Ruby Umûmî Ağ uygulamalarını çalıştırabilir. Size = 2,06 MB diff --git a/base/applications/rapps/rapps/ac97forvirtualbox.txt b/base/applications/rapps/rapps/ac97forvirtualbox.txt index dd4b00e476f..6c96dcb0d84 100644 --- a/base/applications/rapps/rapps/ac97forvirtualbox.txt +++ b/base/applications/rapps/rapps/ac97forvirtualbox.txt @@ -4,7 +4,7 @@ [Section] Name = AC97 Driver for VirtualBox Version = 5.10.00.3610 -Licence = Unknown +License = Unknown Description = Unzip in the ReactOS's folder then restart ReactOS twice. Size = 185.5 kB Category = 13 @@ -13,12 +13,12 @@ CDPath = none [Section.0405] Name = Ovladač AC97 pro VirtualBox -Licence = Neznámá +License = Neznámá Description = Rozbalte do složky "ReactOS" a pak ReactOS dvakrát restartujte. [Section.0407] Name = AC97 Treiber für VirtualBox -Licence = Unbekannt +License = Unbekannt Description = Entpacken in das "ReactOS"-Verzeichnis und ReactOS zweimal neustarten. [Section.0410] @@ -28,53 +28,53 @@ Descrizione = Estrarre nella cartella "ReactOS" e poi riavviare ReactOs due volt [Section.040a] Name = Driver AC97 para VirtualBox -Licence = Desconocida +License = Desconocida Description = Descomprimir en la carpeta "Reactos" y reiniciar Reactos dos veces. [Section.040c] Name = Pilote AC97 pour VirtualBox -Licence = Inconnue +License = Inconnue Description = Décompresser dans le dossier "ReactOS" puis redémarrer ReactOS deux fois. Size = 185,5 ko [Section.0410] Name = Driver AC97 per VirtualBox -Licence = Sconosciuta +License = Sconosciuta Description = Decomprimere nella cartella "ReactOS" e riavviare ReactOS. [Section.0413] Name = AC97 Driver voor VirtualBox -Licence = Ongekend +License = Ongekend Description = Pak uit in de "ReactOS" map en start tweemaal opnieuw op. [Section.0415] Name = Sterownik AC97 dla VirtualBox -Licence = Nieznana +License = Nieznana Description = Rozpakuj zawartość w folderze "ReactOS" i dwukrotnie zrestartuj system. [Section.0418] Name = Modul pilot AC97 pentru VirtualBox -Licence = Nespecificată +License = Nespecificată Description = Dezarhivați în dosarul ReactOS apoi reporniți ReactOS de două ori. Size = 185,5 ko [Section.0419] Name = Драйвер AC97 для VirtualBox -Licence = Не указано +License = Не указано Description = Pазархивируйте содержимое в папку "ReactOS", затем дважды перезагрузите систему. [Section.041f] Name = VirtualBox için AC97 Sürücüsü -Licence = Bilinmiyor +License = Bilinmiyor Description = ReactOS'un dizinine çıkartınız, sonra bilgisayarı iki kez yeniden başlatınız. Size = 185,5 KB [Section.0422] Name = Драйвер AC97 для VirtualBox -Licence = Невідома +License = Невідома Description = Pозархівуйте вміст в теку "ReactOS" після чого двічі перезавантажте систему. [Section.0813] Name = AC97 Driver voor VirtualBox -Licence = Ongekend +License = Ongekend Description = Pak uit in de "ReactOS" map en start tweemaal opnieuw op. diff --git a/base/applications/rapps/rapps/audiograbber.txt b/base/applications/rapps/rapps/audiograbber.txt index 5086efde0ab..40900e09225 100644 --- a/base/applications/rapps/rapps/audiograbber.txt +++ b/base/applications/rapps/rapps/audiograbber.txt @@ -4,7 +4,7 @@ [Section] Name = Audio Grabber Version = 1.83 SE -Licence = Freeware +License = Freeware Description = A very good CD Ripper/Audio File Converter. Size = 3.43 MB Category = 1 @@ -35,12 +35,12 @@ Description = Een goede CD Ripper/Audio-bestandsomzetter. Description = Bardzo dobry CD Ripper/konwerter plików audio. [Section.0418] -Licence = Gratuită +License = Gratuită Description = Program de extragere conținuturi CD audio și de conversie a fișierelor de sunet. Size = 3,43 Mo [Section.041f] -Licence = Ücretsiz +License = Ücretsiz Description = Çok iyi bir CD ripleyicisi ve ses kütüğü dönüştürücüsü. Size = 3,43 MB diff --git a/base/applications/rapps/rapps/bittorrent.txt b/base/applications/rapps/rapps/bittorrent.txt index 3cc4ae4bed2..3c752f55217 100644 --- a/base/applications/rapps/rapps/bittorrent.txt +++ b/base/applications/rapps/rapps/bittorrent.txt @@ -4,7 +4,7 @@ [Section] Name = BitTorrent Version = 7.9.2 -Licence = Freeware for non-commercial uses +License = Freeware for non-commercial uses Description = The Original BitTorrent Client. Size = 1.61 MB Category = 5 @@ -13,22 +13,22 @@ URLDownload = http://download-new.utorrent.com/endpoint/bittorrent/os/windows/tr CDPath = none [Section.0407] -Licence = Freeware für nichtkommerzielle Nutzung +License = Freeware für nichtkommerzielle Nutzung Description = Der Original BitTorrent Client. [Section.0410] Description = L'originale Client BitTorrent. [Section.0415] -Licence = Freeware dla użytku niekomercyjnego +License = Freeware dla użytku niekomercyjnego Description = Oryginalny klient BitTorrent. [Section.0418] -Licence = Gratuită pentru uz necomercial +License = Gratuită pentru uz necomercial Description = Originalul client BitTorrent. Size = 1,61 Mo [Section.041f] -Licence = Tecimlik olmayan kullanımlar için ücretsiz. +License = Tecimlik olmayan kullanımlar için ücretsiz. Description = Özgün BitTorrent istemcisi. Size = 1,61 MB diff --git a/base/applications/rapps/rapps/bochs.txt b/base/applications/rapps/rapps/bochs.txt index 584b555be01..b99f6217595 100644 --- a/base/applications/rapps/rapps/bochs.txt +++ b/base/applications/rapps/rapps/bochs.txt @@ -5,7 +5,7 @@ [Section] Name = Bochs Version = 2.6.6 -Licence = LGPL v2 +License = LGPL v2 Description = Bochs is a highly portable open source IA-32 (x86) PC emulator written in C++, that runs on most popular platforms. Size = 4.7 MB Category = 15 @@ -27,6 +27,6 @@ Description = Bochs este un emulator PC (x86) cu surse deschise și portabilitat Size = 4,7 Mo [Section.041f] -Licence = LGPL 2. sürüm +License = LGPL 2. sürüm Description = Bochs; çok taşınabilir, C++ ile yazılmış, en yaygın platformlarda çalışan, açık kaynak bir IA-32 (x86) PC öykünücüsüdür. Size = 4,7 MB diff --git a/base/applications/rapps/rapps/boswars.txt b/base/applications/rapps/rapps/boswars.txt index bc586dafcbb..22a2e1dcb22 100644 --- a/base/applications/rapps/rapps/boswars.txt +++ b/base/applications/rapps/rapps/boswars.txt @@ -5,7 +5,7 @@ [Section] Name = Bos Wars Version = 2.6.1 -Licence = GPL +License = GPL Description = Bos Wars is a futuristic real time strategy game. To start the game, install Microsoft Visual C++ 2008 runtime. Size = 62.3 MB Category = 4 diff --git a/base/applications/rapps/rapps/boundaround.txt b/base/applications/rapps/rapps/boundaround.txt index 67148955a42..b686f39d423 100644 --- a/base/applications/rapps/rapps/boundaround.txt +++ b/base/applications/rapps/rapps/boundaround.txt @@ -3,7 +3,7 @@ [Section] Name = Bound Around (Demo) -Licence = Shareware +License = Shareware Description = A game similar Frozen Fruits. Size = 1.95 MB Category = 4 @@ -19,12 +19,12 @@ Name = Bound Around (Versione di prova) Description = Un gioco simile a Frozen Fruits. [Section.0418] -Licence = Versiune de evaluare +License = Versiune de evaluare Description = Un joc similar jocului Frozen Fruits. Size = 1,95 Mo [Section.041f] Name = Bound Around (Göstermelik) -Licence = Paylaşımlı +License = Paylaşımlı Description = Frozen Fruits benzeri bir oyun. Size = 1,95 MB diff --git a/base/applications/rapps/rapps/christmasbound.txt b/base/applications/rapps/rapps/christmasbound.txt index 575c2babe61..3b75215c1eb 100644 --- a/base/applications/rapps/rapps/christmasbound.txt +++ b/base/applications/rapps/rapps/christmasbound.txt @@ -4,7 +4,7 @@ [Section] Name = Christmas Bound Version = 1.4 -Licence = Freeware +License = Freeware Description = A game similar Frozen Fruits. Size = 892 kB Category = 4 @@ -19,11 +19,11 @@ Description = Ein Spiel, ähnlich zu Frozen Fruits. Description = Un gioco simile a Frozen Fuits. [Section.0418] -Licence = Gratuită +License = Gratuită Description = Un joc similar jocului Frozen Fruits. Size = 892 ko [Section.041f] -Licence = Ücretsiz +License = Ücretsiz Description = Frozen Fruits benzeri bir oyun. Size = 892 KB diff --git a/base/applications/rapps/rapps/chromium.txt b/base/applications/rapps/rapps/chromium.txt index 61b64468d3d..faed55ced7e 100644 --- a/base/applications/rapps/rapps/chromium.txt +++ b/base/applications/rapps/rapps/chromium.txt @@ -5,7 +5,7 @@ [Section] Name = Chromium B.S.U. Version = 0.9.13.2 -Licence = GPL +License = GPL Description = Chromium B.S.U. is an arcade-style, top-scrolling space shooter. Size = 2.3 MB Category = 4 diff --git a/base/applications/rapps/rapps/cnt.txt b/base/applications/rapps/rapps/cnt.txt index 41eb34e4737..e58c8dc9349 100644 --- a/base/applications/rapps/rapps/cnt.txt +++ b/base/applications/rapps/rapps/cnt.txt @@ -4,7 +4,7 @@ [Section] Name = Click-N-Type Virtual Keyboard Version = 3.03 -Licence = Freeware +License = Freeware Description = Freeware virtual keyboard application. Size = 1.3 MB Category = 12 @@ -16,19 +16,19 @@ CDPath = none Description = Kostenlose virtuelle Tastatur. [Section.0410] -Licence = Gratuita +License = Gratuita Description = Applicazione gratuita per la simulazione della tastiera. [Section.0415] Description = Wirtualna klawiatura ekranowa. [Section.0418] -Licence = Gratuită +License = Gratuită Description = Aplicație gratuită pentru simularea unei tastaturi fizice. Size = 1,3 Mo [Section.041f] Name = Click-N-Type Farazî Düğme Takımı -Licence = Ücretsiz +License = Ücretsiz Description = Ücretsiz farazî düğme takımı uygulaması. Size = 1,3 MB diff --git a/base/applications/rapps/rapps/codeblocks.txt b/base/applications/rapps/rapps/codeblocks.txt index 653dd3bceb9..1c47ddd718e 100644 --- a/base/applications/rapps/rapps/codeblocks.txt +++ b/base/applications/rapps/rapps/codeblocks.txt @@ -4,7 +4,7 @@ [Section] Name = Code::Blocks (without compiler) Version = 13.12 -Licence = GPLv3 +License = GPLv3 Description = A open source, cross-platform, powerful IDE. It doesn't contain a compiler. Size = 29.2 MB Category = 7 @@ -25,6 +25,6 @@ Size = 29,2 Mo [Section.041f] Name = Code::Blocks (Derleyicisiz) -Licence = GPL 3. sürüm +License = GPL 3. sürüm Description = Açık kaynak, çapraz platform, güçlü bir tümleşik geliştirme ortamı. Bir derleyici içermez. Size = 29,2 MB diff --git a/base/applications/rapps/rapps/codeblocks_gcc.txt b/base/applications/rapps/rapps/codeblocks_gcc.txt index 63e8b56b21e..3299020c65c 100644 --- a/base/applications/rapps/rapps/codeblocks_gcc.txt +++ b/base/applications/rapps/rapps/codeblocks_gcc.txt @@ -4,7 +4,7 @@ [Section] Name = Code::Blocks TDM-GCC (version 4.7.1, 32 bit) Version = 13.12 -Licence = GPLv3 +License = GPLv3 Description = A open source, cross-platform, powerful IDE. It contains TDM-GCC (version 4.7.1, 32 bit) compiler. Size = 97.8 MB Category = 7 @@ -25,6 +25,6 @@ Size = 97,8 Mo [Section.041f] Name = Code::Blocks TDM-GCC (sürüm 4.7.1, 32 bitlik) -Licence = GPL 3. sürüm +License = GPL 3. sürüm Description = Açık kaynak, çapraz platform, güçlü bir tümleşik geliştirme ortamı. TDM-GCC (sürüm 4.7.1, 32 bitlik) derleyicisini içerir. Size = 97,8 MB diff --git a/base/applications/rapps/rapps/codeblocks_gcc_2.txt b/base/applications/rapps/rapps/codeblocks_gcc_2.txt index e7bf474582f..6f679ad409c 100644 --- a/base/applications/rapps/rapps/codeblocks_gcc_2.txt +++ b/base/applications/rapps/rapps/codeblocks_gcc_2.txt @@ -4,7 +4,7 @@ [Section] Name = Code::Blocks TDM-GCC (version 4.8.1, 32 bit) Version = 13.12 -Licence = GPLv3 +License = GPLv3 Description = A open source, cross-platform, powerful IDE. It contains TDM-GCC (version 4.8.1, 32 bit) compiler. Size = 100 MB Category = 7 @@ -25,6 +25,6 @@ Size = 100 Mo [Section.041f] Name = Code::Blocks TDM-GCC (sürüm 4.8.1, 32 bitlik) -Licence = GPL 3. sürüm +License = GPL 3. sürüm Description = Açık kaynak, çapraz platform, güçlü bir tümleşik geliştirme ortamı. TDM-GCC (sürüm 4.8.1, 32 bitlik) derleyicisini içerir. Size = 100 MB diff --git a/base/applications/rapps/rapps/comctl32ocx.txt b/base/applications/rapps/rapps/comctl32ocx.txt index 21c32cb5be7..53fb30bda69 100644 --- a/base/applications/rapps/rapps/comctl32ocx.txt +++ b/base/applications/rapps/rapps/comctl32ocx.txt @@ -4,7 +4,7 @@ [Section] Name = Microsoft Visual Basic 6.0 Common Controls Version = 6.0 -Licence = Unknown +License = Unknown Description = File needed by some applications. Contains: comctl32.ocx, mscomctl.ocx, advpack.dll. Size = 913.73 kB Category = 14 @@ -13,56 +13,56 @@ URLDownload = http://download.microsoft.com/download/3/a/5/3a5925ac-e779-4b1c-bb CDPath = none [Section.0407] -Licence = Unbekannt +License = Unbekannt Description = Datei wird von einigen Anwendungen benötigt. Beinhaltet: comctl32.ocx, mscomctl.ocx, advpack.dll. Size = 908.73 kB URLSite = http://www.microsoft.com/de-DE/download/details.aspx?id=10019 URLDownload = http://download.microsoft.com/download/c/e/d/ced699fe-7a40-420b-bdd7-10b38caef4c6/VisualBasic6-KB896559-v1-DEU.exe [Section.040a] -Licence = Desconocida +License = Desconocida Description = X es necesario para varias aplicaciones. Incluye: comctl32.ocx, mscomctl.ocx, advpack.dll. Size = 910.23 kB URLSite = http://www.microsoft.com/es-ES/download/details.aspx?id=10019 URLDownload = http://download.microsoft.com/download/9/0/9/90935db7-89ec-4344-a9ea-e6913c03f060/VisualBasic6-KB896559-v1-ESN.exe [Section.040c] -Licence = Inconnue +License = Inconnue Description = Fichier nécessaire pour certaines applications. Contient: comctl32.ocx, mscomctl.ocx, advpack.dll. Size = 911,23 ko URLSite = http://www.microsoft.com/fr-FR/download/details.aspx?id=10019 URLDownload = http://download.microsoft.com/download/4/0/f/40f775ea-b257-410c-8f78-f1f60afe0306/VisualBasic6-KB896559-v1-FRA.exe [Section.0410] -Licence = Sconosciuta +License = Sconosciuta Description = File necessari per alcune applicazioni. Contiene: Comctl32.ocx, mscomctl.ocx, advpack.dll. Size = 909.73 kB URLSite = http://www.microsoft.com/it-IT/download/details.aspx?id=10019 URLDownload = http://download.microsoft.com/download/8/1/b/81b968b9-1d7d-4d0a-aa27-864f4a2e3c23/VisualBasic6-KB896559-v1-ITA.exe [Section.0413] -Licence = Ongekend +License = Ongekend Description = Gebruikt door bepaalde applicaties. Bevat: comctl32.ocx, mscomctl.ocx, advpack.dll. [Section.0415] -Licence = Nieznana +License = Nieznana Description = Microsoft Visual Basic 6.0 Common Controls jest używany przez część aplikacji. Zawiera: comctl32.ocx, mscomctl.ocx, advpack.dll. [Section.0418] -Licence = Nespecificată +License = Nespecificată Description = Modul logic necesar unor aplicații. Conține: comctl32.ocx, mscomctl.ocx, advpack.dll. Size = 913,73 ko [Section.041f] Name = Microsoft Visual Basic 6.0 Ortak Denetimler -Licence = Bilinmiyor +License = Bilinmiyor Description = Birtakım uygulamalar için gerekli kütük. Şunları içerir: comctl32.ocx, mscomctl.ocx, advpack.dll. Size = 913,73 KB [Section.0422] -Licence = Невідома +License = Невідома Description = Файл потрібен декотрим програмам. включає: comctl32.ocx, mscomctl.ocx, advpack.dll. [Section.0813] -Licence = Ongekend +License = Ongekend Description = Gebruikt door bepaalde applicaties. Bevat: comctl32.ocx, mscomctl.ocx, advpack.dll. diff --git a/base/applications/rapps/rapps/devcpp_tdm_gcc_x64.txt b/base/applications/rapps/rapps/devcpp_tdm_gcc_x64.txt index 269f478c2e6..d921d5637d2 100644 --- a/base/applications/rapps/rapps/devcpp_tdm_gcc_x64.txt +++ b/base/applications/rapps/rapps/devcpp_tdm_gcc_x64.txt @@ -4,7 +4,7 @@ [Section] Name = Orwell Dev-C++ TDM GCC x64 Version = 5.8.0 -Licence = GPLv2 +License = GPLv2 Description = A maintained version of Dev-C++. It contains 64 bit TDM-GCC compiler. Size = 44.7 MB Category = 7 @@ -23,6 +23,6 @@ Description = O versiune menținută a Dev-C++. Conține compilatorul TDM-GCC pe Size = 44,7 Mo [Section.041f] -Licence = GPL 2. sürüm +License = GPL 2. sürüm Description = Dev-C++'nın sürdürülen bir sürümü. 64 bitlik TDM-GCC derleyicisi içerir. Size = 44,7 MB diff --git a/base/applications/rapps/rapps/diablo2.txt b/base/applications/rapps/rapps/diablo2.txt index ff7a2ae4dc7..6154c4e626b 100644 --- a/base/applications/rapps/rapps/diablo2.txt +++ b/base/applications/rapps/rapps/diablo2.txt @@ -4,7 +4,7 @@ [Section] Name = Diablo II Version = 1.4 -Licence = Shareware +License = Shareware Description = Diablo 2 Shareware. zeckensack's glide wrapper is required to run it. Size = 131.9 MB Category = 4 @@ -32,12 +32,12 @@ Description = Diablo 2 Shareware. Maakt gebruik van zeckensack's glide wrapper. Description = Diablo 2 Shareware. Do poprawnego działania wymagany jest zainstalowany zeckensacks glide wrapper. [Section.0418] -Licence = Versiune de evaluare +License = Versiune de evaluare Description = Diablo 2 Shareware. Pentru execuție este necesar (pachetul) zeckensack's glide wrapper. Size = 131,9 Mo [Section.041f] -Licence = Paylaşımlı +License = Paylaşımlı Description = Diablo 2 Paylaşımlı. Çalıştırmak için zeckensack'ın glide wrapper'ı gereklidir. Size = 131,9 MB diff --git a/base/applications/rapps/rapps/dosblaster.txt b/base/applications/rapps/rapps/dosblaster.txt index 78bb2809cc3..91991860070 100644 --- a/base/applications/rapps/rapps/dosblaster.txt +++ b/base/applications/rapps/rapps/dosblaster.txt @@ -4,7 +4,7 @@ [Section] Name = DosBlaster Version = 2.5 -Licence = GPL +License = GPL Description = DosBlaster is a shell extension which makes it possible to open any DOS executable in DOSBox via right click. This version contains DOSBox 0.70, but can be simply updated by installing a newer DOSBox into the DosBlaster folders. Size = 2.05 MB Category = 15 diff --git a/base/applications/rapps/rapps/dosbox.txt b/base/applications/rapps/rapps/dosbox.txt index f8ebb4a5309..29578b90232 100644 --- a/base/applications/rapps/rapps/dosbox.txt +++ b/base/applications/rapps/rapps/dosbox.txt @@ -4,7 +4,7 @@ [Section] Name = DOSBox Version = 0.74 -Licence = GPL +License = GPL Description = DOSBox is a DOS emulator. Size = 1.38 MB Category = 15 diff --git a/base/applications/rapps/rapps/doublecommander.txt b/base/applications/rapps/rapps/doublecommander.txt index 0e1d4f76bf3..577c1260696 100644 --- a/base/applications/rapps/rapps/doublecommander.txt +++ b/base/applications/rapps/rapps/doublecommander.txt @@ -4,7 +4,7 @@ [Section] Name = Double Commander Version = 0.5.11 Beta -Licence = GPL +License = GPL Description = Double Commander is an open source file manager with two panels side by side. You need 7-Zip or a similar Utility to extract it. Size = 8.0 MB Category = 12 diff --git a/base/applications/rapps/rapps/dplus.txt b/base/applications/rapps/rapps/dplus.txt index 567e824c3be..01daa4e4fed 100644 --- a/base/applications/rapps/rapps/dplus.txt +++ b/base/applications/rapps/rapps/dplus.txt @@ -4,7 +4,7 @@ [Section] Name = D+ Browser Version = 0.5b -Licence = GPLv3 +License = GPLv3 Description = DPlus is a graphical web browser with an emphasis on security, performance and portability. It is based on Dillo and it is forked from Dillo-Win32 project. Size = 1.36 MB Category = 5 @@ -22,6 +22,6 @@ Size = 1,36 Mo [Section.041f] Name = D+ Tarayıcı -Licence = GPL 3. sürüm +License = GPL 3. sürüm Description = DPlus; güvenlik, başarım ve taşınabilirlik üzerine bir vurguyla, çizgelik bir Umûmî Ağ tarayıcısıdır. Dillo tabanlıdır ve Dillo-Win32 tasarısından çatallanmıştır. Size = 1,36 MB diff --git a/base/applications/rapps/rapps/dvdwritenow.txt b/base/applications/rapps/rapps/dvdwritenow.txt index 541aeeb6256..4a25b875616 100644 --- a/base/applications/rapps/rapps/dvdwritenow.txt +++ b/base/applications/rapps/rapps/dvdwritenow.txt @@ -5,7 +5,7 @@ [Section] Name = DVD Write Now Version = 1.5.12 sp2 -Licence = Freeware +License = Freeware Description = A free direct CD/DVD recording software. Once installed, you can use your CD/DVD RW as USB Flash or removable hard drives. Along with this you can write to CD/DVD RW recorded with UDF filesystem. You can also read UDF disks created with other software (Microsoft DVD−ROMs, RW disks recorded with Ahead InCD). You need a ZIP decompression program to install it. Size = 1.2 MB Category = 12 @@ -23,7 +23,7 @@ Description = Un software di masterizzazione CD/DVD diretto e gratuito. Una volt Description = Darmowe oprogramowanie do nagrywania CD/DVD. Po zainstalowaniu, możesz używać płyty CD RW i DVD RW tak, jak dyski przenośne / pendrive. Możesz także zapisywać (i odczytywać dyski utworzone przez inne programy) dane do dysków RW zapisanych w systemie UDF. Wymaga programu archiwizującego do wypakowania i instalacji. [Section.0418] -Licence = Gratuită +License = Gratuită Description = Un program de înscriere CD/DVD directă. Odată instalat, puteți utiliza CD/DVD ca memorie USB sau disc dur detașabil. Pe lângă aceasta, veți putea scrie pe CD/DVD inscripționate cu sistem de fișiere UDF. Se pot de asemenea citi discuri UDF create cu alte programe. (Microsoft DVD-ROM, discuri RW inscripționate cu Ahead InCD). Este necesar un program de decompresie ZIP pentru a-l instala. Size = 1,2 Mo @@ -32,6 +32,6 @@ Description = DVD Write Now - бесплатная программа для п URLSite = http://dwn.alter.org.ua/ru/ [Section.041f] -Licence = Ücretsiz +License = Ücretsiz Description = Ücretsiz bir doğrudan CD/DVD saklayıcı yazılımı. Kurulduktan sonra CD/DVD RW'lerinizi, USB Flash veyâ çıkarılabilir sâbit disk sürücüleri olarak kullanabilirsiniz. Bununla birlikte UDF kütük dizgesiyle saklanmış CD/DVD RW'lere yazabilirsiniz. Ayrıca Microsoft DVD−ROM'ları, Ahead InCD ile saklanmış RW diskleri gibi başka yazılımlarla oluşturulmuş UDF diskleri okuyabilirsiniz. Kurmak için bir ZIP çıkartma izlencesi gerekir. Size = 1,2 MB diff --git a/base/applications/rapps/rapps/excelview.txt b/base/applications/rapps/rapps/excelview.txt index 8a6ab53f769..b90d9184aaa 100644 --- a/base/applications/rapps/rapps/excelview.txt +++ b/base/applications/rapps/rapps/excelview.txt @@ -4,7 +4,7 @@ [Section] Name = Microsoft Excel Viewer Version = 2007 -Licence = Unknown +License = Unknown Description = Microsoft Excel Viewer Size = 74.14 MB Category = 6 @@ -13,53 +13,53 @@ URLDownload = http://download.microsoft.com/download/e/a/9/ea913c8b-51a7-41b7-86 CDPath = none [Section.0407] -Licence = Unbekannt +License = Unbekannt Size = 51.15 MB URLDownload = http://download.microsoft.com/download/F/8/8/F88CB355-ECAA-4B74-87D6-C05C81D215BF/ExcelViewer.exe [Section.040a] -Licence = Desconocida +License = Desconocida Size = 51.11 MB URLDownload = http://download.microsoft.com/download/5/D/9/5D9E41A4-22CE-4497-BD7D-368883EF92F7/ExcelViewer.exe [Section.040c] -Licence = Inconnue +License = Inconnue Size = 51,13 Mo URLDownload = http://download.microsoft.com/download/0/0/E/00EE9DCF-7BCA-4414-837E-BC3AA23DCC8D/ExcelViewer.exe [Section.0410] -Licence = Sconosciuta +License = Sconosciuta Size = 51.1 MB URLDownload = http://download.microsoft.com/download/0/C/2/0C2ED9D9-6961-47F3-91E0-916E19F330E2/ExcelViewer.exe [Section.0413] -Licence = Ongekend +License = Ongekend Size = 50.97 MB URLDownload = http://download.microsoft.com/download/C/C/6/CC663715-AB58-4CDE-90F1-5A8CF7472500/ExcelViewer.exe [Section.0415] -Licence = Nieznana +License = Nieznana Size = 51.15 MB URLDownload = http://download.microsoft.com/download/5/B/A/5BAB0B5A-706D-444C-B90A-1D97DB4C43A8/ExcelViewer.exe [Section.0418] -Licence = Necunoscută +License = Necunoscută Size = 51,14 Mo URLDownload = http://download.microsoft.com/download/D/D/2/DD28D077-97F3-47C0-9389-0B987918888B/ExcelViewer.exe [Section.041f] Name = Microsoft Excel Görüntüleyici -Licence = Bilinmiyor +License = Bilinmiyor Description = Microsoft Excel Görüntüleyici Size = 51,1 MB URLDownload = http://download.microsoft.com/download/8/5/D/85DCDD24-8237-4334-866D-417F74F37C47/ExcelViewer.exe [Section.0422] -Licence = Невідома +License = Невідома Size = 51.15 MB URLDownload = http://download.microsoft.com/download/7/4/9/749A8D59-A2D5-4A64-99CF-5FF4DD7C5AC6/ExcelViewer.exe [Section.0813] -Licence = Ongekend +License = Ongekend Size = 50.97 MB URLDownload = http://download.microsoft.com/download/C/C/6/CC663715-AB58-4CDE-90F1-5A8CF7472500/ExcelViewer.exe diff --git a/base/applications/rapps/rapps/fap.txt b/base/applications/rapps/rapps/fap.txt index c955ca3536a..5fdf1dfec4b 100644 --- a/base/applications/rapps/rapps/fap.txt +++ b/base/applications/rapps/rapps/fap.txt @@ -4,7 +4,7 @@ [Section] Name = Fox Audio Player Version = 0.10.2 -Licence = GPL +License = GPL Description = Simple and lightweight audio player. Size = 1.9 MB Category = 1 diff --git a/base/applications/rapps/rapps/fira.txt b/base/applications/rapps/rapps/fira.txt index e3b26688642..4c460ca6351 100644 --- a/base/applications/rapps/rapps/fira.txt +++ b/base/applications/rapps/rapps/fira.txt @@ -5,7 +5,7 @@ [Section] Name = Mozilla Fira Font Version = 3.1 -Licence = Unknown +License = Unknown Description = Mozilla Fira Font Pack, Includes Mono and Sans fonts. Unzip in the ReactOS's folder. Size = 1.1 MB Category = 14 @@ -14,24 +14,24 @@ URLDownload = http://svn.reactos.org/packages/Fira.exe CDPath = none [Section.0407] -Licence = Unbekannt +License = Unbekannt Description = Mozilla Fira Font Pack, Beinhaltet Mono und Sans Schriften. Bitte in den "ReactOS" Ordner entpacken. [Section.0410] -Licence = Sconosciuta +License = Sconosciuta Description = Fira Font Pack di Mozilla, Include i font Mono e Sans. Estrare nella cartella "ReactOS". [Section.0415] -Licence = Nieznana +License = Nieznana Description = Pakiet czcionek Mozilla Fira Font, zawiera czcionki Mono i Sans. Wypakuj do folderu "ReactOS". [Section.0418] -Licence = Nespecificată +License = Nespecificată Description = Pachetul Mozilla Fira Font, include fonturile Mono și Sans. Dezarhivați în dosarul ReactOS. Size = 1,1 Mo [Section.041f] Name = Mozilla Fira Yazı Tipi -Licence = Bilinmiyor +License = Bilinmiyor Description = Mozilla Fira Yazı Tipi Paketi, Mono ve Sans yazı tiplerini kapsar. ReactOS'un dizinine çıkartınız. Size = 1,1 MB diff --git a/base/applications/rapps/rapps/firefox.txt b/base/applications/rapps/rapps/firefox.txt index b28e7b76141..254df5ef311 100644 --- a/base/applications/rapps/rapps/firefox.txt +++ b/base/applications/rapps/rapps/firefox.txt @@ -4,7 +4,7 @@ [Section] Name = Mozilla Firefox 33 Version = 33.0 -Licence = MPL/GPL/LGPL +License = MPL/GPL/LGPL Description = The most popular and one of the best free Web Browsers out there. Size = 34.76 MB Category = 5 diff --git a/base/applications/rapps/rapps/firefox2.txt b/base/applications/rapps/rapps/firefox2.txt index d71050a0305..f9ca6564bb0 100644 --- a/base/applications/rapps/rapps/firefox2.txt +++ b/base/applications/rapps/rapps/firefox2.txt @@ -4,7 +4,7 @@ [Section] Name = Mozilla Firefox 2.0 Version = 2.0.0.20 -Licence = MPL/GPL/LGPL +License = MPL/GPL/LGPL Description = The most popular and one of the best free Web Browsers out there. Size = 5.77 MB Category = 5 diff --git a/base/applications/rapps/rapps/firefox3.txt b/base/applications/rapps/rapps/firefox3.txt index 6d1e80c0284..d6ae2e0965c 100644 --- a/base/applications/rapps/rapps/firefox3.txt +++ b/base/applications/rapps/rapps/firefox3.txt @@ -4,7 +4,7 @@ [Section] Name = Mozilla Firefox 3.0 Version = 3.0.19 -Licence = MPL/GPL/LGPL +License = MPL/GPL/LGPL Description = The most popular and one of the best free Web Browsers out there. Size = 7.16 MB Category = 5 diff --git a/base/applications/rapps/rapps/firefox36.txt b/base/applications/rapps/rapps/firefox36.txt index 4dc264b1f8c..05a69229e7f 100644 --- a/base/applications/rapps/rapps/firefox36.txt +++ b/base/applications/rapps/rapps/firefox36.txt @@ -4,7 +4,7 @@ [Section] Name = Mozilla Firefox 3.6 Version = 3.6.28 -Licence = MPL/GPL/LGPL +License = MPL/GPL/LGPL Description = The most popular and one of the best free Web Browsers out there. Size = 8.22 MB Category = 5 diff --git a/base/applications/rapps/rapps/foxit.txt b/base/applications/rapps/rapps/foxit.txt index b977806a173..402217da962 100644 --- a/base/applications/rapps/rapps/foxit.txt +++ b/base/applications/rapps/rapps/foxit.txt @@ -4,7 +4,7 @@ [Section] Name = Foxit Reader Version = 6.2.3.815 -Licence = Freeware +License = Freeware Description = The best PDF reader next to Adobe Reader itself. Size = 36.0 MB Category = 6 @@ -20,7 +20,7 @@ URLDownload = http://cdn01.foxitsoftware.com/pub/foxit/reader/desktop/win/6.x/6. [Section.041f] Version = 6.1.5.0624 -Licence = Ücretsiz +License = Ücretsiz Description = Adobe Okuyucu'nun kendisine yakın en iyi PDF okuyucusu. Size = 36,0 MB URLDownload = http://cdn01.foxitsoftware.com/pub/foxit/reader/desktop/win/6.x/6.1/L10N/FoxitReader615.0624_prom_L10N_Setup.exe diff --git a/base/applications/rapps/rapps/freebasic.txt b/base/applications/rapps/rapps/freebasic.txt index e03b1da9085..0511efbb5c8 100644 --- a/base/applications/rapps/rapps/freebasic.txt +++ b/base/applications/rapps/rapps/freebasic.txt @@ -4,7 +4,7 @@ [Section] Name = FreeBASIC Version = 1.00.0 -Licence = GPL/LGPL +License = GPL/LGPL Description = Open Source BASIC Compiler. The BASIC syntax is compatible to QBASIC. Size = 9.0 MB Category = 7 diff --git a/base/applications/rapps/rapps/ghostscript.txt b/base/applications/rapps/rapps/ghostscript.txt index d2084a35ba5..bc13ebc64d4 100644 --- a/base/applications/rapps/rapps/ghostscript.txt +++ b/base/applications/rapps/rapps/ghostscript.txt @@ -4,7 +4,7 @@ [Section] Name = Ghostscript Version = 9.15 -Licence = AGPL +License = AGPL Description = An open interpreter for the PostScript language and for PDF. Size = 12.65 MB Category = 6 diff --git a/base/applications/rapps/rapps/ghostview.txt b/base/applications/rapps/rapps/ghostview.txt index dd1b63bbaed..3764c74af69 100644 --- a/base/applications/rapps/rapps/ghostview.txt +++ b/base/applications/rapps/rapps/ghostview.txt @@ -4,7 +4,7 @@ [Section] Name = GSview Version = 5.0 -Licence = Aladdin Free Public Licence +License = Aladdin Free Public License Description = A graphical interface for Ghostscript. Size = 1.94 MB Category = 6 @@ -16,11 +16,11 @@ CDPath = none Description = Ein grafisches Interface für Ghostscript. [Section.0418] -Licence = Licență publică gratuită „Aladdin” +License = Licență publică gratuită „Aladdin” Description = O interfață grafică pentru GhostScript. Size = 1,94 Mo [Section.041f] -Licence = Aladdin Özgür Kamu Ruhsatı +License = Aladdin Özgür Kamu Ruhsatı Description = Ghostscript için bir çizgelik arayüz. Size = 1,94 MB diff --git a/base/applications/rapps/rapps/glidewrapzbag.txt b/base/applications/rapps/rapps/glidewrapzbag.txt index 4e8172886f2..765bd7ef434 100644 --- a/base/applications/rapps/rapps/glidewrapzbag.txt +++ b/base/applications/rapps/rapps/glidewrapzbag.txt @@ -4,7 +4,7 @@ [Section] Name = GlidewrapZbag Version = 0.84c -Licence = Freeware +License = Freeware Description = glidewrapper needed to run Diablo 2 on ReactOS. Size = 249.02 kB Category = 3 @@ -32,12 +32,12 @@ Description = glidewrapper is nodig om Diablo2 te gebruiken op ReactOS. Description = glidewrapper jest potrzebny do uruchomienia Diablo2 w ReactOS-ie. [Section.0418] -Licence = Gratuită +License = Gratuită Description = Glide wrapper, necesar pentru a executa Diablo 2 în ReactOS. Size = 249,02 ko [Section.041f] -Licence = Ücretsiz +License = Ücretsiz Description = glidewrapper, ReactOS'ta Diablo 2'yi çalıştırmak için gereklidir. Size = 249,02 KB diff --git a/base/applications/rapps/rapps/globulation2.txt b/base/applications/rapps/rapps/globulation2.txt index 5b540869e51..fa335c3abf1 100644 --- a/base/applications/rapps/rapps/globulation2.txt +++ b/base/applications/rapps/rapps/globulation2.txt @@ -5,7 +5,7 @@ [Section] Name = Globulation2 Version = 0.9.4.4 -Licence = GPL +License = GPL Description = Globulation 2 is a real-time strategy game. The game minimizes gaming micromanagement by automatically assigning tasks to units. Size = 13.5 MB Category = 4 diff --git a/base/applications/rapps/rapps/hover.txt b/base/applications/rapps/rapps/hover.txt index 9627e69f231..74c22100863 100644 --- a/base/applications/rapps/rapps/hover.txt +++ b/base/applications/rapps/rapps/hover.txt @@ -5,7 +5,7 @@ [Section] Name = Hover! Version = 1.0 -Licence = MS EULA +License = MS EULA Description = The classic Hover CTF game which was found on the Windows 95 CD. Size = 6.2 MB Category = 4 diff --git a/base/applications/rapps/rapps/hxd.txt b/base/applications/rapps/rapps/hxd.txt index eb203dad07e..913688bca39 100644 --- a/base/applications/rapps/rapps/hxd.txt +++ b/base/applications/rapps/rapps/hxd.txt @@ -5,7 +5,7 @@ [Section] Name = HxD Version = 1.7.7.0 -Licence = Freeware +License = Freeware Description = A good hex editor. You need 7-Zip or a similar Utility to extract it. Size = 852 kB Category = 7 @@ -26,13 +26,13 @@ Description = Dobry edytor Hex. Do wypakowania pliku potrzebny jest program arch Description = Un buon editor hexadecimale. Necessita 7-Zip o un programma simile per estrarlo. [Section.0418] -Licence = Gratuită +License = Gratuită Description = Un bun editor hexazecimal. E necesar un utilitar de dezarhivare de tip ZIP. Size = 859 ko URLDownload = http://mh-nexus.de/downloads/HxDSetupROM.zip [Section.041f] -Licence = Ücretsiz +License = Ücretsiz Description = İyi bir onaltılık düzenleyici. Çıkartmak için 7-Zip ya da benzeri bir yazılım kullanmanız gerekir. Size = 853 KB URLDownload = http://mh-nexus.de/downloads/HxDSetupTR.zip diff --git a/base/applications/rapps/rapps/indiftpd.txt b/base/applications/rapps/rapps/indiftpd.txt index 09a17d09df1..dace068d5cf 100644 --- a/base/applications/rapps/rapps/indiftpd.txt +++ b/base/applications/rapps/rapps/indiftpd.txt @@ -5,7 +5,7 @@ [Section] Name = IndiFTPD Version = 1.0.9 Beta -Licence = GPL +License = GPL Description = IndiFTPD is a standalone FTP server that functions as a single executable. It is designed for situations when a user does not want to install/configure a server on the system (or does not have permission to do so) and wants to quickly get a server running. Size = 556 kB Category = 5 diff --git a/base/applications/rapps/rapps/inkscape.txt b/base/applications/rapps/rapps/inkscape.txt index 7166a7bd6b0..7e4512f81ec 100644 --- a/base/applications/rapps/rapps/inkscape.txt +++ b/base/applications/rapps/rapps/inkscape.txt @@ -1,7 +1,7 @@ [Section] Name = Inkscape Version = 0.48.5 -Licence = GPL +License = GPL Description = Inkscape is a vector graphics editor licensed under the GNU General Public License. Size = 32.9 MB Category = 3 diff --git a/base/applications/rapps/rapps/irfanview.txt b/base/applications/rapps/rapps/irfanview.txt index a8db2635f8b..fc6374b7391 100644 --- a/base/applications/rapps/rapps/irfanview.txt +++ b/base/applications/rapps/rapps/irfanview.txt @@ -4,7 +4,7 @@ [Section] Name = IrfanView Version = 4.38 -Licence = Freeware (for personal use) +License = Freeware (for personal use) Description = Viewer for all kinds of graphics/audio files/video files. Size = 1.81 MB Category = 3 @@ -13,44 +13,44 @@ URLDownload = http://img.cs.montana.edu/windows/iview438_setup.exe CDPath = none [Section.0407] -Licence = Freeware für nichtkommerzielle Nutzung +License = Freeware für nichtkommerzielle Nutzung Description = Anzeigeprogramm für alle Arten von Grafik-/Audio- oder Video-Dateien. [Section.040a] -Licence = Gratuito (para uso personal) +License = Gratuito (para uso personal) Description = Visor para toda clase de archivos de imagen,audio y video. [Section.040c] -Licence = Gratuit (pour un usage personnel) +License = Gratuit (pour un usage personnel) Description = Visionneur pour tous les types de fichiers graphiques/audio/vidéo. Size = 1,81 Mo [Section.0410] -Licence = Gratuita (per uso personale) +License = Gratuita (per uso personale) Description = Viewer per tutti i tipi di grafici / file audio / file video. [Section.0413] -Licence = Freeware (voor persoonlijk gebruik) +License = Freeware (voor persoonlijk gebruik) Description = Weergave voor allerhande bestandstypes voor audio, video, grafiek. [Section.0415] -Licence = Freeware (dla użytku domowego) +License = Freeware (dla użytku domowego) Description = Przeglądarka dla bardzo wielu typów obrazów, plików audio oraz wideo. [Section.0418] -Licence = Gratuită (pentru uz personal) +License = Gratuită (pentru uz personal) Description = Lector pentru multiple formaturi de fișiere grafice/audio/video. Size = 1,81 Mo [Section.041f] -Licence = Şahsî kullanım için ücretsiz. +License = Şahsî kullanım için ücretsiz. Description = Çizgelerin, ses kütüklerinin, vidyo kütüklerinin tüm türleri için görüntüleyici. Size = 1,81 MB [Section.0422] -Licence = Freeware (для домашнього використання) +License = Freeware (для домашнього використання) Description = Переглядач для всіх видів графічних та аудіо/відео файлів. [Section.0813] -Licence = Freeware (voor persoonlijk gebruik) +License = Freeware (voor persoonlijk gebruik) Description = Weergave voor allerhande bestandstypes voor audio, video, grafiek. diff --git a/base/applications/rapps/rapps/irfanviewplugins.txt b/base/applications/rapps/rapps/irfanviewplugins.txt index 60b134e2fa8..e12b1ad4f12 100644 --- a/base/applications/rapps/rapps/irfanviewplugins.txt +++ b/base/applications/rapps/rapps/irfanviewplugins.txt @@ -4,7 +4,7 @@ [Section] Name = IrfanView Plugins Version = 4.38 -Licence = Freeware (for personal use) +License = Freeware (for personal use) Description = Additional Plugins for supporting more file types. Size = 10.24 MB Category = 3 @@ -13,45 +13,45 @@ URLDownload = http://files.netmediaeurope.com/de-nmi/downloads/2014_download/irf CDPath = none [Section.0407] -Licence = Freeware für nichtkommerzielle Nutzung +License = Freeware für nichtkommerzielle Nutzung Description = Zusätzlich Plugins zur Unterstützung von weiteren Dateitypen. [Section.040a] -Licence = Gratuito (para uso personal) +License = Gratuito (para uso personal) Description = Complementos adicionales para soportar más formatos. [Section.040c] -Licence = Gratuit (pour un usage personnel) +License = Gratuit (pour un usage personnel) Description = Modules additionnels pour supporter plus de types de fichiers. Size = 10,24 Mo [Section.0410] -Licence = Gratuita (per uso personale) +License = Gratuita (per uso personale) Description = Plugins addizionale per il supporto di molti tipi di file. [Section.0413] -Licence = Freeware (voor persoonlijk gebruik) +License = Freeware (voor persoonlijk gebruik) Description = Toegevoegde plugins voor ondersteuning van extra bestandstypes. [Section.0415] -Licence = Freeware (dla użytku domowego) +License = Freeware (dla użytku domowego) Description = Wtyczki otwierające dodatkowe typy plików w Irfanview. [Section.0418] -Licence = Gratuită (pentru uz personal) +License = Gratuită (pentru uz personal) Description = Extensii adiționale pentru a spori numărul de formate de fișiere recunoscute. Size = 10,24 Mo [Section.041f] Name = IrfanView Eklentileri -Licence = Şahsî kullanım için ücretsiz. +License = Şahsî kullanım için ücretsiz. Description = Daha çok kütük türü desteklemek için eklentiler. Size = 10,24 MB [Section.0422] -Licence = Freeware (для домашнього використання) +License = Freeware (для домашнього використання) Description = Додаткові плагіни для підтримки більшої кількості файлових типів. [Section.0813] -Licence = Freeware (voor persoonlijk gebruik) +License = Freeware (voor persoonlijk gebruik) Description = Toegevoegde plugins voor ondersteuning van extra bestandstypes. diff --git a/base/applications/rapps/rapps/kdewin.txt b/base/applications/rapps/rapps/kdewin.txt index 974dcc9ba20..e2fc9e828c8 100644 --- a/base/applications/rapps/rapps/kdewin.txt +++ b/base/applications/rapps/rapps/kdewin.txt @@ -4,7 +4,7 @@ [Section] Name = K Desktop Environment Version = 1.0.0 -Licence = GPL +License = GPL Description = KDE for Windows. Size = 2.16 MB Category = 15 diff --git a/base/applications/rapps/rapps/kyodai.txt b/base/applications/rapps/rapps/kyodai.txt index 5ad84c2b330..fa316cdf25f 100644 --- a/base/applications/rapps/rapps/kyodai.txt +++ b/base/applications/rapps/rapps/kyodai.txt @@ -5,7 +5,7 @@ [Section] Name = Kyodai Mahjongg Version = 21.42 -Licence = Shareware +License = Shareware Description = One of the best Mahjongg Solitaire games out there. Size = 13.8 MB Category = 4 @@ -23,11 +23,11 @@ Description = Uno dei migliori giochi di Mahjongg Solitaire. Description = Jedna z najlepszych gier Mahjongg Solitaire. [Section.0418] -Licence = Versiune de evaluare +License = Versiune de evaluare Description = Unul dintre cele mai bune jocuri de pasiență Mahjongg. Size = 13,8 Mo [Section.041f] -Licence = Paylaşımlı +License = Paylaşımlı Description = Mahjong solitaire oyunları arasında en iyilerinden biri. Size = 13,8 MB diff --git a/base/applications/rapps/rapps/lazaruside.txt b/base/applications/rapps/rapps/lazaruside.txt index 62ea89eceda..66257e15758 100644 --- a/base/applications/rapps/rapps/lazaruside.txt +++ b/base/applications/rapps/rapps/lazaruside.txt @@ -5,7 +5,7 @@ [Section] Name = Lazarus Version = 1.2.6 -Licence = modified LGPL, GPL +License = modified LGPL, GPL Description = A cross-platform integrated development environment (IDE) that lets you create visual (GUI) and non-visual Object Pascal programs, and uses the Free Pascal compiler to generate your executable. Size = 107 MB Category = 7 @@ -23,10 +23,10 @@ Description = Wielopratformowe zintegrowane środowisko programistyczne (IDE) kt Description = Un ambiente di sviluppo integrato (IDE) cross-platform che consente di creare interfacce grafiche (GUI) e programmi non visivi Object Pascal, e utilizza il compilatore Free Pascal per generare l'eseguibile. [Section.0418] -Licence = GPL, LGPL modificată +License = GPL, LGPL modificată Description = Un mediu integrat de dezvoltare (IDE) multi-platformă care vă permite crearea de programe Object Pascal, atât vizuale (GUI) cât și ne-vizuale, și utilizează compilatorul Free Pascal pentru a genera executabile. Size = 107 Mo [Section.041f] -Licence = Değiştirilmiş LGPL, GPL +License = Değiştirilmiş LGPL, GPL Description = Görmelik (GUI) ve görmelik olmayan Object Pascal izlenceleri oluşturmanızı sağlayan, çalıştırılabilir kütüğünüzü oluşturmak için Free Pascal derleyicisini kullanan bir çapraz platform bir tümleşik geliştirme ortamı (IDE). diff --git a/base/applications/rapps/rapps/lbreakout2.txt b/base/applications/rapps/rapps/lbreakout2.txt index 07d017b615b..51c77f3493a 100644 --- a/base/applications/rapps/rapps/lbreakout2.txt +++ b/base/applications/rapps/rapps/lbreakout2.txt @@ -4,7 +4,7 @@ [Section] Name = LBreakout2 Version = 2.4.1 -Licence = GPL +License = GPL Description = Breakout Clone using SDL libs. Size = 3.03 MB Category = 4 diff --git a/base/applications/rapps/rapps/lgeneral.txt b/base/applications/rapps/rapps/lgeneral.txt index 96dde00be75..c3461233416 100644 --- a/base/applications/rapps/rapps/lgeneral.txt +++ b/base/applications/rapps/rapps/lgeneral.txt @@ -4,7 +4,7 @@ [Section] Name = LGeneral Version = 1.1 -Licence = GPL +License = GPL Description = Panzer General Clone using SDL libs. Size = 1.92 MB Category = 4 diff --git a/base/applications/rapps/rapps/librecad.txt b/base/applications/rapps/rapps/librecad.txt index b81ac0fc4c0..12cef97fdc0 100644 --- a/base/applications/rapps/rapps/librecad.txt +++ b/base/applications/rapps/rapps/librecad.txt @@ -4,7 +4,7 @@ [Section] Name = LibreCAD Version = 2.0.6 -Licence = GPLv2 +License = GPLv2 Description = LibreCAD is a free and open source 2D-CAD application for Windows, Linux and OS X. Size = 28.7 MB Category = 3 @@ -16,6 +16,6 @@ CDPath = none Description = LibreCAD ist ein kostenloses und quelloffenes 2D-CAD Programm für Windows, Linux und OS X. [Section.041f] -Licence = GPL 2. sürüm +License = GPL 2. sürüm Description = LibreCAD; Windows, Linux ve OS X için özgür ve açık kaynak bir 2 boyutlu CAD uygulamasıdır. Size = 28,7 MB diff --git a/base/applications/rapps/rapps/libreoffice.txt b/base/applications/rapps/rapps/libreoffice.txt index c3e32d9cd5d..67e1df78d82 100644 --- a/base/applications/rapps/rapps/libreoffice.txt +++ b/base/applications/rapps/rapps/libreoffice.txt @@ -4,7 +4,7 @@ [Section] Name = LibreOffice Version = 4.3.4 -Licence = LGPL +License = LGPL Description = A powerful and open source office suite. It has been forked from OpenOffice. Size = 215.23 MB Category = 6 diff --git a/base/applications/rapps/rapps/libreofficehelp.txt b/base/applications/rapps/rapps/libreofficehelp.txt index 59e540ea92e..f4ba28944d3 100644 --- a/base/applications/rapps/rapps/libreofficehelp.txt +++ b/base/applications/rapps/rapps/libreofficehelp.txt @@ -4,7 +4,7 @@ [Section] Name = LibreOffice Help Pack Version = For LibreOffice 4.3.4 -Licence = GPLv3 +License = GPLv3 Description = Offline help content of LibreOffice. Size = 5.06 MB Category = 6 @@ -22,7 +22,7 @@ URLDownload = http://download.documentfoundation.org/libreoffice/stable/4.3.4/wi [Section.041f] Name = LibreOffice Yardım Paketi Version = LibreOffice 4.3.4 için -Licence = GPL 3. sürüm +License = GPL 3. sürüm Description = LibreOffice'in çevrim dışı yardım içeriği. Size = 6,79 MB URLDownload = http://download.documentfoundation.org/libreoffice/stable/4.3.4/win/x86/LibreOffice_4.3.4_Win_x86_helppack_tr.msi diff --git a/base/applications/rapps/rapps/lmarbles.txt b/base/applications/rapps/rapps/lmarbles.txt index 9812d030f25..48ae2c45a15 100644 --- a/base/applications/rapps/rapps/lmarbles.txt +++ b/base/applications/rapps/rapps/lmarbles.txt @@ -4,7 +4,7 @@ [Section] Name = LMarbles Version = 1.0.6 -Licence = GPL +License = GPL Description = Atomix Clone using SDL libs. Size = 1.39 MB Category = 4 diff --git a/base/applications/rapps/rapps/mcwin32.txt b/base/applications/rapps/rapps/mcwin32.txt index f244ccb07e7..52b1e00d7e7 100644 --- a/base/applications/rapps/rapps/mcwin32.txt +++ b/base/applications/rapps/rapps/mcwin32.txt @@ -4,7 +4,7 @@ [Section] Name = Midnight Commander for Windows Version = Build 185 (4.8.12) -Licence = GPLv3 +License = GPLv3 Description = 32-bit Windows port of GNU Midnight Commander. Size = 2.35 MB Category = 12 @@ -15,12 +15,12 @@ CDPath = none [Section.0410] Name = Midnight Commander per Windows Version = Revisione 185 (4.8.12) -Licence = GPL versione 3 +License = GPL versione 3 Description = Un porting Windows 32bit di Midnight Commander. [Section.0415] Name = Midnight Commander dla Windows -Licence = GPL wersja 3 +License = GPL wersja 3 Description = 32-bitowy port GNU Midnight Commander dla Windows. [Section.0418] @@ -32,6 +32,6 @@ Size = 2,35 Mo [Section.041f] Name = Midnight Commander (Windows için) Version = Yapı 185 (4.8.12) -Licence = GPL 3. sürüm +License = GPL 3. sürüm Description = GNU Midnight Commander'ın 32 bitlik Windows uyarlamasıdır. Size = 2,35 MB diff --git a/base/applications/rapps/rapps/mfc40.txt b/base/applications/rapps/rapps/mfc40.txt index 84e80226bf2..295069caee5 100644 --- a/base/applications/rapps/rapps/mfc40.txt +++ b/base/applications/rapps/rapps/mfc40.txt @@ -4,7 +4,7 @@ [Section] Name = OLE Viewer and Microsoft Foundation Classes version 4 Version = 4.0 -Licence = Unknown +License = Unknown Description = MFC 4 is needed by some applications. Contains: mfc40.dll, msvcrt40.dll. Size = 865.04 kB Category = 14 @@ -14,49 +14,49 @@ CDPath = none [Section.0407] Name = OLE Anzeige und Microsoft Foundation Classes Version 4 -Licence = Unbekannt +License = Unbekannt Description = MFC 4 wird von einigen Anwendungen benötigt. Beinhaltet: mfc40.dll, msvcrt40.dll. [Section.040a] Name = Visor OLE y Microsoft Foundation Classes Version 4 -Licence = Desconocida +License = Desconocida Description = MFC 4 es necesario para varias aplicaciones. Incluye: mfc40.dll, msvcrt40.dll. [Section.040c] Name = Visionneur OLE et Microsoft Foundation Classes version 4 -Licence = Inconnue +License = Inconnue Description = MFC 4 est nécessaire pour certaines applications. Contient: mfc40.dll, msvcrt40.dll. Size = 865,04 ko [Section.0410] -Licence = Sconosciuta +License = Sconosciuta Description = MFC 4 è necessario per alcune applicazioni. Contiene: mfc40.dll, msvcrt40.dll. [Section.0413] -Licence = Ongekend +License = Ongekend Description = MFC 4 is nodig voor bepaalde applicaties. Bevat: mfc40.dll, msvcrt40.dll. [Section.0415] Name = Przeglądarka OLE oraz MFC (Microsoft Foundation Classes) wersja 4 -Licence = Nieznana +License = Nieznana Description = Biblioteka MFC 4 jest używana przez część aplikacji. Zawiera: mfc40.dll, msvcrt40.dll. [Section.0418] -Licence = Nespecificată +License = Nespecificată Description = MFC 4 este necesară unor aplicații. Conține: mfc40.dll, msvcrt40.dll. Size = 865,04 ko [Section.041f] Name = OLE Görüntüleyicisi ve Microsoft Ana Sınıfları (MFC) Sürüm 4 -Licence = Bilinmiyor +License = Bilinmiyor Description = MFC 4, birtakım uygulamalar için gereklidir. Şunları içerir: mfc40.dll, msvcrt40.dll. Size = 865,04 KB [Section.0422] Name = Переглядач OLE та MFC (Microsoft Foundation Classes) версія 4 -Licence = Невідома +License = Невідома Description = Бібліотека MFC 4 необхідна декотрим програмам. включає: mfc40.dll, msvcrt40.dll. [Section.0813] -Licence = Ongekend +License = Ongekend Description = MFC 4 is nodig voor bepaalde applicaties. Bevat: mfc40.dll, msvcrt40.dll. diff --git a/base/applications/rapps/rapps/miktex.txt b/base/applications/rapps/rapps/miktex.txt index fed0de25006..61fbc815ddc 100644 --- a/base/applications/rapps/rapps/miktex.txt +++ b/base/applications/rapps/rapps/miktex.txt @@ -4,7 +4,7 @@ [Section] Name = MikTEX 2.9 Version = 2.9.5105 -Licence = Freeware +License = Freeware Description = MiKTeX is an up-to-date implementation of TeX/LaTeX and related programs for Windows. Size = 163.18 MB Category = 6 @@ -16,11 +16,11 @@ CDPath = none Description = MiKTeX ist eine aktuelle Implementierung von TeX/LaTeX und zugehöriger Programme für Windows. [Section.0418] -Licence = Gratuită +License = Gratuită Description = MikTEX este o implementare actualizată de TeX/LaTeX și aprogramelor aferente. Size = 163,18 Mo [Section.041f] -Licence = Ücretsiz +License = Ücretsiz Description = MiKTeX, Windows için, TeX'in, LaTeX'in ve ilişkili izlencelerin bir şimdiki uygulaması. Size = 163,18 MB diff --git a/base/applications/rapps/rapps/mirandaim.txt b/base/applications/rapps/rapps/mirandaim.txt index 86ea0a92cba..32d3c75b661 100644 --- a/base/applications/rapps/rapps/mirandaim.txt +++ b/base/applications/rapps/rapps/mirandaim.txt @@ -4,7 +4,7 @@ [Section] Name = Miranda IM Version = 0.10.24 -Licence = GPL +License = GPL Description = Open source multiprotocol instant messaging application - May not work completely. Size = 3.77 MB Category = 5 diff --git a/base/applications/rapps/rapps/mirc.txt b/base/applications/rapps/rapps/mirc.txt index 4a36a8e67ab..05d8d343c69 100644 --- a/base/applications/rapps/rapps/mirc.txt +++ b/base/applications/rapps/rapps/mirc.txt @@ -4,7 +4,7 @@ [Section] Name = mIRC 7 Version = 7.36 -Licence = Shareware +License = Shareware Description = The most popular client for the Internet Relay Chat (IRC). Size = 2.17 MB Category = 5 @@ -32,12 +32,12 @@ Description = De meest populaire afnemer voor Internet Relay Chat (IRC). Description = Najpopularniejszy klient IRC (Internet Relay Chat). [Section.0418] -Licence = Versiune de evaluare +License = Versiune de evaluare Description = Cel mai popular client de IRC (Internet Relay Chat). Size = 2,17 Mo [Section.041f] -Licence = Paylaşımlı +License = Paylaşımlı Description = Umûmî Ağ Eş Zamanlı Söyleşi (IRC) için en çok tutulan istemci. Size = 2,17 MB diff --git a/base/applications/rapps/rapps/mirc6.txt b/base/applications/rapps/rapps/mirc6.txt index 70327578535..bf1528b4c2b 100644 --- a/base/applications/rapps/rapps/mirc6.txt +++ b/base/applications/rapps/rapps/mirc6.txt @@ -4,7 +4,7 @@ [Section] Name = mIRC 6 Version = 6.35 -Licence = Shareware +License = Shareware Description = The most popular client for the Internet Relay Chat (IRC). Size = 1.67 MB Category = 5 @@ -32,12 +32,12 @@ Description = De meest populaire afnemer voor Internet Relay Chat (IRC). Description = Najpopularniejszy klient IRC (Internet Relay Chat). [Section.0418] -Licence = Versiune de evaluare +License = Versiune de evaluare Description = Cel mai popular client de IRC (Internet Relay Chat). Size = 1,67 Mo [Section.041f] -Licence = Paylaşımlı +License = Paylaşımlı Description = Umûmî Ağ Eş Zamanlı Söyleşi (IRC) için en çok tutulan istemci. Size = 1,67 MB diff --git a/base/applications/rapps/rapps/mono2.txt b/base/applications/rapps/rapps/mono2.txt index 27b8ab88052..8113e192dd1 100644 --- a/base/applications/rapps/rapps/mono2.txt +++ b/base/applications/rapps/rapps/mono2.txt @@ -4,7 +4,7 @@ [Section] Name = Mono .NET Development Framework Version = 3.2.3 -Licence = Unknown +License = Unknown Description = Open-source .NET Framework. Size = 98.49 MB Category = 14 @@ -29,13 +29,13 @@ Description = Versione Open-source di .NET Framework. Description = Pakiet Mono .NET Framework dla Programistów. [Section.0418] -Licence = Nespecificată +License = Nespecificată Description = Platformă .NET (cu surse deschise). Size = 98,49 Mo [Section.041f] Name = Mono .NET Geliştirme Çatısı -Licence = Bilinmiyor +License = Bilinmiyor Description = Açık kaynak .NET Çatısı. Size = 98,49 MB diff --git a/base/applications/rapps/rapps/mpc.txt b/base/applications/rapps/rapps/mpc.txt index 427ecbbd3b5..7165e9ae3db 100644 --- a/base/applications/rapps/rapps/mpc.txt +++ b/base/applications/rapps/rapps/mpc.txt @@ -4,7 +4,7 @@ [Section] Name = Media Player Classic Home Cinema Version = 1.7.7 -Licence = GPL +License = GPL Description = A media player. Size = 10.7 MB Category = 2 diff --git a/base/applications/rapps/rapps/mpxplay.txt b/base/applications/rapps/rapps/mpxplay.txt index 00f9e566c76..e155a03e72c 100644 --- a/base/applications/rapps/rapps/mpxplay.txt +++ b/base/applications/rapps/rapps/mpxplay.txt @@ -5,7 +5,7 @@ [Section] Name = Mpxplay Version = 1.60b -Licence = GPL +License = GPL Description = Mpxplay is a 32-bit console audio player for Windows. You need 7-Zip or a similar Utility to extract it. Size = 520 kB Category = 1 diff --git a/base/applications/rapps/rapps/msxml3.txt b/base/applications/rapps/rapps/msxml3.txt index 70c46fac930..edb8fe80d84 100644 --- a/base/applications/rapps/rapps/msxml3.txt +++ b/base/applications/rapps/rapps/msxml3.txt @@ -4,7 +4,7 @@ [Section] Name = Microsoft XML 3 Version = 3.0 -Licence = Unknown +License = Unknown Description = MSXML3 is needed for some MSI Installers. Contains: msxml3.dll, msxml3a.dll, msxml3r.dll. Size = 1.85 MB Category = 14 @@ -13,44 +13,44 @@ URLDownload = ftp://ftp.uni-rostock.de/pub/tools/microsoft/XML/US/msxml3.msi CDPath = none [Section.0407] -Licence = Unbekannt +License = Unbekannt Description = MSXML3 wird von einigen MSI Installern benötigt. Beinhaltet: msxml3.dll, msxml3a.dll, msxml3r.dll. [Section.040a] -Licence = Desconocida +License = Desconocida Description = MSXML3 para varios instaladores MSI. Incluye: msxml3.dll, msxml3a.dll, msxml3r.dll. [Section.040c] -Licence = Inconnue +License = Inconnue Description = MSXML3 est nécessaire pour certains installateurs MSI. Contient: msxml3.dll, msxml3a.dll, msxml3r.dll. Size = 1,85 Mo [Section.0410] -Licence = Sconosciuto +License = Sconosciuto Description = MSXML3 è necessario per alcuni installatori MSI. Contiene: msxml3.dll, msxml3a.dll, msxml3r.dll. [Section.0413] -Licence = Ongekend +License = Ongekend Description = MSXML3 is nodig voor bepaalde MSI installaties. Bevat: msxml3.dll, msxml3a.dll, msxml3r.dll. [Section.0415] -Licence = Nieznana +License = Nieznana Description = Niektóre spośród plików instalacyjnych MSI potrzebują parsera MSXML3. Zawiera: msxml3.dll, msxml3a.dll, msxml3r.dll. [Section.0418] -Licence = Nespecificată +License = Nespecificată Description = MSXML3 este necesar unor Instalatori MSI. Conține: msxml3.dll, msxml3a.dll, msxml3r.dll. Size = 1,85 Mo [Section.041f] -Licence = Bilinmiyor +License = Bilinmiyor Description = MSXML3, birtakım Microsoft Yükleyicileri için gereklidir. Şunları içerir: msxml3.dll, msxml3a.dll, msxml3r.dll. Size = 1,85 MB [Section.0422] -Licence = Невідома +License = Невідома Description = MSXML3 необхідна для декотрих MSI інсталяторів. включає: msxml3.dll, msxml3a.dll, msxml3r.dll. [Section.0813] -Licence = Ongekend +License = Ongekend Description = MSXML3 is nodig voor bepaalde MSI installaties. Bevat: msxml3.dll, msxml3a.dll, msxml3r.dll. diff --git a/base/applications/rapps/rapps/net11.txt b/base/applications/rapps/rapps/net11.txt index 6a2cf8f1af1..6f022f089e2 100644 --- a/base/applications/rapps/rapps/net11.txt +++ b/base/applications/rapps/rapps/net11.txt @@ -4,7 +4,7 @@ [Section] Name = Microsoft .NET Framework Version 1.1 Redistributable Package Version = 1.1 -Licence = Unknown +License = Unknown Description = Microsoft .NET Framework Version 1.1 - Redistributable Package. Size = 23.14 MB Category = 14 @@ -43,13 +43,13 @@ URLSite = http://www.microsoft.com/pl-PL/download/details.aspx?id=26 URLDownload = http://download.microsoft.com/download/c/9/f/c9f672f3-c14b-4cff-9671-d419842d792d/dotnetfx.exe [Section.0418] -Licence = Nespecificată +License = Nespecificată Description = Platforma Microsoft .NET versiunea 1.1 - Pachet redistributabil. Size = 23,14 Mo [Section.041f] Name = Microsoft .NET Çatısı Sürüm 1.1 Yeniden Dağıtılabilir Paket -Licence = Bilinmiyor +License = Bilinmiyor Description = Microsoft .NET Çatısı Sürüm 1.1 - Yeniden Dağıtılabilir Paket Size = 23,14 MB URLSite = http://www.microsoft.com/tr-TR/download/details.aspx?id=26 diff --git a/base/applications/rapps/rapps/net20.txt b/base/applications/rapps/rapps/net20.txt index 91e2e775dc0..818b079ad59 100644 --- a/base/applications/rapps/rapps/net20.txt +++ b/base/applications/rapps/rapps/net20.txt @@ -4,7 +4,7 @@ [Section] Name = Microsoft .NET Framework Version 2.0 Redistributable Package Version = 2.0 -Licence = Unknown +License = Unknown Description = Microsoft .NET Framework Version 2.0 - Redistributable Package. Size = 22.42 MB Category = 14 @@ -30,12 +30,12 @@ Size = 22.42 MB Description = Microsoft .NET Framework Wersja 2.0 - Pakiet Dystrybucyjny. [Section.0418] -Licence = Nespecificată +License = Nespecificată Description = Platforma Microsoft .NET versiunea 2.0 - Pachet redistributabl. Size = 22,42 Mo [Section.041f] Name = Microsoft .NET Çatısı Sürüm 2.0 Yeniden Dağıtılabilir Paket -Licence = Bilinmiyor +License = Bilinmiyor Description = Microsoft .NET Çatısı Sürüm 2.0 - Yeniden Dağıtılabilir Paket Size = 22,42 MB diff --git a/base/applications/rapps/rapps/net20sp2.txt b/base/applications/rapps/rapps/net20sp2.txt index f11e5a45963..9db96a245a6 100644 --- a/base/applications/rapps/rapps/net20sp2.txt +++ b/base/applications/rapps/rapps/net20sp2.txt @@ -4,7 +4,7 @@ [Section] Name = Microsoft .NET Framework Version 2.0 Service Pack 2 Version = 2.0SP2 -Licence = Unknown +License = Unknown Description = Microsoft .NET Framework Version 2.0 Service Pack 2. Size = 23.84 MB Category = 14 @@ -35,13 +35,13 @@ Description = Microsoft .NET Framework Wersja 2.0 Service Pack 2. URLSite = http://www.microsoft.com/pl-PL/download/details.aspx?id=1639 [Section.0418] -Licence = Nespecificată +License = Nespecificată Description = Platforma Microsoft .NET versiunea 2.0 - Service Pack 2. Size = 23,84 Mo [Section.041f] Name = Microsoft .NET Çatısı Sürüm 2.0 Hizmet Paketi 2 -Licence = Bilinmiyor +License = Bilinmiyor Description = Microsoft .NET Çatısı Sürüm 2.0 - Hizmet Paketi 2 Size = 23,84 MB URLSite = http://www.microsoft.com/tr-TR/download/details.aspx?id=1639 diff --git a/base/applications/rapps/rapps/nirlauncher.txt b/base/applications/rapps/rapps/nirlauncher.txt index 53a65115b1c..59e3f309f8d 100644 --- a/base/applications/rapps/rapps/nirlauncher.txt +++ b/base/applications/rapps/rapps/nirlauncher.txt @@ -4,7 +4,7 @@ [Section] Name = NirLauncher Version = 1.19.5 -Licence = Freeware +License = Freeware Description = A package of more than 180 utilities for Windows. Size = 20.2 MB Category = 12 @@ -16,5 +16,5 @@ CDPath = none Description = Ein Paket von mehr als 180 Utilities für Windows. [Section.041f] -Licence = Ücretsiz +License = Ücretsiz Description = Windows için 180 araçtan daha çoğunun bir paketi. diff --git a/base/applications/rapps/rapps/npp.txt b/base/applications/rapps/rapps/npp.txt index f6262a7f441..31a701265ad 100644 --- a/base/applications/rapps/rapps/npp.txt +++ b/base/applications/rapps/rapps/npp.txt @@ -4,7 +4,7 @@ [Section] Name = Notepad++ Version = 6.6.9 -Licence = GPL +License = GPL Description = A text editor. Size = 7.58 MB Category = 6 diff --git a/base/applications/rapps/rapps/offbyone.txt b/base/applications/rapps/rapps/offbyone.txt index 5154ff79884..ca4acda950a 100644 --- a/base/applications/rapps/rapps/offbyone.txt +++ b/base/applications/rapps/rapps/offbyone.txt @@ -4,7 +4,7 @@ [Section] Name = Off By One Browser Version = 3.5d -Licence = Freeware +License = Freeware Description = The Off By One Browser is a very small and fast web browser with full HTML 3.2 support. Size = 1010.89 kB Category = 5 @@ -35,13 +35,13 @@ Description = Off By One Browser is een uiterst kleine en snelle web browser met Description = Bardzo mała i szybka przeglądarka internetowa z pełną obsługą HTML 3.2. [Section.0418] -Licence = Gratuită +License = Gratuită Description = Un navigator web foarte mic și rapid compatibil cu HTML 3.2. Size = 1010,89 ko [Section.041f] Name = Off By One Tarayıcı -Licence = Ücretsiz +License = Ücretsiz Description = Off By One Tarayıcı, eksiksiz HTML 3.2 desteğiyle çok küçük ve hızlı bir Umûmî Ağ tarayıcısıdır. Size = 1010,89 KB diff --git a/base/applications/rapps/rapps/openoffice.txt b/base/applications/rapps/rapps/openoffice.txt index 75b6437a9f9..5eb9685711d 100644 --- a/base/applications/rapps/rapps/openoffice.txt +++ b/base/applications/rapps/rapps/openoffice.txt @@ -4,7 +4,7 @@ [Section] Name = OpenOffice 4.1 Version = 4.1.1 -Licence = LGPL +License = LGPL Description = The open source office suite. Size = 140.9 MB Category = 6 diff --git a/base/applications/rapps/rapps/openoffice2.4.txt b/base/applications/rapps/rapps/openoffice2.4.txt index a84fd1ae4aa..0ce0f347730 100644 --- a/base/applications/rapps/rapps/openoffice2.4.txt +++ b/base/applications/rapps/rapps/openoffice2.4.txt @@ -4,7 +4,7 @@ [Section] Name = OpenOffice 2.4 Version = 2.4.3 -Licence = LGPL +License = LGPL Description = The open source office suite. Size = 113 MB Category = 6 diff --git a/base/applications/rapps/rapps/openttd.txt b/base/applications/rapps/rapps/openttd.txt index 69b54088788..01e8f0b74cb 100644 --- a/base/applications/rapps/rapps/openttd.txt +++ b/base/applications/rapps/rapps/openttd.txt @@ -4,7 +4,7 @@ [Section] Name = OpenTTD Version = 1.4.4 -Licence = GPL v2 +License = GPL v2 Description = Open Source clone of the "Transport Tycoon Deluxe" game engine. You need a copy of Transport Tycoon. Size = 7.0 MB Category = 4 @@ -36,7 +36,7 @@ Description = Clona (cu surse deschise a) motorului de joc "Transport Tycoon Del Size = 7,0 Mo [Section.041f] -Licence = GPL 2. sürüm +License = GPL 2. sürüm Description = "Transport Tycoon Deluxe" oyun motorunun açık kaynak taklidi. Transport Tycoon'un bir kopyası gerekir. Size = 7,0 MB diff --git a/base/applications/rapps/rapps/opera.txt b/base/applications/rapps/rapps/opera.txt index f27bf72fa2e..67806735f8d 100644 --- a/base/applications/rapps/rapps/opera.txt +++ b/base/applications/rapps/rapps/opera.txt @@ -4,7 +4,7 @@ [Section] Name = Opera Version = 12.17 -Licence = Freeware +License = Freeware Description = The popular Opera Browser with many advanced features and including a Mail and BitTorrent client. Size = 12.57 MB Category = 5 @@ -35,7 +35,7 @@ Description = De populaire Opera Browser met vele gevorderde mogelijkheden, incl Description = Popularna przeglądarka internetowa z wieloma zaawansowanymi funkcjami, zawierająca klientów: poczty oraz BitTorrent. [Section.0418] -Licence = Gratuită +License = Gratuită Description = Navigatorul popular Opera cu multe funcționalități avansate incluzând poștă electronică și un client de BitTorrent. Size = 12,57 Mo @@ -43,7 +43,7 @@ Size = 12,57 Mo Description = Популярный браузер со многими дополнительными возможностями, включающий клиентов почты и BitTorrent. [Section.041f] -Licence = Ücretsiz +License = Ücretsiz Description = Bir posta ve BitTorrent istemcisini kapsayan birçok gelişmiş husûsiyetle, tutulan Opera Tarayıcı. Size = 12,57 MB diff --git a/base/applications/rapps/rapps/opera9.txt b/base/applications/rapps/rapps/opera9.txt index 74e8511130f..00c9c92c103 100644 --- a/base/applications/rapps/rapps/opera9.txt +++ b/base/applications/rapps/rapps/opera9.txt @@ -4,7 +4,7 @@ [Section] Name = Opera Version = 9.64 -Licence = Freeware +License = Freeware Description = The popular Opera Browser with many advanced features and including a Mail and BitTorrent client. Size = 7.21 MB Category = 5 @@ -35,7 +35,7 @@ Description = De populaire Opera Browser met vele gevorderde mogelijkheden, incl Description = Popularna przeglądarka internetowa z wieloma zaawansowanymi funkcjami, zawierająca klientów: poczty oraz BitTorrent. [Section.0418] -Licence = Gratuită +License = Gratuită Description = Navigatorul popular Opera cu multe funcționalități avansate incluzând poștă electronică și un client de BitTorrent. Size = 7,21 Mo @@ -43,7 +43,7 @@ Size = 7,21 Mo Description = Популярный браузер со многими дополнительными возможностями, включающий клиентов почты и BitTorrent. [Section.041f] -Licence = Ücretsiz +License = Ücretsiz Description = Bir posta ve BitTorrent istemcisini kapsayan birçok gelişmiş husûsiyetle, tutulan Opera Tarayıcı. Size = 7,21 MB diff --git a/base/applications/rapps/rapps/peazip.txt b/base/applications/rapps/rapps/peazip.txt index fcfe24b924e..87be8423bd3 100644 --- a/base/applications/rapps/rapps/peazip.txt +++ b/base/applications/rapps/rapps/peazip.txt @@ -4,7 +4,7 @@ [Section] Name = PeaZip Version = 5.5.0 -Licence = LGPL v3, OpenCandy EULA +License = LGPL v3, OpenCandy EULA Description = PeaZip is a free, cross-platform, open source file and archive manager. It supports over 150 archive formats. Size = 5.9 MB Category = 12 @@ -26,6 +26,6 @@ Description = PeaZip este un gestionar de fișiere și arhive gratuit, multi-pla Size = 5,9 Mo [Section.041f] -Licence = LGPL 3. sürüm, OpenCandy EULA +License = LGPL 3. sürüm, OpenCandy EULA Description = PeaZip; ücretsiz, çapraz platform, açık kaynak kütük ve belgelik yöneticisidir. 150'den çok belgelikleme biçimini destekler. Size = 5,9 MB diff --git a/base/applications/rapps/rapps/pengupop.txt b/base/applications/rapps/rapps/pengupop.txt index ac058a0bfd6..17b24474673 100644 --- a/base/applications/rapps/rapps/pengupop.txt +++ b/base/applications/rapps/rapps/pengupop.txt @@ -5,7 +5,7 @@ [Section] Name = Pengupop Version = 2.2.3 -Licence = GPL +License = GPL Description = The purpose of this game is to shoot colored orbs into your playfield, so they form groups of three or more. Size = 384 kB Category = 4 diff --git a/base/applications/rapps/rapps/photofiltre.txt b/base/applications/rapps/rapps/photofiltre.txt index 2d5a348ca1c..2976ff6665d 100644 --- a/base/applications/rapps/rapps/photofiltre.txt +++ b/base/applications/rapps/rapps/photofiltre.txt @@ -5,7 +5,7 @@ [Section] Name = PhotoFiltre 7 Version = 7.1.2 -Licence = Freeware +License = Freeware Description = This version with layers but more limited than the Studio X version. PhotoFiltre Studio is a complete image retouching program. Size = 4.99 MB Category = 3 @@ -23,11 +23,11 @@ Description = Ta wersja obsługuje warstwy, ale ma większe ograniczenia od Stud Description = Questa versione con pannelli ma più limitata della versione Studio X. PhotoFiltre Studio è un programma di fotoritocco completo. [Section.0418] -Licence = Gratuită +License = Gratuită Description = PhotoFiltre Studio este o aplicație completă de retușare a imaginilor. Size = 4,99 Mo [Section.041f] -Licence = Ücretsiz +License = Ücretsiz Description = Bu sürüm, katmanlarla gelmektedir ancak Studio X sürümünden daha kısıtlıdır. PhotoFiltre Studio eksiksiz bir resim düzeltme yazılımıdır. Size = 4,99 MB diff --git a/base/applications/rapps/rapps/pingus.txt b/base/applications/rapps/rapps/pingus.txt index 661ced3b738..cb1d4cf5d56 100644 --- a/base/applications/rapps/rapps/pingus.txt +++ b/base/applications/rapps/rapps/pingus.txt @@ -5,7 +5,7 @@ [Section] Name = Pingus Version = 0.7.6 -Licence = GPL +License = GPL Description = Pingus is a free Lemmings-like puzzle game. Size = 16.0 MB Category = 4 diff --git a/base/applications/rapps/rapps/pptview.txt b/base/applications/rapps/rapps/pptview.txt index 378207f5719..34fa7f25075 100644 --- a/base/applications/rapps/rapps/pptview.txt +++ b/base/applications/rapps/rapps/pptview.txt @@ -4,7 +4,7 @@ [Section] Name = Microsoft Powerpoint Viewer Version = 2010 -Licence = Unknown +License = Unknown Description = Microsoft Powerpoint Viewer Size = 60.28 MB Category = 6 @@ -13,55 +13,55 @@ URLDownload = http://download.microsoft.com/download/E/6/7/E675FFFC-2A6D-4AB0-B3 CDPath = none [Section.0407] -Licence = Unbekannt +License = Unbekannt Size = 60.43 MB URLDownload = http://download.microsoft.com/download/9/F/7/9F742C8F-8C70-4498-B4D1-539BE36A1077/PowerPointViewer.exe [Section.040a] -Licence = Desconocida +License = Desconocida Size = 60.48 MB URLDownload = http://download.microsoft.com/download/C/1/A/C1AAD042-4407-4470-97CB-863B869F9EDF/PowerPointViewer.exe [Section.040c] -Licence = Inconnue +License = Inconnue Size = 60,41 Mo URLDownload = http://download.microsoft.com/download/6/B/4/6B4CA627-C0CD-4B27-BE31-0B87AE10F46B/PowerPointViewer.exe [Section.0410] -Licence = Sconosciuta +License = Sconosciuta Size = 60.38 MB URLDownload = http://download.microsoft.com/download/3/F/A/3FA9171A-B310-4F0D-A33A-B16827536FAE/PowerPointViewer.exe [Section.0413] -Licence = Ongekend +License = Ongekend Size = 60.33 MB URLDownload = http://download.microsoft.com/download/9/A/8/9A89B545-E4F4-498C-B265-D74CBB89F4D9/PowerPointViewer.exe [Section.0415] -Licence = Nieznana +License = Nieznana Size = 60.43 MB URLDownload = http://download.microsoft.com/download/9/E/4/9E4A5F9A-210D-44B7-ADA2-F47CE00541ED/PowerPointViewer.exe [Section.0418] Name = Lector Microsoft Powerpoint -Licence = Necunoscută +License = Necunoscută Description = Lector Microsoft Powerpoint Size = 60,4 Mo URLDownload = http://download.microsoft.com/download/5/6/E/56E4DBA3-D725-43EA-B1E5-DC148022999C/PowerPointViewer.exe [Section.041f] Name = Microsoft Powerpoint Görüntüleyici -Licence = Bilinmiyor +License = Bilinmiyor Description = Microsoft Powerpoint Görüntüleyici Size = 60,4 MB URLDownload = http://download.microsoft.com/download/4/6/4/4641DACB-5DE8-4E3A-B8F4-39A1C73889D3/PowerPointViewer.exe [Section.0422] -Licence = Невідома +License = Невідома Size = 60.52 MB URLDownload = http://download.microsoft.com/download/C/E/8/CE879E6E-D3F3-4234-A968-9651A3A85D98/PowerPointViewer.exe [Section.0813] -Licence = Ongekend +License = Ongekend Size = 60.33 MB URLDownload = http://download.microsoft.com/download/9/A/8/9A89B545-E4F4-498C-B265-D74CBB89F4D9/PowerPointViewer.exe diff --git a/base/applications/rapps/rapps/precisecalc.txt b/base/applications/rapps/rapps/precisecalc.txt index 8246ba5ff59..fbfad92b4a3 100644 --- a/base/applications/rapps/rapps/precisecalc.txt +++ b/base/applications/rapps/rapps/precisecalc.txt @@ -4,7 +4,7 @@ [Section] Name = Precise Calculator Version = 2.5 -Licence = GPLv3 +License = GPLv3 Description = Precise Calculator is a free and open source scientific calculator for Windows. You need a ZIP decompression program to install it. Size = 151 kB Category = 11 @@ -13,6 +13,6 @@ URLDownload = http://download.sourceforge.net/preccalc/preccalc-32bit.zip CDPath = none [Section.041f] -Licence = GPL 3. sürüm +License = GPL 3. sürüm Description = Precise Hesap Makinesi, Windows için özgür ve açık kaynak bir bilimlik hesap makinesidir. Kurmak için bir ZIP çıkartma izlencesi gerekir. Size = 151 KB diff --git a/base/applications/rapps/rapps/pspad.txt b/base/applications/rapps/rapps/pspad.txt index 8fe91ecdd35..18f8af9f9a5 100644 --- a/base/applications/rapps/rapps/pspad.txt +++ b/base/applications/rapps/rapps/pspad.txt @@ -5,7 +5,7 @@ [Section] Name = PSPad Version = 4.5.8 -Licence = Freeware +License = Freeware Description = A text editor. Size = 4.46 MB Category = 6 @@ -37,7 +37,7 @@ Description = Een teksteditor. Description = Edytor tekstu. [Section.0418] -Licence = Gratuită +License = Gratuită Description = Un editor de text. Size = 4,46 Mo @@ -50,7 +50,7 @@ Description = Textový editor. URLSite = http://www.pspad.com/sk/ [Section.041f] -Licence = Ücretsiz +License = Ücretsiz Description = Bir metin düzenleyicisi. Size = 4,46 MB diff --git a/base/applications/rapps/rapps/ptanks.txt b/base/applications/rapps/rapps/ptanks.txt index 271b6991836..52db7c66ecf 100644 --- a/base/applications/rapps/rapps/ptanks.txt +++ b/base/applications/rapps/rapps/ptanks.txt @@ -5,7 +5,7 @@ [Section] Name = Pocket Tanks Version = 1.6 -Licence = Shareware +License = Shareware Description = The fastest game of artillery you'll ever play. Size = 2.86 MB Category = 4 @@ -23,11 +23,11 @@ Description = Il gioco d'artiglieria più veloce a cui potrai giocare. Description = Szybka gra artyleryjska [Section.0418] -Licence = Versiune de evaluare +License = Versiune de evaluare Description = Cel mai rapid joc de artilerie pe care-l veți juca vreodată. Size = 2,86 Mo [Section.041f] -Licence = Paylaşımlı +License = Paylaşımlı Description = Şimdiye dek oynayacağınız en hızlı topçuluk oyunu. Size = 2,86 MB diff --git a/base/applications/rapps/rapps/putty.txt b/base/applications/rapps/rapps/putty.txt index 84c56761457..3c87fd98003 100644 --- a/base/applications/rapps/rapps/putty.txt +++ b/base/applications/rapps/rapps/putty.txt @@ -4,7 +4,7 @@ [Section] Name = PuTTY Version = 0.63 -Licence = MIT +License = MIT Description = A free SSH, Telnet, rlogin, and raw TCP client. Size = 1.78 MB Category = 5 diff --git a/base/applications/rapps/rapps/python.txt b/base/applications/rapps/rapps/python.txt index 995c880c823..1e4bfcc41a5 100644 --- a/base/applications/rapps/rapps/python.txt +++ b/base/applications/rapps/rapps/python.txt @@ -4,7 +4,7 @@ [Section] Name = Python 3 Version = 3.4.2 -Licence = GPL/LGPL +License = GPL/LGPL Description = A remarkably powerful dynamic programming language. Size = 23.39 MB Category = 7 diff --git a/base/applications/rapps/rapps/python2.txt b/base/applications/rapps/rapps/python2.txt index 4bbbcc6c15b..b30b7762f8a 100644 --- a/base/applications/rapps/rapps/python2.txt +++ b/base/applications/rapps/rapps/python2.txt @@ -4,7 +4,7 @@ [Section] Name = Python 2 Version = 2.7.8 -Licence = GPL/LGPL +License = GPL/LGPL Description = A remarkably powerful dynamic programming language. Size = 15.93 MB Category = 7 diff --git a/base/applications/rapps/rapps/qb64sdl.txt b/base/applications/rapps/rapps/qb64sdl.txt index ae334963d4b..98dee7aa862 100644 --- a/base/applications/rapps/rapps/qb64sdl.txt +++ b/base/applications/rapps/rapps/qb64sdl.txt @@ -5,7 +5,7 @@ [Section] Name = QB64 (SDL version) Version = 0.980 -Licence = Freeware +License = Freeware Description = QB64 is a self-hosting BASIC compiler for Microsoft Windows, Linux and Mac OS X, designed to be compatible with Microsoft QBasic and Microsoft QuickBASIC. You need 7-Zip or a similar utility to extract it. Size = 39.0 MB Category = 7 @@ -23,12 +23,12 @@ Description = QB64 è un compilatore auto ospitante per Microsoft Windows, Linux Description = QB64 to kompilator BASIC zdolny do kompilacji własnego kodu źródłowego. Działa w systemach Windows, Linux i Mac OS X. Jest kompatybilny z Microsoft QBasic i QuickBASIC. Wymaga programu archiwizującego do wypakowania. [Section.0418] -Licence = Gratuită +License = Gratuită Description = QB64 este un compilator BASIC auto-compilabil pentru Windows, Linux și Mac OS X, conceput pentru a fi compatibil cu Microsoft QBasic și Microsoft QuickBASIC. Este necesar un utilitar de derarhivare de tip ZIP. Size = 39,0 Mo [Section.041f] Name = QB64 (SDL sürümü) -Licence = Ücretsiz +License = Ücretsiz Description = QB64; Microsoft Windows, Linux ve Mac OS X için, Microsoft QBasic ve Microsoft QuickBASIC ile uyumlu olacak biçimde tasarlanmış, kendi kendini derleyen bir BASIC derleyicisidir. Çıkartmak için 7-Zip ya da benzeri bir yazılım kullanmanız gerekir. Size = 39,0 MB diff --git a/base/applications/rapps/rapps/qmmp.txt b/base/applications/rapps/rapps/qmmp.txt index be58282ca62..a1e7de346be 100644 --- a/base/applications/rapps/rapps/qmmp.txt +++ b/base/applications/rapps/rapps/qmmp.txt @@ -5,7 +5,7 @@ [Section] Name = Qmmp (Qt-based Multimedia Player) Version = 0.8.2 -Licence = GPL +License = GPL Description = Qmmp is an audio-player, written with the help of the Qt library. The user interface is similar to WinAMP or XMMS. Alternative user interfaces also are available. Size = 12.66 MB Category = 1 diff --git a/base/applications/rapps/rapps/remood.txt b/base/applications/rapps/rapps/remood.txt index 8d5aad16c01..920ad4f068f 100644 --- a/base/applications/rapps/rapps/remood.txt +++ b/base/applications/rapps/rapps/remood.txt @@ -4,7 +4,7 @@ [Section] Name = ReMooD Version = 0.8a -Licence = GPL +License = GPL Description = ReMooD is a source port of Doom Legacy. It aims to provide the classic Legacy experience with new features and more stability. Size = 1.15 MB Category = 4 diff --git a/base/applications/rapps/rapps/reshack.txt b/base/applications/rapps/rapps/reshack.txt index c461c41d3fd..17462bba0a3 100644 --- a/base/applications/rapps/rapps/reshack.txt +++ b/base/applications/rapps/rapps/reshack.txt @@ -5,7 +5,7 @@ [Section] Name = Resource Hacker Version = 3.6.0 -Licence = Freeware +License = Freeware Description = Resource Hacker is a freeware utility to view, modify, rename, add, delete and extract resources in 32bit & 64bit Windows executables and resource files (*.res). Size = 730 kB Category = 7 @@ -23,11 +23,11 @@ Description = Resource Hacker, è uno strumento freewere per vedere, modificare, Description = Resource Hacker to darmowe narzędzie do podglądu, modyfikacji, zmiany nazw, dodawania, kasowania i wypakowywania zasobów w plikach wykonywalnych 32bit i 64bit, oraz w plikach zasobów (*.res). [Section.0418] -Licence = Gratuită +License = Gratuită Description = Resource Hacker este un utilitar gratuit pentru inspectarea, modificarea, redenumirea, adăugarea, ștergerea și extragerea resurselor din fișierele resursă (*.res) și fișierele executabile pe 32 și 64 de biți pentru Windows. Size = 730 ko [Section.041f] -Licence = Ücretsiz +License = Ücretsiz Description = Resoure Hacker, 32 ve 64 bitlik Windows çaılştırılabilirlerindeki ve kaynak kütüklerindeki (*.res) kaynakları görüntülemek, değiştirmek, yeniden adlandırmak, eklemek, silmek ve çıkartmak için ücretsiz bir araçtır. Size = 730 KB diff --git a/base/applications/rapps/rapps/rocks.txt b/base/applications/rapps/rapps/rocks.txt index e2f09273001..ab52561e77f 100644 --- a/base/applications/rapps/rapps/rocks.txt +++ b/base/applications/rapps/rapps/rocks.txt @@ -5,7 +5,7 @@ [Section] Name = Rocks'n'Diamonds Version = 3.3.1.2 -Licence = GPL v2 +License = GPL v2 Description = Arcade style game for UNIX, Mac OS X, Windows and DOS in the tradition of: "Boulder Dash" (C64), "Emerald Mine" (Amiga), "Supaplex" (Amiga/PC), "Sokoban" (PC). You need a ZIP decompression program to install it. Size = 2.42 MB Category = 4 @@ -27,6 +27,6 @@ Description = Un joc de tip arcadă pentru UNIX, Mac OS X, Windows și DOS; resp Size = 2,42 Mo [Section.041f] -Licence = GPL 2. sürüm +License = GPL 2. sürüm Description = "Boulder Dash" (C64), "Emerald Mine" (Amiga), "Supaplex" (Amiga/PC), "Sokoban" (PC) gelenekleri içinde; UNIX, Mac OS X, Windows ve DOS için atari oyun salonu türünde oyun. Kurmak için bir ZIP çıkartma izlencesi gerekir. Size = 2,42 MB diff --git a/base/applications/rapps/rapps/rosbe.txt b/base/applications/rapps/rapps/rosbe.txt index 1488f648ccc..5221a3d5110 100644 --- a/base/applications/rapps/rapps/rosbe.txt +++ b/base/applications/rapps/rapps/rosbe.txt @@ -4,7 +4,7 @@ [Section] Name = ReactOS Build Environment Version = 2.1.1 -Licence = GPL +License = GPL Description = Allows you to build the ReactOS Source. For more instructions see ReactOS wiki. Size = 28.3 MB Category = 7 diff --git a/base/applications/rapps/rapps/rosbeamd64.txt b/base/applications/rapps/rapps/rosbeamd64.txt index 5b0ee4559d3..63b8ee08f98 100644 --- a/base/applications/rapps/rapps/rosbeamd64.txt +++ b/base/applications/rapps/rapps/rosbeamd64.txt @@ -4,7 +4,7 @@ [Section] Name = ReactOS Build Environment AMD64 Addon Version = 1.3 -Licence = GPL +License = GPL Description = Allows you to build the ReactOS AMD64 Source. For more instructions see ReactOS wiki. Size = 15.83 MB Category = 7 diff --git a/base/applications/rapps/rapps/rosbearm.txt b/base/applications/rapps/rapps/rosbearm.txt index ca14ebac609..4281c9d6521 100644 --- a/base/applications/rapps/rapps/rosbearm.txt +++ b/base/applications/rapps/rapps/rosbearm.txt @@ -4,7 +4,7 @@ [Section] Name = ReactOS Build Environment ARM Addon Version = 1.0 -Licence = GPL +License = GPL Description = Allows you to build the ReactOS ARM Source. For more instructions see ReactOS wiki. Size = 11.15 MB Category = 7 diff --git a/base/applications/rapps/rapps/sambatng.txt b/base/applications/rapps/rapps/sambatng.txt index ae30ccaad22..f7862d5d584 100644 --- a/base/applications/rapps/rapps/sambatng.txt +++ b/base/applications/rapps/rapps/sambatng.txt @@ -4,7 +4,7 @@ [Section] Name = Samba TNG Version = 0.5-RC1 -Licence = GPL +License = GPL Description = This tool allows you to access your Windows shared folders/printers with ReactOS. Size = 2.13 MB Category = 5 diff --git a/base/applications/rapps/rapps/sbforvmware.txt b/base/applications/rapps/rapps/sbforvmware.txt index 91cff0030fa..4af10a915f3 100644 --- a/base/applications/rapps/rapps/sbforvmware.txt +++ b/base/applications/rapps/rapps/sbforvmware.txt @@ -4,7 +4,7 @@ [Section] Name = SoundBlaster Driver for VMWare Version = 5.12.1.5017 -Licence = Unknown +License = Unknown Description = Unzip in the ReactOS's folder then restart ReactOS twice. Size = 2.22 MB Category = 13 @@ -13,63 +13,63 @@ CDPath = none [Section.0405] Name = Ovladač SoundBlaster pro VMWare -Licence = Neznámá +License = Neznámá Description = Rozbalte do složky "ReactOS" a pak ReactOS dvakrát restartujte. [Section.0407] Name = SoundBlaster Treiber für VMWare -Licence = Unbekannt +License = Unbekannt Description = Entpacken in das "ReactOS"-Verzeichnis und ReactOS zweimal neustarten. [Section.040a] Name = Driver SoundBlaster para VMWare -Licence = Desconocida +License = Desconocida Description = Descomprimir en la carpeta "Reactos" y reiniciar Reactos dos veces. [Section.040c] Name = Pilote SoundBlaster pour VMWare -Licence = Inconnue +License = Inconnue Description = Dézippez dans le répertoire "ReactOS" puis redémarrez deux fois. Size = 2,22 Mo [Section.0410] Name = Driver SoundBlaster per VMWare -Licence = Sconosciuta +License = Sconosciuta Description = Estrarre nella cartella "ReactOS" e riavviare ReactOS due volte. [Section.0413] Name = SoundBlaster Driver voor VMWare -Licence = Ongekend +License = Ongekend Description = Pak uit in de "ReactOS" folder en start ReactOS tweemaal opnieuw op. [Section.0415] Name = Sterownik SoundBlaster dla VMWare -Licence = Nieznana +License = Nieznana Description = Rozpakuj zawartość w folderze "ReactOS" i dwukrotnie zrestartuj system. [Section.0418] Name = Modul pilot SoundBlaster pentru VMWare -Licence = Nespecificată +License = Nespecificată Description = Dezarhivați în dosarul ReactOS apoi reporniți ReactOS de două ori. Size = 2,22 Mo [Section.0419] Name = Драйвер SoundBlaster для VMWare -Licence = Не указано +License = Не указано Description = Pазархивируйте содержимое в папку "ReactOS", затем дважды перезагрузите систему. [Section.041f] Name = VMWare için SoundBlaster Sürücüsü -Licence = Bilinmiyor +License = Bilinmiyor Description = ReactOS'un dizinine çıkartınız, sonra bilgisayarı iki kez yeniden başlatınız. Size = 2,22 MB [Section.0422] Name = Драйвер SoundBlaster для VMWare -Licence = Невідома +License = Невідома Description = Pозархівуйте вміст в теку "ReactOS" після чого двічі перезавантажте систему. [Section.0813] Name = SoundBlaster Driver voor VMWare -Licence = Ongekend +License = Ongekend Description = Pak uit in de "ReactOS" folder en start ReactOS tweemaal opnieuw op. diff --git a/base/applications/rapps/rapps/scite.txt b/base/applications/rapps/rapps/scite.txt index 7104731cd51..f95454ee27f 100644 --- a/base/applications/rapps/rapps/scite.txt +++ b/base/applications/rapps/rapps/scite.txt @@ -4,7 +4,7 @@ [Section] Name = SciTE Version = 3.5.1 -Licence = Freeware +License = Freeware Description = SciTE is a SCIntilla based text editor. Originally built to demonstrate Scintilla, it has grown to be a generally useful editor with facilities for building and running programs. Size = 744 kB Category = 7 @@ -32,12 +32,12 @@ Description = SciTE is een tekstbewerker gebaseerd op SCIntilla. Origineel bedoe Description = SciTE to edytor tekstu bazowany na SCIntilla. Oryginalnie stworzony aby pokazać Scintille, stał sie ogólnie przydatnym edytorem z infrastrukturą potrzebną do tworzenia i uruchamiania programów. [Section.0418] -Licence = Gratuită +License = Gratuită Description = SciTE este un editor de text bazat pe SCIntilla. Construit inițial pentru a demonstra Scintilla, a crescut ulterior într-un editor de uz general cu funcționalități de compilare și execuție a programelor. Size = 744 ko [Section.041f] -Licence = Ücretsiz +License = Ücretsiz Description = SciTE, bir Scintilla tabanlı metin düzenleyicisidir. İlk başta Scintilla'yı göstermek için yapıldı; izlenceleri yapmak ve çalıştırmak yetenekleriyle, umûmiyetle kullanışlı bir düzenleyici olmak için gelişti. Size = 744 KB diff --git a/base/applications/rapps/rapps/scummvm.txt b/base/applications/rapps/rapps/scummvm.txt index b3c3c710d2f..ac3eccd3479 100644 --- a/base/applications/rapps/rapps/scummvm.txt +++ b/base/applications/rapps/rapps/scummvm.txt @@ -4,7 +4,7 @@ [Section] Name = ScummVM Version = 1.7.0 -Licence = GPL +License = GPL Description = Software that reproduce the working of graphical engine for videogames (Sam and Max, Day of the Tentacle, etc.) on ReactOS. Size = 6.9 MB Category = 4 diff --git a/base/applications/rapps/rapps/sdl_mixer.txt b/base/applications/rapps/rapps/sdl_mixer.txt index 46647c2621b..70960795f17 100644 --- a/base/applications/rapps/rapps/sdl_mixer.txt +++ b/base/applications/rapps/rapps/sdl_mixer.txt @@ -4,7 +4,7 @@ [Section] Name = Simple Direct Media Layer (SDL) Mixer Version = 1.2.12 -Licence = LGPL +License = LGPL Description = Needed for some open source games to run. You need 7-Zip or a similar utility to extract it. Size = 548.02 kB Category = 14 diff --git a/base/applications/rapps/rapps/sdl_runtime.txt b/base/applications/rapps/rapps/sdl_runtime.txt index b14b37c6971..31bfbcb201f 100644 --- a/base/applications/rapps/rapps/sdl_runtime.txt +++ b/base/applications/rapps/rapps/sdl_runtime.txt @@ -4,7 +4,7 @@ [Section] Name = Simple Direct Media Layer (SDL) Runtime Version = 1.2.15 -Licence = LGPL +License = LGPL Description = Needed for many open source games to run. You need 7-Zip or a similar utility to extract it. Size = 136.67 kB Category = 14 diff --git a/base/applications/rapps/rapps/seamonkey.txt b/base/applications/rapps/rapps/seamonkey.txt index 6219ea2c773..20a6a070f78 100644 --- a/base/applications/rapps/rapps/seamonkey.txt +++ b/base/applications/rapps/rapps/seamonkey.txt @@ -4,7 +4,7 @@ [Section] Name = Mozilla SeaMonkey Version = 2.30 -Licence = MPL/GPL/LGPL +License = MPL/GPL/LGPL Description = Mozilla Suite is alive. This is the one and only Browser, Mail, Chat, and Composer bundle you will ever need. Size = 30.05 MB Category = 5 diff --git a/base/applications/rapps/rapps/smplayer.txt b/base/applications/rapps/rapps/smplayer.txt index b21cf344d5d..dd780426b14 100644 --- a/base/applications/rapps/rapps/smplayer.txt +++ b/base/applications/rapps/rapps/smplayer.txt @@ -4,7 +4,7 @@ [Section] Name = SMPlayer Version = 14.9.0 -Licence = GPL +License = GPL Description = Graphical Frontend for MPlayer. Size = 20.7 MB Category = 2 diff --git a/base/applications/rapps/rapps/snoopy.txt b/base/applications/rapps/rapps/snoopy.txt index ce477e6378e..9bb20072f87 100644 --- a/base/applications/rapps/rapps/snoopy.txt +++ b/base/applications/rapps/rapps/snoopy.txt @@ -4,7 +4,7 @@ [Section] Name = Snoopy Version = 1.0 -Licence = Freeware +License = Freeware Description = The original C64 Snoopy remake. Size = 704 kB Category = 4 @@ -20,11 +20,11 @@ URLSite = http://www.blueskied.com/spiele-spielen/snoopy.htm Description = Il remake del gioco Snoopy per Commodore 64. [Section.0418] -Licence = Gratuită +License = Gratuită Description = Recrearea jocului Snoppy (original pe C64). Size = 704 ko [Section.041f] -Licence = Ücretsiz +License = Ücretsiz Description = Özgün C64 Snoopy'in yeniden yapılmışı. Size = 704 KB diff --git a/base/applications/rapps/rapps/steam.txt b/base/applications/rapps/rapps/steam.txt index 82d13f58ff3..31163133f5b 100644 --- a/base/applications/rapps/rapps/steam.txt +++ b/base/applications/rapps/rapps/steam.txt @@ -3,7 +3,7 @@ [Section] Name = Steam -Licence = Freeware +License = Freeware Description = The Steam gaming platform used by many games these days. Size = 1.59 MB Category = 4 @@ -37,13 +37,13 @@ Description = Steam - platforma, którą używa obecnie wiele gier. URLSite = http://store.steampowered.com/?l=polish [Section.0418] -Licence = Gratuită +License = Gratuită Description = Platforma de joc Steam, utilizată de multe jocuri în zilele de astăzi. Size = 1,59 Mo URLSite = http://store.steampowered.com/?l=romanian [Section.041f] -Licence = Ücretsiz +License = Ücretsiz Description = Bugünlerde Steam oyun platformu birçok oyun eliyle kullanılmaktadır. Size = 1,59 MB URLSite = http://store.steampowered.com/?l=turkish diff --git a/base/applications/rapps/rapps/sumatrapdf.txt b/base/applications/rapps/rapps/sumatrapdf.txt index 55717c637e3..ee1b474bfcf 100644 --- a/base/applications/rapps/rapps/sumatrapdf.txt +++ b/base/applications/rapps/rapps/sumatrapdf.txt @@ -4,7 +4,7 @@ [Section] Name = SumatraPDF Version = 2.5.2 -Licence = GPLv3 +License = GPLv3 Description = Sumatra PDF is a slim, free, open-source PDF reader. Portable out of the box. Size = 4.0 MB Category = 6 @@ -40,7 +40,7 @@ Size = 4,0 Mo URLSite = http://blog.kowalczyk.info/software/sumatrapdf/free-pdf-reader-ro.html [Section.041f] -Licence = GPL 3. sürüm +License = GPL 3. sürüm Description = SumatraPDF; yeğni, ücretsiz ve açık kaynak bir PDF okuyucusudur. Kutunun dışında taşınabilirdir. Size = 4,0 MB diff --git a/base/applications/rapps/rapps/summerbound.txt b/base/applications/rapps/rapps/summerbound.txt index 82c884450d3..5df5d172929 100644 --- a/base/applications/rapps/rapps/summerbound.txt +++ b/base/applications/rapps/rapps/summerbound.txt @@ -4,7 +4,7 @@ [Section] Name = Summer Bound Version = 1.4 -Licence = Freeware +License = Freeware Description = A game similar Frozen Fruits. Size = 764 kB Category = 4 @@ -20,11 +20,11 @@ URLSite = http://www.blueskied.com/freeware-spiele/runterladen.htm Description = Un gioco simile a Frozen Fuits [Section.0418] -Licence = Gratuită +License = Gratuită Description = Un joc similar jocului Frozen Fruits. Size = 764 ko [Section.041f] -Licence = Ücretsiz +License = Ücretsiz Description = Frozen Fruits'e benzeyen bir oyun. Size = 764 KB diff --git a/base/applications/rapps/rapps/superdxb.txt b/base/applications/rapps/rapps/superdxb.txt index 2213f3bc5a4..6d4f21a3cc5 100644 --- a/base/applications/rapps/rapps/superdxb.txt +++ b/base/applications/rapps/rapps/superdxb.txt @@ -5,7 +5,7 @@ [Section] Name = Super DX-Ball Version = 1.1 -Licence = Shareware +License = Shareware Description = Super DX-Ball is a vibrant and colorful brick-breaking game. Size = 3.8 MB Category = 4 @@ -23,11 +23,11 @@ Description = Super DX-Ball è un gioco spacca blocchi vibrante e colorato Description = Super DX-Ball - pełna koloru i animacji gra polegająca na zbijaniu klocków. [Section.0418] -Licence = Versiune de evaluare +License = Versiune de evaluare Description = Un joc ce implică spargerea de cărămizi. Size = 3,8 Mo [Section.041f] -Licence = Paylaşımlı +License = Paylaşımlı Description = Super DX-Ball canlı ve renkli bir tuğla kırma oyunudur. Size = 3,8 MB diff --git a/base/applications/rapps/rapps/superfinder.txt b/base/applications/rapps/rapps/superfinder.txt index c08ee2ab990..2825eb383c7 100644 --- a/base/applications/rapps/rapps/superfinder.txt +++ b/base/applications/rapps/rapps/superfinder.txt @@ -4,7 +4,7 @@ [Section] Name = Super Finder XT Version = 1.6.3.2 -Licence = Freeware +License = Freeware Description = A fast and feature rich search application. Size = 4.94 MB Category = 12 @@ -32,12 +32,12 @@ Description = Een snelle zoekapplicatie rijk aan mogelijkheden. Description = Szybka i bogata w opcje aplikacja szukająca. [Section.0418] -Licence = Gratuită +License = Gratuită Description = Aplicație rapidă de căutări complexe de text. Size = 4,94 Mo [Section.041f] -Licence = Ücretsiz +License = Ücretsiz Description = Hızlı ve husûsiyet zengini bir arama uygulaması. Size = 4,94 MB diff --git a/base/applications/rapps/rapps/supertux.txt b/base/applications/rapps/rapps/supertux.txt index 6f8881f2a0d..9aa739ac745 100644 --- a/base/applications/rapps/rapps/supertux.txt +++ b/base/applications/rapps/rapps/supertux.txt @@ -5,7 +5,7 @@ [Section] Name = SuperTux Version = 0.1.3 -Licence = GPL +License = GPL Description = SuperTux is a free, open-source two-dimensional platform game. Size = 7.3 MB Category = 4 diff --git a/base/applications/rapps/rapps/tahoma.txt b/base/applications/rapps/rapps/tahoma.txt index ae23090eb89..bc478c2aab4 100644 --- a/base/applications/rapps/rapps/tahoma.txt +++ b/base/applications/rapps/rapps/tahoma.txt @@ -4,7 +4,7 @@ [Section] Name = Microsoft Tahoma Font Version = 1.0 -Licence = Unknown +License = Unknown Description = Tahoma Font pack needed by some apps (Steam). Contains: Tahoma.ttf, Tahomabd.ttf. Size = 305.12 kB Category = 14 @@ -13,15 +13,15 @@ URLDownload = http://download.microsoft.com/download/office97pro/fonts/1/w95/en- CDPath = none [Section.0407] -Licence = Unbekannt +License = Unbekannt Description = Tahoma Font Pack, der von einigen Anwendungen benötigt wird (Steam). Beinhaltet: Tahoma.ttf, Tahomabd.ttf. [Section.040a] -Licence = Desconocida +License = Desconocida Description = Paquete de fuente Tahoma, necesaria para ciertas aplicaciones (Steam). Incluye: Tahoma.ttf, Tahomabd.ttf. [Section.040c] -Licence = Inconnue +License = Inconnue Description = Package pour la police Tahoma, nécessaire pour certaines applications (Steam). Contient: Tahoma.ttf, Tahomabd.ttf. Size = 305,12 ko @@ -29,27 +29,27 @@ Size = 305,12 ko Description = Il font pack Tahoma è richiesto da alcune applicazioni (Steam). Contiene: Tahoma.ttf, Tahomabd.ttf. [Section.0413] -Licence = Ongekend +License = Ongekend Description = Tahoma lettertypes gebruikt door een aantal programma's (Steam). Bevat: Tahoma.ttf, Tahomabt.ttf. [Section.0415] Description = Pakiet Czcionki Tahoma wymagany przez niektóre programy (np. Steam). Zawiera: Tahoma.ttf, Tahomabd.ttf. [Section.0418] -Licence = Necunoscută +License = Necunoscută Description = Pachetul Tahoma Font, necesar unor aplicații (Steam). Conține: Tahoma.ttf, Tahomabd.ttf. Size = 305,12 ko [Section.041f] Name = Microsoft Tahoma Yazı Tipi -Licence = Bilinmiyor +License = Bilinmiyor Description = Tahoma Yazı Tipi paketi, Steam gibi birtakım uygulamalar için gereklidir. Şunları içerir: Tahoma.ttf, Tahomabd.ttf. Size = 305,12 KB [Section.0422] -Licence = Невідома +License = Невідома Description = Пакет шрифтів Tahoma, що необхідні деяким програмам (Steam). включає: Tahoma.ttf, Tahomabd.ttf. [Section.0813] -Licence = Ongekend +License = Ongekend Description = Tahoma lettertypes gebruikt door een aantal programma's (Steam). Bevat: Tahoma.ttf, Tahomabt.ttf. diff --git a/base/applications/rapps/rapps/thunderbird.txt b/base/applications/rapps/rapps/thunderbird.txt index fc72de5ebf7..8c4b351df48 100644 --- a/base/applications/rapps/rapps/thunderbird.txt +++ b/base/applications/rapps/rapps/thunderbird.txt @@ -4,7 +4,7 @@ [Section] Name = Mozilla Thunderbird 31 Version = 31.2.0 -Licence = MPL/GPL/LGPL +License = MPL/GPL/LGPL Description = The most popular and one of the best free Mail Clients out there. Size = 25.25 MB Category = 5 diff --git a/base/applications/rapps/rapps/thunderbird3.txt b/base/applications/rapps/rapps/thunderbird3.txt index e013e28645d..6f14c49434d 100644 --- a/base/applications/rapps/rapps/thunderbird3.txt +++ b/base/applications/rapps/rapps/thunderbird3.txt @@ -4,7 +4,7 @@ [Section] Name = Mozilla Thunderbird Version = 3.1.20 -Licence = MPL/GPL/LGPL +License = MPL/GPL/LGPL Description = The most popular and one of the best free Mail Clients out there. Size = 9.06 MB Category = 5 diff --git a/base/applications/rapps/rapps/tileworld.txt b/base/applications/rapps/rapps/tileworld.txt index 70b2ce163c9..9fa44d21ba4 100644 --- a/base/applications/rapps/rapps/tileworld.txt +++ b/base/applications/rapps/rapps/tileworld.txt @@ -4,7 +4,7 @@ [Section] Name = Tile World Version = 1.3.0 -Licence = GPL +License = GPL Description = Nice clone of Chip's Challenge originally made for the Atari Lynx. Includes free CCLP2 Graphics Pack, so you dont need the copyrighted original. Size = 1.16 MB Category = 4 diff --git a/base/applications/rapps/rapps/totalcommander.txt b/base/applications/rapps/rapps/totalcommander.txt index 415fb579db2..fe940d917fb 100644 --- a/base/applications/rapps/rapps/totalcommander.txt +++ b/base/applications/rapps/rapps/totalcommander.txt @@ -4,7 +4,7 @@ [Section] Name = Total Commander Version = 8.51a -Licence = Shareware +License = Shareware Description = Total Commander is a file manager with two panels side by side. Size = 3.55 MB Category = 12 @@ -26,12 +26,12 @@ Description = Total Commander is een bestandsbeheerder met twee panelen zij aan Description = Total Commander to popularny menedżer plików z dwoma panelami, ustawionymi obok siebie. [Section.0418] -Licence = Versiune de evaluare +License = Versiune de evaluare Description = Total Commander este un gestionar de fișiere după modelul «două paneluri alăturate». Size = 3,55 Mo [Section.041f] -Licence = Paylaşımlı +License = Paylaşımlı Description = Total Commander, yan yana iki bölmeli bir kütük yöneticisidir. Size = 3,55 MB diff --git a/base/applications/rapps/rapps/tuxpaint.txt b/base/applications/rapps/rapps/tuxpaint.txt index d197e2a1715..bf547676fcf 100644 --- a/base/applications/rapps/rapps/tuxpaint.txt +++ b/base/applications/rapps/rapps/tuxpaint.txt @@ -4,7 +4,7 @@ [Section] Name = TuxPaint Version = 0.9.22 -Licence = GPL +License = GPL Description = An open source bitmap graphics editor geared towards young children. Size = 13.5 MB Category = 3 diff --git a/base/applications/rapps/rapps/ultravnc.txt b/base/applications/rapps/rapps/ultravnc.txt index 0f684551e77..d89f31b9276 100644 --- a/base/applications/rapps/rapps/ultravnc.txt +++ b/base/applications/rapps/rapps/ultravnc.txt @@ -4,7 +4,7 @@ [Section] Name = UltraVNC Version = 1.2.0.3 -Licence = GPL +License = GPL Description = Open source VNC client/server. Size = 3.22 MB Category = 5 diff --git a/base/applications/rapps/rapps/utorrent.txt b/base/applications/rapps/rapps/utorrent.txt index a5c6822483f..3c03b7e47ea 100644 --- a/base/applications/rapps/rapps/utorrent.txt +++ b/base/applications/rapps/rapps/utorrent.txt @@ -4,7 +4,7 @@ [Section] Name = µTorrent Version = 3.4.2 -Licence = Freeware for non-commercial uses +License = Freeware for non-commercial uses Description = Small and fast BitTorrent Client. Size = 1.61 MB Category = 5 @@ -13,52 +13,52 @@ URLDownload = http://download-new.utorrent.com/endpoint/utorrent/os/windows/trac CDPath = none [Section.0407] -Licence = Freeware für nichtkommerzielle Nutzung +License = Freeware für nichtkommerzielle Nutzung Description = Kleiner und schneller BitTorrent Client. [Section.040a] -Licence = Gratuito para uso no comercial +License = Gratuito para uso no comercial Description = Pequeño y rápido cliente BitTorrent. [Section.040c] -Licence = Gratuit pour une utilisation non-commerciale +License = Gratuit pour une utilisation non-commerciale Description = Client BitTorrent petit et rapide. Size = 1,61 Mo [Section.040c] -Licence = Gratita per un uso non-commerciale +License = Gratita per un uso non-commerciale Description = Piccolo e rapido Client BitTorrent. [Section.0410] -Licence = Gratuita per un uso non-commerciale +License = Gratuita per un uso non-commerciale Description = Piccolo e rapido Client BitTorrent. [Section.0413] -Licence = Freeware voor niet-commerciëel gebruik +License = Freeware voor niet-commerciëel gebruik Description = Kleine en snelle BitTorrent afnemer. [Section.0415] -Licence = Freeware (do użytku domowego) +License = Freeware (do użytku domowego) Description = Mały i szybki klient BitTorrent. [Section.0418] -Licence = Gratuită pentru uz necomercial +License = Gratuită pentru uz necomercial Description = Client BitTorrent, mic și rapid. Size = 1,61 Mo [Section.0419] -Licence = Бесплатная для некоммерческого использования +License = Бесплатная для некоммерческого использования Description = Маленький и быстрый клиент BitTorrent. [Section.041f] -Licence = Tecimlik olmayan kullanımlar için ücretsiz. +License = Tecimlik olmayan kullanımlar için ücretsiz. Description = Küçük ve hızlı BitTorrent istemcisi. Size = 1,61 MB [Section.0422] -Licence = Безплатна для некомерційного використання +License = Безплатна для некомерційного використання Description = Маленький і швидкий клієнт BitTorrent. [Section.0813] -Licence = Freeware voor niet-commerciëel gebruik +License = Freeware voor niet-commerciëel gebruik Description = Kleine en snelle BitTorrent afnemer. diff --git a/base/applications/rapps/rapps/vb5run.txt b/base/applications/rapps/rapps/vb5run.txt index a588264dbc1..4f1f2e49c10 100644 --- a/base/applications/rapps/rapps/vb5run.txt +++ b/base/applications/rapps/rapps/vb5run.txt @@ -4,7 +4,7 @@ [Section] Name = Microsoft Visual Basic 5 Runtime Version = 5.0 -Licence = Unknown +License = Unknown Description = Microsoft Visual Basic 5 Runtime. Contains: advpack.dll, asycfilt.dll, comcat.dll, msvbvm50.dll, oleaut32.dll, olepro32.dll. Size = 969.59 kB Category = 14 @@ -13,45 +13,45 @@ URLDownload = http://download.microsoft.com/download/vb50pro/utility/1/win98/en- CDPath = none [Section.0407] -Licence = Unbekannt +License = Unbekannt Description = Microsoft Visual Basic 5 Laufzeitsystem. Beinhaltet: advpack.dll, asycfilt.dll, comcat.dll, msvbvm50.dll, oleaut32.dll, olepro32.dll. [Section.040a] -Licence = Desconocida +License = Desconocida Description = Librerias Microsoft Visual Basic 5. Incluye: advpack.dll, asycfilt.dll, comcat.dll, msvbvm50.dll, oleaut32.dll, olepro32.dll. [Section.040c] -Licence = Inconnue +License = Inconnue Description = Bibliothèque Microsoft Visual Basic 5. Contient: advpack.dll, asycfilt.dll, comcat.dll, msvbvm50.dll, oleaut32.dll, olepro32.dll. Size = 969,59 ko [Section.0410] -Licence = Sconosciuta +License = Sconosciuta Description = Libreria Microsoft Visual Basic 5. Contiene: advpack.dll, asycfilt.dll, comcat.dll, msvbvm50.dll, oleaut32.dll, olepro32.dll. [Section.0413] -Licence = Ongekend +License = Ongekend Description = Microsoft Visual Basic 5 Runtime. Bevat: advpack.dll, asycfilt.dll, comcat.dll, msvbvm50.dll, oleaut32.dll, olepro32.dll. [Section.0415] -Licence = Nieznana +License = Nieznana Description = Biblioteki uruchomieniowe Microsoft Visual Basic 5. Zawiera: advpack.dll, asycfilt.dll, comcat.dll, msvbvm50.dll, oleaut32.dll, olepro32.dll. [Section.0418] -Licence = Necunoscută +License = Necunoscută Description = Microsoft Visual Basic 5 Runtime. Conține: advpack.dll, asycfilt.dll, comcat.dll, msvbvm50.dll, oleaut32.dll, olepro32.dll. Size = 969,59 ko [Section.041f] Name = Microsoft Visual Basic 5 Yürütücü -Licence = Bilinmiyor +License = Bilinmiyor Description = Microsoft Visual Basic 5 Yürütücü. Şunları içerir: advpack.dll, asycfilt.dll, comcat.dll, msvbvm50.dll, oleaut32.dll, olepro32.dll. Size = 969,59 KB [Section.0422] -Licence = Невідома +License = Невідома Description = Бібліотеки Microsoft Visual Basic 5. включає: advpack.dll, asycfilt.dll, comcat.dll, msvbvm50.dll, oleaut32.dll, olepro32.dll. [Section.0813] -Licence = Ongekend +License = Ongekend Description = Microsoft Visual Basic 5 Runtime. Bevat: advpack.dll, asycfilt.dll, comcat.dll, msvbvm50.dll, oleaut32.dll, olepro32.dll. diff --git a/base/applications/rapps/rapps/vb6run.txt b/base/applications/rapps/rapps/vb6run.txt index ac1efdf9a65..1290c75a60f 100644 --- a/base/applications/rapps/rapps/vb6run.txt +++ b/base/applications/rapps/rapps/vb6run.txt @@ -4,7 +4,7 @@ [Section] Name = Microsoft Visual Basic 6 Runtime Version = 6.0 -Licence = Unknown +License = Unknown Description = Microsoft Visual Basic 6 Runtime. Contains: advpack.dll, asycfilt.dll, comcat.dll, msvbvm60.dll, oleaut32.dll, olepro32.dll. Size = 1.02 MB Category = 14 @@ -13,45 +13,45 @@ URLDownload = http://download.microsoft.com/download/5/a/d/5ad868a0-8ecd-4bb0-a8 CDPath = none [Section.0407] -Licence = Unbekannt +License = Unbekannt Description = Microsoft Visual Basic 6 Laufzeitsystem. Beinhaltet: advpack.dll, asycfilt.dll, comcat.dll, msvbvm60.dll, oleaut32.dll, olepro32.dll. [Section.040a] -Licence = Desconocida +License = Desconocida Description = Librerias Microsoft Visual Basic 6. Incluye: advpack.dll, asycfilt.dll, comcat.dll, msvbvm60.dll, oleaut32.dll, olepro32.dll. [Section.040c] -Licence = Inconnue +License = Inconnue Description = Bibliothèque Microsoft Visual Basic 6. Contient: advpack.dll, asycfilt.dll, comcat.dll, msvbvm60.dll, oleaut32.dll, olepro32.dll. Size = 1,02 Mo [Section.0410] -Licence = Sconosciuta +License = Sconosciuta Description = Libreria Microsoft Visual Basic 6.Contiene: advpack.dll, asycfilt.dll, comcat.dll, msvbvm50.dll, oleaut32.dll, olepro32.dll. [Section.0413] -Licence = Ongekend +License = Ongekend Description = Microsoft Visual Basic 6 Runtime. Bevat: advpack.dll, asycfilt.dll, comcat.dll, msvbvm60.dll, oleaut32.dll, olepro32.dll. [Section.0415] -Licence = Nieznana +License = Nieznana Description = Biblioteki uruchomieniowe Microsoft Visual Basic 6. Zawiera: advpack.dll, asycfilt.dll, comcat.dll, msvbvm60.dll, oleaut32.dll, olepro32.dll. [Section.0418] -Licence = Necunoscută +License = Necunoscută Description = Microsoft Visual Basic 6 Runtime. Conține: advpack.dll, asycfilt.dll, comcat.dll, msvbvm60.dll, oleaut32.dll, olepro32.dll. Size = 1,02 Mo [Section.041f] Name = Microsoft Visual Basic 6 Yürütücü -Licence = Bilinmiyor +License = Bilinmiyor Description = Microsoft Visual Basic 6 Yürütücü. Şunları içerir: advpack.dll, asycfilt.dll, comcat.dll, msvbvm60.dll, oleaut32.dll, olepro32.dll. Size = 1,02 MB [Section.0422] -Licence = Невідома +License = Невідома Description = Бібліотеки Microsoft Visual Basic 6. включає: advpack.dll, asycfilt.dll, comcat.dll, msvbvm60.dll, oleaut32.dll, olepro32.dll. [Section.0813] -Licence = Ongekend +License = Ongekend Description = Microsoft Visual Basic 6 Runtime. Bevat: advpack.dll, asycfilt.dll, comcat.dll, msvbvm60.dll, oleaut32.dll, olepro32.dll. diff --git a/base/applications/rapps/rapps/vc2005sp1run.txt b/base/applications/rapps/rapps/vc2005sp1run.txt index 278fd96e011..b3f03a8c91c 100644 --- a/base/applications/rapps/rapps/vc2005sp1run.txt +++ b/base/applications/rapps/rapps/vc2005sp1run.txt @@ -4,7 +4,7 @@ [Section] Name = Microsoft Visual C++ 2005 SP1 Redistributable Package Version = 7.1 -Licence = Unknown +License = Unknown Description = Microsoft Visual Studio 2005 Runtime SP1. Contains: atl80.dll, mfc80.dll, mfcm80.dll, mfcm80u.dll, msdia80.dll, msvcm80.dll, msvcp80.dll, msvcr80.dll, vcomp.dll. Size = 2.6 MB Category = 14 @@ -13,45 +13,45 @@ URLDownload = http://download.microsoft.com/download/e/1/c/e1c773de-73ba-494a-a5 CDPath = none [Section.0407] -Licence = Unbekannt +License = Unbekannt Description = Microsoft Visual Studio 2005 Laufzeitsystem SP1. Beinhaltet: atl80.dll, mfc80.dll, mfcm80.dll, mfcm80u.dll, msdia80.dll, msvcm80.dll, msvcp80.dll, msvcr80.dll, vcomp.dll. [Section.040a] -Licence = Desconocida +License = Desconocida Description = Librerias Microsoft Visual Studio 2005 SP1. Incluye: atl80.dll, mfc80.dll, mfcm80.dll, mfcm80u.dll, msdia80.dll, msvcm80.dll, msvcp80.dll, msvcr80.dll, vcomp.dll. [Section.040c] -Licence = Inconnue +License = Inconnue Description = Bibliothèque Microsoft Visual Studio 2005 SP1. Contient: atl80.dll, mfc80.dll, mfcm80.dll, mfcm80u.dll, msdia80.dll, msvcm80.dll, msvcp80.dll, msvcr80.dll, vcomp.dll. Size = 2,6 Mo [Section.0410] -Licence = Sconosciuta +License = Sconosciuta Description = Microsoft Visual Studio 2005 Runtime SP1. Contiene: atl80.dll, mfc80.dll, mfcm80.dll, mfcm80u.dll, msdia80.dll, msvcm80.dll, msvcp80.dll, msvcr80.dll, vcomp.dll. [Section.0413] -Licence = Ongekend +License = Ongekend Description = Microsoft Visual Studio 2005 Runtime SP1. Bevat: atl80.dll, mfc80.dll, mfcm80.dll, mfcm80u.dll, msdia80.dll, msvcm80.dll, msvcp80.dll, msvcr80.dll, vcomp.dll. [Section.0415] -Licence = Nieznana +License = Nieznana Description = Biblioteki uruchomieniowe Microsoft Visual Studio 2005 SP1. Zawiera: atl80.dll, mfc80.dll, mfcm80.dll, mfcm80u.dll, msdia80.dll, msvcm80.dll, msvcp80.dll, msvcr80.dll, vcomp.dll. [Section.0418] -Licence = Necunoscută +License = Necunoscută Description = Microsoft Visual Studio 2005 Runtime SP1. Conține: atl80.dll, mfc80.dll, mfcm80.dll, mfcm80u.dll, msdia80.dll, msvcm80.dll, msvcp80.dll, msvcr80.dll, vcomp.dll. Size = 2,6 Mo [Section.041f] Name = Microsoft Visual C++ 2005 SP1 Yeniden Dağıtılabilir Paket -Licence = Bilinmiyor +License = Bilinmiyor Description = Microsoft Visual Studio 2005 Yürütücü SP1. Şunları içerir: atl80.dll, mfc80.dll, mfcm80.dll, mfcm80u.dll, msdia80.dll, msvcm80.dll, msvcp80.dll, msvcr80.dll, vcomp.dll. Size = 2,6 MB [Section.0422] -Licence = Невідома +License = Невідома Description = Бібліотеки Microsoft Visual Studio 2005 SP1. включає: atl80.dll, mfc80.dll, mfcm80.dll, mfcm80u.dll, msdia80.dll, msvcm80.dll, msvcp80.dll, msvcr80.dll, vcomp.dll. [Section.0813] -Licence = Ongekend +License = Ongekend Description = Microsoft Visual Studio 2005 Runtime SP1. Bevat: atl80.dll, mfc80.dll, mfcm80.dll, mfcm80u.dll, msdia80.dll, msvcm80.dll, msvcp80.dll, msvcr80.dll, vcomp.dll. diff --git a/base/applications/rapps/rapps/vc2008sp1run.txt b/base/applications/rapps/rapps/vc2008sp1run.txt index 48f9ef730ed..b4d6f767f39 100644 --- a/base/applications/rapps/rapps/vc2008sp1run.txt +++ b/base/applications/rapps/rapps/vc2008sp1run.txt @@ -4,7 +4,7 @@ [Section] Name = Microsoft Visual C++ 2008 SP1 Redistributable Package Version = 8.0 -Licence = Unknown +License = Unknown Description = Microsoft Visual Studio 2008 SP1 Runtime. Contains: atl90.dll, mfc90.dll, mfc90u.dll, mfcm90.dll, mfcm90u.dll, msdia90.dll, msvcm90.dll, msvcp90.dll, msvcr90.dll, vcomp90.dll. Size = 4.02 MB Category = 14 @@ -13,45 +13,45 @@ URLDownload = http://download.microsoft.com/download/d/d/9/dd9a82d0-52ef-40db-8d CDPath = none [Section.0407] -Licence = Unbekannt +License = Unbekannt Description = Microsoft Visual Studio 2008 SP1 Laufzeitsystem. Enthält: atl90.dll, mfc90.dll, mfc90u.dll, mfcm90.dll, mfcm90u.dll, msdia90.dll, msvcm90.dll, msvcp90.dll, msvcr90.dll, vcomp90.dll. [Section.040a] -Licence = Desconocida +License = Desconocida Description = Librerias Microsoft Visual Studio 2008 SP1. Incluye: atl90.dll, mfc90.dll, mfc90u.dll, mfcm90.dll, mfcm90u.dll, msdia90.dll, msvcm90.dll, msvcp90.dll, msvcr90.dll, vcomp90.dll. [Section.040c] -Licence = Inconnue +License = Inconnue Description = Bibliothèque Microsoft Visual Studio 2008 SP1. Contient: atl90.dll, mfc90.dll, mfc90u.dll, mfcm90.dll, mfcm90u.dll, msdia90.dll, msvcm90.dll, msvcp90.dll, msvcr90.dll, vcomp90.dll. Size = 4,02 Mo [Section.0410] -Licence = Sconosciuta +License = Sconosciuta Description = Microsoft Visual Studio 2008 Runtime SP1. Contiene: atl90.dll, mfc90.dll, mfc90u.dll, mfcm90.dll, mfcm90u.dll, msdia90.dll, msvcm90.dll, msvcp90.dll, msvcr90.dll, vcomp90.dll. [Section.0413] -Licence = Ongekend +License = Ongekend Description = Microsoft Visual Studio 2008 SP1 Runtime. Bevat: atl90.dll, mfc90.dll, mfc90u.dll, mfcm90.dll, mfcm90u.dll, msdia90.dll, msvcm90.dll, msvcp90.dll, msvcr90.dll, vcomp90.dll. [Section.0415] -Licence = Nieznana +License = Nieznana Description = Biblioteki uruchomieniowe Microsoft Visual Studio 2008 SP1. Zawiera: atl90.dll, mfc90.dll, mfc90u.dll, mfcm90.dll, mfcm90u.dll, msdia90.dll, msvcm90.dll, msvcp90.dll, msvcr90.dll, vcomp90.dll. [Section.0418] -Licence = Necunoscută +License = Necunoscută Description = Microsoft Visual Studio 2008 SP1 Runtime. Conține: atl90.dll, mfc90.dll, mfc90u.dll, mfcm90.dll, mfcm90u.dll, msdia90.dll, msvcm90.dll, msvcp90.dll, msvcr90.dll, vcomp90.dll. Size = 4,02 Mo [Section.041f] Name = Microsoft Visual C++ 2008 SP1 Yeniden Dağıtılabilir Paket -Licence = Bilinmiyor +License = Bilinmiyor Description = Microsoft Visual Studio 2008 SP1 Yürütücü. Şunları içerir: atl90.dll, mfc90.dll, mfc90u.dll, mfcm90.dll, mfcm90u.dll, msdia90.dll, msvcm90.dll, msvcp90.dll, msvcr90.dll, vcomp90.dll. Size = 4,02 MB [Section.0422] -Licence = Невідома +License = Невідома Description = Бібліотеки Microsoft Visual Studio 2008 SP1. включає: atl90.dll, mfc90.dll, mfc90u.dll, mfcm90.dll, mfcm90u.dll, msdia90.dll, msvcm90.dll, msvcp90.dll, msvcr90.dll, vcomp90.dll. [Section.0813] -Licence = Ongekend +License = Ongekend Description = Microsoft Visual Studio 2008 SP1 Runtime. Bevat: atl90.dll, mfc90.dll, mfc90u.dll, mfcm90.dll, mfcm90u.dll, msdia90.dll, msvcm90.dll, msvcp90.dll, msvcr90.dll, vcomp90.dll. diff --git a/base/applications/rapps/rapps/vc2010run.txt b/base/applications/rapps/rapps/vc2010run.txt index 180fc739e1f..243c4d8e9cf 100644 --- a/base/applications/rapps/rapps/vc2010run.txt +++ b/base/applications/rapps/rapps/vc2010run.txt @@ -4,7 +4,7 @@ [Section] Name = Microsoft Visual C++ 2010 Redistributable Package Version = 8.0 -Licence = Unknown +License = Unknown Description = Microsoft Visual Studio 2010 Runtime. Contains: atl100.dll, mfc100.dll, mfc100u.dll, mfcm100.dll, mfcm100u.dll, msdia100.dll, msvcm100.dll, msvcp100.dll, msvcr100.dll, vcomp100.dll. Size = 4.8 MB Category = 14 @@ -13,45 +13,45 @@ URLDownload = http://download.microsoft.com/download/5/B/C/5BC5DBB3-652D-4DCE-B1 CDPath = none [Section.0407] -Licence = Unbekannt +License = Unbekannt Description = Microsoft Visual Studio 2010 Laufzeitsystem. Beinhaltet: atl100.dll, mfc100.dll, mfc100u.dll, mfcm100.dll, mfcm100u.dll, msdia100.dll, msvcm100.dll, msvcp100.dll, msvcr100.dll, vcomp100.dll. [Section.040a] -Licence = Desconocida +License = Desconocida Description = Librerias Microsoft Visual Studio 2010. Incluye: atl100.dll, mfc100.dll, mfc100u.dll, mfcm100.dll, mfcm100u.dll, msdia100.dll, msvcm100.dll, msvcp100.dll, msvcr100.dll, vcomp100.dll. [Section.040c] -Licence = Inconnue +License = Inconnue Description = Bibliothèque Microsoft Visual Studio 2010. Contient: atl100.dll, mfc100.dll, mfc100u.dll, mfcm100.dll, mfcm100u.dll, msdia100.dll, msvcm100.dll, msvcp100.dll, msvcr100.dll, vcomp100.dll. Size = 4.8 Mo [Section.0410] -Licence = Sconosciuta +License = Sconosciuta Description = Libreria Microsoft Visual Studio 2010. Include: atl100.dll, mfc100.dll, mfc100u.dll, mfcm100.dll, mfcm100u.dll, msdia100.dll, msvcm100.dll, msvcp100.dll, msvcr100.dll, vcomp100.dll. [Section.0413] -Licence = Ongekend +License = Ongekend Description = Microsoft Visual Studio 2010 Runtime. Bevat: atl100.dll, mfc100.dll, mfc90u.dll, mfcm100.dll, mfcm90u.dll, msdia100.dll, msvcm100.dll, msvcp100.dll, msvcr100.dll, vcomp100.dll. [Section.0415] -Licence = Nieznana +License = Nieznana Description = Biblioteki uruchomieniowe Microsoft Visual Studio 2010. Zawiera: atl100.dll, mfc100.dll, mfc90u.dll, mfcm100.dll, mfcm90u.dll, msdia100.dll, msvcm100.dll, msvcp100.dll, msvcr100.dll, vcomp100.dll. [Section.0418] -Licence = Necunoscută +License = Necunoscută Description = Microsoft Visual Studio 2010 Runtime. Conține: atl100.dll, mfc100.dll, mfc90u.dll, mfcm100.dll, mfcm90u.dll, msdia100.dll, msvcm100.dll, msvcp100.dll, msvcr100.dll, vcomp100.dll. Size = 4,8 Mo [Section.041f] Name = Microsoft Visual C++ 2010 Yeniden Dağıtılabilir Paket -Licence = Bilinmiyor +License = Bilinmiyor Description = Microsoft Visual Studio 2010 Yürütücü. Şunları içerir: atl100.dll, mfc100.dll, mfc100u.dll, mfcm100.dll, mfcm100u.dll, msdia100.dll, msvcm100.dll, msvcp100.dll, msvcr100.dll, vcomp100.dll. Size = 4,8 MB [Section.0422] -Licence = Невідома +License = Невідома Description = Бібліотеки Microsoft Visual Studio 2010. включає: atl100.dll, mfc100.dll, mfc90u.dll, mfcm100.dll, mfcm90u.dll, msdia100.dll, msvcm100.dll, msvcp100.dll, msvcr100.dll, vcomp100.dll. [Section.0813] -Licence = Ongekend +License = Ongekend Description = Microsoft Visual Studio 2010 Runtime. Bevat: atl100.dll, mfc100.dll, mfc90u.dll, mfcm100.dll, mfcm90u.dll, msdia100.dll, msvcm100.dll, msvcp100.dll, msvcr100.dll, vcomp100.dll. diff --git a/base/applications/rapps/rapps/vc6run.txt b/base/applications/rapps/rapps/vc6run.txt index 831205b60bd..0ead58152a5 100644 --- a/base/applications/rapps/rapps/vc6run.txt +++ b/base/applications/rapps/rapps/vc6run.txt @@ -4,7 +4,7 @@ [Section] Name = Microsoft Visual C++ 6 Redistributable Package Version = 6.0 -Licence = Unknown +License = Unknown Description = Microsoft Visual Studio 6 Runtime. Contains: advpack.dll, asycfilt.dll, atla.dll, atlu.dll, comcat.dll, mfc42.dll, mfc42u.dll, msvcirt.dll, msvcp60.dll, msvcrt.dll, oleaut32.dll, olepro32.dll. Size = 1.75 MB Category = 14 @@ -13,45 +13,45 @@ URLDownload = http://download.microsoft.com/download/vc60pro/Update/2/W9XNT4/EN- CDPath = none [Section.0407] -Licence = Unbekannt +License = Unbekannt Description = Microsoft Visual Studio 6 Laufzeitsystem. Beinhaltet: advpack.dll, asycfilt.dll, atla.dll, atlu.dll, comcat.dll, mfc42.dll, mfc42u.dll, msvcirt.dll, msvcp60.dll, msvcrt.dll, oleaut32.dll, olepro32.dll. [Section.040a] -Licence = Desconocida +License = Desconocida Description = Librerias Microsoft Visual Studio 6. Incluye: advpack.dll, asycfilt.dll, atla.dll, atlu.dll, comcat.dll, mfc42.dll, mfc42u.dll, msvcirt.dll, msvcp60.dll, msvcrt.dll, oleaut32.dll, olepro32.dll. [Section.040c] -Licence = Inconnue +License = Inconnue Description = Bibliothèque Microsoft Visual Studio 6. Contient: advpack.dll, asycfilt.dll, atla.dll, atlu.dll, comcat.dll, mfc42.dll, mfc42u.dll, msvcirt.dll, msvcp60.dll, msvcrt.dll, oleaut32.dll, olepro32.dll. Size = 1,75 Mo [Section.0410] -Licence = Sconosciuta +License = Sconosciuta Description = Microsoft Visual Studio 6 Runtime. Contiene: advpack.dll, asycfilt.dll, atla.dll, atlu.dll, comcat.dll, mfc42.dll, mfc42u.dll, msvcirt.dll, msvcp60.dll, msvcrt.dll, oleaut32.dll, olepro32.dll. [Section.0413] -Licence = Ongekend +License = Ongekend Description = Microsoft Visual Studio 6 Runtime. Bevat: advpack.dll, asycfilt.dll, atla.dll, atlu.dll, comcat.dll, mfc42.dll, mfc42u.dll, msvcirt.dll, msvcp60.dll, msvcrt.dll, oleaut32.dll, olepro32.dll. [Section.0415] -Licence = Nieznana +License = Nieznana Description = Biblioteki uruchomieniowe Microsoft Visual Studio 6. Zawiera: advpack.dll, asycfilt.dll, atla.dll, atlu.dll, comcat.dll, mfc42.dll, mfc42u.dll, msvcirt.dll, msvcp60.dll, msvcrt.dll, oleaut32.dll, olepro32.dll. [Section.0418] -Licence = Necunoscută +License = Necunoscută Description = Microsoft Visual Studio 6 Runtime. Conține: advpack.dll, asycfilt.dll, atla.dll, atlu.dll, comcat.dll, mfc42.dll, mfc42u.dll, msvcirt.dll, msvcp60.dll, msvcrt.dll, oleaut32.dll, olepro32.dll. Size = 1,75 Mo [Section.041f] Name = Microsoft Visual C++ 6 Yeniden Dağıtılabilir Paket -Licence = Bilinmiyor +License = Bilinmiyor Description = Microsoft Visual Studio 6 Yürütücü. Şunları içerir: advpack.dll, asycfilt.dll, atla.dll, atlu.dll, comcat.dll, mfc42.dll, mfc42u.dll, msvcirt.dll, msvcp60.dll, msvcrt.dll, oleaut32.dll, olepro32.dll. Size = 1,75 MB [Section.0422] -Licence = Невідома +License = Невідома Description = Бібліотеки Microsoft Visual Studio 6. включає: advpack.dll, asycfilt.dll, atla.dll, atlu.dll, comcat.dll, mfc42.dll, mfc42u.dll, msvcirt.dll, msvcp60.dll, msvcrt.dll, oleaut32.dll, olepro32.dll. [Section.0813] -Licence = Ongekend +License = Ongekend Description = Microsoft Visual Studio 6 Runtime. Bevat: advpack.dll, asycfilt.dll, atla.dll, atlu.dll, comcat.dll, mfc42.dll, mfc42u.dll, msvcirt.dll, msvcp60.dll, msvcrt.dll, oleaut32.dll, olepro32.dll. diff --git a/base/applications/rapps/rapps/vlc.txt b/base/applications/rapps/rapps/vlc.txt index 772bb84186e..afb003ff7b6 100644 --- a/base/applications/rapps/rapps/vlc.txt +++ b/base/applications/rapps/rapps/vlc.txt @@ -4,7 +4,7 @@ [Section] Name = VLC media player Version = 2.1.5 -Licence = GPL +License = GPL Description = A media player. Size = 23.6 MB Category = 2 diff --git a/base/applications/rapps/rapps/winboard.txt b/base/applications/rapps/rapps/winboard.txt index 001c3b05908..3c8abb0fb66 100644 --- a/base/applications/rapps/rapps/winboard.txt +++ b/base/applications/rapps/rapps/winboard.txt @@ -4,7 +4,7 @@ [Section] Name = WinBoard Version = 4.2.7b -Licence = GPLv3 +License = GPLv3 Description = WinBoard is a graphical chessboard for the Windows/ReactOS that can serve as a user interface for GNU Chess, Crafty, and other chess engines, for the Internet chess servers, and for electronic mail correspondence chess. Size = 5.93 MB Category = 4 @@ -36,7 +36,7 @@ Description = WinBoard este o tablă de șah grafică pentru Windows/ReactOS ce Size = 5,93 Mo [Section.041f] -Licence = GPL 3. sürüm +License = GPL 3. sürüm Description = WinBoard, Umûmî Ağ satranç sunucularına ve postayla yazışmalı satranca GNU Chess, Crafty ve başka satranç motorlarını bir kullanıcı arayüzü olarak sunabilen, Windows/ReactOS için bir çizgelik satranç tahtasıdır. Size = 5,93 MB diff --git a/base/applications/rapps/rapps/wme9.txt b/base/applications/rapps/rapps/wme9.txt index 23d57556cd4..f4900962786 100644 --- a/base/applications/rapps/rapps/wme9.txt +++ b/base/applications/rapps/rapps/wme9.txt @@ -4,7 +4,7 @@ [Section] Name = Windows Media Encoder 9 Version = 9.0 -Licence = Unknown +License = Unknown Description = Windows Media Encoder 9 Size = 9.46 MB Category = 14 @@ -13,26 +13,26 @@ URLDownload = http://download.microsoft.com/download/8/1/f/81f9402f-efdd-439d-b2 CDPath = none [Section.0407] -Licence = Unbekannt +License = Unbekannt [Section.040a] -Licence = Desconocida +License = Desconocida [Section.040c] -Licence = Inconnue +License = Inconnue Size = 9,46 Mo [Section.0410] -Licence = Sconosciuta +License = Sconosciuta [Section.0413] License = Ongekend [Section.0415] -Licence = Nieznana +License = Nieznana [Section.0418] -Licence = Necunoscută +License = Necunoscută Size = 9,46 Mo [Section.041b] @@ -40,12 +40,12 @@ Description = Neznáma [Section.041f] Name = Windows Ortam Kodlayıcısı 9 -Licence = Bilinmiyor +License = Bilinmiyor Description = Windows Ortam Kodlayıcısı 9 Size = 9,46 MB [Section.0422] -Licence = Невідома +License = Невідома [Section.0813] License = Ongekend diff --git a/base/applications/rapps/rapps/wordview.txt b/base/applications/rapps/rapps/wordview.txt index d9c4abd4d10..346b7f7bb34 100644 --- a/base/applications/rapps/rapps/wordview.txt +++ b/base/applications/rapps/rapps/wordview.txt @@ -4,7 +4,7 @@ [Section] Name = Microsoft Word Viewer Version = 2003 -Licence = Unknown +License = Unknown Description = Microsoft Word Viewer Size = 24.5 MB Category = 6 @@ -13,53 +13,53 @@ URLDownload = http://download.microsoft.com/download/6/a/6/6a689355-b155-4fa7-ad CDPath = none [Section.0407] -Licence = Unbekannt +License = Unbekannt Size = 24.56 MB URLDownload = http://download.microsoft.com/download/d/4/b/d4b23f0e-c8b6-4383-878d-1a8184b7db56/wordview_de-de.exe [Section.040a] -Licence = Desconocida +License = Desconocida Size = 24.53 MB URLDownload = http://download.microsoft.com/download/4/4/c/44c2d552-8b40-464f-8470-b4976d7ba60b/wordview_es-es.exe [Section.040c] -Licence = Inconnue +License = Inconnue Size = 24,55 Mo URLDownload = http://download.microsoft.com/download/b/f/3/bf36c75d-2e93-4db1-ace2-1425e5219260/wordview_fr-fr.exe [Section.0410] -Licence = Sconosciuta +License = Sconosciuta Size = 24.52 MB URLDownload = http://download.microsoft.com/download/f/8/e/f8e9dadd-70bd-4317-a7fe-25d7bfb54b71/wordview_it-it.exe [Section.0413] -Licence = Ongekend +License = Ongekend Size = 24.54 MB URLDownload = http://download.microsoft.com/download/c/1/0/c10e009e-61e2-4b54-8d21-aff378679527/wordview_nl-nl.exe [Section.0415] -Licence = Nieznana +License = Nieznana Size = 24.58 MB URLDownload = http://download.microsoft.com/download/c/e/1/ce1e1286-67a2-4069-a8c4-b3552f18dfa8/wordview_pl-pl.exe [Section.0418] -Licence = Necunoscută +License = Necunoscută Size = 24,56 Mo URLDownload = http://download.microsoft.com/download/1/2/3/123d3dc8-6f3f-473f-ac1d-3e38969605e8/wordview_ro-ro.exe [Section.041f] Name = Microsoft Word Görüntüleyici -Licence = Bilinmiyor +License = Bilinmiyor Description = Microsoft Word Görüntüleyici Size = 24,55 MB URLDownload = http://download.microsoft.com/download/7/6/e/76efefb4-9575-4903-ac2a-180c280ab6c7/wordview_tr-tr.exe [Section.0422] -Licence = Невідома +License = Невідома Size = 24.56 MB URLDownload = http://download.microsoft.com/download/2/b/d/2bd08f27-822b-4c20-936a-0f1d91cb9e69/wordview_uk-ua.exe [Section.0813] -Licence = Ongekend +License = Ongekend Size = 24.54 MB URLDownload = http://download.microsoft.com/download/c/1/0/c10e009e-61e2-4b54-8d21-aff378679527/wordview_nl-nl.exe diff --git a/base/applications/rapps/rapps/zaz.txt b/base/applications/rapps/rapps/zaz.txt index ab8ebf375fe..29972bba1a4 100644 --- a/base/applications/rapps/rapps/zaz.txt +++ b/base/applications/rapps/rapps/zaz.txt @@ -5,7 +5,7 @@ [Section] Name = Zaz Version = 1.0.0 -Licence = GPL +License = GPL Description = Zaz is a free arcade action puzzle computer game, a little bit like Frozen Bubble. Size = 21.0 MB Category = 4 diff --git a/base/applications/rapps/resource.h b/base/applications/rapps/resource.h index 96f3c2121d6..96720ca8f3c 100644 --- a/base/applications/rapps/resource.h +++ b/base/applications/rapps/resource.h @@ -128,7 +128,7 @@ #define IDS_AINFO_DESCRIPTION 351 #define IDS_AINFO_SIZE 352 #define IDS_AINFO_URLSITE 353 -#define IDS_AINFO_LICENCE 354 +#define IDS_AINFO_LICENSE 354 /* Names of categories */ #define IDS_CAT_AUDIO 700 diff --git a/base/applications/taskmgr/CMakeLists.txt b/base/applications/taskmgr/CMakeLists.txt index 959a1aa6ed8..68bae6c0ad1 100644 --- a/base/applications/taskmgr/CMakeLists.txt +++ b/base/applications/taskmgr/CMakeLists.txt @@ -23,6 +23,6 @@ list(APPEND SOURCE add_executable(taskmgr ${SOURCE} taskmgr.rc) set_module_type(taskmgr win32gui UNICODE) -add_importlibs(taskmgr advapi32 user32 gdi32 shell32 comctl32 msvcrt kernel32 ntdll) +add_importlibs(taskmgr advapi32 user32 gdi32 shell32 shlwapi comctl32 msvcrt kernel32 ntdll) add_pch(taskmgr precomp.h SOURCE) add_cd_file(TARGET taskmgr DESTINATION reactos/system32 FOR all) diff --git a/base/applications/taskmgr/column.c b/base/applications/taskmgr/column.c index 093f78327c7..71b8db3426f 100644 --- a/base/applications/taskmgr/column.c +++ b/base/applications/taskmgr/column.c @@ -54,6 +54,7 @@ const PresetColumnEntry ColumnPresets[COLUMN_NMAX] = { DECLARE_COLUMN_PRESET(IOREADBYTES, 70, FALSE) DECLARE_COLUMN_PRESET(IOWRITEBYTES, 70, FALSE) DECLARE_COLUMN_PRESET(IOOTHERBYTES, 70, FALSE) + DECLARE_COLUMN_PRESET(COMMANDLINE, 450, FALSE) }; static int InsertColumn(int nCol, LPCWSTR lpszColumnHeading, int nFormat, int nWidth, int nSubItem); diff --git a/base/applications/taskmgr/column.h b/base/applications/taskmgr/column.h index 9aeb3ec4cfd..a92efa313cf 100644 --- a/base/applications/taskmgr/column.h +++ b/base/applications/taskmgr/column.h @@ -47,7 +47,8 @@ #define COLUMN_IOREADBYTES 22 #define COLUMN_IOWRITEBYTES 23 #define COLUMN_IOOTHERBYTES 24 -#define COLUMN_NMAX 25 +#define COLUMN_COMMANDLINE 25 +#define COLUMN_NMAX 26 /* * temporary fix: @@ -104,6 +105,7 @@ extern const PresetColumnEntry ColumnPresets[COLUMN_NMAX]; #define Column_IOWriteBytes Columns[COLUMN_IOWRITEBYTES] #define Column_IOOther Columns[COLUMN_IOOTHER] #define Column_IOOtherBytes Columns[COLUMN_IOOTHERBYTES] +#define Column_CommandLine Columns[COLUMN_COMMANDLINE] void ProcessPage_OnViewSelectColumns(void); void AddColumns(void); diff --git a/base/applications/taskmgr/lang/bg-BG.rc b/base/applications/taskmgr/lang/bg-BG.rc index 0c5377e4b0c..9a381020513 100644 --- a/base/applications/taskmgr/lang/bg-BG.rc +++ b/base/applications/taskmgr/lang/bg-BG.rc @@ -315,6 +315,7 @@ BEGIN CONTROL "В/И байтове за писане", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 125, 127, 65, 10 CONTROL "Други В/И", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 125, 138, 115, 10 CONTROL "Други В/И байтове", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 125, 149, 115, 10 + CONTROL "Command &Line", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 125, 160, 65, 10 END /* String Tables */ @@ -410,6 +411,7 @@ BEGIN IDS_TAB_IOREADBYTES "В/И прочетени байтове" IDS_TAB_IOWRITESBYTES "В/И записани байтове" IDS_TAB_IOOTHERBYTES "В/И други байтове" + IDS_TAB_COMMANDLINE "Command Line" IDS_MENU_SELECTCOLUMNS "&Избор на стълбове..." IDS_MENU_16BITTASK "&Показване на 16битови задачи" IDS_MENU_WINDOWS "&Прозорци" @@ -433,7 +435,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Невъзможно намаляване на първенство" IDS_MSG_WARNINGCHANGEPRIORITY "ВНИМАНИЕ: Промяната на първенството на това действие може да\nпричини нежелани последствия, включително неустойчивост на системата. Сигурен ли сте, \nче искате да смените старшинството?" IDS_MSG_TRAYICONCPUUSAGE "Заетост на ЦПУ: %d%%" - IDS_STATUS_MEMUSAGE "Заета памет: %dK / %dK" + IDS_STATUS_MEMUSAGE "Заета памет: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "Заетост на ЦПУ: %3d%%" IDS_STATUS_PROCESSES "Действия: %d" IDS_NOT_RESPONDING "Не отговаря" diff --git a/base/applications/taskmgr/lang/cs-CZ.rc b/base/applications/taskmgr/lang/cs-CZ.rc index 518b9fe851e..ac024b8a1f0 100644 --- a/base/applications/taskmgr/lang/cs-CZ.rc +++ b/base/applications/taskmgr/lang/cs-CZ.rc @@ -315,6 +315,7 @@ BEGIN CONTROL "I/O zapsané bajty", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 127, 72, 10 CONTROL "I/O ostatní", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 138, 48, 10 CONTROL "I/O ostatní bajty", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 149, 65, 10 + CONTROL "Command &Line", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 160, 65, 10 END /* String Tables */ @@ -410,6 +411,7 @@ BEGIN IDS_TAB_IOREADBYTES "I/O přečtené bajty" IDS_TAB_IOWRITESBYTES "I/O zapsané bajty" IDS_TAB_IOOTHERBYTES "I/O ostatní bajty" + IDS_TAB_COMMANDLINE "Command Line" IDS_MENU_SELECTCOLUMNS "&Vybrat sloupce..." IDS_MENU_16BITTASK "&Zobrazit 16-bitové úlohy" IDS_MENU_WINDOWS "&Okna" @@ -433,7 +435,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Není možné změnit prioritu" IDS_MSG_WARNINGCHANGEPRIORITY "Upozornění: Změna priority procesu může\nzpůsobit nestabilitu systému a jiné nepředvídatelné problémy. Jste si jisti\nse změnou priority procesu?" IDS_MSG_TRAYICONCPUUSAGE "Využití CPU: %d%%" - IDS_STATUS_MEMUSAGE "Využití paměti: %dK / %dK" + IDS_STATUS_MEMUSAGE "Využití paměti: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "Využití CPU: %3d%%" IDS_STATUS_PROCESSES "Procesy: %d" IDS_NOT_RESPONDING "Neodpovídá" diff --git a/base/applications/taskmgr/lang/da-DK.rc b/base/applications/taskmgr/lang/da-DK.rc index e3ef07a3e32..26dbe41e104 100644 --- a/base/applications/taskmgr/lang/da-DK.rc +++ b/base/applications/taskmgr/lang/da-DK.rc @@ -315,6 +315,7 @@ BEGIN CONTROL "I/O Skrevet Bytes", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 127, 65, 10 CONTROL "I/O Andet", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 138, 46, 10 CONTROL "I/O Andre Bytes", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 149, 65, 10 + CONTROL "Command &Line", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 160, 65, 10 END /* String Tables */ @@ -410,6 +411,7 @@ BEGIN IDS_TAB_IOREADBYTES "I/O Read Bytes" IDS_TAB_IOWRITESBYTES "I/O Write Bytes" IDS_TAB_IOOTHERBYTES "I/O Other Bytes" + IDS_TAB_COMMANDLINE "Command Line" IDS_MENU_SELECTCOLUMNS "&Select Columns..." IDS_MENU_16BITTASK "&Show 16-bit tasks" IDS_MENU_WINDOWS "&Windows" @@ -433,7 +435,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Unable to Change Priority" IDS_MSG_WARNINGCHANGEPRIORITY "WARNING: Changing the priority class of this process may\ncause undesired results including system instability. Are you\nsure you want to change the priority class?" IDS_MSG_TRAYICONCPUUSAGE "CPU Usage: %d%%" - IDS_STATUS_MEMUSAGE "Mem Usage: %dK / %dK" + IDS_STATUS_MEMUSAGE "Mem Usage: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "CPU Usage: %3d%%" IDS_STATUS_PROCESSES "Processes: %d" IDS_NOT_RESPONDING "Not Responding" diff --git a/base/applications/taskmgr/lang/de-DE.rc b/base/applications/taskmgr/lang/de-DE.rc index 8365434242a..bc4cd00169b 100644 --- a/base/applications/taskmgr/lang/de-DE.rc +++ b/base/applications/taskmgr/lang/de-DE.rc @@ -317,6 +317,7 @@ BEGIN CONTROL "E/A-Bytes (Schreiben)", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 127, 105, 10 // 107 CONTROL "E/A (Andere)", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 138, 105, 10 // 107 CONTROL "E/A-Bytes (Andere)", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 149, 110, 10 // 107 + CONTROL "Befeh&lszeile", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 160, 65, 10 // 107 END /* String Tables */ @@ -412,6 +413,7 @@ BEGIN IDS_TAB_IOREADBYTES "E/A-Bytes (Lesen)" IDS_TAB_IOWRITESBYTES "E/A-Bytes (Schreiben)" IDS_TAB_IOOTHERBYTES "E/A-Bytes (Andere)" + IDS_TAB_COMMANDLINE "Befehlszeile" IDS_MENU_SELECTCOLUMNS "&Spalten auswählen..." IDS_MENU_16BITTASK "&16-Bit-Tasks anzeigen" IDS_MENU_WINDOWS "&Fenster" @@ -435,7 +437,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Kann die Priorität nicht ändern" IDS_MSG_WARNINGCHANGEPRIORITY "WARNUNG: Das Ändern der Prioritätsklasse dieses Prozesses\nkann zu unerwünschten Ergebnissen, einschl. Systeminstabilität, führen.\nSind Sie sicher, dass Sie sie ändern möchten?" IDS_MSG_TRAYICONCPUUSAGE "CPU-Auslastung: %d%%" - IDS_STATUS_MEMUSAGE "zugesicherter Speicher: %dK / %dK" + IDS_STATUS_MEMUSAGE "zugesicherter Speicher: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "CPU-Auslastung: %3d%%" IDS_STATUS_PROCESSES "Prozesse: %d" IDS_NOT_RESPONDING "Keine Rückmeldung" diff --git a/base/applications/taskmgr/lang/el-GR.rc b/base/applications/taskmgr/lang/el-GR.rc index 0f4d87ea3ba..7a65c88db56 100644 --- a/base/applications/taskmgr/lang/el-GR.rc +++ b/base/applications/taskmgr/lang/el-GR.rc @@ -317,6 +317,7 @@ BEGIN CONTROL "I/O Write Bytes", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 127, 65, 10 CONTROL "I/O Other", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 138, 46, 10 CONTROL "I/O Other Bytes", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 149, 65, 10 + CONTROL "Command &Line", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 160, 65, 10 END /* String Tables */ @@ -412,6 +413,7 @@ BEGIN IDS_TAB_IOREADBYTES "I/O Read Bytes" IDS_TAB_IOWRITESBYTES "I/O Write Bytes" IDS_TAB_IOOTHERBYTES "I/O Other Bytes" + IDS_TAB_COMMANDLINE "Command Line" IDS_MENU_SELECTCOLUMNS "&Select Columns..." IDS_MENU_16BITTASK "&Show 16-bit tasks" IDS_MENU_WINDOWS "&Windows" @@ -435,7 +437,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Unable to Change Priority" IDS_MSG_WARNINGCHANGEPRIORITY "WARNING: Changing the priority class of this process may\ncause undesired results including system instability. Are you\nsure you want to change the priority class?" IDS_MSG_TRAYICONCPUUSAGE "CPU Usage: %d%%" - IDS_STATUS_MEMUSAGE "Mem Usage: %dK / %dK" + IDS_STATUS_MEMUSAGE "Mem Usage: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "CPU Usage: %3d%%" IDS_STATUS_PROCESSES "Processes: %d" IDS_NOT_RESPONDING "Not Responding" diff --git a/base/applications/taskmgr/lang/en-US.rc b/base/applications/taskmgr/lang/en-US.rc index 920992df94c..d25de52cf73 100644 --- a/base/applications/taskmgr/lang/en-US.rc +++ b/base/applications/taskmgr/lang/en-US.rc @@ -313,6 +313,7 @@ BEGIN CONTROL "I/O Write Bytes", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 127, 65, 10 CONTROL "I/O Other", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 138, 46, 10 CONTROL "I/O Other Bytes", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 149, 65, 10 + CONTROL "Command &Line", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 160, 65, 10 END /* String Tables */ @@ -408,6 +409,7 @@ BEGIN IDS_TAB_IOREADBYTES "I/O Read Bytes" IDS_TAB_IOWRITESBYTES "I/O Write Bytes" IDS_TAB_IOOTHERBYTES "I/O Other Bytes" + IDS_TAB_COMMANDLINE "Command Line" IDS_MENU_SELECTCOLUMNS "&Select Columns..." IDS_MENU_16BITTASK "&Show 16-bit tasks" IDS_MENU_WINDOWS "&Windows" @@ -431,7 +433,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Unable to Change Priority" IDS_MSG_WARNINGCHANGEPRIORITY "WARNING: Changing the priority class of this process may\ncause undesired results including system instability. Are you\nsure you want to change the priority class?" IDS_MSG_TRAYICONCPUUSAGE "CPU Usage: %d%%" - IDS_STATUS_MEMUSAGE "Mem Usage: %dK / %dK" + IDS_STATUS_MEMUSAGE "Mem Usage: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "CPU Usage: %3d%%" IDS_STATUS_PROCESSES "Processes: %d" IDS_NOT_RESPONDING "Not Responding" diff --git a/base/applications/taskmgr/lang/es-ES.rc b/base/applications/taskmgr/lang/es-ES.rc index 595f1c1a2ba..768703c8f20 100644 --- a/base/applications/taskmgr/lang/es-ES.rc +++ b/base/applications/taskmgr/lang/es-ES.rc @@ -292,7 +292,7 @@ BEGIN DEFPUSHBUTTON "Aceptar", IDOK, 126, 178, 50, 14 // 84 PUSHBUTTON "Cancelar", IDCANCEL, 180, 178, 50, 14 // 138 LTEXT "Seleccione las columnas que aparecerán en la página de Procesos del Administrador de tareas.", IDC_STATIC, 7, 7, 221, 17 // 181 - CONTROL "Nombre de ruta de la &imagen", IDC_IMAGENAME, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 7, 28, 88, 10 // 56 + CONTROL "Nombre de ruta de la &imagen", IDC_IMAGENAME, "Button", BS_AUTOCHECKBOX | WS_DISABLED | WS_TABSTOP, 7, 28, 105, 10 // 56 CONTROL "Identificador de proceso (&PID)", IDC_PID, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 39, 120, 10 // 88 CONTROL "Uso de &CPU", IDC_CPUUSAGE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 50, 53, 10 CONTROL "Ti&empo de CPU", IDC_CPUTIME, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 61, 65, 10 // 48 @@ -301,8 +301,8 @@ BEGIN CONTROL "Uso má&ximo de la memoria", IDC_PEAKMEMORYUSAGE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 94, 120, 10 // 82 CONTROL "Err&ores de página", IDC_PAGEFAULTS, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 105, 80, 10 // 53 CONTROL "O&bjetos de USUARIO", IDC_USEROBJECTS, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 116, 80, 10 // 62 - CONTROL "Lecturas de E/S", IDC_IOREADS, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 127, 60, 10 // 49 - CONTROL "Bytes de lectura de E/S", IDC_IOREADBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 138, 65, 10 + CONTROL "Lecturas de E/S", IDC_IOREADS, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 127, 70, 10 // 49 + CONTROL "Bytes de lectura de E/S", IDC_IOREADBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 138, 85, 10 CONTROL "I&d. de sesión", IDC_SESSIONID, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 149, 65, 10 // 50 CONTROL "&Nombre de usuario", IDC_USERNAME, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 7, 160, 75, 10 // 51 CONTROL "Diferencia de erro&res de página", IDC_PAGEFAULTSDELTA, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 28, 120, 10 // 107, 60 @@ -310,13 +310,14 @@ BEGIN CONTROL "B&loque paginado", IDC_PAGEDPOOL, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 50, 67, 10 // 107, 53 CONTROL "Blo&que no paginado", IDC_NONPAGEDPOOL, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 61, 115, 10 // 107 CONTROL "P&rioridad base", IDC_BASEPRIORITY, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 72, 80, 10 // 107 - CONTROL "&Recuento de identificadores", IDC_HANDLECOUNT, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 83, 59, 10 // 107 - CONTROL "Nú&mero de subprocesos", IDC_THREADCOUNT, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 94, 59, 10 // 107 + CONTROL "&Recuento de identificadores", IDC_HANDLECOUNT, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 83, 105, 10 // 107 + CONTROL "Nú&mero de subprocesos", IDC_THREADCOUNT, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 94, 85, 10 // 107 CONTROL "Objetos &GDI", IDC_GDIOBJECTS, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 105, 55, 10 // 107 CONTROL "Escrituras de E/S", IDC_IOWRITES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 116, 90, 10 // 107 CONTROL "Bytes de escritura de E/S", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 127, 105, 10 // 107 CONTROL "Otros de E/S", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 138, 60, 10 CONTROL "Otros bytes de E/S", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 149, 75, 10 + CONTROL "&Línea de comandos", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 127, 160, 75, 10 END /* String Tables */ @@ -412,6 +413,7 @@ BEGIN IDS_TAB_IOREADBYTES "Bytes de lectura de E/S" IDS_TAB_IOWRITESBYTES "Bytes de escritura de E/S" IDS_TAB_IOOTHERBYTES "Otros bytes de E/S" + IDS_TAB_COMMANDLINE "Línea de comandos" IDS_MENU_SELECTCOLUMNS "&Seleccionar columnas..." IDS_MENU_16BITTASK "Mos&trar tareas de 16-bit" IDS_MENU_WINDOWS "&Ventanas" @@ -435,7 +437,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "No se pudo cambiar la prioridad" IDS_MSG_WARNINGCHANGEPRIORITY "Advertencia: El cambio de prioridad en ciertos procesos podría provocar la inestabilidad del sistema.\n¿Seguro que desea cambiar la prioridad?" IDS_MSG_TRAYICONCPUUSAGE "Promedio CPU: %d%%" - IDS_STATUS_MEMUSAGE "Uso de memoria: %dK / %dK" + IDS_STATUS_MEMUSAGE "Uso de memoria: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "Uso de CPU: %3d%%" IDS_STATUS_PROCESSES "Procesos: %d" IDS_NOT_RESPONDING "No responde" diff --git a/base/applications/taskmgr/lang/fr-FR.rc b/base/applications/taskmgr/lang/fr-FR.rc index aa453bd5439..94d3c584a92 100644 --- a/base/applications/taskmgr/lang/fr-FR.rc +++ b/base/applications/taskmgr/lang/fr-FR.rc @@ -317,6 +317,7 @@ BEGIN CONTROL "Octets d'écriture E/S", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 129, 127, 108, 10 CONTROL "Autres E/S", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 129, 138, 108, 10 CONTROL "Octets d'autres E/S", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 129, 149, 108, 10 + CONTROL "&Ligne de commande", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 129, 160, 95, 10 END /* String Tables */ @@ -412,6 +413,7 @@ BEGIN IDS_TAB_IOREADBYTES "Octets de lecture E/S" IDS_TAB_IOWRITESBYTES "Octets d'écriture E/S" IDS_TAB_IOOTHERBYTES "Octets d'autres E/S" + IDS_TAB_COMMANDLINE "Ligne de commande" IDS_MENU_SELECTCOLUMNS "&Sélectionner les colonnes..." IDS_MENU_16BITTASK "&Afficher les tâches 16 bits" IDS_MENU_WINDOWS "&Fenêtres" @@ -435,7 +437,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Impossible de changer la priorité" IDS_MSG_WARNINGCHANGEPRIORITY "ATTENTION : Changer la priorité du processus peut causer des\neffets indésirables comme l'instabilité du système.\nÊtes-vous sûr de vouloir changer la priorité ?" IDS_MSG_TRAYICONCPUUSAGE "UC utilisée : %d%%" - IDS_STATUS_MEMUSAGE "Fichier d'échange utilisé : %dK / %dK" + IDS_STATUS_MEMUSAGE "Fichier d'échange utilisé : %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "UC utilisée : %3d%%" IDS_STATUS_PROCESSES "Processus : %d" IDS_NOT_RESPONDING "Ne répond pas" diff --git a/base/applications/taskmgr/lang/he-IL.rc b/base/applications/taskmgr/lang/he-IL.rc index 2a706d12a91..518e0b8f9f3 100644 --- a/base/applications/taskmgr/lang/he-IL.rc +++ b/base/applications/taskmgr/lang/he-IL.rc @@ -317,6 +317,7 @@ BEGIN CONTROL "I/O Write Bytes", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 127, 65, 10 CONTROL "I/O Other", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 138, 46, 10 CONTROL "I/O Other Bytes", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 149, 65, 10 + CONTROL "Command &Line", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 160, 65, 10 END /* String Tables */ @@ -412,6 +413,7 @@ BEGIN IDS_TAB_IOREADBYTES "I/O Read Bytes" IDS_TAB_IOWRITESBYTES "I/O Write Bytes" IDS_TAB_IOOTHERBYTES "I/O Other Bytes" + IDS_TAB_COMMANDLINE "Command Line" IDS_MENU_SELECTCOLUMNS "&Select Columns..." IDS_MENU_16BITTASK "&Show 16-bit tasks" IDS_MENU_WINDOWS "&Windows" @@ -435,7 +437,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Unable to Change Priority" IDS_MSG_WARNINGCHANGEPRIORITY "WARNING: Changing the priority class of this process may\ncause undesired results including system instability. Are you\nsure you want to change the priority class?" IDS_MSG_TRAYICONCPUUSAGE "CPU Usage: %d%%" - IDS_STATUS_MEMUSAGE "Mem Usage: %dK / %dK" + IDS_STATUS_MEMUSAGE "Mem Usage: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "CPU Usage: %3d%%" IDS_STATUS_PROCESSES "Processes: %d" IDS_NOT_RESPONDING "Not Responding" diff --git a/base/applications/taskmgr/lang/hu-HU.rc b/base/applications/taskmgr/lang/hu-HU.rc index 896f2d51464..9a429414256 100644 --- a/base/applications/taskmgr/lang/hu-HU.rc +++ b/base/applications/taskmgr/lang/hu-HU.rc @@ -317,6 +317,7 @@ BEGIN CONTROL "I/O Írott bájtok", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 127, 65, 10 CONTROL "Egyéb I/O mûveletek", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 138, 46, 10 CONTROL "Egyéb I/O mûveletek bájtjai", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 149, 65, 10 + CONTROL "Command &Line", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 160, 65, 10 END /* String Tables */ @@ -412,6 +413,7 @@ BEGIN IDS_TAB_IOREADBYTES "I/O Olvasott bájtok" IDS_TAB_IOWRITESBYTES "I/O Írott bájtok" IDS_TAB_IOOTHERBYTES "Egyéb I/O bájtok" + IDS_TAB_COMMANDLINE "Command Line" IDS_MENU_SELECTCOLUMNS "&Oszlopok kiválasztása..." IDS_MENU_16BITTASK "&16bites feladatok megjelenítése" IDS_MENU_WINDOWS "&Ablak" @@ -435,7 +437,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Nem lehetséges a prioritás megváltoztatása" IDS_MSG_WARNINGCHANGEPRIORITY "FIGYELEM: A prioritás megváltoztatása\nkellemetlenségeket, akár rendszer instabilitást is okozhat.\nBiztosan megakarod változtatni a prioritást?" IDS_MSG_TRAYICONCPUUSAGE "CPU használat: %d%%" - IDS_STATUS_MEMUSAGE "Mem használat: %dK / %dK" + IDS_STATUS_MEMUSAGE "Mem használat: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "CPU használat: %3d%%" IDS_STATUS_PROCESSES "Folyamatok: %d" IDS_NOT_RESPONDING "Nem válaszol" diff --git a/base/applications/taskmgr/lang/id-ID.rc b/base/applications/taskmgr/lang/id-ID.rc index 2c7f9740f6e..ff67ec3d092 100644 --- a/base/applications/taskmgr/lang/id-ID.rc +++ b/base/applications/taskmgr/lang/id-ID.rc @@ -317,6 +317,7 @@ BEGIN CONTROL "I/O Write Bytes", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 127, 65, 10 CONTROL "I/O Other", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 138, 46, 10 CONTROL "I/O Other Bytes", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 149, 65, 10 + CONTROL "Command &Line", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 160, 65, 10 END /* String Tables */ @@ -412,6 +413,7 @@ BEGIN IDS_TAB_IOREADBYTES "I/O Read Bytes" IDS_TAB_IOWRITESBYTES "I/O Write Bytes" IDS_TAB_IOOTHERBYTES "I/O Other Bytes" + IDS_TAB_COMMANDLINE "Command Line" IDS_MENU_SELECTCOLUMNS "&Select Columns..." IDS_MENU_16BITTASK "&Show 16-bit tasks" IDS_MENU_WINDOWS "&Windows" @@ -435,7 +437,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Unable to Change Priority" IDS_MSG_WARNINGCHANGEPRIORITY "WARNING: Changing the priority class of this process may\ncause undesired results including system instability. Are you\nsure you want to change the priority class?" IDS_MSG_TRAYICONCPUUSAGE "Pemakaian CPU: %d%%" - IDS_STATUS_MEMUSAGE "Pemakaian Mem: %dK / %dK" + IDS_STATUS_MEMUSAGE "Pemakaian Mem: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "Pemakaian CPU: %3d%%" IDS_STATUS_PROCESSES "Proses: %d" IDS_NOT_RESPONDING "Tidak Merespon" diff --git a/base/applications/taskmgr/lang/it-IT.rc b/base/applications/taskmgr/lang/it-IT.rc index 421ac702d6b..a3197c4f0ca 100644 --- a/base/applications/taskmgr/lang/it-IT.rc +++ b/base/applications/taskmgr/lang/it-IT.rc @@ -315,6 +315,7 @@ BEGIN CONTROL "Scritture I/O Byte", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 127, 69, 10 CONTROL "Altro I/O", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 138, 46, 10 CONTROL "Altro I/O Bytes", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 149, 65, 10 + CONTROL "&Linea di comando", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 160, 65, 10 END /* String Tables */ @@ -410,6 +411,7 @@ BEGIN IDS_TAB_IOREADBYTES "I/O Letture Bytes" IDS_TAB_IOWRITESBYTES "I/O Scritture Bytes" IDS_TAB_IOOTHERBYTES "I/O Altro Bytes" + IDS_TAB_COMMANDLINE "Linea di comando" IDS_MENU_SELECTCOLUMNS "&Selezione Colonne..." IDS_MENU_16BITTASK "&Mostra task 16-bit" IDS_MENU_WINDOWS "&Finestre" @@ -433,7 +435,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Impossibile cambiare la Priorità" IDS_MSG_WARNINGCHANGEPRIORITY "ATTENZIONE: La modifica della classe di priorità può provocare\n effetti indesiderati compresa la perdita di dati o l'instabilità del sistema.\nSei sicuro di voler procedere?" IDS_MSG_TRAYICONCPUUSAGE "Uso CPU: %d%%" - IDS_STATUS_MEMUSAGE "Uso Mem: %dK / %dK" + IDS_STATUS_MEMUSAGE "Uso Mem: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "Uso CPU: %3d%%" IDS_STATUS_PROCESSES "Processi: %d" IDS_NOT_RESPONDING "Non risponde" diff --git a/base/applications/taskmgr/lang/ja-JP.rc b/base/applications/taskmgr/lang/ja-JP.rc index c4ce74573a2..38be0860eab 100644 --- a/base/applications/taskmgr/lang/ja-JP.rc +++ b/base/applications/taskmgr/lang/ja-JP.rc @@ -315,6 +315,7 @@ BEGIN CONTROL "I/O 書き込みバイト数", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 127, 65, 10 CONTROL "I/O その他", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 138, 46, 10 CONTROL "I/O その他のバイト数", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 149, 65, 10 + CONTROL "Command &Line", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 160, 65, 10 END /* String Tables */ @@ -410,6 +411,7 @@ BEGIN IDS_TAB_IOREADBYTES "I/O 読み取りバイト数" IDS_TAB_IOWRITESBYTES "I/O 書き込みバイト数" IDS_TAB_IOOTHERBYTES "I/O その他のバイト数" + IDS_TAB_COMMANDLINE "Command Line" IDS_MENU_SELECTCOLUMNS "列の選択(&S)..." IDS_MENU_16BITTASK "16 ビット タスクの表示(&S)" IDS_MENU_WINDOWS "ウィンドウ(&W)" @@ -433,7 +435,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "優先度を変更できません" IDS_MSG_WARNINGCHANGEPRIORITY "警告: このプロセスの優先度クラスを変更すると、システムが不安定に\nなるなど、予期しない結果になることがあります。\n優先度クラスを変更しますか?" IDS_MSG_TRAYICONCPUUSAGE "CPU 使用率: %d%%" - IDS_STATUS_MEMUSAGE "メモリ使用量: %dKB / %dKB" + IDS_STATUS_MEMUSAGE "メモリ使用量: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "CPU 使用率: %3d%%" IDS_STATUS_PROCESSES "プロセス: %d" IDS_NOT_RESPONDING "応答なし" diff --git a/base/applications/taskmgr/lang/ko-KR.rc b/base/applications/taskmgr/lang/ko-KR.rc index de3236b5959..b54eda8a81a 100644 --- a/base/applications/taskmgr/lang/ko-KR.rc +++ b/base/applications/taskmgr/lang/ko-KR.rc @@ -317,6 +317,7 @@ BEGIN CONTROL "I/O 쓰기 바이트", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 127, 65, 10 CONTROL "I/O 기타", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 138, 46, 10 CONTROL "I/O 기타 바이트", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 149, 65, 10 + CONTROL "Command &Line", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 160, 65, 10 END /* String Tables */ @@ -412,6 +413,7 @@ BEGIN IDS_TAB_IOREADBYTES "I/O 읽기 바이트" IDS_TAB_IOWRITESBYTES "I/O 쓰기 바이트" IDS_TAB_IOOTHERBYTES "I/O 기타 바이트" + IDS_TAB_COMMANDLINE "Command Line" IDS_MENU_SELECTCOLUMNS "열 선택(&S)" IDS_MENU_16BITTASK "16비트 작업 보이기(&S)" IDS_MENU_WINDOWS "창(&W)" @@ -435,7 +437,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "우선 순위를 바꿀 수 없음" IDS_MSG_WARNINGCHANGEPRIORITY "경고: 이 프로세스의 우선 순위 클래스를 변경하면 시스템 불안정을 포함하여\n예기치 않은 결과를 초래할 수도 있습니다.\n우선 순위 클래스를 변경하시겠습니까?" IDS_MSG_TRAYICONCPUUSAGE "CPU 사용: %d%%" - IDS_STATUS_MEMUSAGE "메모리 사용: %dK / %dK" + IDS_STATUS_MEMUSAGE "메모리 사용: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "CPU 사용: %3d%%" IDS_STATUS_PROCESSES "프로세스: %d" IDS_NOT_RESPONDING "응답 없음" diff --git a/base/applications/taskmgr/lang/nl-NL.rc b/base/applications/taskmgr/lang/nl-NL.rc index fcc775e1b94..ddeb52a0616 100644 --- a/base/applications/taskmgr/lang/nl-NL.rc +++ b/base/applications/taskmgr/lang/nl-NL.rc @@ -315,6 +315,7 @@ BEGIN CONTROL "I/O: geschreven bytes", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 117, 127, 100, 10 CONTROL "I/O: overig", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 117, 138, 100, 10 CONTROL "I/O: overige bytes", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 117, 149, 100, 10 + CONTROL "Command &Line", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 117, 160, 65, 10 END /* String Tables */ @@ -410,6 +411,7 @@ BEGIN IDS_TAB_IOREADBYTES "I/O: gelezen bytes" IDS_TAB_IOWRITESBYTES "I/O: geschreven bytes" IDS_TAB_IOOTHERBYTES "I/O: overige bytes" + IDS_TAB_COMMANDLINE "Command Line" IDS_MENU_SELECTCOLUMNS "&Kolommen selecteren..." IDS_MENU_16BITTASK "16-&bits taken weergeven" IDS_MENU_WINDOWS "&Vensters" @@ -433,7 +435,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Kan de prioriteit niet wijzigen" IDS_MSG_WARNINGCHANGEPRIORITY "Waarschuwing: het wijzigen van de prioriteitsklasse van dit proces\nkan ongewenste resultaten hebben, zoals een instabiel systeem. Weet u\nzeker dat u de prioriteitsklasse wilt wijzigen?" IDS_MSG_TRAYICONCPUUSAGE "CPU-gebruik: %d%%" - IDS_STATUS_MEMUSAGE "Geheugengebruik: %dK / %dK" + IDS_STATUS_MEMUSAGE "Geheugengebruik: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "CPU-gebruik: %3d%%" IDS_STATUS_PROCESSES "Processen: %d" IDS_NOT_RESPONDING "Reageert niet" diff --git a/base/applications/taskmgr/lang/no-NO.rc b/base/applications/taskmgr/lang/no-NO.rc index f5c48ec4bbe..1e538c93f6a 100644 --- a/base/applications/taskmgr/lang/no-NO.rc +++ b/base/applications/taskmgr/lang/no-NO.rc @@ -315,6 +315,7 @@ BEGIN CONTROL "I/O skrevne byte", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 127, 70, 10 CONTROL "I/O Annet", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 138, 46, 10 CONTROL "I/O Andre byte", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 149, 65, 10 + CONTROL "Command &Line", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 160, 65, 10 END /* String Tables */ @@ -410,6 +411,7 @@ BEGIN IDS_TAB_IOREADBYTES "I/O Leser Byte" IDS_TAB_IOWRITESBYTES "I/O Skriver Byte" IDS_TAB_IOOTHERBYTES "I/O Annet Byte" + IDS_TAB_COMMANDLINE "Command Line" IDS_MENU_SELECTCOLUMNS "&Velg kolonner..." IDS_MENU_16BITTASK "&Vis 16-biter oppgave" IDS_MENU_WINDOWS "&Vinduer" @@ -433,7 +435,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Ikke i stand til endre prioritet" IDS_MSG_WARNINGCHANGEPRIORITY "ADVARSEL: Endring av prioritet klasse av denne prosess kan\nforutsake uønsket resultat inkluderer systemet kan bli ustabilt. Er du\nsikker på at du vil endre prioritet klassen?" IDS_MSG_TRAYICONCPUUSAGE "Prosessorbruk: %d%%" - IDS_STATUS_MEMUSAGE "Tildelt minne: %dK / %dK" + IDS_STATUS_MEMUSAGE "Tildelt minne: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "Prosessorbruk: %3d%%" IDS_STATUS_PROCESSES "Prosesser: %d" IDS_NOT_RESPONDING "Ingen reaksjon" diff --git a/base/applications/taskmgr/lang/pl-PL.rc b/base/applications/taskmgr/lang/pl-PL.rc index 7205b00e207..a3643c8d086 100644 --- a/base/applications/taskmgr/lang/pl-PL.rc +++ b/base/applications/taskmgr/lang/pl-PL.rc @@ -323,6 +323,7 @@ BEGIN CONTROL "Zapisy We/Wy w bajtach", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 127, 65, 10 CONTROL "Inne We/Wy", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 138, 46, 10 CONTROL "Inne We/Wy w bajtach", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 149, 65, 10 + CONTROL "Linia poleceń", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 160, 65, 10 END /* String Tables */ @@ -418,6 +419,7 @@ BEGIN IDS_TAB_IOREADBYTES "Odczyty We/Wy w bajtach" IDS_TAB_IOWRITESBYTES "Zapisy We/Wy w bajtach" IDS_TAB_IOOTHERBYTES "Inne We/Wy w bajtach" + IDS_TAB_COMMANDLINE "Linia poleceń" IDS_MENU_SELECTCOLUMNS "Wybierz &kolumny..." IDS_MENU_16BITTASK "Pokaż 16-&bitowe zadania" IDS_MENU_WINDOWS "O&kna" @@ -441,7 +443,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Nie można zmienić priorytetu" IDS_MSG_WARNINGCHANGEPRIORITY "UWAGA: Zmiana priorytetu tego procesu może przynieść\nniepożądane skutki, w tym również niestabilność systemu.\nCzy na pewno chcesz zmieni priorytet?" IDS_MSG_TRAYICONCPUUSAGE "Użycie procesora: %d%%" - IDS_STATUS_MEMUSAGE "Pam. zadeklar.: %dK / %dK" + IDS_STATUS_MEMUSAGE "Pam. zadeklar.: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "Użycie procesora: %3d%%" IDS_STATUS_PROCESSES "Procesy: %d" IDS_NOT_RESPONDING "Nie odpowiada" diff --git a/base/applications/taskmgr/lang/pt-BR.rc b/base/applications/taskmgr/lang/pt-BR.rc index 7c123d7d9d1..fe940cf563f 100644 --- a/base/applications/taskmgr/lang/pt-BR.rc +++ b/base/applications/taskmgr/lang/pt-BR.rc @@ -315,6 +315,7 @@ BEGIN CONTROL "Bytes de gravação de E/S", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 123, 127, 97, 10 CONTROL "Outras E/S", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 123, 138, 47, 10 CONTROL "Outros bytes de E/S", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 123, 149, 77, 10 + CONTROL "Command &Line", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 123, 160, 95, 10 END /* String Tables */ @@ -410,6 +411,7 @@ BEGIN IDS_TAB_IOREADBYTES "Bytes de leitura de E/S" IDS_TAB_IOWRITESBYTES "Bytes de gravação de E/S" IDS_TAB_IOOTHERBYTES "Outros Bytes de E/S" + IDS_TAB_COMMANDLINE "Command Line" IDS_MENU_SELECTCOLUMNS "&Selecionar colunas..." IDS_MENU_16BITTASK "&Exibir tarefas de 16 bits" IDS_MENU_WINDOWS "&Janelas" @@ -433,7 +435,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Não é possível alterar a prioridade" IDS_MSG_WARNINGCHANGEPRIORITY "AVISO: a alteração da classe de prioridade do processo\npode causar efeitos indesejáveis, inclusive a instabilidade do sistema. Tem\ncerteza de que deseja alterar a classe de prioridade?" IDS_MSG_TRAYICONCPUUSAGE "Uso de CPU: %d%%" - IDS_STATUS_MEMUSAGE "Uso de Memória: %dK / %dK" + IDS_STATUS_MEMUSAGE "Uso de Memória: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "Uso de CPU: %3d%%" IDS_STATUS_PROCESSES "Processo: %d" IDS_NOT_RESPONDING "Não respondendo" diff --git a/base/applications/taskmgr/lang/ro-RO.rc b/base/applications/taskmgr/lang/ro-RO.rc index e6c2665acb9..60deced0e79 100644 --- a/base/applications/taskmgr/lang/ro-RO.rc +++ b/base/applications/taskmgr/lang/ro-RO.rc @@ -321,6 +321,7 @@ BEGIN CONTROL "In/Ex octeți scriși", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 120, 127, 110, 10 CONTROL "In/Ex altceva", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 120, 138, 110, 10 CONTROL "In/Ex octeți din altceva", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 120, 149, 110, 10 + CONTROL "&Linia de comandă", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 120, 160, 65, 10 END /* String Tables */ @@ -416,6 +417,7 @@ BEGIN IDS_TAB_IOREADBYTES "In/Ex octeți citiți" IDS_TAB_IOWRITESBYTES "In/Ex octeți scriși" IDS_TAB_IOOTHERBYTES "In/Ex octeți din altceva" + IDS_TAB_COMMANDLINE "Command Line" IDS_MENU_SELECTCOLUMNS "&Selectare coloane…" IDS_MENU_16BITTASK "Afișează activități pe 16 &biți" IDS_MENU_WINDOWS "F&erestre" @@ -439,7 +441,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Nu se poate schimba prioritatea" IDS_MSG_WARNINGCHANGEPRIORITY "Schimbarea priorității poate duce la efecte colaterale\nprecum instabilitatea sistemului.\nSigur doriți schimbarea priorității procesului?" IDS_MSG_TRAYICONCPUUSAGE "Utilizare procesor: %d%%" - IDS_STATUS_MEMUSAGE "Utilizare memorie: %dko/%dko" + IDS_STATUS_MEMUSAGE "Utilizare memorie: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "Utilizare procesor: %3d%%" IDS_STATUS_PROCESSES "Procese: %d" IDS_NOT_RESPONDING "EXECUȚIE ANORMALĂ" diff --git a/base/applications/taskmgr/lang/ru-RU.rc b/base/applications/taskmgr/lang/ru-RU.rc index 4fc295e1b22..f0018964379 100644 --- a/base/applications/taskmgr/lang/ru-RU.rc +++ b/base/applications/taskmgr/lang/ru-RU.rc @@ -317,6 +317,7 @@ BEGIN CONTROL "Записано байт", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 127, 65, 10 CONTROL "Прочий ввод-вывод", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 138, 90, 10 CONTROL "Прочих байт при вводе-выводе", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 149, 122, 10 + CONTROL "Коммандная строка", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 160, 90, 10 END /* String Tables */ @@ -412,6 +413,7 @@ BEGIN IDS_TAB_IOREADBYTES "Прочитано байт" IDS_TAB_IOWRITESBYTES "Записано байт" IDS_TAB_IOOTHERBYTES "Прочих байт при вводе-выводе" + IDS_TAB_COMMANDLINE "Коммандная строка" IDS_MENU_SELECTCOLUMNS "В&ыбрать столбцы..." IDS_MENU_16BITTASK "&Отображать 16-разрядные задачи" IDS_MENU_WINDOWS "&Окна" @@ -435,7 +437,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Не удалось изменить приоритет" IDS_MSG_WARNINGCHANGEPRIORITY "ВНИМАНИЕ: Изменение приоритета этого процесса может привести к нежелательным результатам, в том числе к нестабильной работе системы.\nВы действительно хотите изменить класс приоритета?" IDS_MSG_TRAYICONCPUUSAGE "Загрузка ЦП: %d%%" - IDS_STATUS_MEMUSAGE "Выделение памяти: %dK / %dK" + IDS_STATUS_MEMUSAGE "Выделение памяти: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "Загрузка ЦП: %3d%%" IDS_STATUS_PROCESSES "Процессов: %d" IDS_NOT_RESPONDING "Не отвечает" diff --git a/base/applications/taskmgr/lang/sk-SK.rc b/base/applications/taskmgr/lang/sk-SK.rc index c7d3268882e..0598c835aa1 100644 --- a/base/applications/taskmgr/lang/sk-SK.rc +++ b/base/applications/taskmgr/lang/sk-SK.rc @@ -317,6 +317,7 @@ BEGIN CONTROL "Vstup a výstup - zapísané bajty", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 130, 127, 112, 10 CONTROL "Vstup a výstup - iné", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 130, 138, 77, 10 CONTROL "Vstup a výstup - iné bajty", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 130, 149, 97, 10 + CONTROL "Command &Line", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 130, 160, 95, 10 END /* String Tables */ @@ -412,6 +413,7 @@ BEGIN IDS_TAB_IOREADBYTES "Vstup a výstup - prečítané bajty" IDS_TAB_IOWRITESBYTES "Vstup a výstup - zapísané bajty" IDS_TAB_IOOTHERBYTES "Vstup a výstup - iné bajty" + IDS_TAB_COMMANDLINE "Command Line" IDS_MENU_SELECTCOLUMNS "&Vybrať stĺpce..." IDS_MENU_16BITTASK "&Zobraziť 16-bitové úlohy" IDS_MENU_WINDOWS "&Okna" @@ -435,7 +437,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Priorita sa nedá zmeniť." IDS_MSG_WARNINGCHANGEPRIORITY "UPOZORNENIE: Zmena triedy priority procesu môže mať\nnežiadúce dôsledky vrátane nestability systému.\nNaozaj chcete zmeniť triedu priority procesu?" IDS_MSG_TRAYICONCPUUSAGE "Využitie procesora: %d%%" - IDS_STATUS_MEMUSAGE "Využitá pamäť: %dK / %dK" + IDS_STATUS_MEMUSAGE "Využitá pamäť: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "Využitie procesora: %3d%%" IDS_STATUS_PROCESSES "Procesy: %d" IDS_NOT_RESPONDING "Neodpovedá" diff --git a/base/applications/taskmgr/lang/sq-AL.rc b/base/applications/taskmgr/lang/sq-AL.rc index 5c1c812b896..5d6196e67d2 100644 --- a/base/applications/taskmgr/lang/sq-AL.rc +++ b/base/applications/taskmgr/lang/sq-AL.rc @@ -317,6 +317,7 @@ BEGIN CONTROL "Shkruan I/O Bytes", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 127, 65, 10 CONTROL "I/O te tjere", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 138, 46, 10 CONTROL "I/O Byte te tjere", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 149, 65, 10 + CONTROL "Command &Line", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 160, 65, 10 END /* String Tables */ @@ -412,6 +413,7 @@ BEGIN IDS_TAB_IOREADBYTES "I/O Lexo Bytes" IDS_TAB_IOWRITESBYTES "I/O Shkruaj Bytes" IDS_TAB_IOOTHERBYTES "I/O te tjere Bytes" + IDS_TAB_COMMANDLINE "Command Line" IDS_MENU_SELECTCOLUMNS "Zgjidh kolonat..." IDS_MENU_16BITTASK "&Shfaq 16-bit tasks" IDS_MENU_WINDOWS "Dritare" @@ -435,7 +437,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "E pamundur ndryshimi i prioritetit" IDS_MSG_WARNINGCHANGEPRIORITY "KUJDES: Ndryshimi i klases se prioritetit te ketij procesi mund te \nsjell rrezultate te padeshirushme ne stabilitetin e sistemit. Jeni i sigurt\nper ndryshimin e klases se prioriteteve?" IDS_MSG_TRAYICONCPUUSAGE "Perdorimi i CPU: %d%%" - IDS_STATUS_MEMUSAGE "Perdorimi i Mem: %dK / %dK" + IDS_STATUS_MEMUSAGE "Perdorimi i Mem: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "Perdorimi i CPU: %3d%%" IDS_STATUS_PROCESSES "Proceset: %d" IDS_NOT_RESPONDING "Nuk pergjigjet" diff --git a/base/applications/taskmgr/lang/sv-SE.rc b/base/applications/taskmgr/lang/sv-SE.rc index 6d4ed2c758c..4f854368f1c 100644 --- a/base/applications/taskmgr/lang/sv-SE.rc +++ b/base/applications/taskmgr/lang/sv-SE.rc @@ -317,6 +317,7 @@ BEGIN CONTROL "I/O, &antal tecken skrivna", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 133, 127, 113, 10 CONTROL "And&ra I/O åtgärder", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 133, 138, 89, 10 CONTROL "Antal tecken, andra I/O åtgärder", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 133, 149, 141, 10 + CONTROL "Command &Line", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 133, 160, 95, 10 END /* String Tables */ @@ -412,6 +413,7 @@ BEGIN IDS_TAB_IOREADBYTES "Antal tecken lästa, andra I/O-åtgärder" IDS_TAB_IOWRITESBYTES "Antal tecken skrivna, andra I/O-åtgärder" IDS_TAB_IOOTHERBYTES "I/O, antal tecken" + IDS_TAB_COMMANDLINE "Command Line" IDS_MENU_SELECTCOLUMNS "&Välj kolumner..." IDS_MENU_16BITTASK "&Visa 16-bitsprocesser" IDS_MENU_WINDOWS "&Fönster" @@ -435,7 +437,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Kunde inte ändra prioritet" IDS_MSG_WARNINGCHANGEPRIORITY "VARNING: Ändring av prioritetsklassen hos den här processen kan\norsaka oönskade effekter och påverka systemets stabilitet. Är du\nsäker på att du vill ändra prioritetsklassen?" IDS_MSG_TRAYICONCPUUSAGE "Processoranvändning: %d%%" - IDS_STATUS_MEMUSAGE "Minnesanv: %dK / %dK" + IDS_STATUS_MEMUSAGE "Minnesanv: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "Processoranv: %3d%%" IDS_STATUS_PROCESSES "Processer: %d" IDS_NOT_RESPONDING "Svarar inte" diff --git a/base/applications/taskmgr/lang/tr-TR.rc b/base/applications/taskmgr/lang/tr-TR.rc index 1e56cbc2467..41deacebe76 100644 --- a/base/applications/taskmgr/lang/tr-TR.rc +++ b/base/applications/taskmgr/lang/tr-TR.rc @@ -315,6 +315,7 @@ BEGIN CONTROL "G/Ç Yazma Çokluları", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 127, 65, 10 CONTROL "G/Ç Başka", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 138, 46, 10 CONTROL "G/Ç Başka Çoklular", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 149, 65, 10 + CONTROL "Command &Line", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 160, 65, 10 END /* String Tables */ @@ -410,6 +411,7 @@ BEGIN IDS_TAB_IOREADBYTES "G/Ç Okuma Çokluları" IDS_TAB_IOWRITESBYTES "G/Ç Yazma Çokluları" IDS_TAB_IOOTHERBYTES "G/Ç Başka Çoklular" + IDS_TAB_COMMANDLINE "Command Line" IDS_MENU_SELECTCOLUMNS "&Dikeçleri Seç..." IDS_MENU_16BITTASK "&16 Bitlik Görevleri Göster" IDS_MENU_WINDOWS "&Pencereler" @@ -433,7 +435,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Önceliğin Değiştirilememesi" IDS_MSG_WARNINGCHANGEPRIORITY "UYARI: Bu işlemin öncelik sınıfının değiştirilmesi, dizge\nkararsızlığını içeren istenmeyen sonuçlara neden olabilir. Öncelik \nsınıfını değiştirmek istediğinizden emin misiniz?" IDS_MSG_TRAYICONCPUUSAGE "CPU Kullanımı: %%%d" - IDS_STATUS_MEMUSAGE "Bellek Kullanımı: %d KB / %d KB" + IDS_STATUS_MEMUSAGE "Bellek Kullanımı: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "CPU Kullanımı: %%%3d" IDS_STATUS_PROCESSES "İşlem: %d" IDS_NOT_RESPONDING "Yanıt Vermiyor" diff --git a/base/applications/taskmgr/lang/uk-UA.rc b/base/applications/taskmgr/lang/uk-UA.rc index cb6febe53ca..370b382a0aa 100644 --- a/base/applications/taskmgr/lang/uk-UA.rc +++ b/base/applications/taskmgr/lang/uk-UA.rc @@ -315,6 +315,7 @@ BEGIN CONTROL "Записано байтів", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 127, 67, 10 CONTROL "Інший ввід-вивід", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 138, 71, 10 CONTROL "Інших байтів при вводі-виводі", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 149, 114, 10 + CONTROL "Command &Line", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 160, 65, 10 END /* String Tables */ @@ -410,6 +411,7 @@ BEGIN IDS_TAB_IOREADBYTES "Прочитано байтів" IDS_TAB_IOWRITESBYTES "Записано байтів" IDS_TAB_IOOTHERBYTES "Інших байтів під час вводу-виводу" + IDS_TAB_COMMANDLINE "Command Line" IDS_MENU_SELECTCOLUMNS "В&ибрати стовпці..." IDS_MENU_16BITTASK "&Відображати 16-розрядні завдання" IDS_MENU_WINDOWS "В&ікна" @@ -433,7 +435,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Неможливо змінити пріоритет" IDS_MSG_WARNINGCHANGEPRIORITY "УВАГА! Зміна класу пріоритету цього процесу може призвести до \nнебажаних наслідків, включаючи нестабільну роботу \nсистеми. Ви дійсно бажаєте змінити пріоритет класу?" IDS_MSG_TRAYICONCPUUSAGE "Використання ЦП: %d%%" - IDS_STATUS_MEMUSAGE "Пам'ять: %dK / %dK" + IDS_STATUS_MEMUSAGE "Пам'ять: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "Використання ЦП: %3d%%" IDS_STATUS_PROCESSES "Процесів: %d" IDS_NOT_RESPONDING "Не відповідає" diff --git a/base/applications/taskmgr/lang/zh-CN.rc b/base/applications/taskmgr/lang/zh-CN.rc index 54ba7e466b9..d42e0dd0361 100644 --- a/base/applications/taskmgr/lang/zh-CN.rc +++ b/base/applications/taskmgr/lang/zh-CN.rc @@ -321,6 +321,7 @@ BEGIN CONTROL "I/O 写入字节", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 127, 65, 10 CONTROL "I/O 其他", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 138, 46, 10 CONTROL "I/O 其他字节", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 149, 65, 10 + CONTROL "Command &Line", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 160, 65, 10 END /* String Tables */ @@ -416,6 +417,7 @@ BEGIN IDS_TAB_IOREADBYTES "I/O Read Bytes" IDS_TAB_IOWRITESBYTES "I/O Write Bytes" IDS_TAB_IOOTHERBYTES "I/O Other Bytes" + IDS_TAB_COMMANDLINE "Command Line" IDS_MENU_SELECTCOLUMNS "选择列(&S)..." IDS_MENU_16BITTASK "显示 16 位任务(&S)" IDS_MENU_WINDOWS "窗口(&W)" @@ -439,7 +441,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "Unable to Change Priority" IDS_MSG_WARNINGCHANGEPRIORITY "WARNING: Changing the priority class of this process may\ncause undesired results including system instability. Are you\nsure you want to change the priority class?" IDS_MSG_TRAYICONCPUUSAGE "CPU 使用情况: %d%%" - IDS_STATUS_MEMUSAGE "内存使用情况: %dK / %dK" + IDS_STATUS_MEMUSAGE "内存使用情况: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "CPU 使用情况: %3d%%" IDS_STATUS_PROCESSES "處理程序: %d" IDS_NOT_RESPONDING "没有回应" diff --git a/base/applications/taskmgr/lang/zh-TW.rc b/base/applications/taskmgr/lang/zh-TW.rc index 51c54f82601..eb6ee185bff 100644 --- a/base/applications/taskmgr/lang/zh-TW.rc +++ b/base/applications/taskmgr/lang/zh-TW.rc @@ -323,6 +323,7 @@ BEGIN CONTROL "I/O 寫入位元組", IDC_IOWRITEBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 127, 65, 10 CONTROL "其他 I/O", IDC_IOOTHER, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 138, 46, 10 CONTROL "其他 I/O 位元組", IDC_IOOTHERBYTES, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 149, 65, 10 + CONTROL "Command &Line", IDC_COMMANDLINE, "Button", BS_AUTOCHECKBOX | WS_TABSTOP, 107, 160, 65, 10 END /* String Tables */ @@ -418,6 +419,7 @@ BEGIN IDS_TAB_IOREADBYTES "I/O 讀取位元組" IDS_TAB_IOWRITESBYTES "I/O 寫入位元組" IDS_TAB_IOOTHERBYTES "其他 I/O 位元組" + IDS_TAB_COMMANDLINE "Command Line" IDS_MENU_SELECTCOLUMNS "選擇列(&S)..." IDS_MENU_16BITTASK "顯示 16 位工作(&S)" IDS_MENU_WINDOWS "窗口(&W)" @@ -441,7 +443,7 @@ BEGIN IDS_MSG_UNABLECHANGEPRIORITY "無法更改優先順序" IDS_MSG_WARNINGCHANGEPRIORITY "警告: 更改此程序的優先順序可能導致系統不穩定。\n你是否確定要更改優先順序?" IDS_MSG_TRAYICONCPUUSAGE "CPU 使用情況: %d%%" - IDS_STATUS_MEMUSAGE "記憶體使用情況: %dK / %dK" + IDS_STATUS_MEMUSAGE "記憶體使用情況: %s / %s (%d%%)" IDS_STATUS_CPUUSAGE "CPU 使用情況: %3d%%" IDS_STATUS_PROCESSES "處理程序: %d" IDS_NOT_RESPONDING "沒有回應" diff --git a/base/applications/taskmgr/perfdata.c b/base/applications/taskmgr/perfdata.c index ac23b16c10c..3ecb0d81631 100644 --- a/base/applications/taskmgr/perfdata.c +++ b/base/applications/taskmgr/perfdata.c @@ -3,7 +3,8 @@ * * perfdata.c * - * Copyright (C) 1999 - 2001 Brian Palmer + * Copyright (C) 1999 - 2001 Brian Palmer + * Copyright (C) 2014 Ismael Ferreras Morezuelas * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -26,11 +27,12 @@ #include #define NTOS_MODE_USER +#include #include CRITICAL_SECTION PerfDataCriticalSection; PPERFDATA pPerfDataOld = NULL; /* Older perf data (saved to establish delta values) */ -PPERFDATA pPerfData = NULL; /* Most recent copy of perf data */ +PPERFDATA pPerfData = NULL; /* Most recent copy of perf data */ ULONG ProcessCountOld = 0; ULONG ProcessCount = 0; double dbIdleTime; @@ -46,6 +48,10 @@ SYSTEM_HANDLE_INFORMATION SystemHandleInfo; PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION SystemProcessorTimeInfo = NULL; PSID SystemUserSid = NULL; +PCMD_LINE_CACHE global_cache = NULL; + +#define CMD_LINE_MIN(a, b) (a < b ? a - sizeof(WCHAR) : b) + typedef struct _SIDTOUSERNAME { LIST_ENTRY List; @@ -371,7 +377,7 @@ void PerfDataRefresh(void) pPerfData[Idx].HandleCount = pSPI->HandleCount; pPerfData[Idx].ThreadCount = pSPI->NumberOfThreads; pPerfData[Idx].SessionId = pSPI->SessionId; - pPerfData[Idx].UserName[0] = L'\0'; + pPerfData[Idx].UserName[0] = UNICODE_NULL; pPerfData[Idx].USERObjectCount = 0; pPerfData[Idx].GDIObjectCount = 0; ProcessUser = SystemUserSid; @@ -472,7 +478,7 @@ ULONG PerfDataGetProcessorSystemUsage(void) return (ULONG)dbKernelTime; } -BOOL PerfDataGetImageName(ULONG Index, LPWSTR lpImageName, int nMaxCount) +BOOL PerfDataGetImageName(ULONG Index, LPWSTR lpImageName, ULONG nMaxCount) { BOOL bSuccessful; @@ -504,7 +510,7 @@ ULONG PerfDataGetProcessId(ULONG Index) return ProcessId; } -BOOL PerfDataGetUserName(ULONG Index, LPWSTR lpUserName, int nMaxCount) +BOOL PerfDataGetUserName(ULONG Index, LPWSTR lpUserName, ULONG nMaxCount) { BOOL bSuccessful; @@ -522,6 +528,130 @@ BOOL PerfDataGetUserName(ULONG Index, LPWSTR lpUserName, int nMaxCount) return bSuccessful; } +BOOL PerfDataGetCommandLine(ULONG Index, LPWSTR lpCommandLine, ULONG nMaxCount) +{ + static const LPWSTR ellipsis = L"..."; + + PROCESS_BASIC_INFORMATION pbi = {0}; + UNICODE_STRING CommandLineStr = {0}; + + PVOID ProcessParams = NULL; + HANDLE hProcess; + ULONG ProcessId; + + NTSTATUS Status; + BOOL result; + + PCMD_LINE_CACHE new_entry; + LPWSTR new_string; + + PCMD_LINE_CACHE cache = global_cache; + + /* [A] Search for a string already in cache? If so, use it */ + while (cache && cache->pnext != NULL) + { + if (cache->idx == Index && cache->str != NULL) + { + /* Found it. Use it, and add some ellipsis at the very end to make it cute */ + wcsncpy(lpCommandLine, cache->str, CMD_LINE_MIN(nMaxCount, cache->len)); + wcscpy(lpCommandLine + CMD_LINE_MIN(nMaxCount, cache->len) - sizeof(ellipsis)/sizeof(WCHAR), ellipsis); + return TRUE; + } + + cache = cache->pnext; + } + + /* [B] We don't; let's allocate and load a value from the process mem... and cache it */ + ProcessId = PerfDataGetProcessId(Index); + + /* Default blank command line in case things don't work out */ + wcsncpy(lpCommandLine, L"", nMaxCount); + + /* Ask for a handle to the target process so that we can read its memory and query stuff */ + hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, ProcessId); + if (!hProcess) + goto cleanup; + + /* First off, get the ProcessEnvironmentBlock location in that process' address space */ + Status = NtQueryInformationProcess(hProcess, 0, &pbi, sizeof(pbi), NULL); + if (!NT_SUCCESS(Status)) + goto cleanup; + + /* Then get the PEB.ProcessParameters member pointer */ + result = ReadProcessMemory(hProcess, + (PVOID)((ULONG_PTR)pbi.PebBaseAddress + FIELD_OFFSET(PEB, ProcessParameters)), + &ProcessParams, + sizeof(ProcessParams), + NULL); + if (!result) + goto cleanup; + + /* Then copy the PEB->ProcessParameters.CommandLine member + to get the pointer to the string buffer and its size */ + result = ReadProcessMemory(hProcess, + (PVOID)((ULONG_PTR)ProcessParams + FIELD_OFFSET(RTL_USER_PROCESS_PARAMETERS, CommandLine)), + &CommandLineStr, + sizeof(CommandLineStr), + NULL); + if (!result) + goto cleanup; + + /* Allocate the next cache entry and its accompanying string in one go */ + new_entry = HeapAlloc(GetProcessHeap(), + HEAP_ZERO_MEMORY, + sizeof(CMD_LINE_CACHE) + CommandLineStr.Length + sizeof(UNICODE_NULL)); + if (!new_entry) + goto cleanup; + + new_string = (LPWSTR)((ULONG_PTR)new_entry + sizeof(CMD_LINE_CACHE)); + + /* Bingo, the command line should be stored there, + copy the string from the other process */ + result = ReadProcessMemory(hProcess, + CommandLineStr.Buffer, + new_string, + CommandLineStr.Length, + NULL); + if (!result) + { + /* Weird, after sucessfully reading the mem of that process + various times it fails now, forget it and bail out */ + HeapFree(GetProcessHeap(), 0, new_entry); + goto cleanup; + } + + /* Add our pointer to the cache... */ + new_entry->idx = Index; + new_entry->str = new_string; + new_entry->len = CommandLineStr.Length; + + if (!global_cache) + global_cache = new_entry; + else + cache->pnext = new_entry; + + /* ... and print the buffer for the first time */ + wcsncpy(lpCommandLine, new_string, CMD_LINE_MIN(nMaxCount, CommandLineStr.Length)); + +cleanup: + if (hProcess) CloseHandle(hProcess); + return TRUE; +} + +void PerfDataDeallocCommandLineCache() +{ + PCMD_LINE_CACHE cache = global_cache; + PCMD_LINE_CACHE cache_old; + + while (cache && cache->pnext != NULL) + { + cache_old = cache; + cache = cache->pnext; + + HeapFree(GetProcessHeap(), 0, cache_old); + } +} + ULONG PerfDataGetSessionId(ULONG Index) { ULONG SessionId; diff --git a/base/applications/taskmgr/perfdata.h b/base/applications/taskmgr/perfdata.h index 6bb7005ceaa..51e11f47b2e 100644 --- a/base/applications/taskmgr/perfdata.h +++ b/base/applications/taskmgr/perfdata.h @@ -55,19 +55,31 @@ typedef struct _PERFDATA LARGE_INTEGER KernelTime; } PERFDATA, *PPERFDATA; +typedef struct _CMD_LINE_CACHE +{ + DWORD idx; + LPWSTR str; + ULONG len; + struct _CMD_LINE_CACHE* pnext; +} CMD_LINE_CACHE, *PCMD_LINE_CACHE; + BOOL PerfDataInitialize(void); void PerfDataUninitialize(void); void PerfDataRefresh(void); -BOOL PerfDataGet(ULONG Index, PPERFDATA *lppData); -ULONG PerfDataGetProcessIndex(ULONG pid); +BOOL PerfDataGet(ULONG Index, PPERFDATA *lppData); +ULONG PerfDataGetProcessIndex(ULONG pid); ULONG PerfDataGetProcessCount(void); ULONG PerfDataGetProcessorUsage(void); ULONG PerfDataGetProcessorSystemUsage(void); -BOOL PerfDataGetImageName(ULONG Index, LPTSTR lpImageName, int nMaxCount); +BOOL PerfDataGetImageName(ULONG Index, LPWSTR lpImageName, ULONG nMaxCount); ULONG PerfDataGetProcessId(ULONG Index); -BOOL PerfDataGetUserName(ULONG Index, LPTSTR lpUserName, int nMaxCount); +BOOL PerfDataGetUserName(ULONG Index, LPWSTR lpUserName, ULONG nMaxCount); + +BOOL PerfDataGetCommandLine(ULONG Index, LPWSTR lpCommandLine, ULONG nMaxCount); +void PerfDataDeallocCommandLineCache(); + ULONG PerfDataGetSessionId(ULONG Index); ULONG PerfDataGetCPUUsage(ULONG Index); LARGE_INTEGER PerfDataGetCPUTime(ULONG Index); diff --git a/base/applications/taskmgr/perfpage.c b/base/applications/taskmgr/perfpage.c index b6753127ebd..84b4923a6d1 100644 --- a/base/applications/taskmgr/perfpage.c +++ b/base/applications/taskmgr/perfpage.c @@ -21,6 +21,7 @@ */ #include "precomp.h" +#include TGraphCtrl PerformancePageCpuUsageHistoryGraph; TGraphCtrl PerformancePageMemUsageHistoryGraph; @@ -311,20 +312,20 @@ void RefreshPerformancePage(void) DWORD WINAPI PerformancePageRefreshThread(void *lpParameter) { - ULONG CommitChargeTotal; - ULONG CommitChargeLimit; - ULONG CommitChargePeak; + ULONGLONG CommitChargeTotal; + ULONGLONG CommitChargeLimit; + ULONGLONG CommitChargePeak; ULONG CpuUsage; ULONG CpuKernelUsage; - ULONG KernelMemoryTotal; - ULONG KernelMemoryPaged; - ULONG KernelMemoryNonPaged; + ULONGLONG KernelMemoryTotal; + ULONGLONG KernelMemoryPaged; + ULONGLONG KernelMemoryNonPaged; - ULONG PhysicalMemoryTotal; - ULONG PhysicalMemoryAvailable; - ULONG PhysicalMemorySystemCache; + ULONGLONG PhysicalMemoryTotal; + ULONGLONG PhysicalMemoryAvailable; + ULONGLONG PhysicalMemorySystemCache; ULONG TotalHandles; ULONG TotalThreads; @@ -342,6 +343,9 @@ DWORD WINAPI PerformancePageRefreshThread(void *lpParameter) int nBarsUsed1; int nBarsUsed2; + WCHAR szChargeTotalFormat[256]; + WCHAR szChargeLimitFormat[256]; + /* Wait for an the event or application close */ if (GetMessage(&msg, NULL, 0, 0) <= 0) return 0; @@ -353,14 +357,25 @@ DWORD WINAPI PerformancePageRefreshThread(void *lpParameter) */ CommitChargeTotal = PerfDataGetCommitChargeTotalK(); CommitChargeLimit = PerfDataGetCommitChargeLimitK(); - CommitChargePeak = PerfDataGetCommitChargePeakK(); + CommitChargePeak = PerfDataGetCommitChargePeakK(); _ultow(CommitChargeTotal, Text, 10); SetWindowTextW(hPerformancePageCommitChargeTotalEdit, Text); _ultow(CommitChargeLimit, Text, 10); SetWindowTextW(hPerformancePageCommitChargeLimitEdit, Text); _ultow(CommitChargePeak, Text, 10); SetWindowTextW(hPerformancePageCommitChargePeakEdit, Text); - wsprintfW(Text, szMemUsage, CommitChargeTotal, CommitChargeLimit); + + StrFormatByteSizeW(CommitChargeTotal * 1024, + szChargeTotalFormat, + sizeof(szChargeTotalFormat)); + + StrFormatByteSizeW(CommitChargeLimit * 1024, + szChargeLimitFormat, + sizeof(szChargeLimitFormat)); + + wsprintfW(Text, szMemUsage, szChargeTotalFormat, szChargeLimitFormat, + (CommitChargeLimit ? ((CommitChargeTotal * 100) / CommitChargeLimit) : 0)); + SendMessageW(hStatusWnd, SB_SETTEXT, 2, (LPARAM)Text); /* diff --git a/base/applications/taskmgr/procpage.c b/base/applications/taskmgr/procpage.c index 40739e31f5b..35a7b32f0b3 100644 --- a/base/applications/taskmgr/procpage.c +++ b/base/applications/taskmgr/procpage.c @@ -52,9 +52,9 @@ void AddProcess(ULONG Index); void UpdateProcesses(); void gethmsfromlargeint(LARGE_INTEGER largeint, DWORD *dwHours, DWORD *dwMinutes, DWORD *dwSeconds); void ProcessPageOnNotify(WPARAM wParam, LPARAM lParam); -void CommaSeparateNumberString(LPWSTR strNumber, int nMaxCount); +void CommaSeparateNumberString(LPWSTR strNumber, ULONG nMaxCount); void ProcessPageShowContextMenu(DWORD dwProcessId); -BOOL PerfDataGetText(ULONG Index, ULONG ColumnIndex, LPTSTR lpText, int nMaxCount); +BOOL PerfDataGetText(ULONG Index, ULONG ColumnIndex, LPTSTR lpText, ULONG nMaxCount); DWORD WINAPI ProcessPageRefreshThread(void *lpParameter); int ProcessRunning(ULONG ProcessId); @@ -245,7 +245,7 @@ void ProcessPageOnNotify(WPARAM wParam, LPARAM lParam) Index = PerfDataGetProcessIndex(pData->ProcessId); ColumnIndex = pnmdi->item.iSubItem; - PerfDataGetText(Index, ColumnIndex, pnmdi->item.pszText, pnmdi->item.cchTextMax); + PerfDataGetText(Index, ColumnIndex, pnmdi->item.pszText, (ULONG)pnmdi->item.cchTextMax); break; @@ -290,7 +290,7 @@ void ProcessPageOnNotify(WPARAM wParam, LPARAM lParam) } } -void CommaSeparateNumberString(LPWSTR strNumber, int nMaxCount) +void CommaSeparateNumberString(LPWSTR strNumber, ULONG nMaxCount) { WCHAR temp[260]; UINT i, j, k; @@ -530,7 +530,7 @@ void AddProcess(ULONG Index) } } -BOOL PerfDataGetText(ULONG Index, ULONG ColumnIndex, LPTSTR lpText, int nMaxCount) +BOOL PerfDataGetText(ULONG Index, ULONG ColumnIndex, LPTSTR lpText, ULONG nMaxCount) { IO_COUNTERS iocounters; LARGE_INTEGER time; @@ -541,6 +541,8 @@ BOOL PerfDataGetText(ULONG Index, ULONG ColumnIndex, LPTSTR lpText, int nMaxCoun wsprintfW(lpText, L"%lu", PerfDataGetProcessId(Index)); if (ColumnDataHints[ColumnIndex] == COLUMN_USERNAME) PerfDataGetUserName(Index, lpText, nMaxCount); + if (ColumnDataHints[ColumnIndex] == COLUMN_COMMANDLINE) + PerfDataGetCommandLine(Index, lpText, nMaxCount); if (ColumnDataHints[ColumnIndex] == COLUMN_SESSIONID) wsprintfW(lpText, L"%lu", PerfDataGetSessionId(Index)); if (ColumnDataHints[ColumnIndex] == COLUMN_CPUUSAGE) @@ -753,6 +755,12 @@ int CALLBACK ProcessPageCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lPara PerfDataGetUserName(IndexParam2, text2, sizeof (text2) / sizeof (*text2)); ret = _wcsicmp(text1, text2); } + else if (TaskManagerSettings.SortColumn == COLUMN_COMMANDLINE) + { + PerfDataGetCommandLine(IndexParam1, text1, sizeof (text1) / sizeof (*text1)); + PerfDataGetCommandLine(IndexParam2, text2, sizeof (text2) / sizeof (*text2)); + ret = _wcsicmp(text1, text2); + } else if (TaskManagerSettings.SortColumn == COLUMN_SESSIONID) { l1 = PerfDataGetSessionId(IndexParam1); diff --git a/base/applications/taskmgr/resource.h b/base/applications/taskmgr/resource.h index 785193b62ab..8aca1bde315 100644 --- a/base/applications/taskmgr/resource.h +++ b/base/applications/taskmgr/resource.h @@ -113,6 +113,7 @@ #define IDC_IOOTHERBYTES 1047 #define IDC_CPU_USAGE_GRAPH 1047 #define IDC_CPU29 1048 +#define IDC_COMMANDLINE 1048 #define IDC_MEM_USAGE_GRAPH2 1048 #define IDC_MEM_USAGE_GRAPH 1048 #define IDC_CPU30 1049 @@ -222,6 +223,7 @@ #define IDS_TAB_IOREADBYTES 337 #define IDS_TAB_IOWRITESBYTES 338 #define IDS_TAB_IOOTHERBYTES 339 +#define IDS_TAB_COMMANDLINE 368 #define IDS_MENU_SELECTCOLUMNS 340 #define IDS_MENU_16BITTASK 341 diff --git a/base/applications/taskmgr/taskmgr.c b/base/applications/taskmgr/taskmgr.c index 2eb384b6af9..1b8a4b01ff6 100644 --- a/base/applications/taskmgr/taskmgr.c +++ b/base/applications/taskmgr/taskmgr.c @@ -480,6 +480,8 @@ TaskManagerWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) TaskManagerSettings.Maximized = TRUE; else TaskManagerSettings.Maximized = FALSE; + /* Get rid of the allocated command line cache, if any */ + PerfDataDeallocCommandLineCache(); return DefWindowProcW(hDlg, message, wParam, lParam); case WM_TIMER: @@ -1140,7 +1142,7 @@ LPWSTR GetLastErrorText(LPWSTR lpszBuf, DWORD dwSize) DWORD dwRet; LPWSTR lpszTemp = NULL; - dwRet = FormatMessageW( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |FORMAT_MESSAGE_ARGUMENT_ARRAY, + dwRet = FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ARGUMENT_ARRAY, NULL, GetLastError(), LANG_NEUTRAL, diff --git a/base/setup/welcome/lang/da-DK.rc b/base/setup/welcome/lang/da-DK.rc index b78cff4cc07..237dbf419aa 100644 --- a/base/setup/welcome/lang/da-DK.rc +++ b/base/setup/welcome/lang/da-DK.rc @@ -7,7 +7,7 @@ STRINGTABLE BEGIN IDS_APPTITLE "ReactOS - Velkommen" IDS_DEFAULTTOPICTITLE "ReactOS" - IDS_DEFAULTTOPICDESC "Velkommen til ReactOs operativ System.\n\nKlik på et emne til venstre." + IDS_DEFAULTTOPICDESC "Velkommen til ReactOS operativ System.\n\nKlik på et emne til venstre." // IDS_CHECKTEXT "Vis denne dialog igen ved opstart" // IDS_CLOSETEXT "Afslut" END @@ -46,7 +46,7 @@ END STRINGTABLE BEGIN IDS_TOPICDESC0 "Opret en ny ReactOS installation på din computer eller opgradere en eksisterende installation." - IDS_TOPICDESC1 "Gennemse Reactos Installations Cdrom" + IDS_TOPICDESC1 "Gennemse ReactOS Installations Cdrom" IDS_TOPICDESC2 "Klik på Afslut for at lukke." // IDS_TOPICDESC3 "Topic description 3.\n\nDescribe topic 3 here." // IDS_TOPICDESC4 "Topic description 4.\n\nDescribe topic 4 here." diff --git a/base/shell/cmd/lang/no-NO.rc b/base/shell/cmd/lang/no-NO.rc index c189bd61383..d9c4b1398cc 100644 --- a/base/shell/cmd/lang/no-NO.rc +++ b/base/shell/cmd/lang/no-NO.rc @@ -411,7 +411,7 @@ VERIFY [ON | OFF]\n\n\ Skriv VERIFY uten parametre for å vise gjeldende VERIFY innstillinger.\n" STRING_VERIFY_HELP2 "VERIFY er %s.\n" STRING_VERIFY_HELP3 "Må spesifisere ON eller OFF." - STRING_VERSION_HELP1 "Vis Reactos versjonen\n\n\ + STRING_VERSION_HELP1 "Vis ReactOS versjonen\n\n\ VER [/C][/R][/W]\n\n\ /C Vis anerkjennelse.\n\ /R Vis videreformidlingsinformasjon.\n\ diff --git a/base/shell/cmd/lang/sv-SE.rc b/base/shell/cmd/lang/sv-SE.rc index ecdd380d697..da739c64698 100644 --- a/base/shell/cmd/lang/sv-SE.rc +++ b/base/shell/cmd/lang/sv-SE.rc @@ -411,7 +411,7 @@ VERIFY [ON | OFF]\n\n\ Skriv VERIFY uten parametre för att visa aktuell VERIFY inställninar.\n" STRING_VERIFY_HELP2 "VERIFY är %s.\n" STRING_VERIFY_HELP3 "Må ange ON eller OFF." - STRING_VERSION_HELP1 "Vis Reactos versjonen\n\n\ + STRING_VERSION_HELP1 "Vis ReactOS versjonen\n\n\ VER [/C][/R][/W]\n\n\ /C Vis anerkjennelse.\n\ /R Vis videreformidlingsinformasjon.\n\ diff --git a/base/shell/explorer-old/explorer-el.rc b/base/shell/explorer-old/explorer-el.rc index 9c6d756b50d..d16ceccf288 100644 --- a/base/shell/explorer-old/explorer-el.rc +++ b/base/shell/explorer-old/explorer-el.rc @@ -39,7 +39,7 @@ BEGIN BEGIN MENUITEM " &FAQ...", ID_EXPLORER_FAQ MENUITEM "& ", ID_ABOUT_EXPLORER - MENUITEM "& Reactos", ID_ABOUT_WINDOWS + MENUITEM "& ReactOS", ID_ABOUT_WINDOWS END END @@ -102,7 +102,7 @@ BEGIN BEGIN MENUITEM " &FAQ", ID_EXPLORER_FAQ MENUITEM "& ", ID_ABOUT_EXPLORER - MENUITEM "& Reactos", ID_ABOUT_WINDOWS + MENUITEM "& ReactOS", ID_ABOUT_WINDOWS END END diff --git a/base/shell/explorer-old/explorer-zh.rc b/base/shell/explorer-old/explorer-zh.rc index 58746d4fd66..086e3e33c39 100644 --- a/base/shell/explorer-old/explorer-zh.rc +++ b/base/shell/explorer-old/explorer-zh.rc @@ -232,7 +232,7 @@ END STRINGTABLE BEGIN - IDS_TITLE "Reactos 浏览器" + IDS_TITLE "ReactOS 浏览器" IDS_START "开始" IDS_LOGOFF "注销..." IDS_SHUTDOWN "关闭..." diff --git a/dll/cpl/access/lang/bg-BG.rc b/dll/cpl/access/lang/bg-BG.rc index 4e606a270a4..3070e7c9246 100644 --- a/dll/cpl/access/lang/bg-BG.rc +++ b/dll/cpl/access/lang/bg-BG.rc @@ -48,7 +48,7 @@ CAPTION " FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "High Contrast", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) - LTEXT "Use this option if you want Reactos to use colors and fonts designed for easy reading.", + LTEXT "Use this option if you want ReactOS to use colors and fonts designed for easy reading.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "&Use High Contrast", IDC_CONTRAST_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "&Settings", IDC_CONTRAST_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 diff --git a/dll/cpl/access/lang/cs-CZ.rc b/dll/cpl/access/lang/cs-CZ.rc index 0b29558454b..3e174a6ff0f 100644 --- a/dll/cpl/access/lang/cs-CZ.rc +++ b/dll/cpl/access/lang/cs-CZ.rc @@ -48,7 +48,7 @@ CAPTION "Zobrazení" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Funkce Vysoký kontrast", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) - LTEXT "Vyberte tuto možnost pokud chcete, aby Reactos používal barvy a písma určené pro snadnou čitelnost.", + LTEXT "Vyberte tuto možnost pokud chcete, aby ReactOS používal barvy a písma určené pro snadnou čitelnost.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "&Použít funkci Vysoký kontrast", IDC_CONTRAST_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "&Nastavení", IDC_CONTRAST_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 diff --git a/dll/cpl/access/lang/el-GR.rc b/dll/cpl/access/lang/el-GR.rc index c76cd28c3cc..b0d8a6e008c 100644 --- a/dll/cpl/access/lang/el-GR.rc +++ b/dll/cpl/access/lang/el-GR.rc @@ -11,7 +11,7 @@ BEGIN AUTOCHECKBOX " & ", IDC_STICKY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "&", IDC_STICKY_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 GROUPBOX " ", -1, PROPSHEETPADDING(1), LABELLINE(8) + 5, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(7) + 2 - LTEXT " , Reactos , .", + LTEXT " , ReactOS , .", -1, PROPSHEETPADDING(2), LABELLINE(10) - 3, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX " & ", IDC_FILTER_BOX, PROPSHEETPADDING(2), LABELLINE(13) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "&", IDC_FILTER_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(13) + 2, PROPSHEETPADDING(15), 14 @@ -30,7 +30,7 @@ CAPTION " FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX " ", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(10) + PROPSHEETPADDING(1) - LTEXT " , Reactos .", + LTEXT " , ReactOS .", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX " ", IDC_SENTRY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 LTEXT " ", IDC_SENTRY_TEXT, PROPSHEETPADDING(2), LABELLINE(8) - 2, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(1) @@ -48,7 +48,7 @@ CAPTION " FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) - LTEXT " , Reactos .", + LTEXT " , ReactOS .", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX " ", IDC_CONTRAST_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "&", IDC_CONTRAST_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 diff --git a/dll/cpl/access/lang/en-US.rc b/dll/cpl/access/lang/en-US.rc index 0e80a953e57..0a482299d8f 100644 --- a/dll/cpl/access/lang/en-US.rc +++ b/dll/cpl/access/lang/en-US.rc @@ -11,7 +11,7 @@ BEGIN AUTOCHECKBOX "&Use StickyKeys", IDC_STICKY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "&Settings", IDC_STICKY_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 GROUPBOX "FilterKeys", -1, PROPSHEETPADDING(1), LABELLINE(8) + 5, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(7) + 2 - LTEXT "Use FilterKeys if you want Reactos to ignore brief or repeated keystrokes, or slow the repeat rate.", + LTEXT "Use FilterKeys if you want ReactOS to ignore brief or repeated keystrokes, or slow the repeat rate.", -1, PROPSHEETPADDING(2), LABELLINE(10) - 3, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "Use &FilterKeys", IDC_FILTER_BOX, PROPSHEETPADDING(2), LABELLINE(13) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "S&ettings", IDC_FILTER_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(13) + 2, PROPSHEETPADDING(15), 14 @@ -30,7 +30,7 @@ CAPTION "Sound" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "SoundSentry", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(10) + PROPSHEETPADDING(1) - LTEXT "Use SoundSentry if you want Reactos to generate visual warnings when your system makes a sound.", + LTEXT "Use SoundSentry if you want ReactOS to generate visual warnings when your system makes a sound.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "Use &SoundSentry", IDC_SENTRY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 LTEXT "Use the following warning:", IDC_SENTRY_TEXT, PROPSHEETPADDING(2), LABELLINE(8) - 2, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(1) @@ -48,7 +48,7 @@ CAPTION "Display" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "High Contrast", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) - LTEXT "Use this option if you want Reactos to use colors and fonts designed for easy reading.", + LTEXT "Use this option if you want ReactOS to use colors and fonts designed for easy reading.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "&Use High Contrast", IDC_CONTRAST_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "&Settings", IDC_CONTRAST_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 diff --git a/dll/cpl/access/lang/es-ES.rc b/dll/cpl/access/lang/es-ES.rc index 6ff58a098cc..e281e88c9c1 100644 --- a/dll/cpl/access/lang/es-ES.rc +++ b/dll/cpl/access/lang/es-ES.rc @@ -13,7 +13,7 @@ BEGIN AUTOCHECKBOX "Utilizar &StickyKeys ", IDC_STICKY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "&Configuracin", IDC_STICKY_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 GROUPBOX "FilterKeys", -1, PROPSHEETPADDING(1), LABELLINE(8) + 5, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(7) + 2 - LTEXT "Use FilterKeys si desea que Reactos omita la pulsaciones repetidas o breves, o reducir la velocidad de repeticin.", + LTEXT "Use FilterKeys si desea que ReactOS omita la pulsaciones repetidas o breves, o reducir la velocidad de repeticin.", -1, PROPSHEETPADDING(2), LABELLINE(10) - 3, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "Utilizar &FilterKeys", IDC_FILTER_BOX, PROPSHEETPADDING(2), LABELLINE(13) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "Co&nfiguracin", IDC_FILTER_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(13) + 2, PROPSHEETPADDING(15), 14 @@ -32,7 +32,7 @@ CAPTION "Sonido" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Vigilante Auditivo ", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(10) + PROPSHEETPADDING(1) - LTEXT "Use el Vigilante Auditivo si desea que Reactos genere avisos visuales cuando el sistema emita un sonido.", + LTEXT "Use el Vigilante Auditivo si desea que ReactOS genere avisos visuales cuando el sistema emita un sonido.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "Utilizar Vigilante Auditivo", IDC_SENTRY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 LTEXT "Elija la advertencia visual:", IDC_SENTRY_TEXT, PROPSHEETPADDING(2), LABELLINE(8) - 2, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(1) @@ -50,7 +50,7 @@ CAPTION "Pantalla" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Contraste alto ", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) - LTEXT "Use esta opcin si desea que Reactos use colores y letras diseadas para una lectura ms cmoda.", + LTEXT "Use esta opcin si desea que ReactOS use colores y letras diseadas para una lectura ms cmoda.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "&Utilizar Contraste alto", IDC_CONTRAST_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "C&onfiguracin", IDC_CONTRAST_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 diff --git a/dll/cpl/access/lang/fr-FR.rc b/dll/cpl/access/lang/fr-FR.rc index 6e260bbaf62..3cd943943ef 100644 --- a/dll/cpl/access/lang/fr-FR.rc +++ b/dll/cpl/access/lang/fr-FR.rc @@ -32,7 +32,7 @@ CAPTION "Son" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Sons visuels", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(10) + PROPSHEETPADDING(1) - LTEXT "Utilisez les sons visuels si vous voulez que Reactos gnre un avertissement visuel lorsque votre systme met un son.", + LTEXT "Utilisez les sons visuels si vous voulez que ReactOS gnre un avertissement visuel lorsque votre systme met un son.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "Utiliser les &sons visuels", IDC_SENTRY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 LTEXT "Utiliser l'avertissement suivant :", IDC_SENTRY_TEXT, PROPSHEETPADDING(2), LABELLINE(8) - 2, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(1) diff --git a/dll/cpl/access/lang/he-IL.rc b/dll/cpl/access/lang/he-IL.rc index e2a246f5f89..384ca73772c 100644 --- a/dll/cpl/access/lang/he-IL.rc +++ b/dll/cpl/access/lang/he-IL.rc @@ -13,7 +13,7 @@ BEGIN AUTOCHECKBOX "השתמש במקשים דביקים", IDC_STICKY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "הגדרות", IDC_STICKY_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 GROUPBOX "FilterKeys", -1, PROPSHEETPADDING(1), LABELLINE(8) + 5, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(7) + 2 - LTEXT "Use FilterKeys if you want Reactos to ignore brief or repeated keystrokes, or slow the repeat rate.", + LTEXT "Use FilterKeys if you want ReactOS to ignore brief or repeated keystrokes, or slow the repeat rate.", -1, PROPSHEETPADDING(2), LABELLINE(10) - 3, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "Use &FilterKeys", IDC_FILTER_BOX, PROPSHEETPADDING(2), LABELLINE(13) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "הגדרות", IDC_FILTER_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(13) + 2, PROPSHEETPADDING(15), 14 @@ -32,7 +32,7 @@ CAPTION "צליל" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "שומר קולי", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(10) + PROPSHEETPADDING(1) - LTEXT "Use SoundSentry if you want Reactos to generate visual warnings when your system makes a sound.", + LTEXT "Use SoundSentry if you want ReactOS to generate visual warnings when your system makes a sound.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "השתמש בשומר הקולי", IDC_SENTRY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 LTEXT "השתמש באזהרות הבאות:", IDC_SENTRY_TEXT, PROPSHEETPADDING(2), LABELLINE(8) - 2, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(1) @@ -50,7 +50,7 @@ CAPTION "תצןגה" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "ניגודיות גבוהה", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) - LTEXT "Use this option if you want Reactos to use colors and fonts designed for easy reading.", + LTEXT "Use this option if you want ReactOS to use colors and fonts designed for easy reading.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "השתמש בניגודיות גבוהה", IDC_CONTRAST_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "הגדרות", IDC_CONTRAST_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 diff --git a/dll/cpl/access/lang/hu-HU.rc b/dll/cpl/access/lang/hu-HU.rc index 32f862e688f..6765fa51fff 100644 --- a/dll/cpl/access/lang/hu-HU.rc +++ b/dll/cpl/access/lang/hu-HU.rc @@ -13,7 +13,7 @@ BEGIN AUTOCHECKBOX "&Beragad billentyk hasznlata", IDC_STICKY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "&Belltsok", IDC_STICKY_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 GROUPBOX "FilterKeys", -1, PROPSHEETPADDING(1), LABELLINE(8) + 5, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(7) + 2 - LTEXT "Use FilterKeys if you want Reactos to ignore brief or repeated keystrokes, or slow the repeat rate.", + LTEXT "Use FilterKeys if you want ReactOS to ignore brief or repeated keystrokes, or slow the repeat rate.", -1, PROPSHEETPADDING(2), LABELLINE(10) - 3, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "Use &FilterKeys", IDC_FILTER_BOX, PROPSHEETPADDING(2), LABELLINE(13) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "B&elltsok", IDC_FILTER_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(13) + 2, PROPSHEETPADDING(15), 14 @@ -32,7 +32,7 @@ CAPTION "Hang" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "HangFigyel", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(10) + PROPSHEETPADDING(1) - LTEXT "Ezt a funkcit akkor hasznlja, ha szeretn, hogy a Reactos lthat figyelmeztetseket kldjn olyankor, amikor a rendszer hangjelzst ad.", + LTEXT "Ezt a funkcit akkor hasznlja, ha szeretn, hogy a ReactOS lthat figyelmeztetseket kldjn olyankor, amikor a rendszer hangjelzst ad.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "&HangFigyel hasznlata", IDC_SENTRY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 LTEXT "User the following warning:", IDC_SENTRY_TEXT, PROPSHEETPADDING(2), LABELLINE(8) - 2, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(1) @@ -50,7 +50,7 @@ CAPTION "K FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Nagy kontraszt", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) - LTEXT "Ha azt szeretn, hogy a Reactos olyan szneket hasznljon, amelyek a knny olvasst teszik lehetv, akkor vlassza ki ezt a lehetsget.", + LTEXT "Ha azt szeretn, hogy a ReactOS olyan szneket hasznljon, amelyek a knny olvasst teszik lehetv, akkor vlassza ki ezt a lehetsget.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "&Nagy kontraszt hasznlata", IDC_CONTRAST_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "&Belltsok", IDC_CONTRAST_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 diff --git a/dll/cpl/access/lang/id-ID.rc b/dll/cpl/access/lang/id-ID.rc index 621d6156667..b67c8fd9fcc 100644 --- a/dll/cpl/access/lang/id-ID.rc +++ b/dll/cpl/access/lang/id-ID.rc @@ -13,7 +13,7 @@ BEGIN AUTOCHECKBOX "&Gunakan StickyKeys", IDC_STICKY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "&Setelan", IDC_STICKY_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 GROUPBOX "FilterKeys", -1, PROPSHEETPADDING(1), LABELLINE(8) + 5, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(7) + 2 - LTEXT "Gunakan FilterKeys jika anda ingin Reactos untuk mengabaikan atau tombol berulang, atau rata-rata ulangan lambat.", + LTEXT "Gunakan FilterKeys jika anda ingin ReactOS untuk mengabaikan atau tombol berulang, atau rata-rata ulangan lambat.", -1, PROPSHEETPADDING(2), LABELLINE(10) - 3, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "Gunakan &FilterKeys", IDC_FILTER_BOX, PROPSHEETPADDING(2), LABELLINE(13) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "S&etelan", IDC_FILTER_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(13) + 2, PROPSHEETPADDING(15), 14 @@ -32,7 +32,7 @@ CAPTION "Suara" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "SoundSentry", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(10) + PROPSHEETPADDING(1) - LTEXT "Gunakan SoundSentry jika anda ingin Reactos untuk membuat peringatan visual ketika sistem anda membuat suara.", + LTEXT "Gunakan SoundSentry jika anda ingin ReactOS untuk membuat peringatan visual ketika sistem anda membuat suara.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "Gunakan &SoundSentry", IDC_SENTRY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 LTEXT "User the following warning:", IDC_SENTRY_TEXT, PROPSHEETPADDING(2), LABELLINE(8) - 2, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(1) @@ -50,7 +50,7 @@ CAPTION "Tampilan" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Kontras Tinggi", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) - LTEXT "Gunakan opsi ini jika anda ingin Reactos untuk memakai warna dan font yang didesain guna memudahkan pembacaan.", + LTEXT "Gunakan opsi ini jika anda ingin ReactOS untuk memakai warna dan font yang didesain guna memudahkan pembacaan.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "&Gunakan Kontras Tinggi", IDC_CONTRAST_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "&Setelan", IDC_CONTRAST_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 diff --git a/dll/cpl/access/lang/nl-NL.rc b/dll/cpl/access/lang/nl-NL.rc index 75ca57a7483..29d8579abcb 100644 --- a/dll/cpl/access/lang/nl-NL.rc +++ b/dll/cpl/access/lang/nl-NL.rc @@ -15,7 +15,7 @@ BEGIN AUTOCHECKBOX "&Plaktoetsen Gebruiken", IDC_STICKY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH_NL - PROPSHEETPADDING(20), 14 PUSHBUTTON "&Instellingen...", IDC_STICKY_BUTTON, PROPSHEETWIDTH_NL - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 GROUPBOX "Filtertoetsen", -1, PROPSHEETPADDING(1), LABELLINE(8) + 5, PROPSHEETWIDTH_NL - PROPSHEETPADDING(2), LABELLINE(7) + 2 - LTEXT "U kunt Filtertoetsen gebruiken als u wilt dat Reactos korte of herhaalde toetsaanslagen negeert, of als u de herhaalsnelheid wilt verlagen.", + LTEXT "U kunt Filtertoetsen gebruiken als u wilt dat ReactOS korte of herhaalde toetsaanslagen negeert, of als u de herhaalsnelheid wilt verlagen.", -1, PROPSHEETPADDING(2), LABELLINE(10) - 3, PROPSHEETWIDTH_NL - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "&Filtertoetsen gebruiken", IDC_FILTER_BOX, PROPSHEETPADDING(2), LABELLINE(13) + 2, PROPSHEETWIDTH_NL - PROPSHEETPADDING(20), 14 PUSHBUTTON "Inst&ellingen...", IDC_FILTER_BUTTON, PROPSHEETWIDTH_NL - PROPSHEETPADDING(17), LABELLINE(13) + 2, PROPSHEETPADDING(15), 14 @@ -34,7 +34,7 @@ CAPTION "Geluid" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Geluidswaarschuwingen", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH_NL - PROPSHEETPADDING(2), LABELLINE(10) + PROPSHEETPADDING(1) - LTEXT "Schakel Geluidswaarschuwingen gebruiken in als u wilt dat Reactos een visuele waarschuwing weergeeft wanneer het systeem een geluid laat horen.", + LTEXT "Schakel Geluidswaarschuwingen gebruiken in als u wilt dat ReactOS een visuele waarschuwing weergeeft wanneer het systeem een geluid laat horen.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH_NL - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "&Geluidswaarschuwingen gebruiken", IDC_SENTRY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 LTEXT "Use the following warning:", IDC_SENTRY_TEXT, PROPSHEETPADDING(2), LABELLINE(8) - 2, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(1) @@ -52,7 +52,7 @@ CAPTION "Weergave" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Hoog Contrast", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH_NL - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) - LTEXT "U kunt deze optie gebruiken als u wilt dat Reactos kleuren en lettertypen zodanig instelt dat deze gemakkelijk te lezen zijn.", + LTEXT "U kunt deze optie gebruiken als u wilt dat ReactOS kleuren en lettertypen zodanig instelt dat deze gemakkelijk te lezen zijn.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH_NL - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "&Hoog contrast gebruiken", IDC_CONTRAST_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH_NL - PROPSHEETPADDING(20), 14 PUSHBUTTON "I&nstellingen...", IDC_CONTRAST_BUTTON, PROPSHEETWIDTH_NL - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 diff --git a/dll/cpl/access/lang/no-NO.rc b/dll/cpl/access/lang/no-NO.rc index ffa2b90d7b8..eac3c64f6f5 100644 --- a/dll/cpl/access/lang/no-NO.rc +++ b/dll/cpl/access/lang/no-NO.rc @@ -11,7 +11,7 @@ BEGIN AUTOCHECKBOX "&Bruk Trege taster", IDC_STICKY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "&Innstillinger", IDC_STICKY_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 GROUPBOX "Filtertaster", -1, PROPSHEETPADDING(1), LABELLINE(8) + 5, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(7) + 2 - LTEXT "Bruk filtertaster hvis du vil at Reactos skal ignorere lette eller gjentatte tastetrykk, eller senke repetisjonshastigheten.", + LTEXT "Bruk filtertaster hvis du vil at ReactOS skal ignorere lette eller gjentatte tastetrykk, eller senke repetisjonshastigheten.", -1, PROPSHEETPADDING(2), LABELLINE(10) - 3, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "Bruk &filtertaster", IDC_FILTER_BOX, PROPSHEETPADDING(2), LABELLINE(13) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "I&nnstillinger", IDC_FILTER_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(13) + 2, PROPSHEETPADDING(15), 14 @@ -30,7 +30,7 @@ CAPTION "Lyd" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Skjermsignal", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(10) + PROPSHEETPADDING(1) - LTEXT "Bruk skjermsignal hvis du vil at Reactos skal gi en visuell varsling nr systemet lager lyd.", + LTEXT "Bruk skjermsignal hvis du vil at ReactOS skal gi en visuell varsling nr systemet lager lyd.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "Bruk &skjermsignal", IDC_SENTRY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 LTEXT "Velg flgende varsling:", IDC_SENTRY_TEXT, PROPSHEETPADDING(2), LABELLINE(8) - 2, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(1) @@ -48,7 +48,7 @@ CAPTION "Skjerm" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Hykontrast", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) - LTEXT "Velg dette alternativet hvis du vil at Reactos skal bruke farger og skrifter som er laget for gjre det lett leselig.", + LTEXT "Velg dette alternativet hvis du vil at ReactOS skal bruke farger og skrifter som er laget for gjre det lett leselig.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "&Bruk hykontrast", IDC_CONTRAST_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "&Innstillinger", IDC_CONTRAST_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 diff --git a/dll/cpl/access/lang/pl-PL.rc b/dll/cpl/access/lang/pl-PL.rc index 787a19047db..106f4c06afa 100644 --- a/dll/cpl/access/lang/pl-PL.rc +++ b/dll/cpl/access/lang/pl-PL.rc @@ -54,7 +54,7 @@ CAPTION "Ekran" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Wysoki Kontrast", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) - LTEXT "Użyj tej funkcji, jeśli chcesz, żeby Reactos używał kolorów i czcionek zaprojektowanych do łatwego czytania", + LTEXT "Użyj tej funkcji, jeśli chcesz, żeby ReactOS używał kolorów i czcionek zaprojektowanych do łatwego czytania", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "&Użyj funkcji Wysoki Kontrast", IDC_CONTRAST_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "U&stawienia", IDC_CONTRAST_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 diff --git a/dll/cpl/access/lang/sk-SK.rc b/dll/cpl/access/lang/sk-SK.rc index 9689ccfeb29..7d41b14a76d 100644 --- a/dll/cpl/access/lang/sk-SK.rc +++ b/dll/cpl/access/lang/sk-SK.rc @@ -15,7 +15,7 @@ BEGIN AUTOCHECKBOX "&Use StickyKeys", IDC_STICKY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "&Settings", IDC_STICKY_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 GROUPBOX "FilterKeys", -1, PROPSHEETPADDING(1), LABELLINE(8) + 5, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(7) + 2 - LTEXT "Use FilterKeys if you want Reactos to ignore brief or repeated keystrokes, or slow the repeat rate.", + LTEXT "Use FilterKeys if you want ReactOS to ignore brief or repeated keystrokes, or slow the repeat rate.", -1, PROPSHEETPADDING(2), LABELLINE(10) - 3, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "Use &FilterKeys", IDC_FILTER_BOX, PROPSHEETPADDING(2), LABELLINE(13) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "S&ettings", IDC_FILTER_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(13) + 2, PROPSHEETPADDING(15), 14 @@ -34,7 +34,7 @@ CAPTION "Zvuk" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "SoundSentry", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(10) + PROPSHEETPADDING(1) - LTEXT "Use SoundSentry if you want Reactos to generate visual warnings when your system makes a sound.", + LTEXT "Use SoundSentry if you want ReactOS to generate visual warnings when your system makes a sound.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "Use &SoundSentry", IDC_SENTRY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 LTEXT "Use the following warning:", IDC_SENTRY_TEXT, PROPSHEETPADDING(2), LABELLINE(8) - 2, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(1) @@ -52,7 +52,7 @@ CAPTION "Obrazovka" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Vysok kontrast", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) - LTEXT "Use this option if you want Reactos to use colors and fonts designed for easy reading.", + LTEXT "Use this option if you want ReactOS to use colors and fonts designed for easy reading.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "&Use High Contrast", IDC_CONTRAST_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "&Settings", IDC_CONTRAST_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 diff --git a/dll/cpl/access/lang/sq-AL.rc b/dll/cpl/access/lang/sq-AL.rc index 885757752d6..b064253832c 100644 --- a/dll/cpl/access/lang/sq-AL.rc +++ b/dll/cpl/access/lang/sq-AL.rc @@ -15,7 +15,7 @@ BEGIN AUTOCHECKBOX "&Perdor StickyKeys", IDC_STICKY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "Konfigurime", IDC_STICKY_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 GROUPBOX "FilterKeys", -1, PROPSHEETPADDING(1), LABELLINE(8) + 5, PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(7) + 2 - LTEXT "Perdp FilterKeys nese doni Reactos te injorohe ose perserise keystrokes, ose te ngadalsoje kohen e perseritjes.", + LTEXT "Perdp FilterKeys nese doni ReactOS te injorohe ose perserise keystrokes, ose te ngadalsoje kohen e perseritjes.", -1, PROPSHEETPADDING(2), LABELLINE(10) - 3, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "Perdor &FilterKeys", IDC_FILTER_BOX, PROPSHEETPADDING(2), LABELLINE(13) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "Konfigurime", IDC_FILTER_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(13) + 2, PROPSHEETPADDING(15), 14 @@ -34,7 +34,7 @@ CAPTION "Zë" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "SoundSentry", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(10) + PROPSHEETPADDING(1) - LTEXT "Perdor SoundSentry nese doni qe Reactos te gjeneroj gabime vizuale kur sistemi juaj jep nje zë.", + LTEXT "Perdor SoundSentry nese doni qe ReactOS te gjeneroj gabime vizuale kur sistemi juaj jep nje zë.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "Perdor &SoundSentry", IDC_SENTRY_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 LTEXT "Perdor gabimet e metejshme:", IDC_SENTRY_TEXT, PROPSHEETPADDING(2), LABELLINE(8) - 2, PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(1) @@ -52,7 +52,7 @@ CAPTION "Ekrani" FONT 8, "MS Shell Dlg", 0, 0, 0x0 BEGIN GROUPBOX "Kontrast i lartë", -1, PROPSHEETPADDING(1), LABELLINE(1), PROPSHEETWIDTH - PROPSHEETPADDING(2), LABELLINE(6) + PROPSHEETPADDING(1) - LTEXT "Përdoreni këtë mundësi nëse doni Reactos të përdorni ngjyrat dhe gërmat projektuar për leximin e lehtë.", + LTEXT "Përdoreni këtë mundësi nëse doni ReactOS të përdorni ngjyrat dhe gërmat projektuar për leximin e lehtë.", -1, PROPSHEETPADDING(2), LABELLINE(2), PROPSHEETWIDTH - PROPSHEETPADDING(4), LABELLINE(3) AUTOCHECKBOX "Perdor kontrast te larte", IDC_CONTRAST_BOX, PROPSHEETPADDING(2), LABELLINE(5) + 2, PROPSHEETWIDTH - PROPSHEETPADDING(20), 14 PUSHBUTTON "Konfigurime", IDC_CONTRAST_BUTTON, PROPSHEETWIDTH - PROPSHEETPADDING(17), LABELLINE(5) + 2, PROPSHEETPADDING(15), 14 diff --git a/dll/cpl/mmsys/lang/nl-NL.rc b/dll/cpl/mmsys/lang/nl-NL.rc index 0315b15a310..44c5b50f1cc 100644 --- a/dll/cpl/mmsys/lang/nl-NL.rc +++ b/dll/cpl/mmsys/lang/nl-NL.rc @@ -27,7 +27,7 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Geluiden" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Een geluidsschema is een verzameling geluiden die worden toegepast op Reactos- en programmagebeurtenissen. U kunt een bestaand schema slecteren of een aangepast schema opslaan.", -1, 8, 7, 230, 40 + LTEXT "Een geluidsschema is een verzameling geluiden die worden toegepast op ReactOS- en programmagebeurtenissen. U kunt een bestaand schema slecteren of een aangepast schema opslaan.", -1, 8, 7, 230, 40 LTEXT "Geluid&sschema:", -1, 8, 42, 150, 17 COMBOBOX IDC_SOUND_SCHEME, 8, 53, 230, 46, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "&Opslaan als...", IDC_SAVEAS_BTN, 104, 70, 65, 15 diff --git a/dll/ntdll/def/ntdll.spec b/dll/ntdll/def/ntdll.spec index 16863d972ff..0894a898ec2 100644 --- a/dll/ntdll/def/ntdll.spec +++ b/dll/ntdll/def/ntdll.spec @@ -630,8 +630,8 @@ @ stdcall RtlFirstFreeAce(ptr ptr) @ stdcall RtlFlushSecureMemoryCache(ptr ptr) @ stdcall RtlFormatCurrentUserKeyPath(ptr) -@ stdcall RtlFormatMessage(ptr long long long long ptr ptr long) -@ stdcall RtlFormatMessageEx(ptr long long long long ptr ptr long long) +@ stdcall RtlFormatMessage(ptr long long long long ptr ptr long ptr) +@ stdcall RtlFormatMessageEx(ptr long long long long ptr ptr long ptr long) @ stdcall RtlFreeActivationContextStack(ptr) @ stdcall RtlFreeAnsiString(long) @ stdcall RtlFreeHandle(ptr ptr) diff --git a/dll/win32/kernel32/client/console/console.c b/dll/win32/kernel32/client/console/console.c index df6c02fceeb..72251cb2814 100644 --- a/dll/win32/kernel32/client/console/console.c +++ b/dll/win32/kernel32/client/console/console.c @@ -1166,9 +1166,7 @@ IntAllocConsole(LPWSTR Title, PCONSOLE_START_INFO ConsoleStartInfo) { BOOL Success = TRUE; -#ifdef USE_CONSOLE_INIT_HANDLES NTSTATUS Status; -#endif CONSOLE_API_MESSAGE ApiMessage; PCONSOLE_ALLOCCONSOLE AllocConsoleRequest = &ApiMessage.Data.AllocConsoleRequest; @@ -1229,9 +1227,9 @@ IntAllocConsole(LPWSTR Title, goto Quit; } -#ifdef USE_CONSOLE_INIT_HANDLES - // Is AllocConsoleRequest->ConsoleStartInfo->Events aligned on handle boundary ???? - Status = NtWaitForMultipleObjects(2, AllocConsoleRequest->ConsoleStartInfo->Events, + // Is AllocConsoleRequest->ConsoleStartInfo->InitEvents aligned on handle boundary ???? + Status = NtWaitForMultipleObjects(MAX_INIT_EVENTS, + AllocConsoleRequest->ConsoleStartInfo->InitEvents, WaitAny, FALSE, NULL); if (!NT_SUCCESS(Status)) { @@ -1240,15 +1238,14 @@ IntAllocConsole(LPWSTR Title, goto Quit; } - NtClose(AllocConsoleRequest->ConsoleStartInfo->Events[0]); - NtClose(AllocConsoleRequest->ConsoleStartInfo->Events[1]); - if (Status != STATUS_SUCCESS) + NtClose(AllocConsoleRequest->ConsoleStartInfo->InitEvents[INIT_SUCCESS]); + NtClose(AllocConsoleRequest->ConsoleStartInfo->InitEvents[INIT_FAILURE]); + if (Status != INIT_SUCCESS) { NtCurrentPeb()->ProcessParameters->ConsoleHandle = NULL; Success = FALSE; } else -#endif { RtlCopyMemory(ConsoleStartInfo, AllocConsoleRequest->ConsoleStartInfo, @@ -2505,9 +2502,7 @@ IntAttachConsole(DWORD ProcessId, PCONSOLE_START_INFO ConsoleStartInfo) { BOOL Success = TRUE; -#ifdef USE_CONSOLE_INIT_HANDLES NTSTATUS Status; -#endif CONSOLE_API_MESSAGE ApiMessage; PCONSOLE_ATTACHCONSOLE AttachConsoleRequest = &ApiMessage.Data.AttachConsoleRequest; @@ -2541,9 +2536,9 @@ IntAttachConsole(DWORD ProcessId, goto Quit; } -#ifdef USE_CONSOLE_INIT_HANDLES - // Is AttachConsoleRequest->ConsoleStartInfo->Events aligned on handle boundary ???? - Status = NtWaitForMultipleObjects(2, AttachConsoleRequest->ConsoleStartInfo->Events, + // Is AttachConsoleRequest->ConsoleStartInfo->InitEvents aligned on handle boundary ???? + Status = NtWaitForMultipleObjects(MAX_INIT_EVENTS, + AttachConsoleRequest->ConsoleStartInfo->InitEvents, WaitAny, FALSE, NULL); if (!NT_SUCCESS(Status)) { @@ -2552,15 +2547,14 @@ IntAttachConsole(DWORD ProcessId, goto Quit; } - NtClose(AttachConsoleRequest->ConsoleStartInfo->Events[0]); - NtClose(AttachConsoleRequest->ConsoleStartInfo->Events[1]); - if (Status != STATUS_SUCCESS) + NtClose(AttachConsoleRequest->ConsoleStartInfo->InitEvents[INIT_SUCCESS]); + NtClose(AttachConsoleRequest->ConsoleStartInfo->InitEvents[INIT_FAILURE]); + if (Status != INIT_SUCCESS) { NtCurrentPeb()->ProcessParameters->ConsoleHandle = NULL; Success = FALSE; } else -#endif { RtlCopyMemory(ConsoleStartInfo, AttachConsoleRequest->ConsoleStartInfo, diff --git a/dll/win32/kernel32/client/console/init.c b/dll/win32/kernel32/client/console/init.c index 5134028b9c5..985cb660127 100644 --- a/dll/win32/kernel32/client/console/init.c +++ b/dll/win32/kernel32/client/console/init.c @@ -308,9 +308,10 @@ ConnectConsole(IN PWSTR SessionDir, /* Nothing to do if this is not a console app */ if (!ConnectInfo->IsConsoleApp) return TRUE; -#ifdef USE_CONSOLE_INIT_HANDLES /* Wait for the connection to finish */ - Status = NtWaitForMultipleObjects(2, ConnectInfo->ConsoleStartInfo.Events, + // Is ConnectInfo->ConsoleStartInfo.InitEvents aligned on handle boundary ???? + Status = NtWaitForMultipleObjects(MAX_INIT_EVENTS, + ConnectInfo->ConsoleStartInfo.InitEvents, WaitAny, FALSE, NULL); if (!NT_SUCCESS(Status)) { @@ -318,15 +319,13 @@ ConnectConsole(IN PWSTR SessionDir, return FALSE; } - NtClose(ConnectInfo->ConsoleStartInfo.Events[0]); - NtClose(ConnectInfo->ConsoleStartInfo.Events[1]); - - if (Status != STATUS_SUCCESS) + NtClose(ConnectInfo->ConsoleStartInfo.InitEvents[INIT_SUCCESS]); + NtClose(ConnectInfo->ConsoleStartInfo.InitEvents[INIT_FAILURE]); + if (Status != INIT_SUCCESS) { NtCurrentPeb()->ProcessParameters->ConsoleHandle = NULL; return FALSE; } -#endif return TRUE; } diff --git a/dll/win32/kernel32/client/proc.c b/dll/win32/kernel32/client/proc.c index da22dafac2f..0948f8bf94a 100644 --- a/dll/win32/kernel32/client/proc.c +++ b/dll/win32/kernel32/client/proc.c @@ -3992,7 +3992,7 @@ StartScan: if (!NT_SUCCESS(Status)) { /* Bail out on failure */ - DPRINT1("Failed to reserved memory for VDM: %lx\n", Status); + DPRINT1("Failed to reserve memory for VDM: %lx\n", Status); BaseSetLastNTError(Status); Result = FALSE; goto Quickie; diff --git a/dll/win32/kernel32/include/console.h b/dll/win32/kernel32/include/console.h index 79e1d9a8022..b6462af46b6 100644 --- a/dll/win32/kernel32/include/console.h +++ b/dll/win32/kernel32/include/console.h @@ -14,10 +14,6 @@ #define HANDLE_CREATE_NEW_CONSOLE (HANDLE)-2 #define HANDLE_CREATE_NO_WINDOW (HANDLE)-3 -// Enable (and then get rid of) this define when support for -// console initialization handles is implemented in CONSRV. -// #define USE_CONSOLE_INIT_HANDLES - /* FUNCTION PROTOTYPES ********************************************************/ diff --git a/dll/win32/syssetup/lang/nl-NL.rc b/dll/win32/syssetup/lang/nl-NL.rc index 14ea0dd39fb..dc557078bd1 100644 --- a/dll/win32/syssetup/lang/nl-NL.rc +++ b/dll/win32/syssetup/lang/nl-NL.rc @@ -5,8 +5,8 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "ReactOS Setup" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Welkom bij de Reactos installatiewizard.", IDC_WELCOMETITLE, 115, 8, 195, 24 - LTEXT "Deze wizard zal Reactos op je computer installeren. De wizard heeft informatie over jou en jouw computer nodig om Reactos correct in te stellen.", IDC_STATIC, 115, 40, 195, 100 + LTEXT "Welkom bij de ReactOS installatiewizard.", IDC_WELCOMETITLE, 115, 8, 195, 24 + LTEXT "Deze wizard zal ReactOS op je computer installeren. De wizard heeft informatie over jou en jouw computer nodig om ReactOS correct in te stellen.", IDC_STATIC, 115, 40, 195, 100 LTEXT "Klik op Volgende om voort te gaan met de installatie.", IDC_STATIC, 115, 169, 195, 17 END diff --git a/drivers/filesystems/ntfs/attrib.c b/drivers/filesystems/ntfs/attrib.c index ac4d6419119..675a2d8d8af 100644 --- a/drivers/filesystems/ntfs/attrib.c +++ b/drivers/filesystems/ntfs/attrib.c @@ -314,4 +314,22 @@ GetFileNameFromRecord(PFILE_RECORD_HEADER FileRecord, UCHAR NameType) return NULL; } +PFILENAME_ATTRIBUTE +GetBestFileNameFromRecord(PFILE_RECORD_HEADER FileRecord) +{ + PFILENAME_ATTRIBUTE FileName; + + FileName = GetFileNameFromRecord(FileRecord, NTFS_FILE_NAME_POSIX); + if (FileName == NULL) + { + FileName = GetFileNameFromRecord(FileRecord, NTFS_FILE_NAME_WIN32); + if (FileName == NULL) + { + FileName = GetFileNameFromRecord(FileRecord, NTFS_FILE_NAME_DOS); + } + } + + return FileName; +} + /* EOF */ diff --git a/drivers/filesystems/ntfs/dirctl.c b/drivers/filesystems/ntfs/dirctl.c index 088b69fe6ef..60c59a81566 100644 --- a/drivers/filesystems/ntfs/dirctl.c +++ b/drivers/filesystems/ntfs/dirctl.c @@ -137,15 +137,7 @@ NtfsGetNameInformation(PDEVICE_EXTENSION DeviceExt, DPRINT("NtfsGetNameInformation() called\n"); - FileName = GetFileNameFromRecord(FileRecord, NTFS_FILE_NAME_POSIX); - if (FileName == NULL) - { - FileName = GetFileNameFromRecord(FileRecord, NTFS_FILE_NAME_WIN32); - if (FileName == NULL) - { - FileName = GetFileNameFromRecord(FileRecord, NTFS_FILE_NAME_DOS); - } - } + FileName = GetBestFileNameFromRecord(FileRecord); ASSERT(FileName != NULL); Length = FileName->NameLength * sizeof (WCHAR); @@ -173,15 +165,7 @@ NtfsGetDirectoryInformation(PDEVICE_EXTENSION DeviceExt, DPRINT("NtfsGetDirectoryInformation() called\n"); - FileName = GetFileNameFromRecord(FileRecord, NTFS_FILE_NAME_POSIX); - if (FileName == NULL) - { - FileName = GetFileNameFromRecord(FileRecord, NTFS_FILE_NAME_WIN32); - if (FileName == NULL) - { - FileName = GetFileNameFromRecord(FileRecord, NTFS_FILE_NAME_DOS); - } - } + FileName = GetBestFileNameFromRecord(FileRecord); ASSERT(FileName != NULL); Length = FileName->NameLength * sizeof (WCHAR); @@ -222,15 +206,7 @@ NtfsGetFullDirectoryInformation(PDEVICE_EXTENSION DeviceExt, DPRINT("NtfsGetFullDirectoryInformation() called\n"); - FileName = GetFileNameFromRecord(FileRecord, NTFS_FILE_NAME_POSIX); - if (FileName == NULL) - { - FileName = GetFileNameFromRecord(FileRecord, NTFS_FILE_NAME_WIN32); - if (FileName == NULL) - { - FileName = GetFileNameFromRecord(FileRecord, NTFS_FILE_NAME_DOS); - } - } + FileName = GetBestFileNameFromRecord(FileRecord); ASSERT(FileName != NULL); Length = FileName->NameLength * sizeof (WCHAR); @@ -272,15 +248,7 @@ NtfsGetBothDirectoryInformation(PDEVICE_EXTENSION DeviceExt, DPRINT("NtfsGetBothDirectoryInformation() called\n"); - FileName = GetFileNameFromRecord(FileRecord, NTFS_FILE_NAME_POSIX); - if (FileName == NULL) - { - FileName = GetFileNameFromRecord(FileRecord, NTFS_FILE_NAME_WIN32); - if (FileName == NULL) - { - FileName = GetFileNameFromRecord(FileRecord, NTFS_FILE_NAME_DOS); - } - } + FileName = GetBestFileNameFromRecord(FileRecord); ASSERT(FileName != NULL); ShortFileName = GetFileNameFromRecord(FileRecord, NTFS_FILE_NAME_DOS); @@ -380,14 +348,7 @@ NtfsQueryDirectory(PNTFS_IRP_CONTEXT IrpContext) return STATUS_INSUFFICIENT_RESOURCES; } - Status = RtlUpcaseUnicodeString(&Pattern, SearchPattern, FALSE); - if (!NT_SUCCESS(Status)) - { - DPRINT1("RtlUpcaseUnicodeString('%wZ') failed with status 0x%08lx\n", &Pattern, Status); - ExFreePoolWithTag(Ccb->DirectorySearchPattern, TAG_NTFS); - Ccb->DirectorySearchPattern = NULL; - return Status; - } + memcpy(Ccb->DirectorySearchPattern, SearchPattern->Buffer, SearchPattern->Length); Ccb->DirectorySearchPattern[SearchPattern->Length / sizeof(WCHAR)] = 0; } } diff --git a/drivers/filesystems/ntfs/fcb.c b/drivers/filesystems/ntfs/fcb.c index 7ab896bd9e5..8be70301bf3 100644 --- a/drivers/filesystems/ntfs/fcb.c +++ b/drivers/filesystems/ntfs/fcb.c @@ -396,7 +396,7 @@ NtfsMakeFCBFromDirEntry(PNTFS_VCB Vcb, DPRINT1("NtfsMakeFCBFromDirEntry(%p, %p, %wZ, %p, %p)\n", Vcb, DirectoryFCB, Name, Record, fileFCB); - FileName = GetFileNameFromRecord(Record, NTFS_FILE_NAME_WIN32); + FileName = GetBestFileNameFromRecord(Record); if (!FileName) { return STATUS_OBJECT_NAME_NOT_FOUND; // Not sure that's the best here diff --git a/drivers/filesystems/ntfs/finfo.c b/drivers/filesystems/ntfs/finfo.c index eb91ae9d60f..a1cdad2de0d 100644 --- a/drivers/filesystems/ntfs/finfo.c +++ b/drivers/filesystems/ntfs/finfo.c @@ -59,7 +59,7 @@ NtfsGetStandardInformation(PNTFS_FCB Fcb, StandardInfo->AllocationSize = Fcb->RFCB.AllocationSize; StandardInfo->EndOfFile = Fcb->RFCB.FileSize; - StandardInfo->NumberOfLinks = 0; + StandardInfo->NumberOfLinks = 0; /* FIXME */ StandardInfo->DeletePending = FALSE; StandardInfo->Directory = NtfsFCBIsDirectory(Fcb); @@ -75,15 +75,12 @@ NtfsGetPositionInformation(PFILE_OBJECT FileObject, PFILE_POSITION_INFORMATION PositionInfo, PULONG BufferLength) { - UNREFERENCED_PARAMETER(FileObject); - DPRINT("NtfsGetPositionInformation() called\n"); if (*BufferLength < sizeof(FILE_POSITION_INFORMATION)) return STATUS_BUFFER_OVERFLOW; - PositionInfo->CurrentByteOffset.QuadPart = 0; -// FileObject->CurrentByteOffset.QuadPart; + PositionInfo->CurrentByteOffset.QuadPart = FileObject->CurrentByteOffset.QuadPart; DPRINT("Getting position %I64x\n", PositionInfo->CurrentByteOffset.QuadPart); @@ -102,29 +99,19 @@ NtfsGetBasicInformation(PFILE_OBJECT FileObject, PFILE_BASIC_INFORMATION BasicInfo, PULONG BufferLength) { + PFILENAME_ATTRIBUTE FileName = &Fcb->Entry; + DPRINT("NtfsGetBasicInformation() called\n"); if (*BufferLength < sizeof(FILE_BASIC_INFORMATION)) return STATUS_BUFFER_OVERFLOW; -#if 0 - CdfsDateTimeToFileTime(Fcb, - &BasicInfo->CreationTime); - CdfsDateTimeToFileTime(Fcb, - &BasicInfo->LastAccessTime); - CdfsDateTimeToFileTime(Fcb, - &BasicInfo->LastWriteTime); - CdfsDateTimeToFileTime(Fcb, - &BasicInfo->ChangeTime); + BasicInfo->CreationTime.QuadPart = FileName->CreationTime; + BasicInfo->LastAccessTime.QuadPart = FileName->LastAccessTime; + BasicInfo->LastWriteTime.QuadPart = FileName->LastWriteTime; + BasicInfo->ChangeTime.QuadPart = FileName->ChangeTime; - CdfsFileFlagsToAttributes(Fcb, - &BasicInfo->FileAttributes); -#else - UNREFERENCED_PARAMETER(FileObject); - UNREFERENCED_PARAMETER(Fcb); - UNREFERENCED_PARAMETER(DeviceObject); - UNREFERENCED_PARAMETER(BasicInfo); -#endif + NtfsFileFlagsToAttributes(FileName->FileAttributes, &BasicInfo->FileAttributes); *BufferLength -= sizeof(FILE_BASIC_INFORMATION); diff --git a/drivers/filesystems/ntfs/mft.c b/drivers/filesystems/ntfs/mft.c index 3e83fe8efaa..acecf2dd583 100644 --- a/drivers/filesystems/ntfs/mft.c +++ b/drivers/filesystems/ntfs/mft.c @@ -466,6 +466,7 @@ CompareFileName(PUNICODE_STRING FileName, PINDEX_ENTRY_ATTRIBUTE IndexEntry, BOOLEAN DirSearch) { + BOOLEAN Ret, Alloc = FALSE; UNICODE_STRING EntryName; EntryName.Buffer = IndexEntry->FileName.Name; @@ -474,7 +475,25 @@ CompareFileName(PUNICODE_STRING FileName, if (DirSearch) { - return FsRtlIsNameInExpression(FileName, &EntryName, (IndexEntry->FileName.NameType != NTFS_FILE_NAME_POSIX), NULL); + UNICODE_STRING IntFileName; + if (IndexEntry->FileName.NameType != NTFS_FILE_NAME_POSIX) + { + NT_VERIFY(NT_SUCCESS(RtlUpcaseUnicodeString(&IntFileName, FileName, TRUE))); + Alloc = TRUE; + } + else + { + IntFileName = *FileName; + } + + Ret = FsRtlIsNameInExpression(&IntFileName, &EntryName, (IndexEntry->FileName.NameType != NTFS_FILE_NAME_POSIX), NULL); + + if (Alloc) + { + RtlFreeUnicodeString(&IntFileName); + } + + return Ret; } else { @@ -547,6 +566,14 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, while (IndexEntry < IndexEntryEnd && !(IndexEntry->Flags & NTFS_INDEX_ENTRY_END)) { + UNICODE_STRING EntryName; + EntryName.Buffer = IndexEntry->FileName.Name; + EntryName.Length = + EntryName.MaximumLength = IndexEntry->FileName.NameLength * sizeof(WCHAR); + + if (IndexEntry->Flags & NTFS_INDEX_ENTRY_NODE) + DPRINT1("Warning: sub-node browsing unimplemented! (%wZ)\n", &EntryName); + if ((IndexEntry->Data.Directory.IndexedFile & NTFS_MFT_MASK) > 0x10 && CurrentEntry >= *FirstEntry && CompareFileName(FileName, IndexEntry, DirSearch)) @@ -638,6 +665,14 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, while (IndexEntry < IndexEntryEnd && !(IndexEntry->Flags & NTFS_INDEX_ENTRY_END)) { + UNICODE_STRING EntryName; + EntryName.Buffer = IndexEntry->FileName.Name; + EntryName.Length = + EntryName.MaximumLength = IndexEntry->FileName.NameLength * sizeof(WCHAR); + + if (IndexEntry->Flags & NTFS_INDEX_ENTRY_NODE) + DPRINT1("Warning: sub-node browsing unimplemented! (%wZ)\n", &EntryName); + if ((IndexEntry->Data.Directory.IndexedFile & NTFS_MFT_MASK) > 0x10 && CurrentEntry >= *FirstEntry && CompareFileName(FileName, IndexEntry, DirSearch)) diff --git a/drivers/filesystems/ntfs/ntfs.h b/drivers/filesystems/ntfs/ntfs.h index 39db578fe63..bb72e0113ff 100644 --- a/drivers/filesystems/ntfs/ntfs.h +++ b/drivers/filesystems/ntfs/ntfs.h @@ -195,6 +195,7 @@ typedef enum #define NTFS_FILE_TYPE_HIDDEN 0x2 #define NTFS_FILE_TYPE_SYSTEM 0x4 #define NTFS_FILE_TYPE_ARCHIVE 0x20 +#define NTFS_FILE_TYPE_REPARSE 0x400 #define NTFS_FILE_TYPE_COMPRESSED 0x800 #define NTFS_FILE_TYPE_DIRECTORY 0x10000000 @@ -308,7 +309,15 @@ typedef struct ULONGLONG AllocatedSize; ULONGLONG DataSize; ULONG FileAttributes; - ULONG AlignmentOrReserved; + union + { + struct + { + USHORT PackedEaSize; + USHORT AlignmentOrReserved; + } EaInfo; + ULONG ReparseTag; + } Extended; UCHAR NameLength; UCHAR NameType; WCHAR Name[1]; @@ -371,6 +380,13 @@ typedef struct ULONG Unknown2; } VOLINFO_ATTRIBUTE, *PVOLINFO_ATTRIBUTE; +typedef struct { + ULONG ReparseTag; + USHORT DataLength; + USHORT Reserved; + UCHAR Data[1]; +} REPARSE_POINT_ATTRIBUTE, *PREPARSE_POINT_ATTRIBUTE; + typedef struct { NTFSIDENTIFIER Identifier; @@ -452,6 +468,9 @@ NtfsDumpFileAttributes(PFILE_RECORD_HEADER FileRecord); PFILENAME_ATTRIBUTE GetFileNameFromRecord(PFILE_RECORD_HEADER FileRecord, UCHAR NameType); +PFILENAME_ATTRIBUTE +GetBestFileNameFromRecord(PFILE_RECORD_HEADER FileRecord); + /* blockdev.c */ NTSTATUS diff --git a/drivers/storage/scsiport/scsiport.c b/drivers/storage/scsiport/scsiport.c index 0db7e81bf31..0585b0d0ad2 100644 --- a/drivers/storage/scsiport/scsiport.c +++ b/drivers/storage/scsiport/scsiport.c @@ -34,6 +34,7 @@ #include #include #include +#include #define NDEBUG #include @@ -2877,8 +2878,20 @@ ScsiPortDeviceControl(IN PDEVICE_OBJECT DeviceObject, break; default: - if ('M' == (Stack->Parameters.DeviceIoControl.IoControlCode >> 16)) { - DPRINT1(" got ioctl intended for the mount manager: 0x%lX\n", Stack->Parameters.DeviceIoControl.IoControlCode); + if (DEVICE_TYPE_FROM_CTL_CODE(Stack->Parameters.DeviceIoControl.IoControlCode) == MOUNTDEVCONTROLTYPE) + { + switch (Stack->Parameters.DeviceIoControl.IoControlCode) + { + case IOCTL_MOUNTDEV_QUERY_DEVICE_NAME: + DPRINT1("Got unexpected IOCTL_MOUNTDEV_QUERY_DEVICE_NAME\n"); + break; + case IOCTL_MOUNTDEV_QUERY_UNIQUE_ID: + DPRINT1("Got unexpected IOCTL_MOUNTDEV_QUERY_UNIQUE_ID\n"); + break; + default: + DPRINT1(" got ioctl intended for the mount manager: 0x%lX\n", Stack->Parameters.DeviceIoControl.IoControlCode); + break; + } } else { DPRINT1(" unknown ioctl code: 0x%lX\n", Stack->Parameters.DeviceIoControl.IoControlCode); } diff --git a/drivers/wdm/audio/legacy/wdmaud/wdmaud.rc b/drivers/wdm/audio/legacy/wdmaud/wdmaud.rc index 426ff88509a..38de3196f27 100644 --- a/drivers/wdm/audio/legacy/wdmaud/wdmaud.rc +++ b/drivers/wdm/audio/legacy/wdmaud/wdmaud.rc @@ -1,5 +1,5 @@ #define REACTOS_VERSION_DLL -#define REACTOS_STR_FILE_DESCRIPTION "Reactos audio mapper driver" +#define REACTOS_STR_FILE_DESCRIPTION "ReactOS audio mapper driver" #define REACTOS_STR_INTERNAL_NAME "wdmaud" #define REACTOS_STR_ORIGINAL_FILENAME "wdmaud.sys" #include diff --git a/include/ddk/nt_vdd.h b/include/ddk/nt_vdd.h index e3fa8debb45..8e26ba15101 100644 --- a/include/ddk/nt_vdd.h +++ b/include/ddk/nt_vdd.h @@ -41,6 +41,27 @@ WINAPI VDDTerminateVDM(VOID); +/* + * IRQ services + */ + +WORD +WINAPI +VDDReserveIrqLine +( + IN HANDLE hVdd, + IN WORD IrqLine +); + +BOOL +WINAPI +VDDReleaseIrqLine +( + IN HANDLE hVdd, + IN WORD IrqLine +); + + /* * I/O Port services */ @@ -76,19 +97,69 @@ BOOL WINAPI VDDInstallIOHook ( - HANDLE hVdd, - WORD cPortRange, - PVDD_IO_PORTRANGE pPortRange, - PVDD_IO_HANDLERS IOhandler + IN HANDLE hVdd, + IN WORD cPortRange, + IN PVDD_IO_PORTRANGE pPortRange, + IN PVDD_IO_HANDLERS IOhandler ); VOID WINAPI VDDDeInstallIOHook ( - HANDLE hVdd, - WORD cPortRange, - PVDD_IO_PORTRANGE pPortRange + IN HANDLE hVdd, + IN WORD cPortRange, + IN PVDD_IO_PORTRANGE pPortRange +); + + +/* + * DMA services + */ + +typedef struct _VDD_DMA_INFO +{ + WORD addr; + WORD count; + WORD page; + BYTE status; + BYTE mode; + BYTE mask; +} VDD_DMA_INFO, *PVDD_DMA_INFO; + +#define VDD_DMA_ADDR 0x01 +#define VDD_DMA_COUNT 0x02 +#define VDD_DMA_PAGE 0x04 +#define VDD_DMA_STATUS 0x08 +#define VDD_DMA_ALL (VDD_DMA_ADDR | VDD_DMA_COUNT | VDD_DMA_PAGE | VDD_DMA_STATUS) + +DWORD +WINAPI +VDDRequestDMA +( + IN HANDLE hVdd, + IN WORD iChannel, + IN OUT PVOID Buffer, + IN DWORD length +); + +BOOL +WINAPI +VDDQueryDMA +( + IN HANDLE hVdd, + IN WORD iChannel, + IN PVDD_DMA_INFO pDmaInfo +); + +BOOL +WINAPI +VDDSetDMA +( + IN HANDLE hVdd, + IN WORD iChannel, + IN WORD fDMA, + IN PVDD_DMA_INFO pDmaInfo ); diff --git a/include/psdk/ntdef.h b/include/psdk/ntdef.h index 444bb8a1a84..fe01526c8fb 100644 --- a/include/psdk/ntdef.h +++ b/include/psdk/ntdef.h @@ -828,10 +828,15 @@ extern "C++" { \ #define MAXULONG 0xffffffff #define MAXLONGLONG (0x7fffffffffffffffLL) -/* Multiplication and Shift Operations. Note: we don't use inline - asm functions, the compiler can optimize this better. */ -#define Int32x32To64(a,b) (((__int64)(long)(a))*((__int64)(long)(b))) -#define UInt32x32To64(a,b) ((unsigned __int64)(unsigned int)(a)*(unsigned __int64)(unsigned int)(b)) +/* 32 to 64 bit multiplication. GCC is really bad at optimizing the native math */ +#if defined(_M_IX86) && defined(__GNUC__) && \ + !defined(MIDL_PASS)&& !defined(RC_INVOKED) && !defined(_M_CEE_PURE) + #define Int32x32To64(a,b) __emul(a,b) + #define UInt32x32To64(a,b) __emulu(a,b) +#else + #define Int32x32To64(a,b) (((__int64)(long)(a))*((__int64)(long)(b))) + #define UInt32x32To64(a,b) ((unsigned __int64)(unsigned int)(a)*(unsigned __int64)(unsigned int)(b)) +#endif #if defined(MIDL_PASS)|| defined(RC_INVOKED) || defined(_M_CEE_PURE) /* Use native math */ diff --git a/include/psdk/setupapi.h b/include/psdk/setupapi.h index 0f2c67a8557..ae87512e153 100644 --- a/include/psdk/setupapi.h +++ b/include/psdk/setupapi.h @@ -611,16 +611,20 @@ extern "C" { #define SPQ_SCAN_INFORM_USER 0x00000010 #define SPQ_SCAN_PRUNE_COPY_QUEUE 0x00000020 #define SPRDI_FIND_DUPS 0x00000001 -#define SPSVCINST_TAGTOFRONT 0x00000001 -#define SPSVCINST_ASSOCSERVICE 0x00000002 -#define SPSVCINST_DELETEEVENTLOGENTRY 0x00000004 -#define SPSVCINST_NOCLOBBER_DISPLAYNAME 0x00000008 -#define SPSVCINST_NOCLOBBER_STARTTYPE 0x00000010 -#define SPSVCINST_NOCLOBBER_ERRORCONTROL 0x00000020 -#define SPSVCINST_NOCLOBBER_LOADORDERGROUP 0x00000040 -#define SPSVCINST_NOCLOBBER_DEPENDENCIES 0x00000080 -#define SPSVCINST_NOCLOBBER_DESCRIPTION 0x00000100 -#define SPSVCINST_STOPSERVICE 0x00000200 + +#define SPSVCINST_TAGTOFRONT 0x00000001 +#define SPSVCINST_ASSOCSERVICE 0x00000002 +#define SPSVCINST_DELETEEVENTLOGENTRY 0x00000004 +#define SPSVCINST_NOCLOBBER_DISPLAYNAME 0x00000008 +#define SPSVCINST_NOCLOBBER_STARTTYPE 0x00000010 +#define SPSVCINST_NOCLOBBER_ERRORCONTROL 0x00000020 +#define SPSVCINST_NOCLOBBER_LOADORDERGROUP 0x00000040 +#define SPSVCINST_NOCLOBBER_DEPENDENCIES 0x00000080 +#define SPSVCINST_NOCLOBBER_DESCRIPTION 0x00000100 +#define SPSVCINST_STOPSERVICE 0x00000200 +#define SPSVCINST_CLOBBER_SECURITY 0x00000400 +#define SPSVCINST_STARTSERVICE 0x00000800 + #define SPWPT_SELECTDEVICE 0x00000001 #define SPWP_USE_DEVINFO_DATA 0x00000001 #define SRCINFO_PATH 1 @@ -2350,6 +2354,22 @@ SetupSetSourceListW( WINSETUPAPI VOID WINAPI SetupTermDefaultQueueCallback(_In_ PVOID); WINSETUPAPI BOOL WINAPI SetupTerminateFileLog(_In_ HSPFILELOG); +WINSETUPAPI +BOOL +WINAPI +SetupUninstallOEMInfA( + _In_ PCSTR InfFileName, + _In_ DWORD Flags, + _In_ PVOID Reserved); + +WINSETUPAPI +BOOL +WINAPI +SetupUninstallOEMInfW( + _In_ PCWSTR InfFileName, + _In_ DWORD Flags, + _In_ PVOID Reserved); + WINSETUPAPI DWORD WINAPI StampFileSecurity(PCWSTR, PSECURITY_DESCRIPTOR); @@ -2520,6 +2540,7 @@ WINSETUPAPI PSTR WINAPI UnicodeToMultiByte(PCWSTR lpUnicodeStr, UINT uCodePage); #define SetupSetFileQueueAlternatePlatform SetupSetFileQueueAlternatePlatformW #define SetupSetPlatformPathOverride SetupSetPlatformPathOverrideW #define SetupSetSourceList SetupSetSourceListW +#define SetupUninstallOEMInf SetupUninstallOEMInfW #else #define PSP_FILE_CALLBACK PSP_FILE_CALLBACK_A #define SetupAddInstallSectionToDiskSpaceList SetupAddInstallSectionToDiskSpaceListA @@ -2642,6 +2663,7 @@ WINSETUPAPI PSTR WINAPI UnicodeToMultiByte(PCWSTR lpUnicodeStr, UINT uCodePage); #define SetupSetFileQueueAlternatePlatform SetupSetFileQueueAlternatePlatformA #define SetupSetPlatformPathOverride SetupSetPlatformPathOverrideA #define SetupSetSourceList SetupSetSourceListA +#define SetupUninstallOEMInf SetupUninstallOEMInfA #endif /* UNICODE */ #endif /* RC_INVOKED */ diff --git a/include/psdk/winnt.h b/include/psdk/winnt.h index 55be73a43c4..de89e859e64 100644 --- a/include/psdk/winnt.h +++ b/include/psdk/winnt.h @@ -761,10 +761,15 @@ extern "C++" { \ #define MAXDWORD 0xffffffff #define MAXLONGLONG (0x7fffffffffffffffLL) -/* Multiplication and Shift Operations. Note: we don't use inline - asm functions, the compiler can optimize this better. */ -#define Int32x32To64(a,b) (((__int64)(long)(a))*((__int64)(long)(b))) -#define UInt32x32To64(a,b) ((unsigned __int64)(unsigned int)(a)*(unsigned __int64)(unsigned int)(b)) +/* 32 to 64 bit multiplication. GCC is really bad at optimizing the native math */ +#if defined(_M_IX86) && defined(__GNUC__) && \ + !defined(MIDL_PASS)&& !defined(RC_INVOKED) && !defined(_M_CEE_PURE) + #define Int32x32To64(a,b) __emul(a,b) + #define UInt32x32To64(a,b) __emulu(a,b) +#else + #define Int32x32To64(a,b) (((__int64)(long)(a))*((__int64)(long)(b))) + #define UInt32x32To64(a,b) ((unsigned __int64)(unsigned int)(a)*(unsigned __int64)(unsigned int)(b)) +#endif #if defined(MIDL_PASS)|| defined(RC_INVOKED) || defined(_M_CEE_PURE) /* Use native math */ diff --git a/include/psdk/winternl.h b/include/psdk/winternl.h index 085dd1b209b..6cfca41266f 100644 --- a/include/psdk/winternl.h +++ b/include/psdk/winternl.h @@ -2177,7 +2177,7 @@ ULONG WINAPI RtlFindSetBitsAndClear(PRTL_BITMAP,ULONG,ULONG); ULONG WINAPI RtlFindSetRuns(PCRTL_BITMAP,PRTL_BITMAP_RUN,ULONG,BOOLEAN); BOOLEAN WINAPI RtlFirstFreeAce(PACL,PACE_HEADER *); NTSTATUS WINAPI RtlFormatCurrentUserKeyPath(PUNICODE_STRING); -NTSTATUS WINAPI RtlFormatMessage(LPWSTR,UCHAR,BOOLEAN,BOOLEAN,BOOLEAN,va_list *,LPWSTR,ULONG); +NTSTATUS WINAPI RtlFormatMessage(PWSTR,ULONG,BOOLEAN,BOOLEAN,BOOLEAN,va_list *,PWSTR,ULONG,PULONG); void WINAPI RtlFreeAnsiString(PANSI_STRING); BOOLEAN WINAPI RtlFreeHandle(RTL_HANDLE_TABLE *,RTL_HANDLE *); BOOLEAN WINAPI RtlFreeHeap(HANDLE,ULONG,PVOID); diff --git a/include/reactos/subsys/win/conmsg.h b/include/reactos/subsys/win/conmsg.h index 42d83987d7f..26201b320c8 100644 --- a/include/reactos/subsys/win/conmsg.h +++ b/include/reactos/subsys/win/conmsg.h @@ -158,6 +158,13 @@ typedef struct _CONSOLE_PROPERTIES UINT uCodePage; } CONSOLE_PROPERTIES; +enum +{ + INIT_SUCCESS, // STATUS_WAIT_0 + INIT_FAILURE, // STATUS_WAIT_1 + MAX_INIT_EVENTS +}; + typedef struct _CONSOLE_START_INFO { HANDLE ConsoleHandle; @@ -165,7 +172,7 @@ typedef struct _CONSOLE_START_INFO HANDLE InputHandle; HANDLE OutputHandle; HANDLE ErrorHandle; - HANDLE Events[2]; + HANDLE InitEvents[MAX_INIT_EVENTS]; CONSOLE_PROPERTIES; } CONSOLE_START_INFO, *PCONSOLE_START_INFO; diff --git a/include/xdk/ntbasedef.h b/include/xdk/ntbasedef.h index 30b2c1e2f6d..3555b1e2c63 100644 --- a/include/xdk/ntbasedef.h +++ b/include/xdk/ntbasedef.h @@ -747,10 +747,15 @@ $if(_WINNT_) $endif(_WINNT_) #define MAXLONGLONG (0x7fffffffffffffffLL) -/* Multiplication and Shift Operations. Note: we don't use inline - asm functions, the compiler can optimize this better. */ -#define Int32x32To64(a,b) (((__int64)(long)(a))*((__int64)(long)(b))) -#define UInt32x32To64(a,b) ((unsigned __int64)(unsigned int)(a)*(unsigned __int64)(unsigned int)(b)) +/* 32 to 64 bit multiplication. GCC is really bad at optimizing the native math */ +#if defined(_M_IX86) && defined(__GNUC__) && \ + !defined(MIDL_PASS)&& !defined(RC_INVOKED) && !defined(_M_CEE_PURE) + #define Int32x32To64(a,b) __emul(a,b) + #define UInt32x32To64(a,b) __emulu(a,b) +#else + #define Int32x32To64(a,b) (((__int64)(long)(a))*((__int64)(long)(b))) + #define UInt32x32To64(a,b) ((unsigned __int64)(unsigned int)(a)*(unsigned __int64)(unsigned int)(b)) +#endif #if defined(MIDL_PASS)|| defined(RC_INVOKED) || defined(_M_CEE_PURE) /* Use native math */ diff --git a/include/xdk/winnt_old.h b/include/xdk/winnt_old.h index b5da8053295..4488e4a795c 100644 --- a/include/xdk/winnt_old.h +++ b/include/xdk/winnt_old.h @@ -358,6 +358,10 @@ #define THREAD_BASE_PRIORITY_MAX 2 #define THREAD_BASE_PRIORITY_MIN (-2) #define THREAD_BASE_PRIORITY_IDLE (-15) + +#define PROCESS_SET_LIMITED_INFORMATION 0x2000 +#define THREAD_RESUME 0x1000 + /* * To prevent gcc compiler warnings, bracket these defines when initialising * a SID_IDENTIFIER_AUTHORITY, eg. diff --git a/lib/fast486/common.c b/lib/fast486/common.c index 147a5c01fc0..52f2fc75ca8 100644 --- a/lib/fast486/common.c +++ b/lib/fast486/common.c @@ -294,8 +294,9 @@ Fast486InterruptInternal(PFAST486_STATE State, State->PrefixFlags |= FAST486_PREFIX_OPSIZE; } - /* Check if the interrupt handler is more privileged */ - if (Fast486GetCurrentPrivLevel(State) > GET_SEGMENT_RPL(SegmentSelector)) + /* Check if the interrupt handler is more privileged or if we're in V86 mode */ + if ((Fast486GetCurrentPrivLevel(State) > GET_SEGMENT_RPL(SegmentSelector)) + || State->Flags.Vm) { /* Read the TSS */ if (!Fast486ReadLinearMemory(State, @@ -310,6 +311,24 @@ Fast486InterruptInternal(PFAST486_STATE State, /* Switch to the new privilege level */ State->Cpl = GET_SEGMENT_RPL(SegmentSelector); + if (State->Flags.Vm) + { + /* Clear the VM flag */ + State->Flags.Vm = FALSE; + + /* Push GS, FS, DS and ES */ + if (!Fast486StackPush(State, State->SegmentRegs[FAST486_REG_GS].Selector)) goto Cleanup; + if (!Fast486StackPush(State, State->SegmentRegs[FAST486_REG_FS].Selector)) goto Cleanup; + if (!Fast486StackPush(State, State->SegmentRegs[FAST486_REG_DS].Selector)) goto Cleanup; + if (!Fast486StackPush(State, State->SegmentRegs[FAST486_REG_ES].Selector)) goto Cleanup; + + /* Now load them with NULL selectors, since they are useless in protected mode */ + if (!Fast486LoadSegment(State, FAST486_REG_GS, 0)) goto Cleanup; + if (!Fast486LoadSegment(State, FAST486_REG_FS, 0)) goto Cleanup; + if (!Fast486LoadSegment(State, FAST486_REG_DS, 0)) goto Cleanup; + if (!Fast486LoadSegment(State, FAST486_REG_ES, 0)) goto Cleanup; + } + /* Check the new (higher) privilege level */ switch (State->Cpl) { diff --git a/lib/fast486/common.inl b/lib/fast486/common.inl index 381ed032cdc..6385e62694d 100644 --- a/lib/fast486/common.inl +++ b/lib/fast486/common.inl @@ -303,7 +303,7 @@ Fast486StackPush(PFAST486_STATE State, BOOLEAN Size = State->SegmentRegs[FAST486_REG_CS].Size; /* The OPSIZE prefix toggles the size */ - if (State->PrefixFlags & FAST486_PREFIX_OPSIZE) Size = !Size; + TOGGLE_OPSIZE(Size); if (Size) { @@ -317,15 +317,19 @@ Fast486StackPush(PFAST486_STATE State, return FALSE; } + /* Store the value in SS:[ESP - 4] */ + if (!Fast486WriteMemory(State, + FAST486_REG_SS, + State->GeneralRegs[FAST486_REG_ESP].Long - sizeof(ULONG), + &Value, + sizeof(ULONG))) + { + /* Exception occurred */ + return FALSE; + } + /* Subtract ESP by 4 */ State->GeneralRegs[FAST486_REG_ESP].Long -= sizeof(ULONG); - - /* Store the value in SS:ESP */ - return Fast486WriteMemory(State, - FAST486_REG_SS, - State->GeneralRegs[FAST486_REG_ESP].Long, - &Value, - sizeof(ULONG)); } else { @@ -339,16 +343,22 @@ Fast486StackPush(PFAST486_STATE State, return FALSE; } + /* Store the value in SS:[SP - 2] */ + if (!Fast486WriteMemory(State, + FAST486_REG_SS, + LOWORD(State->GeneralRegs[FAST486_REG_ESP].LowWord - sizeof(USHORT)), + &ShortValue, + sizeof(USHORT))) + { + /* Exception occurred */ + return FALSE; + } + /* Subtract SP by 2 */ State->GeneralRegs[FAST486_REG_ESP].LowWord -= sizeof(USHORT); - - /* Store the value in SS:SP */ - return Fast486WriteMemory(State, - FAST486_REG_SS, - State->GeneralRegs[FAST486_REG_ESP].LowWord, - &ShortValue, - sizeof(USHORT)); } + + return TRUE; } FORCEINLINE diff --git a/lib/fast486/opcodes.c b/lib/fast486/opcodes.c index e8a6a25040e..90cdc61df5f 100644 --- a/lib/fast486/opcodes.c +++ b/lib/fast486/opcodes.c @@ -754,7 +754,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeClearInt) if (State->ControlRegisters[FAST486_REG_CR0] & FAST486_CR0_PE) { /* Check IOPL */ - if (State->Flags.Iopl >= State->SegmentRegs[FAST486_REG_CS].Dpl) + if (State->Flags.Iopl >= Fast486GetCurrentPrivLevel(State)) { /* Clear the interrupt flag */ State->Flags.If = FALSE; @@ -789,7 +789,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeSetInt) if (State->ControlRegisters[FAST486_REG_CR0] & FAST486_CR0_PE) { /* Check IOPL */ - if (State->Flags.Iopl >= State->SegmentRegs[FAST486_REG_CS].Dpl) + if (State->Flags.Iopl >= Fast486GetCurrentPrivLevel(State)) { /* Set the interrupt flag */ State->Flags.If = TRUE; @@ -4548,6 +4548,14 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeInt) { UCHAR IntNum; + /* Check for V86 mode */ + if (State->Flags.Vm && (State->Flags.Iopl != 3)) + { + /* Call the V86 monitor */ + Fast486Exception(State, FAST486_EXCEPTION_GP); + return; + } + switch (Opcode) { case 0xCC: // INT 3 @@ -4679,7 +4687,7 @@ FAST486_OPCODE_HANDLER(Fast486OpcodeIret) /* Return to VM86 mode */ ULONG Es, Ds, Fs, Gs; - /* Pop ESP, SS, ES, FS, GS */ + /* Pop ESP, SS, ES, DS, FS, GS */ if (!Fast486StackPop(State, &StackPtr)) return; if (!Fast486StackPop(State, &StackSel)) return; if (!Fast486StackPop(State, &Es)) return; diff --git a/lib/rtl/message.c b/lib/rtl/message.c index 5d50945f1c0..0f0f7aa9f02 100644 --- a/lib/rtl/message.c +++ b/lib/rtl/message.c @@ -20,11 +20,11 @@ NTSTATUS NTAPI RtlFindMessage( - PVOID BaseAddress, - ULONG Type, - ULONG Language, - ULONG MessageId, - PMESSAGE_RESOURCE_ENTRY *MessageResourceEntry) + IN PVOID BaseAddress, + IN ULONG Type, + IN ULONG Language, + IN ULONG MessageId, + OUT PMESSAGE_RESOURCE_ENTRY* MessageResourceEntry) { LDR_RESOURCE_INFO ResourceInfo; PIMAGE_RESOURCE_DATA_ENTRY ResourceDataEntry; @@ -122,41 +122,47 @@ RtlFindMessage( return STATUS_SUCCESS; } +/* + * @unimplemented + */ NTSTATUS NTAPI RtlFormatMessageEx( - PWSTR Message, - UCHAR MaxWidth, - BOOLEAN IgnoreInserts, - BOOLEAN Ansi, - BOOLEAN ArgumentIsArray, - va_list *Arguments, - PWSTR Buffer, - ULONG BufferSize, - ULONG Flags) + IN PWSTR Message, + IN ULONG MaxWidth OPTIONAL, + IN BOOLEAN IgnoreInserts, + IN BOOLEAN ArgumentsAreAnsi, + IN BOOLEAN ArgumentsAreAnArray, + IN va_list* Arguments, + OUT PWSTR Buffer, + IN ULONG BufferSize, + OUT PULONG ReturnLength OPTIONAL, + IN ULONG Flags) { - DPRINT1("RtlFormatMessage(%S, %u, %s, %s, %s, %s, %p, %lu %lx)\n", - Message, MaxWidth, IgnoreInserts ? "TRUE" : "FALSE", Ansi ? "TRUE" : "FALSE", - ArgumentIsArray ? "TRUE" : "FALSE", (PSTR)Arguments, Buffer, BufferSize, Flags); + DPRINT1("RtlFormatMessage(%S, %lu, %s, %s, %s, %p, %p, %lu, %p, %lx)\n", + Message, MaxWidth, IgnoreInserts ? "TRUE" : "FALSE", ArgumentsAreAnsi ? "TRUE" : "FALSE", + ArgumentsAreAnArray ? "TRUE" : "FALSE", Arguments, Buffer, BufferSize, + ReturnLength, Flags); UNIMPLEMENTED; return STATUS_NOT_IMPLEMENTED; } /********************************************************************** - * RtlFormatMessage (NTDLL.@) + * RtlFormatMessage (NTDLL.@) * * Formats a message (similar to sprintf). * * PARAMS - * Message [I] Message to format. - * MaxWidth [I] Maximum width in characters of each output line. - * IgnoreInserts [I] Whether to copy the message without processing inserts. - * Ansi [I] Whether Arguments may have ANSI strings. - * ArgumentsIsArray [I] Whether Arguments is actually an array rather than a va_list *. - * Arguments [I] - * Buffer [O] Buffer to store processed message in. - * BufferSize [I] Size of Buffer (in bytes?). + * Message [I] Message to format. + * MaxWidth [I] Maximum width in characters of each output line (optional). + * IgnoreInserts [I] Whether to copy the message without processing inserts. + * ArgumentsAreAnsi [I] Whether Arguments may have ANSI strings. + * ArgumentsAreAnArray [I] Whether Arguments is actually an array rather than a va_list *. + * Arguments [I] + * Buffer [O] Buffer to store processed message in. + * BufferSize [I] Size of Buffer (in bytes). + * ReturnLength [O] Size of the formatted message (in bytes; optional). * * RETURNS * NTSTATUS code. @@ -166,16 +172,27 @@ RtlFormatMessageEx( NTSTATUS NTAPI RtlFormatMessage( - PWSTR Message, - UCHAR MaxWidth, - BOOLEAN IgnoreInserts, - BOOLEAN Ansi, - BOOLEAN ArgumentIsArray, - va_list *Arguments, - PWSTR Buffer, - ULONG BufferSize) + IN PWSTR Message, + IN ULONG MaxWidth OPTIONAL, + IN BOOLEAN IgnoreInserts, + IN BOOLEAN ArgumentsAreAnsi, + IN BOOLEAN ArgumentsAreAnArray, + IN va_list* Arguments, + OUT PWSTR Buffer, + IN ULONG BufferSize, + OUT PULONG ReturnLength OPTIONAL) { - return RtlFormatMessageEx(Message, MaxWidth, IgnoreInserts, Ansi, ArgumentIsArray, Arguments, Buffer, BufferSize, 0); + /* Call the extended API */ + return RtlFormatMessageEx(Message, + MaxWidth, + IgnoreInserts, + ArgumentsAreAnsi, + ArgumentsAreAnArray, + Arguments, + Buffer, + BufferSize, + ReturnLength, + 0); } /* EOF */ diff --git a/lib/sdk/nt/entry_point.c b/lib/sdk/nt/entry_point.c index b0969cf1466..03fb65fce01 100644 --- a/lib/sdk/nt/entry_point.c +++ b/lib/sdk/nt/entry_point.c @@ -33,27 +33,27 @@ _main( static VOID FASTCALL EnvironmentStringToUnicodeString (PWCHAR wsIn, PUNICODE_STRING usOut) { - if (wsIn) - { - PWCHAR CurrentChar = wsIn; - - while (*CurrentChar) - { - while(*CurrentChar++); - } - /* double nullterm at end */ - CurrentChar++; + if (wsIn) + { + PWCHAR CurrentChar = wsIn; - usOut->Buffer = wsIn; - /* FIXME: the last (double) nullterm should perhaps not be included in Length - * but only in MaximumLength. -Gunnar */ - usOut->MaximumLength = usOut->Length = (CurrentChar-wsIn) * sizeof(WCHAR); - } - else - { - usOut->Buffer = NULL; - usOut->Length = usOut->MaximumLength = 0; - } + while (*CurrentChar) + { + while(*CurrentChar++); + } + /* double nullterm at end */ + CurrentChar++; + + usOut->Buffer = wsIn; + /* FIXME: the last (double) nullterm should perhaps not be included in Length + * but only in MaximumLength. -Gunnar */ + usOut->MaximumLength = usOut->Length = (CurrentChar-wsIn) * sizeof(WCHAR); + } + else + { + usOut->Buffer = NULL; + usOut->Length = usOut->MaximumLength = 0; + } } @@ -91,9 +91,9 @@ NtProcessStartup(PPEB Peb) ArgumentList = RtlAllocateHeap(RtlGetProcessHeap(), 0, 512 * sizeof(PCHAR)); if (!ArgumentList) { - DPRINT1("ERR: no mem!"); - Status = STATUS_NO_MEMORY; - goto fail; + DPRINT1("ERR: no mem!"); + Status = STATUS_NO_MEMORY; + goto fail; } /* Use a null pointer as default */ @@ -117,8 +117,8 @@ NtProcessStartup(PPEB Peb) Status = RtlUnicodeStringToAnsiString(&AnsiCmdLine, CmdLineString, TRUE); if (!NT_SUCCESS(Status)) { - DPRINT1("ERR: no mem(guess)\n"); - goto fail; + DPRINT1("ERR: no mem(guess)\n"); + goto fail; } /* Save parameters for parsing */ @@ -130,12 +130,12 @@ NtProcessStartup(PPEB Peb) { /* Allocate a buffer for the destination */ Destination = RtlAllocateHeap(RtlGetProcessHeap(), 0, Length + sizeof(WCHAR)); - if (!Destination) - { - DPRINT1("ERR: no mem!"); - Status = STATUS_NO_MEMORY; - goto fail; - } + if (!Destination) + { + DPRINT1("ERR: no mem!"); + Status = STATUS_NO_MEMORY; + goto fail; + } /* Start parsing */ while (*Source) @@ -164,33 +164,33 @@ NtProcessStartup(PPEB Peb) /* Null terminate the token pointer list */ *ArgumentList++ = NULL; - /* Now handle the enviornment, point the envp at our current list location. */ + /* Now handle the environment, point the envp at our current list location. */ envp = ArgumentList; if (ProcessParameters->Environment) { - EnvironmentStringToUnicodeString(ProcessParameters->Environment, &UnicodeEnvironment); - Status = RtlUnicodeStringToAnsiString (& AnsiEnvironment, & UnicodeEnvironment, TRUE); - if (!NT_SUCCESS(Status)) - { - DPRINT1("ERR: no mem(guess)\n"); - goto fail; - } + EnvironmentStringToUnicodeString(ProcessParameters->Environment, &UnicodeEnvironment); + Status = RtlUnicodeStringToAnsiString (& AnsiEnvironment, & UnicodeEnvironment, TRUE); + if (!NT_SUCCESS(Status)) + { + DPRINT1("ERR: no mem(guess)\n"); + goto fail; + } - ASSERT(AnsiEnvironment.Buffer); + ASSERT(AnsiEnvironment.Buffer); - Source = AnsiEnvironment.Buffer; - while (*Source) - { - /* Save a pointer to this token */ - *ArgumentList++ = Source; + Source = AnsiEnvironment.Buffer; + while (*Source) + { + /* Save a pointer to this token */ + *ArgumentList++ = Source; - /* Keep looking for another variable */ - while (*Source++); - } + /* Keep looking for another variable */ + while (*Source++); + } - /* Null terminate the list again */ - *ArgumentList++ = NULL; + /* Null terminate the list again */ + *ArgumentList++ = NULL; } /* Breakpoint if we were requested to do so */ if (ProcessParameters->DebugFlags) DbgBreakPoint(); diff --git a/ntoskrnl/cc/pin.c b/ntoskrnl/cc/pin.c index 960803284ef..1fa81df248c 100644 --- a/ntoskrnl/cc/pin.c +++ b/ntoskrnl/cc/pin.c @@ -143,7 +143,7 @@ CcPinRead ( if (CcPinMappedData(FileObject, FileOffset, Length, Flags, Bcb)) return TRUE; else - CcUnpinData(Bcb); + CcUnpinData(*Bcb); } return FALSE; } diff --git a/ntoskrnl/io/pnpmgr/plugplay.c b/ntoskrnl/io/pnpmgr/plugplay.c index b607a74f42f..97373acd6f7 100644 --- a/ntoskrnl/io/pnpmgr/plugplay.c +++ b/ntoskrnl/io/pnpmgr/plugplay.c @@ -199,7 +199,10 @@ IopCaptureUnicodeString(PUNICODE_STRING DstName, PUNICODE_STRING SrcName) } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) { - if (Name.Buffer) ExFreePool(Name.Buffer); + if (Name.Buffer) + { + ExFreePool(Name.Buffer); + } Status = _SEH2_GetExceptionCode(); } _SEH2_END; diff --git a/ntoskrnl/mm/mminit.c b/ntoskrnl/mm/mminit.c index 41732e3c672..0535a7dafb3 100644 --- a/ntoskrnl/mm/mminit.c +++ b/ntoskrnl/mm/mminit.c @@ -300,7 +300,9 @@ NTAPI MmMpwThreadMain(PVOID Parameter) { NTSTATUS Status; +#ifndef NEWCC ULONG PagesWritten; +#endif LARGE_INTEGER Timeout; UNREFERENCED_PARAMETER(Parameter); @@ -321,9 +323,9 @@ MmMpwThreadMain(PVOID Parameter) return; } +#ifndef NEWCC PagesWritten = 0; -#ifndef NEWCC // XXX arty -- we flush when evicting pages or destorying cache // sections. CcRosFlushDirtyPages(128, &PagesWritten, FALSE); diff --git a/ntoskrnl/mm/section.c b/ntoskrnl/mm/section.c index abb483598b4..fd2f037f78a 100644 --- a/ntoskrnl/mm/section.c +++ b/ntoskrnl/mm/section.c @@ -904,17 +904,16 @@ MmUnsharePageEntrySectionSegment(PROS_SECTION_OBJECT Section, if (SHARE_COUNT_FROM_SSE(Entry) == 0) { PFILE_OBJECT FileObject; -#ifndef NEWCC - PROS_SHARED_CACHE_MAP SharedCacheMap; -#endif SWAPENTRY SavedSwapEntry; PFN_NUMBER Page; +#ifndef NEWCC + PROS_SHARED_CACHE_MAP SharedCacheMap; BOOLEAN IsImageSection; LARGE_INTEGER FileOffset; FileOffset.QuadPart = Offset->QuadPart + Segment->Image.FileOffset; - IsImageSection = Section->AllocationAttributes & SEC_IMAGE ? TRUE : FALSE; +#endif Page = PFN_FROM_SSE(Entry); FileObject = Section->FileObject; @@ -1873,14 +1872,14 @@ MmPageOutSectionView(PMMSUPPORT AddressSpace, PFN_NUMBER Page; MM_SECTION_PAGEOUT_CONTEXT Context; SWAPENTRY SwapEntry; - ULONGLONG FileOffset; NTSTATUS Status; - PFILE_OBJECT FileObject; #ifndef NEWCC + ULONGLONG FileOffset; + PFILE_OBJECT FileObject; PROS_SHARED_CACHE_MAP SharedCacheMap = NULL; + BOOLEAN IsImageSection; #endif BOOLEAN DirectMapped; - BOOLEAN IsImageSection; PEPROCESS Process = MmGetAddressSpaceOwner(AddressSpace); KIRQL OldIrql; @@ -1896,16 +1895,16 @@ MmPageOutSectionView(PMMSUPPORT AddressSpace, Context.Offset.QuadPart = (ULONG_PTR)Address - (ULONG_PTR)MemoryArea->StartingAddress + MemoryArea->Data.SectionData.ViewOffset.QuadPart; - FileOffset = Context.Offset.QuadPart + Context.Segment->Image.FileOffset; - IsImageSection = Context.Section->AllocationAttributes & SEC_IMAGE ? TRUE : FALSE; - - FileObject = Context.Section->FileObject; DirectMapped = FALSE; MmLockSectionSegment(Context.Segment); #ifndef NEWCC + FileOffset = Context.Offset.QuadPart + Context.Segment->Image.FileOffset; + IsImageSection = Context.Section->AllocationAttributes & SEC_IMAGE ? TRUE : FALSE; + FileObject = Context.Section->FileObject; + if (FileObject != NULL && !(Context.Segment->Image.Characteristics & IMAGE_SCN_MEM_SHARED)) { @@ -2284,7 +2283,9 @@ MmWritePageSectionView(PMMSUPPORT AddressSpace, BOOLEAN Private; NTSTATUS Status; PFILE_OBJECT FileObject; +#ifndef NEWCC PROS_SHARED_CACHE_MAP SharedCacheMap = NULL; +#endif BOOLEAN DirectMapped; BOOLEAN IsImageSection; PEPROCESS Process = MmGetAddressSpaceOwner(AddressSpace); @@ -2306,7 +2307,9 @@ MmWritePageSectionView(PMMSUPPORT AddressSpace, if (FileObject != NULL && !(Segment->Image.Characteristics & IMAGE_SCN_MEM_SHARED)) { +#ifndef NEWCC SharedCacheMap = FileObject->SectionObjectPointer->SharedCacheMap; +#endif /* * If the file system is letting us go directly to the cache and the @@ -3987,8 +3990,10 @@ MmFreeSectionPage(PVOID Context, MEMORY_AREA* MemoryArea, PVOID Address, PFN_NUMBER Page, SWAPENTRY SwapEntry, BOOLEAN Dirty) { ULONG_PTR Entry; +#ifndef NEWCC PFILE_OBJECT FileObject; PROS_SHARED_CACHE_MAP SharedCacheMap; +#endif LARGE_INTEGER Offset; SWAPENTRY SavedSwapEntry; PROS_SECTION_OBJECT Section; @@ -4028,9 +4033,9 @@ MmFreeSectionPage(PVOID Context, MEMORY_AREA* MemoryArea, PVOID Address, { if (Page == PFN_FROM_SSE(Entry) && Dirty) { +#ifndef NEWCC FileObject = MemoryArea->Data.SectionData.Section->FileObject; SharedCacheMap = FileObject->SectionObjectPointer->SharedCacheMap; -#ifndef NEWCC CcRosMarkDirtyVacb(SharedCacheMap, Offset.QuadPart + Segment->Image.FileOffset); #endif ASSERT(SwapEntry == 0); diff --git a/ntoskrnl/po/poshtdwn.c b/ntoskrnl/po/poshtdwn.c index 0dbd3772938..f32adaa4cdf 100644 --- a/ntoskrnl/po/poshtdwn.c +++ b/ntoskrnl/po/poshtdwn.c @@ -277,9 +277,9 @@ PopGracefulShutdown(IN PVOID Context) /* Note that modified pages should be written here (MiShutdownSystem) */ #ifdef NEWCC - /* Flush all user files before we start shutting down IO */ - /* This is where modified pages are written back by the IO manager */ - CcShutdownSystem(); + /* Flush all user files before we start shutting down IO */ + /* This is where modified pages are written back by the IO manager */ + CcShutdownSystem(); #endif /* In this step, the I/O manager does last-chance shutdown notification */ diff --git a/ntoskrnl/po/power.c b/ntoskrnl/po/power.c index 758eb9de437..6bccb3e045b 100644 --- a/ntoskrnl/po/power.c +++ b/ntoskrnl/po/power.c @@ -682,7 +682,8 @@ NtPowerInformation(IN POWER_INFORMATION_LEVEL PowerInformationLevel, Status = STATUS_SUCCESS; break; } - case SystemPowerCapabilities: + + case SystemPowerCapabilities: { PSYSTEM_POWER_CAPABILITIES PowerCapabilities = (PSYSTEM_POWER_CAPABILITIES)OutputBuffer; @@ -794,8 +795,8 @@ NtSetThreadExecutionState(IN EXECUTION_STATE esFlags, NTSTATUS NTAPI NtSetSystemPowerState(IN POWER_ACTION SystemAction, - IN SYSTEM_POWER_STATE MinSystemState, - IN ULONG Flags) + IN SYSTEM_POWER_STATE MinSystemState, + IN ULONG Flags) { KPROCESSOR_MODE PreviousMode = KeGetPreviousMode(); POP_POWER_ACTION Action = {0}; @@ -834,7 +835,7 @@ NtSetSystemPowerState(IN POWER_ACTION SystemAction, } /* Do it as a kernel-mode caller for consistency with system state */ - return ZwSetSystemPowerState (SystemAction, MinSystemState, Flags); + return ZwSetSystemPowerState(SystemAction, MinSystemState, Flags); } /* Read policy settings (partial shutdown vs. full shutdown) */ diff --git a/subsystems/ntvdm/CMakeLists.txt b/subsystems/ntvdm/CMakeLists.txt index add151f4985..f510e9d937a 100644 --- a/subsystems/ntvdm/CMakeLists.txt +++ b/subsystems/ntvdm/CMakeLists.txt @@ -1,5 +1,8 @@ +PROJECT(NTVDM) + include_directories(${REACTOS_SOURCE_DIR}/include/reactos/libs/fast486) + spec2def(ntvdm.exe ntvdm.spec) list(APPEND SOURCE @@ -16,13 +19,14 @@ list(APPEND SOURCE cpu/cpu.c cpu/registers.c hardware/cmos.c + hardware/dma.c hardware/keyboard.c hardware/mouse.c hardware/pic.c + hardware/pit.c hardware/ps2.c - hardware/speaker.c - hardware/timer.c - hardware/vga.c + hardware/sound/speaker.c + hardware/video/vga.c dos/dos32krnl/bios.c dos/dos32krnl/dos.c dos/dos32krnl/dosfiles.c diff --git a/subsystems/ntvdm/bios/bios32/bios32.c b/subsystems/ntvdm/bios/bios32/bios32.c index bff238ba54e..548e7dd512d 100644 --- a/subsystems/ntvdm/bios/bios32/bios32.c +++ b/subsystems/ntvdm/bios/bios32/bios32.c @@ -29,7 +29,7 @@ #include "io.h" #include "hardware/cmos.h" #include "hardware/pic.h" -#include "hardware/timer.h" +#include "hardware/pit.h" /* Extra PSDK/NDK Headers */ #include @@ -151,6 +151,19 @@ static VOID WINAPI BiosMiscService(LPWORD Stack) { switch (getAH()) { + /* OS Hooks for Multitasking */ + case 0x80: // Device Open + case 0x81: // Device Close + case 0x82: // Program Termination + case 0x90: // Device Busy + case 0x91: // Device POST + { + /* Return success by default */ + setAH(0x00); + Stack[STACK_FLAGS] &= ~EMULATOR_FLAG_CF; + break; + } + /* Keyboard intercept */ case 0x4F: { @@ -234,6 +247,15 @@ static VOID WINAPI BiosMiscService(LPWORD Stack) break; } + /* Switch to Protected Mode */ + case 0x89: + { + DPRINT1("BIOS INT 15h, AH=89h \"Switch to Protected Mode\" is UNIMPLEMENTED"); + + Stack[STACK_FLAGS] |= EMULATOR_FLAG_CF; + break; + } + /* Get Configuration */ case 0xC0: { @@ -255,6 +277,8 @@ static VOID WINAPI BiosMiscService(LPWORD Stack) // Stack[STACK_FLAGS] &= ~EMULATOR_FLAG_CF; // setES(???); + UNIMPLEMENTED; + /* We do not support EBDA yet */ Stack[STACK_FLAGS] |= EMULATOR_FLAG_CF; diff --git a/subsystems/ntvdm/bios/vidbios.c b/subsystems/ntvdm/bios/vidbios.c index cb854c125e4..8bafefa1feb 100644 --- a/subsystems/ntvdm/bios/vidbios.c +++ b/subsystems/ntvdm/bios/vidbios.c @@ -19,7 +19,7 @@ // #include "vidbios.h" #include "io.h" -#include "hardware/vga.h" +#include "hardware/video/vga.h" /* DEFINES ********************************************************************/ @@ -1943,133 +1943,154 @@ static CONST UCHAR Font8x16[VGA_FONT_CHARACTERS * 16] = /* PRIVATE FUNCTIONS **********************************************************/ -static VOID VidBiosReadWindow(LPWORD Buffer, SMALL_RECT Rectangle, BYTE Page) -{ - INT i, j; - INT Counter = 0; - WORD Character; - DWORD VideoAddress = TO_LINEAR(TEXT_VIDEO_SEG, Page * Bda->VideoPageSize); - - for (i = Rectangle.Top; i <= Rectangle.Bottom; i++) - { - for (j = Rectangle.Left; j <= Rectangle.Right; j++) - { - /* Read from video memory */ - EmulatorReadMemory(&EmulatorContext, - VideoAddress + (i * Bda->ScreenColumns + j) * sizeof(WORD), - (LPVOID)&Character, - sizeof(WORD)); - - /* Write the data to the buffer in row order */ - Buffer[Counter++] = Character; - } - } -} - -static VOID VidBiosWriteWindow(LPWORD Buffer, SMALL_RECT Rectangle, BYTE Page) -{ - INT i, j; - INT Counter = 0; - WORD Character; - DWORD VideoAddress = TO_LINEAR(TEXT_VIDEO_SEG, Page * Bda->VideoPageSize); - - for (i = Rectangle.Top; i <= Rectangle.Bottom; i++) - { - for (j = Rectangle.Left; j <= Rectangle.Right; j++) - { - Character = Buffer[Counter++]; - - /* Write to video memory */ - EmulatorWriteMemory(&EmulatorContext, - VideoAddress + (i * Bda->ScreenColumns + j) * sizeof(WORD), - (LPVOID)&Character, - sizeof(WORD)); - } - } -} - -static BOOLEAN VidBiosScrollWindow(INT Direction, +static BOOLEAN VidBiosScrollWindow(SCROLL_DIRECTION Direction, DWORD Amount, SMALL_RECT Rectangle, BYTE Page, BYTE FillAttribute) { - DWORD i; - LPWORD WindowData; - WORD WindowWidth = Rectangle.Right - Rectangle.Left + 1; - WORD WindowHeight = Rectangle.Bottom - Rectangle.Top + 1; - DWORD WindowSize = WindowWidth * WindowHeight; + INT i, j; + DWORD VideoAddress = TO_LINEAR(TEXT_VIDEO_SEG, Page * Bda->VideoPageSize); + WORD FillCharacter = MAKEWORD(' ', FillAttribute); - /* Allocate a buffer for the window */ - WindowData = (LPWORD)HeapAlloc(GetProcessHeap(), - HEAP_ZERO_MEMORY, - WindowSize * sizeof(WORD)); - if (WindowData == NULL) return FALSE; + WORD WindowWidth, WindowHeight; - /* Read the window data */ - VidBiosReadWindow(WindowData, Rectangle, Page); + /* Fixup the rectangle if needed */ + Rectangle.Left = min(max(Rectangle.Left , 0), Bda->ScreenColumns - 1); + Rectangle.Right = min(max(Rectangle.Right , 0), Bda->ScreenColumns - 1); + Rectangle.Top = min(max(Rectangle.Top , 0), Bda->ScreenRows); + Rectangle.Bottom = min(max(Rectangle.Bottom, 0), Bda->ScreenRows); - if ((Amount == 0) - || (((Direction == SCROLL_DIRECTION_UP) - || (Direction == SCROLL_DIRECTION_DOWN)) - && (Amount >= WindowHeight)) - || (((Direction == SCROLL_DIRECTION_LEFT) - || (Direction == SCROLL_DIRECTION_RIGHT)) - && (Amount >= WindowWidth))) + WindowWidth = Rectangle.Right - Rectangle.Left + 1; + WindowHeight = Rectangle.Bottom - Rectangle.Top + 1; + + /* Amount == 0 means we clear all the rectangle */ + if ((Amount == 0) || + (((Direction == SCROLL_UP ) || (Direction == SCROLL_DOWN )) && (Amount >= WindowHeight)) || + (((Direction == SCROLL_LEFT) || (Direction == SCROLL_RIGHT)) && (Amount >= WindowWidth ))) { - /* Fill the window */ - for (i = 0; i < WindowSize; i++) + /* Fill the rectangle */ + for (i = Rectangle.Top; i <= Rectangle.Bottom; i++) { - WindowData[i] = MAKEWORD(' ', FillAttribute); + for (j = Rectangle.Left; j <= Rectangle.Right; j++) + { + EmulatorWriteMemory(&EmulatorContext, + VideoAddress + (i * Bda->ScreenColumns + j) * sizeof(WORD), + (LPVOID)&FillCharacter, + sizeof(FillCharacter)); + } } - goto Done; + return TRUE; } switch (Direction) { - case SCROLL_DIRECTION_UP: + case SCROLL_UP: { - RtlMoveMemory(WindowData, - &WindowData[WindowWidth * Amount], - (WindowSize - WindowWidth * Amount) * sizeof(WORD)); - - for (i = 0; i < Amount * WindowWidth; i++) + /* Move text lines up */ + for (i = Rectangle.Top + Amount; i <= Rectangle.Bottom; i++) { - WindowData[WindowSize - i - 1] = MAKEWORD(' ', FillAttribute); + EmulatorWriteMemory(&EmulatorContext, + VideoAddress + ((i - Amount) * Bda->ScreenColumns + Rectangle.Left) * sizeof(WORD), + REAL_TO_PHYS(VideoAddress + ( i * Bda->ScreenColumns + Rectangle.Left) * sizeof(WORD)), + (Rectangle.Right - Rectangle.Left + 1) * sizeof(WORD)); + } + + /* Fill the bottom of the rectangle */ + for (i = Rectangle.Bottom - Amount + 1; i <= Rectangle.Bottom; i++) + { + for (j = Rectangle.Left; j <= Rectangle.Right; j++) + { + EmulatorWriteMemory(&EmulatorContext, + VideoAddress + (i * Bda->ScreenColumns + j) * sizeof(WORD), + (LPVOID)&FillCharacter, + sizeof(FillCharacter)); + } } break; } - case SCROLL_DIRECTION_DOWN: + case SCROLL_DOWN: { - RtlMoveMemory(&WindowData[WindowWidth * Amount], - WindowData, - (WindowSize - WindowWidth * Amount) * sizeof(WORD)); - - for (i = 0; i < Amount * WindowWidth; i++) + /* Move text lines down */ + for (i = Rectangle.Bottom - Amount; i >= Rectangle.Top; i--) { - WindowData[i] = MAKEWORD(' ', FillAttribute); + EmulatorWriteMemory(&EmulatorContext, + VideoAddress + ((i + Amount) * Bda->ScreenColumns + Rectangle.Left) * sizeof(WORD), + REAL_TO_PHYS(VideoAddress + ( i * Bda->ScreenColumns + Rectangle.Left) * sizeof(WORD)), + (Rectangle.Right - Rectangle.Left + 1) * sizeof(WORD)); + } + + /* Fill the top of the rectangle */ + for (i = Rectangle.Top; i <= Rectangle.Top + Amount - 1; i++) + { + for (j = Rectangle.Left; j <= Rectangle.Right; j++) + { + EmulatorWriteMemory(&EmulatorContext, + VideoAddress + (i * Bda->ScreenColumns + j) * sizeof(WORD), + (LPVOID)&FillCharacter, + sizeof(FillCharacter)); + } } break; } - default: + case SCROLL_LEFT: { - // TODO: NOT IMPLEMENTED! - UNIMPLEMENTED; + /* Move text lines left */ + for (i = Rectangle.Top; i <= Rectangle.Bottom; i++) + { + EmulatorWriteMemory(&EmulatorContext, + VideoAddress + (i * Bda->ScreenColumns + Rectangle.Left ) * sizeof(WORD), + REAL_TO_PHYS(VideoAddress + (i * Bda->ScreenColumns + Rectangle.Left + Amount) * sizeof(WORD)), + (Rectangle.Right - Rectangle.Left - Amount + 1) * sizeof(WORD)); + } + + /* Fill the right of the rectangle */ + for (i = Rectangle.Top; i <= Rectangle.Bottom; i++) + { + for (j = Rectangle.Right - Amount + 1; j <= Rectangle.Right; j++) + { + EmulatorWriteMemory(&EmulatorContext, + VideoAddress + (i * Bda->ScreenColumns + j) * sizeof(WORD), + (LPVOID)&FillCharacter, + sizeof(FillCharacter)); + } + } + + break; + } + + case SCROLL_RIGHT: + { + /* Move text lines right */ + for (i = Rectangle.Top; i <= Rectangle.Bottom; i++) + { + EmulatorWriteMemory(&EmulatorContext, + VideoAddress + (i * Bda->ScreenColumns + Rectangle.Left + Amount) * sizeof(WORD), + REAL_TO_PHYS(VideoAddress + (i * Bda->ScreenColumns + Rectangle.Left ) * sizeof(WORD)), + (Rectangle.Right - Rectangle.Left - Amount + 1) * sizeof(WORD)); + } + + /* Fill the left of the rectangle */ + for (i = Rectangle.Top; i <= Rectangle.Bottom; i++) + { + for (j = Rectangle.Left; j <= Rectangle.Left + Amount - 1; j++) + { + EmulatorWriteMemory(&EmulatorContext, + VideoAddress + (i * Bda->ScreenColumns + j) * sizeof(WORD), + (LPVOID)&FillCharacter, + sizeof(FillCharacter)); + } + } + + break; } } -Done: - /* Write back the window data */ - VidBiosWriteWindow(WindowData, Rectangle, Page); - - /* Free the window buffer */ - HeapFree(GetProcessHeap(), 0, WindowData); - return TRUE; } @@ -2339,7 +2360,7 @@ VOID VidBiosSyncCursorPosition(VOID) VidBiosSetCursorPosition(Row, Column, Bda->VideoPage); } -static BYTE VidBiosGetVideoMode(VOID) +static inline BYTE VidBiosGetVideoMode(VOID) { /* Bit 7 of VideoMode is determined by bit 7 of VGAOptions */ return Bda->VideoMode | (Bda->VGAOptions & 0x80); @@ -2427,6 +2448,31 @@ static BOOLEAN VidBiosSetVideoMode(BYTE ModeNumber) // FIXME: We need to reset the fonts and the font vectors. (INT 1Fh and 43h). + // HACK: We clear here all the text memory. TODO: Do it better! + if (!DoNotClear && ((ModeNumber >= 0x00 && ModeNumber <= 0x03) || (ModeNumber == 0x07))) + { + INT i, j; + DWORD VideoAddress; + WORD FillCharacter = MAKEWORD(' ', DEFAULT_ATTRIBUTE); + + for (Page = 0; Page < BIOS_MAX_PAGES; ++Page) + { + VideoAddress = TO_LINEAR(TEXT_VIDEO_SEG, Page * Bda->VideoPageSize); + + for (i = 0; i <= Bda->ScreenRows; i++) + { + for (j = 0; j <= Bda->ScreenColumns - 1; j++) + { + /* Write to video memory */ + EmulatorWriteMemory(&EmulatorContext, + VideoAddress + (i * Bda->ScreenColumns + j) * sizeof(WORD), + (LPVOID)&FillCharacter, + sizeof(FillCharacter)); + } + } + } + } + /* Refresh display */ VgaRefreshDisplay(); @@ -2552,13 +2598,7 @@ static VOID VidBiosPrintCharacter(CHAR Character, BYTE Attribute, BYTE Page) { /* The screen must be scrolled up */ SMALL_RECT Rectangle = { 0, 0, Bda->ScreenColumns - 1, Bda->ScreenRows }; - - VidBiosScrollWindow(SCROLL_DIRECTION_UP, - 1, - Rectangle, - Page, - DEFAULT_ATTRIBUTE); - + VidBiosScrollWindow(SCROLL_UP, 1, Rectangle, Page, DEFAULT_ATTRIBUTE/*Attribute*/); Row--; } @@ -2629,13 +2669,8 @@ VOID WINAPI VidBiosVideoService(LPWORD Stack) { SMALL_RECT Rectangle = { getCL(), getCH(), getDL(), getDH() }; - /* Call the internal function */ - VidBiosScrollWindow((getAH() == 0x06) ? SCROLL_DIRECTION_UP - : SCROLL_DIRECTION_DOWN, - getAL(), - Rectangle, - Bda->VideoPage, - getBH()); + VidBiosScrollWindow((getAH() == 0x06) ? SCROLL_UP : SCROLL_DOWN, + getAL(), Rectangle, Bda->VideoPage, getBH()); break; } @@ -3177,12 +3212,12 @@ VOID WINAPI VidBiosVideoService(LPWORD Stack) break; } - /* Display combination code */ + /* Get/Set Display combination code */ case 0x1A: { switch (getAL()) { - case 0x00: /* Get Display combiantion code */ + case 0x00: /* Get Display combination code */ setAX(MAKEWORD(0x1A, 0x1A)); setBX(MAKEWORD(0x08, 0x00)); /* VGA w/ color analog display */ break; diff --git a/subsystems/ntvdm/bios/vidbios.h b/subsystems/ntvdm/bios/vidbios.h index 32118a80aad..99849d5dd4e 100644 --- a/subsystems/ntvdm/bios/vidbios.h +++ b/subsystems/ntvdm/bios/vidbios.h @@ -33,13 +33,13 @@ #define FONT_8x16_OFFSET 0x0800 #define FONT_8x14_OFFSET 0x1800 -enum +typedef enum { - SCROLL_DIRECTION_UP, - SCROLL_DIRECTION_DOWN, - SCROLL_DIRECTION_LEFT, - SCROLL_DIRECTION_RIGHT -}; + SCROLL_UP, + SCROLL_DOWN, + SCROLL_LEFT, + SCROLL_RIGHT +} SCROLL_DIRECTION; /* FUNCTIONS ******************************************************************/ diff --git a/subsystems/ntvdm/clock.c b/subsystems/ntvdm/clock.c index 14f67d55064..305ccc2226a 100644 --- a/subsystems/ntvdm/clock.c +++ b/subsystems/ntvdm/clock.c @@ -18,8 +18,8 @@ #include "hardware/cmos.h" #include "hardware/ps2.h" -#include "hardware/timer.h" -#include "hardware/vga.h" +#include "hardware/pit.h" +#include "hardware/video/vga.h" /* Extra PSDK/NDK Headers */ #include diff --git a/subsystems/ntvdm/cpu/cpu.c b/subsystems/ntvdm/cpu/cpu.c index 7b56e083ef8..6666978cf2a 100644 --- a/subsystems/ntvdm/cpu/cpu.c +++ b/subsystems/ntvdm/cpu/cpu.c @@ -24,9 +24,9 @@ #include "hardware/mouse.h" #include "hardware/pic.h" #include "hardware/ps2.h" -#include "hardware/speaker.h" -#include "hardware/timer.h" -#include "hardware/vga.h" +#include "hardware/sound/speaker.h" +#include "hardware/pit.h" +#include "hardware/video/vga.h" #include "io.h" diff --git a/subsystems/ntvdm/dos/dem.c b/subsystems/ntvdm/dos/dem.c index 9e1078f0455..e65c2eff8cb 100644 --- a/subsystems/ntvdm/dos/dem.c +++ b/subsystems/ntvdm/dos/dem.c @@ -236,7 +236,7 @@ Command: { /* Expand the environment size */ EnvSize = CommandInfo.EnvLen; - Env = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, Env, EnvSize); + CommandInfo.Env = Env = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, Env, EnvSize); /* Repeat the request */ goto Command; @@ -423,7 +423,7 @@ static VOID WINAPI DosStart(LPWORD Stack) RegisterBop(BOP_START_DOS, NULL); /* Load the mouse driver */ - DosMouseInitialize(); + // DosMouseInitialize(); #ifndef STANDALONE diff --git a/subsystems/ntvdm/dos/dos32krnl/dos.c b/subsystems/ntvdm/dos/dos32krnl/dos.c index 743b4b6112f..4e2fc189537 100644 --- a/subsystems/ntvdm/dos/dos32krnl/dos.c +++ b/subsystems/ntvdm/dos/dos32krnl/dos.c @@ -403,40 +403,60 @@ static VOID DosChangeMemoryOwner(WORD Segment, WORD NewOwner) Mcb->OwnerPsp = NewOwner; } -static WORD DosCopyEnvironmentBlock(LPCSTR Environment, LPCSTR ProgramName) +static WORD DosCopyEnvironmentBlock(LPCSTR Environment OPTIONAL, + LPCSTR ProgramName) { PCHAR Ptr, DestBuffer = NULL; ULONG TotalSize = 0; WORD DestSegment; - Ptr = (PCHAR)Environment; + /* If we have an environment strings list, compute its size */ + if (Environment) + { + /* Calculate the size of the environment block */ + Ptr = (PCHAR)Environment; + while (*Ptr) Ptr += strlen(Ptr) + 1; + TotalSize = (ULONG_PTR)Ptr - (ULONG_PTR)Environment; + } + else + { + /* Empty environment string */ + TotalSize = 1; + } + /* Add the final environment block NULL-terminator */ + TotalSize++; - /* Calculate the size of the environment block */ - while (*Ptr) Ptr += strlen(Ptr) + 1; - TotalSize = (ULONG_PTR)Ptr - (ULONG_PTR)Environment + 1; // Add final NULL-terminator + /* Add the two bytes for the program name tag */ + TotalSize += 2; /* Add the string buffer size */ TotalSize += strlen(ProgramName) + 1; - /* Add the two extra bytes */ - TotalSize += 2; - /* Allocate the memory for the environment block */ DestSegment = DosAllocateMemory((WORD)((TotalSize + 0x0F) >> 4), NULL); if (!DestSegment) return 0; - Ptr = (PCHAR)Environment; - DestBuffer = (PCHAR)SEG_OFF_TO_PTR(DestSegment, 0); - while (*Ptr) - { - /* Copy the string and NULL-terminate it */ - strcpy(DestBuffer, Ptr); - DestBuffer += strlen(Ptr); - *(DestBuffer++) = '\0'; - /* Move to the next string */ - Ptr += strlen(Ptr) + 1; + /* If we have an environment strings list, copy it */ + if (Environment) + { + Ptr = (PCHAR)Environment; + while (*Ptr) + { + /* Copy the string and NULL-terminate it */ + strcpy(DestBuffer, Ptr); + DestBuffer += strlen(Ptr); + *(DestBuffer++) = '\0'; + + /* Move to the next string */ + Ptr += strlen(Ptr) + 1; + } + } + else + { + /* Empty environment string */ + *(DestBuffer++) = '\0'; } /* NULL-terminate the environment block */ *(DestBuffer++) = '\0'; @@ -900,7 +920,7 @@ VOID DosInitializePsp(WORD PspSegment, LPCSTR CommandLine, WORD ProgramSize, WOR DWORD DosLoadExecutable(IN DOS_EXEC_TYPE LoadType, IN LPCSTR ExecutablePath, IN LPCSTR CommandLine, - IN LPCSTR Environment, + IN LPCSTR Environment OPTIONAL, OUT PDWORD StackLocation OPTIONAL, OUT PDWORD EntryPoint OPTIONAL) { @@ -920,7 +940,7 @@ DWORD DosLoadExecutable(IN DOS_EXEC_TYPE LoadType, LoadType, ExecutablePath, CommandLine, - Environment, + Environment ? Environment : "n/a", StackLocation, EntryPoint); @@ -1144,7 +1164,7 @@ Cleanup: DWORD DosStartProcess(IN LPCSTR ExecutablePath, IN LPCSTR CommandLine, - IN LPCSTR Environment) + IN LPCSTR Environment OPTIONAL) { DWORD Result; diff --git a/subsystems/ntvdm/dos/dos32krnl/dos.h b/subsystems/ntvdm/dos/dos32krnl/dos.h index 3da70b63242..a7da71b2099 100644 --- a/subsystems/ntvdm/dos/dos32krnl/dos.h +++ b/subsystems/ntvdm/dos/dos32krnl/dos.h @@ -224,7 +224,7 @@ DWORD DosLoadExecutable( IN DOS_EXEC_TYPE LoadType, IN LPCSTR ExecutablePath, IN LPCSTR CommandLine, - IN LPCSTR Environment, + IN LPCSTR Environment OPTIONAL, OUT PDWORD StackLocation OPTIONAL, OUT PDWORD EntryPoint OPTIONAL ); @@ -236,7 +236,7 @@ WORD DosCreateProcess( DWORD DosStartProcess( IN LPCSTR ExecutablePath, IN LPCSTR CommandLine, - IN LPCSTR Environment + IN LPCSTR Environment OPTIONAL ); VOID DosTerminateProcess(WORD Psp, BYTE ReturnCode); BOOLEAN DosHandleIoctl(BYTE ControlCode, WORD FileHandle); diff --git a/subsystems/ntvdm/emulator.c b/subsystems/ntvdm/emulator.c index 2d22307df20..004418a0205 100644 --- a/subsystems/ntvdm/emulator.c +++ b/subsystems/ntvdm/emulator.c @@ -22,13 +22,14 @@ #include "clock.h" #include "bios/rom.h" #include "hardware/cmos.h" +#include "hardware/dma.h" #include "hardware/keyboard.h" #include "hardware/mouse.h" #include "hardware/pic.h" #include "hardware/ps2.h" -#include "hardware/speaker.h" -#include "hardware/timer.h" -#include "hardware/vga.h" +#include "hardware/sound/speaker.h" +#include "hardware/pit.h" +#include "hardware/video/vga.h" #include "vddsup.h" #include "io.h" @@ -626,6 +627,7 @@ BOOLEAN EmulatorInitialize(HANDLE ConsoleInput, HANDLE ConsoleOutput) CpuInitialize(); /* Initialize DMA */ + DmaInitialize(); /* Initialize the PIC, the PIT, the CMOS and the PC Speaker */ PicInitialize(); @@ -706,6 +708,8 @@ VOID EmulatorCleanup(VOID) // PitCleanup(); // PicCleanup(); + // DmaCleanup(); + CpuCleanup(); #ifdef STANDALONE diff --git a/subsystems/ntvdm/hardware/dma.c b/subsystems/ntvdm/hardware/dma.c new file mode 100644 index 00000000000..e4422427046 --- /dev/null +++ b/subsystems/ntvdm/hardware/dma.c @@ -0,0 +1,462 @@ +/* + * COPYRIGHT: GPL - See COPYING in the top level directory + * PROJECT: ReactOS Virtual DOS Machine + * FILE: dma.c + * PURPOSE: Direct Memory Access Controller emulation - + * i8237A compatible with 74LS612 Memory Mapper extension + * PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr) + */ + +/* INCLUDES *******************************************************************/ + +#define NDEBUG + +#include "emulator.h" +#include "io.h" +#include "dma.h" + +/* PRIVATE VARIABLES **********************************************************/ + +/* + * DMA Controller 0 (Channels 0..3): Slave controller + * DMA Controller 1 (Channels 4..7): Master controller + */ +static DMA_CONTROLLER DmaControllers[DMA_CONTROLLERS]; + +/* External page registers for each channel of the two DMA controllers */ +static DMA_PAGE_REGISTER DmaPageRegisters[DMA_CONTROLLERS * DMA_CONTROLLER_CHANNELS]; + +/* PRIVATE FUNCTIONS **********************************************************/ + +#define READ_ADDR(CtrlIndex, ChanIndex, Data) \ +do { \ + (Data) = \ + *((PBYTE)&DmaControllers[(CtrlIndex)].DmaChannel[(ChanIndex)].CurrAddress + \ + (DmaControllers[(CtrlIndex)].FlipFlop & 0x01)); \ + DmaControllers[(CtrlIndex)].FlipFlop ^= 1; \ +} while(0) + +#define READ_CNT(CtrlIndex, ChanIndex, Data) \ +do { \ + (Data) = \ + *((PBYTE)&DmaControllers[(CtrlIndex)].DmaChannel[(ChanIndex)].CurrWordCnt + \ + (DmaControllers[(CtrlIndex)].FlipFlop & 0x01)); \ + DmaControllers[(CtrlIndex)].FlipFlop ^= 1; \ +} while(0) + +static BYTE WINAPI DmaReadPort(USHORT Port) +{ + BYTE ReadValue = 0xFF; + + switch (Port) + { + /* Start Address Registers */ + { + case 0x00: + READ_ADDR(0, 0, ReadValue); + return ReadValue; + case 0x02: + READ_ADDR(0, 1, ReadValue); + return ReadValue; + case 0x04: + READ_ADDR(0, 2, ReadValue); + return ReadValue; + case 0x06: + READ_ADDR(0, 3, ReadValue); + return ReadValue; + case 0xC0: + READ_ADDR(1, 0, ReadValue); + return ReadValue; + case 0xC4: + READ_ADDR(1, 1, ReadValue); + return ReadValue; + case 0xC8: + READ_ADDR(1, 2, ReadValue); + return ReadValue; + case 0xCC: + READ_ADDR(1, 3, ReadValue); + return ReadValue; + } + + /* Count Address Registers */ + { + case 0x01: + READ_CNT(0, 0, ReadValue); + return ReadValue; + case 0x03: + READ_CNT(0, 1, ReadValue); + return ReadValue; + case 0x05: + READ_CNT(0, 2, ReadValue); + return ReadValue; + case 0x07: + READ_CNT(0, 3, ReadValue); + return ReadValue; + case 0xC2: + READ_CNT(1, 0, ReadValue); + return ReadValue; + case 0xC6: + READ_CNT(1, 1, ReadValue); + return ReadValue; + case 0xCA: + READ_CNT(1, 2, ReadValue); + return ReadValue; + case 0xCE: + READ_CNT(1, 3, ReadValue); + return ReadValue; + } + + /* Status Registers */ + { + case 0x08: + return DmaControllers[0].Status; + case 0xD0: + return DmaControllers[1].Status; + } + + /* DMA Intermediate (Temporary) Registers */ + { + case 0x0D: + return DmaControllers[0].TempReg; + case 0xDA: + return DmaControllers[1].TempReg; + } + } + + return 0x00; +} + +#define WRITE_ADDR(CtrlIndex, ChanIndex, Data) \ +do { \ + *((PBYTE)&DmaControllers[(CtrlIndex)].DmaChannel[(ChanIndex)].BaseAddress + \ + (DmaControllers[(CtrlIndex)].FlipFlop & 0x01)) = (Data); \ + *((PBYTE)&DmaControllers[(CtrlIndex)].DmaChannel[(ChanIndex)].CurrAddress + \ + (DmaControllers[(CtrlIndex)].FlipFlop & 0x01)) = (Data); \ + DmaControllers[(CtrlIndex)].FlipFlop ^= 1; \ +} while(0) + +#define WRITE_CNT(CtrlIndex, ChanIndex, Data) \ +do { \ + *((PBYTE)&DmaControllers[(CtrlIndex)].DmaChannel[(ChanIndex)].BaseWordCnt + \ + (DmaControllers[(CtrlIndex)].FlipFlop & 0x01)) = (Data); \ + *((PBYTE)&DmaControllers[(CtrlIndex)].DmaChannel[(ChanIndex)].CurrWordCnt + \ + (DmaControllers[(CtrlIndex)].FlipFlop & 0x01)) = (Data); \ + DmaControllers[(CtrlIndex)].FlipFlop ^= 1; \ +} while(0) + +static VOID WINAPI DmaWritePort(USHORT Port, BYTE Data) +{ + switch (Port) + { + /* Start Address Registers */ + { + case 0x00: + WRITE_ADDR(0, 0, Data); + break; + case 0x02: + WRITE_ADDR(0, 1, Data); + break; + case 0x04: + WRITE_ADDR(0, 2, Data); + break; + case 0x06: + WRITE_ADDR(0, 3, Data); + break; + case 0xC0: + WRITE_ADDR(1, 0, Data); + break; + case 0xC4: + WRITE_ADDR(1, 1, Data); + break; + case 0xC8: + WRITE_ADDR(1, 2, Data); + break; + case 0xCC: + WRITE_ADDR(1, 3, Data); + break; + } + + /* Count Address Registers */ + { + case 0x01: + WRITE_CNT(0, 0, Data); + break; + case 0x03: + WRITE_CNT(0, 1, Data); + break; + case 0x05: + WRITE_CNT(0, 2, Data); + break; + case 0x07: + WRITE_CNT(0, 3, Data); + break; + case 0xC2: + WRITE_CNT(1, 0, Data); + break; + case 0xC6: + WRITE_CNT(1, 1, Data); + break; + case 0xCA: + WRITE_CNT(1, 2, Data); + break; + case 0xCE: + WRITE_CNT(1, 3, Data); + break; + } + + /* Command Registers */ + { + case 0x08: + DmaControllers[0].Command = Data; + break; + case 0xD0: + DmaControllers[1].Command = Data; + break; + } + + /* Request Registers */ + { + case 0x09: + DmaControllers[0].Request = Data; + break; + case 0xD2: + DmaControllers[1].Request = Data; + break; + } + + /* Flip-Flop Reset */ + { + case 0x0C: + DmaControllers[0].FlipFlop = 0; + break; + case 0xD8: + DmaControllers[1].FlipFlop = 0; + break; + } + + /* DMA Master Reset */ + { + case 0x0D: + DmaControllers[0].Command = 0x00; + DmaControllers[0].Status = 0x00; + DmaControllers[0].Request = 0x00; + DmaControllers[0].TempReg = 0x00; + DmaControllers[0].FlipFlop = 0; + DmaControllers[0].Mask = 0x0F; + break; + case 0xDA: + DmaControllers[1].Command = 0x00; + DmaControllers[1].Status = 0x00; + DmaControllers[1].Request = 0x00; + DmaControllers[1].TempReg = 0x00; + DmaControllers[1].FlipFlop = 0; + DmaControllers[1].Mask = 0x0F; + break; + } + } +} + +/* Page Address Registers */ + +static BYTE WINAPI DmaPageReadPort(USHORT Port) +{ + switch (Port) + { + case 0x87: + return DmaPageRegisters[0].Page; + case 0x83: + return DmaPageRegisters[1].Page; + case 0x81: + return DmaPageRegisters[2].Page; + case 0x82: + return DmaPageRegisters[3].Page; + case 0x8F: + return DmaPageRegisters[4].Page; + case 0x8B: + return DmaPageRegisters[5].Page; + case 0x89: + return DmaPageRegisters[6].Page; + case 0x8A: + return DmaPageRegisters[7].Page; + } + + return 0x00; +} + +static VOID WINAPI DmaPageWritePort(USHORT Port, BYTE Data) +{ + switch (Port) + { + case 0x87: + DmaPageRegisters[0].Page = Data; + break; + case 0x83: + DmaPageRegisters[1].Page = Data; + break; + case 0x81: + DmaPageRegisters[2].Page = Data; + break; + case 0x82: + DmaPageRegisters[3].Page = Data; + break; + case 0x8F: + DmaPageRegisters[4].Page = Data; + break; + case 0x8B: + DmaPageRegisters[5].Page = Data; + break; + case 0x89: + DmaPageRegisters[6].Page = Data; + break; + case 0x8A: + DmaPageRegisters[7].Page = Data; + break; + } +} + +/* PUBLIC FUNCTIONS ***********************************************************/ + +VOID DmaInitialize(VOID) +{ + /* Register the I/O Ports */ + + /* Channels 0(Reserved)..3 */ + RegisterIoPort(0x00, NULL, DmaWritePort); /* Start Address Register 0 (Reserved) */ + RegisterIoPort(0x01, NULL, DmaWritePort); /* Count Address Register 0 (Reserved) */ + RegisterIoPort(0x02, NULL, DmaWritePort); /* Start Address Register 1 */ + RegisterIoPort(0x03, NULL, DmaWritePort); /* Count Address Register 1 */ + RegisterIoPort(0x04, NULL, DmaWritePort); /* Start Address Register 2 */ + RegisterIoPort(0x05, NULL, DmaWritePort); /* Count Address Register 2 */ + RegisterIoPort(0x06, NULL, DmaWritePort); /* Start Address Register 3 */ + RegisterIoPort(0x07, NULL, DmaWritePort); /* Count Address Register 3 */ + + RegisterIoPort(0x08, DmaReadPort, DmaWritePort); /* Status (Read) / Command (Write) Registers */ + RegisterIoPort(0x09, NULL, DmaWritePort); /* Request Register */ + RegisterIoPort(0x0A, NULL, DmaWritePort); /* Single Channel Mask Register */ + RegisterIoPort(0x0B, NULL, DmaWritePort); /* Mode Register */ + RegisterIoPort(0x0C, NULL, DmaWritePort); /* Flip-Flop Reset Register */ + RegisterIoPort(0x0D, DmaReadPort, DmaWritePort); /* Intermediate (Read) / Master Reset (Write) Registers */ + RegisterIoPort(0x0E, NULL, DmaWritePort); /* Mask Reset Register */ + RegisterIoPort(0x0F, DmaReadPort, DmaWritePort); /* Multi-Channel Mask Reset Register */ + + + /* Channels 4(Reserved)..7 */ + RegisterIoPort(0xC0, NULL, DmaWritePort); /* Start Address Register 4 (Reserved) */ + RegisterIoPort(0xC2, NULL, DmaWritePort); /* Count Address Register 4 (Reserved) */ + RegisterIoPort(0xC4, NULL, DmaWritePort); /* Start Address Register 5 */ + RegisterIoPort(0xC6, NULL, DmaWritePort); /* Count Address Register 5 */ + RegisterIoPort(0xC8, NULL, DmaWritePort); /* Start Address Register 6 */ + RegisterIoPort(0xCA, NULL, DmaWritePort); /* Count Address Register 6 */ + RegisterIoPort(0xCC, NULL, DmaWritePort); /* Start Address Register 7 */ + RegisterIoPort(0xCE, NULL, DmaWritePort); /* Count Address Register 7 */ + + RegisterIoPort(0xD0, DmaReadPort, DmaWritePort); /* Status (Read) / Command (Write) Registers */ + RegisterIoPort(0xD2, NULL, DmaWritePort); /* Request Register */ + RegisterIoPort(0xD4, NULL, DmaWritePort); /* Single Channel Mask Register */ + RegisterIoPort(0xD6, NULL, DmaWritePort); /* Mode Register */ + RegisterIoPort(0xD8, NULL, DmaWritePort); /* Flip-Flop Reset Register */ + RegisterIoPort(0xDA, DmaReadPort, DmaWritePort); /* Intermediate (Read) / Master Reset (Write) Registers */ + RegisterIoPort(0xDC, NULL, DmaWritePort); /* Mask Reset Register */ + RegisterIoPort(0xDE, DmaReadPort, DmaWritePort); /* Multi-Channel Mask Reset Register */ + + + /* Channels Page Address Registers */ + RegisterIoPort(0x87, DmaPageReadPort, DmaPageWritePort); /* Channel 0 (Reserved) */ + RegisterIoPort(0x83, DmaPageReadPort, DmaPageWritePort); /* Channel 1 */ + RegisterIoPort(0x81, DmaPageReadPort, DmaPageWritePort); /* Channel 2 */ + RegisterIoPort(0x82, DmaPageReadPort, DmaPageWritePort); /* Channel 3 */ + RegisterIoPort(0x8F, DmaPageReadPort, DmaPageWritePort); /* Channel 4 (Reserved) */ + RegisterIoPort(0x8B, DmaPageReadPort, DmaPageWritePort); /* Channel 5 */ + RegisterIoPort(0x89, DmaPageReadPort, DmaPageWritePort); /* Channel 6 */ + RegisterIoPort(0x8A, DmaPageReadPort, DmaPageWritePort); /* Channel 7 */ +} + + + +DWORD +WINAPI +VDDRequestDMA(IN HANDLE hVdd, + IN WORD iChannel, + IN OUT PVOID Buffer, + IN DWORD length) +{ + UNREFERENCED_PARAMETER(hVdd); + + if (iChannel >= DMA_CONTROLLERS * DMA_CONTROLLER_CHANNELS) + { + SetLastError(ERROR_INVALID_ADDRESS); + return FALSE; + } + + UNIMPLEMENTED; + return 0; +} + +BOOL +WINAPI +VDDQueryDMA(IN HANDLE hVdd, + IN WORD iChannel, + IN PVDD_DMA_INFO pDmaInfo) +{ + PDMA_CONTROLLER pDcp; + WORD Channel; + + UNREFERENCED_PARAMETER(hVdd); + + if (iChannel >= DMA_CONTROLLERS * DMA_CONTROLLER_CHANNELS) + { + SetLastError(ERROR_INVALID_ADDRESS); + return FALSE; + } + + pDcp = &DmaControllers[iChannel / DMA_CONTROLLER_CHANNELS]; + Channel = iChannel % DMA_CONTROLLER_CHANNELS; + + pDmaInfo->addr = pDcp->DmaChannel[Channel].CurrAddress; + pDmaInfo->count = pDcp->DmaChannel[Channel].CurrWordCnt; + + // pDmaInfo->page = DmaPageRegisters[iChannel].Page; + pDmaInfo->status = pDcp->Status; + pDmaInfo->mode = pDcp->DmaChannel[Channel].Mode; + pDmaInfo->mask = pDcp->Mask; + + return TRUE; +} + +BOOL +WINAPI +VDDSetDMA(IN HANDLE hVdd, + IN WORD iChannel, + IN WORD fDMA, + IN PVDD_DMA_INFO pDmaInfo) +{ + PDMA_CONTROLLER pDcp; + WORD Channel; + + UNREFERENCED_PARAMETER(hVdd); + + if (iChannel >= DMA_CONTROLLERS * DMA_CONTROLLER_CHANNELS) + { + SetLastError(ERROR_INVALID_ADDRESS); + return FALSE; + } + + pDcp = &DmaControllers[iChannel / DMA_CONTROLLER_CHANNELS]; + Channel = iChannel % DMA_CONTROLLER_CHANNELS; + + if (fDMA & VDD_DMA_ADDR) + pDcp->DmaChannel[Channel].CurrAddress = pDmaInfo->addr; + + if (fDMA & VDD_DMA_COUNT) + pDcp->DmaChannel[Channel].CurrWordCnt = pDmaInfo->count; + + // if (fDMA & VDD_DMA_PAGE) + // DmaPageRegisters[iChannel].Page = pDmaInfo->page; + + if (fDMA & VDD_DMA_STATUS) + pDcp->Status = pDmaInfo->status; + + return TRUE; +} + +/* EOF */ diff --git a/subsystems/ntvdm/hardware/dma.h b/subsystems/ntvdm/hardware/dma.h new file mode 100644 index 00000000000..1e41f28980e --- /dev/null +++ b/subsystems/ntvdm/hardware/dma.h @@ -0,0 +1,64 @@ +/* + * COPYRIGHT: GPL - See COPYING in the top level directory + * PROJECT: ReactOS Virtual DOS Machine + * FILE: dma.h + * PURPOSE: Direct Memory Access Controller emulation - + * i8237A compatible with 74LS612 Memory Mapper extension + * PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr) + */ + +#ifndef _DMA_H_ +#define _DMA_H_ + +/* INCLUDES *******************************************************************/ + +#include "ntvdm.h" + +/* DEFINES ********************************************************************/ + +#define DMA_CONTROLLERS 2 +#define DMA_CONTROLLER_CHANNELS 4 // Each DMA controller has 4 channels + +typedef struct _DMA_CHANNEL +{ + WORD BaseAddress; + WORD BaseWordCnt; + WORD CurrAddress; + WORD CurrWordCnt; + BYTE Mode; +} DMA_CHANNEL, *PDMA_CHANNEL; + +typedef struct _DMA_CONTROLLER +{ + DMA_CHANNEL DmaChannel[DMA_CONTROLLER_CHANNELS]; + + WORD TempAddress; + WORD TempWordCnt; + + BYTE TempReg; + + BYTE Command; + BYTE Request; + BYTE Mask; + BYTE Status; + + BOOLEAN FlipFlop; // 0: LSB ; 1: MSB + +} DMA_CONTROLLER, *PDMA_CONTROLLER; + +/* 74LS612 Memory Mapper extension */ +typedef struct _DMA_PAGE_REGISTER +{ + BYTE Page; +} DMA_PAGE_REGISTER, *PDMA_PAGE_REGISTER; + +// The 74LS612 contains 16 bytes, each of them being a page register. +// They are accessible via ports 0x80 through 0x8F . + +/* FUNCTIONS ******************************************************************/ + +VOID DmaInitialize(VOID); + +#endif // _DMA_H_ + +/* EOF */ diff --git a/subsystems/ntvdm/hardware/pic.c b/subsystems/ntvdm/hardware/pic.c index 624c825c084..2d6296aaf85 100644 --- a/subsystems/ntvdm/hardware/pic.c +++ b/subsystems/ntvdm/hardware/pic.c @@ -349,4 +349,24 @@ call_ica_hw_interrupt(INT ms, } } +WORD +WINAPI +VDDReserveIrqLine(IN HANDLE hVdd, + IN WORD IrqLine) +{ + UNIMPLEMENTED; + SetLastError(ERROR_INVALID_PARAMETER); + return 0xFFFF; +} + +BOOL +WINAPI +VDDReleaseIrqLine(IN HANDLE hVdd, + IN WORD IrqLine) +{ + UNIMPLEMENTED; + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; +} + /* EOF */ diff --git a/subsystems/ntvdm/hardware/timer.c b/subsystems/ntvdm/hardware/pit.c similarity index 99% rename from subsystems/ntvdm/hardware/timer.c rename to subsystems/ntvdm/hardware/pit.c index 839ea3cf00a..037e06240f4 100644 --- a/subsystems/ntvdm/hardware/timer.c +++ b/subsystems/ntvdm/hardware/pit.c @@ -1,7 +1,7 @@ /* * COPYRIGHT: GPL - See COPYING in the top level directory * PROJECT: ReactOS Virtual DOS Machine - * FILE: timer.c + * FILE: pit.c * PURPOSE: Programmable Interval Timer emulation - * i82C54/8254 compatible * PROGRAMMERS: Aleksandar Andrejevic @@ -14,7 +14,7 @@ #include "emulator.h" #include "io.h" -#include "timer.h" +#include "pit.h" #include "pic.h" /* PRIVATE VARIABLES **********************************************************/ diff --git a/subsystems/ntvdm/hardware/timer.h b/subsystems/ntvdm/hardware/pit.h similarity index 96% rename from subsystems/ntvdm/hardware/timer.h rename to subsystems/ntvdm/hardware/pit.h index b25f5cf26db..8d32938405d 100644 --- a/subsystems/ntvdm/hardware/timer.h +++ b/subsystems/ntvdm/hardware/pit.h @@ -1,15 +1,15 @@ /* * COPYRIGHT: GPL - See COPYING in the top level directory * PROJECT: ReactOS Virtual DOS Machine - * FILE: timer.h + * FILE: pit.h * PURPOSE: Programmable Interval Timer emulation - * i82C54/8254 compatible * PROGRAMMERS: Aleksandar Andrejevic * Hermes Belusca-Maito (hermes.belusca@sfr.fr) */ -#ifndef _TIMER_H_ -#define _TIMER_H_ +#ifndef _PIT_H_ +#define _PIT_H_ /* INCLUDES *******************************************************************/ @@ -84,6 +84,6 @@ VOID PitClock(DWORD Count); VOID PitInitialize(VOID); -#endif // _TIMER_H_ +#endif // _PIT_H_ /* EOF */ diff --git a/subsystems/ntvdm/hardware/speaker.c b/subsystems/ntvdm/hardware/sound/speaker.c similarity index 99% rename from subsystems/ntvdm/hardware/speaker.c rename to subsystems/ntvdm/hardware/sound/speaker.c index 2f6d017f8d5..5f00b2ce56a 100644 --- a/subsystems/ntvdm/hardware/speaker.c +++ b/subsystems/ntvdm/hardware/sound/speaker.c @@ -12,7 +12,7 @@ #include "emulator.h" #include "speaker.h" -#include "timer.h" +#include "hardware/pit.h" /* Extra PSDK/NDK Headers */ #include diff --git a/subsystems/ntvdm/hardware/speaker.h b/subsystems/ntvdm/hardware/sound/speaker.h similarity index 100% rename from subsystems/ntvdm/hardware/speaker.h rename to subsystems/ntvdm/hardware/sound/speaker.h diff --git a/subsystems/ntvdm/hardware/vga.c b/subsystems/ntvdm/hardware/video/vga.c similarity index 100% rename from subsystems/ntvdm/hardware/vga.c rename to subsystems/ntvdm/hardware/video/vga.c diff --git a/subsystems/ntvdm/hardware/vga.h b/subsystems/ntvdm/hardware/video/vga.h similarity index 100% rename from subsystems/ntvdm/hardware/vga.h rename to subsystems/ntvdm/hardware/video/vga.h diff --git a/subsystems/ntvdm/ntvdm.c b/subsystems/ntvdm/ntvdm.c index fb81ec1153e..54b868a6c6e 100644 --- a/subsystems/ntvdm/ntvdm.c +++ b/subsystems/ntvdm/ntvdm.c @@ -14,11 +14,7 @@ #include "emulator.h" #include "cpu/cpu.h" -#include "clock.h" -#include "hardware/ps2.h" -#include "hardware/vga.h" #include "bios/bios.h" -#include "dos/dem.h" #include "resource.h" diff --git a/subsystems/ntvdm/ntvdm.spec b/subsystems/ntvdm/ntvdm.spec index 244bda9200f..4cd48a8c776 100644 --- a/subsystems/ntvdm/ntvdm.spec +++ b/subsystems/ntvdm/ntvdm.spec @@ -1,6 +1,6 @@ -;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; NTVDM Registers exports ;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;; +;; NTVDM Registers ;; +;;;;;;;;;;;;;;;;;;;;; @ stdcall getAF() @ stdcall getAH() @@ -90,9 +90,9 @@ @ stdcall setZF(long) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; NTVDM CCPU MIPS exports ;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; NTVDM CCPU MIPS Compatibility ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @ stdcall c_getAF() getAF @ stdcall c_getAH() getAH @@ -179,9 +179,9 @@ @ stdcall c_setZF(long) setZF -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; NTVDM DOS-32 Emulation exports ;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; NTVDM DOS-32 Emulation ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;; @ stdcall demClientErrorEx(long long long) @ stdcall demFileDelete(ptr) @@ -200,9 +200,9 @@ ;@ stdcall demWOWLFNInit -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; NTVDM Miscellaneous exports ;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;; +;; NTVDM Miscellaneous ;; +;;;;;;;;;;;;;;;;;;;;;;;;; @ stdcall MGetVdmPointer(long long long) @ stdcall Sim32pGetVDMPointer(long long) @@ -212,9 +212,16 @@ ;@ stdcall VdmUnmapFlat(long long ptr long) ; Not exported on x86 @ stdcall call_ica_hw_interrupt(long long long) +@ stdcall VDDReserveIrqLine(long long) +@ stdcall VDDReleaseIrqLine(long long) + @ stdcall VDDInstallIOHook(long long ptr ptr) @ stdcall VDDDeInstallIOHook(long long ptr) +@ stdcall VDDRequestDMA(long long ptr long) +@ stdcall VDDQueryDMA(long long ptr) +@ stdcall VDDSetDMA(long long long ptr) + @ stdcall VDDSimulate16() @ stdcall host_simulate() VDDSimulate16 @ stdcall VDDTerminateVDM() diff --git a/subsystems/ntvdm/vddsup.c b/subsystems/ntvdm/vddsup.c index 0997216c08a..7d3f4e2411b 100644 --- a/subsystems/ntvdm/vddsup.c +++ b/subsystems/ntvdm/vddsup.c @@ -29,7 +29,7 @@ typedef struct _VDD_MODULE // TODO: Maybe use a linked list. // But the number of elements must be <= MAXUSHORT (MAXWORD) #define MAX_VDD_MODULES 0xFF + 1 -VDD_MODULE VDDList[MAX_VDD_MODULES] = {{NULL}}; +static VDD_MODULE VDDList[MAX_VDD_MODULES] = {{NULL}}; // Valid handles of VDD DLLs start at 1 and finish at MAX_VDD_MODULES #define ENTRY_TO_HANDLE(Entry) ((Entry) + 1) @@ -38,7 +38,7 @@ VDD_MODULE VDDList[MAX_VDD_MODULES] = {{NULL}}; /* PRIVATE FUNCTIONS **********************************************************/ -USHORT GetNextFreeVDDEntry(VOID) +static USHORT GetNextFreeVDDEntry(VOID) { USHORT Entry = MAX_VDD_MODULES; for (Entry = 0; Entry < sizeof(VDDList)/sizeof(VDDList[0]); ++Entry) @@ -48,7 +48,7 @@ USHORT GetNextFreeVDDEntry(VOID) return Entry; } -VOID WINAPI ThirdPartyVDDBop(LPWORD Stack) +static VOID WINAPI ThirdPartyVDDBop(LPWORD Stack) { /* Get the Function Number and skip it */ BYTE FuncNum = *(PBYTE)SEG_OFF_TO_PTR(getCS(), getIP()); @@ -231,7 +231,7 @@ Quit: } } -BOOL LoadInstallableVDD(VOID) +static BOOL LoadInstallableVDD(VOID) { #define ERROR_MEMORYVDD L"Insufficient memory to load installable Virtual Device Drivers." #define ERROR_REGVDD L"Virtual Device Driver format in the registry is invalid." diff --git a/subsystems/win32/csrsrv/thredsup.c b/subsystems/win32/csrsrv/thredsup.c index 87b471b8a17..b0cfac8314b 100644 --- a/subsystems/win32/csrsrv/thredsup.c +++ b/subsystems/win32/csrsrv/thredsup.c @@ -309,7 +309,7 @@ CsrInsertThread(IN PCSR_PROCESS Process, sizeof(ThreadInfo), NULL); if (!NT_SUCCESS(Status)) return Status; - if (ThreadInfo == TRUE) return STATUS_THREAD_IS_TERMINATING; + if (ThreadInfo) return STATUS_THREAD_IS_TERMINATING; /* Insert it into the Regular List */ InsertTailList(&Process->ThreadList, &Thread->Link); diff --git a/win32ss/gdi/ntgdi/xformobj.c b/win32ss/gdi/ntgdi/xformobj.c index dbd8e22501b..fb6deb6d02c 100644 --- a/win32ss/gdi/ntgdi/xformobj.c +++ b/win32ss/gdi/ntgdi/xformobj.c @@ -297,10 +297,10 @@ XFORMOBJ_iInverse( return XFORMOBJ_UpdateAccel(pxoDst); } - -BOOL +static +VOID NTAPI -XFORMOBJ_bXformFixPoints( +XFORMOBJ_vXformFixPoints( IN XFORMOBJ *pxo, IN ULONG cPoints, IN PPOINTL pptIn, @@ -426,8 +426,6 @@ XFORMOBJ_bXformFixPoints( } while (--i >= 0); } - - return TRUE; } /** Public functions **********************************************************/ @@ -500,7 +498,7 @@ XFORMOBJ_bApplyXform( { MATRIX mx; XFORMOBJ xoInv; - POINTL *pptl; + PPOINTL pptlIn, pptlOut; INT i; /* Check parameters */ @@ -523,28 +521,29 @@ XFORMOBJ_bApplyXform( /* Convert POINTL to POINTFIX? */ if (iMode == XF_LTOFX || iMode == XF_LTOL || iMode == XF_INV_LTOL) { - pptl = pvIn; + pptlIn = pvIn; + pptlOut = pvOut; for (i = cPoints - 1; i >= 0; i--) { - pptl[i].x = LONG2FIX(pptl[i].x); - pptl[i].y = LONG2FIX(pptl[i].y); + pptlOut[i].x = LONG2FIX(pptlIn[i].x); + pptlOut[i].y = LONG2FIX(pptlIn[i].y); } + + /* The input is in the out buffer now! */ + pvIn = pvOut; } /* Do the actual fixpoint transformation */ - if (!XFORMOBJ_bXformFixPoints(pxo, cPoints, pvIn, pvOut)) - { - return FALSE; - } + XFORMOBJ_vXformFixPoints(pxo, cPoints, pvIn, pvOut); /* Convert POINTFIX to POINTL? */ if (iMode == XF_INV_FXTOL || iMode == XF_INV_LTOL || iMode == XF_LTOL) { - pptl = pvOut; + pptlOut = pvOut; for (i = cPoints - 1; i >= 0; i--) { - pptl[i].x = FIX2LONG(pptl[i].x); - pptl[i].y = FIX2LONG(pptl[i].y); + pptlOut[i].x = FIX2LONG(pptlOut[i].x); + pptlOut[i].y = FIX2LONG(pptlOut[i].y); } } diff --git a/win32ss/user/ntuser/desktop.c b/win32ss/user/ntuser/desktop.c index 37357ac4d51..857da893f0d 100644 --- a/win32ss/user/ntuser/desktop.c +++ b/win32ss/user/ntuser/desktop.c @@ -1701,7 +1701,7 @@ NtUserSwitchDesktop(HDESK hdesk) * is the logon application itself */ if((pdesk->rpwinstaParent->Flags & WSS_LOCKED) && - LogonProcess != PsGetCurrentProcessWin32Process()) + gpidLogon != PsGetCurrentProcessId()) { ObDereferenceObject(pdesk); ERR("Switching desktop 0x%p denied because the window station is locked!\n", hdesk); diff --git a/win32ss/user/ntuser/keyboard.c b/win32ss/user/ntuser/keyboard.c index 097b8524bd8..c8a7a73721f 100644 --- a/win32ss/user/ntuser/keyboard.c +++ b/win32ss/user/ntuser/keyboard.c @@ -936,10 +936,16 @@ ProcessKeyEvent(WORD wVk, WORD wScanCode, DWORD dwFlags, BOOL bInjected, DWORD d Msg.lParam |= KF_MENUMODE << 16; } + // Post mouse move before posting key buttons, to keep it syned. + if (pFocusQueue->QF_flags & QF_MOUSEMOVED) + { + IntCoalesceMouseMove(pti); + } + /* Post a keyboard message */ TRACE("Posting keyboard msg %u wParam 0x%x lParam 0x%x\n", Msg.message, Msg.wParam, Msg.lParam); if (!Wnd) {ERR("Window is NULL\n");} - MsqPostMessage(pti, &Msg, TRUE, QS_KEY, 0); + MsqPostMessage(pti, &Msg, TRUE, QS_KEY, 0, dwExtraInfo); } return TRUE; @@ -1154,7 +1160,7 @@ IntTranslateKbdMessage(LPMSG lpMsg, NewMsg.message = (lpMsg->message == WM_KEYDOWN) ? WM_CHAR : WM_SYSCHAR; NewMsg.wParam = HIWORD(lpMsg->lParam); NewMsg.lParam = LOWORD(lpMsg->lParam); - MsqPostMessage(pti, &NewMsg, FALSE, QS_KEY, 0); + MsqPostMessage(pti, &NewMsg, FALSE, QS_KEY, 0, 0); return TRUE; } @@ -1183,7 +1189,7 @@ IntTranslateKbdMessage(LPMSG lpMsg, { TRACE("Msg: %x '%lc' (%04x) %08x\n", NewMsg.message, wch[i], wch[i], NewMsg.lParam); NewMsg.wParam = wch[i]; - MsqPostMessage(pti, &NewMsg, FALSE, QS_KEY, 0); + MsqPostMessage(pti, &NewMsg, FALSE, QS_KEY, 0, 0); } bResult = TRUE; } diff --git a/win32ss/user/ntuser/main.c b/win32ss/user/ntuser/main.c index bfc68de9d16..44648aa8c19 100644 --- a/win32ss/user/ntuser/main.c +++ b/win32ss/user/ntuser/main.c @@ -213,10 +213,8 @@ DestroyProcessInfo(PEPROCESS Process) /* * Deregister logon application automatically */ - if(LogonProcess == ppiCurrent) - { - LogonProcess = NULL; - } + if (gpidLogon == ppiCurrent->peProcess->UniqueProcessId) + gpidLogon = 0; /* Close the current window station */ UserSetProcessWindowStation(NULL); @@ -409,7 +407,7 @@ UserCreateThreadInfo(struct _ETHREAD *Thread) /* Assign a default window station and desktop to the process */ /* Do not try to open a desktop or window station before winlogon initializes */ - if(ptiCurrent->ppi->hdeskStartup == NULL && LogonProcess != NULL) + if (ptiCurrent->ppi->hdeskStartup == NULL && gpidLogon != 0) { HWINSTA hWinSta = NULL; HDESK hDesk = NULL; @@ -749,17 +747,23 @@ DriverEntry( /* Register Object Manager Callbacks */ CalloutData.ProcessCallout = Win32kProcessCallback; CalloutData.ThreadCallout = Win32kThreadCallback; - CalloutData.WindowStationParseProcedure = IntWinStaObjectParse; - CalloutData.WindowStationDeleteProcedure = IntWinStaObjectDelete; - CalloutData.WindowStationOkToCloseProcedure = IntWinstaOkToClose; - CalloutData.DesktopOkToCloseProcedure = IntDesktopOkToClose; - CalloutData.DesktopDeleteProcedure = IntDesktopObjectDelete; - CalloutData.DesktopCloseProcedure = IntDesktopObjectClose; - CalloutData.DesktopOpenProcedure = IntDesktopObjectOpen; + // CalloutData.GlobalAtomTableCallout = NULL; + // CalloutData.PowerEventCallout = NULL; + // CalloutData.PowerStateCallout = NULL; + // CalloutData.JobCallout = NULL; CalloutData.BatchFlushRoutine = NtGdiFlushUserBatch; + CalloutData.DesktopOpenProcedure = IntDesktopObjectOpen; + CalloutData.DesktopOkToCloseProcedure = IntDesktopOkToClose; + CalloutData.DesktopCloseProcedure = IntDesktopObjectClose; + CalloutData.DesktopDeleteProcedure = IntDesktopObjectDelete; + CalloutData.WindowStationOkToCloseProcedure = IntWinstaOkToClose; + // CalloutData.WindowStationCloseProcedure = NULL; + CalloutData.WindowStationDeleteProcedure = IntWinStaObjectDelete; + CalloutData.WindowStationParseProcedure = IntWinStaObjectParse; + // CalloutData.WindowStationOpenProcedure = NULL; /* Register our per-process and per-thread structures. */ - PsEstablishWin32Callouts((PWIN32_CALLOUTS_FPNS)&CalloutData); + PsEstablishWin32Callouts(&CalloutData); /* Register service hook callbacks */ #if DBG diff --git a/win32ss/user/ntuser/message.c b/win32ss/user/ntuser/message.c index 1df412b2361..4662b4ff8ef 100644 --- a/win32ss/user/ntuser/message.c +++ b/win32ss/user/ntuser/message.c @@ -213,7 +213,10 @@ MsgMemorySize(PMSGMEMORY MsgMemoryEntry, WPARAM wParam, LPARAM lParam) break; case WM_COPYDATA: - Size = sizeof(COPYDATASTRUCT) + ((PCOPYDATASTRUCT)lParam)->cbData; + { + COPYDATASTRUCT *cds = (COPYDATASTRUCT *)lParam; + Size = sizeof(COPYDATASTRUCT) + cds->cbData; + } break; default: @@ -497,7 +500,11 @@ CopyMsgToUserMem(MSG *UserModeMsg, MSG *KernelModeMsg) return Status; } } - + if (KernelModeMsg->message == WM_COPYDATA) + { + // Only the current process or thread can free the message lParam pointer. + return STATUS_SUCCESS; + } ExFreePool((PVOID) KernelModeMsg->lParam); } @@ -795,6 +802,12 @@ co_IntPeekMessage( PMSG Msg, pti->timeLast = LargeTickCount.u.LowPart; pti->pcti->tickLastMsgChecked = LargeTickCount.u.LowPart; + // Post mouse moves while looping through peek messages. + if (pti->MessageQueue->QF_flags & QF_MOUSEMOVED) + { + IntCoalesceMouseMove(pti); + } + /* Dispatch sent messages here. */ while ( co_MsqDispatchOneSentMessage(pti) ) { @@ -851,17 +864,6 @@ co_IntPeekMessage( PMSG Msg, return TRUE; } - if ((ProcessMask & QS_MOUSE) && - co_MsqPeekMouseMove( pti, - RemoveMessages, - Window, - MsgFilterMin, - MsgFilterMax, - Msg )) - { - return TRUE; - } - /* Check for hardware events. */ if ((ProcessMask & QS_INPUT) && co_MsqPeekHardwareMessage( pti, @@ -1091,7 +1093,7 @@ UserPostThreadMessage( PTHREADINFO pti, KeQueryTickCount(&LargeTickCount); Message.time = MsqCalculateMessageTime(&LargeTickCount); - MsqPostMessage(pti, &Message, FALSE, QS_POSTMESSAGE, 0); + MsqPostMessage(pti, &Message, FALSE, QS_POSTMESSAGE, 0, 0); return TRUE; } @@ -1222,7 +1224,7 @@ UserPostMessage( HWND Wnd, } else { - MsqPostMessage(pti, &Message, FALSE, QS_POSTMESSAGE, 0); + MsqPostMessage(pti, &Message, FALSE, QS_POSTMESSAGE, 0, 0); } } return TRUE; @@ -1415,6 +1417,11 @@ co_IntSendMessageTimeoutSingle( HWND hWnd, CLEANUP: if (Window) UserDerefObjectCo(Window); + // Current Thread and it's a Copy Data message, then free kernel memory. + if ( !ptiSendTo && Msg == WM_COPYDATA ) + { + ExFreePool((PVOID) lParam); + } END_CLEANUP; } @@ -1677,7 +1684,7 @@ CLEANUP: END_CLEANUP; } - +#if 0 /* This HACK function posts a message if the destination's message queue belongs to another thread, otherwise it sends the message. It does not support broadcast @@ -1721,6 +1728,7 @@ co_IntPostOrSendMessage( HWND hWnd, return (LRESULT)Result; } +#endif static LRESULT FASTCALL co_IntDoSendMessage( HWND hWnd, diff --git a/win32ss/user/ntuser/msgqueue.c b/win32ss/user/ntuser/msgqueue.c index e82ca127a15..f40c02f1e46 100644 --- a/win32ss/user/ntuser/msgqueue.c +++ b/win32ss/user/ntuser/msgqueue.c @@ -15,6 +15,9 @@ DBG_DEFAULT_CHANNEL(UserMsgQ); static PPAGED_LOOKASIDE_LIST pgMessageLookasideList; PUSER_MESSAGE_QUEUE gpqCursor; +ULONG_PTR gdwMouseMoveExtraInfo = 0; +DWORD gdwMouseMoveTimeStamp = 0; + /* FUNCTIONS *****************************************************************/ @@ -37,44 +40,6 @@ MsqInitializeImpl(VOID) return(STATUS_SUCCESS); } -PWND FASTCALL -IntChildrenWindowFromPoint(PWND pWndTop, INT x, INT y) -{ - PWND pWnd, pWndChild; - - if ( !pWndTop ) - { - pWndTop = UserGetDesktopWindow(); - if ( !pWndTop ) return NULL; - } - - if (!(pWndTop->style & WS_VISIBLE)) return NULL; - if ((pWndTop->style & WS_DISABLED)) return NULL; - if (!IntPtInWindow(pWndTop, x, y)) return NULL; - - if (RECTL_bPointInRect(&pWndTop->rcClient, x, y)) - { - for (pWnd = pWndTop->spwndChild; - pWnd != NULL; - pWnd = pWnd->spwndNext) - { - if (pWnd->state2 & WNDS2_INDESTROY || pWnd->state & WNDS_DESTROYED ) - { - TRACE("The Window is in DESTROY!\n"); - continue; - } - - pWndChild = IntChildrenWindowFromPoint(pWnd, x, y); - - if (pWndChild) - { - return pWndChild; - } - } - } - return pWndTop; -} - PWND FASTCALL IntTopLevelWindowFromPoint(INT x, INT y) { @@ -349,6 +314,36 @@ UpdateKeyStateFromMsg(PUSER_MESSAGE_QUEUE MessageQueue, MSG* msg) } } +/* + Get down key states from the queue of prior processed input message key states. + + This fixes the left button dragging on the desktop and release sticking outline issue. + USB Tablet pointer seems to stick the most and leaves the box outline displayed. + */ +WPARAM FASTCALL +MsqGetDownKeyState(PUSER_MESSAGE_QUEUE MessageQueue) +{ + WPARAM ret = 0; + + if (gspv.bMouseBtnSwap) + { + if (IS_KEY_DOWN(MessageQueue->afKeyState, VK_RBUTTON)) ret |= MK_LBUTTON; + if (IS_KEY_DOWN(MessageQueue->afKeyState, VK_LBUTTON)) ret |= MK_RBUTTON; + } + else + { + if (IS_KEY_DOWN(MessageQueue->afKeyState, VK_LBUTTON)) ret |= MK_LBUTTON; + if (IS_KEY_DOWN(MessageQueue->afKeyState, VK_RBUTTON)) ret |= MK_RBUTTON; + } + + if (IS_KEY_DOWN(MessageQueue->afKeyState, VK_MBUTTON)) ret |= MK_MBUTTON; + if (IS_KEY_DOWN(MessageQueue->afKeyState, VK_SHIFT)) ret |= MK_SHIFT; + if (IS_KEY_DOWN(MessageQueue->afKeyState, VK_CONTROL)) ret |= MK_CONTROL; + if (IS_KEY_DOWN(MessageQueue->afKeyState, VK_XBUTTON1)) ret |= MK_XBUTTON1; + if (IS_KEY_DOWN(MessageQueue->afKeyState, VK_XBUTTON2)) ret |= MK_XBUTTON2; + return ret; +} + HANDLE FASTCALL IntMsqSetWakeMask(DWORD WakeMask) { @@ -435,20 +430,19 @@ MsqWakeQueue(PTHREADINFO pti, DWORD MessageBits, BOOL KeyEvent) VOID FASTCALL ClearMsgBitsMask(PTHREADINFO pti, UINT MessageBits) { - PUSER_MESSAGE_QUEUE Queue; UINT ClrMask = 0; - Queue = pti->MessageQueue; - if (MessageBits & QS_KEY) { if (--pti->nCntsQBits[QSRosKey] == 0) ClrMask |= QS_KEY; } - if (MessageBits & QS_MOUSEMOVE) // ReactOS hard coded. + if (MessageBits & QS_MOUSEMOVE) { // Account for tracking mouse moves.. - if (--pti->nCntsQBits[QSRosMouseMove] == 0) ClrMask |= QS_MOUSEMOVE; - // Handle mouse move bits here. - if (Queue->MouseMoved) ClrMask |= QS_MOUSEMOVE; + if (pti->nCntsQBits[QSRosMouseMove]) + { + pti->nCntsQBits[QSRosMouseMove] = 0; // Throttle down count. Up to > 3:1 entries are ignored. + ClrMask |= QS_MOUSEMOVE; + } } if (MessageBits & QS_MOUSEBUTTON) { @@ -502,12 +496,72 @@ MsqDecPaintCountQueue(PTHREADINFO pti) ClearMsgBitsMask(pti, QS_PAINT); } +/* + Post the move or update the message still pending to be processed. + Do not overload the queue with mouse move messages. + */ VOID FASTCALL -MsqPostMouseMove(PTHREADINFO pti, MSG* Msg) +MsqPostMouseMove(PTHREADINFO pti, MSG* Msg, LONG_PTR ExtraInfo) { - pti->MessageQueue->MouseMoveMsg = *Msg; - pti->MessageQueue->MouseMoved = TRUE; - MsqWakeQueue(pti, QS_MOUSEMOVE, TRUE); + PUSER_MESSAGE Message; + PLIST_ENTRY ListHead; + PUSER_MESSAGE_QUEUE MessageQueue = pti->MessageQueue; + + ListHead = &MessageQueue->HardwareMessagesListHead; + + // Do nothing if empty. + if (!IsListEmpty(ListHead->Flink)) + { + // Look at the end of the list, + Message = CONTAINING_RECORD(ListHead->Blink, USER_MESSAGE, ListEntry); + + // If the mouse move message is existing on the list, + if (Message->Msg.message == WM_MOUSEMOVE) + { + // Overwrite the message with updated data! + Message->Msg = *Msg; + + MsqWakeQueue(pti, QS_MOUSEMOVE, TRUE); + return; + } + } + + MsqPostMessage(pti, Msg, TRUE, QS_MOUSEMOVE, 0, ExtraInfo); +} + +/* + Bring together the mouse move message. + Named "Coalesce" from Amine email ;^) (jt). + */ +VOID FASTCALL +IntCoalesceMouseMove(PTHREADINFO pti) +{ + MSG Msg; + LARGE_INTEGER LargeTickCount; + + // Force time stamp to update, keeping message time in sync. + if (gdwMouseMoveTimeStamp == 0) + { + KeQueryTickCount(&LargeTickCount); + gdwMouseMoveTimeStamp = MsqCalculateMessageTime(&LargeTickCount); + } + + // Build mouse move message. + Msg.hwnd = NULL; + Msg.message = WM_MOUSEMOVE; + Msg.wParam = 0; + Msg.lParam = MAKELONG(gpsi->ptCursor.x, gpsi->ptCursor.y); + Msg.time = gdwMouseMoveTimeStamp; + Msg.pt = gpsi->ptCursor; + + // Post the move. + MsqPostMouseMove(pti, &Msg, gdwMouseMoveExtraInfo); + + // Zero the time stamp. + gdwMouseMoveTimeStamp = 0; + + // Clear flag since the move was posted. + pti->MessageQueue->QF_flags &= ~QF_MOUSEMOVED; } VOID FASTCALL @@ -581,14 +635,15 @@ co_MsqInsertMouseMessage(MSG* Msg, DWORD flags, ULONG_PTR dwExtraInfo, BOOL Hook { pti = pwnd->head.pti; MessageQueue = pti->MessageQueue; - // MessageQueue->ptiMouse = pti; - if ( pti->TIF_flags & TIF_INCLEANUP || MessageQueue->QF_flags & QF_INDESTROY) + if (MessageQueue->QF_flags & QF_INDESTROY) { - ERR("Mouse is over the Window Thread is Dead!\n"); + ERR("Mouse is over a Window with a Dead Message Queue!\n"); return; } + MessageQueue->ptiMouse = pti; + if (Msg->message == WM_MOUSEMOVE) { /* Check if cursor should be visible */ @@ -634,7 +689,10 @@ co_MsqInsertMouseMessage(MSG* Msg, DWORD flags, ULONG_PTR dwExtraInfo, BOOL Hook gpqCursor = MessageQueue; /* Mouse move is a special case */ - MsqPostMouseMove(pti, Msg); + MessageQueue->QF_flags |= QF_MOUSEMOVED; + gdwMouseMoveExtraInfo = dwExtraInfo; + gdwMouseMoveTimeStamp = Msg->time; + MsqWakeQueue(pti, QS_MOUSEMOVE, TRUE); } else { @@ -642,9 +700,17 @@ co_MsqInsertMouseMessage(MSG* Msg, DWORD flags, ULONG_PTR dwExtraInfo, BOOL Hook { // ERR("ptiLastInput is set\n"); // ptiLastInput = pti; // Once this is set during Reboot or Shutdown, this prevents the exit window having foreground. + // Find all the Move Mouse calls and fix mouse set active focus issues...... } + + // Post mouse move before posting mouse buttons, keep it in sync. + if (pti->MessageQueue->QF_flags & QF_MOUSEMOVED) + { + IntCoalesceMouseMove(pti); + } + TRACE("Posting mouse message to hwnd=%p!\n", UserHMGetHandle(pwnd)); - MsqPostMessage(pti, Msg, TRUE, QS_MOUSEBUTTON, 0); + MsqPostMessage(pti, Msg, TRUE, QS_MOUSEBUTTON, 0, dwExtraInfo); } } else if (hdcScreen) @@ -1214,7 +1280,8 @@ MsqPostMessage(PTHREADINFO pti, MSG* Msg, BOOLEAN HardwareMessage, DWORD MessageBits, - DWORD dwQEvent) + DWORD dwQEvent, + LONG_PTR ExtraInfo) { PUSER_MESSAGE Message; PUSER_MESSAGE_QUEUE MessageQueue; @@ -1251,6 +1318,7 @@ MsqPostMessage(PTHREADINFO pti, if (Msg->message == WM_HOTKEY) MessageBits |= QS_HOTKEY; // Justin Case, just set it. Message->dwQEvent = dwQEvent; + Message->ExtraInfo = ExtraInfo; Message->QS_Flags = MessageBits; Message->pti = pti; MsqWakeQueue(pti, MessageBits, TRUE); @@ -1382,12 +1450,13 @@ BOOL co_IntProcessMouseMessage(MSG* msg, BOOL* RemoveMessages, UINT first, UINT } else { - pwndMsg = co_WinPosWindowFromPoint(NULL, &msg->pt, &hittest, FALSE);//TRUE); + pwndMsg = co_WinPosWindowFromPoint(pwndMsg, &msg->pt, &hittest, FALSE); } TRACE("Got mouse message for %p, hittest: 0x%x\n", msg->hwnd, hittest); - if (pwndMsg == NULL || pwndMsg->head.pti != pti) + // Null window or not the same "Hardware" message queue. + if (pwndMsg == NULL || pwndMsg->head.pti->MessageQueue != pti->MessageQueue) { /* Remove and ignore the message */ *RemoveMessages = TRUE; @@ -1477,6 +1546,12 @@ BOOL co_IntProcessMouseMessage(MSG* msg, BOOL* RemoveMessages, UINT first, UINT TRACE("Message out of range!!!\n"); RETURN(FALSE); } + + // Update mouse move down keys. + if (message == WM_MOUSEMOVE) + { + msg->wParam = MsqGetDownKeyState(MessageQueue); + } } if(gspv.bMouseClickLock) @@ -1677,51 +1752,6 @@ BOOL co_IntProcessHardwareMessage(MSG* Msg, BOOL* RemoveMessages, UINT first, UI return TRUE; } -BOOL APIENTRY -co_MsqPeekMouseMove(IN PTHREADINFO pti, - IN BOOL Remove, - IN PWND Window, - IN UINT MsgFilterLow, - IN UINT MsgFilterHigh, - OUT MSG* pMsg) -{ - BOOL AcceptMessage; - MSG msg; - PUSER_MESSAGE_QUEUE MessageQueue = pti->MessageQueue; - - if(!(MessageQueue->MouseMoved)) - return FALSE; - - if (!MessageQueue->ptiSysLock) - { - MessageQueue->ptiSysLock = pti; - pti->pcti->CTI_flags |= CTI_THREADSYSLOCK; - } - - if (MessageQueue->ptiSysLock != pti) - { - ERR("MsqPeekMouseMove: Thread Q is locked to another pti!\n"); - return FALSE; - } - - msg = MessageQueue->MouseMoveMsg; - - AcceptMessage = co_IntProcessMouseMessage(&msg, &Remove, MsgFilterLow, MsgFilterHigh); - - if(AcceptMessage) - *pMsg = msg; - - if(Remove) - { - ClearMsgBitsMask(pti, QS_MOUSEMOVE); - MessageQueue->MouseMoved = FALSE; - } - - MessageQueue->ptiSysLock = NULL; - pti->pcti->CTI_flags &= ~CTI_THREADSYSLOCK; - return AcceptMessage; -} - /* check whether a message filter contains at least one potential hardware message */ static INT FASTCALL filter_contains_hw_range( UINT first, UINT last ) @@ -1791,7 +1821,8 @@ co_MsqPeekHardwareMessage(IN PTHREADINFO pti, */ if ( ( !Window || // 1 ( Window == PWND_BOTTOM && CurrentMessage->Msg.hwnd == NULL ) || // 2 - ( Window != PWND_BOTTOM && Window->head.h == CurrentMessage->Msg.hwnd ) ) && // 3 + ( Window != PWND_BOTTOM && Window->head.h == CurrentMessage->Msg.hwnd ) || // 3 + ( CurrentMessage->Msg.message == WM_MOUSEMOVE ) ) && // Null window for mouse moves. ( ( ( MsgFilterLow == 0 && MsgFilterHigh == 0 ) && CurrentMessage->QS_Flags & QSflags ) || ( MsgFilterLow <= CurrentMessage->Msg.message && MsgFilterHigh >= CurrentMessage->Msg.message ) ) ) { diff --git a/win32ss/user/ntuser/msgqueue.h b/win32ss/user/ntuser/msgqueue.h index e2882f84cbc..c7c61d7bd71 100644 --- a/win32ss/user/ntuser/msgqueue.h +++ b/win32ss/user/ntuser/msgqueue.h @@ -51,10 +51,6 @@ typedef struct _USER_MESSAGE_QUEUE /* Queue for hardware messages for the queue. */ LIST_ENTRY HardwareMessagesListHead; - /* True if a WM_MOUSEMOVE is pending */ - BOOLEAN MouseMoved; - /* Current WM_MOUSEMOVE message */ - MSG MouseMoveMsg; /* Last click message for translating double clicks */ MSG msgDblClk; /* Current capture window for this queue. */ @@ -94,7 +90,7 @@ typedef struct _USER_MESSAGE_QUEUE #define QF_FMENUSTATUSBREAK 0x00000004 #define QF_FMENUSTATUS 0x00000008 #define QF_FF10STATUS 0x00000010 -#define QF_MOUSEMOVED 0x00000020 // See MouseMoved. +#define QF_MOUSEMOVED 0x00000020 #define QF_ACTIVATIONCHANGE 0x00000040 #define QF_TABSWITCHING 0x00000080 #define QF_KEYSTATERESET 0x00000100 @@ -124,7 +120,7 @@ NTSTATUS FASTCALL co_MsqSendMessage(PTHREADINFO ptirec, UINT uTimeout, BOOL Block, INT HookMessage, ULONG_PTR *uResult); PUSER_MESSAGE FASTCALL MsqCreateMessage(LPMSG Msg); VOID FASTCALL MsqDestroyMessage(PUSER_MESSAGE Message); -VOID FASTCALL MsqPostMessage(PTHREADINFO, MSG*, BOOLEAN, DWORD, DWORD); +VOID FASTCALL MsqPostMessage(PTHREADINFO, MSG*, BOOLEAN, DWORD, DWORD, LONG_PTR); VOID FASTCALL MsqPostQuitMessage(PTHREADINFO pti, ULONG ExitCode); BOOLEAN APIENTRY MsqPeekMessage(IN PTHREADINFO pti, @@ -142,13 +138,6 @@ co_MsqPeekHardwareMessage(IN PTHREADINFO pti, IN UINT MsgFilterHigh, IN UINT QSflags, OUT MSG* pMsg); -BOOL APIENTRY -co_MsqPeekMouseMove(IN PTHREADINFO pti, - IN BOOL Remove, - IN PWND Window, - IN UINT MsgFilterLow, - IN UINT MsgFilterHigh, - OUT MSG* pMsg); BOOLEAN FASTCALL MsqInitializeMessageQueue(PTHREADINFO, PUSER_MESSAGE_QUEUE); PUSER_MESSAGE_QUEUE FASTCALL MsqCreateMessageQueue(PTHREADINFO); VOID FASTCALL MsqCleanupThreadMsgs(PTHREADINFO); @@ -195,6 +184,7 @@ co_MsqSendMessageAsync(PTHREADINFO ptiReceiver, BOOL HasPackedLParam, INT HookMessage); +VOID FASTCALL IntCoalesceMouseMove(PTHREADINFO); LRESULT FASTCALL IntDispatchMessage(MSG* Msg); BOOL FASTCALL IntTranslateKbdMessage(LPMSG lpMsg, UINT flags); VOID FASTCALL co_MsqInsertMouseMessage(MSG* Msg, DWORD flags, ULONG_PTR dwExtraInfo, BOOL Hook); @@ -255,6 +245,7 @@ BOOL FASTCALL co_MsqReplyMessage(LRESULT); VOID FASTCALL MsqWakeQueue(PTHREADINFO,DWORD,BOOL); VOID FASTCALL ClearMsgBitsMask(PTHREADINFO,UINT); BOOL FASTCALL IntCallMsgFilter(LPMSG,INT); +WPARAM FASTCALL MsqGetDownKeyState(PUSER_MESSAGE_QUEUE); int UserShowCursor(BOOL bShow); PCURICON_OBJECT diff --git a/win32ss/user/ntuser/simplecall.c b/win32ss/user/ntuser/simplecall.c index 7996c9f4fed..3bcb5aaeec7 100644 --- a/win32ss/user/ntuser/simplecall.c +++ b/win32ss/user/ntuser/simplecall.c @@ -12,8 +12,8 @@ DBG_DEFAULT_CHANNEL(UserMisc); -/* registered Logon process */ -PPROCESSINFO LogonProcess = NULL; +/* Registered logon process ID */ +HANDLE gpidLogon = 0; BOOL FASTCALL co_IntRegisterLogonProcess(HANDLE ProcessId, BOOL Register) @@ -21,39 +21,34 @@ co_IntRegisterLogonProcess(HANDLE ProcessId, BOOL Register) NTSTATUS Status; PEPROCESS Process; - Status = PsLookupProcessByProcessId(ProcessId, - &Process); + Status = PsLookupProcessByProcessId(ProcessId, &Process); if (!NT_SUCCESS(Status)) { EngSetLastError(RtlNtStatusToDosError(Status)); return FALSE; } + ProcessId = Process->UniqueProcessId; + + ObDereferenceObject(Process); + if (Register) { /* Register the logon process */ - if (LogonProcess != NULL) - { - ObDereferenceObject(Process); + if (gpidLogon != 0) return FALSE; - } - LogonProcess = (PPROCESSINFO)Process->Win32Process; + gpidLogon = ProcessId; } else { /* Deregister the logon process */ - if (LogonProcess != (PPROCESSINFO)Process->Win32Process) - { - ObDereferenceObject(Process); + if (gpidLogon != ProcessId) return FALSE; - } - LogonProcess = NULL; + gpidLogon = 0; } - ObDereferenceObject(Process); - return TRUE; } @@ -451,7 +446,6 @@ NtUserCallTwoParam( STUB RETURN( 0); - case TWOPARAM_ROUTINE_SETCARETPOS: RETURN( (DWORD_PTR)co_IntSetCaretPos((int)Param1, (int)Param2)); diff --git a/win32ss/user/ntuser/timer.c b/win32ss/user/ntuser/timer.c index 3cbf14e576e..76697ac6e17 100644 --- a/win32ss/user/ntuser/timer.c +++ b/win32ss/user/ntuser/timer.c @@ -315,12 +315,12 @@ SystemTimerProc(HWND hwnd, if ( pDesk->dwDTFlags & DF_TME_HOVER && pWnd == pDesk->spwndTrack ) { - Point = pWnd->head.pti->MessageQueue->MouseMoveMsg.pt; + Point = gpsi->ptCursor; if ( RECTL_bPointInRect(&pDesk->rcMouseHover, Point.x, Point.y) ) { if (pDesk->htEx == HTCLIENT) // In a client area. { - wParam = UserGetMouseButtonsState(); + wParam = MsqGetDownKeyState(pWnd->head.pti->MessageQueue); Msg = WM_MOUSEHOVER; if (pWnd->ExStyle & WS_EX_LAYOUTRTL) @@ -405,7 +405,7 @@ PostTimerMessages(PWND Window) Msg.wParam = (WPARAM) pTmr->nID; Msg.lParam = (LPARAM) pTmr->pfn; - MsqPostMessage(pti, &Msg, FALSE, (QS_POSTMESSAGE|QS_ALLPOSTMESSAGE), 0); + MsqPostMessage(pti, &Msg, FALSE, (QS_POSTMESSAGE|QS_ALLPOSTMESSAGE), 0, 0); pTmr->flags &= ~TMRF_READY; ClearMsgBitsMask(pti, QS_TIMER); Hit = TRUE; diff --git a/win32ss/user/ntuser/winsta.c b/win32ss/user/ntuser/winsta.c index 8fcc7b7a9a2..7782bd88c71 100644 --- a/win32ss/user/ntuser/winsta.c +++ b/win32ss/user/ntuser/winsta.c @@ -947,7 +947,7 @@ NtUserLockWindowStation(HWINSTA hWindowStation) TRACE("About to set process window station with handle (%p)\n", hWindowStation); - if(PsGetCurrentProcessWin32Process() != LogonProcess) + if (gpidLogon != PsGetCurrentProcessId()) { ERR("Unauthorized process attempted to lock the window station!\n"); EngSetLastError(ERROR_ACCESS_DENIED); @@ -992,7 +992,7 @@ NtUserUnlockWindowStation(HWINSTA hWindowStation) TRACE("About to set process window station with handle (%p)\n", hWindowStation); - if(PsGetCurrentProcessWin32Process() != LogonProcess) + if (gpidLogon != PsGetCurrentProcessId()) { ERR("Unauthorized process attempted to unlock the window station!\n"); EngSetLastError(ERROR_ACCESS_DENIED); @@ -1338,12 +1338,12 @@ NtUserBuildNameList( BOOL APIENTRY NtUserSetLogonNotifyWindow(HWND hWnd) { - if(LogonProcess != PsGetCurrentProcessWin32Process()) + if (gpidLogon != PsGetCurrentProcessId()) { return FALSE; } - if(!IntIsWindow(hWnd)) + if (!IntIsWindow(hWnd)) { return FALSE; } diff --git a/win32ss/user/ntuser/winsta.h b/win32ss/user/ntuser/winsta.h index 04fd0078001..d5922474722 100644 --- a/win32ss/user/ntuser/winsta.h +++ b/win32ss/user/ntuser/winsta.h @@ -35,7 +35,7 @@ typedef struct _WINSTATION_OBJECT } WINSTATION_OBJECT, *PWINSTATION_OBJECT; extern WINSTATION_OBJECT *InputWindowStation; -extern PPROCESSINFO LogonProcess; +extern HANDLE gpidLogon; extern HWND hwndSAS; extern UNICODE_STRING gustrWindowStationsDir; diff --git a/win32ss/user/winsrv/consrv.cmake b/win32ss/user/winsrv/consrv.cmake index 0f5545cc0e8..0f1109cc008 100644 --- a/win32ss/user/winsrv/consrv.cmake +++ b/win32ss/user/winsrv/consrv.cmake @@ -16,6 +16,7 @@ list(APPEND CONSRV_SOURCE consrv/lineinput.c consrv/popup.c consrv/settings.c + consrv/shutdown.c consrv/subsysreg.c consrv/condrv/coninput.c consrv/condrv/conoutput.c diff --git a/win32ss/user/winsrv/consrv/condrv/coninput.c b/win32ss/user/winsrv/consrv/condrv/coninput.c index 800abb4052a..a3f38419c00 100644 --- a/win32ss/user/winsrv/consrv/condrv/coninput.c +++ b/win32ss/user/winsrv/consrv/condrv/coninput.c @@ -170,7 +170,7 @@ AddInputEvents(PCONSOLE Console, Status = STATUS_SUCCESS; } - if (SetWaitEvent) SetEvent(Console->InputBuffer.ActiveEvent); + if (SetWaitEvent) NtSetEvent(Console->InputBuffer.ActiveEvent, NULL); Done: if (NumEventsWritten) *NumEventsWritten = i; @@ -198,16 +198,24 @@ NTSTATUS NTAPI ConDrvInitInputBuffer(IN PCONSOLE Console, IN ULONG InputBufferSize) { - SECURITY_ATTRIBUTES SecurityAttributes; + NTSTATUS Status; + OBJECT_ATTRIBUTES ObjectAttributes; ConSrvInitObject(&Console->InputBuffer.Header, INPUT_BUFFER, Console); - SecurityAttributes.nLength = sizeof(SECURITY_ATTRIBUTES); - SecurityAttributes.lpSecurityDescriptor = NULL; - SecurityAttributes.bInheritHandle = TRUE; + InitializeObjectAttributes(&ObjectAttributes, + NULL, + OBJ_INHERIT, + NULL, + NULL); - Console->InputBuffer.ActiveEvent = CreateEventW(&SecurityAttributes, TRUE, FALSE, NULL); - if (Console->InputBuffer.ActiveEvent == NULL) return STATUS_UNSUCCESSFUL; + Status = NtCreateEvent(&Console->InputBuffer.ActiveEvent, EVENT_ALL_ACCESS, + &ObjectAttributes, NotificationEvent, FALSE); + if (!NT_SUCCESS(Status)) + { + return STATUS_UNSUCCESSFUL; + // return Status; + } Console->InputBuffer.InputBufferSize = InputBufferSize; InitializeListHead(&Console->InputBuffer.InputEvents); diff --git a/win32ss/user/winsrv/consrv/condrv/console.c b/win32ss/user/winsrv/consrv/condrv/console.c index 38c7122e955..495191b6e60 100644 --- a/win32ss/user/winsrv/consrv/condrv/console.c +++ b/win32ss/user/winsrv/consrv/condrv/console.c @@ -80,7 +80,10 @@ VOID NTAPI ConDrvPause(PCONSOLE Console) { if (!Console->UnpauseEvent) - Console->UnpauseEvent = CreateEvent(NULL, TRUE, FALSE, NULL); + { + NtCreateEvent(&Console->UnpauseEvent, EVENT_ALL_ACCESS, + NULL, NotificationEvent, FALSE); + } } VOID NTAPI @@ -88,8 +91,8 @@ ConDrvUnpause(PCONSOLE Console) { if (Console->UnpauseEvent) { - SetEvent(Console->UnpauseEvent); - CloseHandle(Console->UnpauseEvent); + NtSetEvent(Console->UnpauseEvent, NULL); + NtClose(Console->UnpauseEvent); Console->UnpauseEvent = NULL; } } diff --git a/win32ss/user/winsrv/consrv/console.c b/win32ss/user/winsrv/consrv/console.c index 475ab027394..5f3853f5a52 100644 --- a/win32ss/user/winsrv/consrv/console.c +++ b/win32ss/user/winsrv/consrv/console.c @@ -12,8 +12,6 @@ #include "consrv.h" -#include - /* This is for COM usage */ #define COBJMACROS #include @@ -283,8 +281,6 @@ ConSrvGetConsole(IN PCONSOLE_PROCESS_DATA ProcessData, ASSERT(Console); *Console = NULL; - // RtlEnterCriticalSection(&ProcessData->HandleTableLock); - if (ConSrvValidateConsole(&GrabConsole, ProcessData->ConsoleHandle, CONSOLE_RUNNING, @@ -295,7 +291,6 @@ ConSrvGetConsole(IN PCONSOLE_PROCESS_DATA ProcessData, Status = STATUS_SUCCESS; } - // RtlLeaveCriticalSection(&ProcessData->HandleTableLock); return Status; } @@ -663,6 +658,27 @@ ConSrvInitConsole(OUT PHANDLE NewConsoleHandle, /* Colour table */ memcpy(Console->Colors, ConsoleInfo.Colors, sizeof(ConsoleInfo.Colors)); + /* Create the Initialization Events */ + Status = NtCreateEvent(&Console->InitEvents[INIT_SUCCESS], EVENT_ALL_ACCESS, + NULL, NotificationEvent, FALSE); + if (!NT_SUCCESS(Status)) + { + DPRINT1("NtCreateEvent(InitEvents[INIT_SUCCESS]) failed: %lu\n", Status); + ConDrvDeleteConsole(Console); + ConSrvDeinitTerminal(&Terminal); + return Status; + } + Status = NtCreateEvent(&Console->InitEvents[INIT_FAILURE], EVENT_ALL_ACCESS, + NULL, NotificationEvent, FALSE); + if (!NT_SUCCESS(Status)) + { + DPRINT1("NtCreateEvent(InitEvents[INIT_FAILURE]) failed: %lu\n", Status); + NtClose(Console->InitEvents[INIT_SUCCESS]); + ConDrvDeleteConsole(Console); + ConSrvDeinitTerminal(&Terminal); + return Status; + } + /* * Attach the ConSrv terminal to the console. * This call makes a copy of our local Terminal variable. @@ -671,6 +687,8 @@ ConSrvInitConsole(OUT PHANDLE NewConsoleHandle, if (!NT_SUCCESS(Status)) { DPRINT1("Failed to register terminal to the given console, Status = 0x%08lx\n", Status); + NtClose(Console->InitEvents[INIT_FAILURE]); + NtClose(Console->InitEvents[INIT_SUCCESS]); ConDrvDeleteConsole(Console); ConSrvDeinitTerminal(&Terminal); return Status; @@ -680,6 +698,10 @@ ConSrvInitConsole(OUT PHANDLE NewConsoleHandle, /* All went right, so add the console to the list */ Status = InsertConsole(&ConsoleHandle, Console); + // FIXME! We do not support at all asynchronous console creation! + NtSetEvent(Console->InitEvents[INIT_SUCCESS], NULL); + // NtSetEvent(Console->InitEvents[INIT_FAILURE], NULL); + /* Return the newly created console to the caller and a success code too */ *NewConsoleHandle = ConsoleHandle; *NewConsole = Console; @@ -696,6 +718,10 @@ ConSrvDeleteConsole(PCONSRV_CONSOLE Console) /* Remove the console from the list */ RemoveConsoleByPointer(Console); + /* Destroy the Initialization Events */ + NtClose(Console->InitEvents[INIT_FAILURE]); + NtClose(Console->InitEvents[INIT_SUCCESS]); + /* Clean the Input Line Discipline */ if (Console->LineBuffer) ConsoleFreeHeap(Console->LineBuffer); @@ -896,6 +922,7 @@ CSR_API(SrvAllocConsole) /* Initialize the console initialization info structure */ ConsoleInitInfo.ConsoleStartInfo = AllocConsoleRequest->ConsoleStartInfo; + ConsoleInitInfo.IsWindowVisible = TRUE; // The console window is always visible. ConsoleInitInfo.TitleLength = AllocConsoleRequest->TitleLength; ConsoleInitInfo.ConsoleTitle = AllocConsoleRequest->ConsoleTitle; ConsoleInitInfo.DesktopLength = AllocConsoleRequest->DesktopLength; @@ -917,14 +944,6 @@ CSR_API(SrvAllocConsole) return Status; } - /* Mark the process as having a console */ - ProcessData->ConsoleApp = TRUE; - CsrProcess->Flags |= CsrProcessIsConsoleApp; - - /* Return the console handle and the input wait handle to the caller */ - AllocConsoleRequest->ConsoleStartInfo->ConsoleHandle = ProcessData->ConsoleHandle; - AllocConsoleRequest->ConsoleStartInfo->InputWaitHandle = ProcessData->InputWaitHandle; - /* Set the Property-Dialog and Control-Dispatcher handlers */ ProcessData->PropRoutine = AllocConsoleRequest->PropRoutine; ProcessData->CtrlRoutine = AllocConsoleRequest->CtrlRoutine; @@ -999,21 +1018,14 @@ CSR_API(SrvAttachConsole) TRUE, &AttachConsoleRequest->ConsoleStartInfo->InputHandle, &AttachConsoleRequest->ConsoleStartInfo->OutputHandle, - &AttachConsoleRequest->ConsoleStartInfo->ErrorHandle); + &AttachConsoleRequest->ConsoleStartInfo->ErrorHandle, + AttachConsoleRequest->ConsoleStartInfo); if (!NT_SUCCESS(Status)) { DPRINT1("Console inheritance failed\n"); goto Quit; } - /* Mark the process as having a console */ - TargetProcessData->ConsoleApp = TRUE; - TargetProcess->Flags |= CsrProcessIsConsoleApp; - - /* Return the console handle and the input wait handle to the caller */ - AttachConsoleRequest->ConsoleStartInfo->ConsoleHandle = TargetProcessData->ConsoleHandle; - AttachConsoleRequest->ConsoleStartInfo->InputWaitHandle = TargetProcessData->InputWaitHandle; - /* Set the Property-Dialog and Control-Dispatcher handlers */ TargetProcessData->PropRoutine = AttachConsoleRequest->PropRoutine; TargetProcessData->CtrlRoutine = AttachConsoleRequest->CtrlRoutine; @@ -1028,16 +1040,7 @@ Quit: CSR_API(SrvFreeConsole) { - PCSR_PROCESS CsrProcess = CsrGetClientThread()->Process; - PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrProcess); - - ConSrvRemoveConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process)); - - /* Mark the process as not having a console anymore */ - ProcessData->ConsoleApp = FALSE; - CsrProcess->Flags &= ~CsrProcessIsConsoleApp; - - return STATUS_SUCCESS; + return ConSrvRemoveConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process)); } NTSTATUS NTAPI diff --git a/win32ss/user/winsrv/consrv/console.h b/win32ss/user/winsrv/consrv/console.h index 7118dffb327..5f6bf9a6777 100644 --- a/win32ss/user/winsrv/consrv/console.h +++ b/win32ss/user/winsrv/consrv/console.h @@ -11,6 +11,7 @@ typedef struct _CONSOLE_INIT_INFO { PCONSOLE_START_INFO ConsoleStartInfo; + BOOLEAN IsWindowVisible; ULONG TitleLength; PWCHAR ConsoleTitle; diff --git a/win32ss/user/winsrv/consrv/consrv.h b/win32ss/user/winsrv/consrv/consrv.h index 09b87fc81f5..869cb45c62d 100644 --- a/win32ss/user/winsrv/consrv/consrv.h +++ b/win32ss/user/winsrv/consrv/consrv.h @@ -9,31 +9,21 @@ #ifndef __CONSRV_H__ #define __CONSRV_H__ +/* Main header */ +#include "../winsrv.h" + /* PSDK/NDK Headers */ -#include #define WIN32_NO_STATUS #define _INC_WINDOWS #define COM_NO_WINDOWS_H -#include -#include + #include #include #include -#include + #define NTOS_MODE_USER #include #include -#include -#include - -/* Public Win32K Headers */ -#include - -/* PSEH for SEH Support */ -#include - -/* CSRSS Header */ -#include /* CONSOLE Headers */ #include @@ -53,9 +43,7 @@ typedef struct _CONSOLE_PROCESS_DATA PCSR_PROCESS Process; // Process owning this structure. HANDLE ConsoleHandle; - HANDLE InputWaitHandle; - - BOOLEAN ConsoleApp; // TRUE if it is a CUI app, FALSE otherwise. + BOOLEAN ConsoleApp; // TRUE if it is a CUI app, FALSE otherwise. RTL_CRITICAL_SECTION HandleTableLock; ULONG HandleTableSize; @@ -84,4 +72,11 @@ typedef struct _CONSOLE_PROCESS_DATA #include "handle.h" #include "lineinput.h" +/* shutdown.c */ +ULONG +NTAPI +ConsoleClientShutdown(IN PCSR_PROCESS CsrProcess, + IN ULONG Flags, + IN BOOLEAN FirstPhase); + #endif /* __CONSRV_H__ */ diff --git a/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c b/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c index 4e1519a1ab7..2752121174f 100644 --- a/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c +++ b/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c @@ -663,7 +663,7 @@ OnNcCreate(HWND hWnd, LPCREATESTRUCTW Create) { DPRINT1("GuiConsoleNcCreate: InitFonts failed\n"); GuiData->hWindow = NULL; - SetEvent(GuiData->hGuiInitEvent); + NtSetEvent(GuiData->hGuiInitEvent, NULL); return FALSE; } @@ -686,12 +686,16 @@ OnNcCreate(HWND hWnd, LPCREATESTRUCTW Create) SetWindowLongPtrW(GuiData->hWindow, GWLP_USERDATA, (DWORD_PTR)GuiData); - SetTimer(GuiData->hWindow, CONGUI_UPDATE_TIMER, CONGUI_UPDATE_TIME, NULL); + if (GuiData->IsWindowVisible) + { + SetTimer(GuiData->hWindow, CONGUI_UPDATE_TIMER, CONGUI_UPDATE_TIME, NULL); + } + // FIXME: HACK: Potential HACK for CORE-8129; see revision 63595. //CreateSysMenu(GuiData->hWindow); DPRINT("OnNcCreate - setting start event\n"); - SetEvent(GuiData->hGuiInitEvent); + NtSetEvent(GuiData->hGuiInitEvent, NULL); return (BOOL)DefWindowProcW(GuiData->hWindow, WM_NCCREATE, 0, (LPARAM)Create); } @@ -1048,6 +1052,9 @@ OnPaint(PGUI_CONSOLE_DATA GuiData) PAINTSTRUCT ps; RECT rcPaint; + /* Do nothing if the window is hidden */ + if (!GuiData->IsWindowVisible) return; + BeginPaint(GuiData->hWindow, &ps); if (ps.hdc != NULL && ps.rcPaint.left < ps.rcPaint.right && @@ -1096,6 +1103,9 @@ OnPaletteChanged(PGUI_CONSOLE_DATA GuiData) { PCONSOLE_SCREEN_BUFFER ActiveBuffer = GuiData->ActiveBuffer; + /* Do nothing if the window is hidden */ + if (!GuiData->IsWindowVisible) return; + // See WM_PALETTECHANGED message // if ((HWND)wParam == hWnd) break; @@ -1306,6 +1316,9 @@ OnTimer(PGUI_CONSOLE_DATA GuiData) PCONSRV_CONSOLE Console = GuiData->Console; PCONSOLE_SCREEN_BUFFER Buff; + /* Do nothing if the window is hidden */ + if (!GuiData->IsWindowVisible) return; + SetTimer(GuiData->hWindow, CONGUI_UPDATE_TIMER, CURSOR_BLINK_TIME, NULL); if (!ConDrvValidateConsoleUnsafe(Console, CONSOLE_RUNNING, TRUE)) return; @@ -1431,7 +1444,11 @@ OnNcDestroy(HWND hWnd) { PGUI_CONSOLE_DATA GuiData = GuiGetGuiData(hWnd); - KillTimer(hWnd, CONGUI_UPDATE_TIMER); + if (GuiData->IsWindowVisible) + { + KillTimer(hWnd, CONGUI_UPDATE_TIMER); + } + GetSystemMenu(hWnd, TRUE); if (GuiData) @@ -1868,6 +1885,9 @@ OnSize(PGUI_CONSOLE_DATA GuiData, WPARAM wParam, LPARAM lParam) { PCONSRV_CONSOLE Console = GuiData->Console; + /* Do nothing if the window is hidden */ + if (!GuiData->IsWindowVisible) return; + if (!ConDrvValidateConsoleUnsafe(Console, CONSOLE_RUNNING, TRUE)) return; if ((GuiData->WindowSizeLock == FALSE) && @@ -2191,6 +2211,9 @@ ConWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) case WM_SETCURSOR: { + /* Do nothing if the window is hidden */ + if (!GuiData->IsWindowVisible) goto Default; + /* * The message was sent because we are manually triggering a change. * Check whether the mouse is indeed present on this console window @@ -2263,6 +2286,9 @@ ConWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) case WM_CONTEXTMENU: { + /* Do nothing if the window is hidden */ + if (!GuiData->IsWindowVisible) break; + if (DefWindowProcW(hWnd /*GuiData->hWindow*/, WM_NCHITTEST, 0, lParam) == HTCLIENT) { HMENU hMenu = CreatePopupMenu(); @@ -2391,6 +2417,9 @@ ConWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) DWORD Width, Height; UINT WidthUnit, HeightUnit; + /* Do nothing if the window is hidden */ + if (!GuiData->IsWindowVisible) break; + GetScreenBufferSizeUnits(Buff, GuiData, &WidthUnit, &HeightUnit); Width = Buff->ScreenBufferSize.X * WidthUnit ; diff --git a/win32ss/user/winsrv/consrv/frontends/gui/conwnd.h b/win32ss/user/winsrv/consrv/frontends/gui/conwnd.h index 456501b031c..a102ef5f42b 100644 --- a/win32ss/user/winsrv/consrv/frontends/gui/conwnd.h +++ b/win32ss/user/winsrv/consrv/frontends/gui/conwnd.h @@ -40,6 +40,8 @@ typedef struct _GUI_CONSOLE_DATA HANDLE hGuiInitEvent; HANDLE hGuiTermEvent; + BOOLEAN IsWindowVisible; + POINT OldCursor; LONG_PTR WndStyle; diff --git a/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c b/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c index beedd94f19a..6fa11ae428d 100644 --- a/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c +++ b/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c @@ -39,6 +39,7 @@ typedef struct _GUI_INIT_INFO PCONSOLE_INFO ConsoleInfo; PCONSOLE_START_INFO ConsoleStartInfo; ULONG ProcessId; + BOOLEAN IsWindowVisible; } GUI_INIT_INFO, *PGUI_INIT_INFO; static BOOL ConsInitialized = FALSE; @@ -149,12 +150,12 @@ GuiConsoleInputThread(PVOID Data) MSG msg; /* - * This thread dispatches all the console notifications to the notify window. - * It is common for all the console windows. + * This thread dispatches all the console notifications to the + * notification window. It is common for all the console windows. */ /* The thread has been initialized, set the event */ - SetEvent(*GraphicsStartupEvent); + NtSetEvent(*GraphicsStartupEvent, NULL); while (GetMessageW(&msg, NULL, 0, 0)) { @@ -179,7 +180,7 @@ GuiConsoleInputThread(PVOID Data) CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, - NULL, + GuiData->IsWindowVisible ? HWND_DESKTOP : HWND_MESSAGE, NULL, ConSrvDllInstance, (PVOID)GuiData); @@ -204,22 +205,33 @@ GuiConsoleInputThread(PVOID Data) GuiData->GuiInfo.WindowOrigin.x = rcWnd.left; GuiData->GuiInfo.WindowOrigin.y = rcWnd.top; - /* Move and resize the window to the user's values */ - /* CAN WE DEADLOCK ?? */ - GuiConsoleMoveWindow(GuiData); // FIXME: This MUST be done via the CreateWindowExW call. - SendMessageW(GuiData->hWindow, PM_RESIZE_TERMINAL, 0, 0); + if (GuiData->IsWindowVisible) + { + /* Move and resize the window to the user's values */ + /* CAN WE DEADLOCK ?? */ + GuiConsoleMoveWindow(GuiData); // FIXME: This MUST be done via the CreateWindowExW call. + SendMessageW(GuiData->hWindow, PM_RESIZE_TERMINAL, 0, 0); + } // FIXME: HACK: Potential HACK for CORE-8129; see revision 63595. CreateSysMenu(GuiData->hWindow); - /* Switch to full-screen mode if necessary */ - // FIXME: Move elsewhere, it cause misdrawings of the window. - if (GuiData->GuiInfo.FullScreen) SwitchFullScreen(GuiData, TRUE); + if (GuiData->IsWindowVisible) + { + /* Switch to full-screen mode if necessary */ + // FIXME: Move elsewhere, it cause misdrawings of the window. + if (GuiData->GuiInfo.FullScreen) SwitchFullScreen(GuiData, TRUE); - DPRINT("PM_CREATE_CONSOLE -- showing window\n"); - // ShowWindow(NewWindow, (int)GuiData->GuiInfo.ShowWindow); - ShowWindowAsync(NewWindow, (int)GuiData->GuiInfo.ShowWindow); - DPRINT("Window showed\n"); + DPRINT("PM_CREATE_CONSOLE -- showing window\n"); + // ShowWindow(NewWindow, (int)GuiData->GuiInfo.ShowWindow); + ShowWindowAsync(NewWindow, (int)GuiData->GuiInfo.ShowWindow); + DPRINT("Window showed\n"); + } + else + { + DPRINT("PM_CREATE_CONSOLE -- hidden window\n"); + ShowWindowAsync(NewWindow, SW_HIDE); + } continue; } @@ -250,7 +262,7 @@ GuiConsoleInputThread(PVOID Data) DestroyWindow(GuiData->hWindow); PrivateCsrssManualGuiCheck(+1); // RemoveGuiApp - SetEvent(GuiData->hGuiTermEvent); + NtSetEvent(GuiData->hGuiTermEvent, NULL); if (InterlockedDecrement(&WindowCount) == 0) { @@ -295,8 +307,12 @@ GuiInit(VOID) */ if (hInputThread == NULL) { - HANDLE GraphicsStartupEvent = CreateEventW(NULL, FALSE, FALSE, NULL); - if (GraphicsStartupEvent == NULL) return FALSE; + HANDLE GraphicsStartupEvent; + NTSTATUS Status; + + Status = NtCreateEvent(&GraphicsStartupEvent, EVENT_ALL_ACCESS, + NULL, SynchronizationEvent, FALSE); + if (!NT_SUCCESS(Status)) return FALSE; hInputThread = CreateThread(NULL, 0, @@ -306,7 +322,7 @@ GuiInit(VOID) &dwInputThreadId); if (hInputThread == NULL) { - CloseHandle(GraphicsStartupEvent); + NtClose(GraphicsStartupEvent); DPRINT1("CONSRV: Failed to create graphics console thread.\n"); return FALSE; } @@ -314,7 +330,7 @@ GuiInit(VOID) CloseHandle(hInputThread); WaitForSingleObject(GraphicsStartupEvent, INFINITE); - CloseHandle(GraphicsStartupEvent); + NtClose(GraphicsStartupEvent); } // ConsInitialized = TRUE; @@ -365,6 +381,7 @@ GuiInitFrontEnd(IN OUT PFRONTEND This, GuiData->Console = Console; GuiData->ActiveBuffer = Console->ActiveBuffer; GuiData->hWindow = NULL; + GuiData->IsWindowVisible = GuiInitInfo->IsWindowVisible; /* The console can be resized */ Console->FixedSize = FALSE; @@ -379,33 +396,36 @@ GuiInitFrontEnd(IN OUT PFRONTEND This, /* 1. Load the default settings */ GuiConsoleGetDefaultSettings(&TermInfo, GuiInitInfo->ProcessId); - /* 3. Load the remaining console settings via the registry */ - if ((ConsoleStartInfo->dwStartupFlags & STARTF_TITLEISLINKNAME) == 0) + if (GuiData->IsWindowVisible) { - /* Load the terminal infos from the registry */ - GuiConsoleReadUserSettings(&TermInfo, - ConsoleInfo->ConsoleTitle, - GuiInitInfo->ProcessId); + /* 2. Load the remaining console settings via the registry */ + if ((ConsoleStartInfo->dwStartupFlags & STARTF_TITLEISLINKNAME) == 0) + { + /* Load the terminal infos from the registry */ + GuiConsoleReadUserSettings(&TermInfo, + ConsoleInfo->ConsoleTitle, + GuiInitInfo->ProcessId); - /* - * Now, update them with the properties the user might gave to us - * via the STARTUPINFO structure before calling CreateProcess - * (and which was transmitted via the ConsoleStartInfo structure). - * We therefore overwrite the values read in the registry. - */ - if (ConsoleStartInfo->dwStartupFlags & STARTF_USESHOWWINDOW) - { - TermInfo.ShowWindow = ConsoleStartInfo->wShowWindow; - } - if (ConsoleStartInfo->dwStartupFlags & STARTF_USEPOSITION) - { - TermInfo.AutoPosition = FALSE; - TermInfo.WindowOrigin.x = ConsoleStartInfo->dwWindowOrigin.X; - TermInfo.WindowOrigin.y = ConsoleStartInfo->dwWindowOrigin.Y; - } - if (ConsoleStartInfo->dwStartupFlags & STARTF_RUNFULLSCREEN) - { - TermInfo.FullScreen = TRUE; + /* + * Now, update them with the properties the user might gave to us + * via the STARTUPINFO structure before calling CreateProcess + * (and which was transmitted via the ConsoleStartInfo structure). + * We therefore overwrite the values read in the registry. + */ + if (ConsoleStartInfo->dwStartupFlags & STARTF_USESHOWWINDOW) + { + TermInfo.ShowWindow = ConsoleStartInfo->wShowWindow; + } + if (ConsoleStartInfo->dwStartupFlags & STARTF_USEPOSITION) + { + TermInfo.AutoPosition = FALSE; + TermInfo.WindowOrigin.x = ConsoleStartInfo->dwWindowOrigin.X; + TermInfo.WindowOrigin.y = ConsoleStartInfo->dwWindowOrigin.Y; + } + if (ConsoleStartInfo->dwStartupFlags & STARTF_RUNFULLSCREEN) + { + TermInfo.FullScreen = TRUE; + } } } @@ -471,8 +491,10 @@ GuiInitFrontEnd(IN OUT PFRONTEND This, * Ideally we could use SendNotifyMessage for this but its not * yet implemented. */ - GuiData->hGuiInitEvent = CreateEventW(NULL, FALSE, FALSE, NULL); - GuiData->hGuiTermEvent = CreateEventW(NULL, FALSE, FALSE, NULL); + NtCreateEvent(&GuiData->hGuiInitEvent, EVENT_ALL_ACCESS, + NULL, SynchronizationEvent, FALSE); + NtCreateEvent(&GuiData->hGuiTermEvent, EVENT_ALL_ACCESS, + NULL, SynchronizationEvent, FALSE); DPRINT("GUI - Checkpoint\n"); @@ -482,7 +504,7 @@ GuiInitFrontEnd(IN OUT PFRONTEND This, /* Wait until initialization has finished */ WaitForSingleObject(GuiData->hGuiInitEvent, INFINITE); DPRINT("OK we created the console window\n"); - CloseHandle(GuiData->hGuiInitEvent); + NtClose(GuiData->hGuiInitEvent); GuiData->hGuiInitEvent = NULL; /* Check whether we really succeeded in initializing the terminal window */ @@ -505,7 +527,7 @@ GuiDeinitFrontEnd(IN OUT PFRONTEND This) PostThreadMessageW(dwInputThreadId, PM_DESTROY_CONSOLE, 0, (LPARAM)GuiData); WaitForSingleObject(GuiData->hGuiTermEvent, INFINITE); DPRINT("hGuiTermEvent set\n"); - CloseHandle(GuiData->hGuiTermEvent); + NtClose(GuiData->hGuiTermEvent); GuiData->hGuiTermEvent = NULL; DPRINT("Destroying icons !! - GuiData->hIcon = 0x%p ; ghDefaultIcon = 0x%p ; GuiData->hIconSm = 0x%p ; ghDefaultIconSm = 0x%p\n", @@ -533,6 +555,10 @@ GuiDrawRegion(IN OUT PFRONTEND This, SMALL_RECT* Region) { PGUI_CONSOLE_DATA GuiData = This->Data; + + /* Do nothing if the window is hidden */ + if (!GuiData->IsWindowVisible) return; + DrawRegion(GuiData, Region); } @@ -552,6 +578,9 @@ GuiWriteStream(IN OUT PFRONTEND This, if (NULL == GuiData || NULL == GuiData->hWindow) return; + /* Do nothing if the window is hidden */ + if (!GuiData->IsWindowVisible) return; + Buff = GuiData->ActiveBuffer; if (GetType(Buff) != TEXTMODE_BUFFER) return; @@ -611,6 +640,9 @@ GuiSetCursorInfo(IN OUT PFRONTEND This, { PGUI_CONSOLE_DATA GuiData = This->Data; + /* Do nothing if the window is hidden */ + if (!GuiData->IsWindowVisible) return TRUE; + if (GuiData->ActiveBuffer == Buff) { InvalidateCell(GuiData, Buff->CursorPosition.X, Buff->CursorPosition.Y); @@ -627,6 +659,9 @@ GuiSetScreenInfo(IN OUT PFRONTEND This, { PGUI_CONSOLE_DATA GuiData = This->Data; + /* Do nothing if the window is hidden */ + if (!GuiData->IsWindowVisible) return TRUE; + if (GuiData->ActiveBuffer == Buff) { /* Redraw char at old position (remove cursor) */ @@ -929,6 +964,9 @@ GuiSetDisplayMode(IN OUT PFRONTEND This, if (NewMode & ~(CONSOLE_FULLSCREEN_MODE | CONSOLE_WINDOWED_MODE)) return FALSE; + /* Do nothing if the window is hidden */ + if (!GuiData->IsWindowVisible) return TRUE; + FullScreen = ((NewMode & CONSOLE_FULLSCREEN_MODE) != 0); if (FullScreen != GuiData->GuiInfo.FullScreen) @@ -945,12 +983,15 @@ GuiShowMouseCursor(IN OUT PFRONTEND This, { PGUI_CONSOLE_DATA GuiData = This->Data; - /* Set the reference count */ - if (Show) ++GuiData->MouseCursorRefCount; - else --GuiData->MouseCursorRefCount; + if (GuiData->IsWindowVisible) + { + /* Set the reference count */ + if (Show) ++GuiData->MouseCursorRefCount; + else --GuiData->MouseCursorRefCount; - /* Effectively show (or hide) the cursor (use special values for (w|l)Param) */ - PostMessageW(GuiData->hWindow, WM_SETCURSOR, -1, -1); + /* Effectively show (or hide) the cursor (use special values for (w|l)Param) */ + PostMessageW(GuiData->hWindow, WM_SETCURSOR, -1, -1); + } return GuiData->MouseCursorRefCount; } @@ -961,6 +1002,9 @@ GuiSetMouseCursor(IN OUT PFRONTEND This, { PGUI_CONSOLE_DATA GuiData = This->Data; + /* Do nothing if the window is hidden */ + if (!GuiData->IsWindowVisible) return TRUE; + /* * Set the cursor's handle. If the given handle is NULL, * then restore the default cursor. @@ -1062,6 +1106,7 @@ GuiLoadFrontEnd(IN OUT PFRONTEND FrontEnd, GuiInitInfo->ConsoleInfo = ConsoleInfo; GuiInitInfo->ConsoleStartInfo = ConsoleInitInfo->ConsoleStartInfo; GuiInitInfo->ProcessId = ProcessId; + GuiInitInfo->IsWindowVisible = ConsoleInitInfo->IsWindowVisible; /* Finally, initialize the frontend structure */ FrontEnd->Vtbl = &GuiVtbl; diff --git a/win32ss/user/winsrv/consrv/handle.c b/win32ss/user/winsrv/consrv/handle.c index f54a459f24e..10a1305c328 100644 --- a/win32ss/user/winsrv/consrv/handle.c +++ b/win32ss/user/winsrv/consrv/handle.c @@ -521,21 +521,60 @@ ConSrvAllocateConsole(PCONSOLE_PROCESS_DATA ProcessData, return Status; } - /* Duplicate the Input Event */ + /* Duplicate the Initialization Events */ Status = NtDuplicateObject(NtCurrentProcess(), - Console->InputBuffer.ActiveEvent, + Console->InitEvents[INIT_SUCCESS], ProcessData->Process->ProcessHandle, - &ProcessData->InputWaitHandle, + &ConsoleInitInfo->ConsoleStartInfo->InitEvents[INIT_SUCCESS], EVENT_ALL_ACCESS, 0, 0); if (!NT_SUCCESS(Status)) { - DPRINT1("NtDuplicateObject() failed: %lu\n", Status); + DPRINT1("NtDuplicateObject(InitEvents[INIT_SUCCESS]) failed: %lu\n", Status); ConSrvFreeHandlesTable(ProcessData); ConSrvDeleteConsole(Console); ProcessData->ConsoleHandle = NULL; return Status; } + Status = NtDuplicateObject(NtCurrentProcess(), + Console->InitEvents[INIT_FAILURE], + ProcessData->Process->ProcessHandle, + &ConsoleInitInfo->ConsoleStartInfo->InitEvents[INIT_FAILURE], + EVENT_ALL_ACCESS, 0, 0); + if (!NT_SUCCESS(Status)) + { + DPRINT1("NtDuplicateObject(InitEvents[INIT_FAILURE]) failed: %lu\n", Status); + NtClose(ConsoleInitInfo->ConsoleStartInfo->InitEvents[INIT_SUCCESS]); + ConSrvFreeHandlesTable(ProcessData); + ConSrvDeleteConsole(Console); + ProcessData->ConsoleHandle = NULL; + return Status; + } + + /* Duplicate the Input Event */ + Status = NtDuplicateObject(NtCurrentProcess(), + Console->InputBuffer.ActiveEvent, + ProcessData->Process->ProcessHandle, + &ConsoleInitInfo->ConsoleStartInfo->InputWaitHandle, + EVENT_ALL_ACCESS, 0, 0); + if (!NT_SUCCESS(Status)) + { + DPRINT1("NtDuplicateObject(InputWaitHandle) failed: %lu\n", Status); + NtClose(ConsoleInitInfo->ConsoleStartInfo->InitEvents[INIT_FAILURE]); + NtClose(ConsoleInitInfo->ConsoleStartInfo->InitEvents[INIT_SUCCESS]); + ConSrvFreeHandlesTable(ProcessData); + ConSrvDeleteConsole(Console); + ProcessData->ConsoleHandle = NULL; + return Status; + } + + /* Mark the process as having a console */ + ProcessData->ConsoleApp = TRUE; + ProcessData->Process->Flags |= CsrProcessIsConsoleApp; + + /* Return the console handle to the caller */ + ConsoleInitInfo->ConsoleStartInfo->ConsoleHandle = ProcessData->ConsoleHandle; + /* Insert the process into the processes list of the console */ InsertHeadList(&Console->ProcessList, &ProcessData->ConsoleLink); @@ -554,7 +593,8 @@ ConSrvInheritConsole(PCONSOLE_PROCESS_DATA ProcessData, BOOLEAN CreateNewHandlesTable, PHANDLE pInputHandle, PHANDLE pOutputHandle, - PHANDLE pErrorHandle) + PHANDLE pErrorHandle, + PCONSOLE_START_INFO ConsoleStartInfo) { NTSTATUS Status = STATUS_SUCCESS; PCONSOLE Console; @@ -599,20 +639,57 @@ ConSrvInheritConsole(PCONSOLE_PROCESS_DATA ProcessData, } } + /* Duplicate the Initialization Events */ + Status = NtDuplicateObject(NtCurrentProcess(), + Console->InitEvents[INIT_SUCCESS], + ProcessData->Process->ProcessHandle, + &ConsoleStartInfo->InitEvents[INIT_SUCCESS], + EVENT_ALL_ACCESS, 0, 0); + if (!NT_SUCCESS(Status)) + { + DPRINT1("NtDuplicateObject(InitEvents[INIT_SUCCESS]) failed: %lu\n", Status); + ConSrvFreeHandlesTable(ProcessData); + ProcessData->ConsoleHandle = NULL; + goto Quit; + } + + Status = NtDuplicateObject(NtCurrentProcess(), + Console->InitEvents[INIT_FAILURE], + ProcessData->Process->ProcessHandle, + &ConsoleStartInfo->InitEvents[INIT_FAILURE], + EVENT_ALL_ACCESS, 0, 0); + if (!NT_SUCCESS(Status)) + { + DPRINT1("NtDuplicateObject(InitEvents[INIT_FAILURE]) failed: %lu\n", Status); + NtClose(ConsoleStartInfo->InitEvents[INIT_SUCCESS]); + ConSrvFreeHandlesTable(ProcessData); + ProcessData->ConsoleHandle = NULL; + goto Quit; + } + /* Duplicate the Input Event */ Status = NtDuplicateObject(NtCurrentProcess(), Console->InputBuffer.ActiveEvent, ProcessData->Process->ProcessHandle, - &ProcessData->InputWaitHandle, + &ConsoleStartInfo->InputWaitHandle, EVENT_ALL_ACCESS, 0, 0); if (!NT_SUCCESS(Status)) { - DPRINT1("NtDuplicateObject() failed: %lu\n", Status); + DPRINT1("NtDuplicateObject(InputWaitHandle) failed: %lu\n", Status); + NtClose(ConsoleStartInfo->InitEvents[INIT_FAILURE]); + NtClose(ConsoleStartInfo->InitEvents[INIT_SUCCESS]); ConSrvFreeHandlesTable(ProcessData); // NOTE: Always free the handles table. ProcessData->ConsoleHandle = NULL; goto Quit; } + /* Mark the process as having a console */ + ProcessData->ConsoleApp = TRUE; + ProcessData->Process->Flags |= CsrProcessIsConsoleApp; + + /* Return the console handle to the caller */ + ConsoleStartInfo->ConsoleHandle = ProcessData->ConsoleHandle; + /* Insert the process into the processes list of the console */ InsertHeadList(&Console->ProcessList, &ProcessData->ConsoleLink); @@ -630,74 +707,78 @@ Quit: return Status; } -VOID +NTSTATUS ConSrvRemoveConsole(PCONSOLE_PROCESS_DATA ProcessData) { PCONSOLE Console; + PCONSOLE_PROCESS_DATA ConsoleLeaderProcess; DPRINT("ConSrvRemoveConsole\n"); - // RtlEnterCriticalSection(&ProcessData->HandleTableLock); + /* Mark the process as not having a console anymore */ + ProcessData->ConsoleApp = FALSE; + ProcessData->Process->Flags &= ~CsrProcessIsConsoleApp; /* Validate and lock the console */ - if (ConSrvValidateConsole(&Console, - ProcessData->ConsoleHandle, - CONSOLE_RUNNING, TRUE)) + if (!ConSrvValidateConsole(&Console, + ProcessData->ConsoleHandle, + CONSOLE_RUNNING, TRUE)) { - /* Retrieve the console leader process */ - PCONSOLE_PROCESS_DATA ConsoleLeaderProcess = ConSrvGetConsoleLeaderProcess(Console); - - DPRINT("ConSrvRemoveConsole - Locking OK\n"); - - /* Close all console handles and free the handles table */ - ConSrvFreeHandlesTable(ProcessData); - - /* Detach the process from the console */ - ProcessData->ConsoleHandle = NULL; - - /* Remove the process from the console's list of processes */ - RemoveEntryList(&ProcessData->ConsoleLink); - - /* Check whether the console should send a last close notification */ - if (Console->NotifyLastClose) - { - /* If we are removing the process which wants the last close notification... */ - if (ProcessData == Console->NotifiedLastCloseProcess) - { - /* ... just reset the flag and the pointer... */ - Console->NotifyLastClose = FALSE; - Console->NotifiedLastCloseProcess = NULL; - } - /* - * ... otherwise, if we are removing the console leader process - * (that cannot be the process wanting the notification, because - * the previous case already dealt with it)... - */ - else if (ProcessData == ConsoleLeaderProcess) - { - /* - * ... reset the flag first (so that we avoid multiple notifications) - * and then send the last close notification. - */ - Console->NotifyLastClose = FALSE; - ConSrvConsoleCtrlEvent(CTRL_LAST_CLOSE_EVENT, Console->NotifiedLastCloseProcess); - - /* Only now, reset the pointer */ - Console->NotifiedLastCloseProcess = NULL; - } - } - - /* Update the internal info of the terminal */ - TermRefreshInternalInfo(Console); - - /* Release the console */ - DPRINT("ConSrvRemoveConsole - Decrement Console->ReferenceCount = %lu\n", Console->ReferenceCount); - ConSrvReleaseConsole(Console, TRUE); - //CloseHandle(ProcessData->InputWaitHandle); - //ProcessData->InputWaitHandle = NULL; + // FIXME: Find another status code + return STATUS_UNSUCCESSFUL; } - // RtlLeaveCriticalSection(&ProcessData->HandleTableLock); + DPRINT("ConSrvRemoveConsole - Locking OK\n"); + + /* Retrieve the console leader process */ + ConsoleLeaderProcess = ConSrvGetConsoleLeaderProcess(Console); + + /* Close all console handles and free the handles table */ + ConSrvFreeHandlesTable(ProcessData); + + /* Detach the process from the console */ + ProcessData->ConsoleHandle = NULL; + + /* Remove the process from the console's list of processes */ + RemoveEntryList(&ProcessData->ConsoleLink); + + /* Check whether the console should send a last close notification */ + if (Console->NotifyLastClose) + { + /* If we are removing the process which wants the last close notification... */ + if (ProcessData == Console->NotifiedLastCloseProcess) + { + /* ... just reset the flag and the pointer... */ + Console->NotifyLastClose = FALSE; + Console->NotifiedLastCloseProcess = NULL; + } + /* + * ... otherwise, if we are removing the console leader process + * (that cannot be the process wanting the notification, because + * the previous case already dealt with it)... + */ + else if (ProcessData == ConsoleLeaderProcess) + { + /* + * ... reset the flag first (so that we avoid multiple notifications) + * and then send the last close notification. + */ + Console->NotifyLastClose = FALSE; + ConSrvConsoleCtrlEvent(CTRL_LAST_CLOSE_EVENT, Console->NotifiedLastCloseProcess); + + /* Only now, reset the pointer */ + Console->NotifiedLastCloseProcess = NULL; + } + } + + /* Update the internal info of the terminal */ + TermRefreshInternalInfo(Console); + + /* Release the console */ + DPRINT("ConSrvRemoveConsole - Decrement Console->ReferenceCount = %lu\n", Console->ReferenceCount); + ConSrvReleaseConsole(Console, TRUE); + + return STATUS_SUCCESS; } diff --git a/win32ss/user/winsrv/consrv/include/conio_winsrv.h b/win32ss/user/winsrv/consrv/include/conio_winsrv.h index 135ccb54352..c6fb8318990 100644 --- a/win32ss/user/winsrv/consrv/include/conio_winsrv.h +++ b/win32ss/user/winsrv/consrv/include/conio_winsrv.h @@ -139,6 +139,8 @@ typedef struct _WINSRV_CONSOLE // CRITICAL_SECTION Lock; // CONSOLE_STATE State; /* State of the console */ + HANDLE InitEvents[MAX_INIT_EVENTS]; /* Initialization events */ + FRONTEND FrontEndIFace; /* Frontend-specific interface */ /******************************* Process support ******************************/ diff --git a/win32ss/user/winsrv/consrv/init.c b/win32ss/user/winsrv/consrv/init.c index 743166dbcea..72194cdd0c2 100644 --- a/win32ss/user/winsrv/consrv/init.c +++ b/win32ss/user/winsrv/consrv/init.c @@ -353,7 +353,6 @@ ConSrvNewProcess(PCSR_PROCESS SourceProcess, /* Initialize the new (target) process */ RtlZeroMemory(TargetProcessData, sizeof(*TargetProcessData)); TargetProcessData->Process = TargetProcess; - TargetProcessData->InputWaitHandle = NULL; TargetProcessData->ConsoleHandle = NULL; TargetProcessData->ConsoleApp = FALSE; @@ -435,6 +434,7 @@ ConSrvConnect(IN PCSR_PROCESS CsrProcess, /* Initialize the console initialization info structure */ ConsoleInitInfo.ConsoleStartInfo = &ConnectInfo->ConsoleStartInfo; + ConsoleInitInfo.IsWindowVisible = ConnectInfo->IsWindowVisible; ConsoleInitInfo.TitleLength = ConnectInfo->TitleLength; ConsoleInitInfo.ConsoleTitle = ConnectInfo->ConsoleTitle; ConsoleInitInfo.DesktopLength = ConnectInfo->DesktopLength; @@ -480,9 +480,10 @@ ConSrvConnect(IN PCSR_PROCESS CsrProcess, Status = ConSrvInheritConsole(ProcessData, ConnectInfo->ConsoleStartInfo.ConsoleHandle, FALSE, - NULL, // &ConnectInfo->ConsoleStartInfo.InputHandle, - NULL, // &ConnectInfo->ConsoleStartInfo.OutputHandle, - NULL); // &ConnectInfo->ConsoleStartInfo.ErrorHandle); + NULL, // &ConnectInfo->ConsoleStartInfo.InputHandle, + NULL, // &ConnectInfo->ConsoleStartInfo.OutputHandle, + NULL, // &ConnectInfo->ConsoleStartInfo.ErrorHandle, + &ConnectInfo->ConsoleStartInfo); if (!NT_SUCCESS(Status)) { DPRINT1("Console inheritance failed\n"); @@ -490,14 +491,6 @@ ConSrvConnect(IN PCSR_PROCESS CsrProcess, } } - /* Mark the process as having a console */ - ProcessData->ConsoleApp = TRUE; - // ProcessData->Flags |= CsrProcessIsConsoleApp; - - /* Return the console handle and the input wait handle to the caller */ - ConnectInfo->ConsoleStartInfo.ConsoleHandle = ProcessData->ConsoleHandle; - ConnectInfo->ConsoleStartInfo.InputWaitHandle = ProcessData->InputWaitHandle; - /* Set the Property-Dialog and Control-Dispatcher handlers */ ProcessData->PropRoutine = ConnectInfo->PropRoutine; ProcessData->CtrlRoutine = ConnectInfo->CtrlRoutine; @@ -520,10 +513,6 @@ ConSrvDisconnect(PCSR_PROCESS Process) { DPRINT("ConSrvDisconnect - calling ConSrvRemoveConsole\n"); ConSrvRemoveConsole(ProcessData); - - /* Mark the process as not having a console anymore */ - ProcessData->ConsoleApp = FALSE; - Process->Flags &= ~CsrProcessIsConsoleApp; } RtlDeleteCriticalSection(&ProcessData->HandleTableLock); @@ -560,7 +549,7 @@ CSR_SERVER_DLL_INIT(ConServerDllInitialization) LoadedServerDll->DisconnectCallback = ConSrvDisconnect; LoadedServerDll->NewProcessCallback = ConSrvNewProcess; // LoadedServerDll->HardErrorCallback = ConSrvHardError; - LoadedServerDll->ShutdownProcessCallback = NULL; + LoadedServerDll->ShutdownProcessCallback = ConsoleClientShutdown; ConSrvDllInstance = LoadedServerDll->ServerHandle; diff --git a/win32ss/user/winsrv/consrv/procinit.h b/win32ss/user/winsrv/consrv/procinit.h index cbc0d6b002b..716ecd0a815 100644 --- a/win32ss/user/winsrv/consrv/procinit.h +++ b/win32ss/user/winsrv/consrv/procinit.h @@ -18,5 +18,6 @@ NTSTATUS ConSrvInheritConsole(PCONSOLE_PROCESS_DATA ProcessData, BOOLEAN CreateNewHandlesTable, PHANDLE pInputHandle, PHANDLE pOutputHandle, - PHANDLE pErrorHandle); -VOID ConSrvRemoveConsole(PCONSOLE_PROCESS_DATA ProcessData); + PHANDLE pErrorHandle, + PCONSOLE_START_INFO ConsoleStartInfo); +NTSTATUS ConSrvRemoveConsole(PCONSOLE_PROCESS_DATA ProcessData); diff --git a/win32ss/user/winsrv/consrv/shutdown.c b/win32ss/user/winsrv/consrv/shutdown.c new file mode 100644 index 00000000000..4b212452840 --- /dev/null +++ b/win32ss/user/winsrv/consrv/shutdown.c @@ -0,0 +1,56 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS Console Server DLL + * FILE: win32ss/user/winsrv/consrv/shutdown.c + * PURPOSE: Processes Shutdown + * PROGRAMMERS: Alex Ionescu + */ + +/* INCLUDES *******************************************************************/ + +#include "consrv.h" + +#define NDEBUG +#include + +/* FUNCTIONS ******************************************************************/ + +// NOTE: See http://blogs.msdn.com/b/ntdebugging/archive/2007/06/09/how-windows-shuts-down.aspx +ULONG +NTAPI +ConsoleClientShutdown(IN PCSR_PROCESS CsrProcess, + IN ULONG Flags, + IN BOOLEAN FirstPhase) +{ + PCONSOLE_PROCESS_DATA ProcessData = ConsoleGetPerProcessData(CsrProcess); + + if ( ProcessData->ConsoleHandle != NULL || + ProcessData->HandleTable != NULL ) + { + DPRINT1("ConsoleClientShutdown(0x%p, 0x%x, %s) - Console process [0x%x, 0x%x]\n", + CsrProcess, Flags, FirstPhase ? "FirstPhase" : "LastPhase", + CsrProcess->ClientId.UniqueProcess, CsrProcess->ClientId.UniqueThread); + + /* We are done with the process itself */ + CsrDereferenceProcess(CsrProcess); + return CsrShutdownCsrProcess; + } + else + { + DPRINT1("ConsoleClientShutdown(0x%p, 0x%x, %s) - Non-console process [0x%x, 0x%x]\n", + CsrProcess, Flags, FirstPhase ? "FirstPhase" : "LastPhase", + CsrProcess->ClientId.UniqueProcess, CsrProcess->ClientId.UniqueThread); + + /* On first pass, ignore the process since the GUI server should take it... */ + if (FirstPhase) return CsrShutdownNonCsrProcess; + + /* ... otherwise, call the generic handler */ + // FIXME: Should call a generic shutdown handler!! + CsrDereferenceProcess(CsrProcess); + return CsrShutdownCsrProcess; + } + + return CsrShutdownNonCsrProcess; +} + +/* EOF */ diff --git a/win32ss/user/winsrv/winsrv.h b/win32ss/user/winsrv/winsrv.h new file mode 100644 index 00000000000..7c3f157d238 --- /dev/null +++ b/win32ss/user/winsrv/winsrv.h @@ -0,0 +1,42 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS User API Server DLL + * FILE: win32ss/user/winsrv/winsrv.h + * PURPOSE: Main header - Definitions + * PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr) + */ + +#ifndef __WINSRV_H__ +#define __WINSRV_H__ + +#include + +/* PSDK/NDK Headers */ + +#define WIN32_NO_STATUS +#define _INC_WINDOWS +#define COM_NO_WINDOWS_H + +#include +#include +#include +#include +/* Undocumented user definitions */ +#include + +#define NTOS_MODE_USER +#include +#include +#include +#include + +/* Public Win32K Headers */ +#include + +/* PSEH for SEH Support */ +#include + +/* CSRSS Header */ +#include + +#endif /* __WINSRV_H__ */