Blame WWW/Library/Implementation/UCMap.h

Packit f574b8
/*
Packit f574b8
 * $LynxId: UCMap.h,v 1.28 2014/12/07 14:40:40 tom Exp $
Packit f574b8
 */
Packit f574b8
#ifndef UCMAP_H
Packit f574b8
#define UCMAP_H
Packit f574b8
Packit f574b8
#ifndef HTUTILS_H
Packit f574b8
#include <HTUtils.h>
Packit f574b8
#endif
Packit f574b8
Packit f574b8
#ifdef __cplusplus
Packit f574b8
extern "C" {
Packit f574b8
#endif
Packit f574b8
Packit f574b8
#define UCS_HIDE 0xffff
Packit f574b8
#define UCS_REPL 0xfffd
Packit f574b8
Packit f574b8
    typedef enum {
Packit f574b8
	ucError = -1,
Packit f574b8
	ucZeroWidth = -2,
Packit f574b8
	ucInvalidHash = -3,
Packit f574b8
	ucNotFound = -4,
Packit f574b8
	ucNeedMore = -10,
Packit f574b8
	ucCannotConvert = -11,
Packit f574b8
	ucCannotOutput = -12,
Packit f574b8
	ucBufferTooSmall = -13,
Packit f574b8
	ucUnknown = -14
Packit f574b8
    } UCStatus;
Packit f574b8
Packit f574b8
    typedef long UCode_t;
Packit f574b8
Packit f574b8
    extern BOOL UCScanCode(UCode_t *, const char *, BOOL);
Packit f574b8
Packit f574b8
    extern int UCTransUniChar(UCode_t unicode,
Packit f574b8
			      int charset_out);
Packit f574b8
    extern int UCTransUniCharStr(char *outbuf,
Packit f574b8
				 int buflen,
Packit f574b8
				 UCode_t unicode,
Packit f574b8
				 int charset_out,
Packit f574b8
				 int chk_single_flag);
Packit f574b8
    extern int UCTransChar(int ch_in,
Packit f574b8
			   int charset_in,
Packit f574b8
			   int charset_out);
Packit f574b8
    extern int UCReverseTransChar(int ch_out,
Packit f574b8
				  int charset_in,
Packit f574b8
				  int charset_out);
Packit f574b8
    extern int UCTransCharStr(char *outbuf,
Packit f574b8
			      int buflen,
Packit f574b8
			      int ch_in,
Packit f574b8
			      int charset_in,
Packit f574b8
			      int charset_out,
Packit f574b8
			      int chk_single_flag);
Packit f574b8
#ifdef EXP_JAPANESEUTF8_SUPPORT
Packit f574b8
    extern UCode_t UCTransJPToUni(char *inbuf,
Packit f574b8
				  int buflen,
Packit f574b8
				  int charset_in);
Packit f574b8
#endif
Packit f574b8
    extern UCode_t UCTransToUni(int ch_in,
Packit f574b8
				int charset_in);
Packit f574b8
    extern int UCGetRawUniMode_byLYhndl(int i);
Packit f574b8
    extern int UCGetLYhndl_byMIME(const char *p);	/* returns -1 if name not recognized */
Packit f574b8
    extern int safeUCGetLYhndl_byMIME(const char *p);	/* returns LATIN1 if name not recognized */
Packit f574b8
Packit f574b8
#ifdef USE_LOCALE_CHARSET
Packit f574b8
    extern void LYFindLocaleCharset(void);
Packit f574b8
#endif
Packit f574b8
Packit f574b8
    extern int UCLYhndl_for_unspec;
Packit f574b8
    extern int UCLYhndl_for_unrec;
Packit f574b8
    extern int UCLYhndl_HTFile_for_unspec;
Packit f574b8
    extern int UCLYhndl_HTFile_for_unrec;
Packit f574b8
Packit f574b8
/* easy to type: */
Packit f574b8
    extern int LATIN1;		/* UCGetLYhndl_byMIME("iso-8859-1") */
Packit f574b8
    extern int US_ASCII;	/* UCGetLYhndl_byMIME("us-ascii")   */
Packit f574b8
    extern int UTF8_handle;	/* UCGetLYhndl_byMIME("utf-8")      */
Packit f574b8
Packit f574b8
#undef TRANSPARENT		/* defined on Solaris in <sys/stream.h> */
Packit f574b8
    extern int TRANSPARENT;	/* UCGetLYhndl_byMIME("x-transparent")  */
Packit f574b8
Packit f574b8
/*
Packit f574b8
In general, Lynx translates letters from document charset to display charset.
Packit f574b8
If document charset is not specified or not recognized by Lynx, we fall back
Packit f574b8
to different assumptions below, read also lynx.cfg for info.
Packit f574b8
Packit f574b8
UCLYhndl_for_unspec -  assume this as charset for documents that don't
Packit f574b8
                       specify a charset parameter in HTTP headers or via META
Packit f574b8
                       this corresponds to "assume_charset"
Packit f574b8
Packit f574b8
UCLYhndl_HTFile_for_unspec -  assume this as charset of local file
Packit f574b8
                       this corresponds to "assume_local_charset"
Packit f574b8
Packit f574b8
UCLYhndl_for_unrec  -  in case a charset parameter is not recognized;
Packit f574b8
                       this corresponds to "assume_unrec_charset"
Packit f574b8
Packit f574b8
UCLYhndl_HTFile_for_unrec  - the same but only for local files,
Packit f574b8
                             currently not used.
Packit f574b8
Packit f574b8
current_char_set  -	this corresponds to "display charset",
Packit f574b8
			declared in LYCharSets.c and really important.
Packit f574b8
Packit f574b8
All external charset information is available in so called MIME format.
Packit f574b8
For internal needs Lynx uses charset handlers as integers
Packit f574b8
from UCGetLYhndl_byMIME().  However, there is no way to recover
Packit f574b8
from user's error in configuration file lynx.cfg or command line switches,
Packit f574b8
those unrecognized MIME names are assumed as LATIN1 (via safeUCGetLYhndl...).
Packit f574b8
*/
Packit f574b8
Packit f574b8
#define UCTRANS_NOTFOUND (-4)
Packit f574b8
Packit f574b8
#ifdef __cplusplus
Packit f574b8
}
Packit f574b8
#endif
Packit f574b8
#endif				/* UCMAP_H */