mirror of
https://github.com/rn10950/RetroZilla.git
synced 2024-11-09 09:20:15 +01:00
161 lines
7.0 KiB
Plaintext
161 lines
7.0 KiB
Plaintext
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/* ***** BEGIN LICENSE BLOCK *****
|
|
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
*
|
|
* The contents of this file are subject to the Mozilla Public License Version
|
|
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
* the License. You may obtain a copy of the License at
|
|
* http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
* for the specific language governing rights and limitations under the
|
|
* License.
|
|
*
|
|
* The Original Code is mozilla.org code.
|
|
*
|
|
* The Initial Developer of the Original Code is
|
|
* Netscape Communications Corporation.
|
|
* Portions created by the Initial Developer are Copyright (C) 1998
|
|
* the Initial Developer. All Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
*
|
|
* Alternatively, the contents of this file may be used under the terms of
|
|
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
|
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
* of those above. If you wish to allow use of your version of this file only
|
|
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
* use your version of this file under the terms of the MPL, indicate your
|
|
* decision by deleting the provisions above and replace them with the notice
|
|
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
* the provisions above, a recipient may use your version of this file under
|
|
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
*
|
|
* ***** END LICENSE BLOCK ***** */
|
|
|
|
#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(10A88A11-729E-11d2-804A-006008128C4E)]
|
|
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.
|
|
|
|
The returned value is the number of addresses, or a negative error code;
|
|
the names and addresses are returned into the provided pointers as
|
|
consecutive null-terminated strings. It is up to the caller to free them.
|
|
Note that some of the strings may be zero-length.
|
|
|
|
The caller may pass nsnull for charset and it will be interpreted as "us-ascii".
|
|
|
|
Either of the provided pointers may be NULL if the caller is not interested
|
|
in those components.
|
|
*/
|
|
[noscript] void parseHeaderAddresses (in string charset, in string line, out string names,
|
|
out string addresses, out PRUint32 numAddresses);
|
|
|
|
/* Given a string which contains a list of Header addresses, returns a
|
|
comma-separated list of just the `mailbox' portions.
|
|
|
|
The caller may pass nsnull for charset and it will be interpreted as "us-ascii".
|
|
|
|
Caller must call PL_strfree on returnValue (which is allocated by the function)
|
|
*/
|
|
string extractHeaderAddressMailboxes (in string charset, in string line);
|
|
|
|
|
|
/* 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.
|
|
|
|
The caller may pass nsnull for charset and it will be interpreted as "us-ascii".
|
|
|
|
Caller must PL_strfree usernames.
|
|
*/
|
|
[noscript] void extractHeaderAddressNames (in string charset, in string line, out string userNames);
|
|
|
|
/* Like MSG_ExtractHeaderAddressNames(), but only returns the first name
|
|
in the list, if there is more than one.
|
|
|
|
The caller may pass nsnull for charset and it will be interpreted as "us-ascii".
|
|
|
|
Caller must call PL_strfree on name
|
|
*/
|
|
[noscript] void extractHeaderAddressName (in string charset, in string line, out string name);
|
|
|
|
/* 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.
|
|
|
|
The caller may pass nsnull for charset and it will be interpreted as "us-ascii".
|
|
|
|
Caller must call PL_strfree on reformattedAddress
|
|
*/
|
|
[noscript] void reformatHeaderAddresses (in string charset, in string line,
|
|
out string reformattedAddress);
|
|
|
|
/* Returns a copy of ADDRS which may have had some addresses removed.
|
|
Addresses are removed if they are already in either ADDRS or OTHER_ADDRS.
|
|
(If OTHER_ADDRS contain addresses which are not in ADDRS, they are not
|
|
added. That argument is for passing in addresses that were already
|
|
mentioned in other header fields.)
|
|
|
|
Addresses are considered to be the same if they contain the same mailbox
|
|
part (case-insensitive.) Real names and other comments are not compared.
|
|
|
|
removeAliasesToMe allows the address parser to use the preference which
|
|
contains regular expressions which also mean 'me' for the purpose of
|
|
stripping the user's email address(es) out of addrs
|
|
|
|
The caller may pass nsnull for charset and it will be interpreted as "us-ascii".
|
|
|
|
Caller must call PL_strfree on newAddress which is the return value.
|
|
*/
|
|
[noscript] void removeDuplicateAddresses (in string charset, in string addrs, in string other_addrs,
|
|
in PRBool removeAliasesToMe, out string newAddress);
|
|
|
|
|
|
/* Given an e-mail address and a person's name, cons them together into a
|
|
single string of the form "name <address>", doing all the necessary quoting.
|
|
A new string is returned, which you must free when you're done with it.
|
|
|
|
The caller may pass nsnull for charset and it will be interpreted as "us-ascii".
|
|
|
|
Caller must call PL_strfree on fullAddress (this is the out parameter)
|
|
*/
|
|
[noscript] string makeFullAddress (in string charset, in string name, in string addr);
|
|
wstring makeFullAddressWString (in wstring name, in wstring addr);
|
|
|
|
/* 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);
|
|
};
|
|
|