|
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 */
|