]> code.citadel.org Git - citadel.git/blobdiff - citadel/room_ops.c
* Every user gets a Trash folder. Clients can also use _TRASH_
[citadel.git] / citadel / room_ops.c
index 163d449117ae190dee400cb202f80be99077d00e..46490bd9dd0702c783681ec3f83aff7cc3746e91 100644 (file)
@@ -824,8 +824,8 @@ void usergoto(char *where, int display_result, int transiently,
        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);
        }
@@ -941,6 +941,9 @@ void cmd_goto(char *gargs)
        else if (!strcasecmp(towhere, "_MAIL_")) {
                safestrncpy(towhere, MAILROOM, sizeof towhere);
        }
+       else if (!strcasecmp(towhere, "_TRASH_")) {
+               safestrncpy(towhere, USERTRASHROOM, sizeof towhere);
+       }
        else if (!strcasecmp(towhere, "_BITBUCKET_")) {
                safestrncpy(towhere, config.c_twitroom, sizeof towhere);
        }