trn valid_message_id() rejects valid message ids

Eamonn McManus em at dce.ie
Fri Jan 11 06:13:55 AEST 1991


When looking at message ids in References lines, trn performs a number of
checks to see if they are valid.  Apart from the obvious test of
well-formedness, which ensures that each id has the form <... at ...>, it
considers invalid any id whose local part contains any lower case letter
and no digits.  This is the relevant code, from mt_process.c:

    /* Try to weed-out non-ids (user at domain) by looking for lower-case without
    ** digits in the unique portion.  B news ids are all digits; standard C
    ** news are digits with mixed case; and Zeeff message ids are any mixture
    ** of digits, certain punctuation characters and upper-case.
    */
    lower_case = 0;
    do {
	if( *start <= '9' && *start >= '0' ) {
	    return 1;					/* RETURN */
	}
	lower_case = lower_case || (*start >= 'a' && *start <= 'z');
    } while( ++start < mid );

    return !lower_case;

As a consequence, any followup to this article <whyme at dce.ie> will be
divorced from its parent, appearing as a parallel thread if it preserves
the Subject line, or as a completely different thread if the Subject is
changed.

What I would like to know is, What is the above test trying to accomplish?
How would <user at domain> get into a References or Message-Id line in the
first place?  Is there any reason why I should not hack the above code out
of mt-process.c (as in fact I have)?

,
Eamonn



More information about the Comp.sources.bugs mailing list