static int mailmime_size_parm_parse(const char * message, size_t length, size_t * indx, size_t * result) { uint32_t value; size_t cur_token; int r; cur_token = * indx; r = mailimf_token_case_insensitive_parse(message, length, &cur_token, "size"); if (r != MAILIMF_NO_ERROR) return r; r = mailimf_unstrict_char_parse(message, length, &cur_token, '='); if (r != MAILIMF_NO_ERROR) return r; r = mailimf_cfws_parse(message, length, &cur_token); if ((r != MAILIMF_NO_ERROR) && (r != MAILIMF_ERROR_PARSE)) return r; r = mailimf_number_parse(message, length, &cur_token, &value); if (r != MAILIMF_NO_ERROR) return r; * indx = cur_token; * result = value; return MAILIMF_NO_ERROR; }
LIBETPAN_EXPORT int mailmime_version_parse(const char * message, size_t length, size_t * indx, uint32_t * result) { size_t cur_token; uint32_t hi; uint32_t low; uint32_t version; int r; cur_token = * indx; r = mailimf_number_parse(message, length, &cur_token, &hi); if (r != MAILIMF_NO_ERROR) return r; r = mailimf_unstrict_char_parse(message, length, &cur_token, '.'); if (r != MAILIMF_NO_ERROR) return r; r = mailimf_cfws_parse(message, length, &cur_token); if ((r != MAILIMF_NO_ERROR) && (r != MAILIMF_ERROR_PARSE)) return r; r = mailimf_number_parse(message, length, &cur_token, &low); if (r != MAILIMF_NO_ERROR) return r; version = (hi << 16) + low; * result = version; * indx = cur_token; return MAILIMF_NO_ERROR; }