Free Hero Mesh

Check-in [102b5912d7]
Login
This is a mirror of the main repository for Free Hero Mesh. New tickets and changes will not be accepted at this mirror.
Overview
Comment:Correct some mistakes in the dealing with multibyte characters.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 102b5912d7aa2653a37895752d2b899a4ade363c
User & Date: user on 2023-05-17 20:20:13
Other Links: manifest | tags
Context
2023-07-11
06:59
Implement new SQL functions GAMEOVER, LEVEL_CODE, and LEVEL_VERSION. check-in: 032593e3cb user: user tags: trunk
2023-05-17
20:20
Correct some mistakes in the dealing with multibyte characters. check-in: 102b5912d7 user: user tags: trunk
2023-05-12
06:43
Add WARPED message. check-in: 1ba87a8fa2 user: user tags: trunk
Changes

Modified class.c from [3f858bcddb] to [3051994863].

319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
      valid_part_of_code(c&0xFF);
      valid_part_of_code((c>>8)&0xFF);
      valid_part_of_code((c>>16)&0xFF);
      if((c>>16)!=p) {
        if(o+(c>>24)>=0x1FFB) ParseError("Converted string too long\n");
        memset(tokenstr+o,0xFE,x=(c>>24)+1);
        o+=x;
        tokenstr[o++]=c>>16;
      }
      tokenstr[o++]=c>>8; tokenstr[o++]=c;
    }
  }
  tokenstr[o]=0;
}
#endif // CONFIG_OMIT_MBCS







|







319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
      valid_part_of_code(c&0xFF);
      valid_part_of_code((c>>8)&0xFF);
      valid_part_of_code((c>>16)&0xFF);
      if((c>>16)!=p) {
        if(o+(c>>24)>=0x1FFB) ParseError("Converted string too long\n");
        memset(tokenstr+o,0xFE,x=(c>>24)+1);
        o+=x;
        tokenstr[o++]=p=c>>16;
      }
      tokenstr[o++]=c>>8; tokenstr[o++]=c;
    }
  }
  tokenstr[o]=0;
}
#endif // CONFIG_OMIT_MBCS
2878
2879
2880
2881
2882
2883
2884

2885

2886
2887
2888
2889
2890
2891
2892
        case OP_MISC5: define_user_flags(0x1020,0x103F); break;
        case OP_MISC6: define_user_flags(0x1040,0x105F); break;
        case OP_MISC7: define_user_flags(0x1060,0x107F); break;
        case OP_COLLISIONLAYERS: define_user_flags(0x1080,0x1087); break;
        case OP_CODEPAGE:
          nxttok();
          if(tokent!=TF_INT || tokenv<1 || tokenv>0x7FFFFF) ParseError("Number from 1 to 8388607 expected\n");

          if(tokenv==460800 || tokenv==954) has_mbcs=1;

          set_code_page(tokenv);
          nxttok();
          if(tokent!=TF_CLOSE) ParseError("Expected close parenthesis\n");
          break;
        case OP_ORDER:
          if(norders) ParseError("Extra (Order) block\n");
          parse_order_block();







>

>







2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
        case OP_MISC5: define_user_flags(0x1020,0x103F); break;
        case OP_MISC6: define_user_flags(0x1040,0x105F); break;
        case OP_MISC7: define_user_flags(0x1060,0x107F); break;
        case OP_COLLISIONLAYERS: define_user_flags(0x1080,0x1087); break;
        case OP_CODEPAGE:
          nxttok();
          if(tokent!=TF_INT || tokenv<1 || tokenv>0x7FFFFF) ParseError("Number from 1 to 8388607 expected\n");
#ifndef CONFIG_OMIT_MBCS
          if(tokenv==460800 || tokenv==954) has_mbcs=1;
#endif
          set_code_page(tokenv);
          nxttok();
          if(tokent!=TF_CLOSE) ParseError("Expected close parenthesis\n");
          break;
        case OP_ORDER:
          if(norders) ParseError("Extra (Order) block\n");
          parse_order_block();