/*++ /* NAME /* is_header 3 /* SUMMARY /* message header classification /* SYNOPSIS /* #include <is_header.h> /* /* ssize_t is_header(string) /* const char *string; /* /* ssize_t is_header_buf(string, len) /* const char *string; /* ssize_t len; /* DESCRIPTION /* is_header() examines the given string and returns non-zero (true) /* when it begins with a mail header name + optional space + colon. /* The result is the length of the mail header name. /* /* is_header_buf() is a more elaborate interface for use with strings /* that may not be null terminated. /* STANDARDS /* RFC 822 (ARPA Internet Text Messages) /* LICENSE /* .ad /* .fi /* The Secure Mailer license must be distributed with this software. /* AUTHOR(S) /* Wietse Venema /* IBM T.J. Watson Research /* P.O. Box 704 /* Yorktown Heights, NY 10598, USA
/*--*/
/* System library. */
#include"sys_defs.h" #include <ctype.h>
/* Global library. */
#include"is_header.h"
/* is_header_buf - determine if this can be a header line */
ssize_t is_header_buf(constchar *str, ssize_t str_len)
{ constunsignedchar *cp; int state; int c;
ssize_t len;
/* *XXXRFC2822Section4.5,Obsoleteheaderfields:whitespacemay *appearbetweenheaderlabeland":"(see:RFC822,Section3.4.2.). * *XXXDon'trunofftheendincasesomenon-standardiscntrl() *implementationconsidersnullanon-controlcharacter...
*/ for (len = 0, state = INIT, cp = CU_CHAR_PTR(str); /* see below */ ; cp++) { if (str_len != IS_HEADER_NULL_TERMINATED && str_len-- <= 0) return (0); switch (c = *cp) { default: if (c == 0 || !ISASCII(c) || ISCNTRL(c)) return (0); if (state == INIT)
state = IN_CHAR; if (state == IN_CHAR) {
len++; continue;
} return (0); case' ': case'\t': if (state == IN_CHAR)
state = IN_CHAR_SPACE; if (state == IN_CHAR_SPACE) continue; return (0); case':': return ((state == IN_CHAR || state == IN_CHAR_SPACE) ? len : 0);
}
} /* Redundant return for future proofing. */ return (0);
}
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.17Bemerkung:
(vorverarbeitet am 2026-09-27)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.