dmose%mozilla.org 9fc7780ead updating license boilerplate to xPL v1.1
git-svn-id: svn://10.0.0.236/trunk@52523 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 06:20:05 +00:00

159 lines
4.6 KiB
C

/*
* The contents of this file are subject to the Netscape 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/NPL/
*
* 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 the Netscape Messaging Access SDK Version 3.5 code,
* released on or about June 15, 1998. *
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s): ______________________________________.
*/
/*
* Copyright (c) 1997 and 1998 Netscape Communications Corporation
* (http://home.netscape.com/misc/trademarks.html)
*/
/*
* util.h
* prasad
* carsonl, oct 10,97
*/
#ifndef UTIL_H
#define UTIL_H
#ifdef __cplusplus
extern "C" {
#endif
#define null NULL
#define TRUE 1
#define FALSE 0
#define LOG_FILE "error.log"
#define BASE64_NOFIT -1
#define BASE64_SOMELEFT -2
/* log structure */
typedef struct errorLog
{
FILE *m_pFile; /* file pointer */
char m_achFilename[128]; /* log filename */
BOOLEAN m_bActive; /* TRUE if you want output to log file */
} errorLog_t;
typedef struct buf_instream_tracker
{
char * pDataBuf; /* data buffer */
long total_size; /* totoal buffer size */
long bytes_read; /* number of bytes read */
char * pNext;
} buf_instream_tracker_t;
typedef struct file_instream_tracker
{
FILE * fp;
char * file_name;
long bytes_read;
} file_instream_tracker_t;
typedef struct file_outstream_tracker
{
FILE * fp;
char * file_name;
long bytes_written;
} file_outstream_tracker_t;
/* string utilities */
int bStringEquals( char *s1, char *s2 ); /* equals */
char *szTrim( char *s ); /* all trim */
char *szRTrim( char *s ); /* right trim */
char *szLTrim( char *s ); /* left trim */
char *szStringClone( char *s ); /* clone */
BOOLEAN bIsBasicPart( int nType ); /* test if type is a basicpart */
/* base64 utilities */
int decodeBase64 (char *szInput, char *szOutput,
int nInputBufferSize, int nMaxBufferSize,
int *pOut_byte, int *pOut_bits);
int decodeBase64Vector (int nStart, int nEnd, Vector *v,
char **szDecodedBuffer, int nRawMessageSize,
int *pOut_byte, int *pOut_bits );
/* quoted printable utilities */
int decodeQP (char *szInput, char *szOutput, int nMaxBufferSize);
int decodeQPVector (int nStart, int nEnd, Vector *v,
char **szDecodedBuffer, int nRawMessageSize, char *szLeftOverBytes,
int *nNoOfLeftOverBytes);
/* misc */
char *decodeHeader (char *szInputString);
int nConvertHexToDec (int nFirstByte, int nSecondByte);
char * generateBoundary();
int append_str (char * dest, char * src);
/* If s1 equals s2, returns TRUE, FALSE otherwise. */
BOOLEAN equalsIgnoreCase (char * s1, char * s2);
char * getFileExtn (char * fileName);
char * getFileShortName (char * fileName);
/* inputstream utilities */
long get_inputstream_size (struct nsmail_inputstream * pTheStream);
int buf_instream_create (char * pDataBuf, long data_size,
struct nsmail_inputstream ** ppRetInputStream);
int buf_instream_read (void * rock, char *buf, int size);
void buf_instream_rewind (void * rock);
void buf_instream_close (void * rock);
int file_instream_create (char * fileName, struct nsmail_inputstream ** ppRetInputStream);
void file_instream_close (void * rock);
void file_instream_rewind (void * rock);
int file_instream_read (void * rock, char *buf, int size);
int file_outstream_create (char * fileName, nsmail_outputstream_t ** ppRetOutputStream);
void file_outstream_close (void * rock);
/* log utilities */
errorLog_t *errorLog_new( char *szFilename ); /* constructor */
void errorLog_free( errorLog_t *pLog ); /* destructor, calls closeLog() automatically */
void initErrorLog( char *szFilename ); /* init */
void closeErrorLog(); /* close log */
void errorLog (char *szOwner, int nError); /* report error to log */
void errorLog2 (errorLog_t *pLog, char *szOwner, int nError); /* report error to log */
void errorLogMsg( char *szMsg ); /* display custom error message */
void errorLogMsg2 (errorLog_t *pLog, char *szMsg); /* display custom error message */
void errorLogOn(); /* turn log on */
void errorLogOff(); /* turn log off */
#ifdef __cplusplus
}
#endif
#endif /* UTIL_H */