}
if (s->sessions) {
- fputs("SESSIONS=", f);
- LIST_FOREACH(sessions_by_seat, i, s->sessions) {
+ fputs("SESSIONS=\"", f);
+ LIST_FOREACH(sessions_by_seat, i, s->sessions)
fprintf(f,
- "%s%c",
+ "%s%s",
i->id,
- i->sessions_by_seat_next ? ' ' : '\n');
- }
+ i->sessions_by_seat_next ? " " : "\"\n");
- fputs("UIDS=", f);
+ fputs("UIDS=\"", f);
LIST_FOREACH(sessions_by_seat, i, s->sessions)
fprintf(f,
- UID_FMT"%c",
+ UID_FMT"%s",
i->user->user_record->uid,
- i->sessions_by_seat_next ? ' ' : '\n');
+ i->sessions_by_seat_next ? " " : "\"\n");
}
r = flink_tmpfile(f, temp_path, s->state_file, LINK_TMPFILE_REPLACE);
static void session_save_devices(Session *s, FILE *f) {
SessionDevice *sd;
- if (!hashmap_isempty(s->devices)) {
- fprintf(f, "DEVICES=");
- HASHMAP_FOREACH(sd, s->devices)
- fprintf(f, DEVNUM_FORMAT_STR " ", DEVNUM_FORMAT_VAL(sd->dev));
- fprintf(f, "\n");
+ if (hashmap_isempty(s->devices))
+ return;
+
+ bool need_space = false;
+ fputs("DEVICES=\"", f);
+ HASHMAP_FOREACH(sd, s->devices) {
+ if (need_space)
+ fputc(' ', f);
+
+ fprintf(f, DEVNUM_FORMAT_STR, DEVNUM_FORMAT_VAL(sd->dev));
+ need_space = true;
}
+ fputs("\"\n", f);
}
int session_save(Session *s) {
if (u->sessions) {
bool first;
- fputs("SESSIONS=", f);
+ fputs("SESSIONS=\"", f);
first = true;
LIST_FOREACH(sessions_by_user, i, u->sessions) {
if (first)
fputs(i->id, f);
}
- fputs("\nSEATS=", f);
+ fputs("\"\n"
+ "SEATS=\"", f);
first = true;
LIST_FOREACH(sessions_by_user, i, u->sessions) {
if (!i->seat)
fputs(i->seat->id, f);
}
- fputs("\nACTIVE_SESSIONS=", f);
+ fputs("\"\n"
+ "ACTIVE_SESSIONS=\"", f);
first = true;
LIST_FOREACH(sessions_by_user, i, u->sessions) {
if (!session_is_active(i))
fputs(i->id, f);
}
- fputs("\nONLINE_SESSIONS=", f);
+ fputs("\"\n"
+ "ONLINE_SESSIONS=\"", f);
first = true;
LIST_FOREACH(sessions_by_user, i, u->sessions) {
if (session_get_state(i) == SESSION_CLOSING)
fputs(i->id, f);
}
- fputs("\nACTIVE_SEATS=", f);
+ fputs("\"\n"
+ "ACTIVE_SEATS=\"", f);
first = true;
LIST_FOREACH(sessions_by_user, i, u->sessions) {
if (!session_is_active(i) || !i->seat)
fputs(i->seat->id, f);
}
- fputs("\nONLINE_SEATS=", f);
+ fputs("\"\n"
+ "ONLINE_SEATS=\"", f);
first = true;
LIST_FOREACH(sessions_by_user, i, u->sessions) {
if (session_get_state(i) == SESSION_CLOSING || !i->seat)
fputs(i->seat->id, f);
}
- fputc('\n', f);
+ fputs("\"\n", f);
}
r = flink_tmpfile(f, temp_path, u->state_file, LINK_TMPFILE_REPLACE);