#define BASEMAXINLINE 256
#define BASELINELEN 72
#define BASEMAXINLINE 256
-#define eol "\r\n"
+#ifdef IMAP_STORAGE
+#define ENDL "\r\n"
+#else
+#define ENDL "\n"
+#endif
#define MAX_DATETIME_FORMAT 512
#define MAX_NUM_CID_CONTEXTS 10
static int ochar(struct baseio *bio, int c, FILE *so)
{
- if (bio->linelength>=BASELINELEN) {
- if (fputs(eol,so)==EOF)
+ if (bio->linelength >= BASELINELEN) {
+ if (fputs(ENDL, so) == EOF) {
return -1;
+ }
- bio->linelength= 0;
+ bio->linelength = 0;
}
- if (putc(((unsigned char)c),so)==EOF)
+ if (putc(((unsigned char) c), so) == EOF) {
return -1;
+ }
bio->linelength++;
fclose(fi);
- if (fputs(eol,so)==EOF)
+ if (fputs(ENDL, so) == EOF) {
return 0;
+ }
return 1;
}
struct tm tm;
char *passdata = NULL, *passdata2;
size_t len_passdata = 0, len_passdata2, tmplen;
-#ifdef IMAP_STORAGE
-#define ENDL "\r\n"
-#else
-#define ENDL "\n"
-#endif
/* One alloca for multiple fields */
len_passdata2 = strlen(vmu->fullname);
memset(passdata, 0, vmlen);
prep_email_sub_vars(ast, vmu, msgnum + 1, context, mailbox, fromfolder, cidnum, cidname, dur, date, passdata, vmlen, category);
pbx_substitute_variables_helper(ast, emailbody, passdata, vmlen);
+#ifdef IMAP_STORAGE
+ {
+ /* Convert body to native line terminators for IMAP backend */
+ char *line = passdata, *next;
+ do {
+ /* Terminate line before outputting it to the file */
+ if ((next = strchr(line, '\n'))) {
+ *next++ = '\0';
+ }
+ fprintf(p, "%s" ENDL, line);
+ line = next;
+ } while (!ast_strlen_zero(line));
+ }
+#else
fprintf(p, "%s" ENDL, passdata);
+#endif
} else
ast_log(LOG_WARNING, "Cannot allocate workspace for variable substitution\n");
ast_channel_free(ast);
unlink(newtmp);
}
}
-#undef ENDL
}
+
static int sendmail(char *srcemail, struct ast_vm_user *vmu, int msgnum, char *context, char *mailbox, char *fromfolder, char *cidnum, char *cidname, char *attach, char *format, int duration, int attach_user_voicemail, struct ast_channel *chan, const char *category)
{
FILE *p=NULL;