+static int
+add_num_time_t (string, max, num)
+ char *string;
+ int max;
+ time_t num;
+{
+ /* This buffer is large enough to hold the character representation
+ (including the trailing NUL) of any unsigned decimal quantity
+ whose binary representation fits in 128 bits. */
+ char buf[40];
+ int length;
+
+ if (sizeof (num) > 16)
+ abort ();
+ sprintf (buf, "%lu", (unsigned long) num);
+ length = add_str (string, buf, max);
+ return length;
+}
+
+/* Convert MINUTES_EAST into a string suitable for use as the RFC-822
+ timezone indicator. Write no more than MAX bytes into STRING.
+ Return the number of bytes written into STRING. */
+
+static int
+add_num_tz (string, max, minutes_east)
+ char *string;
+ int max;
+ int minutes_east;
+{
+ int length;
+
+ if (max < 1)
+ return 0;
+
+ if (minutes_east < 0)
+ {
+ *string = '-';
+ minutes_east = -minutes_east;
+ }
+ else
+ *string = '+';
+
+ length = 1 + add_num2 (&string[1], (minutes_east / 60) % 24, max - 1, zero);
+ length += add_num2 (&string[length], minutes_east % 60, max - length, zero);
+
+ return length;
+}
+