This is an automated email from Gerrit.

Antonio Borneo ([email protected]) just uploaded a new patch set to 
Gerrit, which you can find at http://openocd.zylin.com/5233

-- gerrit

commit 8f4d345fc5a6d3b67a78de42c94faf1b6a5c4c2d
Author: Antonio Borneo <[email protected]>
Date:   Fri Jun 14 10:00:06 2019 +0200

    log: let command "log_output" to set back its default
    
    The default log output is stderr. After the command "log_output"
    has been used to set an output log file, it is possible to return
    back to stderr only on *NIX hosts specifying a new log output file
    as "/dev/stderr", but this is not intuitive, not documented and
    not portable out of *NIX.
    
    Make command "log_output" able to set back the default output to
    stderr when the parameter is either "default" or is missing.
    While there, add debug message to log the change and make the
    command return error on incorrect syntax.
    
    Change-Id: I8c7c929780f58e2c23936737c8e7274a96734786
    Signed-off-by: Antonio Borneo <[email protected]>

diff --git a/doc/openocd.texi b/doc/openocd.texi
index 57d1b09..036512a 100644
--- a/doc/openocd.texi
+++ b/doc/openocd.texi
@@ -7733,9 +7733,9 @@ echo "Downloading kernel -- please wait"
 @end example
 @end deffn
 
-@deffn Command log_output [filename]
-Redirect logging to @var{filename};
-the initial log output channel is stderr.
+@deffn Command log_output [filename | "default"]
+Redirect logging to @var{filename} or set it back to default output;
+the default log output channel is stderr.
 @end deffn
 
 @deffn Command add_script_search_dir [directory]
diff --git a/src/helper/log.c b/src/helper/log.c
index d65430c..18a89c3 100644
--- a/src/helper/log.c
+++ b/src/helper/log.c
@@ -220,6 +220,15 @@ COMMAND_HANDLER(handle_debug_level_command)
 
 COMMAND_HANDLER(handle_log_output_command)
 {
+       if (CMD_ARGC == 0 || (CMD_ARGC == 1 && strcmp(CMD_ARGV[0], "default") 
== 0)) {
+               if (log_output != stderr && log_output != NULL) {
+                       /* Close previous log file, if it was open and wasn't 
stderr. */
+                       fclose(log_output);
+               }
+               log_output = stderr;
+               LOG_DEBUG("set log_output to default");
+               return ERROR_OK;
+       }
        if (CMD_ARGC == 1) {
                FILE *file = fopen(CMD_ARGV[0], "w");
                if (file == NULL) {
@@ -231,9 +240,11 @@ COMMAND_HANDLER(handle_log_output_command)
                        fclose(log_output);
                }
                log_output = file;
+               LOG_DEBUG("set log_output to \"%s\"", CMD_ARGV[0]);
+               return ERROR_OK;
        }
 
-       return ERROR_OK;
+       return ERROR_FAIL;
 }
 
 static const struct command_registration log_command_handlers[] = {
@@ -242,7 +253,7 @@ static const struct command_registration 
log_command_handlers[] = {
                .handler = handle_log_output_command,
                .mode = COMMAND_ANY,
                .help = "redirect logging to a file (default: stderr)",
-               .usage = "file_name",
+               .usage = "[file_name | \"default\"]",
        },
        {
                .name = "debug_level",

-- 


_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to