]> mj.ucw.cz Git - libucw.git/blobdiff - charset/charconv.h
Don't forget to increase run counter.
[libucw.git] / charset / charconv.h
index 808e661358f6218b3241d0cf5d72ce9a939d2474..ed775b137b0e26cf27c2fa893f87452aedbaf1f1 100644 (file)
@@ -1,12 +1,15 @@
 /*
 /*
- *     Character Set Conversion Library 1.1
+ *     Character Set Conversion Library 1.2
  *
  *
- *     (c) 1998--2001 Martin Mares <mj@ucw.cz>
+ *     (c) 1998--2005 Martin Mares <mj@ucw.cz>
  *
  *     This software may be freely distributed and used according to the terms
  *     of the GNU Lesser General Public License.
  */
 
  *
  *     This software may be freely distributed and used according to the terms
  *     of the GNU Lesser General Public License.
  */
 
+#ifndef _CHARSET_CHARCONV_H
+#define _CHARSET_CHARCONV_H
+
 struct conv_context {
 
   /* Parameters supplied by the caller */
 struct conv_context {
 
   /* Parameters supplied by the caller */
@@ -20,9 +23,11 @@ struct conv_context {
   /* Internal variables */
 
   int (*convert)(struct conv_context *);
   /* Internal variables */
 
   int (*convert)(struct conv_context *);
+  int source_charset, dest_charset;
   unsigned short int *in_to_x;
   unsigned short int *x_to_out;
   unsigned short int *in_to_x;
   unsigned short int *x_to_out;
-  unsigned int state, value;
+  unsigned int state, code, remains;
+  unsigned char *string_at;
 };
 
 void conv_init(struct conv_context *);
 };
 
 void conv_init(struct conv_context *);
@@ -51,6 +56,7 @@ enum charset_id {
        CONV_CHARSET_ISO_8859_15,
        CONV_CHARSET_ISO_8859_16,
        CONV_CHARSET_WIN1250,
        CONV_CHARSET_ISO_8859_15,
        CONV_CHARSET_ISO_8859_16,
        CONV_CHARSET_WIN1250,
+       CONV_CHARSET_WIN1251,
        CONV_CHARSET_WIN1252,
        CONV_CHARSET_KAMCS,
        CONV_CHARSET_CSN369103,
        CONV_CHARSET_WIN1252,
        CONV_CHARSET_KAMCS,
        CONV_CHARSET_CSN369103,
@@ -61,6 +67,10 @@ enum charset_id {
        CONV_NUM_CHARSETS
 };
 
        CONV_NUM_CHARSETS
 };
 
+/* Conversion of a single character between current non-UTF8 charset and Unicode */
+int conv_in_to_ucs(struct conv_context *c, unsigned int y);
+int conv_ucs_to_out(struct conv_context *c, unsigned int ucs);
+
 /* For those brave ones who want to mess with charconv internals */
 unsigned int conv_x_to_ucs(unsigned int x);
 unsigned int conv_ucs_to_x(unsigned int ucs);
 /* For those brave ones who want to mess with charconv internals */
 unsigned int conv_x_to_ucs(unsigned int x);
 unsigned int conv_ucs_to_x(unsigned int ucs);
@@ -70,3 +80,5 @@ unsigned int conv_x_count(void);
 
 int find_charset_by_name(char *);
 char *charset_name(int);
 
 int find_charset_by_name(char *);
 char *charset_name(int);
+
+#endif