get_mm();
cdbfr = cdb_fetch(CDB_MSGLISTS, &CC->room.QRnumber, sizeof(long));
if (cdbfr != NULL) {
- msglist = malloc(cdbfr->len);
- memcpy(msglist, cdbfr->ptr, cdbfr->len);
+ msglist = (long *) cdbfr->ptr;
+ cdbfr->ptr = NULL; /* usergoto() now owns this memory */
num_msgs = cdbfr->len / sizeof(long);
cdb_free(cdbfr);
}
getuser(&CC->user, CC->curr_user);
- if (!strcasecmp(towhere, "_BASEROOM_"))
+ /*
+ * Handle some of the macro named rooms
+ */
+ if (!strcasecmp(towhere, "_BASEROOM_")) {
safestrncpy(towhere, config.c_baseroom, sizeof towhere);
-
- if (!strcasecmp(towhere, "_MAIL_"))
+ }
+ else if (!strcasecmp(towhere, "_MAIL_")) {
safestrncpy(towhere, MAILROOM, sizeof towhere);
-
- if (!strcasecmp(towhere, "_BITBUCKET_"))
+ }
+ else if (!strcasecmp(towhere, "_TRASH_")) {
+ safestrncpy(towhere, USERTRASHROOM, sizeof towhere);
+ }
+ else if (!strcasecmp(towhere, "_BITBUCKET_")) {
safestrncpy(towhere, config.c_twitroom, sizeof towhere);
-
+ }
+ else if (!strcasecmp(towhere, "_CALENDAR_")) {
+ safestrncpy(towhere, USERCALENDARROOM, sizeof towhere);
+ }
+ else if (!strcasecmp(towhere, "_TASKS_")) {
+ safestrncpy(towhere, USERTASKSROOM, sizeof towhere);
+ }
+ else if (!strcasecmp(towhere, "_CONTACTS_")) {
+ safestrncpy(towhere, USERCONTACTSROOM, sizeof towhere);
+ }
+ else if (!strcasecmp(towhere, "_NOTES_")) {
+ safestrncpy(towhere, USERNOTESROOM, sizeof towhere);
+ }
/* First try a regular match */
c = getroom(&QRscratch, towhere);
}
cprintf("%d %s|"
#ifndef HAVE_DATA_DIR
- CTDLDIR
+ "."
#else
DATA_DIR
#endif
snprintf(buf, sizeof buf, "ls "
#ifndef HAVE_DATA_DIR
- CTDLDIR
+ "."
#else
DATA_DIR
#endif
snprintf(buf, sizeof buf,
#ifndef HAVE_DATA_DIR
- CTDLDIR
+ "."
#else
DATA_DIR
#endif
if (strcasecmp(flnm, "filedir")) {
snprintf(buf, sizeof buf,
#ifndef HAVE_DATA_DIR
- CTDLDIR
+ "."
#else
DATA_DIR
#endif
if (CC->room.QRflags & QR_DIRECTORY) {
snprintf(buf, sizeof buf,
#ifndef HAVE_DATA_DIR
- CTDLDIR
+ "."
#else
DATA_DIR
#endif
/* Delete the messages in the room
* (Careful: this opens an S_ROOMS critical section!)
*/
- CtdlDeleteMessages(qrbuf->QRname, 0L, "");
+ CtdlDeleteMessages(qrbuf->QRname, 0L, "", 0);
/* Flag the room record as not in use */
lgetroom(qrbuf, qrbuf->QRname);