annotate mcabber/src/utils.c @ 147:7571de4aed73

[/trunk] Changeset 159 by mikael * Fix a bug in buddylist_build() * We now lock the current buddy even not when being in chat mode. For example, if we're writing to s.o. and he leaves just before we press enter, we won't write to the wrong buddy... If the current_buddy is a group, we lock it too. * Remove MCABBER_TESTUNIT ifdef in roster.h (test program isn't up-to-date anymore...)
author mikael
date Fri, 29 Apr 2005 19:56:28 +0000
parents 250f872c722f
children 8584f919d9b9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
1 #include <stdio.h>
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
2 #include <stdlib.h>
77
32f54ad6d729 [/trunk] Changeset 91 by mikael
mikael
parents: 76
diff changeset
3 #include <string.h>
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
4 #include <stdarg.h>
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
5 #include <time.h>
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
6
76
a8f8492abd44 [/trunk] Changeset 90 by mikael
mikael
parents: 24
diff changeset
7 static int DebugEnabled;
77
32f54ad6d729 [/trunk] Changeset 91 by mikael
mikael
parents: 76
diff changeset
8 static char *FName;
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
9
138
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 81
diff changeset
10 void ut_InitDebug(unsigned int level, char *filename)
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
11 {
77
32f54ad6d729 [/trunk] Changeset 91 by mikael
mikael
parents: 76
diff changeset
12 FILE *fp;
32f54ad6d729 [/trunk] Changeset 91 by mikael
mikael
parents: 76
diff changeset
13
138
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 81
diff changeset
14 if (!level) {
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 81
diff changeset
15 DebugEnabled = 0;
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 81
diff changeset
16 FName = NULL;
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 81
diff changeset
17 return;
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 81
diff changeset
18 }
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 81
diff changeset
19
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 81
diff changeset
20 if (filename)
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 81
diff changeset
21 FName = strdup(filename);
77
32f54ad6d729 [/trunk] Changeset 91 by mikael
mikael
parents: 76
diff changeset
22 else {
138
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 81
diff changeset
23 FName = getenv("HOME");
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 81
diff changeset
24 if (!FName)
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 81
diff changeset
25 FName = "/tmp/mcabberlog";
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 81
diff changeset
26 else {
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 81
diff changeset
27 char *tmpname = malloc(strlen(FName) + 12);
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 81
diff changeset
28 strcpy(tmpname, FName);
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 81
diff changeset
29 strcat(tmpname, "/mcabberlog");
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 81
diff changeset
30 FName = tmpname;
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 81
diff changeset
31 }
77
32f54ad6d729 [/trunk] Changeset 91 by mikael
mikael
parents: 76
diff changeset
32 }
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
33
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
34 DebugEnabled = level;
76
a8f8492abd44 [/trunk] Changeset 90 by mikael
mikael
parents: 24
diff changeset
35
77
32f54ad6d729 [/trunk] Changeset 91 by mikael
mikael
parents: 76
diff changeset
36 fp = fopen(FName, "w");
76
a8f8492abd44 [/trunk] Changeset 90 by mikael
mikael
parents: 24
diff changeset
37 if (!fp) return;
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
38 fprintf(fp, "Debugging mode started...\n"
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
39 "-----------------------------------\n");
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
40 fclose(fp);
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
41 }
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
42
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
43 void ut_WriteLog(const char *fmt, ...)
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
44 {
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
45 FILE *fp = NULL;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
46 time_t ahora;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
47 va_list ap;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
48 char *buffer = NULL;
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
49
138
250f872c722f [/trunk] Changeset 150 by mikael
mikael
parents: 81
diff changeset
50 if (DebugEnabled && FName) {
77
32f54ad6d729 [/trunk] Changeset 91 by mikael
mikael
parents: 76
diff changeset
51 fp = fopen(FName, "a+");
76
a8f8492abd44 [/trunk] Changeset 90 by mikael
mikael
parents: 24
diff changeset
52 if (!fp) return;
24
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
53 buffer = (char *) calloc(1, 64);
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
54
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
55 ahora = time(NULL);
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
56 strftime(buffer, 64, "[%H:%M:%S] ", localtime(&ahora));
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
57 fprintf(fp, "%s", buffer);
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
58
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
59 va_start(ap, fmt);
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
60 vfprintf(fp, fmt, ap);
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
61 va_end(ap);
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
62
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
63 free(buffer);
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
64 fclose(fp);
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
65 }
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
66 }
e88b15cbf2de [/trunk] Changeset 40 by mikael
mikael
parents:
diff changeset
67