+ len = strlen(msg->cm_fields['I']);
+
+ if ((len == 0) || (
+ (msg->cm_fields['I'][0] == '<') &&
+ (msg->cm_fields['I'][len - 1] == '>'))
+ )
+ {
+ plain_imap_strout(msg->cm_fields['I']);
+ }
+ else
+ {
+ char *Buf = malloc(len + 3);
+ long pos = 0;
+
+ if (msg->cm_fields['I'][0] != '<')
+ {
+ Buf[pos] = '<';
+ pos ++;
+ }
+ memcpy(&Buf[pos], msg->cm_fields['I'], len);
+ pos += len;
+ if (msg->cm_fields['I'][len] != '>')
+ {
+ Buf[pos] = '>';
+ pos++;
+ }
+ Buf[pos] = '\0';
+ IPutStr(Buf, pos);
+ free(Buf);
+ }
+ IAPuts(")");