/usr/share/idl/thunderbird/nsIMsgHeaderParser.idl is in thunderbird-dev 1:24.4.0+build1-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsISupports.idl"
#include "nsrootidl.idl"
interface nsISimpleEnumerator;
%{C++
#define NS_MAILNEWS_MIME_HEADER_PARSER_CONTRACTID \
"@mozilla.org/messenger/headerparser;1"
%}
/*
* nsIMsgRFCParser Interface declaration
*/
[scriptable, uuid(a67d4d96-e5cb-458d-9311-794d5d1a9832)]
interface nsIMsgHeaderParser : nsISupports {
void parseHeadersWithArray(in wstring aLine,
[array, size_is(count)] out wstring aEmailAddresses,
[array, size_is(count)] out wstring aNames,
[array, size_is(count)] out wstring aFullNames,
[retval] out unsigned long count);
/**
* Given a string which contains a list of Header addresses, parses it into
* their component names and mailboxes.
*
* @param aLine The header line to parse.
* @param aNames A string of the names in the header line. The names
* are separated by null-terminators.
* This param may be null if the caller does not want
* this part of the result.
* @param aAddresses A string of the addresses in the header line. The
* addresses are separated by null-terminators.
* This param may be null if the caller does not want
* this part of the result.
* @param aNumAddresses The number of addresses in the header. If this is
* negative, there has been an error parsing the
* header.
*/
[noscript] void parseHeaderAddresses(in string aLine, out string aNames,
out string aAddresses,
out uint32_t aNumAddresses);
/**
* Given a string which contains a list of Header addresses, returns a
* comma-separated list of just the `mailbox' portions.
*
* @param aLine The header line to parse.
* @return A comma-separated list of just the mailbox parts
* of the email-addresses.
*/
ACString extractHeaderAddressMailboxes(in ACString aLine);
/**
* Given a string which contains a list of Header addresses, returns a
* comma-separated list of just the `user name' portions. If any of
* the addresses doesn't have a name, then the mailbox is used instead.
*
* @param aLine The header line to parse.
* @return A comma-separated list of just the name parts
* of the addresses.
*/
AUTF8String extractHeaderAddressNames(in AUTF8String aLine);
/*
* Like extractHeaderAddressNames, but only returns the first name in the
* header if there is one. This function will return unquoted strings suitable
* for display.
*
* @param aLine The header line to parse.
* @return The first name found in the list.
*/
AUTF8String extractHeaderAddressName(in AUTF8String aLine);
/**
* Given a string which contains a list of Header addresses, returns a new
* string with the same data, but inserts missing commas, parses and reformats
* it, and wraps long lines with newline-tab.
*
* @param aLine The header line to parse.
* @return The reformatted header line.
*/
[noscript] string reformatHeaderAddresses(in string aLine);
/**
* Returns a copy of the input which may have had some addresses removed.
* Addresses are removed if they are already in either of the supplied
* address lists.
*
* Addresses are considered to be the same if they contain the same mailbox
* part (case-insensitive.) Real names and other comments are not compared.
*
* @param aAddrs The addresses to remove duplicates from.
* @param aOtherAddrs Other addresses that the duplicate removal
* process also checks for duplicates against.
* Addresses in this list will not be added to the
* result.
* @return A string based on the original without the
* duplicate addresses.
*/
AUTF8String removeDuplicateAddresses(in AUTF8String aAddrs,
in AUTF8String aOtherAddrs);
/**
* Given an e-mail address and a person's name, cons them together into a
* single string, doing all the necessary quoting.
*
* @param aName The name of the sender.
* @param aAddress The address of the sender.
* @return A string of the form name <address>.
*/
AString makeFullAddress(in AString aName, in AString aAddress);
/**
* Given an e-mail address and a person's name, cons them together into a
* single string, doing all the necessary quoting (const char* version).
*
* @param aName The name of the sender. This should be in UTF-8.
* @param aAddress The address of the sender. This should be in UTF-8.
* @return A string of the form name <address>.
*/
[noscript] string makeFullAddressString(in string aName, in string aAddress);
/* This function removes the quoting if you want to show the
names to users. e.g. summary file, address book. If preserveIntegrity is set to true,
quote will not be removed in case the name part of the email contains a comma.
*/
[noscript] string unquotePhraseOrAddr (in string line, in boolean preserveIntegrity);
wstring unquotePhraseOrAddrWString (in wstring line, in boolean preserveIntegrity);
/* Given a string, will make it safe to use by adding missing quote and escaping needed quote */
wstring reformatUnquotedAddresses(in wstring line);
};
|