@@ -819,25 +819,13 @@ mbfl_strpos(
819
819
size_t result ;
820
820
mbfl_string _haystack_u8 , _needle_u8 ;
821
821
const mbfl_string * haystack_u8 , * needle_u8 = NULL ;
822
- const unsigned char * u8_tbl ;
823
-
824
- if (haystack == NULL || haystack -> val == NULL || needle == NULL || needle -> val == NULL ) {
825
- return (size_t ) -8 ;
826
- }
827
-
828
- {
829
- const mbfl_encoding * u8_enc = & mbfl_encoding_utf8 ;
830
- if (u8_enc -> mblen_table == NULL ) {
831
- return (size_t ) -8 ;
832
- }
833
- u8_tbl = u8_enc -> mblen_table ;
834
- }
822
+ const unsigned char * u8_tbl = mbfl_encoding_utf8 .mblen_table ;
835
823
836
824
if (haystack -> encoding -> no_encoding != mbfl_no_encoding_utf8 ) {
837
825
mbfl_string_init (& _haystack_u8 );
838
826
haystack_u8 = mbfl_convert_encoding (haystack , & _haystack_u8 , & mbfl_encoding_utf8 );
839
827
if (haystack_u8 == NULL ) {
840
- result = ( size_t ) -4 ;
828
+ result = MBFL_ERROR_ENCODING ;
841
829
goto out ;
842
830
}
843
831
} else {
@@ -848,14 +836,14 @@ mbfl_strpos(
848
836
mbfl_string_init (& _needle_u8 );
849
837
needle_u8 = mbfl_convert_encoding (needle , & _needle_u8 , & mbfl_encoding_utf8 );
850
838
if (needle_u8 == NULL ) {
851
- result = ( size_t ) -4 ;
839
+ result = MBFL_ERROR_ENCODING ;
852
840
goto out ;
853
841
}
854
842
} else {
855
843
needle_u8 = needle ;
856
844
}
857
845
858
- result = ( size_t ) -1 ;
846
+ result = MBFL_ERROR_NOT_FOUND ;
859
847
if (haystack_u8 -> len < needle_u8 -> len ) {
860
848
goto out ;
861
849
}
@@ -898,7 +886,7 @@ mbfl_strpos(
898
886
p = haystack_u8_val ;
899
887
while (offset -- > 0 ) {
900
888
if (p >= e ) {
901
- result = ( size_t ) -16 ;
889
+ result = MBFL_ERROR_OFFSET ;
902
890
goto out ;
903
891
}
904
892
p += u8_tbl [* p ];
@@ -968,7 +956,7 @@ mbfl_strpos(
968
956
while (offset < 0 ) {
969
957
unsigned char c ;
970
958
if (p <= e ) {
971
- result = ( size_t ) -16 ;
959
+ result = MBFL_ERROR_OFFSET ;
972
960
goto out ;
973
961
}
974
962
c = * (-- p );
@@ -983,7 +971,7 @@ mbfl_strpos(
983
971
const unsigned char * ee = haystack_u8_val + haystack_u8 -> len ;
984
972
while (offset -- > 0 ) {
985
973
if (e >= ee ) {
986
- result = ( size_t ) -16 ;
974
+ result = MBFL_ERROR_OFFSET ;
987
975
goto out ;
988
976
}
989
977
e += u8_tbl [* e ];
@@ -1046,28 +1034,25 @@ mbfl_substr_count(
1046
1034
mbfl_convert_filter * filter ;
1047
1035
struct collector_strpos_data pc ;
1048
1036
1049
- if (haystack == NULL || needle == NULL ) {
1050
- return (size_t ) -8 ;
1051
- }
1052
1037
/* needle is converted into wchar */
1053
1038
mbfl_wchar_device_init (& pc .needle );
1054
1039
filter = mbfl_convert_filter_new (
1055
1040
needle -> encoding ,
1056
1041
& mbfl_encoding_wchar ,
1057
1042
mbfl_wchar_device_output , 0 , & pc .needle );
1058
1043
if (filter == NULL ) {
1059
- return ( size_t ) -4 ;
1044
+ return MBFL_ERROR_ENCODING ;
1060
1045
}
1061
1046
mbfl_convert_filter_feed_string (filter , needle -> val , needle -> len );
1062
1047
mbfl_convert_filter_flush (filter );
1063
1048
mbfl_convert_filter_delete (filter );
1064
1049
pc .needle_len = pc .needle .pos ;
1065
1050
if (pc .needle .buffer == NULL ) {
1066
- return ( size_t ) -4 ;
1051
+ return MBFL_ERROR_ENCODING ;
1067
1052
}
1068
- if (pc .needle_len < = 0 ) {
1053
+ if (pc .needle_len = = 0 ) {
1069
1054
mbfl_wchar_device_clear (& pc .needle );
1070
- return ( size_t ) -2 ;
1055
+ return MBFL_ERROR_EMPTY ;
1071
1056
}
1072
1057
/* initialize filter and collector data */
1073
1058
filter = mbfl_convert_filter_new (
@@ -1076,26 +1061,26 @@ mbfl_substr_count(
1076
1061
collector_strpos , 0 , & pc );
1077
1062
if (filter == NULL ) {
1078
1063
mbfl_wchar_device_clear (& pc .needle );
1079
- return ( size_t ) -4 ;
1064
+ return MBFL_ERROR_ENCODING ;
1080
1065
}
1081
1066
pc .start = 0 ;
1082
1067
pc .output = 0 ;
1083
1068
pc .needle_pos = 0 ;
1084
1069
pc .found_pos = 0 ;
1085
- pc .matched_pos = ( size_t ) -1 ;
1070
+ pc .matched_pos = MBFL_ERROR_NOT_FOUND ;
1086
1071
1087
1072
/* feed data */
1088
1073
p = haystack -> val ;
1089
1074
n = haystack -> len ;
1090
1075
if (p != NULL ) {
1091
1076
while (n > 0 ) {
1092
1077
if ((* filter -> filter_function )(* p ++ , filter ) < 0 ) {
1093
- pc .matched_pos = ( size_t ) -4 ;
1078
+ pc .matched_pos = MBFL_ERROR_ENCODING ;
1094
1079
break ;
1095
1080
}
1096
- if (pc .matched_pos != ( size_t ) -1 ) {
1081
+ if (pc .matched_pos != MBFL_ERROR_NOT_FOUND ) {
1097
1082
++ result ;
1098
- pc .matched_pos = ( size_t ) -1 ;
1083
+ pc .matched_pos = MBFL_ERROR_NOT_FOUND ;
1099
1084
pc .needle_pos = 0 ;
1100
1085
}
1101
1086
n -- ;
0 commit comments