[PATCH] attrib: Move implementation from cmd.exe to the standalone command (try 3)

Christian Costa titan.costa at wanadoo.fr
Sun Aug 28 04:41:59 CDT 2011


--

try3:
- fix /? option. This fixes cmd tests regression

try2:
- keep attrib infos for help command
- update po files

I added a stub last year to make an installer work but didn't know the command existed as a builtin in cmd.exe until Frédéric Delanoy told me. So here is a patch that takes what's in cmd.exe and move it to the standalone command. Some few code was taken from xcopy.
---
 configure.ac                |    2 
 po/ar.po                    |   45 ++++++++--
 po/bg.po                    |   45 ++++++++--
 po/ca.po                    |   43 +++++++---
 po/cs.po                    |   43 +++++++---
 po/da.po                    |   47 ++++++++---
 po/de.po                    |   47 ++++++++---
 po/el.po                    |   45 ++++++++--
 po/en.po                    |   47 ++++++++---
 po/en_US.po                 |   47 ++++++++---
 po/eo.po                    |   45 ++++++++--
 po/es.po                    |   47 ++++++++---
 po/fa.po                    |   45 ++++++++--
 po/fi.po                    |   45 ++++++++--
 po/fr.po                    |   47 ++++++++---
 po/he.po                    |   47 ++++++++---
 po/hi.po                    |   43 +++++++---
 po/hu.po                    |   45 ++++++++--
 po/it.po                    |   47 ++++++++---
 po/ja.po                    |   47 ++++++++---
 po/ko.po                    |   47 ++++++++---
 po/lt.po                    |   47 ++++++++---
 po/ml.po                    |   43 +++++++---
 po/nb_NO.po                 |   49 ++++++++---
 po/nl.po                    |   47 ++++++++---
 po/or.po                    |   43 +++++++---
 po/pa.po                    |   43 +++++++---
 po/pl.po                    |   47 ++++++++---
 po/pt_BR.po                 |   47 ++++++++---
 po/pt_PT.po                 |   49 ++++++++---
 po/rm.po                    |   45 ++++++++--
 po/ro.po                    |   47 ++++++++---
 po/ru.po                    |   47 ++++++++---
 po/sk.po                    |   45 ++++++++--
 po/sl.po                    |   49 ++++++++---
 po/sr_RS at cyrillic.po        |   45 ++++++++--
 po/sr_RS at latin.po           |   45 ++++++++--
 po/sv.po                    |   47 ++++++++---
 po/te.po                    |   43 +++++++---
 po/th.po                    |   45 ++++++++--
 po/tr.po                    |   49 ++++++++---
 po/uk.po                    |   47 ++++++++---
 po/wa.po                    |   45 ++++++++--
 po/wine.pot                 |   43 +++++++---
 po/zh_CN.po                 |   43 +++++++---
 po/zh_TW.po                 |   45 ++++++++--
 programs/attrib/Makefile.in |    4 +
 programs/attrib/attrib.c    |  190 +++++++++++++++++++++++++++++++++++++++++--
 programs/attrib/attrib.h    |   28 ++++++
 programs/attrib/attrib.rc   |   49 +++++++++++
 programs/cmd/builtins.c     |   83 -------------------
 programs/cmd/wcmd.h         |    1 
 programs/cmd/wcmdmain.c     |    3 -
 53 files changed, 1811 insertions(+), 608 deletions(-)
 create mode 100644 programs/attrib/attrib.h
 create mode 100644 programs/attrib/attrib.rc

diff --git a/configure.ac b/configure.ac
index ae89108..0f19f7c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2897,7 +2897,7 @@ WINE_CONFIG_MAKEFILE([libs/wine],,[install-dev,install-lib])
 WINE_CONFIG_MAKEFILE([libs/wpp])
 WINE_CONFIG_MAKEFILE([loader],,[install-lib,manpage])
 WINE_CONFIG_PROGRAM(aspnet_regiis,,[install])
-WINE_CONFIG_PROGRAM(attrib,,[install])
+WINE_CONFIG_PROGRAM(attrib,,[install,po])
 WINE_CONFIG_PROGRAM(cabarc,,[install])
 WINE_CONFIG_PROGRAM(cacls,,[install])
 WINE_CONFIG_PROGRAM(clock,,[install,po])
diff --git a/po/ar.po b/po/ar.po
index 4c19437..a8ef735 100644
--- a/po/ar.po
+++ b/po/ar.po
@@ -7550,6 +7550,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "تعذّر إيجاد '%s'."
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr ""
@@ -7964,12 +7998,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -7978,11 +8006,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "تعذّر إيجاد '%s'."
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/bg.po b/po/bg.po
index e754d78..4a277ff 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -7719,6 +7719,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "Файлът не е намерен"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr ""
@@ -8133,12 +8167,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -8147,11 +8175,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Файлът не е намерен"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/ca.po b/po/ca.po
index e533ce2..5c6dbf4 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -7467,6 +7467,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr ""
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr ""
@@ -7881,12 +7914,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -7895,10 +7922,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/cs.po b/po/cs.po
index 1460053..0406ff7 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -7936,6 +7936,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr ""
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&logové"
@@ -8504,12 +8537,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -8518,10 +8545,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/da.po b/po/da.po
index 13675f2..78ca582 100644
--- a/po/da.po
+++ b/po/da.po
@@ -7973,6 +7973,41 @@ msgstr "Løkke under håndtering af henvisninger"
 msgid "Referral hop limit exceeded"
 msgstr "Grænse for henvisnings hop overskredet"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Ikke implementeret endnu\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr "%s : Filen ikke fundet\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Analog"
@@ -8543,14 +8578,6 @@ msgstr "Mere..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Linie i batchfil muligvis forkortet. Using:\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Ikke implementeret endnu\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "Argument mangler\n"
@@ -8559,10 +8586,6 @@ msgstr "Argument mangler\n"
 msgid "Syntax error\n"
 msgstr "Syntaks fejl\n"
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr "%s : Filen ikke fundet\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "Ingen hjælp tilgængelig for %s\n"
diff --git a/po/de.po b/po/de.po
index ef69fa1..908b1bd 100644
--- a/po/de.po
+++ b/po/de.po
@@ -7845,6 +7845,41 @@ msgstr "Schleife während der Abarbeitung von Weiterleitungen"
 msgid "Referral hop limit exceeded"
 msgstr "Überschreitung der maximalen Anzahl von Weiterleitungen"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Noch nicht implementiert\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr "%s : Datei nicht gefunden\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&log"
@@ -8461,14 +8496,6 @@ msgstr ""
 "Die Zeile bei der Batchverarbeitung ist möglicherweise abgeschnitten. "
 "Benutze:\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Noch nicht implementiert\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "Argument fehlt\n"
@@ -8477,10 +8504,6 @@ msgstr "Argument fehlt\n"
 msgid "Syntax error\n"
 msgstr "Syntaxfehler\n"
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr "%s : Datei nicht gefunden\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "Hilfe für %s ist nicht verfügbar\n"
diff --git a/po/el.po b/po/el.po
index 7ff7d11..bf6c775 100644
--- a/po/el.po
+++ b/po/el.po
@@ -7600,6 +7600,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "Το αρχείο δε βρέθηκε"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr ""
@@ -8013,12 +8047,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -8027,11 +8055,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Το αρχείο δε βρέθηκε"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/en.po b/po/en.po
index 894e08d..899e7d5 100644
--- a/po/en.po
+++ b/po/en.po
@@ -7604,6 +7604,41 @@ msgstr "Loop while handling referrals"
 msgid "Referral hop limit exceeded"
 msgstr "Referral hop limit exceeded"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Not Yet Implemented\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr "%s: File Not Found\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&log"
@@ -8176,14 +8211,6 @@ msgstr "More..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Line in Batch processing possibly truncated. Using:\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Not Yet Implemented\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "Argument missing\n"
@@ -8192,10 +8219,6 @@ msgstr "Argument missing\n"
 msgid "Syntax error\n"
 msgstr "Syntax error\n"
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr "%s: File Not Found\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "No help available for %s\n"
diff --git a/po/en_US.po b/po/en_US.po
index f176738..76c8668 100644
--- a/po/en_US.po
+++ b/po/en_US.po
@@ -7702,6 +7702,41 @@ msgstr "Loop while handling referrals"
 msgid "Referral hop limit exceeded"
 msgstr "Referral hop limit exceeded"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Not Yet Implemented\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr "%s: File Not Found\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&log"
@@ -8282,14 +8317,6 @@ msgstr "More..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Line in Batch processing possibly truncated. Using:\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Not Yet Implemented\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "Argument missing\n"
@@ -8298,10 +8325,6 @@ msgstr "Argument missing\n"
 msgid "Syntax error\n"
 msgstr "Syntax error\n"
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr "%s: File Not Found\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "No help available for %s\n"
diff --git a/po/eo.po b/po/eo.po
index ce13138..5761dc9 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7718,6 +7718,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "Dosiero ne estis trovita"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&loga"
@@ -8137,12 +8171,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -8151,11 +8179,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Dosiero ne estis trovita"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/es.po b/po/es.po
index 6d194e3..72487e0 100644
--- a/po/es.po
+++ b/po/es.po
@@ -8130,6 +8130,41 @@ msgstr "Bucle al manejar remisiones"
 msgid "Referral hop limit exceeded"
 msgstr "Límite de saltos de remisiones excedido"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"No implementado\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr "%s : Archivo no encontrado\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Analógico"
@@ -8717,14 +8752,6 @@ msgstr "Más..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Línea en procesamiento por lotes posiblemente truncada. Usando:\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"No implementado\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "Argumento faltante\n"
@@ -8733,10 +8760,6 @@ msgstr "Argumento faltante\n"
 msgid "Syntax error\n"
 msgstr "Error de sintaxis\n"
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr "%s : Archivo no encontrado\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "No hay ayuda disponible para %s\n"
diff --git a/po/fa.po b/po/fa.po
index 351ff54..5d4f24c 100644
--- a/po/fa.po
+++ b/po/fa.po
@@ -7552,6 +7552,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "'%s' پیدا نشد."
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr ""
@@ -7966,12 +8000,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -7980,11 +8008,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "'%s' پیدا نشد."
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/fi.po b/po/fi.po
index 2bfc935..a8bfdcf 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -7794,6 +7794,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "Tiedostoa ei löydy"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Analoginen"
@@ -8213,12 +8247,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -8227,11 +8255,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Tiedostoa ei löydy"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/fr.po b/po/fr.po
index db31a0b..5748aa1 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7764,6 +7764,41 @@ msgstr "Boucle lors du traitement des référants"
 msgid "Referral hop limit exceeded"
 msgstr "Limite du nombre de référants dépassée"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Pas encore implémenté\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr "%s : fichier non trouvé\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&logique"
@@ -8372,14 +8407,6 @@ msgstr "Plus..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Ligne du processus batch probablement tronquée. Utilisation de :\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Pas encore implémenté\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "Argument manquant\n"
@@ -8388,10 +8415,6 @@ msgstr "Argument manquant\n"
 msgid "Syntax error\n"
 msgstr "Erreur de syntaxe\n"
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr "%s : fichier non trouvé\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "Pas d'aide disponible pour %s\n"
diff --git a/po/he.po b/po/he.po
index 29d8917..47d9ca9 100644
--- a/po/he.po
+++ b/po/he.po
@@ -7799,6 +7799,41 @@ msgstr "לולאה בעת טיפול בהפניות"
 msgid "Referral hop limit exceeded"
 msgstr "מגבלת הקפצת ההפניות בחריגה"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Not Yet Implemented\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr "%s: File Not Found\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&אנלוגי"
@@ -8380,14 +8415,6 @@ msgstr "More..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Line in Batch processing possibly truncated. Using:\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Not Yet Implemented\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "Argument missing\n"
@@ -8396,10 +8423,6 @@ msgstr "Argument missing\n"
 msgid "Syntax error\n"
 msgstr "Syntax error\n"
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr "%s: File Not Found\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "No help available for %s\n"
diff --git a/po/hi.po b/po/hi.po
index f11c5e6..f6461cb 100644
--- a/po/hi.po
+++ b/po/hi.po
@@ -7463,6 +7463,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr ""
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "एनालॉग (&l)"
@@ -7877,12 +7910,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -7891,10 +7918,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/hu.po b/po/hu.po
index ea2c6d0..888687d 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -7989,6 +7989,40 @@ msgstr "Ciklus a beszámolók kezelése közben"
 msgid "Referral hop limit exceeded"
 msgstr "Beszámolási ugrás limit túllépve"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "Fájl nem található"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&lóg"
@@ -8408,12 +8442,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -8422,11 +8450,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Fájl nem található"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/it.po b/po/it.po
index 31dc20f..d50807c 100644
--- a/po/it.po
+++ b/po/it.po
@@ -8037,6 +8037,41 @@ msgstr "Loop nel gestire i rinvii"
 msgid "Referral hop limit exceeded"
 msgstr "Ecceduto il limite di salti di rinvio"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Non ancora implementato\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr "%s : File non trovato\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&logico"
@@ -8631,14 +8666,6 @@ msgstr "Di più..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Linea nell'elaborazione Batch probabilmente troncata. Uso:\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Non ancora implementato\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "Manca un parametro\n"
@@ -8647,10 +8674,6 @@ msgstr "Manca un parametro\n"
 msgid "Syntax error\n"
 msgstr "Errore di sintassi\n"
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr "%s : File non trovato\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "Nessun aiuto disponibile per %s\n"
diff --git a/po/ja.po b/po/ja.po
index 98adfe3..6112348 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -7694,6 +7694,41 @@ msgstr "紹介の取り扱い中にループです"
 msgid "Referral hop limit exceeded"
 msgstr "紹介のホップ数が限界を超えました"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"まだ実装されていません\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr "%s: ファイルが見つかりません\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "アナログ(&L)"
@@ -8271,14 +8306,6 @@ msgstr "More..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "バッチ処理の行が切り落とされた可能性があります。対象行:\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"まだ実装されていません\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "引数がありません\n"
@@ -8287,10 +8314,6 @@ msgstr "引数がありません\n"
 msgid "Syntax error\n"
 msgstr "文法エラー\n"
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr "%s: ファイルが見つかりません\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "%s に対するヘルプはありません\n"
diff --git a/po/ko.po b/po/ko.po
index 0c73211..602c5e4 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -7671,6 +7671,41 @@ msgstr "리퍼럴을 다루는 동안의 루프"
 msgid "Referral hop limit exceeded"
 msgstr "리퍼럴 홉 제한에 도달했습니다"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"아직 구현되지 않았습니다\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr "%s :파일을 찾을 수 없습니다\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "아날로그(&L)"
@@ -8247,14 +8282,6 @@ msgstr "더 많이..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "배치 작업의 줄은 아마도 불완전한 것 같습니다. 사용법:\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"아직 구현되지 않았습니다\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "인수가 없습니다\n"
@@ -8263,10 +8290,6 @@ msgstr "인수가 없습니다\n"
 msgid "Syntax error\n"
 msgstr "문법 오류\n"
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr "%s :파일을 찾을 수 없습니다\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "%s를 위한 어떠한 도움말도 찾을 수 없습니다\n"
diff --git a/po/lt.po b/po/lt.po
index 04f389d..fc7244e 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7718,6 +7718,41 @@ msgstr "Aptiktas ciklas apdorojant perdavimus"
 msgid "Referral hop limit exceeded"
 msgstr "Viršyta perdavimo šuolių riba"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Dar nerealizuota\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr "%s: failas nerastas\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&loginis"
@@ -8297,14 +8332,6 @@ msgstr "Daugiau..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Paketinio apdorojimo eilutė galimai nukirsta. Naudojama:\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Dar nerealizuota\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "Trūksta argumento\n"
@@ -8313,10 +8340,6 @@ msgstr "Trūksta argumento\n"
 msgid "Syntax error\n"
 msgstr "Sintaksės klaida\n"
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr "%s: failas nerastas\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "Nėra informacijos apie %s\n"
diff --git a/po/ml.po b/po/ml.po
index e681cd8..d0d469c 100644
--- a/po/ml.po
+++ b/po/ml.po
@@ -7463,6 +7463,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr ""
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "_അനലോഗ്"
@@ -7877,12 +7910,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -7891,10 +7918,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/nb_NO.po b/po/nb_NO.po
index bbc39c4..c54d60e 100644
--- a/po/nb_NO.po
+++ b/po/nb_NO.po
@@ -7975,6 +7975,42 @@ msgstr "Løkke under håndtering av henvisninger"
 msgid "Referral hop limit exceeded"
 msgstr "Grense for henvisningshopp overskredet"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Not Yet Implemented\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "%s : File Not Found\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&log"
@@ -8549,14 +8585,6 @@ msgstr "Mer..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Line in Batch processing possibly truncated. Using:\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Not Yet Implemented\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "Argument missing\n"
@@ -8565,11 +8593,6 @@ msgstr "Argument missing\n"
 msgid "Syntax error\n"
 msgstr "Syntax error\n"
 
-#: cmd.rc:280
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "%s : File Not Found\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "No help available for %s\n"
diff --git a/po/nl.po b/po/nl.po
index 36dc585..c8ff9ff 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -7844,6 +7844,41 @@ msgstr "Lus gevonden bij het verwerken van verwijzingen"
 msgid "Referral hop limit exceeded"
 msgstr "Overschrijding van limiet op verwijzingen"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Nog niet geïmplementeerd\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr "%s : Bestand Niet Gevonden\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Analoog"
@@ -8435,14 +8470,6 @@ msgstr "Meer..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Regel in Batch proces mogelijk afgebroken. We gebruiken:\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Nog niet geïmplementeerd\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "Argument ontbreekt\n"
@@ -8451,10 +8478,6 @@ msgstr "Argument ontbreekt\n"
 msgid "Syntax error\n"
 msgstr "Fout in de syntax\n"
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr "%s : Bestand Niet Gevonden\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "Geen help beschikbaar voor %s\n"
diff --git a/po/or.po b/po/or.po
index ec70efb..a4e222b 100644
--- a/po/or.po
+++ b/po/or.po
@@ -7463,6 +7463,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr ""
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "ଆନାଲଗ ‍‌(&l)"
@@ -7877,12 +7910,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -7891,10 +7918,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/pa.po b/po/pa.po
index 4a5d96c..83e3575 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -7463,6 +7463,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr ""
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "ਐਨਾਲਾਗ(&l)"
@@ -7877,12 +7910,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -7891,10 +7918,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/pl.po b/po/pl.po
index 835afda..8f929b1 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -7735,6 +7735,41 @@ msgstr "Pętla przed obsługą odwołań"
 msgid "Referral hop limit exceeded"
 msgstr "Przekroczono limit skoków odwołań"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Jeszcze niezaimplementowane\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr "%s : Plik nie znaleziony\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&logowy"
@@ -8300,14 +8335,6 @@ msgstr "Więcej..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Linia przy przetwarzaniu pliku bat prawdopodobnie obcięta. Używam:\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Jeszcze niezaimplementowane\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "Brakuje argumentu\n"
@@ -8316,10 +8343,6 @@ msgstr "Brakuje argumentu\n"
 msgid "Syntax error\n"
 msgstr "Błąd składni\n"
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr "%s : Plik nie znaleziony\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "Plik pomocy nie istnieje dla %s\n"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 74eddb1..88e6d04 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -8000,6 +8000,41 @@ msgstr "Loop enquanto resolve referências"
 msgid "Referral hop limit exceeded"
 msgstr "Limite de salto de referências excedido"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Ainda não implementado\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr "%s : Arquivo Não Encontrado\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Analógico"
@@ -8578,14 +8613,6 @@ msgstr "Mais..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Linha no processamento do Batch possivelmente truncada. Usando:\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Ainda não implementado\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "Faltando argumento\n"
@@ -8594,10 +8621,6 @@ msgstr "Faltando argumento\n"
 msgid "Syntax error\n"
 msgstr "Erro de sintaxe\n"
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr "%s : Arquivo Não Encontrado\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "Sem ajuda disponível para %s\n"
diff --git a/po/pt_PT.po b/po/pt_PT.po
index 129463a..2ca19b8 100644
--- a/po/pt_PT.po
+++ b/po/pt_PT.po
@@ -8041,6 +8041,42 @@ msgstr "Ciclo enquanto resolve referências"
 msgid "Referral hop limit exceeded"
 msgstr "Limite de salto de referências excedido"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Not Yet Implemented\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "%s : File Not Found\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Analógico"
@@ -8625,14 +8661,6 @@ msgstr "More..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Line in Batch processing possibly truncated. Using:\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Not Yet Implemented\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "Argument missing\n"
@@ -8641,11 +8669,6 @@ msgstr "Argument missing\n"
 msgid "Syntax error\n"
 msgstr "Syntax error\n"
 
-#: cmd.rc:280
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "%s : File Not Found\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "No help available for %s\n"
diff --git a/po/rm.po b/po/rm.po
index 8e57c3b..35ba6a5 100644
--- a/po/rm.po
+++ b/po/rm.po
@@ -7510,6 +7510,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:277
+#, fuzzy
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr "Na implementa"
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr ""
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr ""
@@ -7926,13 +7960,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-#, fuzzy
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr "Na implementa"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -7941,10 +7968,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/ro.po b/po/ro.po
index a1d81d5..ef25b3e 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -8294,6 +8294,41 @@ msgstr "Buclă la gestionarea referenților"
 msgid "Referral hop limit exceeded"
 msgstr "Limită număr referenți depășită"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Încă neimplementat\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr "%s : fișier negăsit\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&logic"
@@ -8867,14 +8902,6 @@ msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 "Linie posibil trunchiată în procesarea fișierului batch. Se utilizează:\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Încă neimplementat\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "Argument lipsă\n"
@@ -8883,10 +8910,6 @@ msgstr "Argument lipsă\n"
 msgid "Syntax error\n"
 msgstr "Eroare de sintaxă\n"
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr "%s : fișier negăsit\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "Nu există ajutor pentru %s\n"
diff --git a/po/ru.po b/po/ru.po
index 3c64854..2871715 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -7708,6 +7708,41 @@ msgstr "Зацикливание при обработке ссылок"
 msgid "Referral hop limit exceeded"
 msgstr "Предел числа пересылки ссылок превышен"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Ещё не выполнено\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr "%s : Файл не найден\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Аналоговые"
@@ -8289,14 +8324,6 @@ msgstr "Дальше..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Строка в обрабатываемом bat-файле возможно урезана. Используем:\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Ещё не выполнено\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "Отсутствует аргумент\n"
@@ -8305,10 +8332,6 @@ msgstr "Отсутствует аргумент\n"
 msgid "Syntax error\n"
 msgstr "Синтаксическая ошибка\n"
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr "%s : Файл не найден\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "Справка для %s отсутствует\n"
diff --git a/po/sk.po b/po/sk.po
index c034059..30c345f 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -7757,6 +7757,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "Súbor nenájdený"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&lógové"
@@ -8171,12 +8205,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -8185,11 +8213,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Súbor nenájdený"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/sl.po b/po/sl.po
index c99089e..049b9eb 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -7730,6 +7730,42 @@ msgstr "Kroži v zanki med upravljanjem napotiteljev"
 msgid "Referral hop limit exceeded"
 msgstr "Meja preskoka napotitev je bila presežena"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Ni še podprto\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "%s : datoteke ni mogoče najti\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&logna ura"
@@ -8319,14 +8355,6 @@ msgstr "Več ..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Vrstica v paketni datoteki je morda skrajšana. Uporaba:\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Ni še podprto\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "Argument manjka\n"
@@ -8335,11 +8363,6 @@ msgstr "Argument manjka\n"
 msgid "Syntax error\n"
 msgstr "Skladenjska napaka\n"
 
-#: cmd.rc:280
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "%s : datoteke ni mogoče najti\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "Za ukaz %s pomoč ni na voljo\n"
diff --git a/po/sr_RS at cyrillic.po b/po/sr_RS at cyrillic.po
index e4a0392..060b94a 100644
--- a/po/sr_RS at cyrillic.po
+++ b/po/sr_RS at cyrillic.po
@@ -7866,6 +7866,40 @@ msgstr "Понављај при руковању с упућивачима"
 msgid "Referral hop limit exceeded"
 msgstr "Ограничење чвора упућивача је прекорачено"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "Датотека није пронађена"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Аналогни"
@@ -8280,12 +8314,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -8294,11 +8322,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Датотека није пронађена"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/sr_RS at latin.po b/po/sr_RS at latin.po
index ea06947..54b4ca8 100644
--- a/po/sr_RS at latin.po
+++ b/po/sr_RS at latin.po
@@ -7915,6 +7915,40 @@ msgstr "Ponavljaj pri rukovanju s upućivačima"
 msgid "Referral hop limit exceeded"
 msgstr "Ograničenje čvora upućivača je prekoračeno"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "Datoteka nije pronađena"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Analogni"
@@ -8329,12 +8363,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -8343,11 +8371,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Datoteka nije pronađena"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/sv.po b/po/sv.po
index 680f266..eec893c 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -7720,6 +7720,41 @@ msgstr "Loop while handling referrals"
 msgid "Referral hop limit exceeded"
 msgstr "Referral hop limit exceeded"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Ännu ej implementerat\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr "%s : kunde inte hitta filen\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&log"
@@ -8301,14 +8336,6 @@ msgstr "Mer..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "En rad i batch möjligtvis trunkerad. Använder:\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Ännu ej implementerat\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "Argument saknas\n"
@@ -8317,10 +8344,6 @@ msgstr "Argument saknas\n"
 msgid "Syntax error\n"
 msgstr "Syntaxfel\n"
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr "%s : kunde inte hitta filen\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "Ingen hjälp tillgänglig för %s\n"
diff --git a/po/te.po b/po/te.po
index 8577201..55d7c7f 100644
--- a/po/te.po
+++ b/po/te.po
@@ -7463,6 +7463,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr ""
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "ఎనలాగ్ (&l)"
@@ -7877,12 +7910,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -7891,10 +7918,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/th.po b/po/th.po
index bebd09d..dcbe916 100644
--- a/po/th.po
+++ b/po/th.po
@@ -7603,6 +7603,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "ไม่พบแฟ้ม"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "ธรรมดา"
@@ -8022,12 +8056,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -8036,11 +8064,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "ไม่พบแฟ้ม"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/tr.po b/po/tr.po
index a020ba2..13c285c 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -8093,6 +8093,42 @@ msgstr "Başvuruları işlerken dön"
 msgid "Referral hop limit exceeded"
 msgstr "Paketin gönderildiği yönlendirici sınırı aşıldı"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Not Yet Implemented\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "%s : File Not Found\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "Ana&log"
@@ -8667,14 +8703,6 @@ msgstr "More..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Line in Batch processing possibly truncated. Using:\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Not Yet Implemented\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "Argument missing\n"
@@ -8683,11 +8711,6 @@ msgstr "Argument missing\n"
 msgid "Syntax error\n"
 msgstr "Syntax error\n"
 
-#: cmd.rc:280
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "%s : File Not Found\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "No help available for %s\n"
diff --git a/po/uk.po b/po/uk.po
index b290a9f..0985475 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -7703,6 +7703,41 @@ msgstr "Зациклювання при обробці посилань"
 msgid "Referral hop limit exceeded"
 msgstr "Перевищено граничну кількість пересилання посилань"
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Ще не реалізовано\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr "%s : Файл не знайдено\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Анало&говий"
@@ -8277,14 +8312,6 @@ msgstr "Більше..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Рядок в обробці Пакету мабуть урізаний. Використовую:\n"
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Ще не реалізовано\n"
-"\n"
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr "Відсутній аргумент\n"
@@ -8293,10 +8320,6 @@ msgstr "Відсутній аргумент\n"
 msgid "Syntax error\n"
 msgstr "Синтаксична помилка\n"
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr "%s : Файл не знайдено\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr "Немає довідки для %s\n"
diff --git a/po/wa.po b/po/wa.po
index 123b956..19e786c 100644
--- a/po/wa.po
+++ b/po/wa.po
@@ -7568,6 +7568,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "'%s' pout nén esse trové."
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "&Analodjike"
@@ -7987,12 +8021,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -8001,11 +8029,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "'%s' pout nén esse trové."
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/wine.pot b/po/wine.pot
index 006546e..f456400 100644
--- a/po/wine.pot
+++ b/po/wine.pot
@@ -7440,6 +7440,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr ""
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr ""
@@ -7853,12 +7886,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -7867,10 +7894,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 5bd7e7b..559d164 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7848,6 +7848,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+msgid "%s: File Not Found\n"
+msgstr "找不到文件\n"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "模拟时钟(&L)"
@@ -8267,12 +8300,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -8281,10 +8308,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-msgid "%s: File Not Found\n"
-msgstr "找不到文件\n"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 2e33bc2..cf725f9 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -7905,6 +7905,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:277
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:280
+#, fuzzy
+msgid "%s: File Not Found\n"
+msgstr "找不到檔案"
+
+#: attrib.rc:48
+msgid ""
+"ATTRIB - Displays or changes file attributes.\n"
+"\n"
+"Syntax:\n"
+"ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n"
+"\t     [/S [/D]]\n"
+"\n"
+"Where:\n"
+"\n"
+"+   Sets an attribute.\n"
+"-   Clears an attribute.\n"
+"R   Read-only file attribute\n"
+"A   Archive file attribute.\n"
+"S   System file attribute.\n"
+"H   Hidden file attribute.\n"
+"[drive:][path][filename]\n"
+"Specifies a file or files for attrib to process.\n"
+"/S  Processes matching files in the current folder\n"
+"and all subfolders.\n"
+"/D  Processes folders as well.\n"
+msgstr ""
+
 #: clock.rc:29
 msgid "Ana&log"
 msgstr "模擬時鐘(&L)"
@@ -8324,12 +8358,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:277
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:278
 msgid "Argument missing\n"
 msgstr ""
@@ -8338,11 +8366,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:280
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "找不到檔案"
-
 #: cmd.rc:281
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/programs/attrib/Makefile.in b/programs/attrib/Makefile.in
index 895697c..53f6809 100644
--- a/programs/attrib/Makefile.in
+++ b/programs/attrib/Makefile.in
@@ -1,7 +1,11 @@
 EXTRADEFS = -DWINE_NO_UNICODE_MACROS
 MODULE    = attrib.exe
 APPMODE   = -mconsole -municode
+IMPORTS   = user32
 
 C_SRCS = attrib.c
 
+RC_SRCS = attrib.rc
+PO_SRCS = attrib.rc
+
 @MAKE_PROG_RULES@
diff --git a/programs/attrib/attrib.c b/programs/attrib/attrib.c
index 9cb9d9f..c6dde00 100644
--- a/programs/attrib/attrib.c
+++ b/programs/attrib/attrib.c
@@ -1,5 +1,7 @@
 /*
- * Copyright 2010 Christian Costa
+ * ATTRIB - Wine-compatible attrib program
+ *
+ * Copyright 2010-2011 Christian Costa
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -16,19 +18,191 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
-#include "wine/debug.h"
+#include <windows.h>
+#include <wine/debug.h>
+#include <wine/unicode.h>
+#include "attrib.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(attrib);
 
+/* =========================================================================
+ * Load a string from the resource file, handling any error
+ * Returns string retrieved from resource file
+ * ========================================================================= */
+static WCHAR *ATTRIB_LoadMessage(UINT id) {
+    static WCHAR msg[MAXSTRING];
+    const WCHAR failedMsg[]  = {'F', 'a', 'i', 'l', 'e', 'd', '!', 0};
+
+    if (!LoadStringW(GetModuleHandleW(NULL), id, msg, sizeof(msg)/sizeof(WCHAR))) {
+        WINE_FIXME("LoadString failed with %d\n", GetLastError());
+        lstrcpyW(msg, failedMsg);
+    }
+    return msg;
+}
+
+/* =========================================================================
+ * Output a formatted unicode string. Ideally this will go to the console
+ *  and hence required WriteConsoleW to output it, however if file i/o is
+ *  redirected, it needs to be WriteFile'd using OEM (not ANSI) format
+ * ========================================================================= */
+int ATTRIB_wprintf(const WCHAR *format, ...) {
+
+    static WCHAR *output_bufW = NULL;
+    static char  *output_bufA = NULL;
+    static BOOL  toConsole    = TRUE;
+    static BOOL  traceOutput  = FALSE;
+#define MAX_WRITECONSOLE_SIZE 65535
+
+    va_list parms;
+    DWORD   nOut;
+    int len;
+    DWORD   res = 0;
+
+    /*
+     * Allocate buffer to use when writing to console
+     * Note: Not freed - memory will be allocated once and released when
+     *         xcopy ends
+     */
+
+    if (!output_bufW) output_bufW = HeapAlloc(GetProcessHeap(), 0,
+                                              MAX_WRITECONSOLE_SIZE);
+    if (!output_bufW) {
+        WINE_FIXME("Out of memory - could not allocate 2 x 64K buffers\n");
+        return 0;
+    }
+
+    va_start(parms, format);
+    len = vsnprintfW(output_bufW, MAX_WRITECONSOLE_SIZE/sizeof(WCHAR), format, parms);
+    va_end(parms);
+    if (len < 0) {
+        WINE_FIXME("String too long.\n");
+        return 0;
+    }
+
+    /* Try to write as unicode all the time we think its a console */
+    if (toConsole) {
+        res = WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE),
+                            output_bufW, len, &nOut, NULL);
+    }
+
+    /* If writing to console has failed (ever) we assume its file
+       i/o so convert to OEM codepage and output                  */
+    if (!res) {
+        BOOL usedDefaultChar = FALSE;
+        DWORD convertedChars;
+
+        toConsole = FALSE;
+
+        /*
+         * Allocate buffer to use when writing to file. Not freed, as above
+         */
+        if (!output_bufA) output_bufA = HeapAlloc(GetProcessHeap(), 0,
+                                                MAX_WRITECONSOLE_SIZE);
+        if (!output_bufA) {
+          WINE_FIXME("Out of memory - could not allocate 2 x 64K buffers\n");
+          return 0;
+        }
+
+        /* Convert to OEM, then output */
+        convertedChars = WideCharToMultiByte(GetConsoleOutputCP(), 0, output_bufW,
+                            len, output_bufA, MAX_WRITECONSOLE_SIZE,
+                            "?", &usedDefaultChar);
+        WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), output_bufA, convertedChars,
+                  &nOut, FALSE);
+    }
+
+    /* Trace whether screen or console */
+    if (!traceOutput) {
+        WINE_TRACE("Writing to console? (%d)\n", toConsole);
+        traceOutput = TRUE;
+    }
+    return nOut;
+}
+
 int wmain(int argc, WCHAR *argv[])
 {
-    int i;
+    DWORD count;
+    HANDLE hff;
+    WIN32_FIND_DATAW fd;
+    WCHAR flags[9] = {' ',' ',' ',' ',' ',' ',' ',' ','\0'};
+    WCHAR name[128];
+    WCHAR *param = argc >= 2 ? argv[1] : NULL;
+    DWORD attrib_set = 0;
+    DWORD attrib_clear = 0;
+    WCHAR help_option[] = {'/','?'};
+
+    if (param && !strcmpW(param, help_option))
+    {
+        ATTRIB_wprintf(ATTRIB_LoadMessage(STRING_HELP));
+        return 0;
+    }
+
+    if (param && (param[0] == '+' || param[0] == '-')) {
+        DWORD attrib = 0;
+        /* FIXME: the real cmd can handle many more than two args; this should be in a loop */
+        switch (param[1]) {
+        case 'H': case 'h': attrib |= FILE_ATTRIBUTE_HIDDEN; break;
+        case 'S': case 's': attrib |= FILE_ATTRIBUTE_SYSTEM; break;
+        case 'R': case 'r': attrib |= FILE_ATTRIBUTE_READONLY; break;
+        case 'A': case 'a': attrib |= FILE_ATTRIBUTE_ARCHIVE; break;
+        default:
+            ATTRIB_wprintf(ATTRIB_LoadMessage(STRING_NYI));
+            return 0;
+        }
+        switch (param[0]) {
+        case '+': attrib_set = attrib; break;
+        case '-': attrib_clear = attrib; break;
+        }
+        param = argc >= 3 ? argv[2] : NULL;
+    }
+
+    if (!param || strlenW(param) == 0) {
+        static const WCHAR slashStarW[]  = {'\\','*','\0'};
+
+        GetCurrentDirectoryW(sizeof(name)/sizeof(WCHAR), name);
+        strcatW (name, slashStarW);
+    } else {
+        strcpyW(name, param);
+    }
 
-    WINE_FIXME("attrib.exe is currently only a stub command\n");
-    WINE_FIXME("cmdline:");
-    for (i = 0; i < argc; i++)
-        WINE_FIXME(" %s", wine_dbgstr_w(argv[i]));
-    WINE_FIXME("\n");
+    hff = FindFirstFileW(name, &fd);
+    if (hff == INVALID_HANDLE_VALUE) {
+        ATTRIB_wprintf(ATTRIB_LoadMessage(STRING_FILENOTFOUND), name);
+    }
+    else {
+        do {
+            if (attrib_set || attrib_clear) {
+                fd.dwFileAttributes &= ~attrib_clear;
+                fd.dwFileAttributes |= attrib_set;
+                if (!fd.dwFileAttributes)
+                    fd.dwFileAttributes |= FILE_ATTRIBUTE_NORMAL;
+                SetFileAttributesW(name, fd.dwFileAttributes);
+            } else {
+                static const WCHAR fmt[] = {'%','s',' ',' ',' ','%','s','\n','\0'};
+                if (fd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) {
+                    flags[0] = 'H';
+                }
+                if (fd.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM) {
+                    flags[1] = 'S';
+                }
+                if (fd.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE) {
+                    flags[2] = 'A';
+                }
+                if (fd.dwFileAttributes & FILE_ATTRIBUTE_READONLY) {
+                    flags[3] = 'R';
+                }
+                if (fd.dwFileAttributes & FILE_ATTRIBUTE_TEMPORARY) {
+                    flags[4] = 'T';
+                }
+                if (fd.dwFileAttributes & FILE_ATTRIBUTE_COMPRESSED) {
+                    flags[5] = 'C';
+                }
+                ATTRIB_wprintf(fmt, flags, fd.cFileName);
+                for (count=0; count < 8; count++) flags[count] = ' ';
+            }
+        } while (FindNextFileW(hff, &fd) != 0);
+    }
+    FindClose (hff);
 
     return 0;
 }
diff --git a/programs/attrib/attrib.h b/programs/attrib/attrib.h
new file mode 100644
index 0000000..41c0ae4
--- /dev/null
+++ b/programs/attrib/attrib.h
@@ -0,0 +1,28 @@
+/*
+ * ATTRIB - Wine-compatible attrib program
+ *
+ * Copyright 2011 Christian Costa
+ *
+ * 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 St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <windef.h>
+
+#define MAXSTRING 8192
+
+/* Translation ids */
+#define STRING_NYI              101
+#define STRING_FILENOTFOUND     102
+#define STRING_HELP             103
diff --git a/programs/attrib/attrib.rc b/programs/attrib/attrib.rc
new file mode 100644
index 0000000..478a196
--- /dev/null
+++ b/programs/attrib/attrib.rc
@@ -0,0 +1,49 @@
+/*
+ * ATTRIB - Wine-compatible attrib program
+ *
+ * Copyright 2011 Christian Costa
+ *
+ * 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 St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "attrib.h"
+
+LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
+
+STRINGTABLE
+{
+    STRING_NYI, "Not Yet Implemented\n\n"
+    STRING_FILENOTFOUND, "%s: File Not Found\n"
+    STRING_HELP,
+"ATTRIB - Displays or changes file attributes.\n\
+\n\
+Syntax:\n\
+ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [drive:][path][filename]\n\
+\t     [/S [/D]]\n\
+\n\
+Where:\n\
+\n\
+  +   Sets an attribute.\n\
+  -   Clears an attribute.\n\
+  R   Read-only file attribute\n\
+  A   Archive file attribute.\n\
+  S   System file attribute.\n\
+  H   Hidden file attribute.\n\
+  [drive:][path][filename]\n\
+      Specifies a file or files for attrib to process.\n\
+  /S  Processes matching files in the current folder\n\
+      and all subfolders.\n\
+  /D  Processes folders as well.\n"
+}
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c
index 5d7df82..56ea4bc 100644
--- a/programs/cmd/builtins.c
+++ b/programs/cmd/builtins.c
@@ -1996,89 +1996,6 @@ void WCMD_endlocal (void) {
 }
 
 /*****************************************************************************
- * WCMD_setshow_attrib
- *
- * Display and optionally sets DOS attributes on a file or directory
- *
- */
-
-void WCMD_setshow_attrib (void) {
-
-  DWORD count;
-  HANDLE hff;
-  WIN32_FIND_DATAW fd;
-  WCHAR flags[9] = {' ',' ',' ',' ',' ',' ',' ',' ','\0'};
-  WCHAR *name = param1;
-  DWORD attrib_set=0;
-  DWORD attrib_clear=0;
-
-  if (param1[0] == '+' || param1[0] == '-') {
-    DWORD attrib = 0;
-    /* FIXME: the real cmd can handle many more than two args; this should be in a loop */
-    switch (param1[1]) {
-    case 'H': case 'h': attrib |= FILE_ATTRIBUTE_HIDDEN; break;
-    case 'S': case 's': attrib |= FILE_ATTRIBUTE_SYSTEM; break;
-    case 'R': case 'r': attrib |= FILE_ATTRIBUTE_READONLY; break;
-    case 'A': case 'a': attrib |= FILE_ATTRIBUTE_ARCHIVE; break;
-    default:
-      WCMD_output (WCMD_LoadMessage(WCMD_NYI));
-      return;
-    }
-    switch (param1[0]) {
-    case '+': attrib_set = attrib; break;
-    case '-': attrib_clear = attrib; break;
-    }
-    name = param2;
-  }
-
-  if (strlenW(name) == 0) {
-    static const WCHAR slashStarW[]  = {'\\','*','\0'};
-
-    GetCurrentDirectoryW(sizeof(param2)/sizeof(WCHAR), name);
-    strcatW (name, slashStarW);
-  }
-
-  hff = FindFirstFileW(name, &fd);
-  if (hff == INVALID_HANDLE_VALUE) {
-    WCMD_output (WCMD_LoadMessage(WCMD_FILENOTFOUND), name);
-  }
-  else {
-    do {
-      if (attrib_set || attrib_clear) {
-        fd.dwFileAttributes &= ~attrib_clear;
-        fd.dwFileAttributes |= attrib_set;
-        if (!fd.dwFileAttributes)
-           fd.dwFileAttributes |= FILE_ATTRIBUTE_NORMAL;
-        SetFileAttributesW(name, fd.dwFileAttributes);
-      } else {
-        static const WCHAR fmt[] = {'%','s',' ',' ',' ','%','s','\n','\0'};
-        if (fd.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) {
-	  flags[0] = 'H';
-	}
-        if (fd.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM) {
-	  flags[1] = 'S';
-	}
-        if (fd.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE) {
-	  flags[2] = 'A';
-	}
-        if (fd.dwFileAttributes & FILE_ATTRIBUTE_READONLY) {
-	  flags[3] = 'R';
-	}
-        if (fd.dwFileAttributes & FILE_ATTRIBUTE_TEMPORARY) {
-	  flags[4] = 'T';
-	}
-        if (fd.dwFileAttributes & FILE_ATTRIBUTE_COMPRESSED) {
-	  flags[5] = 'C';
-	}
-        WCMD_output (fmt, flags, fd.cFileName);
-	for (count=0; count < 8; count++) flags[count] = ' ';
-      }
-    } while (FindNextFileW(hff, &fd) != 0);
-  }
-  FindClose (hff);
-}
-
-/*****************************************************************************
  * WCMD_setshow_default
  *
  *	Set/Show the current default directory
diff --git a/programs/cmd/wcmd.h b/programs/cmd/wcmd.h
index 885add4..e488935 100644
--- a/programs/cmd/wcmd.h
+++ b/programs/cmd/wcmd.h
@@ -80,7 +80,6 @@ void WCMD_remove_dir (WCHAR *command);
 void WCMD_rename (void);
 void WCMD_run_program (WCHAR *command, int called);
 void WCMD_setlocal (const WCHAR *command);
-void WCMD_setshow_attrib (void);
 void WCMD_setshow_date (void);
 void WCMD_setshow_default (const WCHAR *command);
 void WCMD_setshow_env (WCHAR *command);
diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c
index 04e1391..212f3b7 100644
--- a/programs/cmd/wcmdmain.c
+++ b/programs/cmd/wcmdmain.c
@@ -1437,9 +1437,6 @@ void WCMD_execute (const WCHAR *command, const WCHAR *redirects,
 
     switch (i) {
 
-      case WCMD_ATTRIB:
-        WCMD_setshow_attrib ();
-        break;
       case WCMD_CALL:
         WCMD_call (p);
         break;




More information about the wine-patches mailing list