]> code.citadel.org Git - citadel.git/blobdiff - citadel/imap_tools.c
*** empty log message ***
[citadel.git] / citadel / imap_tools.c
index c54c0832c30dfbdcfff6a85a7c5d0891f87e8ee4..f0299f3bea104cf16b94c3195c141d84bf27ca62 100644 (file)
@@ -89,9 +89,9 @@ int imap_parameterize(char **args, char *buf)
 }
 
 /*
- * Convert a struct quickroom to an IMAP-compatible mailbox name.
+ * Convert a struct room to an IMAP-compatible mailbox name.
  */
-void imap_mailboxname(char *buf, int bufsize, struct quickroom *qrbuf)
+void imap_mailboxname(char *buf, int bufsize, struct room *qrbuf)
 {
        struct floor *fl;
        int i;
@@ -116,10 +116,10 @@ void imap_mailboxname(char *buf, int bufsize, struct quickroom *qrbuf)
        }
 
        /*
-        * Replace "/" characters with "|" for pseudo-folder-delimiting
+        * Replace delimiter characters with "|" for pseudo-folder-delimiting
         */
        for (i=0; i<strlen(buf); ++i) {
-               if (buf[i] == '/') buf[i] = '|';
+               if (buf[i] == FDELIM) buf[i] = '|';
        }
 }
 
@@ -167,9 +167,11 @@ int imap_roomname(char *rbuf, int bufsize, char *foldername)
                        }
                }
 
-               /* No subfolderificationalisticism on this one... */
-               strcpy(rbuf, roomname);
-               ret = 0;
+               if (ret < 0) {
+                       /* No subfolderificationalisticism on this one... */
+                       safestrncpy(rbuf, foldername, bufsize);
+                       ret = (0 | IR_MAILBOX);
+               }
 
        }
        else {
@@ -177,11 +179,23 @@ int imap_roomname(char *rbuf, int bufsize, char *foldername)
                ret = (0 | IR_MAILBOX);
        }
 
-       /* Undelimiterizationalize the room name (change '|' to '/') */
+       /* Undelimiterizationalize the room name (change '|') */
        for (i=0; i<strlen(rbuf); ++i) {
-               if (rbuf[i] == '|') rbuf[i] = '/';
+               if (rbuf[i] == '|') rbuf[i] = FDELIM;
+       }
+
+
+/*** This doesn't work.
+       char buf[SIZ];
+       if (ret & IR_MAILBOX) {
+               if (atol(rbuf) == 0L) {
+                       strcpy(buf, rbuf);
+                       sprintf(rbuf, "%010ld.%s", CC->user.usernum, buf);
+               }
        }
+ ***/
 
+       lprintf(9, "(That translates to \"%s\")\n", rbuf);
        return(ret);
 }