libpurple/protocols/zephyr/ZVariables.c

Thu, 27 May 2021 20:25:24 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Thu, 27 May 2021 20:25:24 -0500
branch
release-2.x.y
changeset 40892
c00b451a1dd8
parent 36256
a437550a9308
child 35851
53a60c0d3040
child 43153
2e4624a59df5
permissions
-rw-r--r--

Change the default irc server to libera.chat

This seems to make the most sense for users right now as many many channels have migrated away from freenode with many of them moving to libera.

Testing Done:
Compile only.

Reviewed at https://reviews.imfreedom.org/r/675/

2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
1 /* This file is part of the Project Athena Zephyr Notification System.
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
2 * It contains source for the ZGetVariable, ZSetVariable, and ZUnsetVariable
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
3 * functions.
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
4 *
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
5 * Created by: Robert French
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
6 *
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
7 * Copyright (c) 1987 by the Massachusetts Institute of Technology.
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
8 * For copying and distribution information, see the file
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30617
diff changeset
9 * "mit-copyright.h".
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
10 */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
11
18273
e61c53184c52 #include reorganizations to allow compiling with glib < 2.8 using the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 15884
diff changeset
12 #include "libpurple/internal.h"
8792
b0645c9dc276 [gaim-migrate @ 9554]
Christian Hammond <chipx86@chipx86.com>
parents: 5872
diff changeset
13 #include "internal.h"
5872
754c63f29b77 [gaim-migrate @ 6304]
Christian Hammond <chipx86@chipx86.com>
parents: 4272
diff changeset
14 #include "util.h"
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
15
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
16 #include <ctype.h>
10867
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 10772
diff changeset
17 #ifndef WIN32
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
18 #include <pwd.h>
10867
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 10772
diff changeset
19 #endif
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
20
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
21 static char *get_localvarfile __P((void));
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
22 static char *get_varval __P((char *fn, char *val));
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
23 static int varline __P((char *bfr, char *var));
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
24
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
25 char *ZGetVariable(var)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
26 char *var;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
27 {
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
28 char *varfile, *ret;
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
29
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
30 if ((varfile = get_localvarfile()) == NULL)
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
31 return ((char *)0);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
32
30617
d79eaf981448 Fix a minor memleak on initialization
Mark Doliner <markdoliner@pidgin.im>
parents: 28001
diff changeset
33 ret = get_varval(varfile, var);
d79eaf981448 Fix a minor memleak on initialization
Mark Doliner <markdoliner@pidgin.im>
parents: 28001
diff changeset
34 g_free(varfile);
d79eaf981448 Fix a minor memleak on initialization
Mark Doliner <markdoliner@pidgin.im>
parents: 28001
diff changeset
35 if (ret != ZERR_NONE)
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
36 return ret;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
37
10867
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 10772
diff changeset
38 #ifdef WIN32
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
39 varfile = g_strdup("C:\\zephyr\\zephyr.var");
10867
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 10772
diff changeset
40 #else
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
41 varfile = g_strdup_printf("%s/zephyr.vars", CONFDIR);
10867
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 10772
diff changeset
42 #endif
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
43 ret = get_varval(varfile, var);
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
44 g_free(varfile);
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
45
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
46 return ret;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
47 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
48
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
49 Code_t ZSetVariable(var, value)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
50 char *var;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
51 char *value;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
52 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
53 int written;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
54 FILE *fpin, *fpout;
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
55 char *varfile, *varfilebackup, varbfr[512];
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
56
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
57 written = 0;
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30617
diff changeset
58
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
59 if ((varfile = get_localvarfile()) == NULL)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
60 return (ZERR_INTERNAL);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
61
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
62 varfilebackup = g_strconcat(varfile, ".backup", NULL);
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30617
diff changeset
63
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
64 if (!(fpout = fopen(varfilebackup, "w"))) {
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
65 g_free(varfile);
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
66 g_free(varfilebackup);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
67 return (errno);
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
68 }
10592
cd4c3a7d7bdf [gaim-migrate @ 11998]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
69 if ((fpin = fopen(varfile, "r")) != NULL) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
70 while (fgets(varbfr, sizeof varbfr, fpin) != (char *) 0) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
71 if (varbfr[strlen(varbfr)-1] < ' ')
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
72 varbfr[strlen(varbfr)-1] = '\0';
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
73 if (varline(varbfr, var)) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
74 fprintf(fpout, "%s = %s\n", var, value);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
75 written = 1;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
76 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
77 else
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
78 fprintf(fpout, "%s\n", varbfr);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
79 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
80 (void) fclose(fpin); /* don't care about errs on input */
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30617
diff changeset
81 }
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
82 if (!written)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
83 fprintf(fpout, "%s = %s\n", var, value);
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
84 if (fclose(fpout) == EOF) {
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
85 g_free(varfilebackup);
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
86 g_free(varfile);
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
87 return(EIO); /* can't rely on errno */
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
88 }
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
89 if (rename(varfilebackup, varfile)) {
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
90 g_free(varfilebackup);
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
91 g_free(varfile);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
92 return (errno);
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
93 }
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
94 g_free(varfilebackup);
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
95 g_free(varfile);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
96 return (ZERR_NONE);
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30617
diff changeset
97 }
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
98
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
99 Code_t ZUnsetVariable(var)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
100 char *var;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
101 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
102 FILE *fpin, *fpout;
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
103 char *varfile, *varfilebackup, varbfr[512];
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
104
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
105 if ((varfile = get_localvarfile()) == NULL)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
106 return (ZERR_INTERNAL);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
107
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
108 varfilebackup = g_strconcat(varfile, ".backup", NULL);
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30617
diff changeset
109
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
110 if (!(fpout = fopen(varfilebackup, "w"))) {
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
111 g_free(varfile);
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
112 g_free(varfilebackup);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
113 return (errno);
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
114 }
10592
cd4c3a7d7bdf [gaim-migrate @ 11998]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
115 if ((fpin = fopen(varfile, "r")) != NULL) {
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
116 while (fgets(varbfr, sizeof varbfr, fpin) != (char *) 0) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
117 if (varbfr[strlen(varbfr)-1] < ' ')
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
118 varbfr[strlen(varbfr)-1] = '\0';
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
119 if (!varline(varbfr, var))
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
120 fprintf(fpout, "%s\n", varbfr);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
121 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
122 (void) fclose(fpin); /* don't care about read close errs */
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30617
diff changeset
123 }
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
124 if (fclose(fpout) == EOF) {
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
125 g_free(varfilebackup);
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
126 g_free(varfile);
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
127 return(EIO); /* errno isn't reliable */
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
128 }
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
129 if (rename(varfilebackup, varfile)) {
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
130 g_free(varfilebackup);
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
131 g_free(varfile);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
132 return (errno);
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
133 }
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
134 g_free(varfilebackup);
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
135 g_free(varfile);
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
136 return (ZERR_NONE);
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30617
diff changeset
137 }
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
138
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
139 static char *get_localvarfile(void)
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
140 {
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
141 const char *base;
10867
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 10772
diff changeset
142 #ifndef WIN32
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
143 struct passwd *pwd;
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
144 base = purple_home_dir();
10867
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 10772
diff changeset
145 #else
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
146 base = getenv("HOME");
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
147 if (!base)
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
148 base = getenv("HOMEPATH");
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30617
diff changeset
149 if (!base)
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
150 base = "C:\\";
10867
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 10772
diff changeset
151 #endif
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
152 if (!base) {
10867
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 10772
diff changeset
153 #ifndef WIN32
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
154 if (!(pwd = getpwuid((int) getuid()))) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
155 fprintf(stderr, "Zephyr internal failure: Can't find your entry in /etc/passwd\n");
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
156 return NULL;
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
157 }
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
158 base = pwd->pw_dir;
10867
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 10772
diff changeset
159 #endif
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
160 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
161
28001
c6446d1742d3 Don't use a static buffer to hold a full filename, since it could possibly
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26726
diff changeset
162 return g_strconcat(base, "/.zephyr.vars", NULL);
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30617
diff changeset
163 }
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30617
diff changeset
164
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
165 static char *get_varval(fn, var)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
166 char *fn;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
167 char *var;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
168 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
169 FILE *fp;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
170 static char varbfr[512];
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
171 int i;
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30617
diff changeset
172
10592
cd4c3a7d7bdf [gaim-migrate @ 11998]
Daniel Atallah <datallah@pidgin.im>
parents: 10589
diff changeset
173 fp = fopen(fn, "r");
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
174 if (!fp)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
175 return ((char *)0);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
176
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
177 while (fgets(varbfr, sizeof varbfr, fp) != (char *) 0) {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
178 if (varbfr[strlen(varbfr)-1] < ' ')
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
179 varbfr[strlen(varbfr)-1] = '\0';
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
180 if (!(i = varline(varbfr, var)))
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
181 continue;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
182 (void) fclose(fp); /* open read-only, don't care */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
183 return (varbfr+i);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
184 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
185 (void) fclose(fp); /* open read-only, don't care */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
186 return ((char *)0);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
187 }
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
188
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
189 /* If the variable in the line bfr[] is the same as var, return index to
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
190 the variable value, else return 0. */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
191 static int varline(bfr, var)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
192 char *bfr;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
193 char *var;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
194 {
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
195 register char *cp;
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30617
diff changeset
196
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
197
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
198 if (!bfr[0] || bfr[0] == '#') /* comment or null line */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
199 return (0);
31294
73607ab89c6f Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents: 30617
diff changeset
200
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
201 cp = bfr;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
202 while (*cp && !isspace(*cp) && (*cp != '='))
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
203 cp++;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
204
10867
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 10772
diff changeset
205 #ifndef WIN32
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
206 #define max(a,b) ((a > b) ? (a) : (b))
10867
b39f9b646d6c [gaim-migrate @ 12553]
Arun Tharuvai <aatharuv@mit.edu>
parents: 10772
diff changeset
207 #endif
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
208
36256
a437550a9308 Remove -Wno-sign-compare and backport fixes from default.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31294
diff changeset
209 if (g_ascii_strncasecmp(bfr, var, max(strlen(var), (gsize)(cp - bfr))))
2086
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
210 return(0); /* var is not the var in
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
211 bfr ==> no match */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
212
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
213 cp = strchr(bfr, '=');
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
214 if (!cp)
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
215 return(0);
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
216 cp++;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
217 while (*cp && isspace(*cp)) /* space up to variable value */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
218 cp++;
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
219
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
220 return (cp - bfr); /* return index */
007508451e2c [gaim-migrate @ 2096]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
diff changeset
221 }

mercurial