[aseprite] 135/308: Move LOG() to base library

Tobias Hansen thansen at moszumanska.debian.org
Tue Mar 8 02:45:01 UTC 2016


This is an automated email from the git hooks/post-receive script.

thansen pushed a commit to branch master
in repository aseprite.

commit 7ab863303e62244a249f39af2651dbcd457ded96
Author: David Capello <davidcapello at gmail.com>
Date:   Mon Dec 21 12:36:44 2015 -0300

    Move LOG() to base library
    
    Changes:
    - Moved verbose_log (in app module) to base_log (in base library)
    - Added base_set_log_filename() to start logging and close the log file
    - LoggerModule() is implemented using thse new base library functions
    
    Fix #899
---
 src/app/log.cpp         | 57 ++++++++++---------------------------------------
 src/base/CMakeLists.txt |  1 +
 src/base/log.cpp        | 56 ++++++++++++++++++++++++++++++++++++++++++++++++
 src/base/log.h          | 19 +++++++++++++++++
 src/config.h            |  6 +-----
 5 files changed, 88 insertions(+), 51 deletions(-)

diff --git a/src/app/log.cpp b/src/app/log.cpp
index d3ec160..e7e41fb 100644
--- a/src/app/log.cpp
+++ b/src/app/log.cpp
@@ -13,67 +13,32 @@
 
 #include "app/app.h"
 #include "app/resource_finder.h"
-#include "ui/base.h"
-
-#include <cstdarg>
-#include <cstdio>
-#include <cstring>
-#include <string>
+#include "base/log.h"
 
 namespace app {
 
-static FILE* log_fileptr = NULL;
 static LoggerModule* logger_instance = NULL;
 
 LoggerModule::LoggerModule(bool verbose)
   : m_verbose(verbose)
 {
   logger_instance = this;
+
+  if (verbose) {
+    app::ResourceFinder rf(false);
+    rf.includeUserDir("aseprite.log");
+    auto filename = rf.defaultFilename();
+    base_set_log_filename(filename.c_str());
+  }
 }
 
 LoggerModule::~LoggerModule()
 {
   LOG("Logger module: shutting down (this is the last line)\n");
 
-  if (log_fileptr) {
-    fclose(log_fileptr);
-    log_fileptr = NULL;
-  }
-
-  logger_instance = NULL;
+  // Close log file
+  base_set_log_filename("");
+  logger_instance = nullptr;
 }
 
 } // namespace app
-
-void verbose_log(const char* format, ...)
-{
-  if (app::logger_instance && !app::logger_instance->isVerbose())
-    return;
-
-  if (!app::log_fileptr) {
-    std::string filename;
-    app::ResourceFinder rf(false);
-    rf.includeUserDir("aseprite.log");
-    filename = rf.defaultFilename();
-
-    if (filename.size() > 0)
-      app::log_fileptr = fopen(filename.c_str(), "w");
-  }
-
-  if (app::log_fileptr) {
-    va_list ap;
-    va_start(ap, format);
-
-    vfprintf(app::log_fileptr, format, ap);
-    fflush(app::log_fileptr);
-
-#ifdef _DEBUG
-    va_start(ap, format);
-    vfprintf(stderr, format, ap);
-    fflush(stderr);
-#endif
-
-    va_end(ap);
-  }
-
-}
diff --git a/src/base/CMakeLists.txt b/src/base/CMakeLists.txt
index ce55e30..407da21 100644
--- a/src/base/CMakeLists.txt
+++ b/src/base/CMakeLists.txt
@@ -51,6 +51,7 @@ set(BASE_SOURCES
   file_handle.cpp
   fs.cpp
   launcher.cpp
+  log.cpp
   mem_utils.cpp
   memory.cpp
   memory_dump.cpp
diff --git a/src/base/log.cpp b/src/base/log.cpp
new file mode 100644
index 0000000..74ebab0
--- /dev/null
+++ b/src/base/log.cpp
@@ -0,0 +1,56 @@
+// Aseprite Base Library
+// Copyright (c) 2001-2015 David Capello
+//
+// This file is released under the terms of the MIT license.
+// Read LICENSE.txt for more information.
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "base/log.h"
+
+#include "base/file_handle.h"
+
+#include <cstdarg>
+#include <cstdio>
+#include <cstring>
+#include <string>
+
+static FILE* log_fileptr = nullptr;
+static std::string log_filename;
+
+void base_set_log_filename(const char* filename)
+{
+  if (log_fileptr) {
+    fclose(log_fileptr);
+    log_fileptr = nullptr;
+  }
+  log_filename = filename;
+}
+
+void base_log(const char* format, ...)
+{
+  if (!log_fileptr) {
+    if (log_filename.empty())
+      return;
+
+    log_fileptr = base::open_file_raw(log_filename, "w");
+  }
+
+  if (log_fileptr) {
+    va_list ap;
+    va_start(ap, format);
+
+    vfprintf(log_fileptr, format, ap);
+    fflush(log_fileptr);
+
+#ifdef _DEBUG
+    va_start(ap, format);
+    vfprintf(stderr, format, ap);
+    fflush(stderr);
+#endif
+
+    va_end(ap);
+  }
+}
diff --git a/src/base/log.h b/src/base/log.h
new file mode 100644
index 0000000..0eff401
--- /dev/null
+++ b/src/base/log.h
@@ -0,0 +1,19 @@
+// Aseprite Base Library
+// Copyright (c) 2001-2015 David Capello
+//
+// This file is released under the terms of the MIT license.
+// Read LICENSE.txt for more information.
+
+#ifndef BASE_LOG_H_INCLUDED
+#define BASE_LOG_H_INCLUDED
+#pragma once
+
+// Define BASE_DONT_DEFINE_LOG_MACRO in case that you don't need LOG
+#ifndef BASE_DONT_DEFINE_LOG_MACRO
+  #define LOG base_log
+#endif
+
+void base_set_log_filename(const char* filename);
+void base_log(const char* format, ...);
+
+#endif
diff --git a/src/config.h b/src/config.h
index d6e278f..a094ff6 100644
--- a/src/config.h
+++ b/src/config.h
@@ -35,10 +35,6 @@
 #define UPDATE_URL              WEBSITE "update/?xml=1"
 #define COPYRIGHT               "Copyright (C) 2001-2015 David Capello"
 
-#define LOG                     verbose_log
-
-// verbose_log() is defined in src/app/log.cpp and used through LOG macro
-void verbose_log(const char* format, ...);
-
 #include "base/base.h"
 #include "base/debug.h"
+#include "base/log.h"

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/aseprite.git



More information about the Pkg-games-commits mailing list