"Fossies" - the Fresh Open Source Software Archive 
Member "tin-2.6.2/doc/art_handling.txt" (23 Aug 2021, 2618 Bytes) of package /linux/misc/tin-2.6.2.tar.xz:
As a special service "Fossies" has tried to format the requested text file into HTML format (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
1 Basic API
2 ---------
3 An article is opened with art_open() and closed with art_close()
4 There is no side-effect, all I/O is done via a t_openartinfo.
5 art_close() is not implied anywhere - you must call it when you need to.
6
7 t_openartinfo
8 -------------
9 This is basically an 'open article context'. You can pass these around or do
10 anything with them independently of the rest of the program.
11
12 This structure contains open file pointers, one to the raw article,
13 the other to the cooked article. There is no file related to these streams.
14 If you close them, the data is lost.
15
16 Each stream has a summary array of type t_lineinfo which is an array of
17 line offsets and 'hint' flags associated with that line.
18 The array for the raw stream is built on demand since most of the time it
19 is not needed.
20 The flags are used for speedy access to parts of the article as well as
21 information about interesting things on that line.
22
23 The cooked stream lineinfo is of size 'cooked_lines' which is found in
24 the t_openartinfo structure. The size of the raw stream is stored in
25 the article structure information attached to the header.
26
27 The header contains all the useful information about the article & its
28 structure.
29
30 t_header
31 --------
32 This builds upon the header structure in tin-1.4
33 The main structure consists of pointers to the regular RFC822 headers
34
35 Every article has a pointer to an 'ext' structure (of type t_part) which holds
36 extended header information.
37
38 If there are attachments, then the ext structure is the head of a linked
39 list of attachments.
40
41 t_part
42 ------
43 There is one of these per article 'part' or attachment. The article as a
44 whole counts as 1 part so there will always be at least one of these structures
45 linked to the header.
46 Each t_part is pre-initialised to the RFC2045 defaults. (text/plain, 7bit etc..)
47 Content-* headers if present will then supersede this information.
48 The other fields are:
49 params A linked list of parameters associated with the Content-Type and
50 Content-Disposition headers
51 offset The byte offset of this attachment. The offset of header->ext is
52 the offset of the 822 body
53 lines The number of lines of raw text in this attachment. The number of
54 lines in header->ext is the total number of lines in the article
55 body
56 uue A linked list of uuencoded sections found in the current t_part
57 The uue filename is found in a parameter called 'name'
58
59
60
61 The code tries to conform to the following RFC's
62
63 1806 - Content-Disposition header
64 2045 - MIME article extensions to RFC822
65 2046 - Content-Type, multipart article structure
66 2047 - MIME encodings (most of the code still refers to 1522)