File: startheader.cc

package info (click to toggle)
bobcat 1.11.0-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 3,344 kB
  • ctags: 473
  • sloc: makefile: 12,078; cpp: 5,121; ansic: 63; sh: 14
file content (37 lines) | stat: -rw-r--r-- 1,361 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "mailheaders.ih"

MailHeaders::HdrLine *MailHeaders::startHeader(string const &line)
{
                                                    // find the end of the   
    size_t pos = line.find_first_of(" \t");       // header label

    if (pos == string::npos)                        // no found: only a label
        pos = line.length();

    string label = line.substr(0, pos);             // grab the label

    size_t index = lookup(label.c_str(), FULL);   // find its index

    if (index == string::npos)                      // label not found
    {
        index = d_index.size();                     // determine the index
                                                    // to which a new element
                                                    // is added,

        d_index.push_back                           // add a new element
        (                                           // to d_index
            HdrPair(label, Hdr(1, HdrLine(1, size())))
        );
    }
    else                                            // or add new HdrEntry
                                                    // to an existing Hdr
        d_index[index].second.push_back(HdrLine(1, size()));

    return &d_index[index].second.back();           // return address of
                                                    // last used HdrEntry
}