зеркало из https://github.com/mozilla/gecko-dev.git
Modified the following files to get Unix ENDER to save Multi-part MIME:
cmd/xfe/forms.c include/edt.h lib/layout/editor.cpp lib/mailto/mhtmlstm.cpp
This commit is contained in:
Родитель
3f8bc0de7c
Коммит
4a5d7819bb
|
@ -2501,7 +2501,7 @@ htmlarea_get_value(FEFormData *fed, LO_FormElementStruct *form, XP_Bool delete_p
|
|||
|
||||
EDT_SaveToBuffer(ha_fed->editor_context, &text);
|
||||
|
||||
if (! text) return;
|
||||
/* if (! text) return; */
|
||||
|
||||
current_text = XP_FormGetCurrentText(form_data);
|
||||
default_text = XP_FormGetDefaultText(form_data);
|
||||
|
@ -2512,6 +2512,26 @@ htmlarea_get_value(FEFormData *fed, LO_FormElementStruct *form, XP_Bool delete_p
|
|||
/* XXX: Get rid of this PA_Block cast! */
|
||||
XP_FormSetCurrentText(form_data, (PA_Block)text);
|
||||
|
||||
#ifdef MOZ_ENDER_MIME
|
||||
|
||||
if (submit)
|
||||
{
|
||||
if (form_data->ele_mimearea.mime_bits)
|
||||
{
|
||||
XP_FREE(form_data->ele_mimearea.mime_bits);
|
||||
form_data->ele_mimearea.mime_bits = 0;
|
||||
}
|
||||
|
||||
EDT_SaveMimeToBuffer(ha_fed->editor_context,
|
||||
(XP_HUGE_CHAR_PTR *)&form_data->ele_mimearea.mime_bits,
|
||||
FALSE);
|
||||
|
||||
if (text)
|
||||
EDT_SetDefaultMimeHTML(ha_fed->editor_context, text);
|
||||
}
|
||||
|
||||
#endif /* MOZ_ENDER_MIME */
|
||||
|
||||
if (delete_p)
|
||||
{
|
||||
extern Widget XFE_DestroyEmbeddedEditor(Widget, MWContext *);
|
||||
|
|
|
@ -160,6 +160,7 @@ void EDT_SaveToBuffer ( MWContext * pContext, XP_HUGE_CHAR_PTR* pBuffer );
|
|||
void EDT_ReadFromBuffer ( MWContext * pContext, XP_HUGE_CHAR_PTR pBuffer );
|
||||
|
||||
#ifdef MOZ_ENDER_MIME
|
||||
ED_FileError EDT_SaveMimeToBuffer(MWContext *pContext, XP_HUGE_CHAR_PTR *pBuffer, XP_Bool async);
|
||||
void EDT_ReadMimeFromBuffer ( MWContext * pContext, XP_HUGE_CHAR_PTR pBuffer );
|
||||
#endif /*MOZ_ENDER_MIME*/
|
||||
|
||||
|
|
|
@ -40,7 +40,6 @@ extern "C" {
|
|||
#include "msgcom.h"
|
||||
#include "intl_csi.h"
|
||||
|
||||
|
||||
//extern "C" int XP_EDT_HEAD_FAILED;
|
||||
|
||||
CBitArray *edt_setNoEndTag = 0;
|
||||
|
@ -972,6 +971,34 @@ void EDT_ReadFromBuffer(MWContext* pContext, XP_HUGE_CHAR_PTR pBuffer )
|
|||
}
|
||||
|
||||
#ifdef MOZ_ENDER_MIME
|
||||
|
||||
extern "C" {
|
||||
void *MSG_CreateMimeRelatedStreamSaver(MWContext *, char **, char **);
|
||||
};
|
||||
|
||||
ED_FileError
|
||||
EDT_SaveMimeToBuffer(MWContext *pContext, XP_HUGE_CHAR_PTR *pBuffer, XP_Bool async)
|
||||
{
|
||||
ED_FileError status = ED_ERROR_NONE;
|
||||
char *pRootPartName = 0;
|
||||
void *fs = MSG_CreateMimeRelatedStreamSaver(pContext,
|
||||
&pRootPartName, (char **)pBuffer);
|
||||
|
||||
if (!fs)
|
||||
return ED_ERROR_FILE_WRITE;
|
||||
|
||||
status = EDT_SaveFileTo(pContext, ED_FINISHED_MAIL_SEND, pRootPartName, fs,
|
||||
TRUE, TRUE);
|
||||
|
||||
if (!async && status == ED_ERROR_NONE)
|
||||
{
|
||||
while ( pContext->edit_saving_url )
|
||||
FEU_StayingAlive();
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
void EDT_ReadMimeFromBuffer(MWContext* pContext, XP_HUGE_CHAR_PTR pBuffer )
|
||||
{
|
||||
GET_WRITABLE_EDIT_BUF_OR_RETURN(pContext, pEditBuffer);
|
||||
|
|
|
@ -1131,4 +1131,13 @@ MSG_MimeRelatedSaver::IsLocalPersistentFile(intn /*iFileIndex*/) {
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
extern "C" void *
|
||||
MSG_CreateMimeRelatedStreamSaver(MWContext *context,
|
||||
char **origRootURL, char **streamOut)
|
||||
{
|
||||
return ((void *)new MSG_MimeRelatedStreamSaver(
|
||||
NULL, context, NULL, FALSE, MSG_DeliverNow,
|
||||
NULL, 0, NULL, NULL, origRootURL, streamOut));
|
||||
}
|
||||
|
||||
//#endif
|
||||
|
|
Загрузка…
Ссылка в новой задаче