Example #1
0
/* 
 * Write out a preference list.
 */
static void wprefs(void *sesskey, char *name,
		   const struct keyvalwhere *mapping, int nvals,
		   int *array)
{
    char *buf, *p;
    int i, maxlen;

    for (maxlen = i = 0; i < nvals; i++) {
	const char *s = val2key(mapping, nvals, array[i]);
	if (s) {
            maxlen += (maxlen > 0 ? 1 : 0) + strlen(s);
        }
    }

    buf = snewn(maxlen + 1, char);
    p = buf;

    for (i = 0; i < nvals; i++) {
	const char *s = val2key(mapping, nvals, array[i]);
	if (s) {
            p += sprintf(p, "%s%s", (p > buf ? "," : ""), s);
	}
    }

    assert(p - buf == maxlen);
    *p = '\0';

    write_setting_s(sesskey, name, buf);

    sfree(buf);
}
Example #2
0
/* 
 * Write out a preference list.
 */
static void wprefs(void *sesskey, char *name, const struct keyval *mapping,
		int nvals, int *array) {
	char buf[80] = ""; /* XXX assumed big enough */
	int l = sizeof(buf) - 1, i;
	buf[l] = '\0';
	for (i = 0; l > 0 && i < nvals; i++) {
		const char *s = val2key(mapping, nvals, array[i]);
		if (s) {
			int sl = strlen(s);
			if (i > 0) {
				strncat(buf, ",", l);
				l--;
			}
			strncat(buf, s, l);
			l -= sl;
		}
	}
	write_setting_s(sesskey, name, buf);
}