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

Christian Costa titan.costa at wanadoo.fr
Tue Sep 6 02:35:02 CDT 2011


--

It's just a resend. The patch is unmodified, just rebased on latest git.

try4:
- add missing NULL ending character to help_option string

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 a2c3efe..893787c 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 59151ac..92e3cbe 100644
--- a/po/ar.po
+++ b/po/ar.po
@@ -7504,6 +7504,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, 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 ""
@@ -7946,12 +7980,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7960,11 +7988,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "تعذّر إيجاد '%s'."
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/bg.po b/po/bg.po
index 45aeedc..ec2076b 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -7673,6 +7673,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, 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 ""
@@ -8115,12 +8149,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8129,11 +8157,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Файлът не е намерен"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/ca.po b/po/ca.po
index 386b7cc..7dbe6d0 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -7421,6 +7421,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+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 ""
@@ -7863,12 +7896,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7877,10 +7904,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/cs.po b/po/cs.po
index 2e66b8e..ddb2c25 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -7890,6 +7890,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+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é"
@@ -8502,12 +8535,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8516,10 +8543,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/da.po b/po/da.po
index 672bc95..c595703 100644
--- a/po/da.po
+++ b/po/da.po
@@ -7932,6 +7932,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:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Ikke implementeret endnu\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+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"
@@ -8530,14 +8565,6 @@ msgstr "Mere..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Linie i batchfil muligvis forkortet. Using:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Ikke implementeret endnu\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument mangler\n"
@@ -8546,10 +8573,6 @@ msgstr "Argument mangler\n"
 msgid "Syntax error\n"
 msgstr "Syntaks fejl\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : Filen ikke fundet\n"
-
 #: cmd.rc:302
 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 184935d..86cf598 100644
--- a/po/de.po
+++ b/po/de.po
@@ -7726,6 +7726,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:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Noch nicht implementiert\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+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"
@@ -8371,14 +8406,6 @@ msgstr ""
 "Die Zeile bei der Batchverarbeitung ist möglicherweise abgeschnitten. "
 "Benutze:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Noch nicht implementiert\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument fehlt\n"
@@ -8387,10 +8414,6 @@ msgstr "Argument fehlt\n"
 msgid "Syntax error\n"
 msgstr "Syntaxfehler\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : Datei nicht gefunden\n"
-
 #: cmd.rc:302
 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 69d4016..cc7a3c4 100644
--- a/po/el.po
+++ b/po/el.po
@@ -7554,6 +7554,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, 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 ""
@@ -7995,12 +8029,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8009,11 +8037,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Το αρχείο δε βρέθηκε"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/en.po b/po/en.po
index 4afd164..8f9666e 100644
--- a/po/en.po
+++ b/po/en.po
@@ -7558,6 +7558,41 @@ msgstr "Loop while handling referrals"
 msgid "Referral hop limit exceeded"
 msgstr "Referral hop limit exceeded"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Not Yet Implemented\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+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"
@@ -8160,14 +8195,6 @@ msgstr "More..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Line in Batch processing possibly truncated. Using:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Not Yet Implemented\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument missing\n"
@@ -8176,10 +8203,6 @@ msgstr "Argument missing\n"
 msgid "Syntax error\n"
 msgstr "Syntax error\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s: File Not Found\n"
-
 #: cmd.rc:302
 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 50d6ba3..d04205b 100644
--- a/po/en_US.po
+++ b/po/en_US.po
@@ -7656,6 +7656,41 @@ msgstr "Loop while handling referrals"
 msgid "Referral hop limit exceeded"
 msgstr "Referral hop limit exceeded"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Not Yet Implemented\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+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"
@@ -8284,14 +8319,6 @@ msgstr "More..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Line in Batch processing possibly truncated. Using:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Not Yet Implemented\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument missing\n"
@@ -8300,10 +8327,6 @@ msgstr "Argument missing\n"
 msgid "Syntax error\n"
 msgstr "Syntax error\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s: File Not Found\n"
-
 #: cmd.rc:302
 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 4d900a7..8aea84e 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7675,6 +7675,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, 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"
@@ -8122,12 +8156,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8136,11 +8164,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Dosiero ne estis trovita"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/es.po b/po/es.po
index 57df4e2..440b7be 100644
--- a/po/es.po
+++ b/po/es.po
@@ -8088,6 +8088,41 @@ msgstr "Bucle al manejar remisiones"
 msgid "Referral hop limit exceeded"
 msgstr "Límite de saltos de remisiones excedido"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"No implementado\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+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"
@@ -8703,14 +8738,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:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"No implementado\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argumento faltante\n"
@@ -8719,10 +8746,6 @@ msgstr "Argumento faltante\n"
 msgid "Syntax error\n"
 msgstr "Error de sintaxis\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : Archivo no encontrado\n"
-
 #: cmd.rc:302
 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 5599a0d..0f9dec73 100644
--- a/po/fa.po
+++ b/po/fa.po
@@ -7506,6 +7506,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, 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 ""
@@ -7948,12 +7982,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7962,11 +7990,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "'%s' پیدا نشد."
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/fi.po b/po/fi.po
index cf17142..eca2a30 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -7751,6 +7751,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, 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"
@@ -8198,12 +8232,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8212,11 +8240,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Tiedostoa ei löydy"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/fr.po b/po/fr.po
index 23c6c0d..fff667f 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7724,6 +7724,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:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Pas encore implémenté\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+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"
@@ -8384,14 +8419,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:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Pas encore implémenté\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument manquant\n"
@@ -8400,10 +8427,6 @@ msgstr "Argument manquant\n"
 msgid "Syntax error\n"
 msgstr "Erreur de syntaxe\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : fichier non trouvé\n"
-
 #: cmd.rc:302
 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 41f5f92..2f6d719 100644
--- a/po/he.po
+++ b/po/he.po
@@ -7758,6 +7758,41 @@ msgstr "לולאה בעת טיפול בהפניות"
 msgid "Referral hop limit exceeded"
 msgstr "מגבלת הקפצת ההפניות בחריגה"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Not Yet Implemented\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+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 "&אנלוגי"
@@ -8368,14 +8403,6 @@ msgstr "More..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Line in Batch processing possibly truncated. Using:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Not Yet Implemented\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument missing\n"
@@ -8384,10 +8411,6 @@ msgstr "Argument missing\n"
 msgid "Syntax error\n"
 msgstr "Syntax error\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s: File Not Found\n"
-
 #: cmd.rc:302
 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 37d43fe..2265642 100644
--- a/po/hi.po
+++ b/po/hi.po
@@ -7417,6 +7417,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+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)"
@@ -7859,12 +7892,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7873,10 +7900,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/hu.po b/po/hu.po
index 19d84c5..f53af62 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -7950,6 +7950,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:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, 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"
@@ -8397,12 +8431,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8411,11 +8439,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Fájl nem található"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/it.po b/po/it.po
index 1c34724..2716799 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7998,6 +7998,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:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Non ancora implementato\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+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"
@@ -8620,14 +8655,6 @@ msgstr "Di più..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Linea nell'elaborazione Batch probabilmente troncata. Uso:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Non ancora implementato\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Manca un parametro\n"
@@ -8636,10 +8663,6 @@ msgstr "Manca un parametro\n"
 msgid "Syntax error\n"
 msgstr "Errore di sintassi\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : File non trovato\n"
-
 #: cmd.rc:302
 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 b669069..1681a75 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -7655,6 +7655,41 @@ msgstr "紹介の取り扱い中にループです"
 msgid "Referral hop limit exceeded"
 msgstr "紹介のホップ数が限界を超えました"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"まだ実装されていません\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+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)"
@@ -8260,14 +8295,6 @@ msgstr "More..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "バッチ処理の行が切り落とされた可能性があります。対象行:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"まだ実装されていません\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "引数がありません\n"
@@ -8276,10 +8303,6 @@ msgstr "引数がありません\n"
 msgid "Syntax error\n"
 msgstr "文法エラー\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s: ファイルが見つかりません\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "%s に対するヘルプはありません\n"
diff --git a/po/ko.po b/po/ko.po
index 62eacda..e8c8a01 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -7631,6 +7631,41 @@ msgstr "리퍼럴을 다루는 동안의 루프"
 msgid "Referral hop limit exceeded"
 msgstr "리퍼럴 홉 제한에 도달했습니다"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"아직 구현되지 않았습니다\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+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)"
@@ -8253,14 +8288,6 @@ msgstr "더 많이..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "배치 작업의 줄은 아마도 불완전한 것 같습니다. 사용법:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"아직 구현되지 않았습니다\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "인수가 없습니다\n"
@@ -8269,10 +8296,6 @@ msgstr "인수가 없습니다\n"
 msgid "Syntax error\n"
 msgstr "문법 오류\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s :파일을 찾을 수 없습니다\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "%s를 위한 어떠한 도움말도 찾을 수 없습니다\n"
diff --git a/po/lt.po b/po/lt.po
index 73652c4..6ab289d 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7678,6 +7678,41 @@ msgstr "Aptiktas ciklas apdorojant perdavimus"
 msgid "Referral hop limit exceeded"
 msgstr "Viršyta perdavimo šuolių riba"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Dar nerealizuota\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+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"
@@ -8305,14 +8340,6 @@ msgstr "Daugiau..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Paketinio apdorojimo eilutė galimai nukirsta. Naudojama:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Dar nerealizuota\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Trūksta argumento\n"
@@ -8321,10 +8348,6 @@ msgstr "Trūksta argumento\n"
 msgid "Syntax error\n"
 msgstr "Sintaksės klaida\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s: failas nerastas\n"
-
 #: cmd.rc:302
 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 5ef4f6b..f974461 100644
--- a/po/ml.po
+++ b/po/ml.po
@@ -7417,6 +7417,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+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 "_അനലോഗ്"
@@ -7859,12 +7892,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7873,10 +7900,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/nb_NO.po b/po/nb_NO.po
index 339a94b..17269a8 100644
--- a/po/nb_NO.po
+++ b/po/nb_NO.po
@@ -7936,6 +7936,42 @@ msgstr "Løkke under håndtering av henvisninger"
 msgid "Referral hop limit exceeded"
 msgstr "Grense for henvisningshopp overskredet"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Not Yet Implemented\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+#, 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"
@@ -8538,14 +8574,6 @@ msgstr "Mer..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Line in Batch processing possibly truncated. Using:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Not Yet Implemented\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument missing\n"
@@ -8554,11 +8582,6 @@ msgstr "Argument missing\n"
 msgid "Syntax error\n"
 msgstr "Syntax error\n"
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "%s : File Not Found\n"
-
 #: cmd.rc:302
 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 f225e10..df0f5a0 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -7805,6 +7805,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:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Nog niet geïmplementeerd\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+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"
@@ -8424,14 +8459,6 @@ msgstr "Meer..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Regel in Batch proces mogelijk afgebroken. We gebruiken:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Nog niet geïmplementeerd\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument ontbreekt\n"
@@ -8440,10 +8467,6 @@ msgstr "Argument ontbreekt\n"
 msgid "Syntax error\n"
 msgstr "Fout in de syntax\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : Bestand Niet Gevonden\n"
-
 #: cmd.rc:302
 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 fd354ca..67f35b3 100644
--- a/po/or.po
+++ b/po/or.po
@@ -7417,6 +7417,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+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)"
@@ -7859,12 +7892,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7873,10 +7900,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/pa.po b/po/pa.po
index 3c802d0..01e5166 100644
--- a/po/pa.po
+++ b/po/pa.po
@@ -7417,6 +7417,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+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)"
@@ -7859,12 +7892,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7873,10 +7900,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/pl.po b/po/pl.po
index 71b6f38..a79c2f1 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -7696,6 +7696,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:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Jeszcze niezaimplementowane\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+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"
@@ -8289,14 +8324,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:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Jeszcze niezaimplementowane\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Brakuje argumentu\n"
@@ -8305,10 +8332,6 @@ msgstr "Brakuje argumentu\n"
 msgid "Syntax error\n"
 msgstr "Błąd składni\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : Plik nie znaleziony\n"
-
 #: cmd.rc:302
 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 0d46a36..a15c54c 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -7961,6 +7961,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:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Ainda não implementado\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+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"
@@ -8567,14 +8602,6 @@ msgstr "Mais..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Linha no processamento do Batch possivelmente truncada. Usando:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Ainda não implementado\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Faltando argumento\n"
@@ -8583,10 +8610,6 @@ msgstr "Faltando argumento\n"
 msgid "Syntax error\n"
 msgstr "Erro de sintaxe\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : Arquivo Não Encontrado\n"
-
 #: cmd.rc:302
 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 2e3f5fa..569e635 100644
--- a/po/pt_PT.po
+++ b/po/pt_PT.po
@@ -8002,6 +8002,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:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Not Yet Implemented\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+#, 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"
@@ -8614,14 +8650,6 @@ msgstr "More..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Line in Batch processing possibly truncated. Using:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Not Yet Implemented\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument missing\n"
@@ -8630,11 +8658,6 @@ msgstr "Argument missing\n"
 msgid "Syntax error\n"
 msgstr "Syntax error\n"
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "%s : File Not Found\n"
-
 #: cmd.rc:302
 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 f30ac48..666b0e9 100644
--- a/po/rm.po
+++ b/po/rm.po
@@ -7464,6 +7464,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+#, fuzzy
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr "Na implementa"
+
+#: attrib.rc:28 cmd.rc:301
+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 ""
@@ -7908,13 +7942,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-#, fuzzy
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr "Na implementa"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7923,10 +7950,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/ro.po b/po/ro.po
index 787c38a..122e52e 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -8255,6 +8255,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:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Încă neimplementat\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+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"
@@ -8856,14 +8891,6 @@ msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 "Linie posibil trunchiată în procesarea fișierului batch. Se utilizează:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Încă neimplementat\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument lipsă\n"
@@ -8872,10 +8899,6 @@ msgstr "Argument lipsă\n"
 msgid "Syntax error\n"
 msgstr "Eroare de sintaxă\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : fișier negăsit\n"
-
 #: cmd.rc:302
 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 3e608b7..52b7596 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -7669,6 +7669,41 @@ msgstr "Зацикливание при обработке ссылок"
 msgid "Referral hop limit exceeded"
 msgstr "Предел числа пересылки ссылок превышен"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Ещё не выполнено\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+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 "&Аналоговые"
@@ -8278,14 +8313,6 @@ msgstr "Дальше..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Строка в обрабатываемом bat-файле возможно урезана. Используем:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Ещё не выполнено\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Отсутствует аргумент\n"
@@ -8294,10 +8321,6 @@ msgstr "Отсутствует аргумент\n"
 msgid "Syntax error\n"
 msgstr "Синтаксическая ошибка\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : Файл не найден\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "Справка для %s отсутствует\n"
diff --git a/po/sk.po b/po/sk.po
index 63bb98d..f9775d2 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -7714,6 +7714,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, 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é"
@@ -8156,12 +8190,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8170,11 +8198,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Súbor nenájdený"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/sl.po b/po/sl.po
index 972bc26..66cb43d 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -7691,6 +7691,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:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Ni še podprto\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+#, 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"
@@ -8308,14 +8344,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:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Ni še podprto\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument manjka\n"
@@ -8324,11 +8352,6 @@ msgstr "Argument manjka\n"
 msgid "Syntax error\n"
 msgstr "Skladenjska napaka\n"
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "%s : datoteke ni mogoče najti\n"
-
 #: cmd.rc:302
 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 e05a060..84ee7d6 100644
--- a/po/sr_RS at cyrillic.po
+++ b/po/sr_RS at cyrillic.po
@@ -7824,6 +7824,40 @@ msgstr "Понављај при руковању с упућивачима"
 msgid "Referral hop limit exceeded"
 msgstr "Ограничење чвора упућивача је прекорачено"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, 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 "&Аналогни"
@@ -8266,12 +8300,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8280,11 +8308,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Датотека није пронађена"
-
 #: cmd.rc:302
 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 f7d9604..5faa8a2 100644
--- a/po/sr_RS at latin.po
+++ b/po/sr_RS at latin.po
@@ -7873,6 +7873,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:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, 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"
@@ -8315,12 +8349,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8329,11 +8357,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "Datoteka nije pronađena"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/sv.po b/po/sv.po
index 422eb68..fc7d4d4 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -7681,6 +7681,41 @@ msgstr "Loop while handling referrals"
 msgid "Referral hop limit exceeded"
 msgstr "Referral hop limit exceeded"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Ännu ej implementerat\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+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"
@@ -8290,14 +8325,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:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Ännu ej implementerat\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument saknas\n"
@@ -8306,10 +8333,6 @@ msgstr "Argument saknas\n"
 msgid "Syntax error\n"
 msgstr "Syntaxfel\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : kunde inte hitta filen\n"
-
 #: cmd.rc:302
 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 5f99d68..756b0a2 100644
--- a/po/te.po
+++ b/po/te.po
@@ -7417,6 +7417,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+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)"
@@ -7859,12 +7892,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7873,10 +7900,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/th.po b/po/th.po
index 0011bba..ecb897d 100644
--- a/po/th.po
+++ b/po/th.po
@@ -7557,6 +7557,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, 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 "ธรรมดา"
@@ -8004,12 +8038,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8018,11 +8046,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "ไม่พบแฟ้ม"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/tr.po b/po/tr.po
index 953eda8..56b02b8 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -8050,6 +8050,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:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Not Yet Implemented\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+#, 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"
@@ -8652,14 +8688,6 @@ msgstr "More..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Line in Batch processing possibly truncated. Using:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Not Yet Implemented\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Argument missing\n"
@@ -8668,11 +8696,6 @@ msgstr "Argument missing\n"
 msgid "Syntax error\n"
 msgstr "Syntax error\n"
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "%s : File Not Found\n"
-
 #: cmd.rc:302
 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 df0c8cf..f06fac4 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -7664,6 +7664,41 @@ msgstr "Зациклювання при обробці посилань"
 msgid "Referral hop limit exceeded"
 msgstr "Перевищено граничну кількість пересилання посилань"
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+"Ще не реалізовано\n"
+"\n"
+
+#: attrib.rc:28 cmd.rc:301
+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 "&Анало&говий"
@@ -8266,14 +8301,6 @@ msgstr "Більше..."
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr "Рядок в обробці Пакету мабуть урізаний. Використовую:\n"
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-"Ще не реалізовано\n"
-"\n"
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr "Відсутній аргумент\n"
@@ -8282,10 +8309,6 @@ msgstr "Відсутній аргумент\n"
 msgid "Syntax error\n"
 msgstr "Синтаксична помилка\n"
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "%s : Файл не знайдено\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr "Немає довідки для %s\n"
diff --git a/po/wa.po b/po/wa.po
index 48e55f0..83b5be8 100644
--- a/po/wa.po
+++ b/po/wa.po
@@ -7522,6 +7522,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, 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"
@@ -7969,12 +8003,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7983,11 +8011,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "'%s' pout nén esse trové."
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/wine.pot b/po/wine.pot
index c790719..4c7594b 100644
--- a/po/wine.pot
+++ b/po/wine.pot
@@ -7394,6 +7394,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+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 ""
@@ -7835,12 +7868,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -7849,10 +7876,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr ""
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 8676a85..3652dc0 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7805,6 +7805,39 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+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)"
@@ -8252,12 +8285,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8266,10 +8293,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-msgid "%s: File Not Found\n"
-msgstr "找不到文件\n"
-
 #: cmd.rc:302
 msgid "No help available for %s\n"
 msgstr ""
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 3af9028..e21875b 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -7862,6 +7862,40 @@ msgstr ""
 msgid "Referral hop limit exceeded"
 msgstr ""
 
+#: attrib.rc:27 cmd.rc:298
+msgid ""
+"Not Yet Implemented\n"
+"\n"
+msgstr ""
+
+#: attrib.rc:28 cmd.rc:301
+#, 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)"
@@ -8309,12 +8343,6 @@ msgstr ""
 msgid "Line in Batch processing possibly truncated. Using:\n"
 msgstr ""
 
-#: cmd.rc:298
-msgid ""
-"Not Yet Implemented\n"
-"\n"
-msgstr ""
-
 #: cmd.rc:299
 msgid "Argument missing\n"
 msgstr ""
@@ -8323,11 +8351,6 @@ msgstr ""
 msgid "Syntax error\n"
 msgstr ""
 
-#: cmd.rc:301
-#, fuzzy
-msgid "%s: File Not Found\n"
-msgstr "找不到檔案"
-
 #: cmd.rc:302
 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..33bf3c4 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[] = {'/','?','\0'};
+
+    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 bbf2920..7063eb7 100644
--- a/programs/cmd/builtins.c
+++ b/programs/cmd/builtins.c
@@ -1999,89 +1999,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 27d9d9a..3ad565a 100644
--- a/programs/cmd/wcmd.h
+++ b/programs/cmd/wcmd.h
@@ -81,7 +81,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 ce07111..8c47863 100644
--- a/programs/cmd/wcmdmain.c
+++ b/programs/cmd/wcmdmain.c
@@ -1455,9 +1455,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