@@ -21,7 +21,7 @@ in the source distribution for its full text.
2121
2222#define charBytes (n ) (sizeof(CharType) * (n))
2323
24- static void RichString_extendLen (RichString * this , int len ) {
24+ static void RichString_extendLen (RichString * this , size_t len ) {
2525 if (this -> chptr == this -> chstr ) {
2626 // String is in internal buffer
2727 if (len > RICHSTRING_MAXLEN ) {
@@ -46,13 +46,13 @@ static void RichString_extendLen(RichString* this, int len) {
4646 }
4747
4848 RichString_setChar (this , len , 0 );
49- this -> chlen = len ;
49+ this -> chlen = ( int ) len ;
5050}
5151
52- static void RichString_setLen (RichString * this , int len ) {
52+ static void RichString_setLen (RichString * this , size_t len ) {
5353 if (len < RICHSTRING_MAXLEN && this -> chlen < RICHSTRING_MAXLEN ) {
5454 RichString_setChar (this , len , 0 );
55- this -> chlen = len ;
55+ this -> chlen = ( int ) len ;
5656 } else {
5757 RichString_extendLen (this , len );
5858 }
@@ -97,33 +97,33 @@ static size_t mbstowcs_nonfatal(wchar_t* restrict dest, const char* restrict src
9797 return written ;
9898}
9999
100- static inline int RichString_writeFromWide (RichString * this , int attrs , const char * data_c , int from , int len ) {
100+ static inline int RichString_writeFromWide (RichString * this , int attrs , const char * data_c , int from , size_t len ) {
101101 wchar_t data [len ];
102102 len = mbstowcs_nonfatal (data , data_c , len );
103103 if (len <= 0 )
104104 return 0 ;
105105
106- int newLen = from + len ;
106+ size_t newLen = from + len ;
107107 RichString_setLen (this , newLen );
108- for (int i = from , j = 0 ; i < newLen ; i ++ , j ++ ) {
108+ for (size_t i = from , j = 0 ; i < newLen ; i ++ , j ++ ) {
109109 this -> chptr [i ] = (CharType ) { .attr = attrs & 0xffffff , .chars = { (iswprint (data [j ]) ? data [j ] : L'\xFFFD' ) } };
110110 }
111111
112- return len ;
112+ return ( int ) len ;
113113}
114114
115- int RichString_appendnWideColumns (RichString * this , int attrs , const char * data_c , int len , int * columns ) {
115+ int RichString_appendnWideColumns (RichString * this , int attrs , const char * data_c , size_t len , int * columns ) {
116116 wchar_t data [len ];
117117 len = mbstowcs_nonfatal (data , data_c , len );
118118 if (len <= 0 )
119119 return 0 ;
120120
121121 int from = this -> chlen ;
122- int newLen = from + len ;
122+ size_t newLen = from + len ;
123123 RichString_setLen (this , newLen );
124124 int columnsWritten = 0 ;
125125 int pos = from ;
126- for (int j = 0 ; j < len ; j ++ ) {
126+ for (size_t j = 0 ; j < len ; j ++ ) {
127127 wchar_t c = iswprint (data [j ]) ? data [j ] : L'\xFFFD' ;
128128 int cwidth = wcwidth (c );
129129 if (cwidth > * columns )
@@ -142,20 +142,20 @@ int RichString_appendnWideColumns(RichString* this, int attrs, const char* data_
142142 return pos - from ;
143143}
144144
145- static inline int RichString_writeFromAscii (RichString * this , int attrs , const char * data , int from , int len ) {
146- int newLen = from + len ;
145+ static inline int RichString_writeFromAscii (RichString * this , int attrs , const char * data , int from , size_t len ) {
146+ size_t newLen = from + len ;
147147 RichString_setLen (this , newLen );
148- for (int i = from , j = 0 ; i < newLen ; i ++ , j ++ ) {
148+ for (size_t i = from , j = 0 ; i < newLen ; i ++ , j ++ ) {
149149 assert ((unsigned char )data [j ] <= SCHAR_MAX );
150150 this -> chptr [i ] = (CharType ) { .attr = attrs & 0xffffff , .chars = { (isprint ((unsigned char )data [j ]) ? data [j ] : L'\xFFFD' ) } };
151151 }
152152
153- return len ;
153+ return ( int ) len ;
154154}
155155
156- inline void RichString_setAttrn (RichString * this , int attrs , int start , int charcount ) {
157- int end = CLAMP (start + charcount , 0 , this -> chlen );
158- for (int i = start ; i < end ; i ++ ) {
156+ inline void RichString_setAttrn (RichString * this , int attrs , size_t start , size_t charcount ) {
157+ size_t end = CLAMP (start + charcount , 0 , ( size_t ) this -> chlen );
158+ for (size_t i = start ; i < end ; i ++ ) {
159159 this -> chptr [i ].attr = attrs ;
160160 }
161161}
@@ -182,30 +182,31 @@ int RichString_findChar(const RichString* this, char c, int start) {
182182
183183#else /* HAVE_LIBNCURSESW */
184184
185- static inline int RichString_writeFromWide (RichString * this , int attrs , const char * data_c , int from , int len ) {
186- int newLen = from + len ;
185+ static inline int RichString_writeFromWide (RichString * this , int attrs , const char * data_c , int from , size_t len ) {
186+ size_t newLen = from + len ;
187187 RichString_setLen (this , newLen );
188- for (int i = from , j = 0 ; i < newLen ; i ++ , j ++ ) {
188+ for (size_t i = from , j = 0 ; i < newLen ; i ++ , j ++ ) {
189189 this -> chptr [i ] = (((unsigned char )data_c [j ]) >= 32 ? ((unsigned char )data_c [j ]) : '?' ) | attrs ;
190190 }
191191 this -> chptr [newLen ] = 0 ;
192192
193193 return len ;
194194}
195195
196- int RichString_appendnWideColumns (RichString * this , int attrs , const char * data_c , int len , int * columns ) {
197- int written = RichString_writeFromWide (this , attrs , data_c , this -> chlen , MINIMUM (len , * columns ));
196+ int RichString_appendnWideColumns (RichString * this , int attrs , const char * data_c , size_t len , int * columns ) {
197+ size_t minlen = MINIMUM (len , (size_t ) * columns );
198+ int written = RichString_writeFromWide (this , attrs , data_c , this -> chlen , minlen );
198199 * columns = written ;
199200 return written ;
200201}
201202
202- static inline int RichString_writeFromAscii (RichString * this , int attrs , const char * data_c , int from , int len ) {
203+ static inline int RichString_writeFromAscii (RichString * this , int attrs , const char * data_c , int from , size_t len ) {
203204 return RichString_writeFromWide (this , attrs , data_c , from , len );
204205}
205206
206- void RichString_setAttrn (RichString * this , int attrs , int start , int charcount ) {
207- int end = CLAMP (start + charcount , 0 , this -> chlen );
208- for (int i = start ; i < end ; i ++ ) {
207+ void RichString_setAttrn (RichString * this , int attrs , size_t start , size_t charcount ) {
208+ size_t end = CLAMP (start + charcount , 0 , ( size_t ) this -> chlen );
209+ for (size_t i = start ; i < end ; i ++ ) {
209210 this -> chptr [i ] = (this -> chptr [i ] & 0xff ) | attrs ;
210211 }
211212}
@@ -246,7 +247,7 @@ int RichString_appendWide(RichString* this, int attrs, const char* data) {
246247 return RichString_writeFromWide (this , attrs , data , this -> chlen , strlen (data ));
247248}
248249
249- int RichString_appendnWide (RichString * this , int attrs , const char * data , int len ) {
250+ int RichString_appendnWide (RichString * this , int attrs , const char * data , size_t len ) {
250251 return RichString_writeFromWide (this , attrs , data , this -> chlen , len );
251252}
252253
@@ -258,7 +259,7 @@ int RichString_appendAscii(RichString* this, int attrs, const char* data) {
258259 return RichString_writeFromAscii (this , attrs , data , this -> chlen , strlen (data ));
259260}
260261
261- int RichString_appendnAscii (RichString * this , int attrs , const char * data , int len ) {
262+ int RichString_appendnAscii (RichString * this , int attrs , const char * data , size_t len ) {
262263 return RichString_writeFromAscii (this , attrs , data , this -> chlen , len );
263264}
264265
0 commit comments