MCPcopy Create free account
hub / github.com/MailCore/mailcore2 / importIMAPReferences

Method importIMAPReferences

src/core/abstract/MCMessageHeader.cpp:927–977  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

925}
926
927void MessageHeader::importIMAPReferences(Data * data)
928{
929 size_t cur_token;
930 struct mailimf_fields * fields;
931 int r;
932 struct mailimf_single_fields single_fields;
933
934 cur_token = 0;
935 r = mailimf_fields_parse(data->bytes(), data->length(), &cur_token, &fields);
936 if (r != MAILIMF_NO_ERROR) {
937 return;
938 }
939
940 mailimf_single_fields_init(&single_fields, fields);
941 if (single_fields.fld_references != NULL) {
942 Array * msgids;
943
944 msgids = msg_id_to_string_array(single_fields.fld_references->mid_list);
945 setReferences(msgids);
946 }
947 if (single_fields.fld_subject != NULL) {
948 if (single_fields.fld_subject->sbj_value != NULL) {
949 bool broken;
950 char * value;
951 bool isASCII;
952
953 broken = false;
954 value = single_fields.fld_subject->sbj_value;
955
956 isASCII = true;
957 for(char * p = value ; * p != 0 ; p ++) {
958 if ((unsigned char) * p >= 128) {
959 isASCII = false;
960 }
961 }
962 if (strstr(value, "windows-1251") == NULL) {
963 if (isASCII) {
964 broken = true;
965 }
966 }
967
968 //MCLog("charset: %s %s", value, MCUTF8(charset));
969
970 if (!broken) {
971 setSubject(String::stringByDecodingMIMEHeaderValue(single_fields.fld_subject->sbj_value));
972 }
973 }
974 }
975
976 mailimf_fields_free(fields);
977}
978
979void MessageHeader::importIMAPInternalDate(struct mailimap_date_time * date)
980{

Callers 1

msg_att_handlerFunction · 0.80

Calls 3

msg_id_to_string_arrayFunction · 0.85
bytesMethod · 0.80
lengthMethod · 0.45

Tested by

no test coverage detected