diff -upk.orig gnupg-1.4.2.orig/doc/gpg.1 gnupg-1.4.2/doc/gpg.1 --- gnupg-1.4.2.orig/doc/gpg.1 2005-07-22 20:30:52 +0000 +++ gnupg-1.4.2/doc/gpg.1 2005-11-18 22:53:42 +0000 @@ -960,6 +960,8 @@ This is currently an alias for the Latin 1 set. .IP "koi8-r" 10 The usual Russian set (rfc1489). +.IP "cp1251" 10 +The cp1251 aka windows-1251 Cyrillic set. .IP "utf-8" 10 Bypass all translations and assume that the OS uses native UTF-8 encoding. diff -upk.orig gnupg-1.4.2.orig/doc/gpg.texi gnupg-1.4.2/doc/gpg.texi --- gnupg-1.4.2.orig/doc/gpg.texi 2005-07-26 18:44:12 +0000 +++ gnupg-1.4.2/doc/gpg.texi 2005-11-18 22:53:42 +0000 @@ -1180,6 +1180,9 @@ the Latin 1 set. @item koi8-r The usual Russian set (rfc1489). +@item cp1251 +The cp1251 aka windows-1251 Cyrillic set. + @item utf-8 Bypass all translations and assume that the OS uses native UTF-8 encoding. diff -upk.orig gnupg-1.4.2.orig/util/strgutil.c gnupg-1.4.2/util/strgutil.c --- gnupg-1.4.2.orig/util/strgutil.c 2005-05-31 06:30:16 +0000 +++ gnupg-1.4.2/util/strgutil.c 2005-11-18 22:53:42 +0000 @@ -71,6 +71,25 @@ static ushort koi8_unicode[128] = { 0x042c,0x042b,0x0417,0x0428,0x042d,0x0429,0x0427,0x042a }; +static ushort cp1251_unicode[128] = { + 0x0402,0x0403,0x201a,0x0453,0x201e,0x2026,0x2020,0x2021, + 0x20ac,0x2030,0x0409,0x2039,0x040a,0x040c,0x040b,0x040f, + 0x0452,0x2018,0x2019,0x201c,0x201d,0x2022,0x2013,0x2014, + 0xffff,0x2122,0x0459,0x203a,0x045a,0x045c,0x045b,0x045f, + 0x00a0,0x040e,0x045e,0x0408,0x00a4,0x0490,0x00a6,0x00a7, + 0x0401,0x00a9,0x0404,0x00ab,0x00ac,0x00ad,0x00ae,0x0407, + 0x00b0,0x00b1,0x0406,0x0456,0x0491,0x00b5,0x00b6,0x00b7, + 0x0451,0x2116,0x0454,0x00bb,0x0458,0x0405,0x0455,0x0457, + 0x0410,0x0411,0x0412,0x0413,0x0414,0x0415,0x0416,0x0417, + 0x0418,0x0419,0x041a,0x041b,0x041c,0x041d,0x041e,0x041f, + 0x0420,0x0421,0x0422,0x0423,0x0424,0x0425,0x0426,0x0427, + 0x0428,0x0429,0x042a,0x042b,0x042c,0x042d,0x042e,0x042f, + 0x0430,0x0431,0x0432,0x0433,0x0434,0x0435,0x0436,0x0437, + 0x0438,0x0439,0x043a,0x043b,0x043c,0x043d,0x043e,0x043f, + 0x0440,0x0441,0x0442,0x0443,0x0444,0x0445,0x0446,0x0447, + 0x0448,0x0449,0x044a,0x044b,0x044c,0x044d,0x044e,0x044f +}; + static ushort latin2_unicode[128] = { 0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, 0x0088,0x0089,0x008A,0x008B,0x008C,0x008D,0x008E,0x008F, @@ -651,6 +670,13 @@ set_native_charset( const char *newset ) active_charset = koi8_unicode; use_iconv = 0; } + else if( !ascii_strcasecmp( newset, "cp1251" ) + || !ascii_strcasecmp (newset, "windows-1251" ) ) { + active_charset_name = "cp1251"; + no_translation = 0; + active_charset = cp1251_unicode; + use_iconv = 0; + } else return G10ERR_GENERAL; #endif /*!USE_GNUPG_ICONV*/