mirror of
https://github.com/pbatard/rufus.git
synced 2024-08-14 23:57:05 +00:00
Merge remote-tracking branch 'upstream/master'
Conflicts: src/rufus.c
This commit is contained in:
commit
0e18200080
11 changed files with 189 additions and 145 deletions
20
configure
vendored
20
configure
vendored
|
|
@ -1,6 +1,6 @@
|
||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.68 for rufus 1.4.6.
|
# Generated by GNU Autoconf 2.68 for rufus 1.4.7.
|
||||||
#
|
#
|
||||||
# Report bugs to <https://github.com/pbatard/rufus/issues>.
|
# Report bugs to <https://github.com/pbatard/rufus/issues>.
|
||||||
#
|
#
|
||||||
|
|
@ -560,8 +560,8 @@ MAKEFLAGS=
|
||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='rufus'
|
PACKAGE_NAME='rufus'
|
||||||
PACKAGE_TARNAME='rufus'
|
PACKAGE_TARNAME='rufus'
|
||||||
PACKAGE_VERSION='1.4.6'
|
PACKAGE_VERSION='1.4.7'
|
||||||
PACKAGE_STRING='rufus 1.4.6'
|
PACKAGE_STRING='rufus 1.4.7'
|
||||||
PACKAGE_BUGREPORT='https://github.com/pbatard/rufus/issues'
|
PACKAGE_BUGREPORT='https://github.com/pbatard/rufus/issues'
|
||||||
PACKAGE_URL='http://rufus.akeo.ie'
|
PACKAGE_URL='http://rufus.akeo.ie'
|
||||||
|
|
||||||
|
|
@ -1203,7 +1203,7 @@ if test "$ac_init_help" = "long"; then
|
||||||
# Omit some internal or obsolete options to make the list less imposing.
|
# Omit some internal or obsolete options to make the list less imposing.
|
||||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
cat <<_ACEOF
|
cat <<_ACEOF
|
||||||
\`configure' configures rufus 1.4.6 to adapt to many kinds of systems.
|
\`configure' configures rufus 1.4.7 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
|
|
@ -1269,7 +1269,7 @@ fi
|
||||||
|
|
||||||
if test -n "$ac_init_help"; then
|
if test -n "$ac_init_help"; then
|
||||||
case $ac_init_help in
|
case $ac_init_help in
|
||||||
short | recursive ) echo "Configuration of rufus 1.4.6:";;
|
short | recursive ) echo "Configuration of rufus 1.4.7:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
|
|
@ -1357,7 +1357,7 @@ fi
|
||||||
test -n "$ac_init_help" && exit $ac_status
|
test -n "$ac_init_help" && exit $ac_status
|
||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
rufus configure 1.4.6
|
rufus configure 1.4.7
|
||||||
generated by GNU Autoconf 2.68
|
generated by GNU Autoconf 2.68
|
||||||
|
|
||||||
Copyright (C) 2010 Free Software Foundation, Inc.
|
Copyright (C) 2010 Free Software Foundation, Inc.
|
||||||
|
|
@ -1412,7 +1412,7 @@ cat >config.log <<_ACEOF
|
||||||
This file contains any messages produced by compilers while
|
This file contains any messages produced by compilers while
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by rufus $as_me 1.4.6, which was
|
It was created by rufus $as_me 1.4.7, which was
|
||||||
generated by GNU Autoconf 2.68. Invocation command line was
|
generated by GNU Autoconf 2.68. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
|
|
@ -2227,7 +2227,7 @@ fi
|
||||||
|
|
||||||
# Define the identity of the package.
|
# Define the identity of the package.
|
||||||
PACKAGE='rufus'
|
PACKAGE='rufus'
|
||||||
VERSION='1.4.6'
|
VERSION='1.4.7'
|
||||||
|
|
||||||
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
cat >>confdefs.h <<_ACEOF
|
||||||
|
|
@ -4140,7 +4140,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||||
# report actual input values of CONFIG_FILES etc. instead of their
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by rufus $as_me 1.4.6, which was
|
This file was extended by rufus $as_me 1.4.7, which was
|
||||||
generated by GNU Autoconf 2.68. Invocation command line was
|
generated by GNU Autoconf 2.68. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
|
|
@ -4194,7 +4194,7 @@ _ACEOF
|
||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
rufus config.status 1.4.6
|
rufus config.status 1.4.7
|
||||||
configured by $0, generated by GNU Autoconf 2.68,
|
configured by $0, generated by GNU Autoconf 2.68,
|
||||||
with options \\"\$ac_cs_config\\"
|
with options \\"\$ac_cs_config\\"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
AC_INIT([rufus], [1.4.6], [https://github.com/pbatard/rufus/issues], [rufus], [http://rufus.akeo.ie])
|
AC_INIT([rufus], [1.4.7], [https://github.com/pbatard/rufus/issues], [rufus], [http://rufus.akeo.ie])
|
||||||
AM_INIT_AUTOMAKE([-Wno-portability foreign no-dist no-dependencies])
|
AM_INIT_AUTOMAKE([-Wno-portability foreign no-dist no-dependencies])
|
||||||
AC_CONFIG_SRCDIR([src/rufus.c])
|
AC_CONFIG_SRCDIR([src/rufus.c])
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,9 @@ rufus.loc since its original version. Translators are expected to keep their
|
||||||
translations up to date by monitoring this file on regular basis and applying
|
translations up to date by monitoring this file on regular basis and applying
|
||||||
the same changes.
|
the same changes.
|
||||||
|
|
||||||
|
When editing an existing translation, make sure you always follow:
|
||||||
|
https://github.com/pbatard/rufus/wiki/Localization#Editing_a_translation
|
||||||
|
|
||||||
Remember to also update the version number for your translation ('v x.y.z')
|
Remember to also update the version number for your translation ('v x.y.z')
|
||||||
once you have matched all the changes that occurred for the en-US translation.
|
once you have matched all the changes that occurred for the en-US translation.
|
||||||
|
|
||||||
|
|
@ -12,6 +15,10 @@ content. PLEASE, do not just look at this Changelog when updating your
|
||||||
translation, but always use the English section of rufus.loc as your base.
|
translation, but always use the English section of rufus.loc as your base.
|
||||||
For instance, MSG_114, that was introduced in v1.0.8 is MORE than one line!
|
For instance, MSG_114, that was introduced in v1.0.8 is MORE than one line!
|
||||||
|
|
||||||
|
o Version 1.0.11 (2014.03.29)
|
||||||
|
- Changed MSG_011 "%u bad block(s) found" -> "%d bad block(s) found"
|
||||||
|
Note: since this doesn't require translator involvement, I have applied the change to existing translations.
|
||||||
|
|
||||||
o Version 1.0.10 (2014.02.09)
|
o Version 1.0.10 (2014.02.09)
|
||||||
- *NEW* MSG_095 "DD Image"
|
- *NEW* MSG_095 "DD Image"
|
||||||
- *NEW* MSG_261 "Writing image: %0.1f%% completed"
|
- *NEW* MSG_261 "Writing image: %0.1f%% completed"
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@
|
||||||
# http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/%5BMS-LCID%5D.pdf
|
# http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/%5BMS-LCID%5D.pdf
|
||||||
# for the LCID (0x####) codes you should use
|
# for the LCID (0x####) codes you should use
|
||||||
l "en-US" "English (English)" 0x0409, 0x0809, 0x0c09, 0x1009, 0x1409, 0x1809, 0x1c09, 0x2009, 0x2409, 0x2809, 0x2c09, 0x3009, 0x3409, 0x3809, 0x3c09, 0x4009, 0x4409, 0x4809
|
l "en-US" "English (English)" 0x0409, 0x0809, 0x0c09, 0x1009, 0x1409, 0x1809, 0x1c09, 0x2009, 0x2409, 0x2809, 0x2c09, 0x3009, 0x3409, 0x3809, 0x3c09, 0x4009, 0x4409, 0x4809
|
||||||
v 1.0.10
|
v 1.0.11
|
||||||
|
|
||||||
# Main dialog
|
# Main dialog
|
||||||
g IDD_DIALOG
|
g IDD_DIALOG
|
||||||
|
|
@ -145,7 +145,7 @@ t MSG_007 "Cancel"
|
||||||
t MSG_008 "Yes"
|
t MSG_008 "Yes"
|
||||||
t MSG_009 "No"
|
t MSG_009 "No"
|
||||||
t MSG_010 "Bad blocks found"
|
t MSG_010 "Bad blocks found"
|
||||||
t MSG_011 "Check completed: %u bad block(s) found\n"
|
t MSG_011 "Check completed: %d bad block(s) found\n"
|
||||||
" %d read error(s)\n %d write error(s)\n %d corruption error(s)\n"
|
" %d read error(s)\n %d write error(s)\n %d corruption error(s)\n"
|
||||||
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
||||||
t MSG_012 "%s\nA more detailed report can be found in:\n%s"
|
t MSG_012 "%s\nA more detailed report can be found in:\n%s"
|
||||||
|
|
@ -498,7 +498,7 @@ t MSG_212 "فشل"
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
l "bg-BG" "Bulgarian (Български)" 0x0402
|
l "bg-BG" "Bulgarian (Български)" 0x0402
|
||||||
v 1.0.10
|
v 1.0.11
|
||||||
b "en-US"
|
b "en-US"
|
||||||
|
|
||||||
# Main dialog
|
# Main dialog
|
||||||
|
|
@ -635,7 +635,7 @@ t MSG_007 "Прекрати"
|
||||||
t MSG_008 "Да"
|
t MSG_008 "Да"
|
||||||
t MSG_009 "Не"
|
t MSG_009 "Не"
|
||||||
t MSG_010 "Намерени са лоши блокове"
|
t MSG_010 "Намерени са лоши блокове"
|
||||||
t MSG_011 "Проверката завършена: намерени са %u лоши блокове\n"
|
t MSG_011 "Проверката завършена: намерени са %d лоши блокове\n"
|
||||||
" %d грешки при четене\n %d грешки при запис\n %d повредени\n"
|
" %d грешки при четене\n %d грешки при запис\n %d повредени\n"
|
||||||
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
||||||
t MSG_012 "%s\nA По подробен доклад може да намерите в:\n%s"
|
t MSG_012 "%s\nA По подробен доклад може да намерите в:\n%s"
|
||||||
|
|
@ -926,7 +926,7 @@ t MSG_261 "Писане на образ: %0.1f%% завършено"
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
l "zh-CN" "Chinese Simplified (简体中文)" 0x0804, 0x1004
|
l "zh-CN" "Chinese Simplified (简体中文)" 0x0804, 0x1004
|
||||||
v 1.0.10
|
v 1.0.11
|
||||||
b "en-US"
|
b "en-US"
|
||||||
|
|
||||||
# Main dialog
|
# Main dialog
|
||||||
|
|
@ -1014,7 +1014,7 @@ t MSG_007 "取消"
|
||||||
t MSG_008 "是"
|
t MSG_008 "是"
|
||||||
t MSG_009 "否"
|
t MSG_009 "否"
|
||||||
t MSG_010 "检测到坏快"
|
t MSG_010 "检测到坏快"
|
||||||
t MSG_011 "扫描结果:检测到 %u 个坏快\n"
|
t MSG_011 "扫描结果:检测到 %d 个坏快\n"
|
||||||
" %d 读取错误\n %d 写入错误\n %d 损坏错误\n"
|
" %d 读取错误\n %d 写入错误\n %d 损坏错误\n"
|
||||||
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
||||||
t MSG_012 "%s\n详细报告位于:\n%s"
|
t MSG_012 "%s\n详细报告位于:\n%s"
|
||||||
|
|
@ -1282,7 +1282,7 @@ t MSG_261 "写入镜像:已完成 %0.1f%%"
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
l "zh-TW" "Chinese Traditional (正體中文)" 0x0404, 0x0c04, 0x1404, 0x7c04
|
l "zh-TW" "Chinese Traditional (正體中文)" 0x0404, 0x0c04, 0x1404, 0x7c04
|
||||||
v 1.0.10
|
v 1.0.11
|
||||||
b "en-US"
|
b "en-US"
|
||||||
|
|
||||||
# Main dialog
|
# Main dialog
|
||||||
|
|
@ -1386,7 +1386,7 @@ t MSG_007 "取消"
|
||||||
t MSG_008 "是"
|
t MSG_008 "是"
|
||||||
t MSG_009 "否"
|
t MSG_009 "否"
|
||||||
t MSG_010 "偵測到損毀磁區"
|
t MSG_010 "偵測到損毀磁區"
|
||||||
t MSG_011 "掃描結果: %u 個異常\n"
|
t MSG_011 "掃描結果: %d 個異常\n"
|
||||||
" %d 讀取錯誤\n %d 寫入錯誤\n %d 損毀錯誤\n"
|
" %d 讀取錯誤\n %d 寫入錯誤\n %d 損毀錯誤\n"
|
||||||
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
||||||
t MSG_012 "%s\n詳細報告位於:\n%s"
|
t MSG_012 "%s\n詳細報告位於:\n%s"
|
||||||
|
|
@ -1771,7 +1771,7 @@ t MSG_007 "Annuleren"
|
||||||
t MSG_008 "Ja"
|
t MSG_008 "Ja"
|
||||||
t MSG_009 "Nee"
|
t MSG_009 "Nee"
|
||||||
t MSG_010 "Slechte blokken gevonden"
|
t MSG_010 "Slechte blokken gevonden"
|
||||||
t MSG_011 "Controle voltooid: %u slechte blok(ken) gevonden\n"
|
t MSG_011 "Controle voltooid: %d slechte blok(ken) gevonden\n"
|
||||||
" %d leesfout(en)\n %d schrijffout(en)\n %d corruptiefout(en)\n"
|
" %d leesfout(en)\n %d schrijffout(en)\n %d corruptiefout(en)\n"
|
||||||
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
||||||
t MSG_012 "%s\nEen meer gedetailleerder rapport kan worden gevonden in:\n%s"
|
t MSG_012 "%s\nEen meer gedetailleerder rapport kan worden gevonden in:\n%s"
|
||||||
|
|
@ -2031,7 +2031,7 @@ t MSG_259 "Forceer update"
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
l "fi-FI" "Finnish (Suomi)" 0x040B
|
l "fi-FI" "Finnish (Suomi)" 0x040B
|
||||||
v 1.0.10
|
v 1.0.11
|
||||||
b "en-US"
|
b "en-US"
|
||||||
|
|
||||||
# Main dialog
|
# Main dialog
|
||||||
|
|
@ -2139,7 +2139,7 @@ t MSG_007 "Peruuta"
|
||||||
t MSG_008 "Kyllä"
|
t MSG_008 "Kyllä"
|
||||||
t MSG_009 "Ei"
|
t MSG_009 "Ei"
|
||||||
t MSG_010 "Viallisia lohkoja löydetty"
|
t MSG_010 "Viallisia lohkoja löydetty"
|
||||||
t MSG_011 "Tarkistus valmis: %u viallista lohkoa löydetty\n"
|
t MSG_011 "Tarkistus valmis: %d viallista lohkoa löydetty\n"
|
||||||
" %d lukuvirhe(ttä)\n %d kirjoitusvirhe(ttä)\n %d korruptiovirhe(ttä)\n"
|
" %d lukuvirhe(ttä)\n %d kirjoitusvirhe(ttä)\n %d korruptiovirhe(ttä)\n"
|
||||||
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
||||||
t MSG_012 "%s\nA voit tarkastella tarkempaa raporttia kohteessa:\n%s"
|
t MSG_012 "%s\nA voit tarkastella tarkempaa raporttia kohteessa:\n%s"
|
||||||
|
|
@ -2429,7 +2429,7 @@ t MSG_261 "Kirjoitetaan levykuvaa: %0.1f%% valmiina"
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
l "fr-FR" "French (Français)" 0x040c, 0x080c, 0x0c0c, 0x100c, 0x140c, 0x180c, 0x1c0c, 0x200c, 0x240c, 0x280c, 0x2c0c, 0x300c, 0x340c, 0x380c, 0xe40c
|
l "fr-FR" "French (Français)" 0x040c, 0x080c, 0x0c0c, 0x100c, 0x140c, 0x180c, 0x1c0c, 0x200c, 0x240c, 0x280c, 0x2c0c, 0x300c, 0x340c, 0x380c, 0xe40c
|
||||||
v 1.0.10
|
v 1.0.11
|
||||||
b "en-US"
|
b "en-US"
|
||||||
|
|
||||||
g IDD_DIALOG
|
g IDD_DIALOG
|
||||||
|
|
@ -2525,7 +2525,7 @@ t MSG_007 "Annuler"
|
||||||
t MSG_008 "Oui"
|
t MSG_008 "Oui"
|
||||||
t MSG_009 "Non"
|
t MSG_009 "Non"
|
||||||
t MSG_010 "Blocs défectueux détectés"
|
t MSG_010 "Blocs défectueux détectés"
|
||||||
t MSG_011 "Vérification complète : %u bloc(s) défectueux détecté(s)\n"
|
t MSG_011 "Vérification complète : %d bloc(s) défectueux détecté(s)\n"
|
||||||
" %d erreur(s) de lecture\n %d erreur(s) d'écriture\n %d erreur(s) de corruption\n"
|
" %d erreur(s) de lecture\n %d erreur(s) d'écriture\n %d erreur(s) de corruption\n"
|
||||||
t MSG_012 "%s\nUn rapport plus détaillé peut être obtenu à :\n%s"
|
t MSG_012 "%s\nUn rapport plus détaillé peut être obtenu à :\n%s"
|
||||||
t MSG_013 "Jamais"
|
t MSG_013 "Jamais"
|
||||||
|
|
@ -2788,7 +2788,7 @@ t MSG_261 "Ecriture d'image : %0.1f%% complété"
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
l "de-DE" "German (Deutsch)" 0x0407, 0x0807, 0x0c07, 0x1007, 0x1407
|
l "de-DE" "German (Deutsch)" 0x0407, 0x0807, 0x0c07, 0x1007, 0x1407
|
||||||
v 1.0.10
|
v 1.0.11
|
||||||
b "en-US"
|
b "en-US"
|
||||||
|
|
||||||
g IDD_DIALOG
|
g IDD_DIALOG
|
||||||
|
|
@ -2901,7 +2901,7 @@ t MSG_007 "Abbruch"
|
||||||
t MSG_008 "Ja"
|
t MSG_008 "Ja"
|
||||||
t MSG_009 "Nein"
|
t MSG_009 "Nein"
|
||||||
t MSG_010 "Fehlerhafte Blöcke gefunden"
|
t MSG_010 "Fehlerhafte Blöcke gefunden"
|
||||||
t MSG_011 "Prüfung abgeschlossen: %u fehlerhafte Blöcke gefunden\n"
|
t MSG_011 "Prüfung abgeschlossen: %d fehlerhafte Blöcke gefunden\n"
|
||||||
" %d Lesefehler\n %d Schreibfehler\n %d Defekt(e)\n"
|
" %d Lesefehler\n %d Schreibfehler\n %d Defekt(e)\n"
|
||||||
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
||||||
t MSG_012 "%s\nEin detaillierter Bericht ist hier zu finden:\n%s"
|
t MSG_012 "%s\nEin detaillierter Bericht ist hier zu finden:\n%s"
|
||||||
|
|
@ -3175,7 +3175,7 @@ t MSG_261 "Schreibe Abbild-Datei: %0.1f%% fertiggestellt"
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
l "el-GR" "Greek (Ελληνικά)" 0x0408
|
l "el-GR" "Greek (Ελληνικά)" 0x0408
|
||||||
v 1.0.10
|
v 1.0.11
|
||||||
b "en-US"
|
b "en-US"
|
||||||
|
|
||||||
# Main dialog
|
# Main dialog
|
||||||
|
|
@ -3319,7 +3319,7 @@ t MSG_007 "Άκυρο"
|
||||||
t MSG_008 "Ναι"
|
t MSG_008 "Ναι"
|
||||||
t MSG_009 "Όχι"
|
t MSG_009 "Όχι"
|
||||||
t MSG_010 "Βρέθηκαν κατεστραμμένοι τομείς"
|
t MSG_010 "Βρέθηκαν κατεστραμμένοι τομείς"
|
||||||
t MSG_011 "Ο έλεγχος ολοκληρώθηκε: βρέθηκαν %u κατεστραμμένοι τομείς \n"
|
t MSG_011 "Ο έλεγχος ολοκληρώθηκε: βρέθηκαν %d κατεστραμμένοι τομείς \n"
|
||||||
" %d σφάλματα ανάγνωσης\n %d σφάλματα εγγραφής\n %d σφάλματα διαστρέβλωσης\n"
|
" %d σφάλματα ανάγνωσης\n %d σφάλματα εγγραφής\n %d σφάλματα διαστρέβλωσης\n"
|
||||||
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
||||||
t MSG_012 "%s\nΜια πιο λεπτομερής αναφορά μπορεί να βρεθεί στο:\n%s"
|
t MSG_012 "%s\nΜια πιο λεπτομερής αναφορά μπορεί να βρεθεί στο:\n%s"
|
||||||
|
|
@ -3687,7 +3687,7 @@ t MSG_007 "Mégse"
|
||||||
t MSG_008 "Igen"
|
t MSG_008 "Igen"
|
||||||
t MSG_009 "Nem"
|
t MSG_009 "Nem"
|
||||||
t MSG_010 "Hibás blokkokat találtam"
|
t MSG_010 "Hibás blokkokat találtam"
|
||||||
t MSG_011 "Ellenörzés befejezve: %u hibás blokk találva\n"
|
t MSG_011 "Ellenörzés befejezve: %d hibás blokk találva\n"
|
||||||
" %d olvasási hiba,\n %d írási hiba\n %d összeomlásra hajlamos hiba\n"
|
" %d olvasási hiba,\n %d írási hiba\n %d összeomlásra hajlamos hiba\n"
|
||||||
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
||||||
t MSG_012 "%s\nEgy részletesebb jelentés itt található:\n%s"
|
t MSG_012 "%s\nEgy részletesebb jelentés itt található:\n%s"
|
||||||
|
|
@ -4083,7 +4083,7 @@ t MSG_007 "Batal"
|
||||||
t MSG_008 "Ya"
|
t MSG_008 "Ya"
|
||||||
t MSG_009 "Tidak"
|
t MSG_009 "Tidak"
|
||||||
t MSG_010 "Blok buruk ditemukan"
|
t MSG_010 "Blok buruk ditemukan"
|
||||||
t MSG_011 "Pemeriksaan selesai: %u blok buruk ditemukan\n"
|
t MSG_011 "Pemeriksaan selesai: %d blok buruk ditemukan\n"
|
||||||
" %d read error(s)\n %d write error(s)\n %d corruption error(s)\n"
|
" %d read error(s)\n %d write error(s)\n %d corruption error(s)\n"
|
||||||
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
||||||
t MSG_012 "%s\nLaporan yang lebih rinci dapat ditemukan di:\n%s"
|
t MSG_012 "%s\nLaporan yang lebih rinci dapat ditemukan di:\n%s"
|
||||||
|
|
@ -4355,7 +4355,7 @@ t MSG_259 "Pembaruan Paksa"
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
l "it-IT" "Italian (Italiano)" 0x0410, 0x0810
|
l "it-IT" "Italian (Italiano)" 0x0410, 0x0810
|
||||||
v 1.0.10
|
v 1.0.11
|
||||||
b "en-US"
|
b "en-US"
|
||||||
|
|
||||||
g IDD_DIALOG
|
g IDD_DIALOG
|
||||||
|
|
@ -4465,7 +4465,7 @@ t MSG_007 "Annulla"
|
||||||
t MSG_008 "Sì"
|
t MSG_008 "Sì"
|
||||||
t MSG_009 "No"
|
t MSG_009 "No"
|
||||||
t MSG_010 "Rilevato blocco difettoso"
|
t MSG_010 "Rilevato blocco difettoso"
|
||||||
t MSG_011 "Controllo completato: trovati %u blocchi difettosi\n"
|
t MSG_011 "Controllo completato: trovati %d blocchi difettosi\n"
|
||||||
" %d errori lettura\n %d errori scrittura\n %d errori corruzione\n"
|
" %d errori lettura\n %d errori scrittura\n %d errori corruzione\n"
|
||||||
t MSG_012 "%s\nUn report più dettagliato è disponibile in:\n%s"
|
t MSG_012 "%s\nUn report più dettagliato è disponibile in:\n%s"
|
||||||
t MSG_013 "Disabilitato"
|
t MSG_013 "Disabilitato"
|
||||||
|
|
@ -4731,7 +4731,7 @@ t MSG_261 "Scrittura immagine: %0.1f%% completata"
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
l "ko-KR" "Korean (한국어)" 0x0412
|
l "ko-KR" "Korean (한국어)" 0x0412
|
||||||
v 1.0.10
|
v 1.0.11
|
||||||
b "en-US"
|
b "en-US"
|
||||||
|
|
||||||
# Main dialog
|
# Main dialog
|
||||||
|
|
@ -4835,7 +4835,7 @@ t MSG_007 "취소"
|
||||||
t MSG_008 "예"
|
t MSG_008 "예"
|
||||||
t MSG_009 "아니오"
|
t MSG_009 "아니오"
|
||||||
t MSG_010 "배드 섹터 발견 됨."
|
t MSG_010 "배드 섹터 발견 됨."
|
||||||
t MSG_011 "검사 완료: %u 개의 배트섹터가 발견되었습니다.\n"
|
t MSG_011 "검사 완료: %d 개의 배트섹터가 발견되었습니다.\n"
|
||||||
" %d 읽기 오류\n %d 쓰기 오류\n %d 손상 섹터\n"
|
" %d 읽기 오류\n %d 쓰기 오류\n %d 손상 섹터\n"
|
||||||
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
||||||
t MSG_012 "%s\n보고에 대한 상세 정보:\n%s"
|
t MSG_012 "%s\n보고에 대한 상세 정보:\n%s"
|
||||||
|
|
@ -5123,7 +5123,7 @@ t MSG_261 "이미지 만들기: %0.1f%% 완료"
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
l "lt-LT" "Lithuanian (Lietuvių)" 0x0427
|
l "lt-LT" "Lithuanian (Lietuvių)" 0x0427
|
||||||
v 1.0.10
|
v 1.0.11
|
||||||
b "en-US"
|
b "en-US"
|
||||||
|
|
||||||
# Main dialog
|
# Main dialog
|
||||||
|
|
@ -5249,7 +5249,7 @@ t MSG_007 "Atšaukti"
|
||||||
t MSG_008 "Taip"
|
t MSG_008 "Taip"
|
||||||
t MSG_009 "Ne"
|
t MSG_009 "Ne"
|
||||||
t MSG_010 "Rasta blogų blokų"
|
t MSG_010 "Rasta blogų blokų"
|
||||||
t MSG_011 "Tikrinimas baigtas: rasta %u blogų blokų\n"
|
t MSG_011 "Tikrinimas baigtas: rasta %d blogų blokų\n"
|
||||||
" %d skaitymo klaidų\n %d rašymo klaidų\n %d iškraipymo klaidų\n"
|
" %d skaitymo klaidų\n %d rašymo klaidų\n %d iškraipymo klaidų\n"
|
||||||
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
||||||
t MSG_012 "%s\nIšsamesnę ataskaitą rasite:\n%s"
|
t MSG_012 "%s\nIšsamesnę ataskaitą rasite:\n%s"
|
||||||
|
|
@ -5539,7 +5539,7 @@ t MSG_261 "Rašomas atvaizdas: %0.1f%% baigta"
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
l "ms-MY" "Malay (Bahasa Malaysia)" 0x043e, 0x083e
|
l "ms-MY" "Malay (Bahasa Malaysia)" 0x043e, 0x083e
|
||||||
v 1.0.7
|
v 1.0.11
|
||||||
b "en-US"
|
b "en-US"
|
||||||
|
|
||||||
# Main dialog
|
# Main dialog
|
||||||
|
|
@ -5668,7 +5668,7 @@ t MSG_007 "batal"
|
||||||
t MSG_008 "Ya"
|
t MSG_008 "Ya"
|
||||||
t MSG_009 "Tidak"
|
t MSG_009 "Tidak"
|
||||||
t MSG_010 "Blok rosak dijumpai"
|
t MSG_010 "Blok rosak dijumpai"
|
||||||
t MSG_011 "Semak selsesai: %u blok rosak dijumpai\n"
|
t MSG_011 "Semak selsesai: %d blok rosak dijumpai\n"
|
||||||
" %d error membaca\n %d error menulis\n %d error korupsi\n"
|
" %d error membaca\n %d error menulis\n %d error korupsi\n"
|
||||||
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
||||||
t MSG_012 "%s\nA more detailed report can be found in:\n%s"
|
t MSG_012 "%s\nA more detailed report can be found in:\n%s"
|
||||||
|
|
@ -5711,7 +5711,7 @@ t MSG_043 "Error: %s"
|
||||||
t MSG_044 "Muat turun fail"
|
t MSG_044 "Muat turun fail"
|
||||||
t MSG_045 "Peranti storan USB (Generik)"
|
t MSG_045 "Peranti storan USB (Generik)"
|
||||||
t MSG_046 "%s (Disk %d) [%s]"
|
t MSG_046 "%s (Disk %d) [%s]"
|
||||||
# t MSG_047 "Multiple Partitions"
|
t MSG_047 "Beberapa Partition"
|
||||||
t MSG_048 "Rufus - Mengeflush buffer"
|
t MSG_048 "Rufus - Mengeflush buffer"
|
||||||
t MSG_049 "Rufus - Dibatalkan"
|
t MSG_049 "Rufus - Dibatalkan"
|
||||||
|
|
||||||
|
|
@ -5766,17 +5766,22 @@ t MSG_084 "Imej ISO ini menggunakan versi '%s' yang telah usang.\n"
|
||||||
"Perhatian: Fail yang dimuat turun akan disimpan di dalam direktori bersamaan dengan Rufus dan apabila terdapat "
|
"Perhatian: Fail yang dimuat turun akan disimpan di dalam direktori bersamaan dengan Rufus dan apabila terdapat "
|
||||||
"'%s' , ia akan digunakan secara automatik."
|
"'%s' , ia akan digunakan secara automatik."
|
||||||
t MSG_085 "Muat turun %s"
|
t MSG_085 "Muat turun %s"
|
||||||
t MSG_086 "Imej ISO tidak dapat dikesan"
|
t MSG_086 "Tiada imej yang dipilih"
|
||||||
# The content between the quotes below (\"Create a bootable disk\") should match
|
# The content between the quotes below (\"Create a bootable disk\") should match
|
||||||
# the beginning of the IDC_BOOT text
|
# the beginning of the IDC_BOOT text
|
||||||
t MSG_087 "Sila kilik pada butang disk untuk memilih ISO boleh boot, "
|
t MSG_087 "Sila kilik pada butang disk untuk memilih imej yang boleh boot, "
|
||||||
"atau nyahtandakan kotak semak \"Cipta disk boleh boot...\"."
|
"atau nyahtandakan kotak semak \"Cipta disk boleh boot menggunakan\"."
|
||||||
t MSG_088 "ISO terlalu besar"
|
t MSG_088 "Imej terlalu besar"
|
||||||
t MSG_089 "Imej ISO ini terlalu besar untuk sasaran yang dipilih."
|
t MSG_089 "Imej ini terlalu besar untuk sasaran yang dipilih."
|
||||||
t MSG_090 "ISO tidak disokong"
|
t MSG_090 "ISO tidak disokong"
|
||||||
t MSG_091 "Apabila menggunakan jenis sasaran UEFI , hanya imej boleh boot jenis EFI sahaja disokong. "
|
t MSG_091 "Apabila menggunakan jenis sasaran UEFI , hanya imej boleh boot jenis EFI sahaja disokong. "
|
||||||
"Tolong pilih ISO boleh boot jenis EFI atau tukarkan jenis sasaran kepada BIOS."
|
"Tolong pilih ISO boleh boot jenis EFI atau tukarkan jenis sasaran kepada BIOS."
|
||||||
t MSG_092 "Sistem fail tidak disokong"
|
t MSG_092 "Sistem fail tidak disokong"
|
||||||
|
t MSG_093 "PENTING: PERANTI INI MEMPUNYAI BEBERAPA PARTITION!!\n\n"
|
||||||
|
"Ini mungkin termasuk partition/jilid yang tidak disenaraikan atau tidak boleh dilihat dari Windows. "
|
||||||
|
"Jika anda mahu meneruskannya, anda bertanggungjawab ke atas kehilangan data dalam partition tersebut."
|
||||||
|
t MSG_094 "Beberapa partition dikesan"
|
||||||
|
t MSG_095 "DD Imej"
|
||||||
t MSG_096 "Hanya FAT/FAT32 diskong untuk ISO ini. Tolong pilih FAT/FAT32 sebagai fail sistem."
|
t MSG_096 "Hanya FAT/FAT32 diskong untuk ISO ini. Tolong pilih FAT/FAT32 sebagai fail sistem."
|
||||||
t MSG_097 "Hanya imej ISO yang berdasarkan 'bootmgr' atau 'WinPE' boleh digunakan dengan NTFS."
|
t MSG_097 "Hanya imej ISO yang berdasarkan 'bootmgr' atau 'WinPE' boleh digunakan dengan NTFS."
|
||||||
t MSG_098 "FAT/FAT32 hanya boleh digunakan untuk imej ISO yang berdasarkan isolinux atau apabila jenis sasaran adalah UEFI."
|
t MSG_098 "FAT/FAT32 hanya boleh digunakan untuk imej ISO yang berdasarkan isolinux atau apabila jenis sasaran adalah UEFI."
|
||||||
|
|
@ -5797,7 +5802,7 @@ t MSG_104 "Syslinux v5.0 atau kemudian memerlukan fail '%s' di komputer anda.\n"
|
||||||
"'%s' ada di sana, ia akan digunakan semula secara automatik.\n"
|
"'%s' ada di sana, ia akan digunakan semula secara automatik.\n"
|
||||||
t MSG_105 "Pembatalan boleh menyebabkan peranti ini TIDAK BOLEH DIGUNAKAN SEMULA.\n"
|
t MSG_105 "Pembatalan boleh menyebabkan peranti ini TIDAK BOLEH DIGUNAKAN SEMULA.\n"
|
||||||
"Jika anda pasti anda mahu membatalkannya, klik Ya. Sebaliknya, klik Tidak."
|
"Jika anda pasti anda mahu membatalkannya, klik Ya. Sebaliknya, klik Tidak."
|
||||||
t MSG_106 "Silih pilih folder"
|
t MSG_106 "Sila pilih folder"
|
||||||
t MSG_107 "Semua fail"
|
t MSG_107 "Semua fail"
|
||||||
t MSG_108 "Log Rufus"
|
t MSG_108 "Log Rufus"
|
||||||
t MSG_109 "0x%02X (Disk %d)"
|
t MSG_109 "0x%02X (Disk %d)"
|
||||||
|
|
@ -5810,7 +5815,16 @@ t MSG_111 "Incompatible Cluster size"
|
||||||
t MSG_112 "Pemformattan jilid UDF yang besar mengambil masa yang amat lama. Pada kelajuan USB 2.0 anggaran masa pemformatan "
|
t MSG_112 "Pemformattan jilid UDF yang besar mengambil masa yang amat lama. Pada kelajuan USB 2.0 anggaran masa pemformatan "
|
||||||
"adalah %d:%02d, di mana bar kemajuan akan lihat seperti ia tidak bergerak. Tolong bersabar"
|
"adalah %d:%02d, di mana bar kemajuan akan lihat seperti ia tidak bergerak. Tolong bersabar"
|
||||||
t MSG_113 "Jilid UDF besar"
|
t MSG_113 "Jilid UDF besar"
|
||||||
|
t MSG_114 "Imej ini menggunakan Syslinux %s tetapi aplikasi ini hanya mempunyai fail pemasangan untuk"
|
||||||
|
"Syslinux %s.\n\nOleh kerana versi-versi baharu Syslinux tidak serasi dengan satu sama lain, maka tidak"
|
||||||
|
"wajarlah Rufus menyediakan semuanya, dua fail tambahan perlu dimuat turun dari"
|
||||||
|
"Internet ('ldlinux.sys' dan 'ldlinux.bss'):\n"
|
||||||
|
"- Pilih 'Ya' untuk menyambung ke Internet dan memuat turun fail tersebut\n"
|
||||||
|
"- Pilih 'Tidak' untuk membatalkan operasi\n\n"
|
||||||
|
"NOTA:Fail akan dimuat turun ke dalam direktori aplikasi ini dan akan digunakan semula"
|
||||||
|
"secara automatik sekiranya sedia ada.\n"
|
||||||
|
t MSG_115 "Muat turun diperlukan"
|
||||||
|
|
||||||
# Tootips
|
# Tootips
|
||||||
# Partition Scheme and Target Type
|
# Partition Scheme and Target Type
|
||||||
t MSG_150 "Selalunya pilihan ini paling selamat. Namun, jika anda ada komputer UEFI dan mahu "
|
t MSG_150 "Selalunya pilihan ini paling selamat. Namun, jika anda ada komputer UEFI dan mahu "
|
||||||
|
|
@ -5860,11 +5874,13 @@ t MSG_184 "Untuk tujuan menjana statistik penggunaan peribadi , kami mungkin men
|
||||||
t MSG_185 "Proses mengemas kini:"
|
t MSG_185 "Proses mengemas kini:"
|
||||||
t MSG_186 "Rufus tidak memasang atau menjalankan servis di latar belakang. Oleh itu, semakan kemas kini hanya dijalankan apabila aplikasi utama berjalan.\\line\n"
|
t MSG_186 "Rufus tidak memasang atau menjalankan servis di latar belakang. Oleh itu, semakan kemas kini hanya dijalankan apabila aplikasi utama berjalan.\\line\n"
|
||||||
"Akses internet diperlukan untuk menymeak untuk versi baru."
|
"Akses internet diperlukan untuk menymeak untuk versi baru."
|
||||||
|
t MSG_187 "Imej tidak sah untuk pilihan boot yang dipilih"
|
||||||
|
t MSG_188 "Imej tidak serasi dengan pilihan boot yang dipilih. Tolong gunakan imej lain atau pilih pilihan boot lain."
|
||||||
|
|
||||||
# Status messages - these messages will appear on the status bar
|
# Status messages - these messages will appear on the status bar
|
||||||
t MSG_201 "Sedang membatalkan - Sila tunggu..."
|
t MSG_201 "Sedang membatalkan - Sila tunggu..."
|
||||||
t MSG_202 "Mengimbas imej ISO..."
|
t MSG_202 "Mengimbas imej..."
|
||||||
t MSG_203 "Imbasan imej ISO gagal"
|
t MSG_203 "Imbasan imej gagal"
|
||||||
# Parameter: the name of an obsolete Syslinux .c32 module. eg: "Obsolete vesamenu.c32 detected"
|
# Parameter: the name of an obsolete Syslinux .c32 module. eg: "Obsolete vesamenu.c32 detected"
|
||||||
t MSG_204 "%s usang dikesan"
|
t MSG_204 "%s usang dikesan"
|
||||||
# Display the name of the ISO selected. eg: "Using ISO: en_win7_x64_sp1.iso"
|
# Display the name of the ISO selected. eg: "Using ISO: en_win7_x64_sp1.iso"
|
||||||
|
|
@ -5938,10 +5954,12 @@ t MSG_256 "Pengesanan cakera palsu"
|
||||||
t MSG_257 "Sokongan Joliet"
|
t MSG_257 "Sokongan Joliet"
|
||||||
t MSG_258 "Sokongan Rock Ridge"
|
t MSG_258 "Sokongan Rock Ridge"
|
||||||
t MSG_259 "Paksa kemas kini"
|
t MSG_259 "Paksa kemas kini"
|
||||||
|
t MSG_260 "Mampatan NTFS"
|
||||||
|
t MSG_261 "Menulis imej: %0.1f%% selesai"
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
l "pl-PL" "Polish (Polski)" 0x0415
|
l "pl-PL" "Polish (Polski)" 0x0415
|
||||||
v 1.0.10
|
v 1.0.11
|
||||||
b "en-US"
|
b "en-US"
|
||||||
# my info: 15.02.2014,16:14
|
# my info: 15.02.2014,16:14
|
||||||
|
|
||||||
|
|
@ -6069,7 +6087,7 @@ t MSG_007 "Anuluj"
|
||||||
t MSG_008 "Tak"
|
t MSG_008 "Tak"
|
||||||
t MSG_009 "Nie"
|
t MSG_009 "Nie"
|
||||||
t MSG_010 "Znaleziono uskodzone sektory"
|
t MSG_010 "Znaleziono uskodzone sektory"
|
||||||
t MSG_011 "Sprawdzanie zakończone: znaleziono %u uskodzone sektory(ów)\n"
|
t MSG_011 "Sprawdzanie zakończone: znaleziono %d uskodzone sektory(ów)\n"
|
||||||
" %d błędów odczytu\n %d błędów zapisu\n %d błędy(ów) uszkodzeń\n"
|
" %d błędów odczytu\n %d błędów zapisu\n %d błędy(ów) uszkodzeń\n"
|
||||||
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
||||||
t MSG_012 "%s\nRaport szczegółowy jest dostępny w:\n%s"
|
t MSG_012 "%s\nRaport szczegółowy jest dostępny w:\n%s"
|
||||||
|
|
@ -6266,7 +6284,7 @@ t MSG_178 "Dodatkowe Prawa Autorskie:"
|
||||||
t MSG_179 "Polityka Aktualizacji:"
|
t MSG_179 "Polityka Aktualizacji:"
|
||||||
t MSG_180 "Jeśli pozwolisz temu programowi szukać aktualizacji aplikacji, "
|
t MSG_180 "Jeśli pozwolisz temu programowi szukać aktualizacji aplikacji, "
|
||||||
"Zgadzasz się na to, że następujące informacje mogą być zbierane na naszy, serwerze (serwerach):"
|
"Zgadzasz się na to, że następujące informacje mogą być zbierane na naszy, serwerze (serwerach):"
|
||||||
t MSG_181 "Architektura i wersja twojego systemy operacyjnego"
|
t MSG_181 "Architektura i wersja twojego systemu operacyjnego"
|
||||||
t MSG_182 "Wersja aplikacji z której korzystasz"
|
t MSG_182 "Wersja aplikacji z której korzystasz"
|
||||||
t MSG_183 "Twój adres IP"
|
t MSG_183 "Twój adres IP"
|
||||||
t MSG_184 "W celu generowania poufnych statystyk używania , możemy trzymać zebrane informacje, "
|
t MSG_184 "W celu generowania poufnych statystyk używania , możemy trzymać zebrane informacje, "
|
||||||
|
|
@ -6490,7 +6508,7 @@ t MSG_007 "Cancelar"
|
||||||
t MSG_008 "Sim"
|
t MSG_008 "Sim"
|
||||||
t MSG_009 "Não"
|
t MSG_009 "Não"
|
||||||
t MSG_010 "Foram encontrados erros no disco"
|
t MSG_010 "Foram encontrados erros no disco"
|
||||||
t MSG_011 "Verificação completa: %u erros encontrados\n"
|
t MSG_011 "Verificação completa: %d erros encontrados\n"
|
||||||
" %d erros de leitura\n %d erros de escrita\n %d erros de corrupção\n"
|
" %d erros de leitura\n %d erros de escrita\n %d erros de corrupção\n"
|
||||||
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
||||||
t MSG_012 "%s\nMais informações disponíveis em:\n%s"
|
t MSG_012 "%s\nMais informações disponíveis em:\n%s"
|
||||||
|
|
@ -6880,7 +6898,7 @@ t MSG_007 "Anulează"
|
||||||
t MSG_008 "Da"
|
t MSG_008 "Da"
|
||||||
t MSG_009 "Nu"
|
t MSG_009 "Nu"
|
||||||
t MSG_010 "Bloc defect Detectat"
|
t MSG_010 "Bloc defect Detectat"
|
||||||
t MSG_011 "Verificare completă: s-au găsit %u blocuri defecte\n"
|
t MSG_011 "Verificare completă: s-au găsit %d blocuri defecte\n"
|
||||||
" %d erori de citire\n %d erori de scriere\n %d erori de corupţie\n"
|
" %d erori de citire\n %d erori de scriere\n %d erori de corupţie\n"
|
||||||
t MSG_012 "%s\n Un raport mai detaliat este disponibil în:\n%s"
|
t MSG_012 "%s\n Un raport mai detaliat este disponibil în:\n%s"
|
||||||
t MSG_013 "Invalid"
|
t MSG_013 "Invalid"
|
||||||
|
|
@ -7134,7 +7152,7 @@ t MSG_260 "Compresie NTFS"
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
l "ru-RU" "Russian (Русский)" 0x0419, 0x0819
|
l "ru-RU" "Russian (Русский)" 0x0419, 0x0819
|
||||||
v 1.0.10
|
v 1.0.11
|
||||||
b "en-US"
|
b "en-US"
|
||||||
|
|
||||||
# Main dialog
|
# Main dialog
|
||||||
|
|
@ -7271,7 +7289,7 @@ t MSG_007 "Отмена"
|
||||||
t MSG_008 "Да"
|
t MSG_008 "Да"
|
||||||
t MSG_009 "Нет"
|
t MSG_009 "Нет"
|
||||||
t MSG_010 "Найдены плохие блоки"
|
t MSG_010 "Найдены плохие блоки"
|
||||||
t MSG_011 "Проверка закончена: %u плохих блоков найдено\n"
|
t MSG_011 "Проверка закончена: %d плохих блоков найдено\n"
|
||||||
" %d ошибок чтения\n %d ошибок записи\n %d поврежденных блоков\n"
|
" %d ошибок чтения\n %d ошибок записи\n %d поврежденных блоков\n"
|
||||||
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
||||||
t MSG_012 "%s\nБолее подробный отчет можно найти в:\n%s"
|
t MSG_012 "%s\nБолее подробный отчет можно найти в:\n%s"
|
||||||
|
|
@ -7540,7 +7558,7 @@ t MSG_261 "Запись образа: %0.1f%% выполнено"
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
l "sl-SI" "Slovene (Slovenščina)" 0x0424
|
l "sl-SI" "Slovene (Slovenščina)" 0x0424
|
||||||
v 1.0.10
|
v 1.0.11
|
||||||
b "en-US"
|
b "en-US"
|
||||||
|
|
||||||
# Main dialog
|
# Main dialog
|
||||||
|
|
@ -7655,7 +7673,7 @@ t MSG_007 "Prekliči"
|
||||||
t MSG_008 "Da"
|
t MSG_008 "Da"
|
||||||
t MSG_009 "Ne"
|
t MSG_009 "Ne"
|
||||||
t MSG_010 "Slabi bloki najdeni"
|
t MSG_010 "Slabi bloki najdeni"
|
||||||
t MSG_011 "Preizkus končan: %u slabih blokov najdenih\n"
|
t MSG_011 "Preizkus končan: %d slabih blokov najdenih\n"
|
||||||
" Napak pri branju: %d\n Napak pri pisanju: %d\n %d corruption error(s)\n"
|
" Napak pri branju: %d\n Napak pri pisanju: %d\n %d corruption error(s)\n"
|
||||||
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
||||||
t MSG_012 "%s\nPodrobnejše poročilo lahko najdete v datoteki\n%s"
|
t MSG_012 "%s\nPodrobnejše poročilo lahko najdete v datoteki\n%s"
|
||||||
|
|
@ -8068,7 +8086,7 @@ t MSG_007 "Cancelar"
|
||||||
t MSG_008 "Sí"
|
t MSG_008 "Sí"
|
||||||
t MSG_009 "No"
|
t MSG_009 "No"
|
||||||
t MSG_010 "Se encontraron bloques defectuosos"
|
t MSG_010 "Se encontraron bloques defectuosos"
|
||||||
t MSG_011 "Verificación completa: se encontraron %u bloques dañados\n"
|
t MSG_011 "Verificación completa: se encontraron %d bloques dañados\n"
|
||||||
" %d errores de lectura\n %d errores de escritura\n %d errores de corrupción\n"
|
" %d errores de lectura\n %d errores de escritura\n %d errores de corrupción\n"
|
||||||
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
||||||
t MSG_012 "%s\nEl informe detallado se puede encontrar en:\n%s"
|
t MSG_012 "%s\nEl informe detallado se puede encontrar en:\n%s"
|
||||||
|
|
@ -8469,7 +8487,7 @@ t MSG_007 "Vazgeç"
|
||||||
t MSG_008 "Evet"
|
t MSG_008 "Evet"
|
||||||
t MSG_009 "Hayır"
|
t MSG_009 "Hayır"
|
||||||
t MSG_010 "Hatalı bloklar bulundu"
|
t MSG_010 "Hatalı bloklar bulundu"
|
||||||
t MSG_011 "Denetim Tamamlandı: %u hatalı blok bulundu\n"
|
t MSG_011 "Denetim Tamamlandı: %d hatalı blok bulundu\n"
|
||||||
" %d okuma hatası\n %d yazma hatası\n %d hata oluşumu\n"
|
" %d okuma hatası\n %d yazma hatası\n %d hata oluşumu\n"
|
||||||
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
# The following will contain the formatted message above as well as the name of the bad blocks logfile
|
||||||
t MSG_012 "%s\nDaha ayrıntılı rapor burada:\n%s"
|
t MSG_012 "%s\nDaha ayrıntılı rapor burada:\n%s"
|
||||||
|
|
|
||||||
19
src/drive.c
19
src/drive.c
|
|
@ -473,9 +473,8 @@ uint64_t GetDriveSize(DWORD DriveIndex)
|
||||||
BOOL r;
|
BOOL r;
|
||||||
HANDLE hPhysical;
|
HANDLE hPhysical;
|
||||||
DWORD size;
|
DWORD size;
|
||||||
BYTE geometry[128];
|
BYTE geometry[256];
|
||||||
void* disk_geometry = (void*)geometry;
|
PDISK_GEOMETRY_EX DiskGeometry = (PDISK_GEOMETRY_EX)(void*)geometry;
|
||||||
PDISK_GEOMETRY_EX DiskGeometry = (PDISK_GEOMETRY_EX)disk_geometry;
|
|
||||||
|
|
||||||
hPhysical = GetPhysicalHandle(DriveIndex, FALSE, FALSE);
|
hPhysical = GetPhysicalHandle(DriveIndex, FALSE, FALSE);
|
||||||
if (hPhysical == INVALID_HANDLE_VALUE)
|
if (hPhysical == INVALID_HANDLE_VALUE)
|
||||||
|
|
@ -588,11 +587,9 @@ int GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSyst
|
||||||
BOOL r, hasRufusExtra = FALSE;
|
BOOL r, hasRufusExtra = FALSE;
|
||||||
HANDLE hPhysical;
|
HANDLE hPhysical;
|
||||||
DWORD size;
|
DWORD size;
|
||||||
BYTE geometry[128], layout[4096], part_type;
|
BYTE geometry[256], layout[4096], part_type;
|
||||||
void* disk_geometry = (void*)geometry;
|
PDISK_GEOMETRY_EX DiskGeometry = (PDISK_GEOMETRY_EX)(void*)geometry;
|
||||||
void* drive_layout = (void*)layout;
|
PDRIVE_LAYOUT_INFORMATION_EX DriveLayout = (PDRIVE_LAYOUT_INFORMATION_EX)(void*)layout;
|
||||||
PDISK_GEOMETRY_EX DiskGeometry = (PDISK_GEOMETRY_EX)disk_geometry;
|
|
||||||
PDRIVE_LAYOUT_INFORMATION_EX DriveLayout = (PDRIVE_LAYOUT_INFORMATION_EX)drive_layout;
|
|
||||||
char* volume_name;
|
char* volume_name;
|
||||||
char tmp[256];
|
char tmp[256];
|
||||||
DWORD i, nb_partitions = 0;
|
DWORD i, nb_partitions = 0;
|
||||||
|
|
@ -618,7 +615,8 @@ int GetDrivePartitionData(DWORD DriveIndex, char* FileSystemName, DWORD FileSyst
|
||||||
}
|
}
|
||||||
SelectedDrive.DiskSize = DiskGeometry->DiskSize.QuadPart;
|
SelectedDrive.DiskSize = DiskGeometry->DiskSize.QuadPart;
|
||||||
memcpy(&SelectedDrive.Geometry, &DiskGeometry->Geometry, sizeof(DISK_GEOMETRY));
|
memcpy(&SelectedDrive.Geometry, &DiskGeometry->Geometry, sizeof(DISK_GEOMETRY));
|
||||||
uprintf("Sector Size: %d bytes\n", DiskGeometry->Geometry.BytesPerSector);
|
uprintf("Disk type: %s, Sector Size: %d bytes\n", (DiskGeometry->Geometry.MediaType == FixedMedia)?"Fixed":"Removable",
|
||||||
|
DiskGeometry->Geometry.BytesPerSector);
|
||||||
uprintf("Cylinders: %lld, TracksPerCylinder: %d, SectorsPerTrack: %d\n",
|
uprintf("Cylinders: %lld, TracksPerCylinder: %d, SectorsPerTrack: %d\n",
|
||||||
DiskGeometry->Geometry.Cylinders, DiskGeometry->Geometry.TracksPerCylinder, DiskGeometry->Geometry.SectorsPerTrack);
|
DiskGeometry->Geometry.Cylinders, DiskGeometry->Geometry.TracksPerCylinder, DiskGeometry->Geometry.SectorsPerTrack);
|
||||||
|
|
||||||
|
|
@ -903,7 +901,8 @@ BOOL CreatePartition(HANDLE hDrive, int partition_style, int file_system, BOOL m
|
||||||
case FS_NTFS:
|
case FS_NTFS:
|
||||||
case FS_EXFAT:
|
case FS_EXFAT:
|
||||||
case FS_UDF:
|
case FS_UDF:
|
||||||
DriveLayoutEx.PartitionEntry[0].Mbr.PartitionType = 0x07; // NTFS
|
case FS_REFS:
|
||||||
|
DriveLayoutEx.PartitionEntry[0].Mbr.PartitionType = 0x07;
|
||||||
break;
|
break;
|
||||||
case FS_FAT32:
|
case FS_FAT32:
|
||||||
DriveLayoutEx.PartitionEntry[0].Mbr.PartitionType = 0x0c; // FAT32 LBA
|
DriveLayoutEx.PartitionEntry[0].Mbr.PartitionType = 0x0c; // FAT32 LBA
|
||||||
|
|
|
||||||
45
src/format.c
45
src/format.c
|
|
@ -116,7 +116,7 @@ static BOOLEAN __stdcall FormatExCallback(FILE_SYSTEM_CALLBACK_COMMAND Command,
|
||||||
PrintStatus(0, TRUE, MSG_218, nb_steps[fs_index], nb_steps[fs_index]);
|
PrintStatus(0, TRUE, MSG_218, nb_steps[fs_index], nb_steps[fs_index]);
|
||||||
UpdateProgress(OP_CREATE_FS, 100.0f);
|
UpdateProgress(OP_CREATE_FS, 100.0f);
|
||||||
if(*(BOOLEAN*)pData == FALSE) {
|
if(*(BOOLEAN*)pData == FALSE) {
|
||||||
uprintf("Error while formatting.\n");
|
uprintf("Error while formatting");
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_GEN_FAILURE;
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_GEN_FAILURE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
@ -128,27 +128,29 @@ static BOOLEAN __stdcall FormatExCallback(FILE_SYSTEM_CALLBACK_COMMAND Command,
|
||||||
// uprintf("Volume size: %s MB\n", (char*)(LONG_PTR)(*(ULONG32*)pData));
|
// uprintf("Volume size: %s MB\n", (char*)(LONG_PTR)(*(ULONG32*)pData));
|
||||||
break;
|
break;
|
||||||
case FCC_INCOMPATIBLE_FILE_SYSTEM:
|
case FCC_INCOMPATIBLE_FILE_SYSTEM:
|
||||||
uprintf("Incompatible File System\n");
|
uprintf("Incompatible File System");
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|APPERR(ERROR_INCOMPATIBLE_FS);
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|APPERR(ERROR_INCOMPATIBLE_FS);
|
||||||
break;
|
break;
|
||||||
case FCC_ACCESS_DENIED:
|
case FCC_ACCESS_DENIED:
|
||||||
uprintf("Access denied\n");
|
uprintf("Access denied");
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_ACCESS_DENIED;
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_ACCESS_DENIED;
|
||||||
break;
|
break;
|
||||||
case FCC_MEDIA_WRITE_PROTECTED:
|
case FCC_MEDIA_WRITE_PROTECTED:
|
||||||
uprintf("Media is write protected\n");
|
uprintf("Media is write protected");
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_WRITE_PROTECT;
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_WRITE_PROTECT;
|
||||||
break;
|
break;
|
||||||
case FCC_VOLUME_IN_USE:
|
case FCC_VOLUME_IN_USE:
|
||||||
uprintf("Volume is in use\n");
|
uprintf("Volume is in use");
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_DEVICE_IN_USE;
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_DEVICE_IN_USE;
|
||||||
break;
|
break;
|
||||||
|
case FCC_DEVICE_NOT_READY:
|
||||||
|
uprintf("The device is not ready");
|
||||||
case FCC_CANT_QUICK_FORMAT:
|
case FCC_CANT_QUICK_FORMAT:
|
||||||
uprintf("Cannot quick format this volume\n");
|
uprintf("Cannot quick format this volume");
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|APPERR(ERROR_CANT_QUICK_FORMAT);
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|APPERR(ERROR_CANT_QUICK_FORMAT);
|
||||||
break;
|
break;
|
||||||
case FCC_BAD_LABEL:
|
case FCC_BAD_LABEL:
|
||||||
uprintf("Bad label\n");
|
uprintf("Bad label");
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_LABEL_TOO_LONG;
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_LABEL_TOO_LONG;
|
||||||
break;
|
break;
|
||||||
case FCC_OUTPUT:
|
case FCC_OUTPUT:
|
||||||
|
|
@ -156,19 +158,19 @@ static BOOLEAN __stdcall FormatExCallback(FILE_SYSTEM_CALLBACK_COMMAND Command,
|
||||||
break;
|
break;
|
||||||
case FCC_CLUSTER_SIZE_TOO_BIG:
|
case FCC_CLUSTER_SIZE_TOO_BIG:
|
||||||
case FCC_CLUSTER_SIZE_TOO_SMALL:
|
case FCC_CLUSTER_SIZE_TOO_SMALL:
|
||||||
uprintf("Unsupported cluster size\n");
|
uprintf("Unsupported cluster size");
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|APPERR(ERROR_INVALID_CLUSTER_SIZE);
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|APPERR(ERROR_INVALID_CLUSTER_SIZE);
|
||||||
break;
|
break;
|
||||||
case FCC_VOLUME_TOO_BIG:
|
case FCC_VOLUME_TOO_BIG:
|
||||||
case FCC_VOLUME_TOO_SMALL:
|
case FCC_VOLUME_TOO_SMALL:
|
||||||
uprintf("Volume is too %s\n", FCC_VOLUME_TOO_BIG?"big":"small");
|
uprintf("Volume is too %s", FCC_VOLUME_TOO_BIG?"big":"small");
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|APPERR(ERROR_INVALID_VOLUME_SIZE);
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|APPERR(ERROR_INVALID_VOLUME_SIZE);
|
||||||
case FCC_NO_MEDIA_IN_DRIVE:
|
case FCC_NO_MEDIA_IN_DRIVE:
|
||||||
uprintf("No media in drive\n");
|
uprintf("No media in drive");
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_NO_MEDIA_IN_DRIVE;
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_NO_MEDIA_IN_DRIVE;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
uprintf("FormatExCallback: received unhandled command %X\n", Command);
|
uprintf("FormatExCallback: Received unhandled command 0x02%X - aborting", Command);
|
||||||
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_NOT_SUPPORTED;
|
FormatStatus = ERROR_SEVERITY_ERROR|FAC(FACILITY_STORAGE)|ERROR_NOT_SUPPORTED;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -371,6 +373,8 @@ static BOOL FormatFAT32(DWORD DriveIndex)
|
||||||
HANDLE hLogicalVolume;
|
HANDLE hLogicalVolume;
|
||||||
DWORD cbRet;
|
DWORD cbRet;
|
||||||
DISK_GEOMETRY dgDrive;
|
DISK_GEOMETRY dgDrive;
|
||||||
|
BYTE geometry_ex[256]; // DISK_GEOMETRY_EX is variable size
|
||||||
|
PDISK_GEOMETRY_EX xdgDrive = (PDISK_GEOMETRY_EX)(void*)geometry_ex;
|
||||||
PARTITION_INFORMATION piDrive;
|
PARTITION_INFORMATION piDrive;
|
||||||
PARTITION_INFORMATION_EX xpiDrive;
|
PARTITION_INFORMATION_EX xpiDrive;
|
||||||
// Recommended values
|
// Recommended values
|
||||||
|
|
@ -417,21 +421,28 @@ static BOOL FormatFAT32(DWORD DriveIndex)
|
||||||
// Work out drive params
|
// Work out drive params
|
||||||
if (!DeviceIoControl (hLogicalVolume, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0, &dgDrive,
|
if (!DeviceIoControl (hLogicalVolume, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0, &dgDrive,
|
||||||
sizeof(dgDrive), &cbRet, NULL)) {
|
sizeof(dgDrive), &cbRet, NULL)) {
|
||||||
die("Failed to get device geometry\n", ERROR_NOT_SUPPORTED);
|
if (!DeviceIoControl (hLogicalVolume, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, NULL, 0, xdgDrive,
|
||||||
|
sizeof(geometry_ex), &cbRet, NULL)) {
|
||||||
|
uprintf("IOCTL_DISK_GET_DRIVE_GEOMETRY error: %s\n", WindowsErrorString());
|
||||||
|
die("Failed to get device geometry (both regular and _ex)\n", ERROR_NOT_SUPPORTED);
|
||||||
|
}
|
||||||
|
memcpy(&dgDrive, &xdgDrive->Geometry, sizeof(dgDrive));
|
||||||
}
|
}
|
||||||
if (IS_ERROR(FormatStatus)) goto out;
|
if (IS_ERROR(FormatStatus)) goto out;
|
||||||
if (!DeviceIoControl (hLogicalVolume, IOCTL_DISK_GET_PARTITION_INFO, NULL, 0, &piDrive,
|
if (!DeviceIoControl (hLogicalVolume, IOCTL_DISK_GET_PARTITION_INFO, NULL, 0, &piDrive,
|
||||||
sizeof(piDrive), &cbRet, NULL)) {
|
sizeof(piDrive), &cbRet, NULL)) {
|
||||||
if (!DeviceIoControl (hLogicalVolume, IOCTL_DISK_GET_PARTITION_INFO_EX, NULL, 0, &xpiDrive,
|
if (!DeviceIoControl (hLogicalVolume, IOCTL_DISK_GET_PARTITION_INFO_EX, NULL, 0, &xpiDrive,
|
||||||
sizeof(xpiDrive), &cbRet, NULL)) {
|
sizeof(xpiDrive), &cbRet, NULL)) {
|
||||||
die("Failed to get partition info (both regular and _ex)", ERROR_NOT_SUPPORTED);
|
uprintf("IOCTL_DISK_GET_PARTITION_INFO error: %s\n", WindowsErrorString());
|
||||||
|
die("Failed to get partition info (both regular and _ex)\n", ERROR_NOT_SUPPORTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
memset (&piDrive, 0, sizeof(piDrive));
|
memset(&piDrive, 0, sizeof(piDrive));
|
||||||
piDrive.StartingOffset.QuadPart = xpiDrive.StartingOffset.QuadPart;
|
piDrive.StartingOffset.QuadPart = xpiDrive.StartingOffset.QuadPart;
|
||||||
piDrive.PartitionLength.QuadPart = xpiDrive.PartitionLength.QuadPart;
|
piDrive.PartitionLength.QuadPart = xpiDrive.PartitionLength.QuadPart;
|
||||||
piDrive.HiddenSectors = (DWORD) (xpiDrive.StartingOffset.QuadPart / dgDrive.BytesPerSector);
|
piDrive.HiddenSectors = (DWORD) (xpiDrive.StartingOffset.QuadPart / dgDrive.BytesPerSector);
|
||||||
}
|
}
|
||||||
|
if (IS_ERROR(FormatStatus)) goto out;
|
||||||
|
|
||||||
BytesPerSect = dgDrive.BytesPerSector;
|
BytesPerSect = dgDrive.BytesPerSector;
|
||||||
|
|
||||||
|
|
@ -450,7 +461,7 @@ static BOOL FormatFAT32(DWORD DriveIndex)
|
||||||
// There would need to be an extra field in the FSInfo sector, and the old sector count could
|
// There would need to be an extra field in the FSInfo sector, and the old sector count could
|
||||||
// be set to 0xffffffff. This is non standard though, the Windows FAT driver FASTFAT.SYS won't
|
// be set to 0xffffffff. This is non standard though, the Windows FAT driver FASTFAT.SYS won't
|
||||||
// understand this. Perhaps a future version of FAT32 and FASTFAT will handle this.
|
// understand this. Perhaps a future version of FAT32 and FASTFAT will handle this.
|
||||||
die ("This drive is too big for FAT32 - max 2TB supported\n", APPERR(ERROR_INVALID_VOLUME_SIZE));
|
die("This drive is too big for FAT32 - max 2TB supported\n", APPERR(ERROR_INVALID_VOLUME_SIZE));
|
||||||
}
|
}
|
||||||
|
|
||||||
pFAT32BootSect = (FAT_BOOTSECTOR32*) calloc(BytesPerSect, 1);
|
pFAT32BootSect = (FAT_BOOTSECTOR32*) calloc(BytesPerSect, 1);
|
||||||
|
|
@ -1304,12 +1315,12 @@ DWORD WINAPI FormatThread(void* param)
|
||||||
_unlink(logfile);
|
_unlink(logfile);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
uprintf("Bad Blocks: Check completed, %u bad block%s found. (%d/%d/%d errors)\n",
|
uprintf("Bad Blocks: Check completed, %d bad block%s found. (%d/%d/%d errors)\n",
|
||||||
report.bb_count, (report.bb_count==1)?"":"s",
|
report.bb_count, (report.bb_count==1)?"":"s",
|
||||||
report.num_read_errors, report.num_write_errors, report.num_corruption_errors);
|
report.num_read_errors, report.num_write_errors, report.num_corruption_errors);
|
||||||
r = IDOK;
|
r = IDOK;
|
||||||
if (report.bb_count) {
|
if (report.bb_count) {
|
||||||
bb_msg = lmprintf(MSG_011, report.num_read_errors, report.num_write_errors,
|
bb_msg = lmprintf(MSG_011, report.bb_count, report.num_read_errors, report.num_write_errors,
|
||||||
report.num_corruption_errors);
|
report.num_corruption_errors);
|
||||||
fprintf(log_fd, bb_msg);
|
fprintf(log_fd, bb_msg);
|
||||||
GetLocalTime(<);
|
GetLocalTime(<);
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ typedef enum {
|
||||||
FCC_UNKNOWN15,
|
FCC_UNKNOWN15,
|
||||||
FCC_UNKNOWN16,
|
FCC_UNKNOWN16,
|
||||||
FCC_UNKNOWN17,
|
FCC_UNKNOWN17,
|
||||||
FCC_UNKNOWN18,
|
FCC_DEVICE_NOT_READY,
|
||||||
FCC_CHECKDISK_PROGRESS,
|
FCC_CHECKDISK_PROGRESS,
|
||||||
FCC_UNKNOWN1A,
|
FCC_UNKNOWN1A,
|
||||||
FCC_UNKNOWN1B,
|
FCC_UNKNOWN1B,
|
||||||
|
|
|
||||||
111
src/rufus.c
111
src/rufus.c
|
|
@ -107,7 +107,7 @@ typedef ULONG (WINAPI *SHChangeNotifyRegister_t)(
|
||||||
const MY_SHChangeNotifyEntry *pshcne
|
const MY_SHChangeNotifyEntry *pshcne
|
||||||
);
|
);
|
||||||
|
|
||||||
const char* FileSystemLabel[FS_MAX] = { "FAT", "FAT32", "NTFS", "UDF", "exFAT" };
|
const char* FileSystemLabel[FS_MAX] = { "FAT", "FAT32", "NTFS", "UDF", "exFAT", "ReFS" };
|
||||||
// Number of steps for each FS for FCC_STRUCTURE_PROGRESS
|
// Number of steps for each FS for FCC_STRUCTURE_PROGRESS
|
||||||
const int nb_steps[FS_MAX] = { 5, 5, 12, 1, 10 };
|
const int nb_steps[FS_MAX] = { 5, 5, 12, 1, 10 };
|
||||||
static const char* PartitionTypeLabel[2] = { "MBR", "GPT" };
|
static const char* PartitionTypeLabel[2] = { "MBR", "GPT" };
|
||||||
|
|
@ -310,6 +310,12 @@ static BOOL DefineClusterSizes(void)
|
||||||
SelectedDrive.ClusterSize[FS_UDF].Allowed = 0x00000100;
|
SelectedDrive.ClusterSize[FS_UDF].Allowed = 0x00000100;
|
||||||
SelectedDrive.ClusterSize[FS_UDF].Default = 1;
|
SelectedDrive.ClusterSize[FS_UDF].Default = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ReFS (only supported for Windows 8.1 and later and for fixed disks)
|
||||||
|
if ((nWindowsVersion >= WINDOWS_8_1_OR_LATER) && (SelectedDrive.Geometry.MediaType == FixedMedia)) {
|
||||||
|
SelectedDrive.ClusterSize[FS_REFS].Allowed = 0x00000100;
|
||||||
|
SelectedDrive.ClusterSize[FS_REFS].Default = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
|
@ -391,8 +397,6 @@ static BOOL SetDriveInfo(int ComboIndex)
|
||||||
SelectedDrive.DeviceNumber = (DWORD)ComboBox_GetItemData(hDeviceList, ComboIndex);
|
SelectedDrive.DeviceNumber = (DWORD)ComboBox_GetItemData(hDeviceList, ComboIndex);
|
||||||
|
|
||||||
SelectedDrive.nPartitions = GetDrivePartitionData(SelectedDrive.DeviceNumber, fs_type, sizeof(fs_type));
|
SelectedDrive.nPartitions = GetDrivePartitionData(SelectedDrive.DeviceNumber, fs_type, sizeof(fs_type));
|
||||||
if (SelectedDrive.nPartitions == 0)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
if (!DefineClusterSizes()) {
|
if (!DefineClusterSizes()) {
|
||||||
uprintf("No file system is selectable for this drive\n");
|
uprintf("No file system is selectable for this drive\n");
|
||||||
|
|
@ -627,20 +631,18 @@ static BOOL GetUSBDevices(DWORD devnum)
|
||||||
{
|
{
|
||||||
// The first two are standard Microsoft drivers (including the Windows 8 UASP one).
|
// The first two are standard Microsoft drivers (including the Windows 8 UASP one).
|
||||||
// The rest are the vendor UASP drivers I know of so far - list may be incomplete!
|
// The rest are the vendor UASP drivers I know of so far - list may be incomplete!
|
||||||
// The last is Microsofts VHD Mount driver to mount a VHD to a drive letter.
|
const char* storage_name[] = { "USBSTOR", "UASPSTOR", "VUSBSTOR", "ETRONSTOR" };
|
||||||
const char* usbstor_name[] = { "USBSTOR", "UASPSTOR", "VUSBSTOR", "EtronSTOR", "vhdmp" };
|
|
||||||
const char* scsi_name = "SCSI";
|
const char* scsi_name = "SCSI";
|
||||||
// Microsoft VHD Loopback Controller name
|
const char* vhd_name[] = { "Microsoft Virtual Disk", "Msft Virtual Disk SCSI Disk Device" };
|
||||||
const char* msvhd_name = "MsVhdHba";
|
|
||||||
char letter_name[] = " (?:)";
|
char letter_name[] = " (?:)";
|
||||||
BOOL found = FALSE, is_SCSI, is_UASP, is_MSVHD;
|
BOOL found = FALSE, is_SCSI, is_UASP, is_VHD;
|
||||||
HDEVINFO dev_info = NULL;
|
HDEVINFO dev_info = NULL;
|
||||||
SP_DEVINFO_DATA dev_info_data;
|
SP_DEVINFO_DATA dev_info_data;
|
||||||
SP_DEVICE_INTERFACE_DATA devint_data;
|
SP_DEVICE_INTERFACE_DATA devint_data;
|
||||||
PSP_DEVICE_INTERFACE_DETAIL_DATA_A devint_detail_data;
|
PSP_DEVICE_INTERFACE_DETAIL_DATA_A devint_detail_data;
|
||||||
DEVINST parent_inst, device_inst;
|
DEVINST parent_inst, device_inst;
|
||||||
DWORD size, i, j, k, datatype, drive_index;
|
DWORD size, i, j, k, datatype, drive_index;
|
||||||
ULONG list_size[ARRAYSIZE(usbstor_name)], full_list_size;
|
ULONG list_size[ARRAYSIZE(storage_name)], full_list_size;
|
||||||
HANDLE hDrive;
|
HANDLE hDrive;
|
||||||
LONG maxwidth = 0;
|
LONG maxwidth = 0;
|
||||||
RECT rect;
|
RECT rect;
|
||||||
|
|
@ -663,10 +665,10 @@ static BOOL GetUSBDevices(DWORD devnum)
|
||||||
}
|
}
|
||||||
|
|
||||||
full_list_size = 0;
|
full_list_size = 0;
|
||||||
for (s=0; s<ARRAYSIZE(usbstor_name); s++) {
|
for (s=0; s<ARRAYSIZE(storage_name); s++) {
|
||||||
// Get a list of hardware IDs for all USB storage devices
|
// Get a list of hardware IDs for all USB storage devices
|
||||||
// This will be used to retrieve the VID:PID of our devices
|
// This will be used to retrieve the VID:PID of our devices
|
||||||
CM_Get_Device_ID_List_SizeA(&list_size[s], usbstor_name[s], CM_GETIDLIST_FILTER_SERVICE);
|
CM_Get_Device_ID_List_SizeA(&list_size[s], storage_name[s], CM_GETIDLIST_FILTER_SERVICE);
|
||||||
if (list_size[s] != 0)
|
if (list_size[s] != 0)
|
||||||
full_list_size += list_size[s]-1; // remove extra NUL terminator
|
full_list_size += list_size[s]-1; // remove extra NUL terminator
|
||||||
}
|
}
|
||||||
|
|
@ -680,9 +682,9 @@ static BOOL GetUSBDevices(DWORD devnum)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build a single list from all the storage enumerators we know of
|
// Build a single list from all the storage enumerators we know of
|
||||||
for (s=0, i=0; s<ARRAYSIZE(usbstor_name); s++) {
|
for (s=0, i=0; s<ARRAYSIZE(storage_name); s++) {
|
||||||
if (list_size[s] > 1) {
|
if (list_size[s] > 1) {
|
||||||
CM_Get_Device_ID_ListA(usbstor_name[s], &devid_list[i], list_size[s], CM_GETIDLIST_FILTER_SERVICE);
|
CM_Get_Device_ID_ListA(storage_name[s], &devid_list[i], list_size[s], CM_GETIDLIST_FILTER_SERVICE);
|
||||||
// list_size is sometimes larger than required thus we need to find the real end
|
// list_size is sometimes larger than required thus we need to find the real end
|
||||||
for (i += list_size[s]; i > 2; i--) {
|
for (i += list_size[s]; i > 2; i--) {
|
||||||
if ((devid_list[i-2] != '\0') && (devid_list[i-1] == '\0') && (devid_list[i] == '\0'))
|
if ((devid_list[i-2] != '\0') && (devid_list[i-1] == '\0') && (devid_list[i] == '\0'))
|
||||||
|
|
@ -701,58 +703,63 @@ static BOOL GetUSBDevices(DWORD devnum)
|
||||||
}
|
}
|
||||||
// UASP drives are listed under SCSI (along with regular SYSTEM drives => "DANGER, WILL ROBINSON!!!")
|
// UASP drives are listed under SCSI (along with regular SYSTEM drives => "DANGER, WILL ROBINSON!!!")
|
||||||
is_SCSI = (safe_stricmp(buffer, scsi_name) == 0);
|
is_SCSI = (safe_stricmp(buffer, scsi_name) == 0);
|
||||||
if ((safe_stricmp(buffer, usbstor_name[0]) != 0) && (!is_SCSI))
|
if ((safe_stricmp(buffer, storage_name[0]) != 0) && (!is_SCSI))
|
||||||
continue;
|
continue;
|
||||||
memset(buffer, 0, sizeof(buffer));
|
memset(buffer, 0, sizeof(buffer));
|
||||||
vid = 0; pid = 0;
|
vid = 0; pid = 0;
|
||||||
is_UASP = FALSE;
|
is_UASP = FALSE, is_VHD = FALSE;
|
||||||
is_MSVHD = FALSE;
|
|
||||||
if (!SetupDiGetDeviceRegistryPropertyA(dev_info, &dev_info_data, SPDRP_FRIENDLYNAME,
|
if (!SetupDiGetDeviceRegistryPropertyA(dev_info, &dev_info_data, SPDRP_FRIENDLYNAME,
|
||||||
&datatype, (LPBYTE)buffer, sizeof(buffer), &size)) {
|
&datatype, (LPBYTE)buffer, sizeof(buffer), &size)) {
|
||||||
uprintf("SetupDiGetDeviceRegistryProperty (Friendly Name) failed: %s\n", WindowsErrorString());
|
uprintf("SetupDiGetDeviceRegistryProperty (Friendly Name) failed: %s\n", WindowsErrorString());
|
||||||
// We can afford a failure on this call - just replace the name with "USB Storage Device (Generic)"
|
// We can afford a failure on this call - just replace the name with "USB Storage Device (Generic)"
|
||||||
safe_strcpy(buffer, sizeof(buffer), lmprintf(MSG_045));
|
safe_strcpy(buffer, sizeof(buffer), lmprintf(MSG_045));
|
||||||
} else {
|
} else {
|
||||||
// Get the VID:PID of the device. We could avoid doing this lookup every time by keeping
|
for (j = 0; j < ARRAYSIZE(vhd_name); j++) {
|
||||||
// a lookup table, but there shouldn't be that many USB storage devices connected...
|
if (safe_stricmp(buffer, vhd_name[j]) == 0) {
|
||||||
for (devid = devid_list; *devid; devid += strlen(devid) + 1) {
|
is_VHD = TRUE;
|
||||||
if ( (CM_Locate_DevNodeA(&parent_inst, devid, 0) == 0)
|
}
|
||||||
&& (CM_Get_Child(&device_inst, parent_inst, 0) == 0)
|
}
|
||||||
&& (device_inst == dev_info_data.DevInst) ) {
|
if (is_VHD == FALSE) {
|
||||||
BOOL post_backslash = FALSE;
|
// Get the VID:PID of the device. We could avoid doing this lookup every time by keeping
|
||||||
// If we're not dealing with the USBSTOR part of our list, then this is an UASP device
|
// a lookup table, but there shouldn't be that many USB storage devices connected...
|
||||||
is_UASP = ((((uintptr_t)devid)+2) >= ((uintptr_t)devid_list)+list_size[0]);
|
for (devid = devid_list; *devid; devid += strlen(devid) + 1) {
|
||||||
for (j=0, k=0; (j<strlen(devid))&&(k<2); j++) {
|
if ( (CM_Locate_DevNodeA(&parent_inst, devid, 0) == 0)
|
||||||
// The ID is in the form USB_VENDOR_BUSID\VID_xxxx&PID_xxxx\...
|
&& (CM_Get_Child(&device_inst, parent_inst, 0) == 0)
|
||||||
if (devid[j] == '\\')
|
&& (device_inst == dev_info_data.DevInst) ) {
|
||||||
post_backslash = TRUE;
|
BOOL post_backslash = FALSE;
|
||||||
// Check if this is a VHD
|
// If we're not dealing with the USBSTOR part of our list, then this is an UASP device
|
||||||
is_MSVHD = (safe_strstr(devid, msvhd_name) != NULL);
|
is_UASP = ((((uintptr_t)devid)+2) >= ((uintptr_t)devid_list)+list_size[0]);
|
||||||
if (is_MSVHD)
|
for (j=0, k=0; (j<strlen(devid))&&(k<2); j++) {
|
||||||
break;
|
// The ID is in the form USB_VENDOR_BUSID\VID_xxxx&PID_xxxx\...
|
||||||
if (!post_backslash)
|
if (devid[j] == '\\')
|
||||||
continue;
|
post_backslash = TRUE;
|
||||||
if (devid[j] == '_') {
|
if (!post_backslash)
|
||||||
pid = (uint16_t)strtoul(&devid[j+1], NULL, 16);
|
continue;
|
||||||
// We could have used a vid_pid[] table, but keeping vid/pid separate is clearer
|
if (devid[j] == '_') {
|
||||||
if (k++==0) vid = pid;
|
pid = (uint16_t)strtoul(&devid[j+1], NULL, 16);
|
||||||
|
// We could have used a vid_pid[] table, but keeping vid/pid separate is clearer
|
||||||
|
if (k++==0) vid = pid;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((vid == 0) && (pid == 0) && !is_MSVHD) {
|
if (is_VHD) {
|
||||||
if (is_SCSI) {
|
uprintf("Found VHD device '%s'\n", buffer);
|
||||||
// If we have an SCSI drive and couldn't get a VID:PID, we are most likely
|
|
||||||
// dealing with a system drive => eliminate it!
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
safe_strcpy(str, sizeof(str), "????:????"); // Couldn't figure VID:PID
|
|
||||||
} else {
|
} else {
|
||||||
safe_sprintf(str, sizeof(str), "%04X:%04X", vid, pid);
|
if ((vid == 0) && (pid == 0)) {
|
||||||
|
if (is_SCSI) {
|
||||||
|
// If we have an SCSI drive and couldn't get a VID:PID, we are most likely
|
||||||
|
// dealing with a system drive => eliminate it!
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
safe_strcpy(str, sizeof(str), "????:????"); // Couldn't figure VID:PID
|
||||||
|
} else {
|
||||||
|
safe_sprintf(str, sizeof(str), "%04X:%04X", vid, pid);
|
||||||
|
}
|
||||||
|
uprintf("Found %s device '%s' (%s)\n", is_UASP?"UAS":"USB", buffer, str);
|
||||||
}
|
}
|
||||||
uprintf("Found %s device '%s' (%s)\n", is_UASP?"UAS":"USB", buffer, str);
|
|
||||||
|
|
||||||
devint_data.cbSize = sizeof(devint_data);
|
devint_data.cbSize = sizeof(devint_data);
|
||||||
hDrive = INVALID_HANDLE_VALUE;
|
hDrive = INVALID_HANDLE_VALUE;
|
||||||
devint_detail_data = NULL;
|
devint_detail_data = NULL;
|
||||||
|
|
@ -2024,8 +2031,8 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
SetClusterSizes(fs);
|
SetClusterSizes(fs);
|
||||||
// Disable/restore the quick format control depending on large FAT32
|
// Disable/restore the quick format control depending on large FAT32 or ReFS
|
||||||
if ((fs == FS_FAT32) && ((SelectedDrive.DiskSize > LARGE_FAT32_SIZE) || (force_large_fat32))) {
|
if ( ((fs == FS_FAT32) && ((SelectedDrive.DiskSize > LARGE_FAT32_SIZE) || (force_large_fat32))) || (fs == FS_REFS) ) {
|
||||||
if (IsWindowEnabled(GetDlgItem(hMainDialog, IDC_QUICKFORMAT))) {
|
if (IsWindowEnabled(GetDlgItem(hMainDialog, IDC_QUICKFORMAT))) {
|
||||||
uQFChecked = IsChecked(IDC_QUICKFORMAT);
|
uQFChecked = IsChecked(IDC_QUICKFORMAT);
|
||||||
CheckDlgButton(hMainDialog, IDC_QUICKFORMAT, BST_CHECKED);
|
CheckDlgButton(hMainDialog, IDC_QUICKFORMAT, BST_CHECKED);
|
||||||
|
|
@ -2048,7 +2055,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ((fs == FS_EXFAT) || (fs == FS_UDF)) {
|
if ((fs == FS_EXFAT) || (fs == FS_UDF) || (fs == FS_REFS)) {
|
||||||
if (IsWindowEnabled(hBoot)) {
|
if (IsWindowEnabled(hBoot)) {
|
||||||
// unlikely to be supported by BIOSes => don't bother
|
// unlikely to be supported by BIOSes => don't bother
|
||||||
IGNORE_RETVAL(ComboBox_SetCurSel(hBootType, 0));
|
IGNORE_RETVAL(ComboBox_SetCurSel(hBootType, 0));
|
||||||
|
|
|
||||||
|
|
@ -172,6 +172,7 @@ enum {
|
||||||
FS_NTFS,
|
FS_NTFS,
|
||||||
FS_UDF,
|
FS_UDF,
|
||||||
FS_EXFAT,
|
FS_EXFAT,
|
||||||
|
FS_REFS,
|
||||||
FS_MAX
|
FS_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
12
src/rufus.rc
12
src/rufus.rc
|
|
@ -32,7 +32,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||||
|
|
||||||
IDD_DIALOG DIALOGEX 12, 12, 206, 329
|
IDD_DIALOG DIALOGEX 12, 12, 206, 329
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Rufus 1.4.6.441"
|
CAPTION "Rufus 1.4.7.446"
|
||||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
BEGIN
|
BEGIN
|
||||||
DEFPUSHBUTTON "Start",IDC_START,94,291,50,14
|
DEFPUSHBUTTON "Start",IDC_START,94,291,50,14
|
||||||
|
|
@ -165,7 +165,7 @@ END
|
||||||
RTL_IDD_DIALOG DIALOGEX 12, 12, 206, 329
|
RTL_IDD_DIALOG DIALOGEX 12, 12, 206, 329
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
EXSTYLE WS_EX_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL
|
EXSTYLE WS_EX_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL
|
||||||
CAPTION "Rufus 1.4.6.441"
|
CAPTION "Rufus 1.4.7.446"
|
||||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
BEGIN
|
BEGIN
|
||||||
DEFPUSHBUTTON "Start",IDC_START,94,291,50,14
|
DEFPUSHBUTTON "Start",IDC_START,94,291,50,14
|
||||||
|
|
@ -427,8 +427,8 @@ END
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1,4,6,441
|
FILEVERSION 1,4,7,446
|
||||||
PRODUCTVERSION 1,4,6,441
|
PRODUCTVERSION 1,4,7,446
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
|
|
@ -445,13 +445,13 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)"
|
VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)"
|
||||||
VALUE "FileDescription", "Rufus"
|
VALUE "FileDescription", "Rufus"
|
||||||
VALUE "FileVersion", "1.4.6.441"
|
VALUE "FileVersion", "1.4.7.446"
|
||||||
VALUE "InternalName", "Rufus"
|
VALUE "InternalName", "Rufus"
|
||||||
VALUE "LegalCopyright", "© 2011-2014 Pete Batard (GPL v3)"
|
VALUE "LegalCopyright", "© 2011-2014 Pete Batard (GPL v3)"
|
||||||
VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html"
|
VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html"
|
||||||
VALUE "OriginalFilename", "rufus.exe"
|
VALUE "OriginalFilename", "rufus.exe"
|
||||||
VALUE "ProductName", "Rufus"
|
VALUE "ProductName", "Rufus"
|
||||||
VALUE "ProductVersion", "1.4.6.441"
|
VALUE "ProductVersion", "1.4.7.446"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|
|
||||||
|
|
@ -196,6 +196,7 @@ char* SizeToHumanReadable(uint64_t size, BOOL log, BOOL fake_units)
|
||||||
const char* _StrError(DWORD error_code)
|
const char* _StrError(DWORD error_code)
|
||||||
{
|
{
|
||||||
if ( (!IS_ERROR(error_code)) || (SCODE_CODE(error_code) == ERROR_SUCCESS)) {
|
if ( (!IS_ERROR(error_code)) || (SCODE_CODE(error_code) == ERROR_SUCCESS)) {
|
||||||
|
// TODO: this message is wrong!
|
||||||
return lmprintf(MSG_044);
|
return lmprintf(MSG_044);
|
||||||
}
|
}
|
||||||
if (SCODE_FACILITY(error_code) != FACILITY_STORAGE) {
|
if (SCODE_FACILITY(error_code) != FACILITY_STORAGE) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue