diff --git a/base/applications/fontview/lang/ro-RO.rc b/base/applications/fontview/lang/ro-RO.rc index 24c11532179..4361ff13dc0 100644 --- a/base/applications/fontview/lang/ro-RO.rc +++ b/base/applications/fontview/lang/ro-RO.rc @@ -1,12 +1,12 @@ -//2011.10.17 - Fulea Ștefan: diacritics changes, other minor changes +//2012.09.09 - Fulea Ștefan: update caused by r56898, corrections LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL STRINGTABLE DISCARDABLE BEGIN - IDS_INSTALL, "Install" - IDS_PRINT, "Imprimare" + IDS_INSTALL, "Inst&alează" + IDS_PRINT, "I&mprimă" IDS_STRING, "Turubinele eoliene generează câțiva MJ (câțiva kW•h) în exces, acoperind și necesarul familiei. QY 1234567890" - IDS_OPEN, "Open Font..." + IDS_OPEN, "Deschidere font…" IDS_ERROR, "Eroare" IDS_ERROR_NOMEM, "Nu e destulă memorie pentru a încheia operația." IDS_ERROR_NOFONT, "Fișierul «%1» este un fișier font deteriorat." diff --git a/base/applications/mscutils/devmgmt/lang/ro-RO.rc b/base/applications/mscutils/devmgmt/lang/ro-RO.rc index 975db6390a6..eba4d44e0d2 100644 --- a/base/applications/mscutils/devmgmt/lang/ro-RO.rc +++ b/base/applications/mscutils/devmgmt/lang/ro-RO.rc @@ -22,7 +22,7 @@ BEGIN MENUITEM "Resurse după t&ip", IDC_RESBYTYPE, GRAYED MENUITEM "Resurse după c&onexiune", IDC_RESBYCONN, GRAYED MENUITEM SEPARATOR - MENUITEM "Show hidden devices", IDC_SHOWHIDDEN + MENUITEM "Afișea&ză dispozitive ascunse", IDC_SHOWHIDDEN END POPUP "&?" BEGIN diff --git a/base/applications/rapps/rapps/7zip.txt b/base/applications/rapps/rapps/7zip.txt index 8bfe901f9a2..e17f2287ec4 100644 --- a/base/applications/rapps/rapps/7zip.txt +++ b/base/applications/rapps/rapps/7zip.txt @@ -28,7 +28,7 @@ Description = Gereedschap voor het maken en openen van 7z, zip, tar, rar and and [Section.0418] Description = Utilitar pentru crearea și deschiderea arhivelor 7zip, zip, tar, rar și altele. -Size = 1.06Mo +Size = 1,06 Mo [Section.0422] Description = Утиліта для створення та відкриття 7zip, zip, tar, rar та інших архівних файлів. diff --git a/base/applications/rapps/rapps/abiword.txt b/base/applications/rapps/rapps/abiword.txt index a42de823eeb..5cf31c62879 100644 --- a/base/applications/rapps/rapps/abiword.txt +++ b/base/applications/rapps/rapps/abiword.txt @@ -31,7 +31,7 @@ Description = Edytor tekstu. [Section.0418] Description = Procesor de text. -Size = 5.64Mo +Size = 5,64 Mo [Section.0422] Description = Текстовий процесор. diff --git a/base/applications/rapps/rapps/abiword28x.txt b/base/applications/rapps/rapps/abiword28x.txt index 1f5952ce9fb..927d1f3697c 100644 --- a/base/applications/rapps/rapps/abiword28x.txt +++ b/base/applications/rapps/rapps/abiword28x.txt @@ -28,7 +28,7 @@ Description = Edytor tekstu. [Section.0418] Description = Procesor de text. -Size = 9.33Mo +Size = 9,33 Mo [Section.0422] Description = Текстовий процесор. diff --git a/base/applications/rapps/rapps/abyss.txt b/base/applications/rapps/rapps/abyss.txt index 63023abaf50..17aebf9e2e7 100644 --- a/base/applications/rapps/rapps/abyss.txt +++ b/base/applications/rapps/rapps/abyss.txt @@ -30,7 +30,7 @@ Mogą one zostać oparte o MySQL, SQLite, MS SQL Server, MS Access, lub Oracle. [Section.0418] 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 = 1.82Mo +Size = 1,82 Mo [Section.0422] Description = Abyss Web Server дозволить вам утримувати веб-сайти на вашому комп'ютері. Від підтримує безпечні SSL/TLS з'єднання (HTTPS) та великий ряд веб-технологій. Він також запускає PHP, Perl, Python, ASP, ASP.NET, та Ruby on Rails веб-додатки, які можуть підтримуватись такими базами даних, як MySQL, SQLite, MS SQL Server, MS Access, чи Oracle. diff --git a/base/applications/rapps/rapps/ac97forvirtualbox.txt b/base/applications/rapps/rapps/ac97forvirtualbox.txt index 2506791bd50..9456f0f7954 100644 --- a/base/applications/rapps/rapps/ac97forvirtualbox.txt +++ b/base/applications/rapps/rapps/ac97forvirtualbox.txt @@ -44,7 +44,7 @@ Description = Rozpakuj zawartość w folderze "ReactOS" i dwukrotnie zrestartuj Name = Modul pilot AC97 pentru VirtualBox Licence = Nespecificată Description = Dezarhivați în dosarul „ReactOS” apoi reporniți ReactOS de două ori. -Size = 185.5ko +Size = 185,5 ko [Section.0419] Name = Драйвер AC97 для VirtualBox diff --git a/base/applications/rapps/rapps/audiograbber.txt b/base/applications/rapps/rapps/audiograbber.txt index 30d3cb328a1..12633b48846 100644 --- a/base/applications/rapps/rapps/audiograbber.txt +++ b/base/applications/rapps/rapps/audiograbber.txt @@ -28,7 +28,7 @@ Description = Bardzo dobry CD Ripper/konwerter plików audio. [Section.0418] Description = Program de extragere conținuturi CD audio și de conversie a fișierelor de sunet. -Size = 3.57Mo +Size = 3,57 Mo [Section.0422] Description = Чудовий CD Ріппер/Конвертер аудіо файлів. diff --git a/base/applications/rapps/rapps/bittorrent.txt b/base/applications/rapps/rapps/bittorrent.txt index fa7e5f38cc6..68dd202d1e2 100644 --- a/base/applications/rapps/rapps/bittorrent.txt +++ b/base/applications/rapps/rapps/bittorrent.txt @@ -21,4 +21,4 @@ Description = L'originale Client BitTorrent [Section.0418] Licence = Gratuită pentru uz necomercial Description = Originalul client BitTorrent. -Size = 5.4Mo +Size = 5,4 Mo diff --git a/base/applications/rapps/rapps/cnt.txt b/base/applications/rapps/rapps/cnt.txt index 7e8ebce6501..5ca8292b577 100644 --- a/base/applications/rapps/rapps/cnt.txt +++ b/base/applications/rapps/rapps/cnt.txt @@ -10,3 +10,8 @@ Category = 12 URLSite = http://http://cnt.lakefolks.com URLDownload = http://svn.reactos.org/packages/CNTzip.exe CDPath = none + +[Section.0418] +Licence = Gratuită +Description = Aplicație gratuită pentru simularea unei tastaturi fizice. +Size = 1,3 Mo diff --git a/base/applications/rapps/rapps/comctl32ocx.txt b/base/applications/rapps/rapps/comctl32ocx.txt index 989bda36e05..b68d9dc8866 100644 --- a/base/applications/rapps/rapps/comctl32ocx.txt +++ b/base/applications/rapps/rapps/comctl32ocx.txt @@ -34,7 +34,7 @@ Description = Microsoft Visual Basic 6.0 Common Controls jest używany przez cz [Section.0418] Licence = Nespecificată Description = Modul logic necesar unor aplicații. Conține: comctl32.ocx, mscomctl.ocx, advpack.dll. -Size = 913.73ko +Size = 913,73 ko [Section.0422] Licence = Невідома diff --git a/base/applications/rapps/rapps/diablo2.txt b/base/applications/rapps/rapps/diablo2.txt index 0c93c13d27e..aad9996b67f 100644 --- a/base/applications/rapps/rapps/diablo2.txt +++ b/base/applications/rapps/rapps/diablo2.txt @@ -31,7 +31,7 @@ Description = Diablo 2 Shareware. Do poprawnego działania wymagany jest zainsta [Section.0418] Description = Diablo 2 Shareware. Pentru execuție este necesar (pachetul) zeckensack's glide wrapper. -Size = 131.9Mo +Size = 131,9 Mo [Section.0422] Description = Diablo 2 Shareware. Для запуску потрібен zeckensack's glide wrapper. diff --git a/base/applications/rapps/rapps/dosblaster.txt b/base/applications/rapps/rapps/dosblaster.txt index d5606fba922..9eb36abc667 100644 --- a/base/applications/rapps/rapps/dosblaster.txt +++ b/base/applications/rapps/rapps/dosblaster.txt @@ -28,7 +28,7 @@ Description = DosBlaster to rozszerzenie powłoki, które umożliwia otwarcie ka [Section.0418] Description = DosBlaster este o extensie de interfațare ce oferă posibilitatea deschiderii unui executabil DOS în aplicația DOSBox prin clic dreapta. Această versiune conține DOSBox 0.70, însă poate fi actualizată instalând în dosarele DosBlaster o versiune mai nouă de DOSBox. -Size = 2.05Mo +Size = 2,05 Mo [Section.0422] Description = DosBlaster це розширення оболонки, яке дозволяє запустити будь-який виконавчий файл DOS в DOSBox через правий клік. Ця версія містить DOSBox 0.70, але може бути оновлена встановленням новішої версії DOSBox в теки DosBlaster. diff --git a/base/applications/rapps/rapps/dosbox.txt b/base/applications/rapps/rapps/dosbox.txt index 8dfce53445a..0325a9e841f 100644 --- a/base/applications/rapps/rapps/dosbox.txt +++ b/base/applications/rapps/rapps/dosbox.txt @@ -25,7 +25,7 @@ Description = DOSBox - emulator DOSa. [Section.0418] Description = DOSBox este un emulator DOS. -Size = 1.38Mo +Size = 1,38 Mo [Section.0422] Description = DOSBox - емулятор DOSу. diff --git a/base/applications/rapps/rapps/doublecommander.txt b/base/applications/rapps/rapps/doublecommander.txt index 34c383922e1..75feb21330f 100644 --- a/base/applications/rapps/rapps/doublecommander.txt +++ b/base/applications/rapps/rapps/doublecommander.txt @@ -18,8 +18,8 @@ Description = Double Commander is een open-bron file-manager met twee panelen zi Description = Double Commander to menedżer plików, o otwartym źródle, z klasycznym układem dwóch paneli obok siebie. Do rozpakowania archiwum potrzebny jest 7-zip lub podobny program. [Section.0418] -Description = Double Commander este un gestionar (open-source) de fișiere, cu două panouri alăturate. Este necesar 7-Zip sau un utilitar similar de dezarhivare pentru a-l putea extrage. -Size = 6.5Mo +Description = Double Commander este un gestionar (open-source) de fișiere după modelul «două paneluri alăturate». Este necesar 7-Zip sau un utilitar similar de dezarhivare pentru a-l putea extrage. +Size = 6,5 Mo [Section.0419] Description = Double Commander - это открытый двухпанельный файловый менеджер. Вам нужен 7-Zip или подобная утилита для его распаковки. diff --git a/base/applications/rapps/rapps/fap.txt b/base/applications/rapps/rapps/fap.txt index 3fc27416923..526af85c159 100644 --- a/base/applications/rapps/rapps/fap.txt +++ b/base/applications/rapps/rapps/fap.txt @@ -28,7 +28,7 @@ Description = Prosty i lekki odtwarzacz audio. [Section.0418] Description = Un lector audio simplu și ușor. -Size = 1.86Mo +Size = 1,86 Mo [Section.0422] Description = Простий та маленький програвач аудіо файлів. diff --git a/base/applications/rapps/rapps/firefox2.txt b/base/applications/rapps/rapps/firefox2.txt index b288c581257..fa0866f5245 100644 --- a/base/applications/rapps/rapps/firefox2.txt +++ b/base/applications/rapps/rapps/firefox2.txt @@ -41,7 +41,7 @@ URLSite = http://www.mozilla-europe.org/pl/ [Section.0418] Description = Cel mai popular și unul dintre cele mai bune navigatoare web gratuite existente. -Size = 5.77Mo +Size = 5,77 Mo URLSite = http://www.mozilla-europe.org/ro/ [Section.0419] diff --git a/base/applications/rapps/rapps/firefox3.txt b/base/applications/rapps/rapps/firefox3.txt index 5a56fa34601..307f1ea8ba4 100644 --- a/base/applications/rapps/rapps/firefox3.txt +++ b/base/applications/rapps/rapps/firefox3.txt @@ -41,6 +41,7 @@ URLSite = http://www.mozilla-europe.org/pl/ [Section.0418] Description = Cel mai popular și unul dintre cele mai bune navigatoare web gratuite existente. +Size = 7,16 Mo URLSite = http://www.mozilla-europe.org/ro/ [Section.0419] diff --git a/base/applications/rapps/rapps/firefox36.txt b/base/applications/rapps/rapps/firefox36.txt index cff7d497c32..e60d031ffe4 100644 --- a/base/applications/rapps/rapps/firefox36.txt +++ b/base/applications/rapps/rapps/firefox36.txt @@ -37,6 +37,7 @@ URLSite = http://www.mozilla-europe.org/pl/ [Section.0418] Description = Cel mai popular și unul dintre cele mai bune navigatoare web gratuite existente. +Size = 8,22 Mo URLSite = http://www.mozilla-europe.org/ro/ [Section.0419] diff --git a/base/applications/rapps/rapps/firefox5.txt b/base/applications/rapps/rapps/firefox5.txt index aef55463f0a..c7a488f3f59 100644 --- a/base/applications/rapps/rapps/firefox5.txt +++ b/base/applications/rapps/rapps/firefox5.txt @@ -48,7 +48,7 @@ URLDownload = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/17.0. [Section.0418] Description = Cel mai popular și unul dintre cele mai bune navigatoare web gratuite existente. -Size = 16.1Mo +Size = 16,1 Mo URLSite = http://www.mozilla-europe.org/ro/ URLDownload = http://releases.mozilla.org/pub/mozilla.org/firefox/releases/17.0.1/win32/ro/Firefox%20Setup%2017.0.1.exe diff --git a/base/applications/rapps/rapps/freebasic.txt b/base/applications/rapps/rapps/freebasic.txt index 50c611d3cea..9e3d32eaa90 100644 --- a/base/applications/rapps/rapps/freebasic.txt +++ b/base/applications/rapps/rapps/freebasic.txt @@ -28,7 +28,7 @@ Description = Otwarty kompilator BASIC, ze składnią kompatybilną z QBASIC. [Section.0419] Description = Compilator (open-source) BASIC. Sintaxa BASIC este compatibilă cu QBASIC. -Size = 6.0Mo +Size = 6,0 Mo [Section.0422] Description = Відкритий компілятор BASIC. Синтаксис сумісний з QBASIC. diff --git a/base/applications/rapps/rapps/glidewrapzbag.txt b/base/applications/rapps/rapps/glidewrapzbag.txt index ce1b04853fb..682975e7105 100644 --- a/base/applications/rapps/rapps/glidewrapzbag.txt +++ b/base/applications/rapps/rapps/glidewrapzbag.txt @@ -29,7 +29,7 @@ Description = glidewrapper jest potrzebny do uruchomienia Diablo2 w ReactOS-ie. [Section.0418] Licence = Gratuită Description = Glide wrapper, necesar pentru a executa Diablo 2 în ReactOS. -Size = 249.02ko +Size = 249,02 ko [Section.0422] Description = glidewrapper необхідний для запуску Diablo2 в ReactOS. diff --git a/base/applications/rapps/rapps/irfanview.txt b/base/applications/rapps/rapps/irfanview.txt index e19cf9f477c..630baa008e4 100644 --- a/base/applications/rapps/rapps/irfanview.txt +++ b/base/applications/rapps/rapps/irfanview.txt @@ -34,7 +34,7 @@ Description = Przeglądarka dla bardzo wielu typów obrazów, plików audio oraz [Section.0418] Licence = Gratuită (pentru uz personal) Description = Lector pentru multiple formate de fișiere grafice/audio/video. -Size = 1.46Mo +Size = 1,46 Mo [Section.0422] Licence = Freeware (для домашнього використання) diff --git a/base/applications/rapps/rapps/irfanviewplugins.txt b/base/applications/rapps/rapps/irfanviewplugins.txt index 0f84ba779f0..8554c8e9d60 100644 --- a/base/applications/rapps/rapps/irfanviewplugins.txt +++ b/base/applications/rapps/rapps/irfanviewplugins.txt @@ -34,7 +34,7 @@ Description = Wtyczki otwierające dodatkowe typy plików w Irfanview. [Section.0418] Licence = Gratuită (pentru uz personal) Description = Extensii adiționale pentru a spori numărul de formate de fișiere recunoscute. -Size = 8.92Mo +Size = 8,92 Mo [Section.0422] Licence = Freeware (для домашнього використання) diff --git a/base/applications/rapps/rapps/kdewin.txt b/base/applications/rapps/rapps/kdewin.txt index 39ae6dab418..7d9022d1eb4 100644 --- a/base/applications/rapps/rapps/kdewin.txt +++ b/base/applications/rapps/rapps/kdewin.txt @@ -31,7 +31,7 @@ Description = KDE dla Windows. [Section.0418] Description = KDE pentru Windows. -Size = 2.21Mo +Size = 2,21 Mo [Section.0422] Description = KDE для Windows. diff --git a/base/applications/rapps/rapps/lbreakout2.txt b/base/applications/rapps/rapps/lbreakout2.txt index f392c87b3ad..598cb99e97c 100644 --- a/base/applications/rapps/rapps/lbreakout2.txt +++ b/base/applications/rapps/rapps/lbreakout2.txt @@ -28,7 +28,7 @@ Description = Klon Breakouta/Arkanoida napisany przy użyciu biblioteki SDL. [Section.0418] Description = Ramificație-clonă a bibliotecilor SDL. -Size = 3.03Mo +Size = 3,03 Mo [Section.0422] Description = Клон Breakouta/Arkanoida, що використовує бібліотеки SDL. diff --git a/base/applications/rapps/rapps/lgeneral.txt b/base/applications/rapps/rapps/lgeneral.txt index a9b1154d3c4..9539f49ed91 100644 --- a/base/applications/rapps/rapps/lgeneral.txt +++ b/base/applications/rapps/rapps/lgeneral.txt @@ -28,7 +28,7 @@ Description = Klon gry Panzer General napisany przy użyciu biblioteki SDL. [Section.0418] Description = Clonă Panzer General utilizând bibliotecile SDL. -Size = 1.92Mo +Size = 1,92 Mo [Section.0422] Description = Клон гри Panzer General, що використовує бібліотеки SDL. diff --git a/base/applications/rapps/rapps/libreoffice.txt b/base/applications/rapps/rapps/libreoffice.txt index 5ee9a4c0710..0fa0fd7c77f 100644 --- a/base/applications/rapps/rapps/libreoffice.txt +++ b/base/applications/rapps/rapps/libreoffice.txt @@ -28,7 +28,7 @@ Description = Otwarty pakiet biurowy. [Section.0418] Description = Fostul OpenOffice. Suita de aplicații de birotică open-source. -Size = 201.6Mo +Size = 201,6 Mo [Section.0422] Description = Відкритий офісний пакет. diff --git a/base/applications/rapps/rapps/lmarbles.txt b/base/applications/rapps/rapps/lmarbles.txt index 4155962d858..15a99f3a0d5 100644 --- a/base/applications/rapps/rapps/lmarbles.txt +++ b/base/applications/rapps/rapps/lmarbles.txt @@ -28,7 +28,7 @@ Description = Klon gry Atomix, używający biblioteki SDL. [Section.0418] Description = Clona Atomix utilizând bibliotecile SDL. -Size = 1.39Mo +Size = 1,39 Mo [Section.0422] Description = Клон гри Atomix, що використовує бібліотеки SDL. diff --git a/base/applications/rapps/rapps/mfc40.txt b/base/applications/rapps/rapps/mfc40.txt index a06398563c4..236eb775386 100644 --- a/base/applications/rapps/rapps/mfc40.txt +++ b/base/applications/rapps/rapps/mfc40.txt @@ -38,7 +38,7 @@ Description = Biblioteka MFC 4 jest używana przez część aplikacji. [Section.0418] Licence = Nespecificată Description = MFC 4 este necesară unor aplicații. Conține: mfc40.dll, msvcrt40.dll. -Size = 865.04ko +Size = 865,04 ko [Section.0422] Name = Переглядач OLE та MFC (Microsoft Foundation Classes) версія 4 diff --git a/base/applications/rapps/rapps/mirandaim.txt b/base/applications/rapps/rapps/mirandaim.txt index f48489096af..694fce29978 100644 --- a/base/applications/rapps/rapps/mirandaim.txt +++ b/base/applications/rapps/rapps/mirandaim.txt @@ -28,7 +28,7 @@ Description = Otwarty komunikator internetowy, obsługujący wiele różnych pro [Section.0418] Description = Aplicație de mesagerie instant multiprotocol (open-source) - posibil cu limitări în funcționalitate. -Size = 3.1Mo +Size = 3,1 Mo [Section.0422] Description = Відкрита мультипротокольна програма миттєвих повідомлень - може не працювати повністю. diff --git a/base/applications/rapps/rapps/mirc.txt b/base/applications/rapps/rapps/mirc.txt index e5a80706ec0..921a25080cd 100644 --- a/base/applications/rapps/rapps/mirc.txt +++ b/base/applications/rapps/rapps/mirc.txt @@ -32,7 +32,7 @@ Description = Najpopularniejszy klient IRC (Internet Relay Chat). [Section.0418] Licence = Versiune de evaluare Description = Cel mai popular client de IRC (Internet Relay Chat). -Size = 1.82Mo +Size = 1,82 Mo [Section.0422] Description = Найпопулярніший клієнт IRC (Internet Relay Chat). diff --git a/base/applications/rapps/rapps/mirc6.txt b/base/applications/rapps/rapps/mirc6.txt index 5b6f9c03a43..ab4029d7e55 100644 --- a/base/applications/rapps/rapps/mirc6.txt +++ b/base/applications/rapps/rapps/mirc6.txt @@ -32,7 +32,7 @@ Description = Najpopularniejszy klient IRC (Internet Relay Chat). [Section.0418] Licence = Versiune de evaluare Description = Cel mai popular client de IRC (Internet Relay Chat). -Size = 1.67Mo +Size = 1,67 Mo [Section.0422] Description = Найпопулярніший клієнт IRC (Internet Relay Chat). diff --git a/base/applications/rapps/rapps/mono2.txt b/base/applications/rapps/rapps/mono2.txt index f2939eaa7cd..2794b7076fc 100644 --- a/base/applications/rapps/rapps/mono2.txt +++ b/base/applications/rapps/rapps/mono2.txt @@ -23,7 +23,7 @@ Description = Pakiet Mono .net Framework dla Programistów. [Section.0418] Licence = Nespecificată Description = Platformă .net (open-source). -Size = 79.47Mo +Size = 88,6 Mo [Section.0422] Description = Відкритий .net Фреймворк. diff --git a/base/applications/rapps/rapps/mpc.txt b/base/applications/rapps/rapps/mpc.txt index 43298ad9176..d034d727d15 100644 --- a/base/applications/rapps/rapps/mpc.txt +++ b/base/applications/rapps/rapps/mpc.txt @@ -25,7 +25,7 @@ Description = Mediaspeler. [Section.0418] Description = Lector multimedia. -Size = 5.57Mo +Size = 5,9 Mo [Section.0419] Description = Мультимедийный проигрыватель. diff --git a/base/applications/rapps/rapps/msxml3.txt b/base/applications/rapps/rapps/msxml3.txt index 2b5442af24c..b775c00c04e 100644 --- a/base/applications/rapps/rapps/msxml3.txt +++ b/base/applications/rapps/rapps/msxml3.txt @@ -34,7 +34,7 @@ Description = Niektóre spośród plików instalacyjnych MSI potrzebują parsera [Section.0418] Licence = Nespecificată Description = MSXML3 este necesar unor Instalatori MSI. Conține: msxml3.dll, msxml3a.dll, msxml3r.dll. -Size = 1.85Mo +Size = 1,85 Mo [Section.0422] Licence = Невідома diff --git a/base/applications/rapps/rapps/net11.txt b/base/applications/rapps/rapps/net11.txt index 790cf510aa9..5903c77111f 100644 --- a/base/applications/rapps/rapps/net11.txt +++ b/base/applications/rapps/rapps/net11.txt @@ -23,4 +23,4 @@ Description = Microsoft .NET Framework Wersja 1.1 - Pakiet Dystrybucyjny. [Section.0418] Licence = Nespecificată Description = Platforma Microsoft .NET versiunea 1.1 - Pachet redistributabl. -Size = 23.14Mo +Size = 23,14 Mo diff --git a/base/applications/rapps/rapps/net20.txt b/base/applications/rapps/rapps/net20.txt index d59e4078324..e0f25607a10 100644 --- a/base/applications/rapps/rapps/net20.txt +++ b/base/applications/rapps/rapps/net20.txt @@ -23,4 +23,4 @@ Description = Microsoft .NET Framework Wersja 2.0 - Pakiet Dystrybucyjny. [Section.0418] Licence = Nespecificată Description = Platforma Microsoft .NET versiunea 2.0 - Pachet redistributabl. -Size = 22.42Mo +Size = 22,42 Mo diff --git a/base/applications/rapps/rapps/net20sp2.txt b/base/applications/rapps/rapps/net20sp2.txt index 2ff9679e994..0870eaca077 100644 --- a/base/applications/rapps/rapps/net20sp2.txt +++ b/base/applications/rapps/rapps/net20sp2.txt @@ -23,4 +23,4 @@ Description = Microsoft .NET Framework Wersja 2.0 Service Pack 2. [Section.0418] Licence = Nespecificată Description = Platforma Microsoft .NET versiunea 2.0 - Service Pack 2 -Size = 23.84Mo +Size = 23,84 Mo diff --git a/base/applications/rapps/rapps/offbyone.txt b/base/applications/rapps/rapps/offbyone.txt index 1db6f0ff40f..6c77237626c 100644 --- a/base/applications/rapps/rapps/offbyone.txt +++ b/base/applications/rapps/rapps/offbyone.txt @@ -32,7 +32,7 @@ Description = Bardzo mała i szybka przeglądarka internetowa z pełną obsług [Section.0418] Licence = Gratuită Description = Un navigator web foarte mic și rapid compatibil cu HTML 3.2. -Size = 0.98Mo +Size = 0,98 Mo [Section.0422] Description = Дуже малий та швидкий веб-браузер з повною підтримкою HTML 3.2. diff --git a/base/applications/rapps/rapps/openoffice2.4.txt b/base/applications/rapps/rapps/openoffice2.4.txt index bf39d632f31..c123688ce35 100644 --- a/base/applications/rapps/rapps/openoffice2.4.txt +++ b/base/applications/rapps/rapps/openoffice2.4.txt @@ -44,7 +44,7 @@ Size = 113.92MB [Section.0418] Description = Suita de aplicații de birotică open-source. -Size = 113Mo +Size = 113 Mo [Section.0422] URLSite = http://ua.openoffice.org/ diff --git a/base/applications/rapps/rapps/openoffice3.0.txt b/base/applications/rapps/rapps/openoffice3.0.txt index 595caf18da5..38890ddcf8e 100644 --- a/base/applications/rapps/rapps/openoffice3.0.txt +++ b/base/applications/rapps/rapps/openoffice3.0.txt @@ -41,6 +41,11 @@ URLSite = http://pl.openoffice.org/ Size = 134.33MB URLDownload = http://dfn.dl.sourceforge.net/project/openofficeorg.mirror/localized/pl/3.3.0/OOo_3.3.0_Win_x86_install_pl.exe +[Section.0419] +Description = Suita de aplicații de birotică open-source. +Size = 145,0 Mo +URLSite = http://www.openoffice.org/ro/ + [Section.0422] Description = Відкритий офісний пакет. URLSite = http://ua.openoffice.org/ diff --git a/base/applications/rapps/rapps/openttd.txt b/base/applications/rapps/rapps/openttd.txt index dc7bd11f948..35e638fe35b 100644 --- a/base/applications/rapps/rapps/openttd.txt +++ b/base/applications/rapps/rapps/openttd.txt @@ -28,7 +28,7 @@ Description = Otwarty klon silnika gry "Transport Tycoon Deluxe". Do poprawnego [Section.0418] Description = Clona (open-source a) motorului de joc "Transport Tycoon Deluxe". Este necesară o copie a jocului Transport Tycoon. -Size = 4.13Mo +Size = 4,4 Mo [Section.0422] Description = Відкритий клон двигуна гри "Transport Tycoon Deluxe". Вам потрібна копія гри Transport Tycoon. diff --git a/base/applications/rapps/rapps/opera.txt b/base/applications/rapps/rapps/opera.txt index 890e9c0956f..96060dc1764 100644 --- a/base/applications/rapps/rapps/opera.txt +++ b/base/applications/rapps/rapps/opera.txt @@ -35,7 +35,7 @@ Description = Popularna przeglądarka internetowa z wieloma zaawansowanymi funkc [Section.0418] Licence = Gratuită Description = Navigatorul popular Opera cu multe funcționalități avansate incluzând poștă electronică și un client de BitTorrent. -Size = 10.13Mo +Size = 12,0 Mo [Section.0419] Description = Популярный браузер со многими дополнительными возможностями, включающий клиентов почты и BitTorrent. diff --git a/base/applications/rapps/rapps/opera9.txt b/base/applications/rapps/rapps/opera9.txt index 295d19902f8..a7a81890691 100644 --- a/base/applications/rapps/rapps/opera9.txt +++ b/base/applications/rapps/rapps/opera9.txt @@ -29,7 +29,7 @@ Description = Popularna przeglądarka internetowa z wieloma zaawansowanymi funkc [Section.0418] Licence = Gratuită Description = Navigatorul popular Opera cu multe funcționalități avansate incluzând poștă electronică și un client de BitTorrent. -Size = 7.21Mo +Size = 7,21 Mo [Section.0419] Description = Популярный браузер со многими дополнительными возможностями, включающий клиентов почты и BitTorrent. diff --git a/base/applications/rapps/rapps/putty.txt b/base/applications/rapps/rapps/putty.txt index 1b40304f0ad..6602b019557 100644 --- a/base/applications/rapps/rapps/putty.txt +++ b/base/applications/rapps/rapps/putty.txt @@ -31,7 +31,7 @@ Description = Darmowy klient obsługujący protokoły SSH, Telnet, rlogin oraz b [Section.0418] Description = Un client gratuit de SSH, Telnet, rlogin, and TCP brut. -Size = 1.76Mo +Size = 1,76 Mo [Section.0422] Description = Безплатний SSH, Telnet, rlogin та raw TCP клієнт. diff --git a/base/applications/rapps/rapps/python.txt b/base/applications/rapps/rapps/python.txt index d944c7b0774..e8755e3e6fe 100644 --- a/base/applications/rapps/rapps/python.txt +++ b/base/applications/rapps/rapps/python.txt @@ -28,7 +28,7 @@ Description = Potęży i dynamiczny język programowania. [Section.0418] Description = Un limbaj de programare dinamic și puternic. -Size = 15.23Mo +Size = 15,1 Mo [Section.0422] Description = Дуже потужна динамічна мова програмування. diff --git a/base/applications/rapps/rapps/python3.txt b/base/applications/rapps/rapps/python3.txt index 186cfa8973a..5ca6536c98a 100644 --- a/base/applications/rapps/rapps/python3.txt +++ b/base/applications/rapps/rapps/python3.txt @@ -28,7 +28,7 @@ Description = Potęży i dynamiczny język programowania. [Section.0418] Description = Un limbaj de programare dinamic și puternic. -Size = 17.2Mo +Size = 17,0 Mo [Section.0422] Description = Дуже потужна динамічна мова програмування. diff --git a/base/applications/rapps/rapps/remood.txt b/base/applications/rapps/rapps/remood.txt index c258195c2d2..5bdfda97fe6 100644 --- a/base/applications/rapps/rapps/remood.txt +++ b/base/applications/rapps/rapps/remood.txt @@ -28,7 +28,7 @@ Description = Źródłowy port Doom. Jego celem jest zapewnienie rozrywki znanej [Section.0418] Description = ReMooD este o portare a codului Doom Legacy. Scopul e de a oferi clasica experiență cu noi funcționalități și o mai bună stabilitate. -Size = 1.15Mo +Size = 1,15 Mo [Section.0422] Description = ReMooD э Портом вихідних кодів Doom Legacy. Його метою є додати нові можливості та стабільність до досвіду класичного Legacy. diff --git a/base/applications/rapps/rapps/rosbe.txt b/base/applications/rapps/rapps/rosbe.txt index f36b537ae3d..526e43e97db 100644 --- a/base/applications/rapps/rapps/rosbe.txt +++ b/base/applications/rapps/rapps/rosbe.txt @@ -34,7 +34,7 @@ Description = Pozwala zbudować obraz płyty ReactOS ze źródeł. Więcej infor [Section.0418] Description = Permite compilarea surselor ReactOS. Pentru instrucțiuni, consultați wiki ReactOS. -Size = 17.8Mo +Size = 17,8 Mo [Section.0422] Description = Дозволяє зібрати ReactOS з вихідних кодів. За детальною інформацією дивіться в ReactOS Вікі. diff --git a/base/applications/rapps/rapps/rosbeamd64.txt b/base/applications/rapps/rapps/rosbeamd64.txt index 2c45df962a9..7a84fb9dfe6 100644 --- a/base/applications/rapps/rapps/rosbeamd64.txt +++ b/base/applications/rapps/rapps/rosbeamd64.txt @@ -31,7 +31,7 @@ Description = Pozwala zbudować obraz płyty ReactOS AMD64 ze źródeł. Więcej [Section.0418] Description = Permite compilarea surselor ReactOS pentru AMD64. Pentru instrucțiuni, consultați wiki ReactOS. -Size = 15.83Mo +Size = 15,83 Mo [Section.0422] Description = Дозволяє зібрати ReactOS AMD64 з вихідних кодів. За детальною інформацією дивіться в ReactOS Вікі. diff --git a/base/applications/rapps/rapps/rosbearm.txt b/base/applications/rapps/rapps/rosbearm.txt index 8b2026940a4..bf2dd1fe69f 100644 --- a/base/applications/rapps/rapps/rosbearm.txt +++ b/base/applications/rapps/rapps/rosbearm.txt @@ -28,7 +28,7 @@ Description = Pozwala zbudować obraz płyty ReactOS ARM ze źródeł. Więcej i [Section.0418] Description = Permite compilarea surselor ReactOS pentru ARM. Pentru instrucțiuni, consultați wiki ReactOS. -Size = 11.15Mo +Size = 11,15 Mo [Section.0422] Description = Дозволяє зібрати ReactOS ARM з вихідних кодів. За детальною інформацією дивіться в ReactOS Вікі. diff --git a/base/applications/rapps/rapps/sambatng.txt b/base/applications/rapps/rapps/sambatng.txt index 98723270f99..5617967198d 100644 --- a/base/applications/rapps/rapps/sambatng.txt +++ b/base/applications/rapps/rapps/sambatng.txt @@ -28,7 +28,7 @@ Description = Narzędzie pozwalające na dostęp z poziomu ReactOSa do współdz [Section.0418] Description = Acest instrument permite accesarea în ReactOS a dosarelor/imprimantelor partajate din Windows. -Size = 2.13Mo +Size = 2,13 Mo [Section.0422] Description = Цей інструмент дозволяє отримати доступ до спільних тек/принтерів Windows з ReactOSа. diff --git a/base/applications/rapps/rapps/sbforvmware.txt b/base/applications/rapps/rapps/sbforvmware.txt index 396b6886d4e..801f4db69e5 100644 --- a/base/applications/rapps/rapps/sbforvmware.txt +++ b/base/applications/rapps/rapps/sbforvmware.txt @@ -41,9 +41,11 @@ Licence = Nieznana Description = Rozpakuj zawartość w folderze "ReactOS" i dwukrotnie zrestartuj system. [Section.0418] +Name = Modul pilot SoundBlaster pentru VMWare Licence = Nespecificată Description = Dezarhivați în dosarul „ReactOS” apoi reporniți ReactOS de două ori. -Size = 2.22Mo +Size = 2,22 Mo +URLSite = Nespecificat [Section.0419] Name = Драйвер SoundBlaster для VMWare diff --git a/base/applications/rapps/rapps/scite.txt b/base/applications/rapps/rapps/scite.txt index df366ac0d4f..6a5ed5d79e8 100644 --- a/base/applications/rapps/rapps/scite.txt +++ b/base/applications/rapps/rapps/scite.txt @@ -29,7 +29,7 @@ Description = SciTE to edytor tekstu bazowany na SCIntilla. Oryginalnie stworzon [Section.0418] Licence = 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 = 677ko +Size = 683 ko [Section.0422] Description = Текстовий редактор на основі SCIntilla. Був зібраний як презентація Scintilla, але виріс до редактора загального користування з засобами збирання та запуску програм. diff --git a/base/applications/rapps/rapps/scummvm.txt b/base/applications/rapps/rapps/scummvm.txt index ede71533ca1..8e3d6f70293 100644 --- a/base/applications/rapps/rapps/scummvm.txt +++ b/base/applications/rapps/rapps/scummvm.txt @@ -31,7 +31,7 @@ Description = Program pozwalający uruchomić stare gry przygodowe (Sam and Max, [Section.0418] Description = Motor de execuție pentru jocuri SCUMM. -Size = 5.28Mo +Size = 5,28 Mo [Section.0422] Description = Дозволить грати Sam and Max, Day of the Tentacle та інші класичні ігри в ReactOS. diff --git a/base/applications/rapps/rapps/sdl_mixer.txt b/base/applications/rapps/rapps/sdl_mixer.txt index d8afc02800e..b05951aa624 100644 --- a/base/applications/rapps/rapps/sdl_mixer.txt +++ b/base/applications/rapps/rapps/sdl_mixer.txt @@ -34,7 +34,7 @@ Description = Biblioteka wymagana przez niektóre gry (zwłaszcza te o otwartym [Section.0418] Description = Necesar pentru execuția unor jocuri (open-source). Dezarhivați cu 7-Zip sau cu un utilitar asemănător. -Size = 548.02ko +Size = 548,02 ko [Section.0422] Description = Необхідний для роботи декотрих відкритих ігор. Вам потрібен 7-Zip або подібна утиліта щоб розпакувати його. diff --git a/base/applications/rapps/rapps/sdl_runtime.txt b/base/applications/rapps/rapps/sdl_runtime.txt index b10a063bd40..4a19a39be64 100644 --- a/base/applications/rapps/rapps/sdl_runtime.txt +++ b/base/applications/rapps/rapps/sdl_runtime.txt @@ -35,7 +35,7 @@ Description = Wymagana przez wiele gier (głównie o otwartym źródle). Do jej [Section.0418] Description = Necesar pentru execuția multor jocuri (open-source). Dezarhivați cu 7-Zip sau cu un utilitar asemănător. -Size = 136.67ko +Size = 136,67 ko [Section.0422] Name = Бібліотека Simple Direct Media Layer (SDL) diff --git a/base/applications/rapps/rapps/smplayer.txt b/base/applications/rapps/rapps/smplayer.txt index d7d8804ac50..23081087b78 100644 --- a/base/applications/rapps/rapps/smplayer.txt +++ b/base/applications/rapps/rapps/smplayer.txt @@ -31,7 +31,7 @@ Description = Graficzna nakładka na MPlayer, otwarty odtwarzacz filmów. [Section.0418] Description = Lector multimedia (interfață pentru MPlayer). -Size = 15.1Mo +Size = 15,7 Mo URLSite = http://smplayer.sourceforge.net/index.php?tr_lang=ro [Section.0422] diff --git a/base/applications/rapps/rapps/steam.txt b/base/applications/rapps/rapps/steam.txt index 0b352821fbc..7cb06f17544 100644 --- a/base/applications/rapps/rapps/steam.txt +++ b/base/applications/rapps/rapps/steam.txt @@ -29,7 +29,7 @@ Description = STEAM - platforma, którą używa obecnie wiele gier. [Section.0418] Licence = Gratuită Description = Platforma de joc STEAM, utilizată de multe jocuri în zilele de astăzi. -Size = 1.53Mo +Size = 1,53 Mo URLSite = http://store.steampowered.com/?l=romanian [Section.0422] diff --git a/base/applications/rapps/rapps/sumatrapdf.txt b/base/applications/rapps/rapps/sumatrapdf.txt index 597d37cd1e4..d1c1465a9a9 100644 --- a/base/applications/rapps/rapps/sumatrapdf.txt +++ b/base/applications/rapps/rapps/sumatrapdf.txt @@ -31,7 +31,7 @@ Description = Sumatra PDF to mały, darmowy, otwarty czytnik PDF. [Section.0418] Description = Lector PDF - ușor, gratuit (open-source), și portabil. -Size = 4.48Mo +Size = 4,2 Mo URLSite = http://blog.kowalczyk.info/software/sumatrapdf/free-pdf-reader-ro.html [Section.0813] diff --git a/base/applications/rapps/rapps/superfinder.txt b/base/applications/rapps/rapps/superfinder.txt index 9730575d236..ff57b02d92c 100644 --- a/base/applications/rapps/rapps/superfinder.txt +++ b/base/applications/rapps/rapps/superfinder.txt @@ -29,7 +29,7 @@ Description = Szybka i bogata w opcje aplikacja szukająca. [Section.0418] Licence = Gratuită Description = Aplicație rapidă de căutări complexe de text. -Size = 4.94Mo +Size = 4,94 Mo [Section.0422] Description = Швидка та потужна програма пошуку. diff --git a/base/applications/rapps/rapps/tahoma.txt b/base/applications/rapps/rapps/tahoma.txt index 05c88e016ab..8ba11eb1170 100644 --- a/base/applications/rapps/rapps/tahoma.txt +++ b/base/applications/rapps/rapps/tahoma.txt @@ -36,7 +36,7 @@ Description = Pakiet Czcionki Tahoma wymagany przez niektóre programy (np. Stea [Section.0418] Licence = Necunoscută Description = Pachetul Tahoma Font, necesar unor aplicații (Steam). Conține: Tahoma.ttf, Tahomabd.ttf. -Size = 305.12ko +Size = 305,12 ko [Section.0422] Licence = Невідома diff --git a/base/applications/rapps/rapps/thunderbird.txt b/base/applications/rapps/rapps/thunderbird.txt index 92838650a34..7a94426bedb 100644 --- a/base/applications/rapps/rapps/thunderbird.txt +++ b/base/applications/rapps/rapps/thunderbird.txt @@ -33,6 +33,7 @@ URLSite = http://www.mozilla-europe.org/pl/products/thunderbird/ [Section.0418] Description = Cel mai popular și unul dintre cele mai bune clientele gratuite de poștă electronică. +Size = 9,06 Mo URLSite = http://www.mozilla-europe.org/ro/products/thunderbird/ [Section.0419] diff --git a/base/applications/rapps/rapps/thunderbird5.txt b/base/applications/rapps/rapps/thunderbird5.txt index c3df57d03ec..0a8255f8eb5 100644 --- a/base/applications/rapps/rapps/thunderbird5.txt +++ b/base/applications/rapps/rapps/thunderbird5.txt @@ -43,7 +43,7 @@ URLDownload = http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/1 [Section.0418] Description = Cel mai popular și unul dintre cele mai bune clientele gratuite de poștă electronică. -Size = 18.0Mo +Size = 18,0 Mo URLSite = http://www.mozilla-europe.org/ro/products/thunderbird/ URLDownload = http://releases.mozilla.org/pub/mozilla.org/thunderbird/releases/17.0/win32/ro/Thunderbird%20Setup%2017.0.exe diff --git a/base/applications/rapps/rapps/tileworld.txt b/base/applications/rapps/rapps/tileworld.txt index ed4f32de672..7c0955c2025 100644 --- a/base/applications/rapps/rapps/tileworld.txt +++ b/base/applications/rapps/rapps/tileworld.txt @@ -28,7 +28,7 @@ Description = Udany klon gry Chip's Challenge z Atari Lynx. Zawiera darmowy zest [Section.0418] Description = Clonă a Chip's Challenge, creată inițial pentru Atari Lynx. Include pachetul gratuit CCLP2 Graphics, deci nu este necesar Originalul cu drepturi de autor. -Size = 1.16Mo +Size = 1,16 Mo [Section.0422] Description = Чудовий клон гри Chip's Challenge для Atari Lynx. Включено безплатний графічний пакет CCLP2, тому вам не потрібен оригінальний. diff --git a/base/applications/rapps/rapps/totalcommander.txt b/base/applications/rapps/rapps/totalcommander.txt index 2da51ff924e..04534d8f596 100644 --- a/base/applications/rapps/rapps/totalcommander.txt +++ b/base/applications/rapps/rapps/totalcommander.txt @@ -14,6 +14,10 @@ CDPath = none [Section.0413] Description = Total Commander is een bestandsbeheerder met twee panelen zij aan zij. +[Section.0418] +Description = Total Commander este un gestionar de fișiere după modelul «două paneluri alăturate». +Size = 3,2 Mo + [Section.0813] Description = Total Commander is een bestandsbeheerder met twee panelen zij aan zij. diff --git a/base/applications/rapps/rapps/tuxpaint.txt b/base/applications/rapps/rapps/tuxpaint.txt index 63522219229..1765a63208f 100644 --- a/base/applications/rapps/rapps/tuxpaint.txt +++ b/base/applications/rapps/rapps/tuxpaint.txt @@ -31,7 +31,7 @@ Description = Otwarty program graficzny przeznaczony głównie dla dzieci. [Section.0418] Description = Un editor grafic bitmap, adresat copiilor. -Size = 10.42Mo +Size = 10,42 Mo [Section.0422] Description = Відкритий графічний редактор для малих дітей. diff --git a/base/applications/rapps/rapps/ultravnc.txt b/base/applications/rapps/rapps/ultravnc.txt index 9121c28ecb5..7749a5ff8ec 100644 --- a/base/applications/rapps/rapps/ultravnc.txt +++ b/base/applications/rapps/rapps/ultravnc.txt @@ -25,7 +25,7 @@ Description = Otwarty klient/serwer VNC. [Section.0418] Description = Client/server VNC (open-source). -Size = 2.19Mo +Size = 2,19 Mo [Section.0422] Description = Відкритий VNC клієнт/сервер. diff --git a/base/applications/rapps/rapps/utorrent.txt b/base/applications/rapps/rapps/utorrent.txt index 2c40d85d54e..36f0225c13f 100644 --- a/base/applications/rapps/rapps/utorrent.txt +++ b/base/applications/rapps/rapps/utorrent.txt @@ -35,7 +35,7 @@ Description = Mały i szybki klient BitTorrent. [Section.0418] Licence = Gratuită pentru uz necomercial Description = Client BitTorrent, mic și rapid. -Size = 720.87ko +Size = 720,87 ko [Section.0419] Licence = Бесплатная для некоммерческого использования diff --git a/base/applications/rapps/rapps/vb5run.txt b/base/applications/rapps/rapps/vb5run.txt index 47ee0469d85..a9d9b9dbd62 100644 --- a/base/applications/rapps/rapps/vb5run.txt +++ b/base/applications/rapps/rapps/vb5run.txt @@ -34,7 +34,7 @@ Description = Biblioteki uruchomieniowe Visual Basic 5. [Section.0418] Licence = Necunoscută Description = Visual Basic 5 Runtime. Conține: advpack.dll, asycfilt.dll, comcat.dll, msvbvm50.dll, oleaut32.dll, olepro32.dll. -Size = 969.59ko +Size = 969,59 ko [Section.0422] Licence = Невідома diff --git a/base/applications/rapps/rapps/vb6run.txt b/base/applications/rapps/rapps/vb6run.txt index d610d6862f2..8926820ef3f 100644 --- a/base/applications/rapps/rapps/vb6run.txt +++ b/base/applications/rapps/rapps/vb6run.txt @@ -34,7 +34,7 @@ Description = Biblioteki uruchomieniowe Visual Basic 6. [Section.0418] Licence = Necunoscută Description = Visual Basic 6 Runtime. Conține: advpack.dll, asycfilt.dll, comcat.dll, msvbvm60.dll, oleaut32.dll, olepro32.dll. -Size = 1.02Mo +Size = 1,02 Mo [Section.0422] Licence = Невідома diff --git a/base/applications/rapps/rapps/vc2005sp1run.txt b/base/applications/rapps/rapps/vc2005sp1run.txt index afb02cbb053..384b46bf34b 100644 --- a/base/applications/rapps/rapps/vc2005sp1run.txt +++ b/base/applications/rapps/rapps/vc2005sp1run.txt @@ -34,7 +34,7 @@ Description = Biblioteki uruchomieniowe Visual Studio 2005 SP1. [Section.0418] Licence = Necunoscută Description = 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.6Mo +Size = 2,6 Mo [Section.0422] Licence = Невідома diff --git a/base/applications/rapps/rapps/vc2008sp1run.txt b/base/applications/rapps/rapps/vc2008sp1run.txt index 14e1a71b5fd..c7665984f08 100644 --- a/base/applications/rapps/rapps/vc2008sp1run.txt +++ b/base/applications/rapps/rapps/vc2008sp1run.txt @@ -34,7 +34,7 @@ Description = Biblioteki uruchomieniowe Visual Studio 2008 SP1. [Section.0418] Licence = Necunoscută Description = 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.02Mo +Size = 4,02 Mo [Section.0422] Licence = Невідома diff --git a/base/applications/rapps/rapps/vc6run.txt b/base/applications/rapps/rapps/vc6run.txt index 8394062092a..cc07461558f 100644 --- a/base/applications/rapps/rapps/vc6run.txt +++ b/base/applications/rapps/rapps/vc6run.txt @@ -34,7 +34,7 @@ Description = Biblioteki uruchomieniowe Visual Studio 6. [Section.0418] Licence = Necunoscută Description = 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.75Mo +Size = 1,75 Mo [Section.0422] Licence = Невідома diff --git a/base/applications/rapps/rapps/vlc.txt b/base/applications/rapps/rapps/vlc.txt index 21cdb4e8e30..33564bbaee4 100644 --- a/base/applications/rapps/rapps/vlc.txt +++ b/base/applications/rapps/rapps/vlc.txt @@ -31,7 +31,7 @@ Description = Odtwarzacz multimediów. [Section.0418] Description = Lector multimedia. -Size = 21.1Mo +Size = 21,6 Mo [Section.0419] Description = Мультимедийный проигрыватель. diff --git a/base/applications/rapps/rapps/winboard.txt b/base/applications/rapps/rapps/winboard.txt index c49890bb469..438b5c2dbdb 100644 --- a/base/applications/rapps/rapps/winboard.txt +++ b/base/applications/rapps/rapps/winboard.txt @@ -28,7 +28,7 @@ Description = Graficzna szachownica dla systemu Windows/ReactOS, która może s [Section.0418] Description = WinBoard este o tablă de șah grafică pentru Windows/ReactOS ce poate servi ca interfață pentru GNU Chess, Crafty, sau alte motoare de șah, pentru servere de șah din Internet, sau pentru corespondență poștală de șah. -Size = 5.93Mo +Size = 5,93 Mo [Section.0422] Description = Графічна шахматна дошка для Windows/ReactOS, що може слугувати графічним інтерфейсом для GNU Chess, Crafty, та інших шахматних двигунів, для серверів інтернет-шахмат та для шахматної переписки по е-мейл. diff --git a/base/applications/rapps/rapps/wme9.txt b/base/applications/rapps/rapps/wme9.txt index f8045510c22..b7c9f5c4775 100644 --- a/base/applications/rapps/rapps/wme9.txt +++ b/base/applications/rapps/rapps/wme9.txt @@ -28,7 +28,7 @@ Licence = Nieznana [Section.0418] Licence = Necunoscută -Size = 9.46Mo +Size = 9,46 Mo [Section.041b] Description = Neznáma diff --git a/base/applications/regedit/lang/ro-RO.rc b/base/applications/regedit/lang/ro-RO.rc index d071b61b125..6e204b63aa7 100644 --- a/base/applications/regedit/lang/ro-RO.rc +++ b/base/applications/regedit/lang/ro-RO.rc @@ -366,8 +366,8 @@ BEGIN IDS_ERR_DELETEVALUE "Nu s-a reușit ștergerea tuturor valorilor specificate!" IDS_ERR_RENVAL_CAPTION "Eroare la redenumirea de valori" IDS_ERR_RENVAL_TOEMPTY "Nu se poate redenumi %s. Numele valorii specificate este gol. Încercați introducerea unui alt nume." - IDS_QUERY_IMPORT_HIVE_CAPTION "Confirm Key Restoration" - IDS_QUERY_IMPORT_HIVE_MSG "A key will be restored on top of the currently selected key.\nAll values and subkeys of this key will be deleted.\nDo you want to continue the operation?" + IDS_QUERY_IMPORT_HIVE_CAPTION "Confirmați restaurarea cheii" + IDS_QUERY_IMPORT_HIVE_MSG "O cheie va fi restaurată peste cheia curent selectată.\nToate valorile și subcheile acestei chei vor fi eliminate.\nConfirmați continuarea operației?" IDS_NEW_KEY "Cheia nouă #%d" IDS_NEW_VALUE "Valoarea nouă #%d" END @@ -391,7 +391,7 @@ BEGIN IDS_FLT_REGFILE "Fișier registru" IDS_FLT_REGFILES "Fișiere registru (*.reg)" IDS_FLT_REGFILES_FLT "*.reg" - IDS_FLT_HIVFILES "Registry Hive Files (*.*)" + IDS_FLT_HIVFILES "Fișiere registru (*.*)" IDS_FLT_HIVFILES_FLT "*.*" IDS_FLT_REGEDIT4 "Fișiere registru Win9x/NT4 (REGEDIT4) (*.reg)" IDS_FLT_REGEDIT4_FLT "*.reg" diff --git a/base/shell/cmd/lang/ja-JP.rc b/base/shell/cmd/lang/ja-JP.rc index e6f45241884..9caea54fb9a 100644 --- a/base/shell/cmd/lang/ja-JP.rc +++ b/base/shell/cmd/lang/ja-JP.rc @@ -14,298 +14,298 @@ assoc .ext (print specific association)\n\ assoc .ext= (remove specific association)\n\ assoc .ext=FileType (add new association)\n" -STRING_ATTRIB_HELP, "ƒtƒ@ƒCƒ‹‘®«‚ð•\\ަ‚Ü‚½‚͕ύX‚µ‚Ü‚·B\n\n\ -ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] [ƒtƒ@ƒCƒ‹] ...\n\ +STRING_ATTRIB_HELP, "ファイル属性を表示または変更します。\n\n\ +ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] [ファイル] ...\n\ [/S [/D]]\n\n\ - + ‘®«‚ðÝ’肵‚Ü‚·B\n\ - - ‘®«‚ð‰ðœ‚µ‚Ü‚·B\n\ - R “ǂ݂Ƃèê—p‘®«B\n\ - A ƒA[ƒJƒCƒu‘®«B\n\ - S ƒVƒXƒeƒ€ ƒtƒ@ƒCƒ‹‘®«B\n\ - H ‰B‚µƒtƒ@ƒCƒ‹‘®«B\n\ - /S Œ»Ý‚̃tƒHƒ‹ƒ_‚Æ‚·‚ׂẴTƒuƒtƒHƒ‹ƒ_‚̈ê’v‚·‚éƒtƒ@ƒCƒ‹‚ð\n\ - ˆ—‚µ‚Ü‚·B\n\ - /D ƒtƒHƒ‹ƒ_‚àˆ—‚µ‚Ü‚·B\n\n\ -ƒpƒ‰ƒ[ƒ^‚ðŽw’肵‚È‚¢‚Å ATTRIB ‚Æ“ü—Í‚·‚邯A‚·‚ׂẴtƒ@ƒCƒ‹‚Ì‘®«‚ð•\\ަ‚µ‚Ü‚·B\n" + + 属性を設定します。\n\ + - 属性を解除します。\n\ + R 読みとり専用属性。\n\ + A アーカイブ属性。\n\ + S システム ファイル属性。\n\ + H 隠しファイル属性。\n\ + /S 現在のフォルダとすべてのサブフォルダの一致するファイルを\n\ + 処理します。\n\ + /D フォルダも処理します。\n\n\ +パラメータを指定しないで ATTRIB と入力すると、すべてのファイルの属性を表示します。\n" -STRING_ALIAS_HELP, "ƒGƒCƒŠƒAƒX‚̐ݒè‚â‰ðœ‚ð‚µ‚½‚èAƒGƒCƒŠƒAƒX‚ð•\\ަ‚µ‚½‚肵‚Ü‚·B\n\n\ -ALIAS [ƒGƒCƒŠƒAƒX=[ƒRƒ}ƒ“ƒh]]\n\n\ - ƒGƒCƒŠƒAƒX ƒGƒCƒŠƒAƒX‚Æ‚µ‚¯‚é–¼‘OB\n\ - ƒRƒ}ƒ“ƒh ƒGƒCƒŠƒAƒX‚Æ‚µ‚Đݒ肷‚é•¶Žš—ñB\n\n\ -‚·‚ׂẴGƒCƒŠƒAƒX‚ðˆê——•\\ަ‚·‚é‚É‚Í:\n\ +STRING_ALIAS_HELP, "エイリアスの設定や解除をしたり、エイリアスを表示したりします。\n\n\ +ALIAS [エイリアス=[コマンド]]\n\n\ + エイリアス エイリアスとしてつける名前。\n\ + コマンド エイリアスとして設定する文字列。\n\n\ +すべてのエイリアスを一覧表示するには:\n\ ALIAS\n\n\ -V‚½‚ɃGƒCƒŠƒAƒX‚ðÝ’肵‚½‚èAŠù‘¶‚̃GƒCƒŠƒAƒX‚ð’u‚«Š·‚¦‚é‚É‚Í:\n\ +新たにエイリアスを設定したり、既存のエイリアスを置き換えるには:\n\ ALIAS da=dir a:\n\n\ -ƒGƒCƒŠƒAƒX‚ÌƒŠƒXƒg‚©‚çƒGƒCƒŠƒAƒX‚ðŽæ‚èœ‚­‚É‚Í:\n\ +エイリアスのリストからエイリアスを取り除くには:\n\ ALIAS da=" -STRING_BEEP_HELP, "ƒXƒs[ƒJ‚©‚çƒr[ƒv‰¹‚ð–‚炵‚Ü‚·B\n\nBEEP\n" +STRING_BEEP_HELP, "スピーカからビープ音を鳴らします。\n\nBEEP\n" -STRING_CALL_HELP, "ƒoƒbƒ` ƒvƒƒOƒ‰ƒ€‚ð•ʂ̃oƒbƒ` ƒvƒƒOƒ‰ƒ€‚©‚çŒÄ‚яo‚µ‚Ü‚·B\n\n\ -CALL [ƒhƒ‰ƒCƒu:][ƒpƒX]ƒtƒ@ƒCƒ‹–¼ [ƒoƒbƒ`ƒpƒ‰ƒ[ƒ^]\n\n\ - ƒoƒbƒ`ƒpƒ‰ƒ[ƒ^ ƒoƒbƒ` ƒvƒƒOƒ‰ƒ€‚Å•K—v‚ȃRƒ}ƒ“ƒh ƒ‰ƒCƒ“î•ñ‚ð\n\ - Žw’肵‚Ü‚·B" +STRING_CALL_HELP, "バッチ プログラムを別のバッチ プログラムから呼び出します。\n\n\ +CALL [ドライブ:][パス]ファイル名 [バッチパラメータ]\n\n\ + バッチパラメータ バッチ プログラムで必要なコマンド ライン情報を\n\ + 指定します。" -STRING_CD_HELP, "Œ»Ý‚̃fƒBƒŒƒNƒgƒŠ‚ð•ύX‚µ‚½‚èAƒfƒBƒŒƒNƒgƒŠ–¼‚ð•\\ަ‚µ‚½‚肵‚Ü‚·B\n\n\ -CHDIR [/D][ƒhƒ‰ƒCƒu:][ƒpƒX]\n\ +STRING_CD_HELP, "現在のディレクトリを変更したり、ディレクトリ名を表示したりします。\n\n\ +CHDIR [/D][ドライブ:][パス]\n\ CHDIR[..|.]\n\ -CD [/D][ƒhƒ‰ƒCƒu:]ƒpƒX]\n\ +CD [/D][ドライブ:]パス]\n\ CD[..|.]\n\n\ - .. eƒfƒBƒŒƒNƒgƒŠ\n\ - . Œ»Ý‚̃fƒBƒŒƒNƒgƒŠ\n\ - /D Œ»Ý‚̃hƒ‰ƒCƒu‚ƃfƒBƒŒƒNƒgƒŠ‚Ì—¼•û‚ð•ύX‚µ‚Ü‚·B\n\n\ -CD ƒhƒ‰ƒCƒu: ‚Æ“ü—Í‚·‚邯Žw’肳‚ꂽƒhƒ‰ƒCƒu‚ÌŒ»Ý‚̃fƒBƒŒƒNƒgƒŠ‚ª•\\ަ‚³‚ê‚Ü‚·B\n\ -ƒpƒ‰ƒ[ƒ^‚ðŽw’肵‚È‚¢‚Å CD ‚Æ“ü—Í‚·‚邯AŒ»Ý‚̃hƒ‰ƒCƒu‚ƃfƒBƒŒƒNƒgƒŠ‚ª•\\ަ‚³‚ê‚Ü‚·B\n" + .. 親ディレクトリ\n\ + . 現在のディレクトリ\n\ + /D 現在のドライブとディレクトリの両方を変更します。\n\n\ +CD ドライブ: と入力すると指定されたドライブの現在のディレクトリが表示されます。\n\ +パラメータを指定しないで CD と入力すると、現在のドライブとディレクトリが表示されます。\n" -STRING_CHCP_HELP, "Œ»Ý‚̃R[ƒh ƒy[ƒW”ԍ†‚ð•\\ަ‚Ü‚½‚͐ݒ肵‚Ü‚·B\n\n\ +STRING_CHCP_HELP, "現在のコード ページ番号を表示または設定します。\n\n\ CHCP [nnn]\n\n\ - nnn ƒR[ƒh ƒy[ƒW”ԍ†‚ðŽw’肵‚Ü‚·B\n\n\ -Œ»Ý‚̃R[ƒh ƒy[ƒW”ԍ†‚ð•\\ަ‚·‚邯‚«‚́Aƒpƒ‰ƒ[ƒ^‚ðŽw’肹‚¸‚É CHCP ‚Æ“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B\n" + nnn コード ページ番号を指定します。\n\n\ +現在のコード ページ番号を表示するときは、パラメータを指定せずに CHCP と入力してください。\n" -STRING_CHOICE_HELP, "ƒ†[ƒU[‚ª‘I‘ðŽˆ‚©‚çˆê‚‚ð‘I‘ð‚·‚é‚Ì‚ð‘Ò‚¿‚Ü‚·B\n\n\ -CHOICE [/C[:]‘I‘ðŽˆ][/N][/S][/T[:]c,nn][•¶Žš—ñ]\n\n\ - /C[:]‘I‘ðŽˆ ‹–‚³‚ê‚éƒL[“ü—Í‚ðŽw’肵‚Ü‚·BƒfƒtƒHƒ‹ƒg‚Í YN ‚Å‚·B\n\ - /N ƒvƒƒ“ƒvƒg‚Ì•¶Žš—ñ‚̍Ōã‚ɁA‘I‘ðŽˆ‚Æ ? ‚ð•\\ަ‚µ‚Ü‚¹‚ñB\n\ - /S ƒL[“ü—Í‚Ì‘å•¶ŽšE¬•¶Žš‚ð‹æ•Ê‚µ‚Ü‚·B\n\ - /T[:]c,nn nn •bŒo‰ß‚·‚邯ީ“®“I‚É c ‚ð‘I‘ð‚µ‚Ü‚·B\n\ - •¶Žš—ñ •\\ަ‚·‚éƒvƒƒ“ƒvƒg‚Ì•¶Žš—ñ‚Å‚·B\n\n\ -ƒ†[ƒU[‚ª‘I‘ðŽˆ‚É‚ ‚éƒL[‚ð‰Ÿ‚·‚ƁA‚»‚̃IƒtƒZƒbƒg‚ª ERRORLEVEL ‚ɃZƒbƒg‚³‚ê‚Ü‚·B\n" +STRING_CHOICE_HELP, "ユーザーが選択肢から一つを選択するのを待ちます。\n\n\ +CHOICE [/C[:]選択肢][/N][/S][/T[:]c,nn][文字列]\n\n\ + /C[:]選択肢 許されるキー入力を指定します。デフォルトは YN です。\n\ + /N プロンプトの文字列の最後に、選択肢と ? を表示しません。\n\ + /S キー入力の大文字・小文字を区別します。\n\ + /T[:]c,nn nn 秒経過すると自動的に c を選択します。\n\ + 文字列 表示するプロンプトの文字列です。\n\n\ +ユーザーが選択肢にあるキーを押すと、そのオフセットが ERRORLEVEL にセットされます。\n" -STRING_CLS_HELP, "‰æ–Ê‚ðÁ‹Ž‚µ‚Ü‚·B\n\nCLS\n" +STRING_CLS_HELP, "画面を消去します。\n\nCLS\n" -STRING_CMD_HELP1, "\n—˜—p‚Å‚«‚é“à•”ƒRƒ}ƒ“ƒh:\n" +STRING_CMD_HELP1, "\n利用できる内部コマンド:\n" -STRING_CMD_HELP2, "\n—˜—p‚Å‚«‚é‹@”\\:" +STRING_CMD_HELP2, "\n利用できる機能:" -STRING_CMD_HELP3," [ƒGƒCƒŠƒAƒX]" +STRING_CMD_HELP3," [エイリアス]" -STRING_CMD_HELP4," [ƒqƒXƒgƒŠ]" +STRING_CMD_HELP4," [ヒストリ]" -STRING_CMD_HELP5," [UNIX ƒtƒ@ƒCƒ‹–¼•⊮]" +STRING_CMD_HELP5," [UNIX ファイル名補完]" -STRING_CMD_HELP6," [ƒfƒBƒŒƒNƒgƒŠ ƒXƒ^ƒbƒN]" +STRING_CMD_HELP6," [ディレクトリ スタック]" -STRING_CMD_HELP7," [ƒŠƒ_ƒCƒŒƒNƒg‚ƃpƒCƒv]" +STRING_CMD_HELP7," [リダイレクトとパイプ]" -STRING_CMD_HELP8, "ReactOS ƒRƒ}ƒ“ƒh ƒ‰ƒCƒ“ ƒCƒ“ƒ^[ƒvƒŠƒ^‚̐V‚µ‚¢ƒCƒ“ƒXƒ^ƒ“ƒX‚ðŠJŽn‚µ‚Ü‚·B\n\n\ -CMD [/[C|K] ƒRƒ}ƒ“ƒh][/P][/Q][/T:bf]\n\n\ - /C ƒRƒ}ƒ“ƒh Žw’肳‚ꂽƒRƒ}ƒ“ƒh‚ðŽÀs‚µ‚½ŒãAI—¹‚µ‚Ü‚·B\n\ - /K ƒRƒ}ƒ“ƒh Žw’肳‚ꂽƒRƒ}ƒ“ƒh‚ðŽÀs‚µ‚Ü‚·‚ªAI—¹‚µ‚Ü‚¹‚ñB\n\ - /P CMD ‚͉i‘±“I‚É“®ì‚ð‚µAautoexec.bat ‚ðŽÀs‚µ‚Ü‚·\n\ - (I—¹‚³‚¹‚邱‚Ƃ͂ł«‚Ü‚¹‚ñ)B\n\ - /T:bf ‘OŒiF‚¨‚æ‚Ñ”wŒiF‚ðÝ’肵‚Ü‚· (Ú×‚Í COLOR /? ‚ðŽQÆ‚µ‚Ä\n\ - ‚­‚¾‚³‚¢)B\n" +STRING_CMD_HELP8, "ReactOS コマンド ライン インタープリタの新しいインスタンスを開始します。\n\n\ +CMD [/[C|K] コマンド][/P][/Q][/T:bf]\n\n\ + /C コマンド 指定されたコマンドを実行した後、終了します。\n\ + /K コマンド 指定されたコマンドを実行しますが、終了しません。\n\ + /P CMD は永続的に動作をし、autoexec.bat を実行します\n\ + (終了させることはできません)。\n\ + /T:bf 前景色および背景色を設定します \n\ + (詳細は COLOR /? を参照してください)。\n" -STRING_COLOR_HELP1, "ƒRƒ“ƒ\\[ƒ‹‚̃fƒtƒHƒ‹ƒg‚Ì‘OŒiF‚¨‚æ‚Ñ”wŒiF‚ðÝ’肵‚Ü‚·B\n\n\ -COLOR [‘®« [/-F]] \n\n\ - ‘®« ƒRƒ“ƒ\\[ƒ‹o—͂̐F‘®«‚ðŽw’肵‚Ü‚·B\n\ - /-F ƒRƒ“ƒ\\[ƒ‹‚̋󂢂Ă¢‚é‹óŠÔ‚ɂ͐F‘®«‚ð“K—p‚µ‚È‚¢B\n\n\ -F‚ÍŽŸ‚Ì 3 Ží—Þ‚Ì•û–@‚ÅŽw’è‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B\n\ -1) [F–¼] on [F–¼] (•K—v‚Ȃ͍̂ŏ‰‚Ì 3 •¶Žš‚¾‚¯‚Å‚·)\n\ -2) [10 i”] on [10 i”]\n\ -3) 2 Œ…‚Ì 16 i”\n\n\ -F–¼:\n\ -10i 16i F–¼ 10i 16i F–¼\n\ -0 0 • 8 8 ŠDF (–¾‚é‚¢•)\n\ -1 1 Â 9 9 –¾‚é‚¢Â\n\ -2 2 —Î 10 A –¾‚é‚¢—Î\n\ -3 3 …F 11 B –¾‚é‚¢…F\n\ -4 4 Ô 12 C –¾‚é‚¢Ô\n\ -5 5 އ 13 D –¾‚邢އ\n\ -6 6 ‰©F 14 E –¾‚é‚¢‰©F\n\ -7 7 ”’ 15 F ‹P‚­”’\n" +STRING_COLOR_HELP1, "コンソールのデフォルトの前景色および背景色を設定します。\n\n\ +COLOR [属性 [/-F]] \n\n\ + 属性 コンソール出力の色属性を指定します。\n\ + /-F コンソールの空いている空間には色属性を適用しない。\n\n\ +色は次の 3 種類の方法で指定することができます。\n\ +1) [色名] on [色名] (必要なのは最初の 3 文字だけです)\n\ +2) [10 進数] on [10 進数]\n\ +3) 2 桁の 16 進数\n\n\ +色名:\n\ +10進 16進 色名 10進 16進 色名\n\ +0 0 黒 8 8 灰色 (明るい黒)\n\ +1 1 青 9 9 明るい青\n\ +2 2 緑 10 A 明るい緑\n\ +3 3 水色 11 B 明るい水色\n\ +4 4 赤 12 C 明るい赤\n\ +5 5 紫 13 D 明るい紫\n\ +6 6 黄色 14 E 明るい黄色\n\ +7 7 白 15 F 輝く白\n" -STRING_COPY_HELP1, "%s ‚ðã‘‚«‚µ‚Ü‚·‚ªA‚æ‚낵‚¢‚Å‚·‚©? (Yes/No/All)? " +STRING_COPY_HELP1, "%s を上書きしますが、よろしいですか? (Yes/No/All)? " -STRING_COPY_HELP2, "1 ‚‚܂½‚Í•¡”‚̃tƒ@ƒCƒ‹‚ð•ʂ̏ꏊ‚ɃRƒs[‚µ‚Ü‚·B\n\n\ -COPY [/V][/Y|/-Y][/A|/B] ƒRƒs[Œ³ [/A|/B]\n\ - [+ ƒRƒs[Œ³ [/A|/B] [+ ...]] [ƒRƒs[æ [/A|/B]]\n\n\ - ƒRƒs[Œ³ ƒRƒs[‚·‚éƒtƒ@ƒCƒ‹ (•¡”‰Â) ‚ðŽw’肵‚Ü‚·B\n\ - /A ASCII ƒeƒLƒXƒg ƒtƒ@ƒCƒ‹‚Æ‚µ‚Ĉµ‚¢‚Ü‚·B\n\ - /B ƒoƒCƒiƒŠ ƒtƒ@ƒCƒ‹‚Æ‚µ‚Ĉµ‚¢‚Ü‚·B\n\ - ƒRƒs[æ V‚µ‚¢ƒtƒ@ƒCƒ‹‚̃fƒBƒŒƒNƒgƒŠ‚Ü‚½‚̓tƒ@ƒCƒ‹–¼ (•¡”‰Â) ‚ð\n\ - Žw’肵‚Ü‚·B\n\ - /V V‚µ‚¢ƒtƒ@ƒCƒ‹‚ª³‚µ‚­‘‚«ž‚܂ꂽ‚©ŒŸ¸‚µ‚Ü‚·B\n\ - /Y Žó‚¯‘¤‚ÌŠù‘¶‚̃tƒ@ƒCƒ‹‚ðã‘‚«‚·‚é‘O‚ÉŠm”F‚̃ƒbƒZ[ƒW‚ð\n\ - •\\ަ‚µ‚Ü‚¹‚ñB\n\ - /-Y Žó‚¯‘¤‚ÌŠù‘¶‚̃tƒ@ƒCƒ‹‚ðã‘‚«‚·‚é‘O‚ÉŠm”F‚̃ƒbƒZ[ƒW‚ð\n\ - •\\ަ‚µ‚Ü‚·B\n\n\ -TŠÂ‹«•ϐ” COPYCMD ‚ŃXƒCƒbƒ` /Y ‚ªÝ’肳‚ê‚Ä‚¢‚éê‡‚ª‚ ‚è‚Ü‚·B\n\ +STRING_COPY_HELP2, "1 つまたは複数のファイルを別の場所にコピーします。\n\n\ +COPY [/V][/Y|/-Y][/A|/B] コピー元 [/A|/B]\n\ + [+ コピー元 [/A|/B] [+ ...]] [コピー先 [/A|/B]]\n\n\ + コピー元 コピーするファイル (複数可) を指定します。\n\ + /A ASCII テキスト ファイルとして扱います。\n\ + /B バイナリ ファイルとして扱います。\n\ + コピー先 新しいファイルのディレクトリまたはファイル名 (複数可) を\n\ + 指定します。\n\ + /V 新しいファイルが正しく書き込まれたか検査します。\n\ + /Y 受け側の既存のファイルを上書きする前に確認のメッセージを\n\ + 表示しません。\n\ + /-Y 受け側の既存のファイルを上書きする前に確認のメッセージを\n\ + 表示します。\n\n\ +環境変数 COPYCMD でスイッチ /Y が設定されている場合があります。\n\ ...\n" -STRING_DATE_HELP1, "\nV‚µ‚¢“ú•t‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢ (mm%cdd%cyyyy): " +STRING_DATE_HELP1, "\n新しい日付を入力してください (mm%cdd%cyyyy): " -STRING_DATE_HELP2, "\nV‚µ‚¢“ú•t‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢ (dd%cmm%cyyyy): " +STRING_DATE_HELP2, "\n新しい日付を入力してください (dd%cmm%cyyyy): " -STRING_DATE_HELP3, "\nV‚µ‚¢“ú•t‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢ (yyyy%cmm%cdd): " +STRING_DATE_HELP3, "\n新しい日付を入力してください (yyyy%cmm%cdd): " -STRING_DATE_HELP4, "“ú•t‚ð•\\ަ‚Ü‚½‚͐ݒ肵‚Ü‚·B\n\n\ -DATE [/T][“ú•t]\n\n\ - /T “ú•t‚Ì•\\ަ‚̂ݍs‚¢‚Ü‚·B\n\n\ -ƒpƒ‰ƒ[ƒ^‚ÌŽw’肪‚È‚¢ê‡‚́AŒ»Ý‚Ì“ú•t‚ª•\\ަ‚³‚êAV‚µ‚¢“ú•t‚Ì“ü—Í‚ð\n\ -‹‚ß‚ç‚ê‚Ü‚·B•ύX‚µ‚È‚¢ê‡‚́AEnter ƒL[‚ð‰Ÿ‚µ‚Ü‚·B\n" +STRING_DATE_HELP4, "日付を表示または設定します。\n\n\ +DATE [/T][日付]\n\n\ + /T 日付の表示のみ行います。\n\n\ +パラメータの指定がない場合は、現在の日付が表示され、新しい日付の入力を\n\ +求められます。変更しない場合は、Enter キーを押します。\n" -STRING_DEL_HELP1, "1 ‚‚܂½‚Í•¡”‚̃tƒ@ƒCƒ‹‚ðíœ‚µ‚Ü‚·B\n\n\ -DEL [/N /P /T /Q /S /W /Y /Z /A[[:]‘®«]] ƒtƒ@ƒCƒ‹–¼ ...\n\ -DELETE [/N /P /T /Q /S /W /Y /Z /A[[:]‘®«]] ƒtƒ@ƒCƒ‹–¼ ...\n\ -ERASE [/N /P /T /Q /S /W /Y /Z /A[[:]‘®«]] ƒtƒ@ƒCƒ‹–¼ ...\n\n\ - ƒtƒ@ƒCƒ‹–¼\n\ - íœ‚·‚éƒtƒ@ƒCƒ‹ (•¡”‰Â) ‚ðŽw’肵‚Ü‚·B\n\n\ - /N Nothing. ‰½‚à‚µ‚Ü‚¹‚ñB\n\ - /P Prompt. Šeƒtƒ@ƒCƒ‹‚ðíœ‚·‚é‘O‚ÉŠm”F‚̃ƒbƒZ[ƒW‚ð•\\ަ‚µ‚Ü‚·B\n\ - /T Total. íœ‚³‚ꂽƒtƒ@ƒCƒ‹‚Ì‘”‚Ɖð•ú‚³‚ꂽƒfƒBƒXƒN—̈æ‚ð•\\ަ‚µ‚Ü‚·B\n\ +STRING_DEL_HELP1, "1 つまたは複数のファイルを削除します。\n\n\ +DEL [/N /P /T /Q /S /W /Y /Z /A[[:]属性]] ファイル名 ...\n\ +DELETE [/N /P /T /Q /S /W /Y /Z /A[[:]属性]] ファイル名 ...\n\ +ERASE [/N /P /T /Q /S /W /Y /Z /A[[:]属性]] ファイル名 ...\n\n\ + ファイル名\n\ + 削除するファイル (複数可) を指定します。\n\n\ + /N Nothing. 何もしません。\n\ + /P Prompt. 各ファイルを削除する前に確認のメッセージを表示します。\n\ + /T Total. 削除されたファイルの総数と解放されたディスク領域を表示します。\n\ /Q Quiet.\n\ - /W Wipe. íœ‚·‚é‘O‚ɁAƒtƒ@ƒCƒ‹‚𗐐”‚ŏ㏑‚«‚µ‚Ü‚·B\n\ - /Y Yes. ƒƒCƒ‹ƒhƒJ[ƒh‚ðŽg—p‚µ‚Ĉꊇíœ‚·‚邯‚«‚àAŠm”F‚̃ƒbƒZ[ƒW‚ð\n\ - •\\ަ‚¹‚¸‚ɍ폜‚µ‚Ü‚·B\n\ - /F “ǂ݂Ƃèê—pƒtƒ@ƒCƒ‹‚âƒVƒXƒeƒ€ ƒtƒ@ƒCƒ‹‚ð‹­§“I‚ɍ폜‚µ‚Ü‚·B\n\ - /S Žw’肳‚ꂽƒtƒ@ƒCƒ‹‚ð‚·‚×‚Ä‚ÌƒTƒuƒfƒBƒŒƒNƒgƒŠ‚©‚çíœ‚µ‚Ü‚·B\n\ - /A ‘®«‚É‚æ‚èíœ‚·‚éƒtƒ@ƒCƒ‹‚ð‘I‘ð‚µ‚Ü‚·B\n\ - ‘®«\n\ - R “ǂݎæ‚èê—p\n\ - S ƒVƒXƒeƒ€ ƒtƒ@ƒCƒ‹\n\ - A ƒA[ƒJƒCƒu\n\ - H ‰B‚µƒtƒ@ƒCƒ‹\n\ - - ‚»‚Ì‘®«ˆÈŠO\n" + /W Wipe. 削除する前に、ファイルを乱数で上書きします。\n\ + /Y Yes. ワイルドカードを使用して一括削除するときも、確認のメッセージを\n\ + 表示せずに削除します。\n\ + /F 読みとり専用ファイルやシステム ファイルを強制的に削除します。\n\ + /S 指定されたファイルをすべてのサブディレクトリから削除します。\n\ + /A 属性により削除するファイルを選択します。\n\ + 属性\n\ + R 読み取り専用\n\ + S システム ファイル\n\ + A アーカイブ\n\ + H 隠しファイル\n\ + - その属性以外\n" -STRING_DEL_HELP2, "ƒfƒBƒŒƒNƒgƒŠ‚Ì‚·‚ׂẴtƒ@ƒCƒ‹‚ªíœ‚³‚ê‚Ü‚·!\n‚æ‚낵‚¢‚Å‚·‚© (Y/N)?" -STRING_DEL_HELP3, " %lu ŒÂ‚̃tƒ@ƒCƒ‹‚ðíœ‚µ‚Ü‚µ‚½\n" -STRING_DEL_HELP4, " %lu ŒÂ‚̃tƒ@ƒCƒ‹‚ðíœ‚µ‚Ü‚µ‚½\n" +STRING_DEL_HELP2, "ディレクトリのすべてのファイルが削除されます!\nよろしいですか (Y/N)?" +STRING_DEL_HELP3, " %lu 個のファイルを削除しました\n" +STRING_DEL_HELP4, " %lu 個のファイルを削除しました\n" -STRING_DELAY_HELP, "n •bA‚Ü‚½‚Í n ƒ~ƒŠ•b‘Ò‹@‚µ‚Ü‚·B\n\ +STRING_DELAY_HELP, "n 秒、または n ミリ秒待機します。\n\ DELAY [/m]n\n\n\ - /m ’PˆÊ‚ðƒ~ƒŠ•b‚ÉŽw’肵‚Ü‚·B\n\ - Žw’肵‚È‚¢ê‡A’PˆÊ‚ɂ͕b‚ªŽg‚í‚ê‚Ü‚·B\n" + /m 単位をミリ秒に指定します。\n\ + 指定しない場合、単位には秒が使われます。\n" -STRING_DIR_HELP1, "ƒfƒBƒŒƒNƒgƒŠ’†‚̃tƒ@ƒCƒ‹‚ƃTƒuƒfƒBƒŒƒNƒgƒŠ‚ðˆê——•\\ަ‚µ‚Ü‚·B\n\n\ -DIR [ƒhƒ‰ƒCƒu:][ƒpƒX][ƒtƒ@ƒCƒ‹–¼] [/A[[:]‘®«]] [/B] [/C] [/D] [/L] [/N]\n\ - [/O[[:]ƒ\\[ƒg‡]] [/P] [/Q] [/S] [/T[[:]ƒ^ƒCƒ€ƒtƒB[ƒ‹ƒh]] [/W] [/X] [/4]\n\n\ - [ƒhƒ‰ƒCƒu:][ƒpƒX][ƒtƒ@ƒCƒ‹–¼]\n\ - ˆê——•\\ަ‚·‚éƒhƒ‰ƒCƒuAƒfƒBƒŒƒNƒgƒŠA‚Ü‚½‚̓tƒ@ƒCƒ‹‚ðŽw’肵‚Ü‚·B\n\ - /A Žw’肳‚ꂽ‘®«‚̃tƒ@ƒCƒ‹‚ð•\\ަ‚µ‚Ü‚·B\n\ - ‘®« D ƒfƒBƒŒƒNƒgƒŠ R “ǂݎæ‚èê—p\n\ - H ‰B‚µƒtƒ@ƒCƒ‹ A ƒA[ƒJƒCƒu\n\ - S ƒVƒXƒeƒ€ ƒtƒ@ƒCƒ‹ - ‚»‚Ì‘®«ˆÈŠO\n\ - /B ƒtƒ@ƒCƒ‹–¼‚݂̂ð•\\ަ‚µ‚Ü‚· (Œ©o‚µ‚â—v–ñ‚ª•t‚«‚Ü‚¹‚ñ)B\n\ - /C ƒtƒ@ƒCƒ‹ ƒTƒCƒY‚ðŒ…‹æØ‚è•\\ަ‚µ‚Ü‚·B‚±‚ê‚Í\n\ - ƒfƒtƒHƒ‹ƒg‚̐ݒè‚Å‚·B/-C ‚Æ‚·‚邯Œ…‹æØ‚è•\\ަ‚³‚ê‚Ü‚¹‚ñB\n\ - /D /W ‚Æ“¯‚¶‚Å‚·‚ªAƒtƒ@ƒCƒ‹‚ð—ñ‚Å•À‚בւ¦‚½ˆê——‚ð•\\ަ‚µ‚Ü‚·B\n\ - /L ¬•¶Žš‚Å•\\ަ‚µ‚Ü‚·B\n\ - /N ƒtƒ@ƒCƒ‹–¼‚ð‰E’[‚É•\\ަ‚·‚éV‚µ‚¢ˆê——Œ`Ž®‚ðŽg—p‚µ‚Ü‚·B\n\ - /O ƒtƒ@ƒCƒ‹‚ð•À‚בւ¦‚Ä•\\ަ‚µ‚Ü‚·B\n\ - ƒ\\[ƒg‡ N –¼‘O‡ (ƒAƒ‹ƒtƒ@ƒxƒbƒg) S ƒTƒCƒY‡ (¬‚³‚¢‚Ù‚¤‚©‚ç)\n\ - E Šg’£Žq‡ (ƒAƒ‹ƒtƒ@ƒxƒbƒg) D “úŽž‡ (ŒÃ‚¢‚Ù‚¤‚©‚ç)\n\ - G ƒOƒ‹[ƒv (ƒfƒBƒŒƒNƒgƒŠ‚©‚ç) - ~‡\n\ - /P 1 ‰æ–Ê‚²‚ƂɒâŽ~‚µ‚Ä•\\ަ‚µ‚Ü‚·B\n\ - /Q ƒtƒ@ƒCƒ‹‚ÌŠ—LŽÒ‚ð•\\ަ‚µ‚Ü‚·B\n\ - /S Žw’肳‚ꂽƒfƒBƒŒƒNƒgƒŠ‚¨‚æ‚Ñ‚»‚̃TƒuƒfƒBƒŒƒNƒgƒŠ‚Ì‚·‚ׂĂÌ\n\ - ƒtƒ@ƒCƒ‹‚ð•\\ަ‚µ‚Ü‚·B\n\ - /T ‚ǂ̃^ƒCƒ€ƒtƒB[ƒ‹ƒh‚ð•\\ަ‚·‚é‚©A‚Ü‚½‚Í•À‚בւ¦‚ÉŽg—p‚·‚é‚©‚ð\n\ - Žw’肵‚Ü‚·B\n\ - ƒ^ƒCƒ€ƒtƒB[ƒ‹ƒh C ì¬n\n\ - A ÅIƒAƒNƒZƒX\n\ - W ÅIXV\n\ - /W ƒƒCƒhˆê——Œ`Ž®‚Å•\\ަ‚µ‚Ü‚·B\n\ - /X ‚±‚̃IƒvƒVƒ‡ƒ“‚Í MS-DOS Œ`Ž® (8.3) ˆÈŠO‚̃tƒ@ƒCƒ‹–¼‚ɑ΂·‚é’Z‚¢\n\ - –¼‘O‚ð•\\ަ‚µ‚Ü‚·B’·‚¢–¼‘O‚Ì‘O‚É’Z‚¢–¼‘O‚ð•\\ަ‚·‚é“_‚ðœ‚¯‚΁A\n\ - /N ƒIƒvƒVƒ‡ƒ“‚Æ“¯‚¶‚Å‚·B’Z‚¢–¼‘O‚ª‚È‚¢ê‡‚́Aƒuƒ‰ƒ“ƒN‚É\n\ - ‚È‚è‚Ü‚·B\n\ - /4 4 ‚‚̐”Žš‚Å”N‚ð•\\ަ‚µ‚Ü‚·B\n\n\ -ŠÂ‹«•ϐ” DIRCMD ‚ɃXƒCƒbƒ`‚ðÝ’è‚Å‚«‚Ü‚·B\n\ -/-W ‚̂悤‚É - (ƒnƒCƒtƒ“) ‚ð‘O‚ɂ‚¯‚邯A‚»‚̃XƒCƒbƒ`‚Í–³Œø‚ɂȂè‚Ü‚·B\n" +STRING_DIR_HELP1, "ディレクトリ中のファイルとサブディレクトリを一覧表示します。\n\n\ +DIR [ドライブ:][パス][ファイル名] [/A[[:]属性]] [/B] [/C] [/D] [/L] [/N]\n\ + [/O[[:]ソート順]] [/P] [/Q] [/S] [/T[[:]タイムフィールド]] [/W] [/X] [/4]\n\n\ + [ドライブ:][パス][ファイル名]\n\ + 一覧表示するドライブ、ディレクトリ、またはファイルを指定します。\n\ + /A 指定された属性のファイルを表示します。\n\ + 属性 D ディレクトリ R 読み取り専用\n\ + H 隠しファイル A アーカイブ\n\ + S システム ファイル - その属性以外\n\ + /B ファイル名のみを表示します (見出しや要約が付きません)。\n\ + /C ファイル サイズを桁区切り表示します。これは\n\ + デフォルトの設定です。/-C とすると桁区切り表示されません。\n\ + /D /W と同じですが、ファイルを列で並べ替えた一覧を表示します。\n\ + /L 小文字で表示します。\n\ + /N ファイル名を右端に表示する新しい一覧形式を使用します。\n\ + /O ファイルを並べ替えて表示します。\n\ + ソート順 N 名前順 (アルファベット) S サイズ順 (小さいほうから)\n\ + E 拡張子順 (アルファベット) D 日時順 (古いほうから)\n\ + G グループ (ディレクトリから) - 降順\n\ + /P 1 画面ごとに停止して表示します。\n\ + /Q ファイルの所有者を表示します。\n\ + /S 指定されたディレクトリおよびそのサブディレクトリのすべての\n\ + ファイルを表示します。\n\ + /T どのタイムフィールドを表示するか、または並べ替えに使用するかを\n\ + 指定します。\n\ + タイムフィールド C 作成n\n\ + A 最終アクセス\n\ + W 最終更新\n\ + /W ワイド一覧形式で表示します。\n\ + /X このオプションは MS-DOS 形式 (8.3) 以外のファイル名に対する短い\n\ + 名前を表示します。長い名前の前に短い名前を表示する点を除けば、\n\ + /N オプションと同じです。短い名前がない場合は、ブランクに\n\ + なります。\n\ + /4 4 つの数字で年を表示します。\n\n\ +環境変数 DIRCMD にスイッチを設定できます。\n\ +/-W のように - (ハイフン) を前につけると、そのスイッチは無効になります。\n" -STRING_DIR_HELP2, " ƒhƒ‰ƒCƒu %c ‚̃{ƒŠƒ…[ƒ€ ƒ‰ƒxƒ‹‚Í %s ‚Å‚·\n" -STRING_DIR_HELP3, " ƒhƒ‰ƒCƒu %c ‚ɂ̓{ƒŠƒ…[ƒ€ ƒ‰ƒxƒ‹‚ª‚ ‚è‚Ü‚¹‚ñB\n" -STRING_DIR_HELP4, " ƒ{ƒŠƒ…[ƒ€ ƒVƒŠƒAƒ‹”ԍ†‚Í %04X-%04X ‚Å‚·\n" -STRING_DIR_HELP5, "\n ƒtƒ@ƒCƒ‹‚Ì‘”:\n%16i ŒÂ‚̃tƒ@ƒCƒ‹% 14s ƒoƒCƒg\n" -STRING_DIR_HELP6, "%16i ŒÂ‚̃fƒBƒŒƒNƒgƒŠ% 15s ƒoƒCƒg\n" -STRING_DIR_HELP7, "\n %s ‚̃fƒBƒŒƒNƒgƒŠ\n\n" -STRING_DIR_HELP8, "%16i ŒÂ‚̃tƒ@ƒCƒ‹% 14s ƒoƒCƒg\n" +STRING_DIR_HELP2, " ドライブ %c のボリューム ラベルは %s です\n" +STRING_DIR_HELP3, " ドライブ %c にはボリューム ラベルがありません。\n" +STRING_DIR_HELP4, " ボリューム シリアル番号は %04X-%04X です\n" +STRING_DIR_HELP5, "\n ファイルの総数:\n%16i 個のファイル% 14s バイト\n" +STRING_DIR_HELP6, "%16i 個のディレクトリ% 15s バイト\n" +STRING_DIR_HELP7, "\n %s のディレクトリ\n\n" +STRING_DIR_HELP8, "%16i 個のファイル% 14s バイト\n" -STRING_DIRSTACK_HELP1, "POPD ƒRƒ}ƒ“ƒh‚ÅŽg—p‚·‚邽‚߂Ɍ»Ý‚̃fƒBƒŒƒNƒgƒŠ‚ð•Û‘¶‚µA\n\ -Žw’肵‚½ƒfƒBƒŒƒNƒgƒŠ‚ɕύX‚µ‚Ü‚·B\n\n\ -PUSHD [ƒpƒX | ..]\n\n\ - ƒpƒX Œ»Ý‚̃fƒBƒŒƒNƒgƒŠ‚Æ‚µ‚Đݒ肷‚éƒfƒBƒŒƒNƒgƒŠ‚ðŽw’肵‚Ü‚·B\n" +STRING_DIRSTACK_HELP1, "POPD コマンドで使用するために現在のディレクトリを保存し、\n\ +指定したディレクトリに変更します。\n\n\ +PUSHD [パス | ..]\n\n\ + パス 現在のディレクトリとして設定するディレクトリを指定します。\n" -STRING_DIRSTACK_HELP2, "PUSHD ƒRƒ}ƒ“ƒh‚Å‹L‰¯‚³‚ꂽƒfƒBƒŒƒNƒgƒŠ‚ɕύX‚µ‚Ü‚·B\n\nPOPD" +STRING_DIRSTACK_HELP2, "PUSHD コマンドで記憶されたディレクトリに変更します。\n\nPOPD" -STRING_DIRSTACK_HELP3, "ƒfƒBƒŒƒNƒgƒŠ ƒXƒ^ƒbƒN‚̈ꗗ‚ð•\\ަ‚µ‚Ü‚·B\n\nDIRS" +STRING_DIRSTACK_HELP3, "ディレクトリ スタックの一覧を表示します。\n\nDIRS" -STRING_DIRSTACK_HELP4, "ƒfƒBƒŒƒNƒgƒŠ ƒXƒ^ƒbƒN‚Í‹ó‚Å‚·B" +STRING_DIRSTACK_HELP4, "ディレクトリ スタックは空です。" -STRING_ECHO_HELP1, "ƒƒbƒZ[ƒW‚ð•\\ަ‚µ‚Ü‚·‚ªA‘O‚ɃLƒƒƒŠƒbƒW ƒŠƒ^[ƒ“‚ƃ‰ƒCƒ“ƒtƒB[ƒh‚ð‚‚¯‚Ü‚¹‚ñB\n\n\ - ECHOS ƒƒbƒZ[ƒW" +STRING_ECHO_HELP1, "メッセージを表示しますが、前にキャリッジ リターンとラインフィードをつけません。\n\n\ + ECHOS メッセージ" -STRING_ECHO_HELP2, "•W€ƒGƒ‰[‚ɃƒbƒZ[ƒW‚ð•\\ަ‚µ‚Ü‚·B\n\n\ - ECHOERR ƒƒbƒZ[ƒW\n\ - ECHOERR. ‹ós‚ðo—Í‚µ‚Ü‚·B" +STRING_ECHO_HELP2, "標準エラーにメッセージを表示します。\n\n\ + ECHOERR メッセージ\n\ + ECHOERR. 空行を出力します。" -STRING_ECHO_HELP3, "•W€ƒGƒ‰[‚ɃƒbƒZ[ƒW‚ð•\\ަ‚µ‚Ü‚·‚ªA‘O‚ɃLƒƒƒŠƒbƒW ƒŠƒ^[ƒ“‚Æ\n\ -ƒ‰ƒCƒ“ƒtƒB[ƒh‚ð‚‚¯‚Ü‚¹‚ñB\n\n\ - ECHOSERR ƒƒbƒZ[ƒW" +STRING_ECHO_HELP3, "標準エラーにメッセージを表示しますが、前にキャリッジ リターンと\n\ +ラインフィードをつけません。\n\n\ + ECHOSERR メッセージ" -STRING_ECHO_HELP4, "ƒƒbƒZ[ƒW‚ð•\\ަ‚µ‚½‚èAƒRƒ}ƒ“ƒh ƒGƒR[‚Ì ON ‚Æ OFF ‚ðØ‚è‘Ö‚¦‚Ü‚·B\n\n\ +STRING_ECHO_HELP4, "メッセージを表示したり、コマンド エコーの ON と OFF を切り替えます。\n\n\ ECHO [ON | OFF]\n\ - ECHO [ƒƒbƒZ[ƒW]\n\ - ECHO. ‹ós‚ðo—Í‚µ‚Ü‚·B\n\n\ -Œ»Ý‚̃GƒR[Ý’è‚ð•\\ަ‚·‚é‚ɂ́Aƒpƒ‰ƒ[ƒ^‚ðŽw’肹‚¸‚É ECHO ‚Æ“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B" + ECHO [メッセージ]\n\ + ECHO. 空行を出力します。\n\n\ +現在のエコー設定を表示するには、パラメータを指定せずに ECHO と入力してください。" -STRING_ECHO_HELP5, "ECHO ‚Í %s ‚Å‚·B\n" +STRING_ECHO_HELP5, "ECHO は %s です。\n" -STRING_EXIT_HELP, "ƒRƒ}ƒ“ƒh ƒCƒ“ƒ^[ƒvƒŠƒ^‚ðI—¹‚µ‚Ü‚·B\n\nEXIT\n" +STRING_EXIT_HELP, "コマンド インタープリタを終了します。\n\nEXIT\n" -STRING_FOR_HELP1, "Žw’肳‚ꂽƒRƒ}ƒ“ƒh‚ðƒtƒ@ƒCƒ‹ ƒZƒbƒg‚ÌŠeƒtƒ@ƒCƒ‹‚ɑ΂µ‚ÄŽÀs‚µ‚Ü‚·B\n\n\ -FOR %%•ϐ” IN (ƒZƒbƒg) DO ƒRƒ}ƒ“ƒh [ƒpƒ‰ƒ[ƒ^]\n\n\ - %%•ϐ” ’Pˆê•¶Žš‚Ì’u‚«Š·‚¦‰Â”\\‚ȃpƒ‰ƒ[ƒ^‚ðŽw’肵‚Ü‚·B\n\ - (ƒZƒbƒg) ƒtƒ@ƒCƒ‹ ƒZƒbƒg‚ðŽw’肵‚Ü‚·BƒƒCƒ‹ƒhƒJ[ƒh‚ðŽg—p‚Å‚«‚Ü‚·B\n\ - ƒRƒ}ƒ“ƒh Šeƒtƒ@ƒCƒ‹‚²‚ƂɎÀs‚·‚éƒRƒ}ƒ“ƒh‚ðŽw’肵‚Ü‚·B\n\ - ƒpƒ‰ƒ[ƒ^ Žw’肳‚ꂽƒRƒ}ƒ“ƒh‚̃pƒ‰ƒ[ƒ^‚Ü‚½‚̓XƒCƒbƒ`‚ðŽw’肵‚Ü‚·B\n\n\ -ƒoƒbƒ` ƒvƒƒOƒ‰ƒ€‚Å FOR ƒRƒ}ƒ“ƒh‚ðŽg—p‚·‚邯‚«‚́A%%•ϐ”‚Ì‘ã‚í‚è‚ɁA\n\ -%%%%•ϐ”‚ðŽg—p‚µ‚Ä‚­‚¾‚³‚¢B\n" +STRING_FOR_HELP1, "指定されたコマンドをファイル セットの各ファイルに対して実行します。\n\n\ +FOR %%変数 IN (セット) DO コマンド [パラメータ]\n\n\ + %%変数 単一文字の置き換え可能なパラメータを指定します。\n\ + (セット) ファイル セットを指定します。ワイルドカードを使用できます。\n\ + コマンド 各ファイルごとに実行するコマンドを指定します。\n\ + パラメータ 指定されたコマンドのパラメータまたはスイッチを指定します。\n\n\ +バッチ プログラムで FOR コマンドを使用するときは、%%変数の代わりに、\n\ +%%%%変数を使用してください。\n" -STRING_FREE_HELP1, "\nƒhƒ‰ƒCƒu %c ‚̃{ƒŠƒ…[ƒ€ ƒ‰ƒxƒ‹‚Í %-11s ‚Å‚·\n\ - ƒVƒŠƒAƒ‹”ԍ†‚Í %s ‚Å‚·\n\ - %16s ƒoƒCƒg: ‘SƒfƒBƒXƒN—e—Ê\n\ - %16s ƒoƒCƒg: Žg—p’†\n\ - %16s ƒoƒCƒg: ‹ó‚«—e—Ê\n" +STRING_FREE_HELP1, "\nドライブ %c のボリューム ラベルは %-11s です\n\ + シリアル番号は %s です\n\ + %16s バイト: 全ディスク容量\n\ + %16s バイト: 使用中\n\ + %16s バイト: 空き容量\n" -STRING_FREE_HELP2, "ƒhƒ‰ƒCƒu‚ÉŠÖ‚·‚éî•ñ‚ð•\\ަ‚µ‚Ü‚·B\n\nFREE [ƒhƒ‰ƒCƒu: ...]\n" +STRING_FREE_HELP2, "ドライブに関する情報を表示します。\n\nFREE [ドライブ: ...]\n" -STRING_IF_HELP1, "ƒoƒbƒ` ƒvƒƒOƒ‰ƒ€’†‚ÅðŒˆ—‚ðŽÀs‚µ‚Ü‚·B\n\n\ - IF [NOT] ERRORLEVEL ”ԍ† ƒRƒ}ƒ“ƒh\n\ - IF [NOT] •¶Žš—ñ1==•¶Žš—ñ2 ƒRƒ}ƒ“ƒh\n\ - IF [NOT] EXIST ƒtƒ@ƒCƒ‹–¼ ƒRƒ}ƒ“ƒh\n\ - IF [NOT] DEFINED •ϐ” ƒRƒ}ƒ“ƒh\n\n\ -NOT ðŒ‚ª‹U‚̏ꍇ‚É‚¾‚¯ACMD ‚ªƒRƒ}ƒ“ƒh‚ðŽÀs‚·‚邱‚Æ‚ð\n\ - Žw’肵‚Ü‚·B\n\ -ERRORLEVEL ”ԍ† ÅŒã‚̃vƒƒOƒ‰ƒ€‚ÌŽÀs‚ÅŽw’肳‚ꂽ”ԍ†ˆÈã‚̏I—¹ƒR[ƒh\n\ - ‚ª•Ô‚³‚ꂽ‚Æ‚«‚ɁAðŒ‚ª^‚É‚È‚é‚æ‚¤‚ÉŽw’肵‚Ü‚·B\n\ -ƒRƒ}ƒ“ƒh ðŒ‚ª^‚̂Ƃ«‚ÉŽÀs‚·‚éƒRƒ}ƒ“ƒh‚ðŽw’肵‚Ü‚·B\n\ -•¶Žš—ñ1==•¶Žš—ñ2 ƒeƒLƒXƒg•¶Žš—ñ‚ªˆê’v‚·‚邯‚«‚ÉðŒ‚ª^‚É‚È‚é‚æ‚¤‚ÉŽw’è\n\ - ‚µ‚Ü‚·B\n\ -EXIST ƒtƒ@ƒCƒ‹–¼ Žw’肵‚½ƒtƒ@ƒCƒ‹–¼‚ª‘¶Ý‚·‚邯‚«‚ÉðŒ‚ª^‚É‚È‚é‚æ‚¤‚É\n\ - Žw’肵‚Ü‚·B\n\ -DEFINED •ϐ” Žw’肵‚½•ϐ”‚ª’è‹`‚³‚ê‚Ä‚¢‚邯‚«‚ÉðŒ‚ª^‚É‚È‚é‚æ‚¤‚É\n\ - Žw’肵‚Ü‚·B\n" +STRING_IF_HELP1, "バッチ プログラム中で条件処理を実行します。\n\n\ + IF [NOT] ERRORLEVEL 番号 コマンド\n\ + IF [NOT] 文字列1==文字列2 コマンド\n\ + IF [NOT] EXIST ファイル名 コマンド\n\ + IF [NOT] DEFINED 変数 コマンド\n\n\ +NOT 条件が偽の場合にだけ、CMD がコマンドを実行することを\n\ + 指定します。\n\ +ERRORLEVEL 番号 最後のプログラムの実行で指定された番号以上の終了コード\n\ + が返されたときに、条件が真になるように指定します。\n\ +コマンド 条件が真のときに実行するコマンドを指定します。\n\ +文字列1==文字列2 テキスト文字列が一致するときに条件が真になるように指定\n\ + します。\n\ +EXIST ファイル名 指定したファイル名が存在するときに条件が真になるように\n\ + 指定します。\n\ +DEFINED 変数 指定した変数が定義されているときに条件が真になるように\n\ + 指定します。\n" -STRING_GOTO_HELP1, "ƒoƒbƒ` ƒvƒƒOƒ‰ƒ€“à‚́Aƒ‰ƒxƒ‹‚ÅŽw’肳‚ê‚Ä‚¢‚és‚֐§Œä‚ðˆÚ“®‚µ‚Ü‚·B\n\n\ -GOTO ƒ‰ƒxƒ‹\n\n\ - ƒ‰ƒxƒ‹ ƒoƒbƒ` ƒvƒƒOƒ‰ƒ€‚щƒxƒ‹‚Æ‚µ‚ÄŽg—p‚·‚éƒeƒLƒXƒg•¶Žš—ñ‚ðŽw’肵‚Ü‚·B\n\n\ -ƒ‰ƒxƒ‹‚̐擪‚É‚Í : (ƒRƒƒ“) ‚ðŽw’肵Aƒ‰ƒxƒ‹‚¾‚¯‚ð’P“ƂŠ1 s‚É“ü—Í‚µ‚Ä‚­‚¾\n\ -‚³‚¢B" +STRING_GOTO_HELP1, "バッチ プログラム内の、ラベルで指定されている行へ制御を移動します。\n\n\ +GOTO ラベル\n\n\ + ラベル バッチ プログラムでラベルとして使用するテキスト文字列を指定します。\n\n\ +ラベルの先頭には : (コロン) を指定し、ラベルだけを単独で 1 行に入力してくだ\n\ +さい。" -STRING_LABEL_HELP1, "ƒfƒBƒXƒN‚̃{ƒŠƒ…[ƒ€ ƒ‰ƒxƒ‹‚ð•\\ަ‚Ü‚½‚͕ύX‚µ‚Ü‚·B\n\nLABEL [ƒhƒ‰ƒCƒu:][ƒ‰ƒxƒ‹]\n" +STRING_LABEL_HELP1, "ディスクのボリューム ラベルを表示または変更します。\n\nLABEL [ドライブ:][ラベル]\n" -STRING_LABEL_HELP2, "ƒhƒ‰ƒCƒu %c: ‚̃{ƒŠƒ…[ƒ€ ƒ‰ƒxƒ‹‚Í %s ‚Å‚·\n" -STRING_LABEL_HELP3, "ƒhƒ‰ƒCƒu %c: ‚ɂ̓{ƒŠƒ…[ƒ€ ƒ‰ƒxƒ‹‚ª‚ ‚è‚Ü‚¹‚ñl\n" -STRING_LABEL_HELP4, "ƒ{ƒŠƒ…[ƒ€ ƒVƒŠƒAƒ‹”ԍ†‚Í %04X-%04X\n ‚Å‚·" -STRING_LABEL_HELP5, "ƒ{ƒŠƒ…[ƒ€ ƒ‰ƒxƒ‹‚ð 11 •¶ŽšˆÈ“à‚Å“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B\n•K—v‚È‚¯‚ê‚Î Enter ƒL[‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢: " +STRING_LABEL_HELP2, "ドライブ %c: のボリューム ラベルは %s です\n" +STRING_LABEL_HELP3, "ドライブ %c: にはボリューム ラベルがありませんl\n" +STRING_LABEL_HELP4, "ボリューム シリアル番号は %04X-%04X\n です" +STRING_LABEL_HELP5, "ボリューム ラベルを 11 文字以内で入力してください。\n必要なければ Enter キーを押してください: " -STRING_LOCALE_HELP1, "Œ»ÝŽž‚Í" +STRING_LOCALE_HELP1, "現在時刻は" -STRING_MKDIR_HELP, "ƒfƒBƒŒƒNƒgƒŠ‚ðì¬‚µ‚Ü‚·B\n\n\ -MKDIR [ƒhƒ‰ƒCƒu:]ƒpƒX\n\ -MD [ƒhƒ‰ƒCƒu:]ƒpƒX" +STRING_MKDIR_HELP, "ディレクトリを作成します。\n\n\ +MKDIR [ドライブ:]パス\n\ +MD [ドライブ:]パス" STRING_MKLINK_HELP, "Creates a filesystem link object.\n\n\ MKLINK [/D | /H | /J] linkname target\n\n\ @@ -314,102 +314,102 @@ MKLINK [/D | /H | /J] linkname target\n\n\ /J Create a directory junction.\n\n\ If neither /H or /J is specified, a symbolic link is created." -STRING_MEMMORY_HELP1, "ƒVƒXƒeƒ€ ƒƒ‚ƒŠ‚Ì—Ê‚ð•\\ަ‚µ‚Ü‚·B\n\nMEMORY" +STRING_MEMMORY_HELP1, "システム メモリの量を表示します。\n\nMEMORY" -STRING_MEMMORY_HELP2, "\n %12s%% ‚̃ƒ‚ƒŠ‚ªŽg—p‚³‚ê‚Ä‚¢‚Ü‚·B\n\n\ - %13s ƒoƒCƒg: ‘S•¨—ƒƒ‚ƒŠ\n\ - %13s ƒoƒCƒg: —˜—p‰Â”\\‚È•¨—ƒƒ‚ƒŠ\n\n\ - %13s ƒoƒCƒg: ‘Sƒy[ƒWƒtƒ@ƒCƒ‹\n\ - %13s ƒoƒCƒg: —˜—p‰Â”\\‚ȃy[ƒWƒtƒ@ƒCƒ‹\n\n\ - %13s ƒoƒCƒg: ‘S‰¼‘zƒƒ‚ƒŠ\n\ - %13s ƒoƒCƒg: —˜—p‰Â”\\‚ȉ¼‘zƒƒ‚ƒŠ\n" +STRING_MEMMORY_HELP2, "\n %12s%% のメモリが使用されています。\n\n\ + %13s バイト: 全物理メモリ\n\ + %13s バイト: 利用可能な物理メモリ\n\n\ + %13s バイト: 全ページファイル\n\ + %13s バイト: 利用可能なページファイル\n\n\ + %13s バイト: 全仮想メモリ\n\ + %13s バイト: 利用可能な仮想メモリ\n" -STRING_MISC_HELP1, "‘±s‚·‚é‚ɂ͉½‚©ƒL[‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢ ...\n" +STRING_MISC_HELP1, "続行するには何かキーを押してください ...\n" -STRING_MOVE_HELP1, "%s ‚ðã‘‚«‚µ‚Ü‚·‚ª‚æ‚낵‚¢‚Å‚·‚© (Yes/No/All)? " +STRING_MOVE_HELP1, "%s を上書きしますがよろしいですか (Yes/No/All)? " -STRING_MOVE_HELP2, "ƒtƒ@ƒCƒ‹‚ðˆÚ“®‚¨‚æ‚уtƒ@ƒCƒ‹‚ƃfƒBƒŒƒNƒgƒŠ–¼‚ð•ύX‚µ‚Ü‚·B\n\n\ -1 ‚‚܂½‚Í•¡”‚̃tƒ@ƒCƒ‹‚ðˆÚ“®‚·‚é‚É‚Í:\n\ -MOVE [/N][ƒhƒ‰ƒCƒu:][ƒpƒX]ƒtƒ@ƒCƒ‹–¼1[,...] ˆÚ“®æ\n\n\ -ƒfƒBƒŒƒNƒgƒŠ–¼‚ð•ύX‚·‚é‚É‚Í:\n\ -MOVE [/N][ƒhƒ‰ƒCƒu:][ƒpƒX]•ύX‘O •ύXŒã\n\n\ - [ƒhƒ‰ƒCƒu:][ƒpƒX]ƒtƒ@ƒCƒ‹–¼1\n\ - ˆÚ“®‚·‚éƒtƒ@ƒCƒ‹‚̏ꏊ‚Æ–¼‘O‚ðŽw’肵‚Ü‚·B\n\ - /N Nothing. ƒtƒ@ƒCƒ‹‚ƃfƒBƒŒƒNƒgƒŠ‚̈ړ®ˆÈŠO‚Ì‚·‚ׂĂðs‚¢‚Ü‚·B\n\n\ -Œ»’iŠK‚ł̐§ŒÀ:\n\ - - ƒtƒ@ƒCƒ‹‚âƒfƒBƒŒƒNƒgƒŠ‚ðAˆÙ‚È‚éƒhƒ‰ƒCƒu‚ð‚Ü‚½‚ª‚Á‚Ĉړ®‚·‚邱‚Æ‚Í\n\ - ‚Å‚«‚Ü‚¹‚ñB\n" +STRING_MOVE_HELP2, "ファイルを移動およびファイルとディレクトリ名を変更します。\n\n\ +1 つまたは複数のファイルを移動するには:\n\ +MOVE [/N][ドライブ:][パス]ファイル名1[,...] 移動先\n\n\ +ディレクトリ名を変更するには:\n\ +MOVE [/N][ドライブ:][パス]変更前 変更後\n\n\ + [ドライブ:][パス]ファイル名1\n\ + 移動するファイルの場所と名前を指定します。\n\ + /N Nothing. ファイルとディレクトリの移動以外のすべてを行います。\n\n\ +現段階での制限:\n\ + - ファイルやディレクトリを、異なるドライブをまたがって移動することは\n\ + できません。\n" -STRING_MSGBOX_HELP, "ƒƒbƒZ[ƒW ƒ{ƒbƒNƒX‚ð•\\ަ‚µAƒ†[ƒU[‚ɕԓš‚ð‹‚ß‚Ü‚·B\n\n\ -MSGBOX ƒ^ƒCƒv ['ƒ^ƒCƒgƒ‹'] ƒƒbƒZ[ƒW\n\n\ -ƒ^ƒCƒv •\\ަ‚³‚ê‚éƒ{ƒ^ƒ“‚̃^ƒCƒv‚Å‚·B\n\ - ŽŸ‚Ì’l‚ªŽg—p‚Å‚«‚Ü‚·: OK, OKCANCEL,\n\ +STRING_MSGBOX_HELP, "メッセージ ボックスを表示し、ユーザーに返答を求めます。\n\n\ +MSGBOX タイプ ['タイトル'] メッセージ\n\n\ +タイプ 表示されるボタンのタイプです。\n\ + 次の値が使用できます: OK, OKCANCEL,\n\ YESNO, YESNOCANCEL\n\ -ƒ^ƒCƒgƒ‹ ƒƒbƒZ[ƒW ƒ{ƒbƒNƒX‚̃^ƒCƒgƒ‹‚Å‚·B\n\ -ƒƒbƒZ[ƒW ƒƒbƒZ[ƒW ƒ{ƒbƒNƒX‚É•\\ަ‚³‚ê‚郁ƒbƒZ[ƒW‚Å‚·B\n\n\n\ -‰Ÿ‚³‚ꂽƒ{ƒ^ƒ“‚É‚æ‚èAŽŸ‚Ì ERRORLEVEL ‚ªÝ’肳‚ê‚Ü‚·:\n\n\ +タイトル メッセージ ボックスのタイトルです。\n\ +メッセージ メッセージ ボックスに表示されるメッセージです。\n\n\n\ +押されたボタンにより、次の ERRORLEVEL が設定されます:\n\n\ YES : 10 | NO : 11\n\ OK : 10 | CANCEL : 12\n" -STRING_PATH_HELP1, "ŽÀs‰Â”\\ƒtƒ@ƒCƒ‹‚ÌŒŸõƒpƒX‚ð•\\ަ‚Ü‚½‚͐ݒ肵‚Ü‚·B\n\n\ -PATH [[ƒhƒ‰ƒCƒu:]ƒpƒX[;...]]\nPATH ;\n\n\ -ƒpƒ‰ƒ[ƒ^‚Æ‚µ‚Ä ; (ƒZƒ~ƒRƒƒ“) ‚¾‚¯‚ðŽw’è‚·‚邯A‚·‚ׂĂ̌ŸõƒpƒX‚Í\n\ -ƒNƒŠƒA‚³‚ê‚ÄŒ»Ý‚̃fƒBƒŒƒNƒgƒŠ‚¾‚¯‚ªŒŸõ‚³‚ê‚Ü‚·B\n\ -ƒpƒ‰ƒ[ƒ^‚ðŽw’肹‚¸‚É PATH ‚Æ“ü—Í‚·‚邯AŒ»Ý‚̃pƒX‚ª•\\ަ‚³‚ê‚Ü‚·B\n" +STRING_PATH_HELP1, "実行可能ファイルの検索パスを表示または設定します。\n\n\ +PATH [[ドライブ:]パス[;...]]\nPATH ;\n\n\ +パラメータとして ; (セミコロン) だけを指定すると、すべての検索パスは\n\ +クリアされて現在のディレクトリだけが検索されます。\n\ +パラメータを指定せずに PATH と入力すると、現在のパスが表示されます。\n" -STRING_PROMPT_HELP1, "ƒRƒ}ƒ“ƒh ƒvƒƒ“ƒvƒg‚ð•ύX‚µ‚Ü‚·B\n\n\ -PROMPT [•¶Žš—ñ]\n\n\ - •¶Žš—ñ V‚µ‚¢ƒRƒ}ƒ“ƒh ƒvƒƒ“ƒvƒg‚ðŽw’肵‚Ü‚·B\n\n\ -PROMPT ‚ɂ͒ʏí‚Ì•¶Žš‚ÆŽŸ‚ÉŽ¦‚·“ÁŽêƒR[ƒh‚ðŽg—p‚Å‚«‚Ü‚·:\n\n\ - $A & (ƒAƒ“ƒpƒTƒ“ƒh)\n\ - $B | (ƒpƒCƒv)\n\ - $C ( (¶‚©‚Á‚±)\n\ - $D Œ»Ý‚Ì“ú•t\n\ - $E ƒGƒXƒP[ƒv ƒR[ƒh (ASCII ƒR[ƒh‚Ì 27)\n\ - $F ) (‰E‚©‚Á‚±)\n\ - $G > (•s“™† (‘å‚È‚è))\n\ - $H ƒoƒbƒNƒXƒy[ƒX (’¼‘O‚Ì•¶Žš‚ðíœ‚µ‚Ü‚·)\n\ - $L < (•s“™† (¬‚È‚è))\n\ - $N Œ»Ý‚̃hƒ‰ƒCƒu\n\ - $P Œ»Ý‚̃hƒ‰ƒCƒu‚ƃpƒX\n\ - $Q = (“™†)\n\ - $T Œ»Ý‚ÌŽž\n\ - $V OS ‚̃o[ƒWƒ‡ƒ“”ԍ†\n\ - $_ ƒLƒƒƒŠƒbƒW ƒŠƒ^[ƒ“‚ƃ‰ƒCƒ“ƒtƒB[ƒh\n\ - $$ $ (ƒhƒ‹‹L†)\n" +STRING_PROMPT_HELP1, "コマンド プロンプトを変更します。\n\n\ +PROMPT [文字列]\n\n\ + 文字列 新しいコマンド プロンプトを指定します。\n\n\ +PROMPT には通常の文字と次に示す特殊コードを使用できます:\n\n\ + $A & (アンパサンド)\n\ + $B | (パイプ)\n\ + $C ( (左かっこ)\n\ + $D 現在の日付\n\ + $E エスケープ コード (ASCII コードの 27)\n\ + $F ) (右かっこ)\n\ + $G > (不等号 (大なり))\n\ + $H バックスペース (直前の文字を削除します)\n\ + $L < (不等号 (小なり))\n\ + $N 現在のドライブ\n\ + $P 現在のドライブとパス\n\ + $Q = (等号)\n\ + $T 現在の時刻\n\ + $V OS のバージョン番号\n\ + $_ キャリッジ リターンとラインフィード\n\ + $$ $ (ドル記号)\n" -STRING_PAUSE_HELP1, "ƒoƒbƒ` ƒvƒƒOƒ‰ƒ€‚̏ˆ—‚ðˆêŽž’âŽ~‚µAŽŸ‚̃ƒbƒZ[ƒW‚ð•\\ަ‚µ‚Ü‚·B:\n\ -'‘±s‚·‚é‚ɂ͉½‚©ƒL[‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢ ...' ‚Ü‚½‚̓†[ƒU[‚ª’è‹`‚µ‚½ƒƒbƒZ[ƒWB\n\n\ -PAUSE [ƒƒbƒZ[ƒW]" +STRING_PAUSE_HELP1, "バッチ プログラムの処理を一時停止し、次のメッセージを表示します。:\n\ +'続行するには何かキーを押してください ...' またはユーザーが定義したメッセージ。\n\n\ +PAUSE [メッセージ]" -STRING_PROMPT_HELP2, " $+ Œ»Ý‚̃fƒBƒŒƒNƒgƒŠ ƒXƒ^ƒbƒN‚̐[‚³‚ð•\\ަ‚µ‚Ü‚·" +STRING_PROMPT_HELP2, " $+ 現在のディレクトリ スタックの深さを表示します" -STRING_PROMPT_HELP3, "\nƒpƒ‰ƒ[ƒ^‚ðŽw’肹‚¸‚É PROMPT ‚Æ“ü—Í‚·‚邯Aƒvƒƒ“ƒvƒg‚̐ݒ肪ƒfƒtƒHƒ‹ƒg‚ÉƒŠƒZƒbƒg‚³‚ê‚Ü‚·B" +STRING_PROMPT_HELP3, "\nパラメータを指定せずに PROMPT と入力すると、プロンプトの設定がデフォルトにリセットされます。" -STRING_REM_HELP, "ƒoƒbƒ` ƒtƒ@ƒCƒ‹‚ɃRƒƒ“ƒg (’Žß) ‚ð‹L˜^‚µ‚Ü‚·B\n\nREM [ƒRƒƒ“ƒg]" +STRING_REM_HELP, "バッチ ファイルにコメント (注釈) を記録します。\n\nREM [コメント]" -STRING_RMDIR_HELP, "ƒfƒBƒŒƒNƒgƒŠ‚ðíœ‚µ‚Ü‚·B\n\n\ -RMDIR [ƒhƒ‰ƒCƒu:]ƒpƒX\nRD [ƒhƒ‰ƒCƒu:]ƒpƒX\n\ - /S Žw’肳‚ꂽƒfƒBƒŒƒNƒgƒŠ“à‚É‚ ‚éƒtƒ@ƒCƒ‹‚âƒtƒHƒ‹ƒ_‚à‚·‚ׂč폜‚µ‚Ü‚·B\n\ - /Q Šm”F‚̃ƒbƒZ[ƒW‚ð•\\ަ‚µ‚Ü‚¹‚ñB\n" -STRING_RMDIR_HELP2, "ƒfƒBƒŒƒNƒgƒŠ‚ª‹ó‚ł͂ ‚è‚Ü‚¹‚ñ!\n" +STRING_RMDIR_HELP, "ディレクトリを削除します。\n\n\ +RMDIR [ドライブ:]パス\nRD [ドライブ:]パス\n\ + /S 指定されたディレクトリ内にあるファイルやフォルダもすべて削除します。\n\ + /Q 確認のメッセージを表示しません。\n" +STRING_RMDIR_HELP2, "ディレクトリが空ではありません!\n" -STRING_REN_HELP1, "ƒtƒ@ƒCƒ‹‚âƒfƒBƒŒƒNƒgƒŠ (•¡”‰Â) ‚Ì–¼‘O‚ð•ύX‚µ‚Ü‚·B\n\n\ -RENAME [/E /N /P /Q /S /T] Œ³‚̃tƒ@ƒCƒ‹–¼ ... Vƒtƒ@ƒCƒ‹–¼\n\ -REN [/E /N /P /Q /S /T] Œ³‚̃tƒ@ƒCƒ‹–¼ ... Vƒtƒ@ƒCƒ‹–¼\n\n\ - /E ƒGƒ‰[ƒƒbƒZ[ƒW‚ð•\\ަ‚µ‚Ü‚¹‚ñB\n\ - /N ‰½‚à‚µ‚Ü‚¹‚ñB\n\ - /P ƒtƒ@ƒCƒ‹‚Ì–¼‘O‚ð•ύX‚·‚é‘O‚É‚»‚ꂼ‚êŠm”F‚ð‹‚ß‚Ü‚·B\n\ - (‚Ü‚¾ŽÀ‘•‚³‚ê‚Ä‚¢‚Ü‚¹‚ñ!)\n\ +STRING_REN_HELP1, "ファイルやディレクトリ (複数可) の名前を変更します。\n\n\ +RENAME [/E /N /P /Q /S /T] 元のファイル名 ... 新ファイル名\n\ +REN [/E /N /P /Q /S /T] 元のファイル名 ... 新ファイル名\n\n\ + /E エラーメッセージを表示しません。\n\ + /N 何もしません。\n\ + /P ファイルの名前を変更する前にそれぞれ確認を求めます。\n\ + (まだ実装されていません!)\n\ /Q Quiet.\n\ - /S ƒTƒuƒfƒBƒŒƒNƒgƒŠ‚Ì–¼‘O‚ð•ύX‚·‚éB\n\ - /T –¼‘O‚ð•ύX‚µ‚½ƒtƒ@ƒCƒ‹‚Ì‘”‚ð•ñ‚·‚éB\n\n\ -Vƒtƒ@ƒCƒ‹–¼ ‚ɂ͐V‚µ‚¢ƒhƒ‰ƒCƒu‚àƒpƒX‚àŽw’è‚Å‚«‚È‚¢‚̂ŒˆÓ‚µ‚Ä‚­‚¾‚³‚¢B\n\ -‚»‚¤‚¢‚Á‚½–Ú“I‚É‚Í MOVE ƒRƒ}ƒ“ƒh‚ð—p‚¢‚Ä‚­‚¾‚³‚¢B\n" + /S サブディレクトリの名前を変更する。\n\ + /T 名前を変更したファイルの総数を報告する。\n\n\ +新ファイル名 には新しいドライブもパスも指定できないので注意してください。\n\ +そういった目的には MOVE コマンドを用いてください。\n" -STRING_REN_HELP2, " %lu ŒÂ‚̃tƒ@ƒCƒ‹‚Ì–¼‘O‚ª•ύX‚³‚ê‚Ü‚µ‚½\n" +STRING_REN_HELP2, " %lu 個のファイルの名前が変更されました\n" -STRING_REN_HELP3, " %lu ŒÂ‚̃tƒ@ƒCƒ‹‚Ì–¼‘O‚ª•ύX‚³‚ê‚Ü‚µ‚½\n" +STRING_REN_HELP3, " %lu 個のファイルの名前が変更されました\n" STRING_REPLACE_HELP1, "Replaces files.\n\n\ REPLACE [drive1:][path1]filename [drive2:][path2] [/A] [/P] [/R] [/W]\n\ @@ -451,247 +451,247 @@ STRING_REPLACE_HELP10, "Replace %s (Y/N) " STRING_REPLACE_HELP11, "Adding %s\n" -STRING_SHIFT_HELP, "ƒoƒbƒ` ƒtƒ@ƒCƒ‹’†‚Ì’u‚«Š·‚¦‰Â”\\‚ȃpƒ‰ƒ[ƒ^‚̈ʒu‚ð•ύX‚µ‚Ü‚·B\n\n\ +STRING_SHIFT_HELP, "バッチ ファイル中の置き換え可能なパラメータの位置を変更します。\n\n\ SHIFT [DOWN]" -STRING_SCREEN_HELP, "ƒJ[ƒ\\ƒ‹‚ðˆÚ“®‚³‚¹‚Ü‚·BˆÚ“®ŒãA•¶Žš—ñ‚ð“ü—Í‚·‚邱‚Æ‚à‚Å‚«‚Ü‚·B\n\n\ -SCREEN —ñ s [ƒeƒLƒXƒg]\n\n\ - —ñ ƒJ[ƒ\\ƒ‹‚ðˆÚ“®‚³‚¹‚é—ñ‚Å‚·B\n\ - s ƒJ[ƒ\\ƒ‹‚ðˆÚ“®‚³‚¹‚és‚Å‚·B" +STRING_SCREEN_HELP, "カーソルを移動させます。移動後、文字列を入力することもできます。\n\n\ +SCREEN 列 行 [テキスト]\n\n\ + 列 カーソルを移動させる列です。\n\ + 行 カーソルを移動させる行です。" -STRING_SET_HELP, "ŠÂ‹«•ϐ”‚ð•\\ަAÝ’èA‚Ü‚½‚͍폜‚µ‚Ü‚·B\n\n\ -SET [•ϐ”–¼[=]•¶Žš—ñ]]\n\n\ - •ϐ”–¼ ŠÂ‹«•ϐ”–¼‚ðŽw’肵‚Ü‚·B\n\ - •¶Žš—ñ •ϐ”‚ÉŠ„‚è“–‚Ä‚é•¶Žš—ñ‚ðŽw’肵‚Ü‚·B\n\n\ -Œ»Ý‚̊‹«•ϐ”‚ð•\\ަ‚·‚é‚ɂ́Aƒpƒ‰ƒ[ƒ^‚ðŽw’肹‚¸‚É SET ‚Æ“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B\n" +STRING_SET_HELP, "環境変数を表示、設定、または削除します。\n\n\ +SET [変数名[=]文字列]]\n\n\ + 変数名 環境変数名を指定します。\n\ + 文字列 変数に割り当てる文字列を指定します。\n\n\ +現在の環境変数を表示するには、パラメータを指定せずに SET と入力してください。\n" -STRING_START_HELP1, "•ʂ̃EƒBƒ“ƒhƒE‚ð‹N“®‚µAŽw’肵‚½ƒvƒƒOƒ‰ƒ€‚Ü‚½‚̓Rƒ}ƒ“ƒh‚ðŽÀs‚µ‚Ü‚·B\n\n\ -START ƒRƒ}ƒ“ƒh\n\n\ - ƒRƒ}ƒ“ƒh ŽÀs‚·‚éƒRƒ}ƒ“ƒh‚ðŽw’肵‚Ü‚·B\n\n\ -Œ»Žž“_‚ł́AƒRƒ}ƒ“ƒh‚Í‚·‚ׂē¯Šú‚¹‚¸‚ÉŠJŽn‚³‚ê‚Ü‚·B\n" +STRING_START_HELP1, "別のウィンドウを起動し、指定したプログラムまたはコマンドを実行します。\n\n\ +START コマンド\n\n\ + コマンド 実行するコマンドを指定します。\n\n\ +現時点では、コマンドはすべて同期せずに開始されます。\n" -STRING_TITLE_HELP, "ƒRƒ}ƒ“ƒh ƒvƒƒ“ƒvƒg ƒEƒBƒ“ƒhƒE‚̃EƒBƒ“ƒhƒE ƒ^ƒCƒgƒ‹‚ðÝ’肵‚Ü‚·B\n\n\ -TITLE [•¶Žš—ñ]\n\n\ -•¶Žš—ñ ƒRƒ}ƒ“ƒh ƒvƒƒ“ƒvƒg ƒEƒBƒ“ƒhƒE‚̃^ƒCƒgƒ‹‚ðŽw’肵‚Ü‚·B\n" +STRING_TITLE_HELP, "コマンド プロンプト ウィンドウのウィンドウ タイトルを設定します。\n\n\ +TITLE [文字列]\n\n\ +文字列 コマンド プロンプト ウィンドウのタイトルを指定します。\n" -STRING_TIME_HELP1, "ƒVƒXƒeƒ€Žž‚ð•\\ަ‚Ü‚½‚͐ݒ肵‚Ü‚·B\n\n\ -TIME [/T][Žž]\n\n\ - /T Œ»ÝŽž‚Ì•\\ަ‚̂ݍs‚¢‚Ü‚·B\n\n\ -ƒpƒ‰ƒ[ƒ^‚ÌŽw’肪‚È‚¯‚ê‚΁AŒ»Ý‚̐ݒ肪•\\ަ‚³‚êAV‚µ‚¢Žž‚ð“ü—͂ł«‚é\n\ -ƒvƒƒ“ƒvƒg‚ɂȂè‚Ü‚·B•ύX‚µ‚È‚¢ê‡‚́AEnter ƒL[‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢B\n" +STRING_TIME_HELP1, "システム時刻を表示または設定します。\n\n\ +TIME [/T][時刻]\n\n\ + /T 現在時刻の表示のみ行います。\n\n\ +パラメータの指定がなければ、現在の設定が表示され、新しい時刻を入力できる\n\ +プロンプトになります。変更しない場合は、Enter キーを押してください。\n" -STRING_TIME_HELP2, "V‚µ‚¢Žž‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢: " +STRING_TIME_HELP2, "新しい時刻を入力してください: " -STRING_TIMER_HELP1, "%d ƒ~ƒŠ•b‚ªŒo‰ßB\n" +STRING_TIMER_HELP1, "%d ミリ秒が経過。\n" -STRING_TIMER_HELP2, "%02d%c%02d%c%02d%c%02d ‚ªŒo‰ßB\n" +STRING_TIMER_HELP2, "%02d%c%02d%c%02d%c%02d が経過。\n" -STRING_TIMER_HELP3, "10 ŒÂ‚܂ł̃XƒgƒbƒvƒEƒHƒbƒ`‚ðŽg‚¤‚±‚Æ‚ª‚Å‚«‚Ü‚·B\n\n\ +STRING_TIMER_HELP3, "10 個までのストップウォッチを使うことができます。\n\n\ TIMER [ON|OFF] [/S] [/n] [/Fn]\n\n\ - ON ƒXƒgƒbƒvƒEƒHƒbƒ`‚ð ON ‚É‚µ‚Ü‚·B\n\ - OFF ƒXƒgƒbƒvƒEƒHƒbƒ`‚ð OFF ‚É‚µ‚Ü‚·B\n\ - /S Split time. ƒXƒgƒbƒvƒEƒHƒbƒ`‚Ì’l‚ð•ύX‚·‚邱‚ƂȂ­A\n\ - Œ»Ý‚ñ‚Å‚¢‚鎞ŠÔ‚ð•\\ަ‚µ‚Ü‚·B\n\ - /n ƒXƒgƒbƒvƒEƒHƒbƒ`”ԍ†‚ðŽw’肵‚Ü‚·B\n\ - ƒXƒgƒbƒvƒEƒHƒbƒ`‚Í 0 ‚©‚ç 9 ‚܂łª—˜—p‚Å‚«‚Ü‚·B\n\ - Žw’肵‚È‚¢ê‡AƒfƒtƒHƒ‹ƒg‚Æ‚µ‚Ä 1 ‚ðŽg‚¢‚Ü‚·B\n\ - /Fn o—͂̏‘Ž®\n\ - n ‚ɂ͎Ÿ‚Ì“ñ‚‚̒l‚ð—p‚¢‚邱‚Æ‚ª‚Å‚«‚Ü‚·:\n\ - 0 ƒ~ƒŠ•b\n\ + ON ストップウォッチを ON にします。\n\ + OFF ストップウォッチを OFF にします。\n\ + /S Split time. ストップウォッチの値を変更することなく、\n\ + 現在刻んでいる時間を表示します。\n\ + /n ストップウォッチ番号を指定します。\n\ + ストップウォッチは 0 から 9 までが利用できます。\n\ + 指定しない場合、デフォルトとして 1 を使います。\n\ + /Fn 出力の書式\n\ + n には次の二つの値を用いることができます:\n\ + 0 ミリ秒\n\ 1 hh%cmm%css%cdd\n\n\ -ONAOFFA/S ‚Ì‚¢‚¸‚ê‚àŽw’肵‚È‚©‚Á‚½ê‡‚ɂ́AƒXƒgƒbƒvƒEƒHƒbƒ`‚Ì\n\ -ó‘Ô‚ðØ‚è‘Ö‚¦‚Ü‚·B\n\n" +ON、OFF、/S のいずれも指定しなかった場合には、ストップウォッチの\n\ +状態を切り替えます。\n\n" -STRING_TYPE_HELP1, "ƒeƒLƒXƒg ƒtƒ@ƒCƒ‹‚Ü‚½‚̓tƒ@ƒCƒ‹‚Ì“à—e‚ð•\\ަ‚µ‚Ü‚·B\n\nTYPE [ƒhƒ‰ƒCƒu:][ƒpƒX]ƒtƒ@ƒCƒ‹–¼ \n\ - /P 1 “x‚É 1 ‰æ–Ê‚¸‚•\\ަ‚µ‚Ü‚·B\n" +STRING_TYPE_HELP1, "テキスト ファイルまたはファイルの内容を表示します。\n\nTYPE [ドライブ:][パス]ファイル名 \n\ + /P 1 度に 1 画面ずつ表示します。\n" -STRING_VERIFY_HELP1, "‚±‚̃Rƒ}ƒ“ƒh‚̓_ƒ~[‚Å‚·!!\n\ -ƒtƒ@ƒCƒ‹‚ªƒfƒBƒXƒN‚ɐ³‚µ‚­‘‚«ž‚܂ꂽ‚±‚Æ‚ðÆ‡‚·‚é‚©‚Ç‚¤‚©‚ðŽwަ‚µ‚Ü‚·B\n\n\ +STRING_VERIFY_HELP1, "このコマンドはダミーです!!\n\ +ファイルがディスクに正しく書き込まれたことを照合するかどうかを指示します。\n\n\ VERIFY [ON | OFF]\n\n\ -Œ»Ý‚̐ݒè‚ð•\\ަ‚·‚邯‚«‚́Aƒpƒ‰ƒ[ƒ^‚ðŽw’肹‚¸‚É VERIFY ‚Æ“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B\n" +現在の設定を表示するときは、パラメータを指定せずに VERIFY と入力してください。\n" -STRING_VERIFY_HELP2, "VERIFY ‚Í %s ‚Å‚·B\n" +STRING_VERIFY_HELP2, "VERIFY は %s です。\n" -STRING_VERIFY_HELP3, "ON ‚© OFF ‚̂ǂ¿‚ç‚©‚ðŽw’肵‚Ä‚­‚¾‚³‚¢B" +STRING_VERIFY_HELP3, "ON か OFF のどちらかを指定してください。" -STRING_VERSION_HELP1, "ƒVƒFƒ‹‚̃o[ƒWƒ‡ƒ“î•ñ‚ð•\\ަ‚µ‚Ü‚·B\n\n\ +STRING_VERSION_HELP1, "シェルのバージョン情報を表示します。\n\n\ VER [/C][/R][/W]\n\n\ - /C ƒNƒŒƒWƒbƒg‚ð•\\ަ‚µ‚Ü‚·B\n\ - /R Ä”z•z‚ÉŠÖ‚·‚éî•ñ‚ð•\\ަ‚µ‚Ü‚·B\n\ - /W •ۏ؂Ɋւ·‚éî•ñ‚ð•\\ަ‚µ‚Ü‚·B" + /C クレジットを表示します。\n\ + /R 再配布に関する情報を表示します。\n\ + /W 保証に関する情報を表示します。" -STRING_VERSION_HELP2, " ‚Í *‘S‚­‚Ì–³•ۏØ* ‚Å’ñ‹Ÿ‚³‚ê‚Ü‚·BÚ‚µ‚­‚Í\n\ -'ver /w' ‚ƃ^ƒCƒv‚µ‚ĉº‚³‚¢B‚±‚ê‚̓tƒŠ[ƒ\\ƒtƒgƒEƒFƒA‚Å‚ ‚èA‚ ‚éðŒ‚̉º‚Å\n\ -Ä”Еz‚·‚邱‚Æ‚ª§—コ‚ê‚Ä‚¢‚Ü‚·BÚ‚µ‚­‚Í 'ver /r' ‚ƃ^ƒCƒv‚µ‚ĉº‚³‚¢B\n\ -ƒNƒŒƒWƒbƒg‚̈ꗗ‚ðŒ©‚é‚É‚Í 'ver /c' ‚ƃ^ƒCƒv‚µ‚ĉº‚³‚¢B" +STRING_VERSION_HELP2, " は *全くの無保証* で提供されます。詳しくは\n\ +'ver /w' とタイプして下さい。これはフリーソフトウェアであり、ある条件の下で\n\ +再頒布することが奨励されています。詳しくは 'ver /r' とタイプして下さい。\n\ +クレジットの一覧を見るには 'ver /c' とタイプして下さい。" -STRING_VERSION_HELP3, "\n ‚±‚̃vƒƒOƒ‰ƒ€‚Í—L—p‚Å‚ ‚邱‚Æ‚ðŠè‚Á‚ĔЕz‚³‚ê‚Ü‚·‚ªA*‘S‚­‚Ì–³•ۏØ*\n\ - ‚Å‚·B¤‹Æ‰Â”\\«‚̕ۏ؂â“Á’è‚Ì–Ú“I‚Ö‚Ì“K‡«‚́AŒ¾ŠO‚ÉŽ¦‚³‚ꂽ‚à‚Ì‚àŠÜ\n\ - ‚ß‘S‚­‘¶Ý‚µ‚Ü‚¹‚ñBÚ‚µ‚­‚Í GNU General Public License ‚ð‚²——‚­‚¾‚³‚¢B" +STRING_VERSION_HELP3, "\n このプログラムは有用であることを願って頒布されますが、*全くの無保証*\n\ + です。商業可能性の保証や特定の目的への適合性は、言外に示されたものも含\n\ + め全く存在しません。詳しくは GNU General Public License をご覧ください。" -STRING_VERSION_HELP4, "\n ‚±‚̃vƒƒOƒ‰ƒ€‚̓tƒŠ[ƒ\\ƒtƒgƒEƒFƒA‚Å‚·B‚ ‚È‚½‚Í‚±‚ê‚ðAƒtƒŠ[ƒ\\ƒtƒgƒEƒF\n\ - ƒAà’c‚É‚æ‚Á‚Ä”­s‚³‚ꂽ GNU General Public License (ƒo[ƒWƒ‡ƒ“ 2 ‚©A\n\ - Šó–]‚É‚æ‚Á‚Ă͂»‚êˆÈ~‚̃o[ƒWƒ‡ƒ“‚Ì‚¤‚¿‚ǂꂩ) ‚Ì’è‚ß‚éðŒ‚̉º‚ōĔÐ\n\ - •z‚Ü‚½‚͉ü•Ï‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B\n" +STRING_VERSION_HELP4, "\n このプログラムはフリーソフトウェアです。あなたはこれを、フリーソフトウェ\n\ + ア財団によって発行された GNU General Public License (バージョン 2 か、\n\ + 希望によってはそれ以降のバージョンのうちどれか) の定める条件の下で再頒\n\ + 布または改変することができます。\n" -STRING_VERSION_HELP5, "\nƒoƒO•ñ‚Í ‚Ö‘—‚Á‚Ä‚­‚¾‚³‚¢B\n\ -ÅV‚̃o[ƒWƒ‡ƒ“‚ÍŽŸ‚̃y[ƒW‚©‚ç“üŽè‚Å‚«‚Ü‚·: http://www.reactos.org" +STRING_VERSION_HELP5, "\nバグ報告は へ送ってください。\n\ +最新のバージョンは次のページから入手できます: http://www.reactos.org" STRING_VERSION_HELP6, "\nFreeDOS version written by:\n" STRING_VERSION_HELP7, "\nReactOS version written by:\n" -STRING_VOL_HELP1, " ƒhƒ‰ƒCƒu %c: ‚̃{ƒŠƒ…[ƒ€ ƒ‰ƒxƒ‹‚Í %s ‚Å‚·B\n" -STRING_VOL_HELP2, " ƒhƒ‰ƒCƒu %c: ‚ɂ̓{ƒŠƒ…[ƒ€ ƒ‰ƒxƒ‹‚ª‚ ‚è‚Ü‚¹‚ñB\n" -STRING_VOL_HELP3, " ƒ{ƒŠƒ…[ƒ€ ƒVƒŠƒAƒ‹”ԍ†‚Í %04X-%04X ‚Å‚·B\n" -STRING_VOL_HELP4, "‘¶Ý‚·‚é‚È‚ç‚΁AƒfƒBƒXƒN‚̃{ƒŠƒ…[ƒ€ ƒ‰ƒxƒ‹‚ƃVƒŠƒAƒ‹”ԍ†‚ð•\\ަ‚µ‚Ü‚·B\n\nVOL [ƒhƒ‰ƒCƒu:]" +STRING_VOL_HELP1, " ドライブ %c: のボリューム ラベルは %s です。\n" +STRING_VOL_HELP2, " ドライブ %c: にはボリューム ラベルがありません。\n" +STRING_VOL_HELP3, " ボリューム シリアル番号は %04X-%04X です。\n" +STRING_VOL_HELP4, "存在するならば、ディスクのボリューム ラベルとシリアル番号を表示します。\n\nVOL [ドライブ:]" -STRING_WINDOW_HELP1, "ƒRƒ“ƒ\\[ƒ‹ ƒEƒBƒ“ƒhƒE‚ÌŠOŒ©‚ð•ύX‚µ‚Ü‚·B\n\n\ -WINDOW [/POS[=]¶,ã,•,‚‚³]\n\ +STRING_WINDOW_HELP1, "コンソール ウィンドウの外見を変更します。\n\n\ +WINDOW [/POS[=]左,上,幅,高さ]\n\ [MIN|MAX|RESTORE] ['title']\n\n\ -/POS ƒEƒBƒ“ƒhƒE‚̈ʒu‚Ƒ傫‚³‚ðŽw’肵‚Ü‚·B\n\ -MIN ƒEƒBƒ“ƒhƒE‚ðÅ¬‰»‚µ‚Ü‚·B\n\ -MAX ƒEƒBƒ“ƒhƒE‚ðÅ‘剻‚µ‚Ü‚·B\n\ -RESTORE ƒEƒBƒ“ƒhƒE‚ðŒ³‚ÌƒTƒCƒY‚É–ß‚µ‚Ü‚·B" +/POS ウィンドウの位置と大きさを指定します。\n\ +MIN ウィンドウを最小化します。\n\ +MAX ウィンドウを最大化します。\n\ +RESTORE ウィンドウを元のサイズに戻します。" -STRING_WINDOW_HELP2, "ƒRƒ“ƒ\\[ƒ‹ ƒEƒBƒ“ƒhƒE‚ÌŠOŒ©‚ð•ύX‚µ‚Ü‚·B\n\n\ -ACTIVATE 'ƒEƒBƒ“ƒhƒE' [/POS[=]¶,ã,•,‚‚³]\n\ - [MIN|MAX|RESTORE] ['ƒ^ƒCƒgƒ‹']\n\n\ -ƒEƒBƒ“ƒhƒE ŠOŒ©‚ð•ύX‚·‚éƒEƒBƒ“ƒhƒE‚̃^ƒCƒgƒ‹‚Å‚·B\n\ -/POS ƒEƒBƒ“ƒhƒE‚̈ʒu‚Ƒ傫‚³‚ðŽw’肵‚Ü‚·B\n\ -MIN ƒEƒBƒ“ƒhƒE‚ðÅ¬‰»‚µ‚Ü‚·B\n\ -MAX ƒEƒBƒ“ƒhƒE‚ðÅ‘剻‚µ‚Ü‚·B\n\ -RESTORE ƒEƒBƒ“ƒhƒE‚ðŒ³‚ÌƒTƒCƒY‚É–ß‚µ‚Ü‚·B\n\ -ƒ^ƒCƒgƒ‹ V‚µ‚¢ƒ^ƒCƒgƒ‹‚Å‚·B\n" +STRING_WINDOW_HELP2, "コンソール ウィンドウの外見を変更します。\n\n\ +ACTIVATE 'ウィンドウ' [/POS[=]左,上,幅,高さ]\n\ + [MIN|MAX|RESTORE] ['タイトル']\n\n\ +ウィンドウ 外見を変更するウィンドウのタイトルです。\n\ +/POS ウィンドウの位置と大きさを指定します。\n\ +MIN ウィンドウを最小化します。\n\ +MAX ウィンドウを最大化します。\n\ +RESTORE ウィンドウを元のサイズに戻します。\n\ +タイトル 新しいタイトルです。\n" -STRING_HELP1, "—˜—p‰Â”\\‚È‚·‚ׂẴRƒ}ƒ“ƒh‚̈ꗗ‚ƁA‚»‚Ìà–¾B\n\n\ - ƒRƒ}ƒ“ƒh /? “Á’è‚̃Rƒ}ƒ“ƒh‚ÉŠÖ‚·‚éÚ×î•ñ\n\n\ -? —˜—p‰Â”\\‚È‚·‚ׂẴRƒ}ƒ“ƒh‚̈ꗗ (à–¾‚È‚µ)B\n\ -ALIAS ƒGƒCƒŠƒAƒX‚̐ݒè‚â‰ðœ‚ð‚µ‚½‚èAƒGƒCƒŠƒAƒX‚ð•\\ަ‚µ‚½‚肵‚Ü‚·B\n\ -ATTRIB ƒtƒ@ƒCƒ‹‘®«‚ð•\\ަ‚Ü‚½‚͕ύX‚µ‚Ü‚·B\n\ -BEEP ƒXƒs[ƒJ‚©‚çƒr[ƒv‰¹‚ð–‚炵‚Ü‚·B\n\ -CALL ƒoƒbƒ` ƒvƒƒOƒ‰ƒ€‚ð•ʂ̃oƒbƒ` ƒvƒƒOƒ‰ƒ€‚©‚çŒÄ‚яo‚µ‚Ü‚·B\n\ -CD Œ»Ý‚̃fƒBƒŒƒNƒgƒŠ‚ð•ύX‚µ‚½‚èAƒfƒBƒŒƒNƒgƒŠ–¼‚ð•\\ަ‚µ‚½‚肵‚Ü‚·B\n\ -CHCP Œ»Ý‚̃R[ƒh ƒy[ƒW”ԍ†‚ð•\\ަ‚Ü‚½‚͐ݒ肵‚Ü‚·B\n\ -CHOICE ƒ†[ƒU[‚ª‘I‘ðŽˆ‚©‚çˆê‚‚ð‘I‘ð‚·‚é‚Ì‚ð‘Ò‚¿‚Ü‚·B\n\ -CLS ‰æ–Ê‚ðÁ‹Ž‚µ‚Ü‚·B\n\ -CMD ReactOS ƒRƒ}ƒ“ƒh ƒCƒ“ƒ^[ƒvƒŠƒ^‚̐V‚µ‚¢ƒCƒ“ƒXƒ^ƒ“ƒX‚ðŠJŽn‚µ‚Ü‚·B\n\ -COLOR ƒRƒ“ƒ\\[ƒ‹‚̃fƒtƒHƒ‹ƒg‚Ì‘OŒiF‚¨‚æ‚Ñ”wŒiF‚ðÝ’肵‚Ü‚·B\n\ -COPY 1 ‚‚܂½‚Í•¡”‚̃tƒ@ƒCƒ‹‚ð•ʂ̏ꏊ‚ɃRƒs[‚µ‚Ü‚·B\n\ -DATE “ú•t‚ð•\\ަ‚Ü‚½‚͐ݒ肵‚Ü‚·B\n\ -DELAY n •bA‚Ü‚½‚Í n ƒ~ƒŠ•b‘Ò‹@‚µ‚Ü‚·B\n\ -DELETE 1 ‚‚܂½‚Í•¡”‚̃tƒ@ƒCƒ‹‚ðíœ‚µ‚Ü‚·B\n\ -DIR ƒfƒBƒŒƒNƒgƒŠ’†‚̃tƒ@ƒCƒ‹‚ƃTƒuƒfƒBƒŒƒNƒgƒŠ‚ðˆê——•\\ަ‚µ‚Ü‚·B\n\ -ECHO ƒƒbƒZ[ƒW‚ð•\\ަ‚µ‚½‚èAƒRƒ}ƒ“ƒh ƒGƒR[‚Ì ON ‚Æ OFF ‚ðØ‚è‘Ö‚¦‚Ü‚·B\n\ -ERASE 1 ‚‚܂½‚Í•¡”‚̃tƒ@ƒCƒ‹‚ðíœ‚µ‚Ü‚·B\n\ -EXIT CMD.exe (ƒRƒ}ƒ“ƒh ƒ‰ƒCƒ“ ƒCƒ“ƒ^[ƒvƒŠƒ^) ‚ðI—¹‚µ‚Ü‚·B\n\ -FOR Žw’肳‚ꂽƒRƒ}ƒ“ƒh‚ðƒtƒ@ƒCƒ‹ ƒZƒbƒg‚ÌŠeƒtƒ@ƒCƒ‹‚ɑ΂µ‚ÄŽÀs‚µ‚Ü‚·B\n\ -FREE ƒfƒBƒXƒN‚̋󂫗e—Ê\n\ -GOTO ƒoƒbƒ` ƒvƒƒOƒ‰ƒ€“à‚́Aƒ‰ƒxƒ‹‚ÅŽw’肳‚ê‚Ä‚¢‚és‚֐§Œä‚ðˆÚ“®‚µ‚Ü‚·B\n\ -HELP ReactOS ƒRƒ}ƒ“ƒh‚̃wƒ‹ƒvî•ñ‚ð’ñ‹Ÿ‚µ‚Ü‚·B\n\ -HISTORY Žg—p‚³‚ꂽ‚·‚ׂẴRƒ}ƒ“ƒh‚ðˆê——•\\ަ‚µ‚Ü‚·B\n\ -IF ƒoƒbƒ` ƒvƒƒOƒ‰ƒ€’†‚ÅðŒˆ—‚ðŽÀs‚µ‚Ü‚·B\n\ -LABEL ƒfƒBƒXƒN‚̃{ƒŠƒ…[ƒ€ ƒ‰ƒxƒ‹‚ð•\\ަ‚Ü‚½‚͕ύX‚µ‚Ü‚·B\n\ -MD ƒfƒBƒŒƒNƒgƒŠ‚ðì¬‚µ‚Ü‚·B\n\ -MKDIR ƒfƒBƒŒƒNƒgƒŠ‚ðì¬‚µ‚Ü‚·B\n\ +STRING_HELP1, "利用可能なすべてのコマンドの一覧と、その説明。\n\n\ + コマンド /? 特定のコマンドに関する詳細情報\n\n\ +? 利用可能なすべてのコマンドの一覧 (説明なし)。\n\ +ALIAS エイリアスの設定や解除をしたり、エイリアスを表示したりします。\n\ +ATTRIB ファイル属性を表示または変更します。\n\ +BEEP スピーカからビープ音を鳴らします。\n\ +CALL バッチ プログラムを別のバッチ プログラムから呼び出します。\n\ +CD 現在のディレクトリを変更したり、ディレクトリ名を表示したりします。\n\ +CHCP 現在のコード ページ番号を表示または設定します。\n\ +CHOICE ユーザーが選択肢から一つを選択するのを待ちます。\n\ +CLS 画面を消去します。\n\ +CMD ReactOS コマンド インタープリタの新しいインスタンスを開始します。\n\ +COLOR コンソールのデフォルトの前景色および背景色を設定します。\n\ +COPY 1 つまたは複数のファイルを別の場所にコピーします。\n\ +DATE 日付を表示または設定します。\n\ +DELAY n 秒、または n ミリ秒待機します。\n\ +DELETE 1 つまたは複数のファイルを削除します。\n\ +DIR ディレクトリ中のファイルとサブディレクトリを一覧表示します。\n\ +ECHO メッセージを表示したり、コマンド エコーの ON と OFF を切り替えます。\n\ +ERASE 1 つまたは複数のファイルを削除します。\n\ +EXIT CMD.exe (コマンド ライン インタープリタ) を終了します。\n\ +FOR 指定されたコマンドをファイル セットの各ファイルに対して実行します。\n\ +FREE ディスクの空き容量\n\ +GOTO バッチ プログラム内の、ラベルで指定されている行へ制御を移動します。\n\ +HELP ReactOS コマンドのヘルプ情報を提供します。\n\ +HISTORY 使用されたすべてのコマンドを一覧表示します。\n\ +IF バッチ プログラム中で条件処理を実行します。\n\ +LABEL ディスクのボリューム ラベルを表示または変更します。\n\ +MD ディレクトリを作成します。\n\ +MKDIR ディレクトリを作成します。\n\ MKLINK Creates a filesystem link object.\n\ -MOVE ƒtƒ@ƒCƒ‹‚ðˆÚ“®‚¨‚æ‚уtƒ@ƒCƒ‹‚ƃfƒBƒŒƒNƒgƒŠ–¼‚ð•ύX‚µ‚Ü‚·B\n\ -PATH ŽÀs‰Â”\\ƒtƒ@ƒCƒ‹‚ÌŒŸõƒpƒX‚ð•\\ަ‚Ü‚½‚͐ݒ肵‚Ü‚·B\n\ -PAUSE ƒoƒbƒ` ƒvƒƒOƒ‰ƒ€‚̏ˆ—‚ðˆêŽž’âŽ~‚µAƒƒbƒZ[ƒW‚ð•\\ަ‚µ‚Ü‚·B\n\ -POPD Œ»Ý‚̃fƒBƒŒƒNƒgƒŠ‚ð PUSHD ƒRƒ}ƒ“ƒh‚Å‹L‰¯‚³‚ꂽƒfƒBƒŒƒNƒgƒŠ‚É\n\ - •ύX‚µ‚Ü‚·B\n\ -PROMPT ƒRƒ}ƒ“ƒh ƒvƒƒ“ƒvƒg‚ð•ύX‚µ‚Ü‚·B\n\ -PUSHD Œ»Ý‚̃fƒBƒŒƒNƒgƒŠ‚ð•Û‘¶‚µAŽw’肵‚½ƒfƒBƒŒƒNƒgƒŠ‚ɕύX‚µ‚Ü‚·B\n\ -RD ƒfƒBƒŒƒNƒgƒŠ‚ðíœ‚µ‚Ü‚·B\n\ -REM ƒoƒbƒ` ƒtƒ@ƒCƒ‹‚ɃRƒƒ“ƒg (’Žß) ‚ð‹L˜^‚µ‚Ü‚·B\n\ -REN 1 ‚‚܂½‚Í•¡”‚̃tƒ@ƒCƒ‹‚Ì–¼‘O‚ð•ύX‚µ‚Ü‚·B\n\ -RENAME 1 ‚‚܂½‚Í•¡”‚̃tƒ@ƒCƒ‹‚Ì–¼‘O‚ð•ύX‚µ‚Ü‚·B\n\ -RMDIR ƒfƒBƒŒƒNƒgƒŠ‚ðíœ‚µ‚Ü‚·B\n\ -SCREEN ƒJ[ƒ\\ƒ‹‚ðˆÚ“®‚³‚¹‚Ü‚·BˆÚ“®ŒãA•¶Žš—ñ‚ð“ü—Í‚·‚邱‚Æ‚à‚Å‚«‚Ü‚·B\n\ -SET ŠÂ‹«•ϐ”‚ð•\\ަAÝ’èA‚Ü‚½‚͍폜‚µ‚Ü‚·B\n\ -SHIFT ƒJ[ƒ\\ƒ‹‚ðˆÚ“®‚³‚¹‚Ü‚·BˆÚ“®ŒãA•¶Žš—ñ‚ð“ü—Í‚·‚邱‚Æ‚à‚Å‚«‚Ü‚·B\n" -STRING_HELP2, "START •ʂ̃EƒBƒ“ƒhƒE‚ð‹N“®‚µAŽw’肵‚½ƒvƒƒOƒ‰ƒ€‚Ü‚½‚̓Rƒ}ƒ“ƒh‚ðŽÀs‚µ‚Ü‚·B\n\ -TIME ƒVƒXƒeƒ€Žž‚ð•\\ަ‚Ü‚½‚͐ݒ肵‚Ü‚·B\n\ -TIMER 10 ŒÂ‚܂ł̃XƒgƒbƒvƒEƒHƒbƒ`‚ðŽg‚¤‚±‚Æ‚ª‚Å‚«‚Ü‚·B\n\ -TITLE ƒRƒ}ƒ“ƒh ƒvƒƒ“ƒvƒg ƒEƒBƒ“ƒhƒE‚̃EƒBƒ“ƒhƒE ƒ^ƒCƒgƒ‹‚ðÝ’肵‚Ü‚·B\n\ -TYPE ƒeƒLƒXƒg ƒtƒ@ƒCƒ‹‚Ü‚½‚̓tƒ@ƒCƒ‹‚Ì“à—e‚ð•\\ަ‚µ‚Ü‚·B\n\ -VER ReactOS ‚̃o[ƒWƒ‡ƒ“‚ð•\\ަ‚µ‚Ü‚·B\n\ -VERIFY ƒtƒ@ƒCƒ‹‚ªƒfƒBƒXƒN‚ɐ³‚µ‚­‘‚«ž‚܂ꂽ‚±‚Æ‚ðÆ‡‚·‚é‚©‚Ç‚¤‚©‚ð\n\ - Žwަ‚µ‚Ü‚·B\n\ -VOL ƒfƒBƒXƒN‚̃{ƒŠƒ…[ƒ€ ƒ‰ƒxƒ‹‚ƃVƒŠƒAƒ‹”ԍ†‚ð•\\ަ‚µ‚Ü‚·B\n" +MOVE ファイルを移動およびファイルとディレクトリ名を変更します。\n\ +PATH 実行可能ファイルの検索パスを表示または設定します。\n\ +PAUSE バッチ プログラムの処理を一時停止し、メッセージを表示します。\n\ +POPD 現在のディレクトリを PUSHD コマンドで記憶されたディレクトリに\n\ + 変更します。\n\ +PROMPT コマンド プロンプトを変更します。\n\ +PUSHD 現在のディレクトリを保存し、指定したディレクトリに変更します。\n\ +RD ディレクトリを削除します。\n\ +REM バッチ ファイルにコメント (注釈) を記録します。\n\ +REN 1 つまたは複数のファイルの名前を変更します。\n\ +RENAME 1 つまたは複数のファイルの名前を変更します。\n\ +RMDIR ディレクトリを削除します。\n\ +SCREEN カーソルを移動させます。移動後、文字列を入力することもできます。\n\ +SET 環境変数を表示、設定、または削除します。\n\ +SHIFT カーソルを移動させます。移動後、文字列を入力することもできます。\n" +STRING_HELP2, "START 別のウィンドウを起動し、指定したプログラムまたはコマンドを実行します。\n\ +TIME システム時刻を表示または設定します。\n\ +TIMER 10 個までのストップウォッチを使うことができます。\n\ +TITLE コマンド プロンプト ウィンドウのウィンドウ タイトルを設定します。\n\ +TYPE テキスト ファイルまたはファイルの内容を表示します。\n\ +VER ReactOS のバージョンを表示します。\n\ +VERIFY ファイルがディスクに正しく書き込まれたことを照合するかどうかを\n\ + 指示します。\n\ +VOL ディスクのボリューム ラベルとシリアル番号を表示します。\n" STRING_CHOICE_OPTION, "YN" STRING_COPY_OPTION, "YNA" -STRING_ALIAS_ERROR, "ƒGƒCƒŠƒAƒX“WŠJŒã‚̃Rƒ}ƒ“ƒh ƒ‰ƒCƒ“‚ª’·‚·‚¬‚Ü‚·!\n" +STRING_ALIAS_ERROR, "エイリアス展開後のコマンド ラインが長すぎます!\n" STRING_ASSOC_ERROR, "File association not found for extension %s\n" -STRING_BATCH_ERROR, "ƒoƒbƒ` ƒtƒ@ƒCƒ‹‚ðŠJ‚­‚Æ‚«‚ɃGƒ‰[‚ª”­¶‚µ‚Ü‚µ‚½B\n" -STRING_CHCP_ERROR1, "Œ»Ý‚̃R[ƒh ƒy[ƒW: %u\n" -STRING_CHCP_ERROR4, "–³Œø‚ȃR[ƒh ƒy[ƒW‚Å‚·\n" -STRING_CHOICE_ERROR, "–³Œø‚ȃIƒvƒVƒ‡ƒ“‚Å‚·BŠú‘Ò‚³‚ê‚é‘Ž®: /C[:]ƒIƒvƒVƒ‡ƒ“" -STRING_CHOICE_ERROR_TXT, "–³Œø‚ȃIƒvƒVƒ‡ƒ“‚Å‚·BŠú‘Ò‚³‚ê‚é‘Ž®: /T[:]c,nn" -STRING_CHOICE_ERROR_OPTION, "–³Œø‚ȃIƒvƒVƒ‡ƒ“‚Å‚·: %s" -STRING_CMD_ERROR1, "ƒtƒ@ƒCƒ‹ %s ‚©‚烊ƒ_ƒCƒŒƒNƒg“ü—͂ł«‚Ü‚¹‚ñB\n" -STRING_CMD_ERROR2, "ƒf[ƒ^‚ðƒpƒCƒv‚·‚邽‚߂̈ꎞƒtƒ@ƒCƒ‹ì¬‚̂Ƃ«‚ɃGƒ‰[‚ª”­¶‚µ‚Ü‚µ‚½B\n" -STRING_CMD_ERROR3, "ƒtƒ@ƒCƒ‹ %s ‚Ö‚ÆƒŠƒ_ƒCƒŒƒNƒg‚Å‚«‚Ü‚¹‚ñB\n" -STRING_CMD_ERROR4, "%s ‚ðŽÀs‚µ‚Ä‚¢‚Ü‚·...\n" -STRING_CMD_ERROR5, "cmdexit.bat ‚ðŽÀs‚µ‚Ä‚¢‚Ü‚·...\n" -STRING_COLOR_ERROR1, "ƒGƒ‰[! “¯‚¶F‚ªŽw’肳‚ê‚Ü‚µ‚½B\n (‘OŒiF‚Æ”wŒiF‚𓯂¶F‚É‚·‚邱‚Ƃ͂ł«‚Ü‚¹‚ñ)" -STRING_COLOR_ERROR2, "F‚ÌŽw’è‚É–â‘肪‚ ‚è‚Ü‚·B" +STRING_BATCH_ERROR, "バッチ ファイルを開くときにエラーが発生しました。\n" +STRING_CHCP_ERROR1, "現在のコード ページ: %u\n" +STRING_CHCP_ERROR4, "無効なコード ページです\n" +STRING_CHOICE_ERROR, "無効なオプションです。期待される書式: /C[:]オプション" +STRING_CHOICE_ERROR_TXT, "無効なオプションです。期待される書式: /T[:]c,nn" +STRING_CHOICE_ERROR_OPTION, "無効なオプションです: %s" +STRING_CMD_ERROR1, "ファイル %s からリダイレクト入力できません。\n" +STRING_CMD_ERROR2, "データをパイプするための一時ファイル作成のときにエラーが発生しました。\n" +STRING_CMD_ERROR3, "ファイル %s へとリダイレクトできません。\n" +STRING_CMD_ERROR4, "%s を実行しています...\n" +STRING_CMD_ERROR5, "cmdexit.bat を実行しています...\n" +STRING_COLOR_ERROR1, "エラー! 同じ色が指定されました。\n (前景色と背景色を同じ色にすることはできません)" +STRING_COLOR_ERROR2, "色の指定に問題があります。" STRING_COLOR_ERROR3, "Color %x\n" -STRING_COLOR_ERROR4, "ƒGƒ‰[! “¯‚¶F‚ªŽw’肳‚ê‚Ü‚µ‚½B" -STRING_CONSOLE_ERROR, "•s–¾‚ȃGƒ‰[: %d\n" -STRING_COPY_ERROR1, "ƒGƒ‰[: Œ³‚̃tƒ@ƒCƒ‹ %s ‚ðŠJ‚¯‚Ü‚¹‚ñ!\n" -STRING_COPY_ERROR2, "ƒGƒ‰[: ƒRƒs[Œ³‚ƃRƒs[æ‚ªˆê‚Å‚·!\n" -STRING_COPY_ERROR3, "Žw’èæ‚ւ̏‘‚«ž‚݂ŃGƒ‰[‚ª”­¶‚µ‚Ü‚µ‚½!\n" -STRING_COPY_ERROR4, "ƒGƒ‰[: ‚Ü‚¾ŽÀ‘•‚³‚ê‚Ä‚¢‚Ü‚¹‚ñ!\n" -STRING_DATE_ERROR, "–³Œø‚È“ú•t‚Å‚·B" -STRING_DEL_ERROR5, "ƒtƒ@ƒCƒ‹ %s ‚͍폜‚³‚ê‚Ü‚·! " -STRING_DEL_ERROR6, "‚æ‚낵‚¢‚Å‚·‚© (Y/N)?" -STRING_DEL_ERROR7, "íœ‚µ‚Ä‚¢‚Ü‚·: %s\n" -STRING_ERROR_ERROR1, "•s–¾‚ȃGƒ‰[‚Å‚·! ƒGƒ‰[ ƒR[ƒh: 0x%lx\n" -STRING_ERROR_ERROR2, "\\•¶ƒGƒ‰[" -STRING_FOR_ERROR1, "–½—ß•¶’†‚É 'in' ‚ª•s‘«‚µ‚Ä‚¢‚Ü‚·B" -STRING_FOR_ERROR2, "ЇŒÊ‚ªŒ©‚‚©‚è‚Ü‚¹‚ñB" -STRING_FOR_ERROR3, "'do' ‚ª•s‘«‚µ‚Ä‚¢‚Ü‚·B" -STRING_FOR_ERROR4, "'do' ‚ÌŒã‚ɃRƒ}ƒ“ƒh‚ª‚ ‚è‚Ü‚¹‚ñB" -STRING_FREE_ERROR1, "–³Œø‚ȃhƒ‰ƒCƒu‚Å‚·B" -STRING_FREE_ERROR2, "ƒ‰ƒxƒ‹‚ª‚ ‚è‚Ü‚¹‚ñB" -STRING_GOTO_ERROR1, "GOTO ‚Ƀ‰ƒxƒ‹‚ªŽw’肳‚ê‚Ä‚¢‚Ü‚¹‚ñB" -STRING_GOTO_ERROR2, "ƒ‰ƒxƒ‹ '%s' ‚ªŒ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½B\n" +STRING_COLOR_ERROR4, "エラー! 同じ色が指定されました。" +STRING_CONSOLE_ERROR, "不明なエラー: %d\n" +STRING_COPY_ERROR1, "エラー: 元のファイル %s を開けません!\n" +STRING_COPY_ERROR2, "エラー: コピー元とコピー先が一緒です!\n" +STRING_COPY_ERROR3, "指定先への書き込みでエラーが発生しました!\n" +STRING_COPY_ERROR4, "エラー: まだ実装されていません!\n" +STRING_DATE_ERROR, "無効な日付です。" +STRING_DEL_ERROR5, "ファイル %s は削除されます! " +STRING_DEL_ERROR6, "よろしいですか (Y/N)?" +STRING_DEL_ERROR7, "削除しています: %s\n" +STRING_ERROR_ERROR1, "不明なエラーです! エラー コード: 0x%lx\n" +STRING_ERROR_ERROR2, "構文エラー" +STRING_FOR_ERROR1, "命令文中に 'in' が不足しています。" +STRING_FOR_ERROR2, "括弧が見つかりません。" +STRING_FOR_ERROR3, "'do' が不足しています。" +STRING_FOR_ERROR4, "'do' の後にコマンドがありません。" +STRING_FREE_ERROR1, "無効なドライブです。" +STRING_FREE_ERROR2, "ラベルがありません。" +STRING_GOTO_ERROR1, "GOTO にラベルが指定されていません。" +STRING_GOTO_ERROR2, "ラベル '%s' が見つかりませんでした。\n" -STRING_MD_ERROR, "‚·‚łɃfƒBƒŒƒNƒgƒŠ“à‚ɃTƒuƒfƒBƒŒƒNƒgƒŠ‚©ƒtƒ@ƒCƒ‹‚ª‘¶Ý‚µ‚Ä‚¢‚Ü‚·B\n" -STRING_MD_ERROR2, "V‚µ‚¢ƒtƒHƒ‹ƒ_‚ւ̃pƒX‚ª‘¶Ý‚µ‚Ä‚¢‚Ü‚¹‚ñB\n" +STRING_MD_ERROR, "すでにディレクトリ内にサブディレクトリかファイルが存在しています。\n" +STRING_MD_ERROR2, "新しいフォルダへのパスが存在していません。\n" STRING_MOVE_ERROR1, "[OK]\n" -STRING_MOVE_ERROR2, "[ƒGƒ‰[]\n" +STRING_MOVE_ERROR2, "[エラー]\n" -STRING_REN_ERROR1, "MoveFile() failed. ƒGƒ‰[: %lu\n" +STRING_REN_ERROR1, "MoveFile() failed. エラー: %lu\n" -STRING_START_ERROR1, "Œ»Žž“_‚ł̓oƒbƒ`‚̓Tƒ|[ƒg‚³‚ê‚Ä‚¢‚Ü‚¹‚ñ!" +STRING_START_ERROR1, "現時点ではバッチはサポートされていません!" -STRING_TIME_ERROR1, "–³Œø‚ÈŽž‚Å‚·B" +STRING_TIME_ERROR1, "無効な時刻です。" -STRING_TYPE_ERROR1, "'/%s' ‚Í–³Œø‚ȃIƒvƒVƒ‡ƒ“‚Å‚·\n" +STRING_TYPE_ERROR1, "'/%s' は無効なオプションです\n" -STRING_WINDOW_ERROR1, "ƒEƒBƒ“ƒhƒE‚ªŒ©‚‚©‚è‚Ü‚¹‚ñB" +STRING_WINDOW_ERROR1, "ウィンドウが見つかりません。" -STRING_ERROR_PARAMETERF_ERROR, "ƒpƒ‰ƒ[ƒ^‚̏‘Ž®‚ªŠÔˆá‚Á‚Ä‚¢‚Ü‚·B - %c\n" -STRING_ERROR_INVALID_SWITCH, "–³Œø‚ȃXƒCƒbƒ`‚Å‚·B - /%c\n" -STRING_ERROR_TOO_MANY_PARAMETERS, "ƒpƒ‰ƒ[ƒ^‚ª‘½‚·‚¬‚Ü‚·B - %s\n" -STRING_ERROR_PATH_NOT_FOUND, "ƒpƒX‚ªŒ©‚‚©‚è‚Ü‚¹‚ñB\n" -STRING_ERROR_FILE_NOT_FOUND, "ƒtƒ@ƒCƒ‹‚ªŒ©‚‚©‚è‚Ü‚¹‚ñB\n" -STRING_ERROR_REQ_PARAM_MISSING, "•K—v‚ȃpƒ‰ƒ[ƒ^‚ª•s‘«‚µ‚Ä‚¢‚Ü‚·B\n" -STRING_ERROR_INVALID_DRIVE, "–³Œø‚ȃhƒ‰ƒCƒuŽw’è‚Å‚·B\n" -STRING_ERROR_INVALID_PARAM_FORMAT, "–³Œø‚ȃpƒ‰ƒ[ƒ^‚̏‘Ž®‚Å‚·B - %s\n" -STRING_ERROR_BADCOMMAND, "ƒRƒ}ƒ“ƒh‚Ü‚½‚̓tƒ@ƒCƒ‹–¼‚ªŠÔˆá‚Á‚Ä‚¢‚Ü‚·B - %s\n" -STRING_ERROR_OUT_OF_MEMORY, "ƒƒ‚ƒŠ•s‘«ƒGƒ‰[B\n" -STRING_ERROR_CANNOTPIPE, "ƒGƒ‰[! ƒpƒCƒv‚Å‚«‚Ü‚¹‚ñ! ˆêŽžƒtƒ@ƒCƒ‹‚ðŠJ‚¯‚Ü‚¹‚ñ!\n" -STRING_ERROR_D_PAUSEMSG, "‘±s‚·‚é‚ɂ͉½‚©ƒL[‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢ . . ." -STRING_ERROR_DRIVER_NOT_READY, "ƒhƒ‰ƒCƒu‚̏€”õ‚ª‚Å‚«‚Ä‚¢‚Ü‚¹‚ñB" +STRING_ERROR_PARAMETERF_ERROR, "パラメータの書式が間違っています。 - %c\n" +STRING_ERROR_INVALID_SWITCH, "無効なスイッチです。 - /%c\n" +STRING_ERROR_TOO_MANY_PARAMETERS, "パラメータが多すぎます。 - %s\n" +STRING_ERROR_PATH_NOT_FOUND, "パスが見つかりません。\n" +STRING_ERROR_FILE_NOT_FOUND, "ファイルが見つかりません。\n" +STRING_ERROR_REQ_PARAM_MISSING, "必要なパラメータが不足しています。\n" +STRING_ERROR_INVALID_DRIVE, "無効なドライブ指定です。\n" +STRING_ERROR_INVALID_PARAM_FORMAT, "無効なパラメータの書式です。 - %s\n" +STRING_ERROR_BADCOMMAND, "コマンドまたはファイル名が間違っています。 - %s\n" +STRING_ERROR_OUT_OF_MEMORY, "メモリ不足エラー。\n" +STRING_ERROR_CANNOTPIPE, "エラー! パイプできません! 一時ファイルを開けません!\n" +STRING_ERROR_D_PAUSEMSG, "続行するには何かキーを押してください . . ." +STRING_ERROR_DRIVER_NOT_READY, "ドライブの準備ができていません。" STRING_PATH_ERROR, "CMD: Not in environment '%s'\n" @@ -706,21 +706,21 @@ STRING_REPLACE_ERROR7, "Extended Error 32\n" STRING_REACTOS_VERSION, "ReactOS Operating System [Version %s-%s]\n" STRING_CMD_SHELLINFO, "\nReactOS Command Line Interpreter\nVersion %s %s" STRING_VERSION_RUNVER, " running on %s" -STRING_COPY_FILE , " %d ŒÂ‚̃tƒ@ƒCƒ‹‚ªƒRƒs[‚³‚ê‚Ü‚µ‚½\n" -STRING_DELETE_WIPE, "Š®‘S‚ɏÁ‹Ž‚³‚ê‚Ü‚µ‚½B" -STRING_FOR_ERROR, "–³Œø‚ȕϐ”‚ªŽw’肳‚ê‚Ü‚µ‚½B" -STRING_SCREEN_COL, "s‚Ì’l‚ª–³Œø‚Å‚·B" -STRING_SCREEN_ROW, "—ñ‚Ì’l‚ª–³Œø‚Å‚·B" -STRING_TIMER_TIME "ƒ^ƒCƒ}[ %d ‚Í %s ‚Å‚·B: " +STRING_COPY_FILE , " %d 個のファイルがコピーされました\n" +STRING_DELETE_WIPE, "完全に消去されました。" +STRING_FOR_ERROR, "無効な変数が指定されました。" +STRING_SCREEN_COL, "行の値が無効です。" +STRING_SCREEN_ROW, "列の値が無効です。" +STRING_TIMER_TIME "タイマー %d は %s です。: " STRING_MKLINK_CREATED_SYMBOLIC, "Symbolic link created for %s <<===>> %s\n" STRING_MKLINK_CREATED_HARD, "Hard link created for %s <<===>> %s\n" STRING_MKLINK_CREATED_JUNCTION, "Junction created for %s <<===>> %s\n" STRING_MORE, "More? " STRING_CANCEL_BATCH_FILE, "\r\nCtrl-Break pressed. Cancel batch file? (Yes/No/All) " -STRING_INVALID_OPERAND, "–³Œø‚ȃIƒyƒ‰ƒ“ƒh‚Å‚·B" +STRING_INVALID_OPERAND, "無効なオペランドです。" STRING_EXPECTED_CLOSE_PAREN, "Expected ')'" STRING_EXPECTED_NUMBER_OR_VARIABLE,"Expected number or variable name." -STRING_SYNTAX_COMMAND_INCORRECT, "ƒRƒ}ƒ“ƒh‚̍\\•¶‚ªŠÔˆá‚Á‚Ä‚¢‚Ü‚·B" +STRING_SYNTAX_COMMAND_INCORRECT, "コマンドの構文が間違っています。" END diff --git a/base/shell/explorer-new/CMakeLists.txt b/base/shell/explorer-new/CMakeLists.txt index b2494a84a00..173c065bbfa 100644 --- a/base/shell/explorer-new/CMakeLists.txt +++ b/base/shell/explorer-new/CMakeLists.txt @@ -5,6 +5,7 @@ list(APPEND SOURCE desktop.c dragdrop.c explorer.c + settings.c startmnu.c taskband.c taskswnd.c diff --git a/base/shell/explorer-new/dragdrop.c b/base/shell/explorer-new/dragdrop.c index c0fc1e43bf6..2afb664d9c9 100644 --- a/base/shell/explorer-new/dragdrop.c +++ b/base/shell/explorer-new/dragdrop.c @@ -62,6 +62,9 @@ static VOID IDropTargetImpl_Free(IDropTargetImpl *This) { IDropTargetHelper_Release(This->DropTargetHelper); + HeapFree(hProcessHeap, + 0, + This); } static ULONG STDMETHODCALLTYPE @@ -127,10 +130,10 @@ CreateDropTarget(IN HWND hwndTarget, IDropTargetImpl *This; HRESULT hr; - This = (IDropTargetImpl *)HeapAlloc(hProcessHeap, - 0, - FIELD_OFFSET(IDropTargetImpl, - Formats[nSupportedFormats])); + This = HeapAlloc(hProcessHeap, + 0, + FIELD_OFFSET(IDropTargetImpl, + Formats[nSupportedFormats])); if (This != NULL) { ZeroMemory(This, @@ -159,7 +162,7 @@ CreateDropTarget(IN HWND hwndTarget, NULL, CLSCTX_INPROC_SERVER, &IID_IDropTargetHelper, - (PVOID)&This->DropTargetHelper); + (PVOID *)&This->DropTargetHelper); if (!SUCCEEDED(hr)) { diff --git a/base/shell/explorer-new/explorer.c b/base/shell/explorer-new/explorer.c index cfa01d19c12..61506e59574 100644 --- a/base/shell/explorer-new/explorer.c +++ b/base/shell/explorer-new/explorer.c @@ -311,7 +311,7 @@ GetVersionInfoString(IN TCHAR *szFileName, (LPVOID *)&lpTranslate, &cbTranslate); - for (i = 0;i < (cbTranslate / sizeof(LANGCODEPAGE));i++) + for (i = 0; i < cbTranslate / sizeof(LANGCODEPAGE); i++) { /* If the bottom eight bits of the language id's match, use this version information (since this @@ -370,6 +370,7 @@ _tWinMain(IN HINSTANCE hInstance, hExplorerInstance = hInstance; hProcessHeap = GetProcessHeap(); + LoadAdvancedSettings(); hUser32 = GetModuleHandle(TEXT("USER32.DLL")); if (hUser32 != NULL) @@ -409,7 +410,12 @@ _tWinMain(IN HINSTANCE hInstance, } if (Tray != NULL) + { + RegisterHotKey(NULL, IDHK_RUN, MOD_WIN, 'R'); TrayMessageLoop(Tray); + ITrayWindow_Release(Tray); + UnregisterTrayWindowClass(); + } if (hShellDesktop != NULL) DesktopDestroyShellWindow(hShellDesktop); diff --git a/base/shell/explorer-new/lang/bg-BG.rc b/base/shell/explorer-new/lang/bg-BG.rc index 68de01a2363..2f1894036cb 100644 --- a/base/shell/explorer-new/lang/bg-BG.rc +++ b/base/shell/explorer-new/lang/bg-BG.rc @@ -70,14 +70,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Taskbar" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - GROUPBOX "Облик на задачната лента", IDC_STATIC, 6,6,240,121 + GROUPBOX "Облик на задачната лента", IDC_STATIC, 6,6,240,104 CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN, 13,18,224,21 AUTOCHECKBOX "За&ключванена задачната лента", IDC_TASKBARPROP_LOCK, 13,45,200,10 AUTOCHECKBOX "Задачната лента се крие &сама", IDC_TASKBARPROP_HIDE, 13,58,200,10 AUTOCHECKBOX "Задачната лента стои &върху останалите прозорци", IDC_TASKBARPROP_ONTOP, 13,71,200,10 AUTOCHECKBOX "&Скупчване на сходните бутони в задачната лента", IDC_TASKBARPROP_GROUP, 13,84,200,10 AUTOCHECKBOX "Показване на &бърз пуск", IDC_TASKBARPROP_SHOWQL, 13,97,200,10 - AUTOCHECKBOX "&Показване на преглед на прозорците (изображенийца)", IDC_TASKBARPROP_WNDPREV, 13,110,200,10 END IDD_TASKBARPROP_STARTMENU DIALOGEX 0, 0, 252, 218 @@ -131,6 +130,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "Advanced options", IDC_STATIC, 6,6,240,121 AUTOCHECKBOX "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10 + AUTOCHECKBOX "&Показване на преглед на прозорците (изображенийца)", IDC_TASKBARPROP_WNDPREV, 13,31,200,10 END diff --git a/base/shell/explorer-new/lang/cs-CZ.rc b/base/shell/explorer-new/lang/cs-CZ.rc index 018d15b31a7..bd80de3caac 100644 --- a/base/shell/explorer-new/lang/cs-CZ.rc +++ b/base/shell/explorer-new/lang/cs-CZ.rc @@ -74,14 +74,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Hlavní panel" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - GROUPBOX "Vzhled hlavního panelu", IDC_STATIC, 6,6,240,121 + GROUPBOX "Vzhled hlavního panelu", IDC_STATIC, 6,6,240,104 CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN, 13,18,224,21 AUTOCHECKBOX "Uzamknout &hlavní panel", IDC_TASKBARPROP_LOCK, 13,45,200,10 AUTOCHECKBOX "&Automaticky sktývat hlavní panel", IDC_TASKBARPROP_HIDE, 13,58,200,10 AUTOCHECKBOX "&Zobrazit hlavní panel nad ostatními okny", IDC_TASKBARPROP_ONTOP, 13,71,200,10 AUTOCHECKBOX "&Seskupovat podobná tlačítka hlavního panelu", IDC_TASKBARPROP_GROUP, 13,84,200,10 AUTOCHECKBOX "Zobrazit &panel Snadné spuštění", IDC_TASKBARPROP_SHOWQL, 13,97,200,10 - AUTOCHECKBOX "Zobrazit &náhledy oken", IDC_TASKBARPROP_WNDPREV, 13,110,200,10 END IDD_TASKBARPROP_STARTMENU DIALOGEX 0, 0, 252, 218 @@ -135,6 +134,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "Advanced options", IDC_STATIC, 6,6,240,121 AUTOCHECKBOX "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10 + AUTOCHECKBOX "Zobrazit &náhledy oken", IDC_TASKBARPROP_WNDPREV, 13,31,200,10 END diff --git a/base/shell/explorer-new/lang/de-DE.rc b/base/shell/explorer-new/lang/de-DE.rc index a2394109b2e..dc3ab03f3d3 100644 --- a/base/shell/explorer-new/lang/de-DE.rc +++ b/base/shell/explorer-new/lang/de-DE.rc @@ -68,14 +68,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Taskleiste" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - GROUPBOX "Taskleiste", IDC_STATIC, 6,6,240,121 + GROUPBOX "Taskleiste", IDC_STATIC, 6,6,240,104 CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN, 13,18,224,21 AUTOCHECKBOX "Task&leiste fixieren", IDC_TASKBARPROP_LOCK, 13,45,200,10 AUTOCHECKBOX "Taskleiste a&utom. verstecken", IDC_TASKBARPROP_HIDE, 13,58,200,10 AUTOCHECKBOX "&Taskleiste immer im Vordergrund halten", IDC_TASKBARPROP_ONTOP, 13,71,200,10 AUTOCHECKBOX "Ähnliche Buttons &gruppieren", IDC_TASKBARPROP_GROUP, 13,84,200,10 AUTOCHECKBOX "Schnellstartleiste &anzeigen", IDC_TASKBARPROP_SHOWQL, 13,97,200,10 - AUTOCHECKBOX "Fenstervor&schau anzeigen", IDC_TASKBARPROP_WNDPREV, 13,110,200,10 END IDD_TASKBARPROP_STARTMENU DIALOGEX 0, 0, 252, 218 @@ -129,6 +128,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "Advanced options", IDC_STATIC, 6,6,240,121 AUTOCHECKBOX "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10 + AUTOCHECKBOX "Fenstervor&schau anzeigen", IDC_TASKBARPROP_WNDPREV, 13,31,200,10 END diff --git a/base/shell/explorer-new/lang/en-US.rc b/base/shell/explorer-new/lang/en-US.rc index 7615992d72e..0326e713eec 100644 --- a/base/shell/explorer-new/lang/en-US.rc +++ b/base/shell/explorer-new/lang/en-US.rc @@ -68,14 +68,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Taskbar" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - GROUPBOX "Taskbar appearance", IDC_STATIC, 6,6,240,121 + GROUPBOX "Taskbar appearance", IDC_STATIC, 6,6,240,104 CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN, 13,18,224,21 AUTOCHECKBOX "&Lock the taskbar", IDC_TASKBARPROP_LOCK, 13,45,200,10 AUTOCHECKBOX "A&uto-hide the taskbar", IDC_TASKBARPROP_HIDE, 13,58,200,10 AUTOCHECKBOX "Keep the &taskbar on top of other windows", IDC_TASKBARPROP_ONTOP, 13,71,200,10 AUTOCHECKBOX "&Group similar taskbar buttons", IDC_TASKBARPROP_GROUP, 13,84,200,10 AUTOCHECKBOX "Show &Quick Launch", IDC_TASKBARPROP_SHOWQL, 13,97,200,10 - AUTOCHECKBOX "&Show window previews (thumbnails)", IDC_TASKBARPROP_WNDPREV, 13,110,200,10 END IDD_TASKBARPROP_STARTMENU DIALOGEX 0, 0, 252, 218 @@ -129,6 +128,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "Advanced options", IDC_STATIC, 6,6,240,121 AUTOCHECKBOX "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10 + AUTOCHECKBOX "&Show window previews (thumbnails)", IDC_TASKBARPROP_WNDPREV, 13,31,200,10 END diff --git a/base/shell/explorer-new/lang/es-ES.rc b/base/shell/explorer-new/lang/es-ES.rc index 57683585395..974b537f339 100644 --- a/base/shell/explorer-new/lang/es-ES.rc +++ b/base/shell/explorer-new/lang/es-ES.rc @@ -77,14 +77,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Barra de tareas" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - GROUPBOX "Apariencia de la Barra de tareas ", IDC_STATIC, 6,6,240,121 + GROUPBOX "Apariencia de la Barra de tareas ", IDC_STATIC, 6,6,240,104 CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN, 13,18,224,21 AUTOCHECKBOX "&Bloquear la barra de tareas", IDC_TASKBARPROP_LOCK, 13,45,200,10 AUTOCHECKBOX "Ocultar automáticam&ente la barra de tareas", IDC_TASKBARPROP_HIDE, 13,58,200,10 AUTOCHECKBOX "Mantener la barra de tareas &siempre visible", IDC_TASKBARPROP_ONTOP, 13,71,200,10 AUTOCHECKBOX "&Agrupar botones similares de la barra de tareas", IDC_TASKBARPROP_GROUP, 13,84,200,10 AUTOCHECKBOX "Mostrar Inicio rápi&do", IDC_TASKBARPROP_SHOWQL, 13,97,200,10 - AUTOCHECKBOX "M&ostrar vista previa de las ventanas (miniaturas)", IDC_TASKBARPROP_WNDPREV, 13,110,200,10 END IDD_TASKBARPROP_STARTMENU DIALOGEX 0, 0, 252, 218 @@ -138,6 +137,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "Advanced options", IDC_STATIC, 6,6,240,121 AUTOCHECKBOX "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10 + AUTOCHECKBOX "M&ostrar vista previa de las ventanas (miniaturas)", IDC_TASKBARPROP_WNDPREV, 13,31,200,10 END diff --git a/base/shell/explorer-new/lang/fr-FR.rc b/base/shell/explorer-new/lang/fr-FR.rc index 3343f96d67b..dc9d0899e96 100644 --- a/base/shell/explorer-new/lang/fr-FR.rc +++ b/base/shell/explorer-new/lang/fr-FR.rc @@ -77,14 +77,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Taskbar" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - GROUPBOX "Taskbar appearance", IDC_STATIC, 6,6,240,121 + GROUPBOX "Taskbar appearance", IDC_STATIC, 6,6,240,104 CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN, 13,18,224,21 AUTOCHECKBOX "&Lock the taskbar", IDC_TASKBARPROP_LOCK, 13,45,200,10 AUTOCHECKBOX "A&uto-hide the taskbar", IDC_TASKBARPROP_HIDE, 13,58,200,10 AUTOCHECKBOX "Keep the &taskbar on top of other windows", IDC_TASKBARPROP_ONTOP, 13,71,200,10 AUTOCHECKBOX "&Group similar taskbar buttons", IDC_TASKBARPROP_GROUP, 13,84,200,10 AUTOCHECKBOX "Show &Quick Launch", IDC_TASKBARPROP_SHOWQL, 13,97,200,10 - AUTOCHECKBOX "&Show window previews (thumbnails)", IDC_TASKBARPROP_WNDPREV, 13,110,200,10 END IDD_TASKBARPROP_STARTMENU DIALOGEX 0, 0, 252, 218 @@ -138,6 +137,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "Advanced options", IDC_STATIC, 6,6,240,121 AUTOCHECKBOX "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10 + AUTOCHECKBOX "&Show window previews (thumbnails)", IDC_TASKBARPROP_WNDPREV, 13,31,200,10 END diff --git a/base/shell/explorer-new/lang/it-IT.rc b/base/shell/explorer-new/lang/it-IT.rc index 9c578b1802f..49c0ec2adcd 100644 --- a/base/shell/explorer-new/lang/it-IT.rc +++ b/base/shell/explorer-new/lang/it-IT.rc @@ -68,14 +68,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Barra delle applicazioni" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - GROUPBOX "Aspetto della Barra delle applicazioni", IDC_STATIC, 6,6,240,121 + GROUPBOX "Aspetto della Barra delle applicazioni", IDC_STATIC, 6,6,240,104 CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN, 13,18,224,21 AUTOCHECKBOX "&Bloccare la Barra delle applicazioni", IDC_TASKBARPROP_LOCK, 13,45,200,10 AUTOCHECKBOX "N&ascondere automaticamente", IDC_TASKBARPROP_HIDE, 13,58,200,10 AUTOCHECKBOX "Mantenere la Barra delle applicazioni in &primo piano", IDC_TASKBARPROP_ONTOP, 13,71,200,10 AUTOCHECKBOX "&Raggruppare pulsanti simili", IDC_TASKBARPROP_GROUP, 13,84,200,10 AUTOCHECKBOX "Mostrare Avvio &veloce", IDC_TASKBARPROP_SHOWQL, 13,97,200,10 - AUTOCHECKBOX "&Mostrare anteprima delle finestre (miniature)", IDC_TASKBARPROP_WNDPREV, 13,110,200,10 END IDD_TASKBARPROP_STARTMENU DIALOGEX 0, 0, 252, 218 @@ -129,6 +128,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "Advanced options", IDC_STATIC, 6,6,240,121 AUTOCHECKBOX "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10 + AUTOCHECKBOX "&Mostrare anteprima delle finestre (miniature)", IDC_TASKBARPROP_WNDPREV, 13,31,200,10 END diff --git a/base/shell/explorer-new/lang/ja-JP.rc b/base/shell/explorer-new/lang/ja-JP.rc index e855945b9bf..87c62a1352d 100644 --- a/base/shell/explorer-new/lang/ja-JP.rc +++ b/base/shell/explorer-new/lang/ja-JP.rc @@ -68,14 +68,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "タスクバー" FONT 9, "MS UI Gothic", 0, 0, 0x1 BEGIN - GROUPBOX "タスクバーの外観", IDC_STATIC, 6,6,240,121 + GROUPBOX "タスクバーの外観", IDC_STATIC, 6,6,240,104 CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN, 13,18,224,21 AUTOCHECKBOX "タスクバーを固定する(&L)", IDC_TASKBARPROP_LOCK, 13,45,200,10 AUTOCHECKBOX "タスクバーを自動的に隠す(&U)", IDC_TASKBARPROP_HIDE, 13,58,200,10 AUTOCHECKBOX "タスクバーを他のウインドウ上に保つ(&T)", IDC_TASKBARPROP_ONTOP, 13,71,200,10 AUTOCHECKBOX "類似するタスクバーボタンをグループ化する(&G)", IDC_TASKBARPROP_GROUP, 13,84,200,10 AUTOCHECKBOX "クイック起動の表示(&Q)", IDC_TASKBARPROP_SHOWQL, 13,97,200,10 - AUTOCHECKBOX "ウインドウのプレビューを表示する(サムネイル)(&S)", IDC_TASKBARPROP_WNDPREV, 13,110,200,10 END IDD_TASKBARPROP_STARTMENU DIALOGEX 0, 0, 252, 218 @@ -129,6 +128,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "Advanced options", IDC_STATIC, 6,6,240,121 AUTOCHECKBOX "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10 + AUTOCHECKBOX "ウインドウのプレビューを表示する(サムネイル)(&S)", IDC_TASKBARPROP_WNDPREV, 13,31,200,10 END diff --git a/base/shell/explorer-new/lang/ko-KR.rc b/base/shell/explorer-new/lang/ko-KR.rc index ce6179af88c..cd38d0cd29e 100644 --- a/base/shell/explorer-new/lang/ko-KR.rc +++ b/base/shell/explorer-new/lang/ko-KR.rc @@ -82,14 +82,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Taskbar" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - GROUPBOX "Taskbar appearance", IDC_STATIC, 6,6,240,121 + GROUPBOX "Taskbar appearance", IDC_STATIC, 6,6,240,104 CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN, 13,18,224,21 AUTOCHECKBOX "&Lock the taskbar", IDC_TASKBARPROP_LOCK, 13,45,200,10 AUTOCHECKBOX "A&uto-hide the taskbar", IDC_TASKBARPROP_HIDE, 13,58,200,10 AUTOCHECKBOX "Keep the &taskbar on top of other windows", IDC_TASKBARPROP_ONTOP, 13,71,200,10 AUTOCHECKBOX "&Group similar taskbar buttons", IDC_TASKBARPROP_GROUP, 13,84,200,10 AUTOCHECKBOX "Show &Quick Launch", IDC_TASKBARPROP_SHOWQL, 13,97,200,10 - AUTOCHECKBOX "&Show window previews (thumbnails)", IDC_TASKBARPROP_WNDPREV, 13,110,200,10 END IDD_TASKBARPROP_STARTMENU DIALOGEX 0, 0, 252, 218 @@ -143,6 +142,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "Advanced options", IDC_STATIC, 6,6,240,121 AUTOCHECKBOX "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10 + AUTOCHECKBOX "&Show window previews (thumbnails)", IDC_TASKBARPROP_WNDPREV, 13,31,200,10 END diff --git a/base/shell/explorer-new/lang/lt-LT.rc b/base/shell/explorer-new/lang/lt-LT.rc index 9203d474fb5..3972b876e0f 100644 --- a/base/shell/explorer-new/lang/lt-LT.rc +++ b/base/shell/explorer-new/lang/lt-LT.rc @@ -72,14 +72,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Taskbar" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - GROUPBOX "Taskbar appearance", IDC_STATIC, 6,6,240,121 + GROUPBOX "Taskbar appearance", IDC_STATIC, 6,6,240,104 CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN, 13,18,224,21 AUTOCHECKBOX "&Lock the taskbar", IDC_TASKBARPROP_LOCK, 13,45,200,10 AUTOCHECKBOX "A&uto-hide the taskbar", IDC_TASKBARPROP_HIDE, 13,58,200,10 AUTOCHECKBOX "Keep the &taskbar on top of other windows", IDC_TASKBARPROP_ONTOP, 13,71,200,10 AUTOCHECKBOX "&Group similar taskbar buttons", IDC_TASKBARPROP_GROUP, 13,84,200,10 AUTOCHECKBOX "Show &Quick Launch", IDC_TASKBARPROP_SHOWQL, 13,97,200,10 - AUTOCHECKBOX "&Show window previews (thumbnails)", IDC_TASKBARPROP_WNDPREV, 13,110,200,10 END IDD_TASKBARPROP_STARTMENU DIALOGEX 0, 0, 252, 218 @@ -133,6 +132,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "Advanced options", IDC_STATIC, 6,6,240,121 AUTOCHECKBOX "Rodyti s&ekundes", IDC_TASKBARPROP_SECONDS, 13,18,200,10 + AUTOCHECKBOX "&Show window previews (thumbnails)", IDC_TASKBARPROP_WNDPREV, 13,31,200,10 END STRINGTABLE DISCARDABLE diff --git a/base/shell/explorer-new/lang/nl-NL.rc b/base/shell/explorer-new/lang/nl-NL.rc index 5f301ecd40a..fce494b493f 100644 --- a/base/shell/explorer-new/lang/nl-NL.rc +++ b/base/shell/explorer-new/lang/nl-NL.rc @@ -68,14 +68,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Taakbalk" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - GROUPBOX "Taakbalkweergave", IDC_STATIC, 6,6,240,121 + GROUPBOX "Taakbalkweergave", IDC_STATIC, 6,6,240,104 CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN, 13,18,224,21 AUTOCHECKBOX "Taakbalk &vergrendelen", IDC_TASKBARPROP_LOCK, 13,45,200,10 AUTOCHECKBOX "Taakbalk a&utomatisch verbergen", IDC_TASKBARPROP_HIDE, 13,58,200,10 AUTOCHECKBOX "Taakbalk altijd o&p voorgrond weergeven", IDC_TASKBARPROP_ONTOP, 13,71,200,10 AUTOCHECKBOX "&Gelijksoortige knoppen gegroepeerd weergeven", IDC_TASKBARPROP_GROUP, 13,84,200,10 AUTOCHECKBOX "Werkbalk &Snel starten weergeven", IDC_TASKBARPROP_SHOWQL, 13,97,200,10 - AUTOCHECKBOX "Venstervoorbeelden (miniatuurweergaven) &weergeven", IDC_TASKBARPROP_WNDPREV, 13,110,200,10 END IDD_TASKBARPROP_STARTMENU DIALOGEX 0, 0, 252, 218 @@ -129,6 +128,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "Advanced options", IDC_STATIC, 6,6,240,121 AUTOCHECKBOX "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10 + AUTOCHECKBOX "Venstervoorbeelden (miniatuurweergaven) &weergeven", IDC_TASKBARPROP_WNDPREV, 13,31,200,10 END STRINGTABLE DISCARDABLE diff --git a/base/shell/explorer-new/lang/no-NO.rc b/base/shell/explorer-new/lang/no-NO.rc index 0b9da8e3cba..e787a871f34 100644 --- a/base/shell/explorer-new/lang/no-NO.rc +++ b/base/shell/explorer-new/lang/no-NO.rc @@ -77,14 +77,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Oppgavelinje" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - GROUPBOX "Oppgavelinjens egenskaper", IDC_STATIC, 6,6,240,121 + GROUPBOX "Oppgavelinjens egenskaper", IDC_STATIC, 6,6,240,104 CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN, 13,18,224,21 AUTOCHECKBOX "&Lås oppgavelinjen", IDC_TASKBARPROP_LOCK, 13,45,200,10 AUTOCHECKBOX "&Skjul oppgavelinjen automatisk", IDC_TASKBARPROP_HIDE, 13,58,200,10 AUTOCHECKBOX "Behold &oppgavelinjen på toppen over andre vinduer", IDC_TASKBARPROP_ONTOP, 13,71,200,10 AUTOCHECKBOX "&Grupper og lignende knapper på oppgavelinjen", IDC_TASKBARPROP_GROUP, 13,84,200,10 AUTOCHECKBOX "Vis &hurtigstart", IDC_TASKBARPROP_SHOWQL, 13,97,200,10 - AUTOCHECKBOX "&Vis vinduforhåndvisning (miniaturbilde)", IDC_TASKBARPROP_WNDPREV, 13,110,200,10 END IDD_TASKBARPROP_STARTMENU DIALOGEX 0, 0, 252, 218 @@ -138,6 +137,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "Advanced options", IDC_STATIC, 6,6,240,121 AUTOCHECKBOX "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10 + AUTOCHECKBOX "&Vis vinduforhåndvisning (miniaturbilde)", IDC_TASKBARPROP_WNDPREV, 13,31,200,10 END diff --git a/base/shell/explorer-new/lang/pl-PL.rc b/base/shell/explorer-new/lang/pl-PL.rc index e4b4aa02d2f..0f95a009df6 100644 --- a/base/shell/explorer-new/lang/pl-PL.rc +++ b/base/shell/explorer-new/lang/pl-PL.rc @@ -77,14 +77,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Pasek zadań" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - GROUPBOX "Wygląd paska zadań", IDC_STATIC, 6,6,240,121 + GROUPBOX "Wygląd paska zadań", IDC_STATIC, 6,6,240,104 CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN, 13,18,224,21 AUTOCHECKBOX "&Zablokuj pasek zadań", IDC_TASKBARPROP_LOCK, 13,45,200,10 AUTOCHECKBOX "A&utomatyczne ukrywanie paska zadań", IDC_TASKBARPROP_HIDE, 13,58,200,10 AUTOCHECKBOX "Zawsze &na wierzchu", IDC_TASKBARPROP_ONTOP, 13,71,200,10 AUTOCHECKBOX "&Grupuj programy w pasku zadań", IDC_TASKBARPROP_GROUP, 13,84,200,10 AUTOCHECKBOX "Pokaż pasek &Szybkiego uruchamiania", IDC_TASKBARPROP_SHOWQL, 13,97,200,10 - AUTOCHECKBOX "&Pokaż podgląd okien (miniaturki)", IDC_TASKBARPROP_WNDPREV, 13,110,200,10 END IDD_TASKBARPROP_STARTMENU DIALOGEX 0, 0, 252, 218 @@ -138,6 +137,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "Advanced options", IDC_STATIC, 6,6,240,121 AUTOCHECKBOX "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10 + AUTOCHECKBOX "&Pokaż podgląd okien (miniaturki)", IDC_TASKBARPROP_WNDPREV, 13,31,200,10 END diff --git a/base/shell/explorer-new/lang/pt-BR.rc b/base/shell/explorer-new/lang/pt-BR.rc index e0e319d1652..c896497dda0 100644 --- a/base/shell/explorer-new/lang/pt-BR.rc +++ b/base/shell/explorer-new/lang/pt-BR.rc @@ -70,14 +70,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Barra de Tarefas" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - GROUPBOX "Aparência da barra de tarefas", IDC_STATIC, 6,6,240,121 + GROUPBOX "Aparência da barra de tarefas", IDC_STATIC, 6,6,240,104 CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN, 13,18,224,21 AUTOCHECKBOX "&Bloquear a barra de tarefas", IDC_TASKBARPROP_LOCK, 13,45,200,10 AUTOCHECKBOX "&Ocultar automaticamente a barra de tarefas", IDC_TASKBARPROP_HIDE, 13,58,200,10 AUTOCHECKBOX "&Manter barra de tarefas sobre outros janelas", IDC_TASKBARPROP_ONTOP, 13,71,200,10 AUTOCHECKBOX "&Agrupar botões similares da barra de tarefas", IDC_TASKBARPROP_GROUP, 13,84,200,10 AUTOCHECKBOX "&Exibir Inicialização Rápida", IDC_TASKBARPROP_SHOWQL, 13,97,200,10 - AUTOCHECKBOX "E&xibir miniaturas (thumbnails)", IDC_TASKBARPROP_WNDPREV, 13,110,200,10 END IDD_TASKBARPROP_STARTMENU DIALOGEX 0, 0, 252, 218 @@ -131,6 +130,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "Advanced options", IDC_STATIC, 6,6,240,121 AUTOCHECKBOX "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10 + AUTOCHECKBOX "E&xibir miniaturas (thumbnails)", IDC_TASKBARPROP_WNDPREV, 13,31,200,10 END diff --git a/base/shell/explorer-new/lang/ro-RO.rc b/base/shell/explorer-new/lang/ro-RO.rc index 166d4d7672c..78b1b43dc7f 100644 --- a/base/shell/explorer-new/lang/ro-RO.rc +++ b/base/shell/explorer-new/lang/ro-RO.rc @@ -69,14 +69,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Bară de activități" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - GROUPBOX "Aspectul barei de activități", IDC_STATIC, 6,6,240,121 + GROUPBOX "Aspectul barei de activități", IDC_STATIC, 6,6,240,104 CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN, 13,18,224,21 AUTOCHECKBOX "&Fixează bara de activități", IDC_TASKBARPROP_LOCK, 13,45,200,10 AUTOCHECKBOX "A&uto-ascunde bara de activități", IDC_TASKBARPROP_HIDE, 13,58,200,10 AUTOCHECKBOX "Menține bara de ac&tivități deasupra celorlalte ferestre", IDC_TASKBARPROP_ONTOP, 13,71,200,10 AUTOCHECKBOX "&Grupează butoanele similare din bara de activități", IDC_TASKBARPROP_GROUP, 13,84,200,10 AUTOCHECKBOX "Arată bara &Lansărilor rapide", IDC_TASKBARPROP_SHOWQL, 13,97,200,10 - AUTOCHECKBOX "&Prezintă miniaturi ale ferestrelor", IDC_TASKBARPROP_WNDPREV, 13,110,200,10 END IDD_TASKBARPROP_STARTMENU DIALOGEX 0, 0, 252, 218 @@ -130,6 +129,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "Advanced options", IDC_STATIC, 6,6,240,121 AUTOCHECKBOX "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10 + AUTOCHECKBOX "&Prezintă miniaturi ale ferestrelor", IDC_TASKBARPROP_WNDPREV, 13,31,200,10 END diff --git a/base/shell/explorer-new/lang/ru-RU.rc b/base/shell/explorer-new/lang/ru-RU.rc index 675c6121eb4..66be5486fc0 100644 --- a/base/shell/explorer-new/lang/ru-RU.rc +++ b/base/shell/explorer-new/lang/ru-RU.rc @@ -70,14 +70,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Панель задач" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - GROUPBOX "Свойства панели задач", IDC_STATIC, 6,6,240,121 + GROUPBOX "Свойства панели задач", IDC_STATIC, 6,6,240,104 CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN, 13,18,224,21 AUTOCHECKBOX "&Закрепить панель задач", IDC_TASKBARPROP_LOCK, 13,45,200,10 AUTOCHECKBOX "&Автоматически скрывать панель задач", IDC_TASKBARPROP_HIDE, 13,58,200,10 AUTOCHECKBOX "&Поверх других окон", IDC_TASKBARPROP_ONTOP, 13,71,200,10 AUTOCHECKBOX "&Группировать схожие кнопки", IDC_TASKBARPROP_GROUP, 13,84,200,10 AUTOCHECKBOX "Отображать панель &быстрого запуска", IDC_TASKBARPROP_SHOWQL, 13,97,200,10 - AUTOCHECKBOX "Отобра&жать образцы окон (эскизы)", IDC_TASKBARPROP_WNDPREV, 13,110,200,10 END IDD_TASKBARPROP_STARTMENU DIALOGEX 0, 0, 252, 218 @@ -131,6 +130,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "Advanced options", IDC_STATIC, 6,6,240,121 AUTOCHECKBOX "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10 + AUTOCHECKBOX "Отобра&жать образцы окон (эскизы)", IDC_TASKBARPROP_WNDPREV, 13,31,200,10 END diff --git a/base/shell/explorer-new/lang/sk-SK.rc b/base/shell/explorer-new/lang/sk-SK.rc index a88cb68a627..b7aaa00c4b6 100644 --- a/base/shell/explorer-new/lang/sk-SK.rc +++ b/base/shell/explorer-new/lang/sk-SK.rc @@ -73,14 +73,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Panel úloh" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - GROUPBOX "Vzhľad panela úloh", IDC_STATIC, 6,6,240,121 + GROUPBOX "Vzhľad panela úloh", IDC_STATIC, 6,6,240,104 CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN, 13,18,224,21 AUTOCHECKBOX "Za&mknúť panel úloh", IDC_TASKBARPROP_LOCK, 13,45,200,10 AUTOCHECKBOX "A&utomaticky skývať panel úloh", IDC_TASKBARPROP_HIDE, 13,58,200,10 AUTOCHECKBOX "Zo&brazovať panel úloh nad ostatnými oknami", IDC_TASKBARPROP_ONTOP, 13,71,200,10 //Ponechať panel úloh nad ostatnými oknami AUTOCHECKBOX "&Zoskupovať podobné tlačidlá na paneli s nástrojmi", IDC_TASKBARPROP_GROUP, 13,84,200,10 AUTOCHECKBOX "Zobraziť panel &Rýchle spustenie", IDC_TASKBARPROP_SHOWQL, 13,97,200,10 - AUTOCHECKBOX "Z&obraziť náhľady okien (miniatúry)", IDC_TASKBARPROP_WNDPREV, 13,110,200,10 END IDD_TASKBARPROP_STARTMENU DIALOGEX 0, 0, 252, 218 @@ -134,6 +133,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "Advanced options", IDC_STATIC, 6,6,240,121 AUTOCHECKBOX "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10 + AUTOCHECKBOX "Z&obraziť náhľady okien (miniatúry)", IDC_TASKBARPROP_WNDPREV, 13,31,200,10 END diff --git a/base/shell/explorer-new/lang/uk-UA.rc b/base/shell/explorer-new/lang/uk-UA.rc index 2d16e464d8f..6f7e0eaeeea 100644 --- a/base/shell/explorer-new/lang/uk-UA.rc +++ b/base/shell/explorer-new/lang/uk-UA.rc @@ -76,14 +76,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "Панель задач" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - GROUPBOX "Властивості панелі задач", IDC_STATIC, 6,6,240,121 + GROUPBOX "Властивості панелі задач", IDC_STATIC, 6,6,240,104 CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN, 13,18,224,21 AUTOCHECKBOX "&Заборонити панель задач", IDC_TASKBARPROP_LOCK, 13,45,200,10 AUTOCHECKBOX "&Автоматично приховувати панель задач", IDC_TASKBARPROP_HIDE, 13,58,200,10 AUTOCHECKBOX "&Поверх інших вікон", IDC_TASKBARPROP_ONTOP, 13,71,200,10 AUTOCHECKBOX "&Групувати схожі кнопки", IDC_TASKBARPROP_GROUP, 13,84,200,10 AUTOCHECKBOX "Відображати панель &швидкого запуску", IDC_TASKBARPROP_SHOWQL, 13,97,200,10 - AUTOCHECKBOX "&Відображати зразки вікон (ескізи)", IDC_TASKBARPROP_WNDPREV, 13,110,200,10 END IDD_TASKBARPROP_STARTMENU DIALOGEX 0, 0, 252, 218 @@ -137,6 +136,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "Advanced options", IDC_STATIC, 6,6,240,121 AUTOCHECKBOX "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10 + AUTOCHECKBOX "&Відображати зразки вікон (ескізи)", IDC_TASKBARPROP_WNDPREV, 13,31,200,10 END diff --git a/base/shell/explorer-new/lang/zh-CN.rc b/base/shell/explorer-new/lang/zh-CN.rc index d09a0ea1821..bacc6b2d02e 100644 --- a/base/shell/explorer-new/lang/zh-CN.rc +++ b/base/shell/explorer-new/lang/zh-CN.rc @@ -76,14 +76,13 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPT CAPTION "任务栏" FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN - GROUPBOX "任务栏外观", IDC_STATIC, 6,6,240,121 + GROUPBOX "任务栏外观", IDC_STATIC, 6,6,240,104 CONTROL "", IDC_TASKBARPROP_TASKBARBITMAP, "Static", SS_BITMAP | SS_SUNKEN, 13,18,224,21 AUTOCHECKBOX "锁定任务栏(&L)", IDC_TASKBARPROP_LOCK, 13,45,200,10 AUTOCHECKBOX "自动隐藏任务栏(&U)", IDC_TASKBARPROP_HIDE, 13,58,200,10 AUTOCHECKBOX "保持任务栏在其他窗口之上(&T)", IDC_TASKBARPROP_ONTOP, 13,71,200,10 AUTOCHECKBOX "分组相似按钮(&G)", IDC_TASKBARPROP_GROUP, 13,84,200,10 AUTOCHECKBOX "显示快速启动(&Q)", IDC_TASKBARPROP_SHOWQL, 13,97,200,10 - AUTOCHECKBOX "显示窗口预览(&S)", IDC_TASKBARPROP_WNDPREV, 13,110,200,10 END IDD_TASKBARPROP_STARTMENU DIALOGEX 0, 0, 252, 218 @@ -137,6 +136,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "Advanced options", IDC_STATIC, 6,6,240,121 AUTOCHECKBOX "Show s&econds", IDC_TASKBARPROP_SECONDS, 13,18,200,10 + AUTOCHECKBOX "显示窗口预览(&S)", IDC_TASKBARPROP_WNDPREV, 13,31,200,10 END diff --git a/base/shell/explorer-new/precomp.h b/base/shell/explorer-new/precomp.h index 4c9ddd2db6c..fbeaec3defe 100644 --- a/base/shell/explorer-new/precomp.h +++ b/base/shell/explorer-new/precomp.h @@ -26,13 +26,6 @@ #include "initguid.h" #include "undoc.h" -/* Structure to hold non-default options*/ -typedef struct _ADVANCED_SETTINGS { - BOOL bShowSeconds; -} ADVANCED_SETTINGS, *PADVANCED_SETTINGS; - -extern ADVANCED_SETTINGS AdvancedSettings; - /* dynamic imports due to lack of support in msvc linker libs */ typedef INT (APIENTRY *REGSHELLHOOK)(HWND, DWORD); #ifdef UNICODE @@ -135,6 +128,8 @@ CreateDropTarget(IN HWND hwndTarget, * explorer.c */ +#define IDHK_RUN 1 /* Win+R */ + LONG SetWindowStyle(IN HWND hWnd, IN LONG dwStyleMask, @@ -241,6 +236,26 @@ TrayProcessMessages(IN OUT ITrayWindow *Tray); VOID TrayMessageLoop(IN OUT ITrayWindow *Tray); +/* + * settings.c + */ + +/* Structure to hold non-default options*/ +typedef struct _ADVANCED_SETTINGS { + BOOL bShowSeconds; +} ADVANCED_SETTINGS, *PADVANCED_SETTINGS; + +extern ADVANCED_SETTINGS AdvancedSettings; +extern const TCHAR szAdvancedSettingsKey[]; + +VOID +LoadAdvancedSettings(VOID); + +BOOL +SaveSettingDword(IN PCTSTR pszKeyName, + IN PCTSTR pszValueName, + IN DWORD dwValue); + /* * trayprop.h */ diff --git a/base/shell/explorer-new/settings.c b/base/shell/explorer-new/settings.c new file mode 100644 index 00000000000..3c17dd2af44 --- /dev/null +++ b/base/shell/explorer-new/settings.c @@ -0,0 +1,66 @@ +/* + * ReactOS Explorer + * + * Copyright 2013 - Edijs Kolesnikovics + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +ADVANCED_SETTINGS AdvancedSettings; +const TCHAR szAdvancedSettingsKey[] = TEXT("Software\\ReactOS\\Features\\Explorer"); + + +VOID +LoadAdvancedSettings(VOID) +{ + HKEY hKey; + + /* Set defaults */ + AdvancedSettings.bShowSeconds = FALSE; + + /* Check registry */ + if (RegOpenKey(HKEY_CURRENT_USER, szAdvancedSettingsKey, &hKey) == ERROR_SUCCESS) + { + DWORD dwValue, dwValueLength, dwType; + + dwValueLength = sizeof(dwValue); + if (RegQueryValueEx(hKey, TEXT("ShowSeconds"), NULL, &dwType, (PBYTE)&dwValue, &dwValueLength) == ERROR_SUCCESS && dwType == REG_DWORD) + AdvancedSettings.bShowSeconds = dwValue != 0; + + RegCloseKey(hKey); + } +} + +BOOL +SaveSettingDword(IN PCTSTR pszKeyName, + IN PCTSTR pszValueName, + IN DWORD dwValue) +{ + BOOL ret = FALSE; + HKEY hKey; + + if (RegCreateKey(HKEY_CURRENT_USER, pszKeyName, &hKey) == ERROR_SUCCESS) + { + ret = RegSetValueEx(hKey, pszValueName, 0, REG_DWORD, (PBYTE)&dwValue, sizeof(dwValue)) == ERROR_SUCCESS; + + RegCloseKey(hKey); + } + + return ret; +} + +/* EOF */ diff --git a/base/shell/explorer-new/startmnu.c b/base/shell/explorer-new/startmnu.c index d18b2617a55..799104c7ad7 100644 --- a/base/shell/explorer-new/startmnu.c +++ b/base/shell/explorer-new/startmnu.c @@ -59,10 +59,10 @@ CreateContextMenuFromShellFolderPidl(IN HWND hWndOwner, hRet = IShellFolder_GetUIObjectOf(psf, hWndOwner, 1, - (LPCITEMIDLIST*)&pidl, /* FIXME: shouldn't need a typecast! */ + (LPCITEMIDLIST *)&pidl, &IID_IContextMenu, NULL, - (PVOID*)&pcm); + (PVOID *)&pcm); if (SUCCEEDED(hRet)) { hPopup = CreatePopupMenu(); @@ -82,9 +82,10 @@ CreateContextMenuFromShellFolderPidl(IN HWND hWndOwner, return hPopup; } - IContextMenu_Release(pcm); DestroyMenu(hPopup); } + + IContextMenu_Release(pcm); } return NULL; @@ -96,7 +97,7 @@ OnStartContextMenuCommand(IN HWND hWndOwner, IN PVOID pcmContext OPTIONAL, IN PVOID Context OPTIONAL) { - PSTARTMNU_CTMENU_CTX psmcmc = (PSTARTMNU_CTMENU_CTX)pcmContext; + PSTARTMNU_CTMENU_CTX psmcmc = pcmContext; if (uiCmdId != 0) { @@ -231,7 +232,7 @@ CreateStartContextMenu(IN HWND hWndOwner, hRet = IShellFolder_BindToObject(psfDesktop, pidlStart, NULL, - (REFIID)&IID_IShellFolder, /* FIXME: Shouldn't require a typecast */ + &IID_IShellFolder, (PVOID*)&psfStart); if (SUCCEEDED(hRet)) { @@ -255,7 +256,7 @@ CreateStartContextMenu(IN HWND hWndOwner, AddStartContextMenuItems(hWndOwner, hPopup); - *((PSTARTMNU_CTMENU_CTX*)ppcmContext) = psmcmc; + *ppcmContext = psmcmc; return hPopup; } else @@ -815,12 +816,11 @@ UpdateStartMenu(IN OUT IMenuPopup *pMenuPopup, hRet = IMenuPopup_QueryInterface(pMenuPopup, &IID_IBanneredBar, - (PVOID)&pbb); + (PVOID *)&pbb); if (SUCCEEDED(hRet)) { hRet = IBanneredBar_SetBitmap(pbb, hbmBanner); - /* Update the icon size */ hRet = IBanneredBar_SetIconSize(pbb, bSmallIcons ? BMICON_SMALL : BMICON_LARGE); @@ -831,7 +831,7 @@ UpdateStartMenu(IN OUT IMenuPopup *pMenuPopup, return hRet; } -IMenuPopup* +IMenuPopup * CreateStartMenu(IN ITrayWindow *Tray, OUT IMenuBand **ppMenuBand, IN HBITMAP hbmBanner OPTIONAL, @@ -855,7 +855,7 @@ CreateStartMenu(IN ITrayWindow *Tray, NULL, CLSCTX_INPROC_SERVER, &IID_IMenuPopup, - (PVOID*)&pMp); + (PVOID *)&pMp); if (FAILED(hr)) { DbgPrint("CoCreateInstance failed: %x\n", hr); @@ -864,7 +864,7 @@ CreateStartMenu(IN ITrayWindow *Tray, hr = IMenuPopup_QueryInterface(pMp, &IID_IObjectWithSite, - (PVOID*)&pOws); + (PVOID *)&pOws); if (FAILED(hr)) { DbgPrint("IMenuPopup_QueryInterface failed: %x\n", hr); @@ -872,7 +872,7 @@ CreateStartMenu(IN ITrayWindow *Tray, } /* Set the menu site so we can handle messages */ - hr = IObjectWithSite_SetSite(pOws, (IUnknown*)pSms); + hr = IObjectWithSite_SetSite(pOws, (IUnknown *)pSms); if (FAILED(hr)) { DbgPrint("IObjectWithSite_SetSite failed: %x\n", hr); @@ -903,7 +903,7 @@ CreateStartMenu(IN ITrayWindow *Tray, goto cleanup; } - hr = IUnknown_QueryInterface(pUnk, &IID_IBandSite, (PVOID*)&pBs); + hr = IUnknown_QueryInterface(pUnk, &IID_IBandSite, (PVOID *)&pBs); if (FAILED(hr)) { DbgPrint("IUnknown_QueryInterface pBs failed: %x\n", hr); @@ -919,7 +919,7 @@ CreateStartMenu(IN ITrayWindow *Tray, goto cleanup; } - hr = IBandSite_GetBandObject(pBs, dwBandId, &IID_IMenuBand, (PVOID*)&pMb); + hr = IBandSite_GetBandObject(pBs, dwBandId, &IID_IMenuBand, (PVOID *)&pMb); if (FAILED(hr)) { DbgPrint("IBandSite_GetBandObject failed: %x\n", hr); diff --git a/base/shell/explorer-new/taskband.c b/base/shell/explorer-new/taskband.c index 541e214f289..bdb1425c8e2 100644 --- a/base/shell/explorer-new/taskband.c +++ b/base/shell/explorer-new/taskband.c @@ -506,7 +506,7 @@ ITaskBandImpl_SetSite(IN OUT IObjectWithSite *iface, /* Check if the site supports IOleWindow */ hRet = IUnknown_QueryInterface(pUnkSite, &IID_IOleWindow, - (PVOID*)&OleWindow); + (PVOID *)&OleWindow); if (SUCCEEDED(hRet)) { HWND hWndParent = NULL; diff --git a/base/shell/explorer-new/taskswnd.c b/base/shell/explorer-new/taskswnd.c index 19f1e5e6b3a..aed9793db3e 100644 --- a/base/shell/explorer-new/taskswnd.c +++ b/base/shell/explorer-new/taskswnd.c @@ -852,7 +852,19 @@ TaskSwitchWnd_AllocTaskItem(IN OUT PTASK_SWITCH_WND This) ASSERT(This->AllocatedTaskItems >= This->TaskItemCount); - if (This->TaskItemCount != 0) + if (This->TaskItemCount == 0) + { + This->TaskItems = HeapAlloc(hProcessHeap, + 0, + TASK_ITEM_ARRAY_ALLOC * sizeof(*This->TaskItems)); + if (This->TaskItems != NULL) + { + This->AllocatedTaskItems = TASK_ITEM_ARRAY_ALLOC; + } + else + return NULL; + } + else if (This->TaskItemCount >= This->AllocatedTaskItems) { PTASK_ITEM NewArray; SIZE_T NewArrayLength, ActiveTaskItemIndex; @@ -877,18 +889,6 @@ TaskSwitchWnd_AllocTaskItem(IN OUT PTASK_SWITCH_WND This) else return NULL; } - else - { - This->TaskItems = HeapAlloc(hProcessHeap, - 0, - TASK_ITEM_ARRAY_ALLOC * sizeof(*This->TaskItems)); - if (This->TaskItems != NULL) - { - This->AllocatedTaskItems = TASK_ITEM_ARRAY_ALLOC; - } - else - return NULL; - } return This->TaskItems + This->TaskItemCount++; } @@ -2073,9 +2073,9 @@ ForwardContextMenuMsg: case WM_NCCREATE: { LPCREATESTRUCT CreateStruct = (LPCREATESTRUCT)lParam; - This = (PTASK_SWITCH_WND)HeapAlloc(hProcessHeap, - 0, - sizeof(*This)); + This = HeapAlloc(hProcessHeap, + 0, + sizeof(*This)); if (This == NULL) return FALSE; diff --git a/base/shell/explorer-new/trayntfy.c b/base/shell/explorer-new/trayntfy.c index 023973c0dab..b883a33c395 100644 --- a/base/shell/explorer-new/trayntfy.c +++ b/base/shell/explorer-new/trayntfy.c @@ -239,7 +239,6 @@ SysPagerWnd_RemoveButton(IN OUT PSYS_PAGER_WND_DATA This, PNOTIFY_ITEM updateItem; deleteItem = *NotifyPointer; - SendMessage(This->hWndToolbar, TB_DELETEBUTTON, deleteItem->Index, @@ -611,16 +610,16 @@ static HWND CreateSysPagerWnd(IN HWND hWndParent, IN BOOL bVisible) { - PSYS_PAGER_WND_DATA TcData; + PSYS_PAGER_WND_DATA SpData; DWORD dwStyle; HWND hWnd = NULL; - TcData = HeapAlloc(hProcessHeap, + SpData = HeapAlloc(hProcessHeap, 0, - sizeof(*TcData)); - if (TcData != NULL) + sizeof(*SpData)); + if (SpData != NULL) { - ZeroMemory(TcData, sizeof(*TcData)); + ZeroMemory(SpData, sizeof(*SpData)); /* Create the window. The tray window is going to move it to the correct position and resize it as needed. */ @@ -639,18 +638,20 @@ CreateSysPagerWnd(IN HWND hWndParent, hWndParent, NULL, hExplorerInstance, - TcData); + SpData); - if (hWnd == NULL) + if (hWnd != NULL) + { + SetWindowTheme(hWnd, L"TrayNotify", NULL); + } + else { HeapFree(hProcessHeap, 0, - TcData); + SpData); } } - SetWindowTheme(hWnd, L"TrayNotify", NULL); - return hWnd; } @@ -701,25 +702,6 @@ static const struct { FALSE, DATE_SHORTDATE, NULL } }; -HRESULT RegGetDWord(HKEY hKey, LPCTSTR szValueName, DWORD * lpdwResult) -{ - LONG lResult; - DWORD dwDataSize = sizeof(DWORD); - DWORD dwType = 0; - - // Check input parameters... - if (hKey == NULL || lpdwResult == NULL) return E_INVALIDARG; - - // Get dword value from the registry... - lResult = RegQueryValueEx(hKey, szValueName, 0, &dwType, (LPBYTE) lpdwResult, &dwDataSize ); - - // Check result and make sure the registry value is a DWORD(REG_DWORD)... - if (lResult != ERROR_SUCCESS) return HRESULT_FROM_WIN32(lResult); - else if (dwType != REG_DWORD) return DISP_E_TYPEMISMATCH; - - return NOERROR; -} - #define CLOCKWND_FORMAT_COUNT (sizeof(ClockWndFormats) / sizeof(ClockWndFormats[0])) #define TRAY_CLOCK_WND_SPACING_X 0 @@ -1400,16 +1382,19 @@ CreateTrayClockWnd(IN HWND hWndParent, hWndParent, NULL, hExplorerInstance, - (LPVOID)TcData); + TcData); - if (hWnd == NULL) + if (hWnd != NULL) + { + SetWindowTheme(hWnd, L"TrayNotify", NULL); + } + else { HeapFree(hProcessHeap, 0, TcData); } } - SetWindowTheme(hWnd, L"TrayNotify", NULL); return hWnd; @@ -1879,7 +1864,7 @@ CreateTrayNotifyWnd(IN OUT ITrayWindow *TrayWindow, hWndTrayWindow, NULL, hExplorerInstance, - (LPVOID)TnData); + TnData); if (hWnd == NULL) { diff --git a/base/shell/explorer-new/trayprop.c b/base/shell/explorer-new/trayprop.c index 28853d0d488..365f177b54e 100644 --- a/base/shell/explorer-new/trayprop.c +++ b/base/shell/explorer-new/trayprop.c @@ -30,8 +30,6 @@ typedef struct _PROPSHEET_INFO HBITMAP hTaskbarBitmap; } PROPSHEET_INFO, *PPROPSHEET_INFO; -ADVANCED_SETTINGS AdvancedSettings = { FALSE }; - static BOOL UpdateTaskbarBitmap(PPROPSHEET_INFO pPropInfo) @@ -225,6 +223,7 @@ AdvancedSettingsPageProc(HWND hwndDlg, case PSN_APPLY: AdvancedSettings.bShowSeconds = IsDlgButtonChecked(hwndDlg, IDC_TASKBARPROP_SECONDS); + SaveSettingDword(szAdvancedSettingsKey, TEXT("ShowSeconds"), AdvancedSettings.bShowSeconds); break; } @@ -370,9 +369,9 @@ DisplayTrayProperties(ITrayWindow *Tray) PROPSHEETPAGE psp[5]; TCHAR szCaption[256]; - pPropInfo = (PPROPSHEET_INFO)HeapAlloc(hProcessHeap, - HEAP_ZERO_MEMORY, - sizeof(PROPSHEET_INFO)); + pPropInfo = HeapAlloc(hProcessHeap, + HEAP_ZERO_MEMORY, + sizeof(PROPSHEET_INFO)); if (!pPropInfo) { return NULL; diff --git a/base/shell/explorer-new/traywnd.c b/base/shell/explorer-new/traywnd.c index 87cfac06f53..a86e9f4d879 100644 --- a/base/shell/explorer-new/traywnd.c +++ b/base/shell/explorer-new/traywnd.c @@ -2769,24 +2769,31 @@ TrayMessageLoop(IN OUT ITrayWindow *Tray) while (1) { - Ret = (GetMessage(&Msg, - NULL, - 0, - 0) != 0); + Ret = GetMessage(&Msg, + NULL, + 0, + 0); - if (Ret != -1) + if (!Ret || Ret == -1) + break; + + if (Msg.message == WM_HOTKEY) { - if (!Ret) - break; - - if (This->StartMenuBand == NULL || - IMenuBand_IsMenuMessage(This->StartMenuBand, - &Msg) != S_OK) + switch (Msg.wParam) { - TranslateMessage(&Msg); - DispatchMessage(&Msg); + case IDHK_RUN: /* Win+R */ + CloseHandle(CreateThread(NULL, 0, RunFileDlgThread, This, 0, NULL)); + break; } } + + if (This->StartMenuBand == NULL || + IMenuBand_IsMenuMessage(This->StartMenuBand, + &Msg) != S_OK) + { + TranslateMessage(&Msg); + DispatchMessage(&Msg); + } } } diff --git a/base/system/diskpart/lang/ro-RO.rc b/base/system/diskpart/lang/ro-RO.rc index 8259b7dd28b..d0bbf8445ae 100644 --- a/base/system/diskpart/lang/ro-RO.rc +++ b/base/system/diskpart/lang/ro-RO.rc @@ -16,9 +16,9 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL STRINGTABLE DISCARDABLE BEGIN IDS_APP_HEADER, "\nReactOS DiskPart\n" - IDS_APP_USAGE, "Disk Partitioning Interpreter.\n\nUsage: DISKPART [/S filename] [/T timeout] [/?]\n\n\ -/S filename\tExecută scriptul din fișierul dat.\n\ -/T timeout\tTimeout in seconds to prevent diskpart usage overlap.\n\ + IDS_APP_USAGE, "Interpretor pentru partiționare discuri.\n\nUtilizare: DISKPART [/S numefișier] [/T timplimită] [/?]\n\n\ +/S numefișier\tExecută scriptul din fișierul dat.\n\ +/T timplimită\tLimită temporală pentru prevenirea utilizării concurente.\n\ /?\t\tAfișează acest manual.\n\n" IDS_APP_LICENSE, "Licențiere în termenii GNU GPLv2\n" IDS_APP_CURR_COMPUTER, "Pe calculatorul: %s\n\n" @@ -36,7 +36,7 @@ BEGIN IDS_DETAIL_INFO_TARGET, "Țintă" IDS_DETAIL_INFO_LUN_ID, "LUN ID" IDS_DETAIL_INFO_LOC_PATH, "Localizat în" - IDS_DETAIL_INFO_CURR_RO_STATE, "Current Read-only State" + IDS_DETAIL_INFO_CURR_RO_STATE, "Stare curentă doar-citire" IDS_DETAIL_INFO_RO, "Protejat-la-scriere" IDS_DETAIL_INFO_BOOT_DSK, "Disc inițializator" IDS_DETAIL_INFO_PAGE_FILE_DSK, "Disc cu fișier de paginare" @@ -122,7 +122,7 @@ END STRINGTABLE DISCARDABLE BEGIN IDS_ERROR_MSG_NO_SCRIPT "Eroare la deschiderea fișierului script: %s\n" - IDS_ERROR_MSG_BAD_ARG "De prelucrare de eroare argumente: %s\n" + IDS_ERROR_MSG_BAD_ARG "Eroare la prelucrarea argumentului: %s\n" END diff --git a/boot/freeldr/freeldr/CMakeLists.txt b/boot/freeldr/freeldr/CMakeLists.txt index 8f48a344b0e..cc65e0e6330 100644 --- a/boot/freeldr/freeldr/CMakeLists.txt +++ b/boot/freeldr/freeldr/CMakeLists.txt @@ -80,11 +80,16 @@ list(APPEND FREELDR_COMMON_SOURCE windows/wlregistry.c) if(ARCH STREQUAL "i386") + list(APPEND FREELDR_COMMON_ASM_SOURCE + arch/i386/entry.S + arch/i386/i386pnp.S + arch/i386/i386trap.S + arch/i386/linux.S + arch/i386/mb.S) list(APPEND FREELDR_COMMON_SOURCE arch/i386/archmach.c arch/i386/custom.c arch/i386/drivemap.c - arch/i386/entry.S arch/i386/halstub.c arch/i386/hardware.c arch/i386/hwacpi.c @@ -94,13 +99,9 @@ if(ARCH STREQUAL "i386") arch/i386/i386bug.c arch/i386/i386disk.c arch/i386/i386idt.c - arch/i386/i386pnp.S arch/i386/i386rtl.c - arch/i386/i386trap.S arch/i386/i386vid.c - arch/i386/linux.S arch/i386/machpc.c - arch/i386/mb.S arch/i386/miscboot.c arch/i386/ntoskrnl.c arch/i386/pccons.c @@ -121,14 +122,14 @@ if(ARCH STREQUAL "i386") windows/headless.c disk/scsiport.c) if(NOT MSVC) - list(APPEND FREELDR_COMMON_SOURCE - arch/i386/drvmap.S) + list(APPEND FREELDR_COMMON_SOURCE arch/i386/drvmap.S) endif() elseif(ARCH STREQUAL "amd64") - list(APPEND FREELDR_COMMON_SOURCE + list(APPEND FREELDR_COMMON_ASM_SOURCE arch/amd64/entry.S arch/amd64/int386.S - arch/amd64/pnpbios.S + arch/amd64/pnpbios.S) + list(APPEND FREELDR_COMMON_SOURCE arch/i386/hardware.c arch/i386/hwacpi.c arch/i386/hwapm.c @@ -150,9 +151,10 @@ else() endif() if((NOT MSVC) AND (CMAKE_VERSION VERSION_GREATER 2.8.7)) - add_library(freeldr_common OBJECT ${FREELDR_COMMON_SOURCE}) + add_library(freeldr_common OBJECT ${FREELDR_COMMON_SOURCE} ${FREELDR_COMMON_ASM_SOURCE}) else() - add_library(freeldr_common ${FREELDR_COMMON_SOURCE}) + add_asm_files(freeldr_common_asm ${FREELDR_COMMON_ASM_SOURCE}) + add_library(freeldr_common ${FREELDR_COMMON_SOURCE} ${freeldr_common_asm}) endif() add_dependencies(freeldr_common bugcodes) @@ -185,8 +187,8 @@ if(NOT MSVC) add_target_link_flags(freeldr_pe "-Wl,--strip-all,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lds") add_target_link_flags(freeldr_pe_dbg "-Wl,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lds") else() - add_target_link_flags(freeldr_pe "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text /SUBSYSTEM:BOOT_APPLICATION") - add_target_link_flags(freeldr_pe_dbg "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text /SUBSYSTEM:BOOT_APPLICATION") + add_target_link_flags(freeldr_pe "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text ") + add_target_link_flags(freeldr_pe_dbg "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text") endif() set_image_base(freeldr_pe 0x10000) @@ -202,7 +204,7 @@ if(ARCH STREQUAL "i386") target_link_libraries(freeldr_pe_dbg mini_hal) endif() -if(MSVC OR NOT CMAKE_VERSION VERSION_GREATER 2.8.7) +if(MSVC OR (NOT CMAKE_VERSION VERSION_GREATER 2.8.7)) target_link_libraries(freeldr_pe freeldr_common) target_link_libraries(freeldr_pe_dbg freeldr_common) endif() @@ -249,8 +251,8 @@ if(NOT MSVC) add_target_link_flags(setupldr_pe "-Wl,--strip-all,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lds") add_target_link_flags(setupldr_pe_dbg "-Wl,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lds") else() - add_target_link_flags(setupldr_pe "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text /SUBSYSTEM:BOOT_APPLICATION") - add_target_link_flags(setupldr_pe_dbg "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text /SUBSYSTEM:BOOT_APPLICATION") + add_target_link_flags(setupldr_pe "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text") + add_target_link_flags(setupldr_pe_dbg "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text") endif() add_target_compile_definitions(setupldr_pe FREELDR_REACTOS_SETUP) diff --git a/cmake/CMakeMacros.cmake b/cmake/CMakeMacros.cmake index 34aeebd6191..ba7f4a73418 100644 --- a/cmake/CMakeMacros.cmake +++ b/cmake/CMakeMacros.cmake @@ -134,7 +134,7 @@ function(add_cd_file) #get file if we need to if(NOT _CD_FILE) - get_target_property(_CD_FILE ${_CD_TARGET} LOCATION) + get_target_property(_CD_FILE ${_CD_TARGET} LOCATION_${CMAKE_BUILD_TYPE}) endif() #do we add it to all CDs? diff --git a/cmake/gcc.cmake b/cmake/gcc.cmake index ac14dfaf25c..0f35c17273e 100644 --- a/cmake/gcc.cmake +++ b/cmake/gcc.cmake @@ -368,3 +368,8 @@ endfunction() function(allow_warnings __module) add_target_compile_flags(${__module} "-Wno-error") endfunction() + +macro(add_asm_files _target) + list(APPEND ${_target} ${ARGN}) +endmacro() + diff --git a/cmake/msvc.cmake b/cmake/msvc.cmake index 952403ed6b5..b01267d3689 100644 --- a/cmake/msvc.cmake +++ b/cmake/msvc.cmake @@ -43,23 +43,21 @@ elseif(CMAKE_BUILD_TYPE STREQUAL "Release") add_compile_flags("/Ob2 /D NDEBUG") endif() -if(${_MACHINE_ARCH_FLAG} MATCHES X86) - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO /NODEFAULTLIB /RELEASE") - set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SAFESEH:NO /NODEFAULTLIB /RELEASE") - set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /SAFESEH:NO /NODEFAULTLIB /RELEASE") +if(MSVC_IDE) + add_compile_flags("/MP") endif() -set(CMAKE_RC_COMPILE_OBJECT " ${I18N_DEFS} /fo ") +if(${_MACHINE_ARCH_FLAG} MATCHES X86) + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MANIFEST:NO /INCREMENTAL:NO /SAFESEH:NO /NODEFAULTLIB /RELEASE") + set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /MANIFEST:NO /INCREMENTAL:NO /SAFESEH:NO /NODEFAULTLIB /RELEASE") + set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /MANIFEST:NO /INCREMENTAL:NO /SAFESEH:NO /NODEFAULTLIB /RELEASE") +endif() -if(MSVC_IDE) - # Asm source files are not supported in VS generators yet. As a result, isn't recognized. - # We may temporarily use just the global defines, but this is not a solution as some modules (minihal for example) apply additional definitions to source files, so we get an incorrect build of such targets. - get_directory_property(definitions DEFINITIONS) - set(CMAKE_ASM_COMPILE_OBJECT - "cl /nologo /X /I${REACTOS_SOURCE_DIR}/include/asm /I${REACTOS_BINARY_DIR}/include/asm ${definitions} /D__ASM__ /D_USE_ML /EP /c > .tmp" - " /nologo /Cp /Fo /c /Ta .tmp") +if(MSVC_IDE AND (CMAKE_VERSION MATCHES "ReactOS")) + # for VS builds we'll only have en-US in resource files + add_definitions(/DLANGUAGE_EN_US) else() - # NMake Makefiles + set(CMAKE_RC_COMPILE_OBJECT " ${I18N_DEFS} /fo ") set(CMAKE_ASM_COMPILE_OBJECT "cl /nologo /X /I${REACTOS_SOURCE_DIR}/include/asm /I${REACTOS_BINARY_DIR}/include/asm /D__ASM__ /D_USE_ML /EP /c > .tmp" " /nologo /Cp /Fo /c /Ta .tmp") @@ -102,7 +100,7 @@ function(set_entrypoint _module _entrypoint) endfunction() function(set_subsystem MODULE SUBSYSTEM) - add_target_link_flags(${MODULE} "/subsystem:${SUBSYSTEM}") + add_target_link_flags(${MODULE} "/SUBSYSTEM:${SUBSYSTEM}") endfunction() function(set_image_base MODULE IMAGE_BASE) @@ -243,3 +241,32 @@ endfunction() function(allow_warnings __module) endfunction() + +macro(add_asm_files _target) + if(MSVC_IDE AND (CMAKE_VERSION MATCHES "ReactOS")) + get_defines(_directory_defines) + get_includes(_directory_includes) + get_directory_property(_defines COMPILE_DEFINITIONS) + foreach(_source_file ${ARGN}) + get_filename_component(_source_file_base_name ${_source_file} NAME_WE) + set(_preprocessed_asm_file ${CMAKE_CURRENT_BINARY_DIR}/asm/${_source_file_base_name}_${_target}.tmp) + set(_object_file ${CMAKE_CURRENT_BINARY_DIR}/asm/${_source_file_base_name}_${_target}.obj) + set(_source_file_full_path ${CMAKE_CURRENT_SOURCE_DIR}/${_source_file}) + get_source_file_property(_defines_semicolon_list ${_source_file_full_path} COMPILE_DEFINITIONS) + unset(_source_file_defines) + foreach(_define ${_defines_semicolon_list}) + if(NOT ${_define} STREQUAL "NOTFOUND") + list(APPEND _source_file_defines -D${_define}) + endif() + endforeach() + add_custom_command( + OUTPUT ${_preprocessed_asm_file} ${_object_file} + COMMAND cl /nologo /X /I${REACTOS_SOURCE_DIR}/include/asm /I${REACTOS_BINARY_DIR}/include/asm ${_directory_includes} ${_source_file_defines} ${_directory_defines} /D__ASM__ /D_USE_ML /EP /c ${_source_file_full_path} > ${_preprocessed_asm_file} && ${CMAKE_ASM_COMPILER} /nologo /Cp /Fo${_object_file} /c /Ta ${_preprocessed_asm_file} + DEPENDS ${_source_file_full_path}) + set_source_files_properties(${_object_file} PROPERTIES EXTERNAL_OBJECT 1) + list(APPEND ${_target} ${_object_file}) + endforeach() + else() + list(APPEND ${_target} ${ARGN}) + endif() +endmacro() diff --git a/dll/cpl/desk/lang/pl-PL.rc b/dll/cpl/desk/lang/pl-PL.rc index ad35413ca82..4c4d978a50e 100644 --- a/dll/cpl/desk/lang/pl-PL.rc +++ b/dll/cpl/desk/lang/pl-PL.rc @@ -60,7 +60,7 @@ FONT 8, "MS Shell Dlg" BEGIN CONTROL "", IDC_APPEARANCE_PREVIEW, "PreviewWndClass", WS_VISIBLE | WS_BORDER, 7, 7, 232, 120 - LTEXT "Visual Style", IDC_STATIC, 7, 130, 64, 7 + LTEXT "Motyw graficzny", IDC_STATIC, 7, 130, 64, 7 COMBOBOX IDC_APPEARANCE_VISUAL_STYLE, 7, 140, 134, 90, CBS_DROPDOWNLIST | CBS_HASSTRINGS | CBS_SORT | WS_VSCROLL | WS_TABSTOP LTEXT "Schemat kolorów", IDC_STATIC, 7, 160, 64, 7 COMBOBOX IDC_APPEARANCE_COLORSCHEME, 7, 170, 134, 90, CBS_DROPDOWNLIST | CBS_HASSTRINGS | CBS_SORT | WS_VSCROLL | WS_TABSTOP diff --git a/dll/cpl/input/lang/pl-PL.rc b/dll/cpl/input/lang/pl-PL.rc index afcce085ae6..4910a72afc9 100644 --- a/dll/cpl/input/lang/pl-PL.rc +++ b/dll/cpl/input/lang/pl-PL.rc @@ -13,7 +13,7 @@ STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Ustawienia" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Wybierz usługi dla każdego używanego języka z listy.\nListę można modyfikować przyciskami Dodaj i Usuń.", -1, 9, 6, 238, 17 + LTEXT "Wybierz usługi dla kadego używanego języka z listy.\nListę można modyfikować przyciskami Dodaj i Usuń.", -1, 9, 6, 238, 17 CONTROL "TEXT", IDC_KEYLAYOUT_LIST, "SYSLISTVIEW32", WS_BORDER | WS_VSCROLL | WS_TABSTOP | LVS_SORTASCENDING | LVS_REPORT | 0x0000808D, 8, 28, 237, 109 PUSHBUTTON "&Ustaw domyślne", IDC_SET_DEFAULT, 101, 159, 144, 14 PUSHBUTTON "&Dodaj...", IDC_ADD_BUTTON, 27, 142, 70, 14 @@ -25,12 +25,12 @@ END IDD_PROPPAGEADVANCEDSETTINGS DIALOGEX 0, 0, 254, 228 STYLE DS_SHELLFONT | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Advanced Settings" +CAPTION "Zaawansowane" FONT 8, "MS Shell Dlg" BEGIN - GROUPBOX "System Configuration", -1, 7, 7, 240, 70 - AUTOCHECKBOX "&Turn off advanced text services", IDC_TURNOFFTEXTSVCS_CB, 14, 20, 130, 12 - LTEXT "Select this check box to turn off advanced text services in all programs.\nThis is not recommended for East Asian users because this closes the language bar.", -1, 14, 40, 230, 35 + GROUPBOX "Konfiguracja Systemu", -1, 7, 7, 240, 70 + AUTOCHECKBOX "&Wyłącz zaawansowane usługi tekstowe", IDC_TURNOFFTEXTSVCS_CB, 14, 20, 130, 12 + LTEXT "Zaznacz tą opcję by wyłączyć zaawansowane usługi tesktowe we wszystkich programach.\nNie jest to zalecane dla użytkowników z Dalekiego Wschodu, jako że zamyka to pasek języków.", -1, 14, 40, 230, 35 END IDD_KEYSETTINGS DIALOGEX 0, 0, 272, 163 diff --git a/dll/cpl/timedate/dateandtime.c b/dll/cpl/timedate/dateandtime.c index f82ab7a1511..d74f7496d2b 100644 --- a/dll/cpl/timedate/dateandtime.c +++ b/dll/cpl/timedate/dateandtime.c @@ -123,6 +123,7 @@ SetTimeZoneName(HWND hwnd) switch (TimeZoneId) { case TIME_ZONE_ID_STANDARD: + case TIME_ZONE_ID_UNKNOWN: wcscpy(TimeZoneName, TimeZoneInfo.StandardName); break; @@ -130,10 +131,6 @@ SetTimeZoneName(HWND hwnd) wcscpy(TimeZoneName, TimeZoneInfo.DaylightName); break; - case TIME_ZONE_ID_UNKNOWN: - LoadStringW(hApplet, IDS_TIMEZONEUNKNOWN, TimeZoneName, 128); - break; - case TIME_ZONE_ID_INVALID: default: LoadStringW(hApplet, IDS_TIMEZONEINVALID, TimeZoneName, 128); diff --git a/dll/ntdll/CMakeLists.txt b/dll/ntdll/CMakeLists.txt index 1a9047962b5..7ad854796d1 100644 --- a/dll/ntdll/CMakeLists.txt +++ b/dll/ntdll/CMakeLists.txt @@ -26,16 +26,17 @@ list(APPEND SOURCE ${CMAKE_CURRENT_BINARY_DIR}/ntdll.def) if(ARCH STREQUAL "i386") - list(APPEND SOURCE dispatch/i386/dispatch.S) + list(APPEND ASM_SOURCE dispatch/i386/dispatch.S) elseif(ARCH STREQUAL "amd64") - list(APPEND SOURCE dispatch/amd64/dispatch.S) + list(APPEND ASM_SOURCE dispatch/amd64/dispatch.S) elseif(ARCH STREQUAL "arm") - list(APPEND SOURCE dispatch/arm/stubs_asm.s) + list(APPEND ASM_SOURCE dispatch/arm/stubs_asm.s) else() list(APPEND SOURCE dispatch/dispatch.c) -endif(ARCH STREQUAL "i386") +endif() -add_library(ntdll SHARED ${SOURCE}) +add_asm_files(ntdll_asm ${ASM_SOURCE}) +add_library(ntdll SHARED ${SOURCE} ${ntdll_asm}) set_module_type(ntdll win32dll ENTRYPOINT 0) diff --git a/dll/win32/kernel32/CMakeLists.txt b/dll/win32/kernel32/CMakeLists.txt index 85ffc2ad518..92fde0743b1 100644 --- a/dll/win32/kernel32/CMakeLists.txt +++ b/dll/win32/kernel32/CMakeLists.txt @@ -80,16 +80,17 @@ list(APPEND SOURCE ${CMAKE_CURRENT_BINARY_DIR}/kernel32.def) if(ARCH STREQUAL "i386") - list(APPEND SOURCE + list(APPEND ASM_SOURCE client/i386/fiber.S client/i386/thread.S) elseif(ARCH STREQUAL "amd64") - list(APPEND SOURCE + list(APPEND ASM_SOURCE client/amd64/fiber.S client/amd64/thread.S) endif() -add_library(kernel32 SHARED ${SOURCE}) +add_asm_files(kernel32_asm ${ASM_SOURCE}) +add_library(kernel32 SHARED ${SOURCE} ${kernel32_asm}) set_module_type(kernel32 win32dll ENTRYPOINT DllMain 12) target_link_libraries(kernel32 wine chkstk ${PSEH_LIB}) add_importlibs(kernel32 ntdll) diff --git a/dll/win32/kernel32/client/path.c b/dll/win32/kernel32/client/path.c index 2229d3ed835..2c92cce32b1 100644 --- a/dll/win32/kernel32/client/path.c +++ b/dll/win32/kernel32/client/path.c @@ -236,9 +236,7 @@ BasepComputeProcessPath(IN PBASE_SEARCH_PATH_TYPE PathOrder, if (NtCurrentTeb()->NtTib.SubSystemTib) { /* This means someone added RTL_PERTHREAD_CURDIR */ - UNIMPLEMENTED; - ASSERT(FALSE); - // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } /* We do not. Do we have the LDR_ENTRY for the executable? */ diff --git a/dll/win32/kernel32/client/thread.c b/dll/win32/kernel32/client/thread.c index c9d7f173978..56da4337949 100644 --- a/dll/win32/kernel32/client/thread.c +++ b/dll/win32/kernel32/client/thread.c @@ -238,10 +238,9 @@ CreateRemoteThread(IN HANDLE hProcess, if (!NT_SUCCESS(Status)) { /* Fail */ - DbgPrint("SXS: %s - Failing thread create because " - "NtQueryInformationThread() failed with status %08lx\n", - __FUNCTION__, Status); - ASSERT(FALSE); // while (TRUE); + ERROR_DBGBREAK("SXS: %s - Failing thread create because " + "NtQueryInformationThread() failed with status %08lx\n", + __FUNCTION__, Status); return NULL; } @@ -250,10 +249,9 @@ CreateRemoteThread(IN HANDLE hProcess, if (!NT_SUCCESS(Status)) { /* Fail */ - DbgPrint("SXS: %s - Failing thread create because " - "RtlAllocateActivationContextStack() failed with status %08lx\n", - __FUNCTION__, Status); - ASSERT(FALSE); // while (TRUE); + ERROR_DBGBREAK("SXS: %s - Failing thread create because " + "RtlAllocateActivationContextStack() failed with status %08lx\n", + __FUNCTION__, Status); return NULL; } @@ -273,10 +271,9 @@ CreateRemoteThread(IN HANDLE hProcess, if (!NT_SUCCESS(Status)) { /* Fail */ - DbgPrint("SXS: %s - Failing thread create because " - "RtlQueryInformationActivationContext() failed with status %08lx\n", - __FUNCTION__, Status); - ASSERT(FALSE); // while (TRUE); + ERROR_DBGBREAK("SXS: %s - Failing thread create because " + "RtlQueryInformationActivationContext() failed with status %08lx\n", + __FUNCTION__, Status); return NULL; } @@ -291,10 +288,9 @@ CreateRemoteThread(IN HANDLE hProcess, if (!NT_SUCCESS(Status)) { /* Fail */ - DbgPrint("SXS: %s - Failing thread create because " - "RtlActivateActivationContextEx() failed with status %08lx\n", - __FUNCTION__, Status); - ASSERT(FALSE); // while (TRUE); + ERROR_DBGBREAK("SXS: %s - Failing thread create because " + "RtlActivateActivationContextEx() failed with status %08lx\n", + __FUNCTION__, Status); return NULL; } } @@ -370,9 +366,8 @@ ExitThread(IN DWORD uExitCode) NtTerminateThread(NULL, uExitCode); /* We should never reach this place */ - DPRINT1("It should not happen\n"); - ASSERT(FALSE); - while (TRUE); // 'noreturn' function. + ERROR_FATAL("It should not happen\n"); + while (TRUE); /* 'noreturn' function */ } /* diff --git a/dll/win32/msgina/resources/reactos.bmp b/dll/win32/msgina/resources/reactos.bmp index 7fd0563b79e..57637ec52e3 100644 Binary files a/dll/win32/msgina/resources/reactos.bmp and b/dll/win32/msgina/resources/reactos.bmp differ diff --git a/dll/win32/msgina/resources/reactos.svg b/dll/win32/msgina/resources/reactos.svg new file mode 100644 index 00000000000..cfb1765100e --- /dev/null +++ b/dll/win32/msgina/resources/reactos.svg @@ -0,0 +1,3114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Copyright © 1996-2013 ReactOS Team & Contributors + diff --git a/dll/win32/netapi32/user.c b/dll/win32/netapi32/user.c index 25238ae0d05..895bf811fea 100644 --- a/dll/win32/netapi32/user.c +++ b/dll/win32/netapi32/user.c @@ -159,6 +159,68 @@ CreateSidFromSidAndRid(PSID SrcSid, } +static +ULONG +GetAccountFlags(ULONG AccountControl) +{ + ULONG Flags = UF_SCRIPT; + + if (AccountControl & USER_ACCOUNT_DISABLED) + Flags |= UF_ACCOUNTDISABLE; + + if (AccountControl & USER_HOME_DIRECTORY_REQUIRED) + Flags |= UF_HOMEDIR_REQUIRED; + + if (AccountControl & USER_PASSWORD_NOT_REQUIRED) + Flags |= UF_PASSWD_NOTREQD; + +// UF_PASSWD_CANT_CHANGE + + if (AccountControl & USER_ACCOUNT_AUTO_LOCKED) + Flags |= UF_LOCKOUT; + + if (AccountControl & USER_DONT_EXPIRE_PASSWORD) + Flags |= UF_DONT_EXPIRE_PASSWD; + +/* + if (AccountControl & USER_ENCRYPTED_TEXT_PASSWORD_ALLOWED) + Flags |= UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED; + + if (AccountControl & USER_SMARTCARD_REQUIRED) + Flags |= UF_SMARTCARD_REQUIRED; + + if (AccountControl & USER_TRUSTED_FOR_DELEGATION) + Flags |= UF_TRUSTED_FOR_DELEGATION; + + if (AccountControl & USER_NOT_DELEGATED) + Flags |= UF_NOT_DELEGATED; + + if (AccountControl & USER_USE_DES_KEY_ONLY) + Flags |= UF_USE_DES_KEY_ONLY; + + if (AccountControl & USER_DONT_REQUIRE_PREAUTH) + Flags |= UF_DONT_REQUIRE_PREAUTH; + + if (AccountControl & USER_PASSWORD_EXPIRED) + Flags |= UF_PASSWORD_EXPIRED; +*/ + + /* Set account type flags */ + if (AccountControl & USER_TEMP_DUPLICATE_ACCOUNT) + Flags |= UF_TEMP_DUPLICATE_ACCOUNT; + else if (AccountControl & USER_NORMAL_ACCOUNT) + Flags |= UF_NORMAL_ACCOUNT; + else if (AccountControl & USER_INTERDOMAIN_TRUST_ACCOUNT) + Flags |= UF_INTERDOMAIN_TRUST_ACCOUNT; + else if (AccountControl & USER_WORKSTATION_TRUST_ACCOUNT) + Flags |= UF_WORKSTATION_TRUST_ACCOUNT; + else if (AccountControl & USER_SERVER_TRUST_ACCOUNT) + Flags |= UF_SERVER_TRUST_ACCOUNT; + + return Flags; +} + + static NET_API_STATUS BuildUserInfoBuffer(PUSER_ACCOUNT_INFORMATION UserInfo, @@ -169,8 +231,11 @@ BuildUserInfoBuffer(PUSER_ACCOUNT_INFORMATION UserInfo, LPVOID LocalBuffer = NULL; PUSER_INFO_0 UserInfo0; PUSER_INFO_1 UserInfo1; + PUSER_INFO_2 UserInfo2; + PUSER_INFO_3 UserInfo3; PUSER_INFO_10 UserInfo10; PUSER_INFO_20 UserInfo20; + PUSER_INFO_23 UserInfo23; LPWSTR Ptr; ULONG Size = 0; NET_API_STATUS ApiStatus = NERR_Success; @@ -195,11 +260,67 @@ BuildUserInfoBuffer(PUSER_ACCOUNT_INFORMATION UserInfo, Size += UserInfo->AdminComment.Length + sizeof(WCHAR); if (UserInfo->ScriptPath.Length > 0) - Size = UserInfo->ScriptPath.Length + sizeof(WCHAR); + Size += UserInfo->ScriptPath.Length + sizeof(WCHAR); + break; + + case 2: + Size = sizeof(USER_INFO_2) + + UserInfo->UserName.Length + sizeof(WCHAR); + + if (UserInfo->HomeDirectory.Length > 0) + Size += UserInfo->HomeDirectory.Length + sizeof(WCHAR); + + if (UserInfo->AdminComment.Length > 0) + Size += UserInfo->AdminComment.Length + sizeof(WCHAR); + + if (UserInfo->ScriptPath.Length > 0) + Size += UserInfo->ScriptPath.Length + sizeof(WCHAR); + + if (UserInfo->FullName.Length > 0) + Size += UserInfo->FullName.Length + sizeof(WCHAR); + + /* FIXME: usri2_usr_comment */ + /* FIXME: usri2_parms */ + + if (UserInfo->WorkStations.Length > 0) + Size += UserInfo->WorkStations.Length + sizeof(WCHAR); + + /* FIXME: usri2_logon_hours */ + /* FIXME: usri2_logon_server */ + break; + + case 3: + Size = sizeof(USER_INFO_3) + + UserInfo->UserName.Length + sizeof(WCHAR); + + if (UserInfo->HomeDirectory.Length > 0) + Size += UserInfo->HomeDirectory.Length + sizeof(WCHAR); + + if (UserInfo->AdminComment.Length > 0) + Size += UserInfo->AdminComment.Length + sizeof(WCHAR); + + if (UserInfo->ScriptPath.Length > 0) + Size += UserInfo->ScriptPath.Length + sizeof(WCHAR); + + if (UserInfo->FullName.Length > 0) + Size += UserInfo->FullName.Length + sizeof(WCHAR); + + /* FIXME: usri3_usr_comment */ + /* FIXME: usri3_parms */ + + if (UserInfo->WorkStations.Length > 0) + Size += UserInfo->WorkStations.Length + sizeof(WCHAR); + + /* FIXME: usri3_logon_hours */ + /* FIXME: usri3_logon_server */ + + if (UserInfo->ProfilePath.Length > 0) + Size += UserInfo->ProfilePath.Length + sizeof(WCHAR); + + if (UserInfo->HomeDirectoryDrive.Length > 0) + Size += UserInfo->HomeDirectoryDrive.Length + sizeof(WCHAR); break; -// case 2: -// case 3: // case 4: case 10: @@ -228,7 +349,18 @@ BuildUserInfoBuffer(PUSER_ACCOUNT_INFORMATION UserInfo, Size += UserInfo->AdminComment.Length + sizeof(WCHAR); break; -// case 23: + case 23: + Size = sizeof(USER_INFO_23) + + UserInfo->UserName.Length + sizeof(WCHAR); + + if (UserInfo->FullName.Length > 0) + Size += UserInfo->FullName.Length + sizeof(WCHAR); + + if (UserInfo->AdminComment.Length > 0) + Size += UserInfo->AdminComment.Length + sizeof(WCHAR); + + /* FIXME: usri23_user_sid */ + break; default: ApiStatus = ERROR_INVALID_LEVEL; @@ -243,76 +375,316 @@ BuildUserInfoBuffer(PUSER_ACCOUNT_INFORMATION UserInfo, switch (level) { - case 0: - UserInfo0 = (PUSER_INFO_0)LocalBuffer; + case 0: + UserInfo0 = (PUSER_INFO_0)LocalBuffer; - Ptr = (LPWSTR)((ULONG_PTR)UserInfo0 + sizeof(USER_INFO_0)); - UserInfo0->usri0_name = Ptr; + Ptr = (LPWSTR)((ULONG_PTR)UserInfo0 + sizeof(USER_INFO_0)); + UserInfo0->usri0_name = Ptr; - memcpy(UserInfo0->usri0_name, - UserInfo->UserName.Buffer, - UserInfo->UserName.Length); - UserInfo0->usri0_name[UserInfo->UserName.Length / sizeof(WCHAR)] = UNICODE_NULL; - break; + memcpy(UserInfo0->usri0_name, + UserInfo->UserName.Buffer, + UserInfo->UserName.Length); + UserInfo0->usri0_name[UserInfo->UserName.Length / sizeof(WCHAR)] = UNICODE_NULL; + break; - case 1: - UserInfo1 = (PUSER_INFO_1)LocalBuffer; + case 1: + UserInfo1 = (PUSER_INFO_1)LocalBuffer; - Ptr = (LPWSTR)((ULONG_PTR)UserInfo1 + sizeof(USER_INFO_1)); + Ptr = (LPWSTR)((ULONG_PTR)UserInfo1 + sizeof(USER_INFO_1)); - UserInfo1->usri1_name = Ptr; + UserInfo1->usri1_name = Ptr; - memcpy(UserInfo1->usri1_name, - UserInfo->UserName.Buffer, - UserInfo->UserName.Length); - UserInfo1->usri1_name[UserInfo->UserName.Length / sizeof(WCHAR)] = UNICODE_NULL; + memcpy(UserInfo1->usri1_name, + UserInfo->UserName.Buffer, + UserInfo->UserName.Length); + UserInfo1->usri1_name[UserInfo->UserName.Length / sizeof(WCHAR)] = UNICODE_NULL; - Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->UserName.Length + sizeof(WCHAR)); + Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->UserName.Length + sizeof(WCHAR)); - UserInfo1->usri1_password = NULL; + UserInfo1->usri1_password = NULL; - /* FIXME: UserInfo1->usri1_password_age */ - /* FIXME: UserInfo1->usri1_priv */ + /* FIXME: UserInfo1->usri1_password_age */ + /* FIXME: UserInfo1->usri1_priv */ - if (UserInfo->HomeDirectory.Length > 0) - { - UserInfo1->usri1_home_dir = Ptr; + if (UserInfo->HomeDirectory.Length > 0) + { + UserInfo1->usri1_home_dir = Ptr; - memcpy(UserInfo1->usri1_home_dir, - UserInfo->HomeDirectory.Buffer, - UserInfo->HomeDirectory.Length); - UserInfo1->usri1_home_dir[UserInfo->HomeDirectory.Length / sizeof(WCHAR)] = UNICODE_NULL; + memcpy(UserInfo1->usri1_home_dir, + UserInfo->HomeDirectory.Buffer, + UserInfo->HomeDirectory.Length); + UserInfo1->usri1_home_dir[UserInfo->HomeDirectory.Length / sizeof(WCHAR)] = UNICODE_NULL; - Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->HomeDirectory.Length + sizeof(WCHAR)); - } + Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->HomeDirectory.Length + sizeof(WCHAR)); + } - if (UserInfo->AdminComment.Length > 0) - { - UserInfo1->usri1_comment = Ptr; + if (UserInfo->AdminComment.Length > 0) + { + UserInfo1->usri1_comment = Ptr; - memcpy(UserInfo1->usri1_comment, - UserInfo->AdminComment.Buffer, - UserInfo->AdminComment.Length); - UserInfo1->usri1_comment[UserInfo->AdminComment.Length / sizeof(WCHAR)] = UNICODE_NULL; + memcpy(UserInfo1->usri1_comment, + UserInfo->AdminComment.Buffer, + UserInfo->AdminComment.Length); + UserInfo1->usri1_comment[UserInfo->AdminComment.Length / sizeof(WCHAR)] = UNICODE_NULL; - Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->AdminComment.Length + sizeof(WCHAR)); - } + Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->AdminComment.Length + sizeof(WCHAR)); + } -// UserInfo1->usri1_flags = UserInfo->UserAccountControl; + UserInfo1->usri1_flags = GetAccountFlags(UserInfo->UserAccountControl); - if (UserInfo->ScriptPath.Length > 0) - { - UserInfo1->usri1_script_path = Ptr; + if (UserInfo->ScriptPath.Length > 0) + { + UserInfo1->usri1_script_path = Ptr; - memcpy(UserInfo1->usri1_script_path, - UserInfo->ScriptPath.Buffer, - UserInfo->ScriptPath.Length); - UserInfo1->usri1_script_path[UserInfo->ScriptPath.Length / sizeof(WCHAR)] = UNICODE_NULL; - } - break; + memcpy(UserInfo1->usri1_script_path, + UserInfo->ScriptPath.Buffer, + UserInfo->ScriptPath.Length); + UserInfo1->usri1_script_path[UserInfo->ScriptPath.Length / sizeof(WCHAR)] = UNICODE_NULL; + } + break; + + case 2: + UserInfo2 = (PUSER_INFO_2)LocalBuffer; + + Ptr = (LPWSTR)((ULONG_PTR)UserInfo2 + sizeof(USER_INFO_2)); + + UserInfo2->usri2_name = Ptr; + + memcpy(UserInfo2->usri2_name, + UserInfo->UserName.Buffer, + UserInfo->UserName.Length); + UserInfo2->usri2_name[UserInfo->UserName.Length / sizeof(WCHAR)] = UNICODE_NULL; + + Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->UserName.Length + sizeof(WCHAR)); + + /* FIXME: usri2_password_age */ + /* FIXME: usri2_priv */ + + if (UserInfo->HomeDirectory.Length > 0) + { + UserInfo2->usri2_home_dir = Ptr; + + memcpy(UserInfo2->usri2_home_dir, + UserInfo->HomeDirectory.Buffer, + UserInfo->HomeDirectory.Length); + UserInfo2->usri2_home_dir[UserInfo->HomeDirectory.Length / sizeof(WCHAR)] = UNICODE_NULL; + + Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->HomeDirectory.Length + sizeof(WCHAR)); + } + + if (UserInfo->AdminComment.Length > 0) + { + UserInfo2->usri2_comment = Ptr; + + memcpy(UserInfo2->usri2_comment, + UserInfo->AdminComment.Buffer, + UserInfo->AdminComment.Length); + UserInfo2->usri2_comment[UserInfo->AdminComment.Length / sizeof(WCHAR)] = UNICODE_NULL; + + Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->AdminComment.Length + sizeof(WCHAR)); + } + + UserInfo2->usri2_flags = GetAccountFlags(UserInfo->UserAccountControl); + + if (UserInfo->ScriptPath.Length > 0) + { + UserInfo2->usri2_script_path = Ptr; + + memcpy(UserInfo2->usri2_script_path, + UserInfo->ScriptPath.Buffer, + UserInfo->ScriptPath.Length); + UserInfo2->usri2_script_path[UserInfo->ScriptPath.Length / sizeof(WCHAR)] = UNICODE_NULL; + + Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->ScriptPath.Length + sizeof(WCHAR)); + } + + /* FIXME: usri2_auth_flags */ + + if (UserInfo->FullName.Length > 0) + { + UserInfo2->usri2_full_name = Ptr; + + memcpy(UserInfo2->usri2_full_name, + UserInfo->FullName.Buffer, + UserInfo->FullName.Length); + UserInfo2->usri2_full_name[UserInfo->FullName.Length / sizeof(WCHAR)] = UNICODE_NULL; + + Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->FullName.Length + sizeof(WCHAR)); + } + + /* FIXME: usri2_usr_comment */ + /* FIXME: usri2_parms */ + + if (UserInfo->WorkStations.Length > 0) + { + UserInfo2->usri2_workstations = Ptr; + + memcpy(UserInfo2->usri2_workstations, + UserInfo->WorkStations.Buffer, + UserInfo->WorkStations.Length); + UserInfo2->usri2_workstations[UserInfo->WorkStations.Length / sizeof(WCHAR)] = UNICODE_NULL; + + Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->WorkStations.Length + sizeof(WCHAR)); + } + + RtlTimeToSecondsSince1970(&UserInfo->LastLogon, + &UserInfo2->usri2_last_logon); + + RtlTimeToSecondsSince1970(&UserInfo->LastLogoff, + &UserInfo2->usri2_last_logoff); + + RtlTimeToSecondsSince1970(&UserInfo->AccountExpires, + &UserInfo2->usri2_acct_expires); + + UserInfo2->usri2_max_storage = USER_MAXSTORAGE_UNLIMITED; + + /* FIXME: usri2_units_per_week */ + /* FIXME: usri2_logon_hours */ + + UserInfo2->usri2_bad_pw_count = UserInfo->BadPasswordCount; + UserInfo2->usri2_num_logons = UserInfo->LogonCount; + + /* FIXME: usri2_logon_server */ + /* FIXME: usri2_country_code */ + /* FIXME: usri2_code_page */ + + break; + + case 3: + UserInfo3 = (PUSER_INFO_3)LocalBuffer; + + Ptr = (LPWSTR)((ULONG_PTR)UserInfo3 + sizeof(USER_INFO_3)); + + UserInfo3->usri3_name = Ptr; + + memcpy(UserInfo3->usri3_name, + UserInfo->UserName.Buffer, + UserInfo->UserName.Length); + UserInfo3->usri3_name[UserInfo->UserName.Length / sizeof(WCHAR)] = UNICODE_NULL; + + Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->UserName.Length + sizeof(WCHAR)); + + /* FIXME: usri3_password_age */ + /* FIXME: usri3_priv */ + + if (UserInfo->HomeDirectory.Length > 0) + { + UserInfo3->usri3_home_dir = Ptr; + + memcpy(UserInfo3->usri3_home_dir, + UserInfo->HomeDirectory.Buffer, + UserInfo->HomeDirectory.Length); + UserInfo3->usri3_home_dir[UserInfo->HomeDirectory.Length / sizeof(WCHAR)] = UNICODE_NULL; + + Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->HomeDirectory.Length + sizeof(WCHAR)); + } + + if (UserInfo->AdminComment.Length > 0) + { + UserInfo3->usri3_comment = Ptr; + + memcpy(UserInfo3->usri3_comment, + UserInfo->AdminComment.Buffer, + UserInfo->AdminComment.Length); + UserInfo3->usri3_comment[UserInfo->AdminComment.Length / sizeof(WCHAR)] = UNICODE_NULL; + + Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->AdminComment.Length + sizeof(WCHAR)); + } + + UserInfo3->usri3_flags = GetAccountFlags(UserInfo->UserAccountControl); + + if (UserInfo->ScriptPath.Length > 0) + { + UserInfo3->usri3_script_path = Ptr; + + memcpy(UserInfo3->usri3_script_path, + UserInfo->ScriptPath.Buffer, + UserInfo->ScriptPath.Length); + UserInfo3->usri3_script_path[UserInfo->ScriptPath.Length / sizeof(WCHAR)] = UNICODE_NULL; + + Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->ScriptPath.Length + sizeof(WCHAR)); + } + + /* FIXME: usri3_auth_flags */ + + if (UserInfo->FullName.Length > 0) + { + UserInfo3->usri3_full_name = Ptr; + + memcpy(UserInfo3->usri3_full_name, + UserInfo->FullName.Buffer, + UserInfo->FullName.Length); + UserInfo3->usri3_full_name[UserInfo->FullName.Length / sizeof(WCHAR)] = UNICODE_NULL; + + Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->FullName.Length + sizeof(WCHAR)); + } + + /* FIXME: usri3_usr_comment */ + /* FIXME: usri3_parms */ + + if (UserInfo->WorkStations.Length > 0) + { + UserInfo3->usri3_workstations = Ptr; + + memcpy(UserInfo3->usri3_workstations, + UserInfo->WorkStations.Buffer, + UserInfo->WorkStations.Length); + UserInfo3->usri3_workstations[UserInfo->WorkStations.Length / sizeof(WCHAR)] = UNICODE_NULL; + + Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->WorkStations.Length + sizeof(WCHAR)); + } + + RtlTimeToSecondsSince1970(&UserInfo->LastLogon, + &UserInfo3->usri3_last_logon); + + RtlTimeToSecondsSince1970(&UserInfo->LastLogoff, + &UserInfo3->usri3_last_logoff); + + RtlTimeToSecondsSince1970(&UserInfo->AccountExpires, + &UserInfo3->usri3_acct_expires); + + UserInfo3->usri3_max_storage = USER_MAXSTORAGE_UNLIMITED; + + /* FIXME: usri3_units_per_week */ + /* FIXME: usri3_logon_hours */ + + UserInfo3->usri3_bad_pw_count = UserInfo->BadPasswordCount; + UserInfo3->usri3_num_logons = UserInfo->LogonCount; + + /* FIXME: usri3_logon_server */ + /* FIXME: usri3_country_code */ + /* FIXME: usri3_code_page */ + + UserInfo3->usri3_user_id = RelativeId; + UserInfo3->usri3_primary_group_id = UserInfo->PrimaryGroupId; + + if (UserInfo->ProfilePath.Length > 0) + { + UserInfo3->usri3_profile = Ptr; + + memcpy(UserInfo3->usri3_profile, + UserInfo->ProfilePath.Buffer, + UserInfo->ProfilePath.Length); + UserInfo3->usri3_profile[UserInfo->ProfilePath.Length / sizeof(WCHAR)] = UNICODE_NULL; + + Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->ProfilePath.Length + sizeof(WCHAR)); + } + + if (UserInfo->HomeDirectoryDrive.Length > 0) + { + UserInfo3->usri3_home_dir_drive = Ptr; + + memcpy(UserInfo3->usri3_home_dir_drive, + UserInfo->HomeDirectoryDrive.Buffer, + UserInfo->HomeDirectoryDrive.Length); + UserInfo3->usri3_home_dir_drive[UserInfo->HomeDirectoryDrive.Length / sizeof(WCHAR)] = UNICODE_NULL; + + Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->HomeDirectoryDrive.Length + sizeof(WCHAR)); + } + + UserInfo3->usri3_password_expired = (UserInfo->UserAccountControl & USER_PASSWORD_EXPIRED); + break; -// case 2: -// case 3: // case 4: case 10: @@ -341,7 +713,7 @@ BuildUserInfoBuffer(PUSER_ACCOUNT_INFORMATION UserInfo, Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->AdminComment.Length + sizeof(WCHAR)); } - /* FIXME: UserInfo10->usri10_usr_comment */ + /* FIXME: usri10_usr_comment */ if (UserInfo->FullName.Length > 0) { @@ -351,6 +723,8 @@ BuildUserInfoBuffer(PUSER_ACCOUNT_INFORMATION UserInfo, UserInfo->FullName.Buffer, UserInfo->FullName.Length); UserInfo10->usri10_full_name[UserInfo->FullName.Length / sizeof(WCHAR)] = UNICODE_NULL; + + Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->FullName.Length + sizeof(WCHAR)); } break; @@ -394,11 +768,53 @@ BuildUserInfoBuffer(PUSER_ACCOUNT_INFORMATION UserInfo, Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->AdminComment.Length + sizeof(WCHAR)); } -// UserInfo20->usri20_flags = UserInfo->UserAccountControl; + UserInfo20->usri20_flags = GetAccountFlags(UserInfo->UserAccountControl); + UserInfo20->usri20_user_id = RelativeId; break; -// case 23: + case 23: + UserInfo23 = (PUSER_INFO_23)LocalBuffer; + + Ptr = (LPWSTR)((ULONG_PTR)UserInfo23 + sizeof(USER_INFO_23)); + + UserInfo23->usri23_name = Ptr; + + memcpy(UserInfo23->usri23_name, + UserInfo->UserName.Buffer, + UserInfo->UserName.Length); + UserInfo23->usri23_name[UserInfo->UserName.Length / sizeof(WCHAR)] = UNICODE_NULL; + + Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->UserName.Length + sizeof(WCHAR)); + + if (UserInfo->FullName.Length > 0) + { + UserInfo23->usri23_full_name = Ptr; + + memcpy(UserInfo23->usri23_full_name, + UserInfo->FullName.Buffer, + UserInfo->FullName.Length); + UserInfo23->usri23_full_name[UserInfo->FullName.Length / sizeof(WCHAR)] = UNICODE_NULL; + + Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->FullName.Length + sizeof(WCHAR)); + } + + if (UserInfo->AdminComment.Length > 0) + { + UserInfo23->usri23_comment = Ptr; + + memcpy(UserInfo23->usri23_comment, + UserInfo->AdminComment.Buffer, + UserInfo->AdminComment.Length); + UserInfo23->usri23_comment[UserInfo->AdminComment.Length / sizeof(WCHAR)] = UNICODE_NULL; + + Ptr = (LPWSTR)((ULONG_PTR)Ptr + UserInfo->AdminComment.Length + sizeof(WCHAR)); + } + + UserInfo23->usri23_flags = GetAccountFlags(UserInfo->UserAccountControl); + + /* FIXME: usri23_user_sid */ + break; } done: diff --git a/dll/win32/oleaut32/CMakeLists.txt b/dll/win32/oleaut32/CMakeLists.txt index 5c3621c6c35..fa836d0ac99 100644 --- a/dll/win32/oleaut32/CMakeLists.txt +++ b/dll/win32/oleaut32/CMakeLists.txt @@ -42,10 +42,10 @@ list(APPEND SOURCE ${CMAKE_CURRENT_BINARY_DIR}/oleaut32.def) if(MSVC) - list(APPEND SOURCE msvc.S) + add_asm_files(oleaut32_asm msvc.S) endif() -add_library(oleaut32 SHARED ${SOURCE}) +add_library(oleaut32 SHARED ${SOURCE} ${oleaut32_asm}) add_idl_headers(oleaut32_idlheader oleaut32_oaidl.idl) add_dependencies(oleaut32 oleaut32_idlheader) set_module_type(oleaut32 win32dll) diff --git a/dll/win32/rpcrt4/CMakeLists.txt b/dll/win32/rpcrt4/CMakeLists.txt index 05dfb4a3cba..ce6108a424d 100644 --- a/dll/win32/rpcrt4/CMakeLists.txt +++ b/dll/win32/rpcrt4/CMakeLists.txt @@ -27,22 +27,24 @@ list(APPEND SOURCE ${CMAKE_CURRENT_BINARY_DIR}/rpcrt4_stubs.c ${CMAKE_CURRENT_BINARY_DIR}/rpcrt4.def) -if(MSVC) - list(APPEND SOURCE msvc.S) -endif() - remove_definitions(-D_WIN32_WINNT=0x502) add_definitions(-D_WIN32_WINNT=0x600) add_definitions( + -D__WINESRC__ -D_RPCRT4_ -DCOM_NO_WINDOWS_H -DMSWMSG) include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) +if(MSVC) + add_asm_files(rpcrt4_asm msvc.S) +endif() + add_library(rpcrt4 SHARED ${SOURCE} + ${rpcrt4_asm} rpcrt4.rc) set_module_type(rpcrt4 win32dll) diff --git a/dll/win32/samsrv/samrpc.c b/dll/win32/samsrv/samrpc.c index ebc6020faad..d996c8c68d6 100644 --- a/dll/win32/samsrv/samrpc.c +++ b/dll/win32/samsrv/samrpc.c @@ -2297,6 +2297,18 @@ SamrCreateUserInDomain(IN SAMPR_HANDLE DomainHandle, return Status; } + /* Set the Parameters attribute */ + Status = SampSetObjectAttribute(UserObject, + L"Parameters", + REG_SZ, + EmptyString.Buffer, + EmptyString.MaximumLength); + if (!NT_SUCCESS(Status)) + { + TRACE("failed with status 0x%08lx\n", Status); + return Status; + } + /* FIXME: Set default user attributes */ if (NT_SUCCESS(Status)) @@ -5654,6 +5666,47 @@ done: } +static NTSTATUS +SampQueryUserParameters(PSAM_DB_OBJECT UserObject, + PSAMPR_USER_INFO_BUFFER *Buffer) +{ + PSAMPR_USER_INFO_BUFFER InfoBuffer = NULL; + NTSTATUS Status; + + *Buffer = NULL; + + InfoBuffer = midl_user_allocate(sizeof(SAMPR_USER_INFO_BUFFER)); + if (InfoBuffer == NULL) + return STATUS_INSUFFICIENT_RESOURCES; + + /* Get the Parameters string */ + Status = SampGetObjectAttributeString(UserObject, + L"Parameters", + &InfoBuffer->Parameters.Parameters); + if (!NT_SUCCESS(Status)) + { + TRACE("Status 0x%08lx\n", Status); + goto done; + } + + *Buffer = InfoBuffer; + +done: + if (!NT_SUCCESS(Status)) + { + if (InfoBuffer != NULL) + { + if (InfoBuffer->Parameters.Parameters.Buffer != NULL) + midl_user_free(InfoBuffer->Parameters.Parameters.Buffer); + + midl_user_free(InfoBuffer); + } + } + + return Status; +} + + /* Function 36 */ NTSTATUS NTAPI @@ -5689,6 +5742,7 @@ SamrQueryInformationUser(IN SAMPR_HANDLE UserHandle, case UserControlInformation: case UserExpiresInformation: + case UserParametersInformation: DesiredAccess = USER_READ_ACCOUNT; break; @@ -5801,6 +5855,19 @@ SamrQueryInformationUser(IN SAMPR_HANDLE UserHandle, Buffer); break; +// case UserInternal1Information: + + case UserParametersInformation: + Status = SampQueryUserParameters(UserObject, + Buffer); + break; + +// case UserAllInformation: +// case UserInternal4Information: +// case UserInternal5Information: +// case UserInternal4InformationNew: +// case UserInternal5InformationNew: + default: Status = STATUS_INVALID_INFO_CLASS; } diff --git a/dll/win32/samsrv/setup.c b/dll/win32/samsrv/setup.c index 28a1d4bc5f3..dae35f0034b 100644 --- a/dll/win32/samsrv/setup.c +++ b/dll/win32/samsrv/setup.c @@ -221,7 +221,8 @@ SampCreateAliasAccount(HKEY hDomainKey, static BOOL SampCreateUserAccount(HKEY hDomainKey, LPCWSTR lpAccountName, - ULONG ulRelativeId) + ULONG ulRelativeId, + ULONG UserAccountControl) { SAM_USER_FIXED_DATA FixedUserData; LPWSTR lpEmptyString = L""; @@ -235,6 +236,7 @@ SampCreateUserAccount(HKEY hDomainKey, FixedUserData.Version = 1; FixedUserData.UserId = ulRelativeId; + FixedUserData.UserAccountControl = UserAccountControl; swprintf(szAccountKeyName, L"Users\\%08lX", ulRelativeId); @@ -318,6 +320,13 @@ SampCreateUserAccount(HKEY hDomainKey, (LPVOID)lpEmptyString, sizeof(WCHAR)); + RegSetValueEx(hAccountKey, + L"Parameters", + 0, + REG_SZ, + (LPVOID)lpEmptyString, + sizeof(WCHAR)); + RegCloseKey(hAccountKey); } @@ -666,11 +675,13 @@ SampInitializeSAM(VOID) { SampCreateUserAccount(hDomainKey, L"Administrator", - DOMAIN_USER_RID_ADMIN); + DOMAIN_USER_RID_ADMIN, + USER_DONT_EXPIRE_PASSWORD | USER_NORMAL_ACCOUNT); SampCreateUserAccount(hDomainKey, L"Guest", - DOMAIN_USER_RID_GUEST); + DOMAIN_USER_RID_GUEST, + USER_ACCOUNT_DISABLED | USER_DONT_EXPIRE_PASSWORD | USER_NORMAL_ACCOUNT); RegCloseKey(hDomainKey); } diff --git a/dll/win32/shdocvw/CMakeLists.txt b/dll/win32/shdocvw/CMakeLists.txt index c48f7286a14..34b51022118 100644 --- a/dll/win32/shdocvw/CMakeLists.txt +++ b/dll/win32/shdocvw/CMakeLists.txt @@ -1,7 +1,9 @@ add_typelib(shdocvw_v1.idl) -add_definitions(-D_SHDOCVW_) +add_definitions( + -D__WINESRC__ + -D_SHDOCVW_) include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) spec2def(shdocvw.dll shdocvw.spec ADD_IMPORTLIB) diff --git a/drivers/CMakeLists.txt b/drivers/CMakeLists.txt index 7a672a385c5..fcfaa9396d8 100644 --- a/drivers/CMakeLists.txt +++ b/drivers/CMakeLists.txt @@ -1,4 +1,6 @@ +PROJECT(Drivers) + add_subdirectory(base) add_subdirectory(battery) add_subdirectory(bluetooth) diff --git a/drivers/base/bootvid/i386/vga.c b/drivers/base/bootvid/i386/vga.c index 3c6d4ad8857..ae66001bc89 100644 --- a/drivers/base/bootvid/i386/vga.c +++ b/drivers/base/bootvid/i386/vga.c @@ -63,13 +63,19 @@ ULONG lookup[16] = 0x1111, }; -ULONG TextColor = 0xF; +ULONG VidTextColor = 0xF; ULONG curr_x = 0; ULONG curr_y = 0; BOOLEAN CarriageReturn = FALSE; ULONG_PTR VgaRegisterBase = 0; ULONG_PTR VgaBase = 0; +#define __outpb(Port, Value) \ + WRITE_PORT_UCHAR((PUCHAR)VgaRegisterBase + Port, (UCHAR)Value) + +#define __outpw(Port, Value) \ + WRITE_PORT_USHORT((PUSHORT)(VgaRegisterBase + Port), (USHORT)Value) + /* PRIVATE FUNCTIONS *********************************************************/ VOID @@ -79,35 +85,18 @@ ReadWriteMode(UCHAR Mode) UCHAR Value; /* Switch to graphics mode register */ - WRITE_PORT_UCHAR((PUCHAR)VgaRegisterBase + 0x3CE, 5); + __outpb(0x3CE, 5); /* Get the current register value, minus the current mode */ Value = READ_PORT_UCHAR((PUCHAR)VgaRegisterBase + 0x3CF) & 0xF4; /* Set the new mode */ - WRITE_PORT_UCHAR((PUCHAR)VgaRegisterBase + 0x3CF, Mode | Value); + __outpb(0x3CF, Mode | Value); } -VOID -NTAPI -__outpb(IN ULONG Port, - IN ULONG Value) -{ - /* Write to the VGA Register */ - WRITE_PORT_UCHAR((PUCHAR)VgaRegisterBase + Port, (UCHAR)Value); -} VOID -NTAPI -__outpw(IN ULONG Port, - IN ULONG Value) -{ - /* Write to the VGA Register */ - WRITE_PORT_USHORT((PUSHORT)(VgaRegisterBase + Port), (USHORT)Value); -} - -VOID -NTAPI +FORCEINLINE SetPixel(IN ULONG Left, IN ULONG Top, IN UCHAR Color) @@ -117,6 +106,41 @@ SetPixel(IN ULONG Left, /* Calculate the pixel position. */ PixelPosition = (PUCHAR)VgaBase + (Left >> 3) + (Top * 80); + /* Select the bitmask register and write the mask */ + __outpw(0x3CE, (PixelMask[Left & 7] << 8) | 8); + + /* Read the current pixel value and add our color */ + WRITE_REGISTER_UCHAR(PixelPosition, + READ_REGISTER_UCHAR(PixelPosition) & Color); +} + +#ifdef CHAR_GEN_UPSIDE_DOWN +# define GetFontPtr(_Char) &FontData[_Char * BOOTCHAR_HEIGHT] + BOOTCHAR_HEIGHT - 1; +# define FONT_PTR_DELTA (-1) +#else +# define GetFontPtr(_Char) &FontData[_Char * BOOTCHAR_HEIGHT]; +# define FONT_PTR_DELTA (1) +#endif + +#define SET_PIXELS(_PixelPtr, _PixelMask, _TextColor) \ + /* Select the bitmask register and write the mask */ \ + __outpw(0x3CE, (_PixelMask << 8) | 8); \ +\ + /* Set the new color */ \ + WRITE_REGISTER_UCHAR(_PixelPtr, (UCHAR)_TextColor);\ + +VOID +NTAPI +DisplayCharacter(CHAR Character, + ULONG Left, + ULONG Top, + ULONG TextColor, + ULONG BackColor) +{ + PUCHAR FontChar, PixelPtr; + ULONG Height; + UCHAR Shift; + /* Switch to mode 10 */ ReadWriteMode(10); @@ -126,62 +150,84 @@ SetPixel(IN ULONG Left, /* Select the color don't care register */ __outpw(0x3CE, 7); - /* Select the bitmask register and write the mask */ - __outpw(0x3CE, (PixelMask[Left & 7] << 8) | 8); + /* Calculate shift */ + Shift = Left & 7; - /* Read the current pixel value and add our color */ - WRITE_REGISTER_UCHAR(PixelPosition, - READ_REGISTER_UCHAR(PixelPosition) & Color); -} + /* Get the font and pixel pointer */ + FontChar = GetFontPtr(Character); + PixelPtr = (PUCHAR)VgaBase + (Left >> 3) + (Top * 80); -VOID -NTAPI -DisplayCharacter(CHAR Character, - ULONG Left, - ULONG Top, - ULONG TextColor, - ULONG BackTextColor) -{ - PUCHAR FontChar; - ULONG i, j, XOffset; - - /* Get the font line for this character */ - FontChar = &FontData[Character * BOOTCHAR_HEIGHT]; - - /* Loop each pixel height */ - i = BOOTCHAR_HEIGHT; + /* Loop all pixel rows */ + Height = BOOTCHAR_HEIGHT; do { - /* Loop each pixel width */ - j = 128; - XOffset = Left; + SET_PIXELS(PixelPtr, *FontChar >> Shift, TextColor); + PixelPtr += 80; + FontChar += FONT_PTR_DELTA; + } while (--Height); + + /* Check if we need to update neighbor bytes */ + if (Shift) + { + /* Calculate shift for 2nd byte */ + Shift = 8 - Shift; + + /* Get the font and pixel pointer (2nd byte) */ + FontChar = GetFontPtr(Character); + PixelPtr = (PUCHAR)VgaBase + (Left >> 3) + (Top * 80) + 1; + + /* Loop all pixel rows */ + Height = BOOTCHAR_HEIGHT; do { - /* Check if we should draw this pixel */ -#ifdef CHAR_GEN_UPSIDE_DOWN - if (FontChar[i] & (UCHAR)j) -#else - /* Normal character generator (top of char is first element) */ - if (FontChar[BOOTCHAR_HEIGHT - i] & (UCHAR)j) -#endif - { - /* We do, use the given Text Color */ - SetPixel(XOffset, Top, (UCHAR)TextColor); - } - else if (BackTextColor < 16) - { - /* This is a background pixel. */ - /* We're drawing it unless it's transparent. */ - SetPixel(XOffset, Top, (UCHAR)BackTextColor); - } + SET_PIXELS(PixelPtr, *FontChar << Shift, TextColor); + PixelPtr += 80; + FontChar += FONT_PTR_DELTA; + } while (--Height); + } - /* Increase X Offset */ - XOffset++; - } while (j >>= 1); + /* Check if the background color is transparent */ + if (BackColor >= 16) + { + /* We are done */ + return; + } - /* Move to the next Y ordinate */ - Top++; - } while (--i); + /* Calculate shift */ + Shift = Left & 7; + + /* Get the font and pixel pointer */ + FontChar = GetFontPtr(Character); + PixelPtr = (PUCHAR)VgaBase + (Left >> 3) + (Top * 80); + + /* Loop all pixel rows */ + Height = BOOTCHAR_HEIGHT; + do + { + SET_PIXELS(PixelPtr, ~*FontChar >> Shift, BackColor); + PixelPtr += 80; + FontChar += FONT_PTR_DELTA; + } while (--Height); + + /* Check if we need to update neighbor bytes */ + if (Shift) + { + /* Calculate shift for 2nd byte */ + Shift = 8 - Shift; + + /* Get the font and pixel pointer (2nd byte) */ + FontChar = GetFontPtr(Character); + PixelPtr = (PUCHAR)VgaBase + (Left >> 3) + (Top * 80) + 1; + + /* Loop all pixel rows */ + Height = BOOTCHAR_HEIGHT; + do + { + SET_PIXELS(PixelPtr, ~*FontChar << Shift, BackColor); + PixelPtr += 80; + FontChar += FONT_PTR_DELTA; + } while (--Height); + } } VOID @@ -280,7 +326,7 @@ VOID NTAPI VgaScroll(ULONG Scroll) { - ULONG Top, RowSize, i; + ULONG Top, RowSize; PUCHAR OldPosition, NewPosition; /* Clear the 4 planes */ @@ -291,19 +337,27 @@ VgaScroll(ULONG Scroll) /* Set Mode 1 */ ReadWriteMode(1); - + RowSize = (ScrollRegion[2] - ScrollRegion[0] + 1) / 8; + /* Calculate the position in memory for the row */ + OldPosition = (PUCHAR)VgaBase + (ScrollRegion[1] + Scroll) * 80 + ScrollRegion[0] / 8; + NewPosition = (PUCHAR)VgaBase + ScrollRegion[1] * 80 + ScrollRegion[0] / 8; + /* Start loop */ for(Top = ScrollRegion[1]; Top <= ScrollRegion[3]; ++Top) { - /* Calculate the position in memory for the row */ - OldPosition = (PUCHAR)VgaBase + (Top + Scroll) * 80 + ScrollRegion[0] / 8; - NewPosition = (PUCHAR)VgaBase + Top * 80 + ScrollRegion[0] / 8; - +#if defined(_M_IX86) || defined(_M_AMD64) + __movsb(NewPosition, OldPosition, RowSize); +#else + ULONG i; + /* Scroll the row */ for(i = 0; i < RowSize; ++i) WRITE_REGISTER_UCHAR(NewPosition + i, READ_REGISTER_UCHAR(OldPosition + i)); +#endif + OldPosition += 80; + NewPosition += 80; } } @@ -341,19 +395,21 @@ PreserveRow(IN ULONG CurrentTop, /* Set the count and make sure it's above 0 */ Count = TopDelta * 80; - if (Count) - { - /* Loop every pixel */ - do - { - /* Write the data back on the other position */ - WRITE_REGISTER_UCHAR(Position1, READ_REGISTER_UCHAR(Position2)); - /* Increase both positions */ - Position2++; - Position1++; - } while (--Count); +#if defined(_M_IX86) || defined(_M_AMD64) + __movsb(Position1, Position2, Count); +#else + /* Loop every pixel */ + while (Count--) + { + /* Write the data back on the other position */ + WRITE_REGISTER_UCHAR(Position1, READ_REGISTER_UCHAR(Position2)); + + /* Increase both positions */ + Position2++; + Position1++; } +#endif } VOID @@ -390,6 +446,15 @@ BitBlt(IN ULONG Left, return; } + /* Switch to mode 10 */ + ReadWriteMode(10); + + /* Clear the 4 planes (we're already in unchained mode here) */ + __outpw(0x3C4, 0xF02); + + /* Select the color don't care register */ + __outpw(0x3CE, 7); + /* 4bpp blitting */ dy = Top; do @@ -429,6 +494,15 @@ RleBitBlt(IN ULONG Left, ULONG i, j; ULONG Code; + /* Switch to mode 10 */ + ReadWriteMode(10); + + /* Clear the 4 planes (we're already in unchained mode here) */ + __outpw(0x3C4, 0xF02); + + /* Select the color don't care register */ + __outpw(0x3CE, 7); + /* Set Y height and current X value and start loop */ YDelta = Top + Height - 1; x = Left; @@ -615,8 +689,8 @@ VidSetTextColor(ULONG Color) ULONG OldColor; /* Save the old color and set the new one */ - OldColor = TextColor; - TextColor = Color; + OldColor = VidTextColor; + VidTextColor = Color; return OldColor; } @@ -735,7 +809,7 @@ VidDisplayString(PUCHAR String) { /* Update current X */ curr_x = ScrollRegion[0]; - + /* Check if we're being followed by a new line */ CarriageReturn = TRUE; } @@ -750,7 +824,7 @@ VidDisplayString(PUCHAR String) } /* Display this character */ - DisplayCharacter(*String, curr_x, curr_y, TextColor, 16); + DisplayCharacter(*String, curr_x, curr_y, VidTextColor, 16); curr_x += 8; /* Check if we should scroll */ diff --git a/drivers/base/bootvid/precomp.h b/drivers/base/bootvid/precomp.h index c7d55e92f8c..1a7d4a6b6e3 100644 --- a/drivers/base/bootvid/precomp.h +++ b/drivers/base/bootvid/precomp.h @@ -3,6 +3,7 @@ #include "arc/arc.h" #include "halfuncs.h" #include "drivers/bootvid/bootvid.h" +#include "ioaccess.h" /* Define if FontData has upside down characters */ #undef CHAR_GEN_UPSIDE_DOWN diff --git a/drivers/ksfilter/ks/CMakeLists.txt b/drivers/ksfilter/ks/CMakeLists.txt index fdd2fa40d27..18d74c6013a 100644 --- a/drivers/ksfilter/ks/CMakeLists.txt +++ b/drivers/ksfilter/ks/CMakeLists.txt @@ -32,10 +32,10 @@ list(APPEND SOURCE ${CMAKE_CURRENT_BINARY_DIR}/ks.def) if(MSVC) - list(APPEND SOURCE msvc.S) + add_asm_files(ks_asm msvc.S) endif() -add_library(ks SHARED ${SOURCE}) +add_library(ks SHARED ${SOURCE} ${ks_asm}) set_target_properties(ks PROPERTIES SUFFIX ".sys") diff --git a/drivers/storage/class/ramdisk/ramdisk.c b/drivers/storage/class/ramdisk/ramdisk.c index 06f6461b2a8..7b7097285eb 100644 --- a/drivers/storage/class/ramdisk/ramdisk.c +++ b/drivers/storage/class/ramdisk/ramdisk.c @@ -772,8 +772,7 @@ RamdiskCreateDiskDevice(IN PRAMDISK_BUS_EXTENSION DeviceExtension, } FailCreate: - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return STATUS_SUCCESS; } @@ -1066,9 +1065,7 @@ RamdiskWorkerThread(IN PDEVICE_OBJECT DeviceObject, case IOCTL_DISK_GET_DRIVE_LAYOUT: - DPRINT1("Get drive layout request\n"); - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("Get drive layout request\n"); break; case IOCTL_DISK_GET_PARTITION_INFO: @@ -1078,9 +1075,7 @@ RamdiskWorkerThread(IN PDEVICE_OBJECT DeviceObject, default: - DPRINT1("Invalid request\n"); - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("Invalid request\n"); break; } @@ -1095,9 +1090,7 @@ RamdiskWorkerThread(IN PDEVICE_OBJECT DeviceObject, case IRP_MJ_READ: case IRP_MJ_WRITE: - DPRINT1("Read/Write request\n"); - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("Read/Write request\n"); break; // @@ -1105,9 +1098,7 @@ RamdiskWorkerThread(IN PDEVICE_OBJECT DeviceObject, // case IRP_MJ_INTERNAL_DEVICE_CONTROL: - DPRINT1("SCSI request\n"); - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("SCSI request\n"); break; // @@ -1115,9 +1106,7 @@ RamdiskWorkerThread(IN PDEVICE_OBJECT DeviceObject, // case IRP_MJ_FLUSH_BUFFERS: - DPRINT1("Flush request\n"); - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("Flush request\n"); break; // @@ -1125,9 +1114,7 @@ RamdiskWorkerThread(IN PDEVICE_OBJECT DeviceObject, // default: - DPRINT1("Invalid request: %lx\n", IoStackLocation->MajorFunction); - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("Invalid request: %lx\n", IoStackLocation->MajorFunction); break; } @@ -1481,7 +1468,7 @@ RamdiskDeviceControl(IN PDEVICE_OBJECT DeviceObject, // // We don't handle anything else yet // - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } } else @@ -1496,8 +1483,7 @@ RamdiskDeviceControl(IN PDEVICE_OBJECT DeviceObject, case IOCTL_STORAGE_CHECK_VERIFY2: case IOCTL_CDROM_CHECK_VERIFY: - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); break; case IOCTL_STORAGE_GET_MEDIA_TYPES: @@ -1662,68 +1648,57 @@ RamdiskDeviceControl(IN PDEVICE_OBJECT DeviceObject, case IOCTL_DISK_GET_DRIVE_LAYOUT: - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); break; case IOCTL_DISK_GET_LENGTH_INFO: - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); break; case IOCTL_DISK_IS_WRITABLE: - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); break; case IOCTL_SCSI_MINIPORT: - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); break; case IOCTL_STORAGE_QUERY_PROPERTY: - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); break; case IOCTL_MOUNTDEV_QUERY_UNIQUE_ID: - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); break; case IOCTL_MOUNTDEV_QUERY_STABLE_GUID: - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); break; case IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS: - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); break; case IOCTL_VOLUME_SET_GPT_ATTRIBUTES: - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); break; case IOCTL_VOLUME_GET_GPT_ATTRIBUTES: - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); break; case IOCTL_VOLUME_OFFLINE: - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); break; default: @@ -1791,8 +1766,7 @@ RamdiskQueryDeviceRelations(IN DEVICE_RELATION_TYPE Type, // // FIXME: TODO // - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } // @@ -1978,8 +1952,7 @@ NTAPI RamdiskDeleteDiskDevice(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return STATUS_SUCCESS; } @@ -2146,38 +2119,32 @@ RamdiskPnp(IN PDEVICE_OBJECT DeviceObject, { case IRP_MN_START_DEVICE: - DPRINT1("PnP IRP: %lx\n", Minor); - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor); break; case IRP_MN_QUERY_STOP_DEVICE: - DPRINT1("PnP IRP: %lx\n", Minor); - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor); break; case IRP_MN_CANCEL_STOP_DEVICE: - DPRINT1("PnP IRP: %lx\n", Minor); - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor); break; case IRP_MN_STOP_DEVICE: - DPRINT1("PnP IRP: %lx\n", Minor); - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor); break; case IRP_MN_QUERY_REMOVE_DEVICE: - DPRINT1("PnP IRP: %lx\n", Minor); - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor); break; case IRP_MN_CANCEL_REMOVE_DEVICE: - DPRINT1("PnP IRP: %lx\n", Minor); - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor); break; case IRP_MN_REMOVE_DEVICE: @@ -2211,8 +2178,7 @@ RamdiskPnp(IN PDEVICE_OBJECT DeviceObject, case IRP_MN_SURPRISE_REMOVAL: - DPRINT1("PnP IRP: %lx\n", Minor); - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor); break; case IRP_MN_QUERY_ID: @@ -2222,8 +2188,7 @@ RamdiskPnp(IN PDEVICE_OBJECT DeviceObject, // if (DeviceExtension->Type == RamdiskDrive) { - DPRINT1("PnP IRP: %lx\n", Minor); - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor); } break; @@ -2234,15 +2199,13 @@ RamdiskPnp(IN PDEVICE_OBJECT DeviceObject, // if (DeviceExtension->Type == RamdiskDrive) { - DPRINT1("PnP IRP: %lx\n", Minor); - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor); } break; case IRP_MN_EJECT: - DPRINT1("PnP IRP: %lx\n", Minor); - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor); break; case IRP_MN_QUERY_DEVICE_TEXT: @@ -2252,8 +2215,7 @@ RamdiskPnp(IN PDEVICE_OBJECT DeviceObject, // if (DeviceExtension->Type == RamdiskDrive) { - DPRINT1("PnP IRP: %lx\n", Minor); - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor); } break; @@ -2276,8 +2238,7 @@ RamdiskPnp(IN PDEVICE_OBJECT DeviceObject, // if (DeviceExtension->Type == RamdiskDrive) { - DPRINT1("PnP IRP: %lx\n", Minor); - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("PnP IRP: %lx\n", Minor); } break; diff --git a/drivers/storage/ide/uniata/atapi.h b/drivers/storage/ide/uniata/atapi.h index f191a784535..68a7cddfb00 100644 --- a/drivers/storage/ide/uniata/atapi.h +++ b/drivers/storage/ide/uniata/atapi.h @@ -533,8 +533,16 @@ typedef union _ATAPI_REGISTERS_2 { // ATAPI interrupt reasons // +// for IDX_ATAPI_IO1_i_InterruptReason #define ATAPI_IR_COD 0x01 -#define ATAPI_IR_IO 0x02 +#define ATAPI_IR_COD_Data 0x0 +#define ATAPI_IR_COD_Cmd 0x1 + +#define ATAPI_IR_IO 0x02 +#define ATAPI_IR_IO_toDev 0x00 +#define ATAPI_IR_IO_toHost 0x02 + +#define ATAPI_IR_Mask 0x03 // // ATA Features diff --git a/drivers/storage/ide/uniata/id_ata.cpp b/drivers/storage/ide/uniata/id_ata.cpp index fc1c0201f54..c49fd41f84a 100644 --- a/drivers/storage/ide/uniata/id_ata.cpp +++ b/drivers/storage/ide/uniata/id_ata.cpp @@ -725,16 +725,23 @@ AtapiSoftReset( } } else { AtapiStallExecution(500); + GetBaseStatus(chan, statusByte2); AtapiWritePort1(chan, IDX_IO1_o_Command, IDE_COMMAND_ATAPI_RESET); - AtapiStallExecution(30); - // Wait for BUSY assertion, in some cases delay may occure - while (!(AtapiReadPort1(chan, IDX_IO1_i_Status) & IDE_STATUS_BUSY) && - i--) - { - AtapiStallExecution(30); + // Do not wait for BUSY assertion if it was initially set, jump to + // BUSY release wait loop + if(!(statusByte2 & IDE_STATUS_BUSY)) { + // Wait for BUSY assertion, in some cases delay may occure + // 100ms should be enough + i = 10*1000; + while (!(AtapiReadPort1(chan, IDX_IO1_i_Status) & IDE_STATUS_BUSY) && + i--) + { + AtapiStallExecution(10); + } } + i = 30 * 1000; // ReactOS modification: Already stop looping when we know that the drive has finished resetting. // Not all controllers clear the IDE_STATUS_BUSY flag (e.g. not the VMware one), so ensure that // the maximum waiting time (30 * i = 0.9 seconds) does not exceed the one of the original @@ -4492,7 +4499,7 @@ skip_dma_stat_check: KdPrint2((PRINT_PREFIX " OurInterrupt = %d\n", OurInterrupt)); return OurInterrupt; } - interruptReason = (AtapiReadPort1(chan, IDX_ATAPI_IO1_i_InterruptReason) & 0x3); + interruptReason = (AtapiReadPort1(chan, IDX_ATAPI_IO1_i_InterruptReason) & ATAPI_IR_Mask); KdPrint3((PRINT_PREFIX "AtapiCheckInterrupt__: ATAPI int reason %x\n", interruptReason)); return OurInterrupt; } @@ -4847,7 +4854,7 @@ try_dpc_wait: if(deviceExtension->HwFlags & UNIATA_AHCI) { KdPrint3((PRINT_PREFIX " AHCI branch (ATAPI)\n")); } else { - interruptReason = (AtapiReadPort1(chan, IDX_ATAPI_IO1_i_InterruptReason) & 0x3); + interruptReason = (AtapiReadPort1(chan, IDX_ATAPI_IO1_i_InterruptReason) & ATAPI_IR_Mask); KdPrint3((PRINT_PREFIX "AtapiInterrupt: iReason %x\n", interruptReason)); } @@ -5016,7 +5023,7 @@ continue_err: } } } else { - interruptReason = (AtapiReadPort1(chan, IDX_ATAPI_IO1_i_InterruptReason) & 0x3); + interruptReason = (AtapiReadPort1(chan, IDX_ATAPI_IO1_i_InterruptReason) & ATAPI_IR_Mask); KdPrint3((PRINT_PREFIX "AtapiInterrupt: ATAPI Error, int reason %x\n", interruptReason)); if(DmaTransfer && (chan->lun[DeviceNumber]->TransferMode > ATA_UDMA2) && @@ -5086,7 +5093,7 @@ continue_PIO: KdPrint2((PRINT_PREFIX "AtapiInterrupt: ATAPI branch\n")); // ATAPI branch - interruptReason = (AtapiReadPort1(chan, IDX_ATAPI_IO1_i_InterruptReason) & 0x3); + interruptReason = (AtapiReadPort1(chan, IDX_ATAPI_IO1_i_InterruptReason) & ATAPI_IR_Mask); KdPrint3((PRINT_PREFIX "AtapiInterrupt: iReason %x\n", interruptReason)); if(DmaTransfer) { wordsThisInterrupt = DEV_BSIZE/2*512; @@ -5113,10 +5120,10 @@ continue_PIO: if (srb->SrbFlags & SRB_FLAGS_DATA_IN) { - interruptReason = 0x2; + interruptReason = ATAPI_IR_IO_toHost; } else if (srb->SrbFlags & SRB_FLAGS_DATA_OUT) { - interruptReason = 0x0; + interruptReason = ATAPI_IR_IO_toDev; } else { status = SRB_STATUS_ERROR; @@ -5164,13 +5171,13 @@ IntrPrepareResetController: goto ReturnEnableIntr; } else { - interruptReason = (srb->SrbFlags & SRB_FLAGS_DATA_IN) ? 0x2 : 0x0; + interruptReason = (srb->SrbFlags & SRB_FLAGS_DATA_IN) ? ATAPI_IR_IO_toHost : ATAPI_IR_IO_toDev; } } else { // Command complete - verify, write, or the SMART enable/disable. // Also get_media_status - interruptReason = 0x3; + interruptReason = ATAPI_IR_IO_toHost | ATAPI_IR_COD_Cmd; } } } @@ -5196,7 +5203,7 @@ IntrPrepareResetController: chan->ChannelCtrlFlags &= ~CTRFLAGS_DMA_OPERATION; goto CompleteRequest; } else - if (interruptReason == 0x1 && (statusByte & IDE_STATUS_DRQ)) { + if (interruptReason == ATAPI_IR_COD_Cmd && (statusByte & IDE_STATUS_DRQ)) { // Write the packet. KdPrint3((PRINT_PREFIX "AtapiInterrupt: Writing Atapi packet.\n")); // Send CDB to device. @@ -5212,7 +5219,7 @@ IntrPrepareResetController: goto ReturnEnableIntr; - } else if (interruptReason == 0x0 && (statusByte & IDE_STATUS_DRQ)) { + } else if (interruptReason == ATAPI_IR_IO_toDev && (statusByte & IDE_STATUS_DRQ)) { // Write the data. if (atapiDev) { @@ -5319,7 +5326,7 @@ IntrPrepareResetController: goto ReturnEnableIntr; - } else if (interruptReason == 0x2 && (statusByte & IDE_STATUS_DRQ)) { + } else if (interruptReason == ATAPI_IR_IO_toHost && (statusByte & IDE_STATUS_DRQ)) { if (atapiDev) { @@ -5515,7 +5522,7 @@ IntrPrepareResetController: goto ReturnEnableIntr; - } else if (interruptReason == 0x3 && !(statusByte & IDE_STATUS_DRQ)) { + } else if (interruptReason == (ATAPI_IR_IO_toHost | ATAPI_IR_COD_Cmd) && !(statusByte & IDE_STATUS_DRQ)) { KdPrint2((PRINT_PREFIX "AtapiInterrupt: interruptReason = CompleteRequest\n")); // Command complete. @@ -5663,7 +5670,8 @@ CompleteRequest: AtaReq->OriginalSrb); } else { - // last request was illegal. No point trying again + // last request was illegal. No point trying again. + // Do-nothing call ? AtapiHwInitializeChanger (HwDeviceExtension, srb, (PMECHANICAL_STATUS_INFORMATION_HEADER) NULL); @@ -5706,6 +5714,7 @@ CompleteRequest: if (AtaReq->OriginalSrb) { KdPrint2((PRINT_PREFIX "AtapiInterrupt: call AtapiHwInitializeChanger()\n")); + // Do-nothing call ? AtapiHwInitializeChanger (HwDeviceExtension, srb, (PMECHANICAL_STATUS_INFORMATION_HEADER) NULL); @@ -6756,7 +6765,7 @@ AtapiSendCommand( //ULONG ldev = GET_LDEV(Srb); ULONG DeviceNumber = GET_CDEV(Srb); ULONG flags; - UCHAR statusByte,byteCountLow,byteCountHigh; + UCHAR statusByte,statusByte0,byteCountLow,byteCountHigh; BOOLEAN use_dma = FALSE; BOOLEAN dma_reinited = FALSE; BOOLEAN retried = FALSE; @@ -6901,9 +6910,27 @@ AtapiSendCommand( KdPrint2((PRINT_PREFIX "AtapiSendCommand: SRB_STATUS_PENDING (2)\n")); return srbStatus; } else { + + // failed! Get the sense key and maybe try again + AtaReq->Srb = BuildRequestSenseSrb ( HwDeviceExtension, + AtaReq->OriginalSrb); + + srbStatus = AtapiSendCommand(HwDeviceExtension, AtaReq->Srb, CMD_ACTION_ALL); + + KdPrint3((PRINT_PREFIX "AtapiSendCommand: chan->ExpectingInterrupt %d (1)\n", chan->ExpectingInterrupt)); + + if (srbStatus == SRB_STATUS_PENDING) { + KdPrint2((PRINT_PREFIX "AtapiSendCommand: send orig SRB_STATUS_PENDING (2.1)\n")); + return srbStatus; + } + + // failed again ? should not get here + AtaReq->Srb = AtaReq->OriginalSrb; AtaReq->OriginalSrb = NULL; + KdPrint2((PRINT_PREFIX "AtapiSendCommand: AtapiHwInitializeChanger()\n")); + // Do-nothing call ? AtapiHwInitializeChanger (HwDeviceExtension, Srb, (PMECHANICAL_STATUS_INFORMATION_HEADER) NULL); // fall out @@ -7395,6 +7422,8 @@ make_reset: if(g_opt_AtapiSendDisableIntr) { AtapiDisableInterrupts(deviceExtension, lChannel); } + // remember status. Later we may check if error appeared after cmd packet + statusByte0 = statusByte; // Write ATAPI packet command. AtapiWritePort1(chan, IDX_IO1_o_Command, IDE_COMMAND_ATAPI_PACKET); @@ -7442,9 +7471,19 @@ make_reset: GetStatus(chan, statusByte); KdPrint3((PRINT_PREFIX "AtapiSendCommand: cmd status (%#x)\n", statusByte)); + // When we operate in DMA mode, we should not start transfer when there is an error on entry + // Interrupt may never come in such case. if(statusByte & IDE_STATUS_ERROR) { + UCHAR interruptReason; + GetBaseStatus(chan, statusByte); KdPrint3((PRINT_PREFIX "AtapiSendCommand: Error on cmd: (%#x)\n", statusByte)); + + interruptReason = (AtapiReadPort1(chan, IDX_ATAPI_IO1_i_InterruptReason) & ATAPI_IR_Mask); + KdPrint3((PRINT_PREFIX "AtapiSendCommand: iReason %x\n", interruptReason)); + + // TODO: we should check interruptReason and decide what to do now + // Read the error reg. to clear it and fail this request. AtaReq->ReqState = REQ_STATE_TRANSFER_COMPLETE; return MapError(deviceExtension, Srb); diff --git a/hal/CMakeLists.txt b/hal/CMakeLists.txt index e767918faa5..965a08d1376 100644 --- a/hal/CMakeLists.txt +++ b/hal/CMakeLists.txt @@ -1,4 +1,5 @@ +project(HAL) if((ARCH STREQUAL "i386") OR (ARCH STREQUAL "amd64")) add_subdirectory(halx86) elseif(ARCH STREQUAL "arm") diff --git a/hal/halx86/CMakeLists.txt b/hal/halx86/CMakeLists.txt index 4684c89859f..7fa5cf55f4c 100644 --- a/hal/halx86/CMakeLists.txt +++ b/hal/halx86/CMakeLists.txt @@ -26,7 +26,7 @@ if(ARCH STREQUAL "i386") generic/portio.c) endif() -if(CMAKE_VERSION VERSION_GREATER 2.8.7) +if(NOT MSVC AND (CMAKE_VERSION VERSION_GREATER 2.8.7)) add_library(lib_hal_generic OBJECT ${HAL_GENERIC_SOURCE}) else() add_library(lib_hal_generic ${HAL_GENERIC_SOURCE}) @@ -63,7 +63,7 @@ if(ARCH STREQUAL "i386") legacy/halpnpdd.c legacy/halpcat.c) - if(CMAKE_VERSION VERSION_GREATER 2.8.7) + if(NOT MSVC AND (CMAKE_VERSION VERSION_GREATER 2.8.7)) add_library(lib_hal_legacy OBJECT ${HAL_LEGACY_SOURCE}) else() add_library(lib_hal_legacy ${HAL_LEGACY_SOURCE}) @@ -71,7 +71,7 @@ if(ARCH STREQUAL "i386") #add_pch(lib_hal_legacy include/hal.h) - if(NOT CMAKE_VERSION VERSION_GREATER 2.8.7) + if(MSVC OR (NOT CMAKE_VERSION VERSION_GREATER 2.8.7)) target_link_libraries(lib_hal_legacy lib_hal_generic) endif() @@ -83,14 +83,14 @@ list(APPEND HAL_ACPI_SOURCE acpi/busemul.c legacy/bus/pcibus.c) -if(CMAKE_VERSION VERSION_GREATER 2.8.7) +if(NOT MSVC AND (CMAKE_VERSION VERSION_GREATER 2.8.7)) add_library(lib_hal_acpi OBJECT ${HAL_ACPI_SOURCE}) else() add_library(lib_hal_acpi ${HAL_ACPI_SOURCE}) endif() #add_pch(lib_hal_acpi include/hal.h) -if(NOT CMAKE_VERSION VERSION_GREATER 2.8.7) +if(MSVC OR (NOT CMAKE_VERSION VERSION_GREATER 2.8.7)) target_link_libraries(lib_hal_acpi lib_hal_generic) endif() @@ -98,30 +98,33 @@ list(APPEND HAL_UP_SOURCE generic/spinlock.c up/processor.c) -if(CMAKE_VERSION VERSION_GREATER 2.8.7) +if(NOT MSVC AND (CMAKE_VERSION VERSION_GREATER 2.8.7)) add_library(lib_hal_up OBJECT ${HAL_UP_SOURCE}) endif() +list(APPEND HAL_APIC_ASM_SOURCE + apic/apictrap.S + apic/tsccal.S) + list(APPEND HAL_APIC_SOURCE apic/apic.c apic/apictimer.c - apic/apictrap.S apic/halinit_apic.c apic/rtctimer.c - apic/tsc.c - apic/tsccal.S) + apic/tsc.c) if(ARCH STREQUAL "i386") + list(APPEND HAL_PIC_ASM_SOURCE + generic/systimer.S + generic/trap.S) list(APPEND HAL_PIC_SOURCE generic/profil.c generic/timer.c - generic/systimer.S - generic/trap.S up/halinit_up.c up/pic.c) - if(CMAKE_VERSION VERSION_GREATER 2.8.7) - add_library(lib_hal_pic OBJECT ${HAL_PIC_SOURCE}) + if(NOT MSVC AND (CMAKE_VERSION VERSION_GREATER 2.8.7)) + add_library(lib_hal_pic OBJECT ${HAL_PIC_SOURCE} ${HAL_PIC_ASM_SOURCE}) endif() list(APPEND MINI_HAL_SOURCE @@ -153,7 +156,7 @@ if(ARCH STREQUAL "i386") spec2def(hal.dll ../hal.spec ADD_IMPORTLIB) # hal - if(CMAKE_VERSION VERSION_GREATER 2.8.7) + if(NOT MSVC AND (CMAKE_VERSION VERSION_GREATER 2.8.7)) add_library(hal SHARED $ $ @@ -163,15 +166,18 @@ if(ARCH STREQUAL "i386") up/halup.rc ${CMAKE_CURRENT_BINARY_DIR}/hal.def) else() + add_asm_files(hal_asm + ${HAL_PIC_ASM_SOURCE} + generic/v86.S) add_library(hal SHARED ${HAL_UP_SOURCE} ${HAL_PIC_SOURCE} - generic/v86.S + ${hal_asm} up/halup.rc ${CMAKE_CURRENT_BINARY_DIR}/hal.def) endif() - if(NOT CMAKE_VERSION VERSION_GREATER 2.8.7) + if(MSVC OR (NOT CMAKE_VERSION VERSION_GREATER 2.8.7)) target_link_libraries(hal lib_hal_generic lib_hal_legacy) endif() target_link_libraries(hal libcntpr) @@ -188,7 +194,7 @@ if(ARCH STREQUAL "i386") # hal acpi spec2def(halacpi.dll ../hal.spec) - if(CMAKE_VERSION VERSION_GREATER 2.8.7) + if(NOT MSVC AND (CMAKE_VERSION VERSION_GREATER 2.8.7)) add_library(halacpi SHARED $ $ @@ -198,15 +204,17 @@ if(ARCH STREQUAL "i386") acpi/halacpi.rc ${CMAKE_CURRENT_BINARY_DIR}/halacpi.def) else() + set_source_files_properties(${HAL_PIC_ASM_SOURCE} generic/v86.S PROPERTIES COMPILE_DEFINITIONS "CONFIG_ACPI") + add_asm_files(halacpi_asm ${HAL_PIC_ASM_SOURCE} generic/v86.S) add_library(halacpi SHARED ${HAL_UP_SOURCE} ${HAL_PIC_SOURCE} - generic/v86.S + ${halacpi_asm} acpi/halacpi.rc ${CMAKE_CURRENT_BINARY_DIR}/halacpi.def) endif() - if(NOT CMAKE_VERSION VERSION_GREATER 2.8.7) + if(MSVC OR (NOT CMAKE_VERSION VERSION_GREATER 2.8.7)) target_link_libraries(halacpi lib_hal_generic lib_hal_acpi) endif() target_link_libraries(halacpi libcntpr) diff --git a/include/psdk/lmaccess.h b/include/psdk/lmaccess.h index 850539fe20d..1f63d7bcc1d 100644 --- a/include/psdk/lmaccess.h +++ b/include/psdk/lmaccess.h @@ -266,6 +266,37 @@ typedef struct _USER_INFO_3 { LPWSTR usri3_home_dir_drive; DWORD usri3_password_expired; }USER_INFO_3,*PUSER_INFO_3,*LPUSER_INFO_3; +typedef struct _USER_INFO_4 { + LPWSTR usri4_name; + LPWSTR usri4_password; + DWORD usri4_password_age; + DWORD usri4_priv; + LPWSTR usri4_home_dir; + LPWSTR usri4_comment; + DWORD usri4_flags; + LPWSTR usri4_script_path; + DWORD usri4_auth_flags; + LPWSTR usri4_full_name; + LPWSTR usri4_usr_comment; + LPWSTR usri4_parms; + LPWSTR usri4_workstations; + DWORD usri4_last_logon; + DWORD usri4_last_logoff; + DWORD usri4_acct_expires; + DWORD usri4_max_storage; + DWORD usri4_units_per_week; + PBYTE usri4_logon_hours; + DWORD usri4_bad_pw_count; + DWORD usri4_num_logons; + LPWSTR usri4_logon_server; + DWORD usri4_country_code; + DWORD usri4_code_page; + PSID usri4_user_sid; + DWORD usri4_primary_group_id; + LPWSTR usri4_profile; + LPWSTR usri4_home_dir_drive; + DWORD usri4_password_expired; +} USER_INFO_4, *PUSER_INFO_4, *LPUSER_INFO_4; typedef struct _USER_INFO_10 { LPWSTR usri10_name; LPWSTR usri10_comment; @@ -329,7 +360,14 @@ typedef struct _USER_INFO_22 { LPWSTR usri22_logon_server; DWORD usri22_country_code; DWORD usri22_code_page; - }USER_INFO_22,*PUSER_INFO_22,*LPUSER_INFO_22; +}USER_INFO_22,*PUSER_INFO_22,*LPUSER_INFO_22; +typedef struct _USER_INFO_23 { + LPWSTR usri23_name; + LPWSTR usri23_full_name; + LPWSTR usri23_comment; + DWORD usri23_flags; + PSID usri23_user_sid; +} USER_INFO_23, *PUSER_INFO_23, *LPUSER_INFO_23; typedef struct _USER_INFO_1003 { LPWSTR usri1003_password; } USER_INFO_1003,*PUSER_INFO_1003,*LPUSER_INFO_1003; diff --git a/include/psdk/sal.h b/include/psdk/sal.h index 9efc915a2bc..52f00495cf6 100644 --- a/include/psdk/sal.h +++ b/include/psdk/sal.h @@ -941,7 +941,7 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default}; //#define _Pre_readable_byte_size_(size) #define _Pre_readable_size_(size) //#define _Pre_readonly_ -//#define _Pre_satisfies_(cond) +#define _Pre_satisfies_(cond) //#define _Pre_valid_ //#define _Pre_valid_bytecap_(size) //#define _Pre_valid_bytecap_c_(size) diff --git a/include/reactos/debug.h b/include/reactos/debug.h index 18b14efd6b3..c08b7dfc2f7 100644 --- a/include/reactos/debug.h +++ b/include/reactos/debug.h @@ -3,23 +3,22 @@ * PROJECT: ReactOS kernel * FILE: include/internal/debug.h * PURPOSE: Useful debugging macros - * PROGRAMMER: David Welch (welch@mcmail.com) - * UPDATE HISTORY: - * 28/05/98: Created + * PROGRAMMERS: David Welch (welch@mcmail.com) + * Hermes Belusca-Maito (hermes.belusca@sfr.fr) */ /* - * NOTE: Define NDEBUG before including this header to disable debugging - * macros + * NOTE: Define NDEBUG before including this header + * to disable debugging macros. */ #ifndef __INTERNAL_DEBUG #define __INTERNAL_DEBUG -/* Define DbgPrint/DbgPrintEx/RtlAssert unless the NDK is used */ +/* Define DbgPrint/DbgPrintEx/RtlAssert/RtlRaiseStatus unless the NDK is used */ #if !defined(_RTLFUNCS_H) && !defined(_NTDDK_) -/* Make sure we have basic types (some people include us *before* SDK... */ +/* Make sure we have basic types (some people include us *before* SDK)... */ #if !defined(_NTDEF_) && !defined(_NTDEF_H) && !defined(_WINDEF_) && !defined(_WINDEF_H) #error Please include SDK first. #endif @@ -52,11 +51,34 @@ RtlAssert( PCHAR Message ); +/* + * This is the definition of NTSTATUS, but renamed + * in order not to conflict with other ones. + */ +typedef _Return_type_success_(return >= 0) LONG DEBUG_NTSTATUS; + +__analysis_noreturn +NTSYSAPI +VOID +NTAPI +RtlRaiseStatus( + _In_ DEBUG_NTSTATUS Status +); + #endif /* !defined(_RTLFUNCS_H) && !defined(_NTDDK_) */ + +/* Fix usage of RtlRaiseStatus */ +#if !defined(_RTLFUNCS_H) && defined(_NTDDK_) + #define RaiseStatus ExRaiseStatus +#else + #define RaiseStatus RtlRaiseStatus +#endif /* !defined(_RTLFUNCS_H) && defined(_NTDDK_) */ + + #ifndef assert #ifndef NASSERT -#define assert(x) if (!(x)) {RtlAssert((PVOID)#x,(PVOID)__FILE__,__LINE__, ""); } +#define assert(x) if (!(x)) { RtlAssert((PVOID)#x, (PVOID)__FILE__, __LINE__, ""); } #else #define assert(x) #endif @@ -64,7 +86,7 @@ RtlAssert( #ifndef ASSERT #ifndef NASSERT -#define ASSERT(x) if (!(x)) {RtlAssert((PVOID)#x,(PVOID)__FILE__,__LINE__, ""); } +#define ASSERT(x) if (!(x)) { RtlAssert((PVOID)#x, (PVOID)__FILE__, __LINE__, ""); } #else #define ASSERT(x) #endif @@ -72,12 +94,15 @@ RtlAssert( #ifndef ASSERTMSG #ifndef NASSERT -#define ASSERTMSG(x,m) if (!(x)) {RtlAssert((PVOID)#x,__FILE__,__LINE__, m); } +#define ASSERTMSG(x,m) if (!(x)) { RtlAssert((PVOID)#x, __FILE__, __LINE__, m); } #else #define ASSERTMSG(x) #endif #endif +/* For internal purposes only */ +#define __NOTICE(level, fmt, ...) DbgPrint(#level ": %s at %s:%d " fmt, __FUNCTION__, __FILE__, __LINE__, ##__VA_ARGS__) + /* Print stuff only on Debug Builds*/ #define DPFLTR_DEFAULT_ID -1 #if DBG @@ -102,7 +127,7 @@ RtlAssert( #endif - #define UNIMPLEMENTED DbgPrint("WARNING: %s at %s:%d is UNIMPLEMENTED!\n",__FUNCTION__,__FILE__,__LINE__); + #define UNIMPLEMENTED __NOTICE(WARNING, "is UNIMPLEMENTED!\n"); #define ERR_(ch, fmt, ...) DbgPrintEx(DPFLTR_##ch##_ID, DPFLTR_ERROR_LEVEL, "(%s:%d) " fmt, __FILE__, __LINE__, ##__VA_ARGS__) #define WARN_(ch, fmt, ...) DbgPrintEx(DPFLTR_##ch##_ID, DPFLTR_WARNING_LEVEL, "(%s:%d) " fmt, __FILE__, __LINE__, ##__VA_ARGS__) @@ -113,6 +138,7 @@ RtlAssert( #define WARN__(ch, fmt, ...) DbgPrintEx(ch, DPFLTR_WARNING_LEVEL, "(%s:%d) " fmt, __FILE__, __LINE__, ##__VA_ARGS__) #define TRACE__(ch, fmt, ...) DbgPrintEx(ch, DPFLTR_TRACE_LEVEL, "(%s:%d) " fmt, __FILE__, __LINE__, ##__VA_ARGS__) #define INFO__(ch, fmt, ...) DbgPrintEx(ch, DPFLTR_INFO_LEVEL, "(%s:%d) " fmt, __FILE__, __LINE__, ##__VA_ARGS__) + #else /* not DBG */ /* On non-debug builds, we never show these */ @@ -130,8 +156,59 @@ RtlAssert( #define WARN__(ch, ...) do { if(0) { DbgPrint(__VA_ARGS__); } } while(0) #define TRACE__(ch, ...) do { if(0) { DbgPrint(__VA_ARGS__); } } while(0) #define INFO__(ch, ...) do { if(0) { DbgPrint(__VA_ARGS__); } } while(0) + #endif /* not DBG */ +/******************************************************************************/ +/* For internal purposes only */ +#define __ERROR_DBGBREAK(...) \ +do { \ + DbgPrint("" __VA_ARGS__); \ + DbgBreakPoint(); \ +} while (0) + +/* For internal purposes only */ +#define __ERROR_FATAL(Status, ...) \ +do { \ + DbgPrint("" __VA_ARGS__); \ + RaiseStatus((Status)); \ +} while (0) + +/* + * These macros are designed to display an optional printf-like + * user-defined message and to break into the debugger. + * After that they allow to continue the program execution. + */ +#define ERROR_DBGBREAK(...) \ +do { \ + __NOTICE(ERROR, "\n"); \ + __ERROR_DBGBREAK(__VA_ARGS__); \ +} while (0) + +#define UNIMPLEMENTED_DBGBREAK(...) \ +do { \ + __NOTICE(ERROR, "is UNIMPLEMENTED!\n"); \ + __ERROR_DBGBREAK(__VA_ARGS__); \ +} while (0) + +/* + * These macros are designed to display an optional printf-like + * user-defined message and to break into the debugger. + * After that they halt the execution of the current thread. + */ +#define ERROR_FATAL(...) \ +do { \ + __NOTICE(UNRECOVERABLE ERROR, "\n"); \ + __ERROR_FATAL(STATUS_ASSERTION_FAILURE, __VA_ARGS__); \ +} while (0) + +#define UNIMPLEMENTED_FATAL(...) \ +do { \ + __NOTICE(UNRECOVERABLE ERROR, "is UNIMPLEMENTED!\n"); \ + __ERROR_FATAL(STATUS_NOT_IMPLEMENTED, __VA_ARGS__); \ +} while (0) +/******************************************************************************/ + #define ASSERT_IRQL_LESS_OR_EQUAL(x) ASSERT(KeGetCurrentIrql()<=(x)) #define ASSERT_IRQL_EQUAL(x) ASSERT(KeGetCurrentIrql()==(x)) #define ASSERT_IRQL_LESS(x) ASSERT(KeGetCurrentIrql()<(x)) diff --git a/include/reactos/version.cmake b/include/reactos/version.cmake index a68ee50c268..641fb00eafb 100644 --- a/include/reactos/version.cmake +++ b/include/reactos/version.cmake @@ -32,7 +32,7 @@ today(KERNEL_VERSION_BUILD) set(KERNEL_VERSION_MAJOR "0") set(KERNEL_VERSION_MINOR "4") set(KERNEL_VERSION_PATCH_LEVEL "0") -set(COPYRIGHT_YEAR "2012") +set(COPYRIGHT_YEAR "2013") # KERNEL_VERSION_BUILD_TYPE is "SVN", "RC1", "RC2" or "" (for the release) set(KERNEL_VERSION_BUILD_TYPE "SVN") diff --git a/lib/cmlib/hivecell.c b/lib/cmlib/hivecell.c index 3c82b450b9d..c11fd9f72ba 100644 --- a/lib/cmlib/hivecell.c +++ b/lib/cmlib/hivecell.c @@ -548,8 +548,7 @@ HvTrackCellRef(PHV_TRACK_CELL_REF CellRef, } /* FIXME: TODO */ - DPRINT1("ERROR: Too many references\n"); - ASSERT(FALSE); // while (TRUE); + ASSERTMSG(FALSE, "ERROR: Too many references\n"); return FALSE; } diff --git a/lib/pseh/CMakeLists.txt b/lib/pseh/CMakeLists.txt index 1e957bf6b3c..d58e089fe99 100644 --- a/lib/pseh/CMakeLists.txt +++ b/lib/pseh/CMakeLists.txt @@ -25,18 +25,19 @@ if(NOT MSVC) else() if(ARCH STREQUAL "i386") - list(APPEND SOURCE - dummy.c + list(APPEND ASM_SOURCE i386/seh.s i386/seh_prolog.s) + list(APPEND SOURCE dummy.c) elseif(ARCH STREQUAL "amd64") - list(APPEND SOURCE - dummy.c + list(APPEND ASM_SOURCE amd64/seh.s amd64/seh_prolog.s) + list(APPEND SOURCE dummy.c) endif() - add_library(pseh ${SOURCE}) + add_asm_files(pseh_asm ${ASM_SOURCE}) + add_library(pseh ${SOURCE} ${pseh_asm}) add_dependencies(pseh asm) endif() diff --git a/lib/rtl/CMakeLists.txt b/lib/rtl/CMakeLists.txt index 5009360f037..46b17c26309 100644 --- a/lib/rtl/CMakeLists.txt +++ b/lib/rtl/CMakeLists.txt @@ -29,7 +29,7 @@ list(APPEND SOURCE handle.c heap.c heapdbg.c - heappage.c + heappage.c image.c interlck.c message.c @@ -65,40 +65,44 @@ list(APPEND SOURCE workitem.c) if(ARCH STREQUAL "i386") - list(APPEND SOURCE + list(APPEND ASM_SOURCE i386/debug_asm.S i386/except_asm.s - i386/except.c i386/interlck.S i386/rtlmem.s i386/rtlswap.S - i386/res_asm.s + i386/res_asm.s) + list(APPEND SOURCE + i386/except.c i386/thread.c) elseif(ARCH STREQUAL "amd64") - list(APPEND SOURCE - byteswap.c + list(APPEND ASM_SOURCE amd64/debug_asm.S amd64/except_asm.S - amd64/slist.S + amd64/slist.S) + list(APPEND SOURCE + byteswap.c amd64/unwind.c amd64/stubs.c mem.c) elseif(ARCH STREQUAL "arm") + list(APPEND ASM_SOURCE arm/debug_asm.S) list(APPEND SOURCE byteswap.c - arm/debug_asm.S mem.c) elseif(ARCH STREQUAL "powerpc") + list(APPEND ASM_SOURCE + powerpc/rtlmem.s + powerpc/rtlswap.s) list(APPEND SOURCE byteswap.c powerpc/debug.c powerpc/except.c powerpc/interlocked.c - powerpc/rtlmem.s - powerpc/rtlswap.s powerpc/thread.c) endif() -add_library(rtl ${SOURCE}) +add_asm_files(rtl_asm ${ASM_SOURCE}) +add_library(rtl ${SOURCE} ${rtl_asm}) add_pch(rtl rtl.h) add_dependencies(rtl psdk asm) diff --git a/lib/rtl/timezone.c b/lib/rtl/timezone.c index ff992e68928..20369ef4e5f 100644 --- a/lib/rtl/timezone.c +++ b/lib/rtl/timezone.c @@ -46,27 +46,27 @@ RtlQueryTimeZoneInformation(PRTL_TIME_ZONE_INFORMATION TimeZoneInformation) QueryTable[0].Flags = RTL_QUERY_REGISTRY_DIRECT; QueryTable[0].EntryContext = &TimeZoneInformation->Bias; - QueryTable[1].Name = L"Standard Name"; + QueryTable[1].Name = L"StandardName"; QueryTable[1].Flags = RTL_QUERY_REGISTRY_DIRECT; QueryTable[1].EntryContext = &StandardName; - QueryTable[2].Name = L"Standard Bias"; + QueryTable[2].Name = L"StandardBias"; QueryTable[2].Flags = RTL_QUERY_REGISTRY_DIRECT; QueryTable[2].EntryContext = &TimeZoneInformation->StandardBias; - QueryTable[3].Name = L"Standard Start"; + QueryTable[3].Name = L"StandardStart"; QueryTable[3].Flags = RTL_QUERY_REGISTRY_DIRECT; QueryTable[3].EntryContext = &TimeZoneInformation->StandardDate; - QueryTable[4].Name = L"Daylight Name"; + QueryTable[4].Name = L"DaylightName"; QueryTable[4].Flags = RTL_QUERY_REGISTRY_DIRECT; QueryTable[4].EntryContext = &DaylightName; - QueryTable[5].Name = L"Daylight Bias"; + QueryTable[5].Name = L"DaylightBias"; QueryTable[5].Flags = RTL_QUERY_REGISTRY_DIRECT; QueryTable[5].EntryContext = &TimeZoneInformation->DaylightBias; - QueryTable[6].Name = L"Daylight Start"; + QueryTable[6].Name = L"DaylightStart"; QueryTable[6].Flags = RTL_QUERY_REGISTRY_DIRECT; QueryTable[6].EntryContext = &TimeZoneInformation->DaylightDate; @@ -108,7 +108,7 @@ RtlSetTimeZoneInformation(PRTL_TIME_ZONE_INFORMATION TimeZoneInformation) Length = (wcslen(TimeZoneInformation->StandardName) + 1) * sizeof(WCHAR); Status = RtlWriteRegistryValue(RTL_REGISTRY_CONTROL, L"TimeZoneInformation", - L"Standard Name", + L"StandardName", REG_SZ, TimeZoneInformation->StandardName, (ULONG)Length); @@ -119,7 +119,7 @@ RtlSetTimeZoneInformation(PRTL_TIME_ZONE_INFORMATION TimeZoneInformation) Status = RtlWriteRegistryValue(RTL_REGISTRY_CONTROL, L"TimeZoneInformation", - L"Standard Bias", + L"StandardBias", REG_DWORD, &TimeZoneInformation->StandardBias, sizeof(LONG)); @@ -130,7 +130,7 @@ RtlSetTimeZoneInformation(PRTL_TIME_ZONE_INFORMATION TimeZoneInformation) Status = RtlWriteRegistryValue(RTL_REGISTRY_CONTROL, L"TimeZoneInformation", - L"Standard Start", + L"StandardStart", REG_BINARY, &TimeZoneInformation->StandardDate, sizeof(SYSTEMTIME)); @@ -142,7 +142,7 @@ RtlSetTimeZoneInformation(PRTL_TIME_ZONE_INFORMATION TimeZoneInformation) Length = (wcslen(TimeZoneInformation->DaylightName) + 1) * sizeof(WCHAR); Status = RtlWriteRegistryValue(RTL_REGISTRY_CONTROL, L"TimeZoneInformation", - L"Daylight Name", + L"DaylightName", REG_SZ, TimeZoneInformation->DaylightName, (ULONG)Length); @@ -153,7 +153,7 @@ RtlSetTimeZoneInformation(PRTL_TIME_ZONE_INFORMATION TimeZoneInformation) Status = RtlWriteRegistryValue(RTL_REGISTRY_CONTROL, L"TimeZoneInformation", - L"Daylight Bias", + L"DaylightBias", REG_DWORD, &TimeZoneInformation->DaylightBias, sizeof(LONG)); @@ -164,7 +164,7 @@ RtlSetTimeZoneInformation(PRTL_TIME_ZONE_INFORMATION TimeZoneInformation) Status = RtlWriteRegistryValue(RTL_REGISTRY_CONTROL, L"TimeZoneInformation", - L"Daylight Start", + L"DaylightStart", REG_BINARY, &TimeZoneInformation->DaylightDate, sizeof(SYSTEMTIME)); diff --git a/lib/sdk/crt/CMakeLists.txt b/lib/sdk/crt/CMakeLists.txt index dd4a9d327d3..5df63e0ad96 100644 --- a/lib/sdk/crt/CMakeLists.txt +++ b/lib/sdk/crt/CMakeLists.txt @@ -4,20 +4,22 @@ include_directories(include) add_definitions(-D_CRTBLD) if(ARCH STREQUAL "i386") - list(APPEND CHKSTK_SOURCE except/i386/chkstk_asm.s) + list(APPEND CHKSTK_ASM_SOURCE except/i386/chkstk_asm.s) if(NOT MSVC) list(APPEND CHKSTK_SOURCE except/i386/chkstk_ms.s) endif() elseif(ARCH STREQUAL "amd64") - list(APPEND CHKSTK_SOURCE except/amd64/chkstk_asm.s) + list(APPEND CHKSTK_ASM_SOURCE except/amd64/chkstk_asm.s) if(NOT MSVC) list(APPEND CHKSTK_SOURCE except/amd64/chkstk_ms.s) endif() elseif(ARCH STREQUAL "powerpc") - list(APPEND CHKSTK_SOURCE except/powerpc/chkstk_asm.s) + list(APPEND CHKSTK_ASM_SOURCE except/powerpc/chkstk_asm.s) endif() -add_library(chkstk ${CHKSTK_SOURCE}) +add_asm_files(chkstk_lib_asm ${CHKSTK_ASM_SOURCE}) +add_library(chkstk ${CHKSTK_SOURCE} ${chkstk_lib_asm}) +set_target_properties(chkstk PROPERTIES LINKER_LANGUAGE "C") add_dependencies(chkstk asm) include(crt.cmake) diff --git a/lib/sdk/crt/crt.cmake b/lib/sdk/crt/crt.cmake index b1479770f13..90eac846264 100644 --- a/lib/sdk/crt/crt.cmake +++ b/lib/sdk/crt/crt.cmake @@ -120,6 +120,7 @@ list(APPEND CRT_SOURCE mem/memcmp.c mem/memccpy.c mem/memicmp.c + misc/__crt_MessageBoxA.c misc/amsg.c misc/assert.c misc/environ.c @@ -224,6 +225,7 @@ list(APPEND CRT_SOURCE stdio/wstat.c stdio/wstat64.c stdlib/_exit.c + stdlib/_set_abort_behavior.c stdlib/abort.c stdlib/atexit.c stdlib/ecvt.c @@ -346,17 +348,11 @@ list(APPEND CRT_SOURCE wine/undname.c) if(ARCH STREQUAL "i386") - list(APPEND CRT_SOURCE + list(APPEND CRT_ASM_SOURCE except/i386/chkesp.s except/i386/prolog.s except/i386/seh.s except/i386/seh_prolog.s - except/i386/unwind.c - float/i386/clearfp.c - float/i386/cntrlfp.c - float/i386/fpreset.c - float/i386/logb.c - float/i386/statfp.c math/i386/alldiv_asm.s math/i386/alldvrm_asm.s math/i386/allmul_asm.s @@ -383,16 +379,9 @@ if(ARCH STREQUAL "i386") math/i386/sqrt_asm.s math/i386/tan_asm.s math/i386/atan2_asm.s - math/i386/ci.c - math/i386/cicos.c - math/i386/cilog.c - math/i386/cipow.c - math/i386/cisin.c - math/i386/cisqrt.c math/i386/exp_asm.s math/i386/fmod_asm.s math/i386/fmodf_asm.s - math/i386/ldexp.c mem/i386/memchr_asm.s mem/i386/memmove_asm.s mem/i386/memset_asm.s @@ -418,20 +407,32 @@ if(ARCH STREQUAL "i386") string/i386/wcsncpy_asm.s string/i386/wcsnlen_asm.s string/i386/wcsrchr_asm.s) + + list(APPEND CRT_SOURCE + except/i386/unwind.c + float/i386/clearfp.c + float/i386/cntrlfp.c + float/i386/fpreset.c + float/i386/logb.c + float/i386/statfp.c + math/i386/ci.c + math/i386/cicos.c + math/i386/cilog.c + math/i386/cipow.c + math/i386/cisin.c + math/i386/cisqrt.c + math/i386/ldexp.c) if(MSVC) - list(APPEND CRT_SOURCE + list(APPEND CRT_ASM_SOURCE except/i386/cpp.s) endif() elseif(ARCH STREQUAL "amd64") - list(APPEND CRT_SOURCE + list(APPEND CRT_ASM_SOURCE except/amd64/seh.s - except/amd64/ehandler.c float/amd64/clearfp.S float/amd64/getsetfpcw.S - float/i386/cntrlfp.c float/amd64/fpreset.S float/amd64/logb.S - float/i386/statfp.c math/amd64/acos.S math/amd64/acosf.S math/amd64/atan.S @@ -452,8 +453,13 @@ elseif(ARCH STREQUAL "amd64") math/amd64/sqrtf.S math/amd64/tan.S setjmp/amd64/setjmp.s) + + list(APPEND CRT_SOURCE + except/amd64/ehandler.c + float/i386/cntrlfp.c + float/i386/statfp.c) if(MSVC) - list(APPEND CRT_SOURCE + list(APPEND CRT_ASM_SOURCE except/amd64/cpp.s) endif() endif() @@ -489,7 +495,10 @@ if(NOT ARCH STREQUAL "i386") string/wcsrchr.c) endif() -add_library(crt ${CRT_SOURCE}) +set_source_files_properties(${CRT_ASM_SOURCE} PROPERTIES COMPILE_DEFINITIONS "__MINGW_IMPORT=extern;USE_MSVCRT_PREFIX;_MSVCRT_LIB_;_MSVCRT_;_MT;CRTDLL") +add_asm_files(crt_asm ${CRT_ASM_SOURCE}) + +add_library(crt ${CRT_SOURCE} ${crt_asm}) target_link_libraries(crt chkstk) add_target_compile_definitions(crt __MINGW_IMPORT=extern diff --git a/lib/sdk/crt/include/internal/misc.h b/lib/sdk/crt/include/internal/misc.h new file mode 100644 index 00000000000..ab552fbd2b0 --- /dev/null +++ b/lib/sdk/crt/include/internal/misc.h @@ -0,0 +1,14 @@ + + +extern int msvcrt_error_mode; +extern int __app_type; +#define _UNKNOWN_APP 0 +#define _CONSOLE_APP 1 +#define _GUI_APP 2 + +int +__cdecl +__crt_MessageBoxA ( + _In_opt_ const char *pszText, + _In_ unsigned int uType); + diff --git a/lib/sdk/crt/libcntpr.cmake b/lib/sdk/crt/libcntpr.cmake index c3401721867..7c8e490b3ca 100644 --- a/lib/sdk/crt/libcntpr.cmake +++ b/lib/sdk/crt/libcntpr.cmake @@ -68,7 +68,7 @@ list(APPEND LIBCNTPR_SOURCE wstring/wcsstr.c) if(ARCH STREQUAL "i386") - list(APPEND LIBCNTPR_SOURCE + list(APPEND LIBCNTPR_ASM_SOURCE except/i386/chkstk_asm.s except/i386/seh.s except/i386/seh_prolog.s @@ -97,24 +97,23 @@ if(ARCH STREQUAL "i386") math/i386/sin_asm.s math/i386/sqrt_asm.s math/i386/tan_asm.s + misc/i386/readcr4.S) + + list(APPEND LIBCNTPR_SOURCE math/i386/ci.c math/i386/cicos.c math/i386/cilog.c math/i386/cipow.c math/i386/cisin.c - math/i386/cisqrt.c - misc/i386/readcr4.S) + math/i386/cisqrt.c) if(NOT MSVC) list(APPEND LIBCNTPR_SOURCE except/i386/chkstk_ms.s) endif() elseif(ARCH STREQUAL "amd64") - list(APPEND LIBCNTPR_SOURCE - except/amd64/ehandler.c + list(APPEND LIBCNTPR_ASM_SOURCE except/amd64/chkstk_asm.s except/amd64/seh.s setjmp/amd64/setjmp.s - math/cos.c - math/sin.c math/amd64/atan.S math/amd64/atan2.S math/amd64/ceil.S @@ -129,10 +128,14 @@ elseif(ARCH STREQUAL "amd64") math/amd64/pow.S math/amd64/sqrt.S math/amd64/tan.S) + list(APPEND LIBCNTPR_SOURCE + except/amd64/ehandler.c + math/cos.c + math/sin.c) endif() if(ARCH STREQUAL "i386") - list(APPEND LIBCNTPR_SOURCE + list(APPEND LIBCNTPR_ASM_SOURCE mem/i386/memchr_asm.s mem/i386/memmove_asm.s mem/i386/memset_asm.s @@ -184,7 +187,10 @@ else() string/wcsrchr.c) endif() -add_library(libcntpr ${LIBCNTPR_SOURCE}) +set_source_files_properties(${LIBCNTPR_ASM_SOURCE} PROPERTIES COMPILE_DEFINITIONS "NO_RTL_INLINES;_NTSYSTEM_;_NTDLLBUILD_;_LIBCNT_;__CRT__NO_INLINE;CRTDLL") +add_asm_files(libcntpr_asm ${LIBCNTPR_ASM_SOURCE}) + +add_library(libcntpr ${LIBCNTPR_SOURCE} ${libcntpr_asm}) add_target_compile_definitions(libcntpr NO_RTL_INLINES _NTSYSTEM_ diff --git a/lib/sdk/crt/misc/__crt_MessageBoxA.c b/lib/sdk/crt/misc/__crt_MessageBoxA.c new file mode 100644 index 00000000000..734f1779e8b --- /dev/null +++ b/lib/sdk/crt/misc/__crt_MessageBoxA.c @@ -0,0 +1,47 @@ +/* + * PROJECT: ReactOS C runtime library + * LICENSE: BSD - See COPYING.ARM in the top level directory + * FILE: lib/sdk/crt/__crt_MessageBoxA.c + * PURPOSE: __crt_MessageBoxA implementation + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +#include + +/***************************************************************************** + * \brief Displays a message box. + * + * \param pszText - The message to be displayed. + * \param uType - The contents and behavior of the message box. + * \return Identifies the button that was pressed by the user. + * \see MessageBox + * + *****************************************************************************/ +int +__cdecl +__crt_MessageBoxA ( + _In_opt_ const char *pszText, + _In_ unsigned int uType) +{ + HMODULE hmodUser32; + int (WINAPI *pMessageBoxA)(HWND, LPCTSTR, LPCTSTR, UINT); + int iResult; + + /* Get MessageBoxA function pointer */ + hmodUser32 = LoadLibrary("user32.dll"); + pMessageBoxA = (PVOID)GetProcAddress(hmodUser32, "MessageBoxA"); + if (!pMessageBoxA) + { + abort(); + } + + /* Display a message box */ + iResult = pMessageBoxA(NULL, + pszText, + "ReactOS C Runtime Library", + uType); + + FreeLibrary(hmodUser32); + return iResult; +} + diff --git a/lib/sdk/crt/misc/assert.c b/lib/sdk/crt/misc/assert.c index 4619a4fa889..f25a59353c9 100644 --- a/lib/sdk/crt/misc/assert.c +++ b/lib/sdk/crt/misc/assert.c @@ -1,9 +1,12 @@ -/* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */ +/* + * PROJECT: ReactOS C runtime library + * LICENSE: BSD - See COPYING.ARM in the top level directory + * FILE: lib/sdk/crt/assert.c + * PURPOSE: _assert implementation + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + #include -#include -#include -#include -#include static const char formatstr[] = "Assertion failed!\n\n" @@ -11,35 +14,33 @@ static const char formatstr[] = "File: %s\n" "Line: %ld\n\n" "Expression: %s\n" - "Press Retry to debug the application\n"; + "Press Retry to debug the application\n\0"; - -/* - * @implemented - */ -void _assert(const char *exp, const char *file, unsigned line) +void +_assert ( + const char *exp, + const char *file, + unsigned line) { - int (WINAPI *pMessageBoxA)(HWND, LPCTSTR, LPCTSTR, UINT); - HMODULE hmodUser32; - char achProgram[40]; + char achProgram[MAX_PATH]; char *pszBuffer; size_t len; int iResult; - /* Assertion failed at foo.c line 45: x #include #include +#include #include #include #include diff --git a/lib/sdk/crt/stdlib/_set_abort_behavior.c b/lib/sdk/crt/stdlib/_set_abort_behavior.c new file mode 100644 index 00000000000..8628509df8b --- /dev/null +++ b/lib/sdk/crt/stdlib/_set_abort_behavior.c @@ -0,0 +1,39 @@ +/* + * PROJECT: ReactOS C runtime library + * LICENSE: BSD - See COPYING.ARM in the top level directory + * FILE: lib/sdk/crt/_set_abort_behavior.c + * PURPOSE: _set_abort_behavior implementation + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) + */ + +extern unsigned int __abort_behavior; + +/*! + * \brief Specifies the behavior of the abort() function. + * + * \param flags - Value of the new flags. + * \param mask - Mask that specifies which flags to update. + * \return The old flags value. + */ +unsigned int +_cdecl +_set_abort_behavior( + unsigned int flags, + unsigned int mask) +{ + unsigned int old_flags; + + /* Save the old flags */ + old_flags = __abort_behavior; + + /* Reset all flags that are not in the mask */ + flags &= mask; + + /* Update the flags in the mask to the new flags value */ + __abort_behavior &= ~mask; + __abort_behavior |= flags; + + /* Return the old flags */ + return old_flags; +} + diff --git a/lib/sdk/crt/stdlib/abort.c b/lib/sdk/crt/stdlib/abort.c index c85d869d81d..3a3abb67c58 100644 --- a/lib/sdk/crt/stdlib/abort.c +++ b/lib/sdk/crt/stdlib/abort.c @@ -1,114 +1,55 @@ /* - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS system libraries - * FILE: lib/crt/stdlib/abort.c - * PURPOSE: Abnormal termination message - * PROGRAMER: Jon Griffiths - * Samuel Serapin + * PROJECT: ReactOS C runtime library + * LICENSE: BSD - See COPYING.ARM in the top level directory + * FILE: lib/sdk/crt/abort.c + * PURPOSE: abort implementation + * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org) */ -/* based on wine exit.c */ - -#include +#include "precomp.h" #include -#include -extern int msvcrt_error_mode; -extern int __app_type; -unsigned int msvcrt_abort_behavior = MSVCRT__WRITE_ABORT_MSG | MSVCRT__CALL_REPORTFAULT; +unsigned int __abort_behavior = _WRITE_ABORT_MSG | _CALL_REPORTFAULT; -/* avoid linking to user32 */ -typedef HWND (WINAPI *GetActiveWindowPtr)(void); -static GetActiveWindowPtr pGetActiveWindow = NULL; -typedef int (WINAPI *MessageBoxIndirectWPtr)(const MSGBOXPARAMSW*); -static MessageBoxIndirectWPtr pMessageBoxIndirectW = NULL; +static const char abort_msg[] = + "This application has requested the Runtime to terminate in an unusual way.\n" + "Please contact the applications's support team for more information.\0"; -static void DoMessageBoxW(const wchar_t *lead, const wchar_t *message) -{ - const char szMsgBoxTitle[] = "ReactOS C++ Runtime Library"; - const wchar_t message_format[] = {'%','s','\n','\n','P','r','o','g','r','a','m',':',' ','%','s','\n', - '%','s','\n','\n','P','r','e','s','s',' ','O','K',' ','t','o',' ','e','x','i','t',' ','t','h','e',' ', - 'p','r','o','g','r','a','m',',',' ','o','r',' ','C','a','n','c','e','l',' ','t','o',' ','s','t','a','r','t',' ', - 't','h','e',' ','d','e','b','b','u','g','e','r','.','\n',0}; - - MSGBOXPARAMSW msgbox; - wchar_t text[2048]; - INT ret; - - _snwprintf(text,sizeof(text),message_format, lead, _wpgmptr, message); - - msgbox.cbSize = sizeof(msgbox); - msgbox.hwndOwner = pGetActiveWindow(); - msgbox.hInstance = 0; - msgbox.lpszText = (LPCWSTR)text; - msgbox.lpszCaption = (LPCWSTR)szMsgBoxTitle; - msgbox.dwStyle = MB_OKCANCEL|MB_ICONERROR; - msgbox.lpszIcon = NULL; - msgbox.dwContextHelpId = 0; - msgbox.lpfnMsgBoxCallback = NULL; - msgbox.dwLanguageId = LANG_NEUTRAL; - - ret = pMessageBoxIndirectW(&msgbox); - if (ret == IDCANCEL) - DebugBreak(); -} - -static void DoMessageBox(const char *lead, const char *message) -{ - wchar_t leadW[1024], messageW[1024]; - HMODULE huser32 = LoadLibrary("user32.dll"); - - if(huser32) { - pGetActiveWindow = (GetActiveWindowPtr)GetProcAddress(huser32, "GetActiveWindow"); - pMessageBoxIndirectW = (MessageBoxIndirectWPtr)GetProcAddress(huser32, "MessageBoxIndirectW"); - - if(!pGetActiveWindow || !pMessageBoxIndirectW) { - FreeLibrary(huser32); - ERR("GetProcAddress failed!\n"); - return; - } - } - else - { - ERR("Loading user32 failed!\n"); - return; - } - - mbstowcs(leadW, lead, 1024); - mbstowcs(messageW, message, 1024); - - DoMessageBoxW(leadW, messageW); - FreeLibrary(huser32); -} - -/* - * @implemented +/*! + * \brief Aborts the program. + * + * \note The function does not return. */ -void abort() +void +__cdecl +abort ( + void) { - if (msvcrt_abort_behavior & MSVCRT__WRITE_ABORT_MSG) - { - if ((msvcrt_error_mode == MSVCRT__OUT_TO_MSGBOX) || - ((msvcrt_error_mode == MSVCRT__OUT_TO_DEFAULT) && (__app_type == 2))) + /* Check if a message should be output */ + if (__abort_behavior & _WRITE_ABORT_MSG) { - DoMessageBox("Runtime error!", "abnormal program termination"); + /* Check if we should display a message box */ + if (((msvcrt_error_mode == _OUT_TO_DEFAULT) && (__app_type == _GUI_APP)) || + (msvcrt_error_mode == _OUT_TO_MSGBOX)) + { + /* Output a message box */ + __crt_MessageBoxA(abort_msg, MB_OK); + } + else + { + /* Print message to stderr */ + fprintf(stderr, "%s\n", abort_msg); + } } - else - _cputs("\nabnormal program termination\n"); - } - raise(SIGABRT); - /* in case raise() returns */ - _exit(3); + + /* Check if faultrep handler should be called */ + if (__abort_behavior & _CALL_REPORTFAULT) + { + /// \todo unimplemented + (void)0; + } + + raise(SIGABRT); + _exit(3); } -unsigned int CDECL _set_abort_behavior(unsigned int flags, unsigned int mask) -{ - unsigned int old = msvcrt_abort_behavior; - - TRACE("%x, %x\n", flags, mask); - if (mask & MSVCRT__CALL_REPORTFAULT) - FIXME("_WRITE_CALL_REPORTFAULT unhandled\n"); - - msvcrt_abort_behavior = (msvcrt_abort_behavior & ~mask) | (flags & mask); - return old; -} diff --git a/ntoskrnl/CMakeLists.txt b/ntoskrnl/CMakeLists.txt index 02605d87e1c..381b7bcee59 100644 --- a/ntoskrnl/CMakeLists.txt +++ b/ntoskrnl/CMakeLists.txt @@ -109,7 +109,6 @@ list(APPEND SOURCE ex/work.c ex/xipdisp.c ex/zone.c - ex/zw.S fsrtl/dbcsname.c fsrtl/fastio.c fsrtl/faulttol.c @@ -274,15 +273,21 @@ list(APPEND SOURCE wmi/wmi.c ntoskrnl.rc) +list(APPEND ASM_SOURCE ex/zw.S) + if(ARCH STREQUAL "i386") - list(APPEND SOURCE - config/i386/cmhardwr.c + list(APPEND ASM_SOURCE ex/i386/fastinterlck_asm.S ex/i386/ioport.S + ke/i386/ctxswitch.S + ke/i386/trap.s + ke/i386/usercall_asm.S + rtl/i386/stack.S) + list(APPEND SOURCE + config/i386/cmhardwr.c ke/i386/abios.c ke/i386/cpu.c ke/i386/context.c - ke/i386/ctxswitch.S ke/i386/exp.c ke/i386/irqobj.c ke/i386/kiinit.c @@ -290,25 +295,24 @@ if(ARCH STREQUAL "i386") ke/i386/mtrr.c ke/i386/patpge.c ke/i386/thrdini.c - ke/i386/trap.s ke/i386/traphdlr.c - ke/i386/usercall_asm.S ke/i386/usercall.c ke/i386/v86vdm.c mm/i386/page.c mm/ARM3/i386/init.c ps/i386/psctx.c ps/i386/psldt.c - rtl/i386/stack.S vdm/vdmmain.c vdm/vdmexec.c) elseif(ARCH STREQUAL "amd64") + list(APPEND ASM_SOURCE + ke/amd64/boot.S + ke/amd64/ctxswitch.S + ke/amd64/trap.S) list(APPEND SOURCE config/i386/cmhardwr.c - ke/amd64/boot.S ke/amd64/context.c ke/amd64/cpu.c - ke/amd64/ctxswitch.S ke/amd64/except.c ke/amd64/interrupt.c ke/amd64/irql.c @@ -317,21 +321,21 @@ elseif(ARCH STREQUAL "amd64") ke/amd64/spinlock.c ke/amd64/stubs.c ke/amd64/thrdini.c - ke/amd64/trap.S mm/amd64/init.c mm/amd64/page.c ps/amd64/psctx.c) elseif(ARCH STREQUAL "arm") + list(APPEND ASM_SOURCE + ke/arm/boot.s + ke/arm/ctxswtch.s + ke/arm/stubs_asm.s + ke/arm/trap.s) list(APPEND SOURCE config/arm/cmhardwr.c - ke/arm/boot.s ke/arm/cpu.c - ke/arm/ctxswtch.s ke/arm/exp.c ke/arm/kiinit.c - ke/arm/stubs_asm.s ke/arm/thrdini.c - ke/arm/trap.s ke/arm/trapc.c ke/arm/usercall.c mm/arm/page.c @@ -339,9 +343,11 @@ elseif(ARCH STREQUAL "arm") ps/arm/psctx.c rtl/arm/rtlexcpt.c) elseif(ARCH STREQUAL "powerpc") + list(APPEND ASM_SOURCE + ke/powerpc/main_asm.S + ke/powerpc/ctxhelp.S) list(APPEND SOURCE config/powerpc/cmhardwr.c - ke/powerpc/main_asm.S ke/powerpc/cpu.c ke/powerpc/exp.c ke/powerpc/kiinit.c @@ -350,7 +356,6 @@ elseif(ARCH STREQUAL "powerpc") ke/powerpc/systimer.c ke/powerpc/thrdini.c ke/powerpc/ctxswitch.c - ke/powerpc/ctxhelp.S mm/powerpc/pfault.c mm/powerpc/page.c) endif() @@ -361,18 +366,17 @@ if(NOT _WINKD_) kd/i386/kdmemsup.c kd/wrappers/gdbstub.c) if(KDBG) - list(APPEND SOURCE - kdbg/i386/i386-dis.c - kdbg/i386/kdb_help.S) + list(APPEND ASM_SOURCE kdbg/i386/kdb_help.S) + list(APPEND SOURCE kdbg/i386/i386-dis.c) endif() elseif(ARCH STREQUAL "amd64") list(APPEND SOURCE kd/amd64/kd.c kd/amd64/kdmemsup.c) if(KDBG) + list(APPEND ASM_SOURCE kdbg/amd64/kdb_help.S) list(APPEND SOURCE kdbg/amd64/i386-dis.c - kdbg/amd64/kdb_help.S kdbg/amd64/kdb.c) endif() elseif(ARCH STREQUAL "powerpc") @@ -421,7 +425,10 @@ else() # _WINKD_ endif() +add_asm_files(ntoskrnl_asm ${ASM_SOURCE}) + add_executable(ntoskrnl + ${ntoskrnl_asm} ${SOURCE} ${CMAKE_CURRENT_BINARY_DIR}/ntoskrnl.def) @@ -462,7 +469,14 @@ add_cd_file(TARGET ntoskrnl DESTINATION reactos/system32 NO_CAB FOR all) if(BUILD_MP) spec2def(ntkrnlmp.exe ntoskrnl.spec) + if(MSVC_IDE AND (CMAKE_VERSION MATCHES "ReactOS")) + set_source_files_properties(${ASM_SOURCE} PROPERTIES COMPILE_DEFINITIONS "CONFIG_SMP") + endif() + + add_asm_files(ntkrnlmp_asm ${ASM_SOURCE}) + add_executable(ntkrnlmp + ${ntkrnlmp_asm} ${SOURCE} ${CMAKE_CURRENT_BINARY_DIR}/ntkrnlmp.def) @@ -492,4 +506,6 @@ if(BUILD_MP) add_cd_file(TARGET ntkrnlmp DESTINATION reactos/system32 NO_CAB FOR all) endif() -add_library(ntdllsys ntdll.S) +add_asm_files(ntdllsys_asm ntdll.S) +add_library(ntdllsys ${ntdllsys_asm}) +set_target_properties(ntdllsys PROPERTIES LINKER_LANGUAGE "C") diff --git a/ntoskrnl/cache/cachesub.c b/ntoskrnl/cache/cachesub.c index 0431a5666f6..56d50ab775d 100644 --- a/ntoskrnl/cache/cachesub.c +++ b/ntoskrnl/cache/cachesub.c @@ -131,8 +131,7 @@ CcGetFlushedValidData(IN PSECTION_OBJECT_POINTERS SectionObjectPointer, IN BOOLEAN CcInternalCaller) { LARGE_INTEGER Result = {{0}}; - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return Result; } diff --git a/ntoskrnl/cache/copysup.c b/ntoskrnl/cache/copysup.c index be2af04c983..8820779fb5c 100644 --- a/ntoskrnl/cache/copysup.c +++ b/ntoskrnl/cache/copysup.c @@ -121,8 +121,7 @@ CcFastCopyRead(IN PFILE_OBJECT FileObject, OUT PVOID Buffer, OUT PIO_STATUS_BLOCK IoStatus) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } BOOLEAN @@ -208,8 +207,7 @@ CcFastCopyWrite(IN PFILE_OBJECT FileObject, IN ULONG Length, IN PVOID Buffer) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } BOOLEAN @@ -219,8 +217,7 @@ CcCanIWrite(IN PFILE_OBJECT FileObject, IN BOOLEAN Wait, IN UCHAR Retrying) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return FALSE; } @@ -233,8 +230,7 @@ CcDeferWrite(IN PFILE_OBJECT FileObject, IN ULONG BytesToWrite, IN BOOLEAN Retrying) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } /* EOF */ diff --git a/ntoskrnl/cache/fssup.c b/ntoskrnl/cache/fssup.c index f816100dfa8..3eabe781e3e 100644 --- a/ntoskrnl/cache/fssup.c +++ b/ntoskrnl/cache/fssup.c @@ -392,14 +392,13 @@ CcPurgeCacheSection(IN PSECTION_OBJECT_POINTERS SectionObjectPointer, CcpFlushCache(Map, NULL, 0, NULL, TRUE); return TRUE; } - + VOID NTAPI CcSetDirtyPageThreshold(IN PFILE_OBJECT FileObject, IN ULONG DirtyPageThreshold) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } /* diff --git a/ntoskrnl/cache/logsup.c b/ntoskrnl/cache/logsup.c index cb4f78a3f0b..33f7b90d9b7 100644 --- a/ntoskrnl/cache/logsup.c +++ b/ntoskrnl/cache/logsup.c @@ -23,8 +23,7 @@ CcSetAdditionalCacheAttributes(IN PFILE_OBJECT FileObject, IN BOOLEAN DisableReadAhead, IN BOOLEAN DisableWriteBehind) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } VOID @@ -47,17 +46,15 @@ CcGetDirtyPages(IN PVOID LogHandle, IN PVOID Context2) { LARGE_INTEGER Result = {{0}}; - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return Result; } - + BOOLEAN NTAPI CcIsThereDirtyData(IN PVPB Vpb) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return FALSE; } @@ -67,8 +64,7 @@ CcGetLsnForFileObject(IN PFILE_OBJECT FileObject, OUT OPTIONAL PLARGE_INTEGER OldestLsn) { LARGE_INTEGER Result = {{0}}; - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return Result; } diff --git a/ntoskrnl/inbv/logo/1.bmp b/ntoskrnl/inbv/logo/1.bmp index 5d68b172f1a..1262b61b3a4 100644 Binary files a/ntoskrnl/inbv/logo/1.bmp and b/ntoskrnl/inbv/logo/1.bmp differ diff --git a/ntoskrnl/include/internal/i386/ke.h b/ntoskrnl/include/internal/i386/ke.h index 7e81de388aa..3ae219ac5b8 100644 --- a/ntoskrnl/include/internal/i386/ke.h +++ b/ntoskrnl/include/internal/i386/ke.h @@ -137,8 +137,7 @@ typedef union _KTRAP_EXIT_SKIP_BITS IN ULONG Flags) \ { \ /* Not yet handled */ \ - UNIMPLEMENTED; \ - ASSERT(FALSE); /* while (TRUE); */ \ + UNIMPLEMENTED_DBGBREAK(); \ return FALSE; \ } diff --git a/ntoskrnl/io/iomgr/irp.c b/ntoskrnl/io/iomgr/irp.c index f19b496bb87..f3a4bda81eb 100644 --- a/ntoskrnl/io/iomgr/irp.c +++ b/ntoskrnl/io/iomgr/irp.c @@ -265,8 +265,7 @@ IopCompleteRequest(IN PKAPC Apc, (Irp->IoStatus.Information == IO_REPARSE_TAG_MOUNT_POINT)) { /* We should never get this yet */ - DPRINT1("Reparse support not yet present!\n"); - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("Reparse support not yet present!\n"); return; } } @@ -1373,8 +1372,7 @@ IofCompleteRequest(IN PIRP Irp, PriorityBoost); #else /* Not implemented yet. */ - DPRINT1("Not supported!\n"); - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("Not supported!\n"); #endif } diff --git a/ntoskrnl/io/pnpmgr/pnpmgr.c b/ntoskrnl/io/pnpmgr/pnpmgr.c index 54e5c410f3f..3aca4ce583b 100644 --- a/ntoskrnl/io/pnpmgr/pnpmgr.c +++ b/ntoskrnl/io/pnpmgr/pnpmgr.c @@ -3784,7 +3784,7 @@ PiGetDeviceRegistryProperty(IN PDEVICE_OBJECT DeviceObject, #define PIP_RETURN_DATA(x, y) {ReturnLength = x; Data = y; Status = STATUS_SUCCESS; break;} #define PIP_REGISTRY_DATA(x, y) {ValueName = x; ValueType = y; break;} -#define PIP_UNIMPLEMENTED() {UNIMPLEMENTED; ASSERT(FALSE); /* while (TRUE); */ break;} +#define PIP_UNIMPLEMENTED() {UNIMPLEMENTED_DBGBREAK(); break;} /* * @implemented diff --git a/ntoskrnl/kd64/amd64/kdx64.c b/ntoskrnl/kd64/amd64/kdx64.c index a496fd74a49..219013bf982 100644 --- a/ntoskrnl/kd64/amd64/kdx64.c +++ b/ntoskrnl/kd64/amd64/kdx64.c @@ -139,8 +139,7 @@ KdpSysReadBusData(IN ULONG BusDataType, IN ULONG Length, OUT PULONG ActualLength) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return STATUS_UNSUCCESSFUL; } @@ -154,8 +153,7 @@ KdpSysWriteBusData(IN ULONG BusDataType, IN ULONG Length, OUT PULONG ActualLength) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return STATUS_UNSUCCESSFUL; } @@ -357,8 +355,7 @@ NTSTATUS NTAPI KdpSysCheckLowMemory(IN ULONG Flags) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return STATUS_UNSUCCESSFUL; } @@ -366,7 +363,8 @@ NTSTATUS NTAPI KdpAllowDisable(VOID) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return STATUS_ACCESS_DENIED; } + +/* EOF */ diff --git a/ntoskrnl/kd64/arm/kdarm.c b/ntoskrnl/kd64/arm/kdarm.c index 35f9211014d..04907d3e041 100644 --- a/ntoskrnl/kd64/arm/kdarm.c +++ b/ntoskrnl/kd64/arm/kdarm.c @@ -22,8 +22,7 @@ NTAPI KdpGetStateChange(IN PDBGKD_MANIPULATE_STATE64 State, IN PCONTEXT Context) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } VOID @@ -31,8 +30,7 @@ NTAPI KdpSetContextState(IN PDBGKD_ANY_WAIT_STATE_CHANGE WaitStateChange, IN PCONTEXT Context) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } NTSTATUS @@ -40,8 +38,7 @@ NTAPI KdpSysReadMsr(IN ULONG Msr, OUT PLARGE_INTEGER MsrValue) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return STATUS_UNSUCCESSFUL; } @@ -50,8 +47,7 @@ NTAPI KdpSysWriteMsr(IN ULONG Msr, IN PLARGE_INTEGER MsrValue) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return STATUS_UNSUCCESSFUL; } @@ -65,8 +61,7 @@ KdpSysReadBusData(IN ULONG BusDataType, IN ULONG Length, OUT PULONG ActualLength) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return STATUS_UNSUCCESSFUL; } @@ -80,8 +75,7 @@ KdpSysWriteBusData(IN ULONG BusDataType, IN ULONG Length, OUT PULONG ActualLength) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return STATUS_UNSUCCESSFUL; } @@ -93,8 +87,7 @@ KdpSysReadControlSpace(IN ULONG Processor, IN ULONG Length, OUT PULONG ActualLength) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return STATUS_UNSUCCESSFUL; } @@ -106,8 +99,7 @@ KdpSysWriteControlSpace(IN ULONG Processor, IN ULONG Length, OUT PULONG ActualLength) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return STATUS_UNSUCCESSFUL; } @@ -121,8 +113,7 @@ KdpSysReadIoSpace(IN ULONG InterfaceType, IN ULONG DataSize, OUT PULONG ActualDataSize) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return STATUS_UNSUCCESSFUL; } @@ -136,8 +127,7 @@ KdpSysWriteIoSpace(IN ULONG InterfaceType, IN ULONG DataSize, OUT PULONG ActualDataSize) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return STATUS_UNSUCCESSFUL; } @@ -145,8 +135,7 @@ NTSTATUS NTAPI KdpSysCheckLowMemory(IN ULONG Flags) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return STATUS_UNSUCCESSFUL; } @@ -154,7 +143,6 @@ NTSTATUS NTAPI KdpAllowDisable(VOID) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return STATUS_ACCESS_DENIED; } diff --git a/ntoskrnl/ke/dpc.c b/ntoskrnl/ke/dpc.c index 577fefbd587..47772379ca2 100644 --- a/ntoskrnl/ke/dpc.c +++ b/ntoskrnl/ke/dpc.c @@ -779,9 +779,7 @@ KeInsertQueueDpc(IN PKDPC Dpc, if (!(Prcb->DpcThreadActive) && !(Prcb->DpcThreadRequested)) { /* FIXME: Setup Threaded DPC */ - DPRINT1("Threaded DPC not supported\n"); - ASSERT(FALSE); - while (TRUE); + UNIMPLEMENTED_FATAL("Threaded DPC not supported\n"); } } else diff --git a/ntoskrnl/ke/i386/context.c b/ntoskrnl/ke/i386/context.c index cd36a145449..e6b91303bda 100644 --- a/ntoskrnl/ke/i386/context.c +++ b/ntoskrnl/ke/i386/context.c @@ -35,8 +35,7 @@ KiSwapProcess(IN PKPROCESS NewProcess, if (NewProcess->LdtDescriptor.LimitLow != OldProcess->LdtDescriptor.LimitLow) { /* Not handled yet */ - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return; } diff --git a/ntoskrnl/ke/i386/traphdlr.c b/ntoskrnl/ke/i386/traphdlr.c index 2bd9a46d998..e54deab2613 100644 --- a/ntoskrnl/ke/i386/traphdlr.c +++ b/ntoskrnl/ke/i386/traphdlr.c @@ -662,9 +662,7 @@ KiTrap06Handler(IN PKTRAP_FRAME TrapFrame) if (!VdmDispatchBop(TrapFrame)) { /* Should only happen in VDM mode */ - UNIMPLEMENTED; - ASSERT(FALSE); - while (TRUE); + UNIMPLEMENTED_FATAL(); } /* Bring IRQL back */ @@ -735,9 +733,7 @@ KiTrap07Handler(IN PKTRAP_FRAME TrapFrame) if (SaveArea->Cr0NpxState & CR0_EM) { /* Not implemented */ - UNIMPLEMENTED; - ASSERT(FALSE); - while (TRUE); + UNIMPLEMENTED_FATAL(); } /* Save CR0 and check NPX state */ @@ -922,9 +918,7 @@ KiTrap0DHandler(IN PKTRAP_FRAME TrapFrame) if (__builtin_expect(Ki386HandleOpcodeV86(TrapFrame) == 0xFF, 0)) { /* Should only happen in VDM mode */ - UNIMPLEMENTED; - ASSERT(FALSE); - while (TRUE); + UNIMPLEMENTED_FATAL(); } /* Bring IRQL back */ @@ -1079,9 +1073,7 @@ KiTrap0DHandler(IN PKTRAP_FRAME TrapFrame) ((PVOID)TrapFrame->Eip < (PVOID)KiTrap0DHandler)) { /* Not implemented */ - UNIMPLEMENTED; - ASSERT(FALSE); - while (TRUE); + UNIMPLEMENTED_FATAL(); } /* @@ -1136,9 +1128,7 @@ KiTrap0DHandler(IN PKTRAP_FRAME TrapFrame) else { /* Otherwise, this is another kind of IRET fault */ - UNIMPLEMENTED; - ASSERT(FALSE); - while (TRUE); + UNIMPLEMENTED_FATAL(); } } @@ -1195,9 +1185,7 @@ KiTrap0EHandler(IN PKTRAP_FRAME TrapFrame) FIELD_OFFSET(KTRAP_FRAME, EFlags)) { /* The stack is somewhere in between frames, we need to fix it */ - UNIMPLEMENTED; - ASSERT(FALSE); - while (TRUE); + UNIMPLEMENTED_FATAL(); } } @@ -1261,9 +1249,7 @@ KiTrap0EHandler(IN PKTRAP_FRAME TrapFrame) (TrapFrame->Eip == (ULONG_PTR)ReadBatch)) { /* Not yet implemented */ - UNIMPLEMENTED; - ASSERT(FALSE); - while (TRUE); + UNIMPLEMENTED_FATAL(); } #endif /* Check for VDM trap */ @@ -1445,16 +1431,14 @@ VOID FASTCALL KiGetTickCountHandler(IN PKTRAP_FRAME TrapFrame) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } VOID FASTCALL KiCallbackReturnHandler(IN PKTRAP_FRAME TrapFrame) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } DECLSPEC_NORETURN @@ -1624,9 +1608,7 @@ KiSystemCall(IN PKTRAP_FRAME TrapFrame, if (__builtin_expect((Arguments < (PVOID)MmUserProbeAddress) && !(KiUserTrap(TrapFrame)), 0)) { /* Access violation */ - UNIMPLEMENTED; - ASSERT(FALSE); - while (TRUE); + UNIMPLEMENTED_FATAL(); } /* Call pre-service debug hook */ @@ -1690,9 +1672,7 @@ NTAPI Kei386EoiHelper(VOID) { /* We should never see this call happening */ - DPRINT1("Mismatched NT/HAL version"); - ASSERT(FALSE); - while (TRUE); + ERROR_FATAL("Mismatched NT/HAL version"); } /* EOF */ diff --git a/ntoskrnl/mm/ARM3/arm/init.c b/ntoskrnl/mm/ARM3/arm/init.c index 0b87140b008..d57eeea8471 100644 --- a/ntoskrnl/mm/ARM3/arm/init.c +++ b/ntoskrnl/mm/ARM3/arm/init.c @@ -65,8 +65,7 @@ MiInitMachineDependent(IN PLOADER_PARAMETER_BLOCK LoaderBlock) // // Always return success for now // - DPRINT1("NEVER TELL ME THE ODDS!\n"); - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_FATAL("NEVER TELL ME THE ODDS!\n"); return STATUS_SUCCESS; } diff --git a/ntoskrnl/mm/ARM3/largepag.c b/ntoskrnl/mm/ARM3/largepag.c index 84ef6f6f167..e198cf4840b 100644 --- a/ntoskrnl/mm/ARM3/largepag.c +++ b/ntoskrnl/mm/ARM3/largepag.c @@ -58,8 +58,7 @@ MiSyncCachedRanges(VOID) /* Scan every range */ for (i = 0; i < MiLargePageRangeIndex; i++) { - DPRINT1("No support for large pages\n"); - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("No support for large pages\n"); } } diff --git a/ntoskrnl/mm/ARM3/sysldr.c b/ntoskrnl/mm/ARM3/sysldr.c index e226766a10a..554843bde25 100644 --- a/ntoskrnl/mm/ARM3/sysldr.c +++ b/ntoskrnl/mm/ARM3/sysldr.c @@ -105,8 +105,7 @@ MiLoadImageSection(IN OUT PVOID *SectionPtr, if (SessionLoad) { /* Fail */ - DPRINT1("Session loading not yet supported!\n"); - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("Session loading not yet supported!\n"); return STATUS_NOT_IMPLEMENTED; } @@ -1217,8 +1216,7 @@ CheckDllState: { /* We failed, unload the image */ MmUnloadSystemImage(DllEntry); - DPRINT1("MmCallDllInitialize failed with status 0x%x\n", Status); - ASSERT(FALSE); // while (TRUE); + ERROR_DBGBREAK("MmCallDllInitialize failed with status 0x%x\n", Status); Loaded = FALSE; } } @@ -1720,8 +1718,7 @@ MiReloadBootLoadedDrivers(IN PLOADER_PARAMETER_BLOCK LoaderBlock) if (!PointerPte) { /* Shouldn't happen */ - DPRINT1("[Mm0]: Couldn't allocate driver section!\n"); - ASSERT(FALSE); // while (TRUE); + ERROR_FATAL("[Mm0]: Couldn't allocate driver section!\n"); return; } @@ -1774,8 +1771,7 @@ MiReloadBootLoadedDrivers(IN PLOADER_PARAMETER_BLOCK LoaderBlock) if (!NT_SUCCESS(Status)) { /* This shouldn't happen */ - DPRINT1("Relocations failed!\n"); - ASSERT(FALSE); // while (TRUE); + ERROR_FATAL("Relocations failed!\n"); return; } } @@ -1973,9 +1969,8 @@ MiBuildImportsForBootDrivers(VOID) if (*ImageThunk) { /* Should not be happening */ - DPRINT1("Broken IAT entry for %p at %p (%lx)\n", - LdrEntry, ImageThunk, *ImageThunk); - ASSERT(FALSE); + ERROR_FATAL("Broken IAT entry for %p at %p (%lx)\n", + LdrEntry, ImageThunk, *ImageThunk); } /* Reset if we hit this */ @@ -2363,8 +2358,7 @@ MiWriteProtectSystemImage(IN PVOID ImageBase) else { /* Not supported */ - DPRINT1("Session drivers not supported\n"); - ASSERT(FALSE); + UNIMPLEMENTED_DBGBREAK("Session drivers not supported\n"); } /* These are the only protection masks we care about */ @@ -2924,8 +2918,7 @@ LoaderScan: else { /* We don't support session loading yet */ - DPRINT1("Unsupported Session-Load!\n"); - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("Unsupported Session-Load!\n"); Status = STATUS_NOT_IMPLEMENTED; } @@ -3026,8 +3019,7 @@ LoaderScan: if (Flags) { /* We don't support session loading yet */ - DPRINT1("Unsupported Session-Load!\n"); - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK("Unsupported Session-Load!\n"); goto Quickie; } diff --git a/ntoskrnl/mm/arm/page.c b/ntoskrnl/mm/arm/page.c index 5dda48308a7..0319d808c04 100644 --- a/ntoskrnl/mm/arm/page.c +++ b/ntoskrnl/mm/arm/page.c @@ -124,8 +124,7 @@ NTAPI MiFlushTlb(IN PMMPTE PointerPte, IN PVOID Address) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } BOOLEAN @@ -134,8 +133,7 @@ MmCreateProcessAddressSpace(IN ULONG MinWs, IN PEPROCESS Process, IN PULONG DirectoryTableBase) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return FALSE; } @@ -164,8 +162,7 @@ MmDisableVirtualMapping(IN PEPROCESS Process, OUT PBOOLEAN WasDirty, OUT PPFN_NUMBER Page) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } VOID @@ -173,8 +170,7 @@ NTAPI MmEnableVirtualMapping(IN PEPROCESS Process, IN PVOID Address) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } NTSTATUS @@ -185,8 +181,7 @@ MmCreateVirtualMappingUnsafe(IN PEPROCESS Process, IN PPFN_NUMBER Pages, IN ULONG PageCount) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return STATUS_SUCCESS; } @@ -198,8 +193,7 @@ MmCreateVirtualMapping(IN PEPROCESS Process, IN PPFN_NUMBER Pages, IN ULONG PageCount) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return STATUS_SUCCESS; } @@ -207,8 +201,7 @@ VOID NTAPI MmRawDeleteVirtualMapping(IN PVOID Address) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } VOID @@ -219,8 +212,7 @@ MmDeleteVirtualMapping(IN PEPROCESS Process, OUT PBOOLEAN WasDirty, OUT PPFN_NUMBER Page) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } VOID @@ -229,8 +221,7 @@ MmDeletePageFileMapping(IN PEPROCESS Process, IN PVOID Address, IN SWAPENTRY *SwapEntry) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } NTSTATUS @@ -239,8 +230,7 @@ MmCreatePageFileMapping(IN PEPROCESS Process, IN PVOID Address, IN SWAPENTRY SwapEntry) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return STATUS_NOT_IMPLEMENTED; } @@ -249,8 +239,7 @@ NTAPI MmGetPfnForProcess(IN PEPROCESS Process, IN PVOID Address) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return 0; } @@ -259,8 +248,7 @@ NTAPI MmIsDirtyPage(IN PEPROCESS Process, IN PVOID Address) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return FALSE; } @@ -269,8 +257,7 @@ NTAPI MmSetCleanPage(IN PEPROCESS Process, IN PVOID Address) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } VOID @@ -278,8 +265,7 @@ NTAPI MmSetDirtyPage(IN PEPROCESS Process, IN PVOID Address) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } BOOLEAN @@ -287,8 +273,7 @@ NTAPI MmIsPagePresent(IN PEPROCESS Process, IN PVOID Address) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return FALSE; } @@ -297,8 +282,7 @@ NTAPI MmIsPageSwapEntry(IN PEPROCESS Process, IN PVOID Address) { - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return FALSE; } @@ -328,7 +312,6 @@ MmInitGlobalKernelPageDirectory(VOID) ULONG i; PULONG CurrentPageDirectory = (PULONG)PDE_BASE; - /* Loop the 2GB of address space which belong to the kernel */ for (i = MiGetPdeOffset(MmSystemRangeStart); i < 2048; i++) { @@ -356,8 +339,7 @@ MmGetPhysicalAddress(IN PVOID Address) PHYSICAL_ADDRESS PhysicalAddress; PhysicalAddress.QuadPart = 0; - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return PhysicalAddress; } diff --git a/ntoskrnl/mm/arm/stubs.c b/ntoskrnl/mm/arm/stubs.c index 1d71bc95969..b494bc97938 100644 --- a/ntoskrnl/mm/arm/stubs.c +++ b/ntoskrnl/mm/arm/stubs.c @@ -39,7 +39,7 @@ MiUnmapPageTable(IN PMMPTE PointerPde) // // FIXME-USER: Shouldn't get here yet // - ASSERT(FALSE); + ERROR_FATAL(); return FALSE; } @@ -374,8 +374,7 @@ Mmi386ReleaseMmInfo(IN PEPROCESS Process) // // FIXME-USER: Need to delete address space // - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return STATUS_NOT_IMPLEMENTED; } @@ -399,8 +398,7 @@ MmDisableVirtualMapping(IN PEPROCESS Process, // // TODO // - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } VOID @@ -411,8 +409,7 @@ MmEnableVirtualMapping(IN PEPROCESS Process, // // TODO // - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } NTSTATUS @@ -658,8 +655,7 @@ MmDeletePageFileMapping(IN PEPROCESS Process, // // TODO // - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } NTSTATUS @@ -671,8 +667,7 @@ MmCreatePageFileMapping(IN PEPROCESS Process, // // TODO // - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return STATUS_NOT_IMPLEMENTED; } @@ -703,8 +698,7 @@ MmIsDirtyPage(IN PEPROCESS Process, // // TODO // - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); return FALSE; } @@ -716,8 +710,7 @@ MmSetCleanPage(IN PEPROCESS Process, // // TODO // - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } VOID @@ -728,8 +721,7 @@ MmSetDirtyPage(IN PEPROCESS Process, // // TODO // - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); + UNIMPLEMENTED_DBGBREAK(); } BOOLEAN diff --git a/ntoskrnl/po/povolume.c b/ntoskrnl/po/povolume.c index 13da03a43f2..3ef3918313c 100644 --- a/ntoskrnl/po/povolume.c +++ b/ntoskrnl/po/povolume.c @@ -299,10 +299,7 @@ PopFlushVolumes(IN BOOLEAN ShuttingDown) if (!(FlushPolicy & 2)) { /* ReactOS only implements this routine for shutdown, which requires it */ - UNIMPLEMENTED; - ASSERT(FALSE); // while (TRUE); - KeReleaseGuardedMutex(&PopVolumeLock); - return; + UNIMPLEMENTED_DBGBREAK(); } /* Check if there were no volumes at all */ diff --git a/win32ss/CMakeLists.txt b/win32ss/CMakeLists.txt index 0516dba753e..30110ddc31c 100644 --- a/win32ss/CMakeLists.txt +++ b/win32ss/CMakeLists.txt @@ -179,7 +179,8 @@ list(APPEND SOURCE gdi/ntgdi/xformobj.c gdi/eng/stubs.c gdi/eng/umpdstubs.c - win32k.rc) + win32k.rc + ${CMAKE_CURRENT_BINARY_DIR}/win32k.def) if(USE_DIBLIB) add_definitions(-D_USE_DIBLIB_) @@ -200,7 +201,7 @@ else() endif() if(ARCH STREQUAL "i386") -list(APPEND SOURCE +list(APPEND ASM_SOURCE gdi/dib/i386/dib24bpp_hline.s gdi/dib/i386/dib32bpp_hline.s gdi/dib/i386/dib32bpp_colorfill.s @@ -216,9 +217,8 @@ if(KDBG) gdi/ntgdi/gdikdbgext.c) endif() -add_library(win32k SHARED - ${CMAKE_CURRENT_BINARY_DIR}/win32k.def - ${SOURCE}) +add_asm_files(win32k_asm ${ASM_SOURCE}) +add_library(win32k SHARED ${SOURCE} ${win32k_asm}) set_module_type(win32k kernelmodedriver) @@ -235,5 +235,7 @@ add_importlibs(win32k ntoskrnl hal ftfd) add_pch(win32k pch.h) add_cd_file(TARGET win32k DESTINATION reactos/system32 FOR all) -add_library(win32ksys sys-stubs.S) set_source_files_properties(sys-stubs.S PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/w32ksvc.h) +add_asm_files(win32ksys_asm sys-stubs.S) +add_library(win32ksys ${win32ksys_asm}) +set_target_properties(win32ksys PROPERTIES LINKER_LANGUAGE "C") diff --git a/win32ss/gdi/ntgdi/dibobj.c b/win32ss/gdi/ntgdi/dibobj.c index de22ae8ca52..032031199e6 100644 --- a/win32ss/gdi/ntgdi/dibobj.c +++ b/win32ss/gdi/ntgdi/dibobj.c @@ -1071,6 +1071,14 @@ NtGdiStretchDIBitsInternal( return 0; } + /* Check for info / mem DC without surface */ + if (!pdc->dclevel.pSurface) + { + DC_UnlockDc(pdc); + // CHECKME + return TRUE; + } + /* Transform dest size */ sizel.cx = cxDst; sizel.cy = cyDst; @@ -1099,22 +1107,30 @@ NtGdiStretchDIBitsInternal( hcmXform); } - pvBits = ExAllocatePoolWithTag(PagedPool, cjMaxBits, 'pmeT'); - if (!pvBits) + if (pjInit && (cjMaxBits > 0)) { - return 0; - } + pvBits = ExAllocatePoolWithTag(PagedPool, cjMaxBits, 'pmeT'); + if (!pvBits) + { + return 0; + } - _SEH2_TRY - { - ProbeForRead(pjInit, cjMaxBits, 1); - RtlCopyMemory(pvBits, pjInit, cjMaxBits); + _SEH2_TRY + { + ProbeForRead(pjInit, cjMaxBits, 1); + RtlCopyMemory(pvBits, pjInit, cjMaxBits); + } + _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) + { + ExFreePoolWithTag(pvBits, 'pmeT'); + _SEH2_YIELD(return 0); + } + _SEH2_END } - _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) + else { - _SEH2_YIELD(return 0); + pvBits = NULL; } - _SEH2_END /* FIXME: Locking twice is cheesy, coord tranlation in UM will fix it */ if (!(pdc = DC_LockDc(hdc))) @@ -1171,13 +1187,6 @@ NtGdiStretchDIBitsInternal( DC_vPrepareDCsForBlit(pdc, rcDst, NULL, rcSrc); psurfDst = pdc->dclevel.pSurface; - if (!psurfDst) - { - DC_vFinishBlit(pdc, NULL); - // CHECKME - bResult = TRUE; - goto cleanup; - } /* Initialize XLATEOBJ */ EXLATEOBJ_vInitialize(&exlo, @@ -1209,7 +1218,7 @@ cleanup: if (psurfTmp) SURFACE_ShareUnlockSurface(psurfTmp); if (hbmTmp) GreDeleteObject(hbmTmp); if (pdc) DC_UnlockDc(pdc); - ExFreePoolWithTag(pvBits, 'pmeT'); + if (pvBits) ExFreePoolWithTag(pvBits, 'pmeT'); return bResult; }