Fix if_running not working on linux when a top flavour is not running
authorCesare Tirabassi <norsetto@ubuntu.com>
Thu, 3 Sep 2009 21:13:14 +0000 (23:13 +0200)
committerCesare Tirabassi <norsetto@ubuntu.com>
Thu, 3 Sep 2009 21:13:14 +0000 (23:13 +0200)
src/conky.c
src/conky.h
src/core.c
src/top.c

index 4df492b..59987da 100644 (file)
@@ -146,6 +146,9 @@ int top_cpu, top_mem, top_time;
 #ifdef IOSTATS
 int top_io;
 #endif
+#ifdef __linux__
+int top_running;
+#endif
 static unsigned int top_name_width = 15;
 int output_methods;
 static int extra_newline;
@@ -5053,6 +5056,9 @@ static void set_default_configurations(void)
 #ifdef IOSTATS
        top_io = 0;
 #endif
+#ifdef __linux__
+       top_running = 0;
+#endif
 #ifdef MPD
        mpd_env_host = getenv("MPD_HOST");
        mpd_env_port = getenv("MPD_PORT");
index cb85afd..7e841c5 100644 (file)
@@ -370,6 +370,9 @@ extern int top_cpu, top_mem, top_time;
 #ifdef IOSTATS
 extern int top_io;
 #endif
+#ifdef __linux__
+extern int top_running;
+#endif
 
 /* defined in conky.c, needed by top.c */
 extern int cpu_separate;
index 54621f5..aa7c8e6 100644 (file)
@@ -1124,6 +1124,7 @@ struct text_object *construct_text_object(const char *s, const char *arg, long
 #ifdef __linux__
        END OBJ_IF(if_running, INFO_TOP)
                if (arg) {
+                       top_running = 1;
                        obj->data.ifblock.s = strndup(arg, text_buffer_size);
 #else
        END OBJ_IF(if_running, 0)
index c363ee7..f4683ee 100644 (file)
--- a/src/top.c
+++ b/src/top.c
@@ -670,6 +670,7 @@ void process_find_top(struct process **cpu, struct process **mem,
 #ifdef IOSTATS
                        && !top_io
 #endif /* IOSTATS */
+                       && !top_running
           ) {
                return;
        }