]> diplodocus.org Git - nmh/blobdiff - sbr/message_id.c
mhbuildsbr.c: Flip logic, moving goto to then-block; no need for else.
[nmh] / sbr / message_id.c
index 8c1386651d7b02cff44fc62ad10d3a3d9197aecc..a66d8764dcc5424218b30fc9c999d83496adeda6 100644 (file)
@@ -7,6 +7,8 @@
  */
 
 #include <h/mh.h>
+#include "m_rand.h"
+#include "message_id.h"
 #include <sys/time.h>  /* for gettimeofday() */
 
 
@@ -36,18 +38,19 @@ char *
 message_id (time_t tclock, int content_id) {
   switch (message_id_style) {
     case NMH_MESSAGE_ID_LOCALNAME: {
-      char *format = content_id  ?  "<%d.%ld.%%d@%s>"  :  "<%d.%ld@%s>";
-
-      snprintf (message_id_, sizeof message_id_, format,
-                (int) getpid (), (long) tclock, LocalName (1));
-
+#define P(fmt) \
+    snprintf(message_id_, sizeof message_id_, \
+        (fmt), (int)getpid(), (long)tclock, LocalName(1))
+
+            if (content_id)
+                P("<%d.%ld.%%d@%s>");
+            else
+                P("<%d.%ld@%s>");
+#undef P
       break;
     }
 
     case NMH_MESSAGE_ID_RANDOM: {
-      char *format = content_id
-        ?  "<%d-%ld.%06ld%%d@%.*s.%.*s.%.*s>"
-        :  "<%d-%ld.%06ld@%.*s.%.*s.%.*s>";
       /* Use a sequence of digits divisible by 3 because that will
          expand to base64 without any waste.  Must be shorter than 58,
          see below. */
@@ -93,11 +96,18 @@ message_id (time_t tclock, int content_id) {
         /* The format string inserts a couple of dots, for the benefit
            of spam filters that want to see a message id with a final
            part that resembles a hostname. */
-        snprintf (message_id_, sizeof message_id_, format,
-                  getpid (), (long) now.tv_sec, (long) now.tv_usec,
-                  one_third, rnd_base64,
-                  one_third, &rnd_base64[one_third],
-                  one_third, &rnd_base64[2*one_third]);
+#define P(fmt) \
+    snprintf(message_id_, sizeof message_id_, (fmt), \
+        getpid(), (long)now.tv_sec, (long)now.tv_usec, \
+        (int)one_third, rnd_base64, \
+        (int)one_third, &rnd_base64[one_third], \
+        (int)one_third, &rnd_base64[2*one_third])
+
+            if (content_id)
+                P("<%d-%ld.%06ld%%d@%.*s.%.*s.%.*s>");
+            else
+                P("<%d-%ld.%06ld@%.*s.%.*s.%.*s>");
+#undef P
       }
 
       break;