]> git.marmaro.de Git - mmh/blobdiff - sbr/mts.c
Sigh. Looks like we need a function after all; create a new function
[mmh] / sbr / mts.c
index 868e603c5a506170cf275963dba9cfca62e28c42..d298c88bf250817f903b4471ed910d9a083de1f7 100644 (file)
--- a/sbr/mts.c
+++ b/sbr/mts.c
@@ -54,9 +54,10 @@ char *uucplfil = "";
 char *mmdlm1 = "\001\001\001\001\n";
 char *mmdlm2 = "\001\001\001\001\n";
 
-/* Cache the username and fullname of the user */
+/* Cache the username, fullname, and mailbox of the user */
 static char username[BUFSIZ];
 static char fullname[BUFSIZ];
+static char localmbox[BUFSIZ];
 
 /* Variables for username masquerading: */
        boolean  draft_from_masquerading = FALSE;  /* also used from post.c */
@@ -351,6 +352,34 @@ getfullname (void)
 }
 
 
+/*
+ * Get the full local mailbox name.  This is in the form:
+ *
+ * User Name <user@name.com>
+ */
+
+char *
+getlocalmbox (void)
+{
+    if (username[0] == '\0')
+       getuserinfo();
+
+    if (localmbox[0] == '\0') {
+       char *cp;
+
+       if ((cp = context_find("Local-Mailbox")) != NULL) {
+           strncpy(localmbox, cp, sizeof(localmbox));
+       } else {
+           snprintf(localmbox, sizeof(localmbox), "%s <%s@%s>", fullname,
+                    username, LocalName(0));
+       }
+
+       localmbox[sizeof(localmbox) - 1] = '\0';
+    }
+
+    return localmbox;
+}
+
 /*
  * Find the user's username and full name, and cache them.
  * Also, handle "mmailid" username masquerading controlled from the GECOS field
@@ -429,6 +458,8 @@ getuserinfo (void)
 
     fullname[sizeof(fullname) - 1] = '\0';
 
+    localmbox[0] = '\0';
+
     return;
 }