[PATCH 10/41] robocopy: add argument output

Florian Eder others.meder at gmail.com
Mon Sep 6 09:54:47 CDT 2021


Signed-off-by: Florian Eder <others.meder at gmail.com>
---
 programs/robocopy/main.c      | 30 ++++++++++++++++++++++++++++++
 programs/robocopy/robocopy.h  |  1 +
 programs/robocopy/robocopy.rc |  1 +
 3 files changed, 32 insertions(+)

diff --git a/programs/robocopy/main.c b/programs/robocopy/main.c
index fe550134508..18bfe1b13f6 100644
--- a/programs/robocopy/main.c
+++ b/programs/robocopy/main.c
@@ -358,9 +358,36 @@ static BOOL perform_copy(void)
     return TRUE;
 }
 
+static WCHAR *get_option_string(void)
+{
+    WCHAR *string, temp_string[512];
+    memset(temp_string, 0, sizeof(temp_string));
+
+    /* If no files set, display *.* */
+    if (options.files->size == 0)
+        wcscat(temp_string, L"*.* ");
+
+    /* Subdirectories */
+    if (options.copy_subdirectories)
+        wcscat(temp_string, L"/S ");
+
+    /* Max Subdirectory Depth */
+    if (options.user_limited_subdirectories_depth)
+        swprintf(temp_string + wcslen(temp_string), ARRAY_SIZE(temp_string) - wcslen(temp_string),
+                 L"/LEV:%u ", options.max_subdirectories_depth);
+
+    /* Empty Subdirectories */
+    if (options.copy_empty_subdirectories)
+        wcscat(temp_string, L"/E ");
+
+    string = wcsdup(temp_string);
+    return string;
+}
+
 static void print_header(void)
 {
     UINT i;
+    WCHAR *options_string;
 
     output_message(STRING_HEADER);
 
@@ -373,6 +400,9 @@ static void print_header(void)
     output_message(STRING_FILES, options.files->array[0]);
     for (i = 1; i < options.files->size; i++)
         output_message(STRING_ADDITIONAL_INFO, options.files->array[i]);
+
+    options_string = get_option_string();
+    if (options_string != NULL) output_message(STRING_OPTIONS, options_string);
 }
 
 int __cdecl wmain(int argc, WCHAR *argv[])
diff --git a/programs/robocopy/robocopy.h b/programs/robocopy/robocopy.h
index 57797c7df69..96901dfb597 100644
--- a/programs/robocopy/robocopy.h
+++ b/programs/robocopy/robocopy.h
@@ -47,6 +47,7 @@ struct robocopy_options {
 #define STRING_DESTINATION                    1004
 #define STRING_FILES                          1005
 #define STRING_ADDITIONAL_INFO                1008
+#define STRING_OPTIONS                        1009
 #define STRING_ERROR_READ_DIRECTORY           1011
 #define STRING_ERROR_WRITE_DIRECTORY          1012
 #define STRING_ERROR_WRITE_FILE               1014
diff --git a/programs/robocopy/robocopy.rc b/programs/robocopy/robocopy.rc
index 45d7bdacd69..519deca3a4d 100644
--- a/programs/robocopy/robocopy.rc
+++ b/programs/robocopy/robocopy.rc
@@ -30,6 +30,7 @@ STRINGTABLE
     STRING_DESTINATION, "    Destination: %1\n\n"
     STRING_FILES, "          Files: %1\n"
     STRING_ADDITIONAL_INFO, "                 %1\n"
+    STRING_OPTIONS, "\n        Options: %1\n\n"
     STRING_ERROR_READ_DIRECTORY, "[%1] Error %2 (%3) occurred reading directory \"%4\":\n%5\n"
     STRING_ERROR_WRITE_DIRECTORY, "[%1] Error %2 (%3) occurred writing directory \"%4\":\n%5\n"
     STRING_ERROR_WRITE_FILE, "[%1] Error %2 (%3) occurred writing file \"%4\":\n%5\n"
-- 
2.32.0




More information about the wine-devel mailing list