@@ -24,6 +24,54 @@ static uint8_t pm_encoding_ascii_table[256] = {
24
24
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // Fx
25
25
};
26
26
27
+ /**
28
+ * Each element of the following table contains a bitfield that indicates a
29
+ * piece of information about the corresponding CP850 character.
30
+ */
31
+ static uint8_t pm_encoding_cp850_table [256 ] = {
32
+ // 0 1 2 3 4 5 6 7 8 9 A B C D E F
33
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // 0x
34
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // 1x
35
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // 2x
36
+ 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , // 3x
37
+ 0 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , // 4x
38
+ 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 0 , 0 , 0 , 0 , 0 , // 5x
39
+ 0 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , // 6x
40
+ 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 0 , 0 , 0 , 0 , 0 , // 7x
41
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // 8x
42
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // 9x
43
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // Ax
44
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // Bx
45
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // Cx
46
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // Dx
47
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // Ex
48
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // Fx
49
+ };
50
+
51
+ /**
52
+ * Each element of the following table contains a bitfield that indicates a
53
+ * piece of information about the corresponding CP852 character.
54
+ */
55
+ static uint8_t pm_encoding_cp852_table [256 ] = {
56
+ // 0 1 2 3 4 5 6 7 8 9 A B C D E F
57
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // 0x
58
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // 1x
59
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // 2x
60
+ 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , // 3x
61
+ 0 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , // 4x
62
+ 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 7 , 0 , 0 , 0 , 0 , 0 , // 5x
63
+ 0 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , // 6x
64
+ 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 0 , 0 , 0 , 0 , 0 , // 7x
65
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // 8x
66
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // 9x
67
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // Ax
68
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // Bx
69
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // Cx
70
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // Dx
71
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // Ex
72
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // Fx
73
+ };
74
+
27
75
/**
28
76
* Each element of the following table contains a bitfield that indicates a
29
77
* piece of information about the corresponding ISO-8859-1 character.
@@ -689,6 +737,8 @@ pm_encoding_koi8_r_char_width(const uint8_t *b, PRISM_ATTRIBUTE_UNUSED ptrdiff_t
689
737
return (pm_encoding_ ##name ## _table[*b] & PRISM_ENCODING_UPPERCASE_BIT); \
690
738
}
691
739
740
+ PRISM_ENCODING_TABLE (cp850 )
741
+ PRISM_ENCODING_TABLE (cp852 )
692
742
PRISM_ENCODING_TABLE (iso_8859_1 )
693
743
PRISM_ENCODING_TABLE (iso_8859_2 )
694
744
PRISM_ENCODING_TABLE (iso_8859_3 )
@@ -717,9 +767,9 @@ PRISM_ENCODING_TABLE(windows_1258)
717
767
718
768
#undef PRISM_ENCODING_TABLE
719
769
720
- /** ASCII encoding */
770
+ /** US- ASCII encoding */
721
771
pm_encoding_t pm_encoding_ascii = {
722
- .name = "ascii " ,
772
+ .name = "US-ASCII " ,
723
773
.char_width = pm_encoding_ascii_char_width ,
724
774
.alnum_char = pm_encoding_ascii_alnum_char ,
725
775
.alpha_char = pm_encoding_ascii_alpha_char ,
@@ -729,17 +779,37 @@ pm_encoding_t pm_encoding_ascii = {
729
779
730
780
/** ASCII-8BIT encoding */
731
781
pm_encoding_t pm_encoding_ascii_8bit = {
732
- .name = "ascii-8bit " ,
782
+ .name = "ASCII-8BIT " ,
733
783
.char_width = pm_encoding_single_char_width ,
734
784
.alnum_char = pm_encoding_ascii_alnum_char ,
735
785
.alpha_char = pm_encoding_ascii_alpha_char ,
736
786
.isupper_char = pm_encoding_ascii_isupper_char ,
737
787
.multibyte = false
738
788
};
739
789
790
+ /** CP850 */
791
+ pm_encoding_t pm_encoding_cp850 = {
792
+ .name = "CP850" ,
793
+ .char_width = pm_encoding_single_char_width ,
794
+ .alnum_char = pm_encoding_cp850_alnum_char ,
795
+ .alpha_char = pm_encoding_cp850_alpha_char ,
796
+ .isupper_char = pm_encoding_cp850_isupper_char ,
797
+ .multibyte = false
798
+ };
799
+
800
+ /** CP852 */
801
+ pm_encoding_t pm_encoding_cp852 = {
802
+ .name = "CP852" ,
803
+ .char_width = pm_encoding_single_char_width ,
804
+ .alnum_char = pm_encoding_cp852_alnum_char ,
805
+ .alpha_char = pm_encoding_cp852_alpha_char ,
806
+ .isupper_char = pm_encoding_cp852_isupper_char ,
807
+ .multibyte = false
808
+ };
809
+
740
810
/** ISO-8859-1 */
741
811
pm_encoding_t pm_encoding_iso_8859_1 = {
742
- .name = "iso -8859-1" ,
812
+ .name = "ISO -8859-1" ,
743
813
.char_width = pm_encoding_single_char_width ,
744
814
.alnum_char = pm_encoding_iso_8859_1_alnum_char ,
745
815
.alpha_char = pm_encoding_iso_8859_1_alpha_char ,
@@ -749,7 +819,7 @@ pm_encoding_t pm_encoding_iso_8859_1 = {
749
819
750
820
/** ISO-8859-2 */
751
821
pm_encoding_t pm_encoding_iso_8859_2 = {
752
- .name = "iso -8859-2" ,
822
+ .name = "ISO -8859-2" ,
753
823
.char_width = pm_encoding_single_char_width ,
754
824
.alnum_char = pm_encoding_iso_8859_2_alnum_char ,
755
825
.alpha_char = pm_encoding_iso_8859_2_alpha_char ,
@@ -759,7 +829,7 @@ pm_encoding_t pm_encoding_iso_8859_2 = {
759
829
760
830
/** ISO-8859-3 */
761
831
pm_encoding_t pm_encoding_iso_8859_3 = {
762
- .name = "iso -8859-3" ,
832
+ .name = "ISO -8859-3" ,
763
833
.char_width = pm_encoding_single_char_width ,
764
834
.alnum_char = pm_encoding_iso_8859_3_alnum_char ,
765
835
.alpha_char = pm_encoding_iso_8859_3_alpha_char ,
@@ -769,7 +839,7 @@ pm_encoding_t pm_encoding_iso_8859_3 = {
769
839
770
840
/** ISO-8859-4 */
771
841
pm_encoding_t pm_encoding_iso_8859_4 = {
772
- .name = "iso -8859-4" ,
842
+ .name = "ISO -8859-4" ,
773
843
.char_width = pm_encoding_single_char_width ,
774
844
.alnum_char = pm_encoding_iso_8859_4_alnum_char ,
775
845
.alpha_char = pm_encoding_iso_8859_4_alpha_char ,
@@ -779,7 +849,7 @@ pm_encoding_t pm_encoding_iso_8859_4 = {
779
849
780
850
/** ISO-8859-5 */
781
851
pm_encoding_t pm_encoding_iso_8859_5 = {
782
- .name = "iso -8859-5" ,
852
+ .name = "ISO -8859-5" ,
783
853
.char_width = pm_encoding_single_char_width ,
784
854
.alnum_char = pm_encoding_iso_8859_5_alnum_char ,
785
855
.alpha_char = pm_encoding_iso_8859_5_alpha_char ,
@@ -789,7 +859,7 @@ pm_encoding_t pm_encoding_iso_8859_5 = {
789
859
790
860
/** ISO-8859-6 */
791
861
pm_encoding_t pm_encoding_iso_8859_6 = {
792
- .name = "iso -8859-6" ,
862
+ .name = "ISO -8859-6" ,
793
863
.char_width = pm_encoding_single_char_width ,
794
864
.alnum_char = pm_encoding_iso_8859_6_alnum_char ,
795
865
.alpha_char = pm_encoding_iso_8859_6_alpha_char ,
@@ -799,7 +869,7 @@ pm_encoding_t pm_encoding_iso_8859_6 = {
799
869
800
870
/** ISO-8859-7 */
801
871
pm_encoding_t pm_encoding_iso_8859_7 = {
802
- .name = "iso -8859-7" ,
872
+ .name = "ISO -8859-7" ,
803
873
.char_width = pm_encoding_single_char_width ,
804
874
.alnum_char = pm_encoding_iso_8859_7_alnum_char ,
805
875
.alpha_char = pm_encoding_iso_8859_7_alpha_char ,
@@ -809,7 +879,7 @@ pm_encoding_t pm_encoding_iso_8859_7 = {
809
879
810
880
/** ISO-8859-8 */
811
881
pm_encoding_t pm_encoding_iso_8859_8 = {
812
- .name = "iso -8859-8" ,
882
+ .name = "ISO -8859-8" ,
813
883
.char_width = pm_encoding_single_char_width ,
814
884
.alnum_char = pm_encoding_iso_8859_8_alnum_char ,
815
885
.alpha_char = pm_encoding_iso_8859_8_alpha_char ,
@@ -819,7 +889,7 @@ pm_encoding_t pm_encoding_iso_8859_8 = {
819
889
820
890
/** ISO-8859-9 */
821
891
pm_encoding_t pm_encoding_iso_8859_9 = {
822
- .name = "iso -8859-9" ,
892
+ .name = "ISO -8859-9" ,
823
893
.char_width = pm_encoding_single_char_width ,
824
894
.alnum_char = pm_encoding_iso_8859_9_alnum_char ,
825
895
.alpha_char = pm_encoding_iso_8859_9_alpha_char ,
@@ -829,7 +899,7 @@ pm_encoding_t pm_encoding_iso_8859_9 = {
829
899
830
900
/** ISO-8859-10 */
831
901
pm_encoding_t pm_encoding_iso_8859_10 = {
832
- .name = "iso -8859-10" ,
902
+ .name = "ISO -8859-10" ,
833
903
.char_width = pm_encoding_single_char_width ,
834
904
.alnum_char = pm_encoding_iso_8859_10_alnum_char ,
835
905
.alpha_char = pm_encoding_iso_8859_10_alpha_char ,
@@ -839,7 +909,7 @@ pm_encoding_t pm_encoding_iso_8859_10 = {
839
909
840
910
/** ISO-8859-11 */
841
911
pm_encoding_t pm_encoding_iso_8859_11 = {
842
- .name = "iso -8859-11" ,
912
+ .name = "ISO -8859-11" ,
843
913
.char_width = pm_encoding_single_char_width ,
844
914
.alnum_char = pm_encoding_iso_8859_11_alnum_char ,
845
915
.alpha_char = pm_encoding_iso_8859_11_alpha_char ,
@@ -849,7 +919,7 @@ pm_encoding_t pm_encoding_iso_8859_11 = {
849
919
850
920
/** ISO-8859-13 */
851
921
pm_encoding_t pm_encoding_iso_8859_13 = {
852
- .name = "iso -8859-13" ,
922
+ .name = "ISO -8859-13" ,
853
923
.char_width = pm_encoding_single_char_width ,
854
924
.alnum_char = pm_encoding_iso_8859_13_alnum_char ,
855
925
.alpha_char = pm_encoding_iso_8859_13_alpha_char ,
@@ -859,7 +929,7 @@ pm_encoding_t pm_encoding_iso_8859_13 = {
859
929
860
930
/** ISO-8859-14 */
861
931
pm_encoding_t pm_encoding_iso_8859_14 = {
862
- .name = "iso -8859-14" ,
932
+ .name = "ISO -8859-14" ,
863
933
.char_width = pm_encoding_single_char_width ,
864
934
.alnum_char = pm_encoding_iso_8859_14_alnum_char ,
865
935
.alpha_char = pm_encoding_iso_8859_14_alpha_char ,
@@ -869,7 +939,7 @@ pm_encoding_t pm_encoding_iso_8859_14 = {
869
939
870
940
/** ISO-8859-15 */
871
941
pm_encoding_t pm_encoding_iso_8859_15 = {
872
- .name = "iso -8859-15" ,
942
+ .name = "ISO -8859-15" ,
873
943
.char_width = pm_encoding_single_char_width ,
874
944
.alnum_char = pm_encoding_iso_8859_15_alnum_char ,
875
945
.alpha_char = pm_encoding_iso_8859_15_alpha_char ,
@@ -879,7 +949,7 @@ pm_encoding_t pm_encoding_iso_8859_15 = {
879
949
880
950
/** ISO-8859-16 */
881
951
pm_encoding_t pm_encoding_iso_8859_16 = {
882
- .name = "iso -8859-16" ,
952
+ .name = "ISO -8859-16" ,
883
953
.char_width = pm_encoding_single_char_width ,
884
954
.alnum_char = pm_encoding_iso_8859_16_alnum_char ,
885
955
.alpha_char = pm_encoding_iso_8859_16_alpha_char ,
@@ -889,7 +959,7 @@ pm_encoding_t pm_encoding_iso_8859_16 = {
889
959
890
960
/** KOI8-R */
891
961
pm_encoding_t pm_encoding_koi8_r = {
892
- .name = "koi8-r " ,
962
+ .name = "KOI8-R " ,
893
963
.char_width = pm_encoding_koi8_r_char_width ,
894
964
.alnum_char = pm_encoding_koi8_r_alnum_char ,
895
965
.alpha_char = pm_encoding_koi8_r_alpha_char ,
@@ -899,7 +969,7 @@ pm_encoding_t pm_encoding_koi8_r = {
899
969
900
970
/** Windows-1250 */
901
971
pm_encoding_t pm_encoding_windows_1250 = {
902
- .name = "windows -1250" ,
972
+ .name = "Windows -1250" ,
903
973
.char_width = pm_encoding_single_char_width ,
904
974
.alnum_char = pm_encoding_windows_1250_alnum_char ,
905
975
.alpha_char = pm_encoding_windows_1250_alpha_char ,
@@ -909,7 +979,7 @@ pm_encoding_t pm_encoding_windows_1250 = {
909
979
910
980
/** Windows-1251 */
911
981
pm_encoding_t pm_encoding_windows_1251 = {
912
- .name = "windows -1251" ,
982
+ .name = "Windows -1251" ,
913
983
.char_width = pm_encoding_single_char_width ,
914
984
.alnum_char = pm_encoding_windows_1251_alnum_char ,
915
985
.alpha_char = pm_encoding_windows_1251_alpha_char ,
@@ -919,7 +989,7 @@ pm_encoding_t pm_encoding_windows_1251 = {
919
989
920
990
/** Windows-1252 */
921
991
pm_encoding_t pm_encoding_windows_1252 = {
922
- .name = "windows -1252" ,
992
+ .name = "Windows -1252" ,
923
993
.char_width = pm_encoding_single_char_width ,
924
994
.alnum_char = pm_encoding_windows_1252_alnum_char ,
925
995
.alpha_char = pm_encoding_windows_1252_alpha_char ,
@@ -929,7 +999,7 @@ pm_encoding_t pm_encoding_windows_1252 = {
929
999
930
1000
/** Windows-1253 */
931
1001
pm_encoding_t pm_encoding_windows_1253 = {
932
- .name = "windows -1253" ,
1002
+ .name = "Windows -1253" ,
933
1003
.char_width = pm_encoding_single_char_width ,
934
1004
.alnum_char = pm_encoding_windows_1253_alnum_char ,
935
1005
.alpha_char = pm_encoding_windows_1253_alpha_char ,
@@ -939,7 +1009,7 @@ pm_encoding_t pm_encoding_windows_1253 = {
939
1009
940
1010
/** Windows-1254 */
941
1011
pm_encoding_t pm_encoding_windows_1254 = {
942
- .name = "windows -1254" ,
1012
+ .name = "Windows -1254" ,
943
1013
.char_width = pm_encoding_single_char_width ,
944
1014
.alnum_char = pm_encoding_windows_1254_alnum_char ,
945
1015
.alpha_char = pm_encoding_windows_1254_alpha_char ,
@@ -949,7 +1019,7 @@ pm_encoding_t pm_encoding_windows_1254 = {
949
1019
950
1020
/** Windows-1255 */
951
1021
pm_encoding_t pm_encoding_windows_1255 = {
952
- .name = "windows -1255" ,
1022
+ .name = "Windows -1255" ,
953
1023
.char_width = pm_encoding_single_char_width ,
954
1024
.alnum_char = pm_encoding_windows_1255_alnum_char ,
955
1025
.alpha_char = pm_encoding_windows_1255_alpha_char ,
@@ -959,7 +1029,7 @@ pm_encoding_t pm_encoding_windows_1255 = {
959
1029
960
1030
/** Windows-1256 */
961
1031
pm_encoding_t pm_encoding_windows_1256 = {
962
- .name = "windows -1256" ,
1032
+ .name = "Windows -1256" ,
963
1033
.char_width = pm_encoding_single_char_width ,
964
1034
.alnum_char = pm_encoding_windows_1256_alnum_char ,
965
1035
.alpha_char = pm_encoding_windows_1256_alpha_char ,
@@ -969,7 +1039,7 @@ pm_encoding_t pm_encoding_windows_1256 = {
969
1039
970
1040
/** Windows-1257 */
971
1041
pm_encoding_t pm_encoding_windows_1257 = {
972
- .name = "windows -1257" ,
1042
+ .name = "Windows -1257" ,
973
1043
.char_width = pm_encoding_single_char_width ,
974
1044
.alnum_char = pm_encoding_windows_1257_alnum_char ,
975
1045
.alpha_char = pm_encoding_windows_1257_alpha_char ,
@@ -979,7 +1049,7 @@ pm_encoding_t pm_encoding_windows_1257 = {
979
1049
980
1050
/** Windows-1258 */
981
1051
pm_encoding_t pm_encoding_windows_1258 = {
982
- .name = "windows -1258" ,
1052
+ .name = "Windows -1258" ,
983
1053
.char_width = pm_encoding_single_char_width ,
984
1054
.alnum_char = pm_encoding_windows_1258_alnum_char ,
985
1055
.alpha_char = pm_encoding_windows_1258_alpha_char ,
0 commit comments