Mercurial > geeqie
annotate src/debug.c @ 1762:680bcf82eaff
do not cache incomplete thumbnails
| author | nadvornik |
|---|---|
| date | Mon, 28 Sep 2009 12:04:35 +0000 |
| parents | 2abdd6e50120 |
| children | 956aab097ea7 |
| rev | line source |
|---|---|
| 507 | 1 /* |
| 2 * Geeqie | |
| 1284 | 3 * Copyright (C) 2008 - 2009 The Geeqie Team |
| 507 | 4 * |
| 5 * Authors: Vladimir Nadvornik, Laurent Monin | |
| 6 * | |
| 7 * This software is released under the GNU General Public License (GNU GPL). | |
| 8 * Please read the included file COPYING for more information. | |
| 9 * This software comes with no warranty of any kind, use at your own risk! | |
| 10 */ | |
| 11 | |
| 12 #include "main.h" | |
|
678
6d6f042b8ca5
Add a log window that shows normal and debug messages. For now, it was added to Help menu.
zas_
parents:
673
diff
changeset
|
13 #include "debug.h" |
| 507 | 14 |
|
678
6d6f042b8ca5
Add a log window that shows normal and debug messages. For now, it was added to Help menu.
zas_
parents:
673
diff
changeset
|
15 #include "logwindow.h" |
|
693
bbe9cef644f8
Use print_term() instead of printf(), since it handles charset conversion
zas_
parents:
678
diff
changeset
|
16 #include "ui_fileops.h" |
|
673
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
17 |
| 1305 | 18 #include <glib/gprintf.h> |
| 19 | |
| 20 | |
|
673
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
21 /* |
|
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
22 * Logging functions |
|
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
23 */ |
|
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
24 |
|
1000
4fe8f9656107
For the sake of consistency, use glib basic types everywhere.
zas_
parents:
995
diff
changeset
|
25 gint log_domain_printf(const gchar *domain, const gchar *format, ...) |
|
673
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
26 { |
|
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
27 va_list ap; |
|
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
28 gchar buf[4096]; |
|
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
29 gint ret; |
|
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
30 |
|
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
31 va_start(ap, format); |
| 1305 | 32 ret = g_vsnprintf(buf, sizeof(buf), format, ap); |
|
673
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
33 va_end(ap); |
|
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
34 |
|
693
bbe9cef644f8
Use print_term() instead of printf(), since it handles charset conversion
zas_
parents:
678
diff
changeset
|
35 print_term(buf); |
|
678
6d6f042b8ca5
Add a log window that shows normal and debug messages. For now, it was added to Help menu.
zas_
parents:
673
diff
changeset
|
36 if (strcmp(domain, DOMAIN_INFO) == 0) |
|
6d6f042b8ca5
Add a log window that shows normal and debug messages. For now, it was added to Help menu.
zas_
parents:
673
diff
changeset
|
37 log_window_append(buf, LOG_NORMAL); |
|
6d6f042b8ca5
Add a log window that shows normal and debug messages. For now, it was added to Help menu.
zas_
parents:
673
diff
changeset
|
38 else |
|
6d6f042b8ca5
Add a log window that shows normal and debug messages. For now, it was added to Help menu.
zas_
parents:
673
diff
changeset
|
39 log_window_append(buf, LOG_MSG); |
|
673
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
40 |
|
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
41 return ret; |
|
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
42 } |
|
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
43 |
|
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
44 |
|
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
45 /* |
|
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
46 * Debugging only functions |
|
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
47 */ |
|
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
48 |
| 507 | 49 #ifdef DEBUG |
| 50 | |
| 51 static gint debug_level = DEBUG_LEVEL_MIN; | |
| 52 | |
| 53 | |
| 54 gint get_debug_level(void) | |
| 55 { | |
| 56 return debug_level; | |
| 57 } | |
| 58 | |
| 59 void set_debug_level(gint new_level) | |
| 60 { | |
| 995 | 61 debug_level = CLAMP(new_level, DEBUG_LEVEL_MIN, DEBUG_LEVEL_MAX); |
| 507 | 62 } |
| 63 | |
| 64 void debug_level_add(gint delta) | |
| 65 { | |
| 66 set_debug_level(debug_level + delta); | |
| 67 } | |
| 68 | |
| 69 gint required_debug_level(gint level) | |
| 70 { | |
| 71 return (debug_level >= level); | |
| 72 } | |
| 73 | |
| 509 | 74 static gint timeval_delta(struct timeval *result, struct timeval *x, struct timeval *y) |
| 75 { | |
| 76 if (x->tv_usec < y->tv_usec) | |
| 77 { | |
| 78 gint nsec = (y->tv_usec - x->tv_usec) / 1000000 + 1; | |
| 79 y->tv_usec -= 1000000 * nsec; | |
| 80 y->tv_sec += nsec; | |
| 81 } | |
| 82 | |
| 83 if (x->tv_usec - y->tv_usec > 1000000) | |
| 84 { | |
| 85 gint nsec = (x->tv_usec - y->tv_usec) / 1000000; | |
| 86 y->tv_usec += 1000000 * nsec; | |
| 87 y->tv_sec -= nsec; | |
| 88 } | |
| 89 | |
| 90 result->tv_sec = x->tv_sec - y->tv_sec; | |
| 91 result->tv_usec = x->tv_usec - y->tv_usec; | |
| 92 | |
| 93 return x->tv_sec < y->tv_sec; | |
| 94 } | |
| 95 | |
| 96 const gchar *get_exec_time(void) | |
| 97 { | |
| 98 static gchar timestr[30]; | |
| 99 static struct timeval start_tv = {0, 0}; | |
| 100 static struct timeval previous = {0, 0}; | |
| 101 static gint started = 0; | |
| 102 | |
| 103 struct timeval tv = {0, 0}; | |
| 104 static struct timeval delta = {0, 0}; | |
| 105 | |
| 106 gettimeofday(&tv, NULL); | |
| 107 | |
| 108 if (start_tv.tv_sec == 0) start_tv = tv; | |
| 109 | |
| 110 tv.tv_sec -= start_tv.tv_sec; | |
| 111 if (tv.tv_usec >= start_tv.tv_usec) | |
| 112 tv.tv_usec -= start_tv.tv_usec; | |
| 113 else | |
| 114 { | |
| 115 tv.tv_usec += 1000000 - start_tv.tv_usec; | |
| 116 tv.tv_sec -= 1; | |
| 117 } | |
| 118 | |
| 119 if (started) timeval_delta(&delta, &tv, &previous); | |
| 120 | |
| 121 previous = tv; | |
| 122 started = 1; | |
| 123 | |
|
1000
4fe8f9656107
For the sake of consistency, use glib basic types everywhere.
zas_
parents:
995
diff
changeset
|
124 g_snprintf(timestr, sizeof(timestr), "%5d.%06d (+%05d.%06d)", (gint)tv.tv_sec, (gint)tv.tv_usec, (gint)delta.tv_sec, (gint)delta.tv_usec); |
| 509 | 125 |
| 126 return timestr; | |
| 127 } | |
| 128 | |
| 129 void init_exec_time(void) | |
| 130 { | |
| 131 get_exec_time(); | |
| 132 } | |
| 133 | |
|
673
fbebf5cf4a55
Do not use printf() directly but use new wrapper function log_printf() instead.
zas_
parents:
671
diff
changeset
|
134 #endif /* DEBUG */ |
|
1055
1646720364cf
Adding a vim modeline to all files - patch by Klaus Ethgen
nadvornik
parents:
1000
diff
changeset
|
135 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ |
