Skip to content

Commit c302dbc

Browse files
SergeGautherielearn-more
authored andcommitted
[FORMAT] wmain(): Call GetLastError() immediately
and adapt STRING_ERROR_DRIVE_TYPE strings.
1 parent 421dd31 commit c302dbc

23 files changed

Lines changed: 37 additions & 36 deletions

base/system/format/format.c

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,7 @@ int wmain(int argc, WCHAR *argv[])
369369
DWORD serialNumber;
370370
ULARGE_INTEGER totalNumberOfBytes, totalNumberOfFreeBytes;
371371
WCHAR szMsg[RC_STRING_MAX_SIZE];
372+
DWORD dwError;
372373

373374
/* Initialize the Console Standard Streams */
374375
ConInitStdStreams();
@@ -423,21 +424,16 @@ int wmain(int argc, WCHAR *argv[])
423424
driveType = GetDriveTypeW(RootDirectory);
424425
switch (driveType)
425426
{
426-
case DRIVE_UNKNOWN :
427-
K32LoadStringW(GetModuleHandle(NULL), STRING_ERROR_DRIVE_TYPE, szMsg, ARRAYSIZE(szMsg));
428-
PrintWin32Error(szMsg, GetLastError());
427+
case DRIVE_UNKNOWN:
428+
case DRIVE_NO_ROOT_DIR: // This case used to report STRING_NO_VOLUME, which has no ".\n".
429+
ConResPuts(StdErr, STRING_ERROR_DRIVE_TYPE);
429430
return -1;
430431

431432
case DRIVE_REMOTE:
432433
case DRIVE_CDROM:
433434
ConResPuts(StdOut, STRING_NO_SUPPORT);
434435
return -1;
435436

436-
case DRIVE_NO_ROOT_DIR:
437-
K32LoadStringW(GetModuleHandle(NULL), STRING_NO_VOLUME, szMsg, ARRAYSIZE(szMsg));
438-
PrintWin32Error(szMsg, GetLastError());
439-
return -1;
440-
441437
case DRIVE_REMOVABLE:
442438
ConResPrintf(StdOut, STRING_INSERT_DISK, RootDirectory[0]);
443439
fgetws(input, ARRAYSIZE(input), stdin);
@@ -474,14 +470,15 @@ int wmain(int argc, WCHAR *argv[])
474470
NULL, NULL, NULL,
475471
fileSystem, ARRAYSIZE(fileSystem)))
476472
{
477-
if (GetLastError() == ERROR_UNRECOGNIZED_VOLUME)
473+
dwError = GetLastError();
474+
if (dwError == ERROR_UNRECOGNIZED_VOLUME)
478475
{
479476
wcscpy(fileSystem, L"RAW");
480477
}
481478
else
482479
{
483480
K32LoadStringW(GetModuleHandle(NULL), STRING_NO_VOLUME, szMsg, ARRAYSIZE(szMsg));
484-
PrintWin32Error(szMsg, GetLastError());
481+
PrintWin32Error(szMsg, dwError);
485482
return -1;
486483
}
487484
}
@@ -505,8 +502,9 @@ int wmain(int argc, WCHAR *argv[])
505502
&totalNumberOfBytes,
506503
NULL))
507504
{
505+
dwError = GetLastError();
508506
K32LoadStringW(GetModuleHandle(NULL), STRING_NO_VOLUME_SIZE, szMsg, ARRAYSIZE(szMsg));
509-
PrintWin32Error(szMsg, GetLastError());
507+
PrintWin32Error(szMsg, dwError);
510508
return -1;
511509
}
512510

@@ -605,8 +603,9 @@ int wmain(int argc, WCHAR *argv[])
605603
input[wcslen(input) - 1] = 0;
606604
if (!SetVolumeLabelW(RootDirectory, input))
607605
{
606+
dwError = GetLastError();
608607
K32LoadStringW(GetModuleHandle(NULL), STRING_NO_LABEL, szMsg, ARRAYSIZE(szMsg));
609-
PrintWin32Error(szMsg, GetLastError());
608+
PrintWin32Error(szMsg, dwError);
610609
return -1;
611610
}
612611
}
@@ -619,8 +618,9 @@ int wmain(int argc, WCHAR *argv[])
619618
&totalNumberOfBytes,
620619
&totalNumberOfFreeBytes))
621620
{
621+
dwError = GetLastError();
622622
K32LoadStringW(GetModuleHandle(NULL), STRING_NO_VOLUME_SIZE, szMsg, ARRAYSIZE(szMsg));
623-
PrintWin32Error(szMsg, GetLastError());
623+
PrintWin32Error(szMsg, dwError);
624624
return -1;
625625
}
626626

@@ -635,8 +635,9 @@ int wmain(int argc, WCHAR *argv[])
635635
&serialNumber, NULL, NULL,
636636
NULL, 0))
637637
{
638+
dwError = GetLastError();
638639
K32LoadStringW(GetModuleHandle(NULL), STRING_NO_VOLUME, szMsg, ARRAYSIZE(szMsg));
639-
PrintWin32Error(szMsg, GetLastError());
640+
PrintWin32Error(szMsg, dwError);
640641
return -1;
641642
}
642643

base/system/format/lang/bg-BG.rc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ BEGIN
2929
STRING_FMIFS_FAIL "Неуспешно определяне разположението на входните точки на FMIFS\n\n"
3030
STRING_UNKNOW_ARG "Неизвестен ключ: %s\n"
3131
STRING_DRIVE_PARM "Задължителният ключ за името на устройството липсва.\n\n"
32-
STRING_ERROR_DRIVE_TYPE "Неуспешно определяне вида на устройството"
32+
STRING_ERROR_DRIVE_TYPE "Неуспешно определяне вида на устройството.\n"
3333
STRING_INSERT_DISK "Сложете нова дискета в устройство %C:\n,след което натиснете Enter..."
3434
STRING_NO_VOLUME "Неуспешно определяне на тома"
3535
STRING_NO_VOLUME_SIZE "Неуспешно определяне на размера на тома"

base/system/format/lang/cs-CZ.rc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ BEGIN
2727
STRING_FMIFS_FAIL "Nelze najít vstupní body FMIFS.\n\n"
2828
STRING_UNKNOW_ARG "Neznámý agrument: %s\n"
2929
STRING_DRIVE_PARM "Schází nutný parametr disku.\n\n"
30-
STRING_ERROR_DRIVE_TYPE "Nelze zjistit typ disku"
30+
STRING_ERROR_DRIVE_TYPE "Nelze zjistit typ disku.\n"
3131
STRING_INSERT_DISK "Vložte novou disketu do jednotky %C:\na poté stiskněte klávesu ENTER..."
3232
STRING_NO_VOLUME "Nelze zjistit svazek"
3333
STRING_NO_VOLUME_SIZE "Nelze zjistit velikost svazku"

base/system/format/lang/de-DE.rc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ BEGIN
3232
STRING_FMIFS_FAIL "Kann FMIFS-Eingangspunkte nicht lokalisieren.\n\n"
3333
STRING_UNKNOW_ARG "Unbekanntes Argument: %s\n"
3434
STRING_DRIVE_PARM "Benötigter Laufwerksparameter fehlt.\n\n"
35-
STRING_ERROR_DRIVE_TYPE "Konnte den Laufwerkstyp nicht erhalten"
35+
STRING_ERROR_DRIVE_TYPE "Konnte den Laufwerkstyp nicht erhalten.\n"
3636
STRING_INSERT_DISK "Legen Sie eine neue Diskette in Laufwerk %C: ein\nund drücken Sie ENTER, wenn das Laufwerk bereit ist."
3737
STRING_NO_VOLUME "Kann Medium nicht abfragen"
3838
STRING_NO_VOLUME_SIZE "Kann Mediengröße nicht abfragen"

base/system/format/lang/el-GR.rc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ BEGIN
3030
STRING_FMIFS_FAIL "Could not located FMIFS entry points.\n\n"
3131
STRING_UNKNOW_ARG "Άγνωστο όρισμα: %s\n"
3232
STRING_DRIVE_PARM "Required drive parameter is missing.\n\n"
33-
STRING_ERROR_DRIVE_TYPE "Δεν ήταν δυνατή η ανάγνωση του τύπου του τόμου."
33+
STRING_ERROR_DRIVE_TYPE "Δεν ήταν δυνατή η ανάγνωση του τύπου του τόμου.\n"
3434
STRING_INSERT_DISK "ΕΙσάγετε μια νέα δισκέτα στο %C:\nκαι πατήστε Enter όταν είστε έτοιμοι..."
3535
STRING_NO_VOLUME "Could not query volume"
3636
STRING_NO_VOLUME_SIZE "Could not query volume size"

base/system/format/lang/en-US.rc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ BEGIN
2828
STRING_FMIFS_FAIL "Could not located FMIFS entry points.\n\n"
2929
STRING_UNKNOW_ARG "Unknown argument: %s\n"
3030
STRING_DRIVE_PARM "Required drive parameter is missing.\n\n"
31-
STRING_ERROR_DRIVE_TYPE "Could not get drive type"
31+
STRING_ERROR_DRIVE_TYPE "Could not get drive type.\n"
3232
STRING_INSERT_DISK "Insert a new floppy in drive %C:\nand press Enter when ready..."
3333
STRING_NO_VOLUME "Could not query volume"
3434
STRING_NO_VOLUME_SIZE "Could not query volume size"

base/system/format/lang/es-ES.rc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ BEGIN
2828
STRING_FMIFS_FAIL "Imposible localizar puntos de entrada FMIFS.\n\n"
2929
STRING_UNKNOW_ARG "Argumento desconocido: %s\n"
3030
STRING_DRIVE_PARM "Parámetro de unidad requerido no encontrado.\n\n"
31-
STRING_ERROR_DRIVE_TYPE "Imposible determinar el tipo de unidad"
31+
STRING_ERROR_DRIVE_TYPE "Imposible determinar el tipo de unidad.\n"
3232
STRING_INSERT_DISK "Inserte un nuevo disco en la unidad %C:\ny presione Enter cuando esté preparado..."
3333
STRING_NO_VOLUME "Imposible consultar el volumen"
3434
STRING_NO_VOLUME_SIZE "Imposible consultar el tamaño de volumen"

base/system/format/lang/fr-FR.rc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ BEGIN
2626
STRING_FMIFS_FAIL "Impossible de trouver les points d'entrée FMIFS.\n\n"
2727
STRING_UNKNOW_ARG "Argument inconnu : %s\n"
2828
STRING_DRIVE_PARM "Le disque à formater n'est pas indiqué.\n\n"
29-
STRING_ERROR_DRIVE_TYPE "Impossible d'obtenir le type de disque"
29+
STRING_ERROR_DRIVE_TYPE "Impossible d'obtenir le type de disque.\n"
3030
STRING_INSERT_DISK "Mettre une nouvelle disquette dans le lecteur %C:\n et appuyer sur Entrée..."
3131
STRING_NO_VOLUME "Impossible de trouver le disque"
3232
STRING_NO_VOLUME_SIZE "Impossible de déterminer la taille du disque"

base/system/format/lang/hu-HU.rc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ BEGIN
3232
STRING_FMIFS_FAIL "Az FMIFS belépési pontok nem találhatók.\n\n"
3333
STRING_UNKNOW_ARG "Érvénytelen paraméter: %s\n"
3434
STRING_DRIVE_PARM "Hiányzik a meghajtó meghatározás.\n\n"
35-
STRING_ERROR_DRIVE_TYPE "Nem sikerült lekérdezni a meghajtó típusát"
35+
STRING_ERROR_DRIVE_TYPE "Nem sikerült lekérdezni a meghajtó típusát.\n"
3636
STRING_INSERT_DISK "Helyezzen be új lemezt a következő meghajtóba: %C:\nHa készen áll, nyomja meg az ENTER billentyűt..."
3737
STRING_NO_VOLUME "Nem sikerült megállapítani címkét"
3838
STRING_NO_VOLUME_SIZE "Nem sikerült megállapítani a kötet méretét"

base/system/format/lang/id-ID.rc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ BEGIN
2929
STRING_FMIFS_FAIL "Tidak bisa menemukan FMIFS entry points.\n\n"
3030
STRING_UNKNOW_ARG "Argumen tidak dikenal: %s\n"
3131
STRING_DRIVE_PARM "Parameter drive yang diperlukan hilang.\n\n"
32-
STRING_ERROR_DRIVE_TYPE "Tidak bisa mendapatkan jenis drive"
32+
STRING_ERROR_DRIVE_TYPE "Tidak bisa mendapatkan jenis drive.\n"
3333
STRING_INSERT_DISK "Sisipkan disket baru di drive %C:\ndan tekan Enter bila siap..."
3434
STRING_NO_VOLUME "Tidak bisa memdapatkan volume"
3535
STRING_NO_VOLUME_SIZE "Tidak bisa mendapatkan ukuran volume"

0 commit comments

Comments
 (0)