]> www.fi.muni.cz Git - evince.git/blob - libdocument/ev-debug.c
Merge branch 'ev-debug' into work
[evince.git] / libdocument / ev-debug.c
1 /*
2  * ev-debug.c
3  * This file is part of Evince
4  *
5  * Copyright (C) 1998, 1999 Alex Roberts, Evan Lawrence
6  * Copyright (C) 2000, 2001 Chema Celorio, Paolo Maggi
7  * Copyright (C) 2002 - 2005 Paolo Maggi  
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 59 Temple Place, Suite 330, 
22  * Boston, MA 02111-1307, USA.
23  */
24  
25 /*
26  * Modified by the gedit Team, 1998-2005. See the AUTHORS file for a 
27  * list of people on the gedit Team.  
28  * See the ChangeLog files for a list of changes.
29  *
30  * $Id: gedit-debug.c 4809 2006-04-08 14:46:31Z pborelli $
31  */
32
33 /* Modified by Evince Team */
34
35 #ifdef HAVE_CONFIG_H
36 #include <config.h>
37 #endif
38
39 #include <stdio.h>
40
41 #include "ev-debug.h"
42
43 #ifdef EV_ENABLE_DEBUG
44 static EvDebugSection ev_debug = EV_NO_DEBUG;
45
46 void
47 ev_debug_init ()
48 {
49         if (g_getenv ("EV_DEBUG") != NULL) {
50                 /* enable all debugging */
51                 ev_debug = ~EV_NO_DEBUG;
52                 return;
53         }
54
55         if (g_getenv ("EV_DEBUG_JOBS") != NULL)
56                 ev_debug |= EV_DEBUG_JOBS;
57 }
58
59 void
60 ev_debug_message (EvDebugSection  section,
61                   const gchar    *file,
62                   gint            line,
63                   const gchar    *function,
64                   const gchar    *format, ...)
65 {
66         if (G_UNLIKELY (ev_debug & section)) {
67                 gchar *msg = NULL;
68
69                 if (format) {
70                         va_list args;
71                         
72                         va_start (args, format);
73                         msg = g_strdup_vprintf (format, args);
74                         va_end (args);
75                 }
76
77                 g_print ("%s:%d (%s) %s\n", file, line, function, msg ? msg : "");      
78
79                 fflush (stdout);
80
81                 g_free (msg);
82         }
83 }
84
85 #endif /* EV_ENABLE_DEBUG */