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