@@ -169,7 +169,7 @@ static const char *get_entity_iso3(char *entity_iso3_result, int ccode) {
169169
170170static void makeupper (char * s )
171171{
172- for (; * s ; * s ++ ) { * s = toupper (* s ); }
172+ while ( * s ) { * s = ( char ) toupper (* s ); s ++ ; }
173173}
174174
175175static int disambiguate_str (const char * s , const int len ) // returns disambiguation 1-8, or negative if error
@@ -829,7 +829,7 @@ static int decodeNameless(decodeRec *dec, int m) {
829829 {
830830 const int p = 31 / A ;
831831 const int r = 31 % A ;
832- int v ;
832+ int v = 0 ;
833833 int SIDE ;
834834 int swapletters = 0 ;
835835 int xSIDE ;
@@ -1250,7 +1250,8 @@ static void encodeAutoHeader(char *result, const encodeRec *enc, const int m, co
12501250 firstindex -- ;
12511251 }
12521252
1253- for (i = firstindex ; i <= m ; i ++ ) {
1253+ i = firstindex ;
1254+ for (;;) {
12541255 b = boundaries (i );
12551256 // determine how many cells
12561257 H = (b -> maxy - b -> miny + 89 ) / 90 ; // multiple of 10m
@@ -1265,37 +1266,36 @@ static void encodeAutoHeader(char *result, const encodeRec *enc, const int m, co
12651266 const int GOODROUNDER = codexm >= 23 ? (961 * 961 * 31 ) : (961 * 961 );
12661267 product = ((STORAGE_START + product + GOODROUNDER - 1 ) / GOODROUNDER ) * GOODROUNDER - STORAGE_START ;
12671268 }
1268- if (i < m ) {
1269- STORAGE_START += product ;
1270- }
1271- }
1272-
1273- {
1274- // encode
1275- const int dividerx = (b -> maxx - b -> minx + W - 1 ) / W ;
1276- const int vx = (enc -> coord32 .lon - b -> minx ) / dividerx ;
1277- const int extrax = (enc -> coord32 .lon - b -> minx ) % dividerx ;
1269+ if (i == m ) {
1270+ // encode
1271+ const int dividerx = (b -> maxx - b -> minx + W - 1 ) / W ;
1272+ const int vx = (enc -> coord32 .lon - b -> minx ) / dividerx ;
1273+ const int extrax = (enc -> coord32 .lon - b -> minx ) % dividerx ;
12781274
1279- const int dividery = (b -> maxy - b -> miny + H - 1 ) / H ;
1280- int vy = (b -> maxy - enc -> coord32 .lat ) / dividery ;
1281- int extray = (b -> maxy - enc -> coord32 .lat ) % dividery ;
1275+ const int dividery = (b -> maxy - b -> miny + H - 1 ) / H ;
1276+ int vy = (b -> maxy - enc -> coord32 .lat ) / dividery ;
1277+ int extray = (b -> maxy - enc -> coord32 .lat ) % dividery ;
12821278
1283- const int codexlen = (codexm / 10 ) + (codexm % 10 );
1284- int value = (vx / 168 ) * (H / 176 );
1279+ const int codexlen = (codexm / 10 ) + (codexm % 10 );
1280+ int value = (vx / 168 ) * (H / 176 );
12851281
1286- if (extray == 0 && enc -> fraclat > 0 ) {
1287- vy -- ;
1288- extray += dividery ;
1289- }
1282+ if (extray == 0 && enc -> fraclat > 0 ) {
1283+ vy -- ;
1284+ extray += dividery ;
1285+ }
12901286
1291- value += (vy / 176 );
1287+ value += (vy / 176 );
12921288
1293- // PIPELETTER ENCODE
1294- encodeBase31 (result , (STORAGE_START / (961 * 31 )) + value , codexlen - 2 );
1295- result [codexlen - 2 ] = '.' ;
1296- encode_triple (result + codexlen - 1 , vx % 168 , vy % 176 );
1289+ // PIPELETTER ENCODE
1290+ encodeBase31 (result , (STORAGE_START / (961 * 31 )) + value , codexlen - 2 );
1291+ result [codexlen - 2 ] = '.' ;
1292+ encode_triple (result + codexlen - 1 , vx % 168 , vy % 176 );
12971293
1298- encodeExtension (result , extrax << 2 , extray , dividerx << 2 , dividery , extraDigits , -1 , enc ); // autoheader
1294+ encodeExtension (result , extrax << 2 , extray , dividerx << 2 , dividery , extraDigits , -1 , enc ); // autoheader
1295+ return ;
1296+ }
1297+ STORAGE_START += product ;
1298+ i ++ ;
12991299 }
13001300}
13011301
@@ -1391,7 +1391,7 @@ static int decoderEngine(decodeRec *dec) {
13911391 int hasvowels = 0 ;
13921392 int hasletters = 0 ;
13931393 const char * dot = NULL ;
1394- int prelen ;
1394+ int prelen = 0 ;
13951395 int len ;
13961396 char * w ;
13971397 // skip whitesace
@@ -2062,7 +2062,7 @@ int binfindmatch(int parentcode, const char *str) {
20622062 char tmp [5 ];
20632063 if (parentcode < 0 ) { return -1 ; }
20642064 if (parentcode > 0 ) {
2065- tmp [0 ] = '0' + parentcode ;
2065+ tmp [0 ] = ( char ) ( '0' + parentcode ) ;
20662066 memcpy (tmp + 1 , str , 3 );
20672067 } else {
20682068 memcpy (tmp , str , 4 );
0 commit comments