示例#1
0
int main( int argc, char *argv[] )
{
    Huint   *src;
    Huint   *dst;

    src = (Huint*)malloc( SIZE );
    dst = (Huint*)malloc( SIZE );

    copy_bytes( (Hubyte*)dst, (Hubyte*)src, SIZE );
    copy_short( (Hushort*)dst, (Hushort*)src, SIZE/2 );
    copy_int( dst, src, SIZE/4 );
    copy_mem( dst, src, SIZE );
    copy_smart( dst, src, SIZE );

    free( src );
    free( dst );

    return 0;
}
示例#2
0
void decode_program(FILE *f)
  {
  int c;
  char next_sub=0;
  char *d;

  d=(char *)calloc(sizeof(char),16384);
  open_level=0;
  c=fgetc(f);
  while (c!=EOF)
     {
     if (c=='!')
        {
        char d[256];

        fgets(&d,256,f);
        decode_pgf1(d);
        }
     else if (isdigit(c) || c=='-')
        {
        int cislo;
        ungetc(c,f);
        get_cislo(f,&cislo);
        add_short(cislo);
        }
     else if (c=='*')
        {
        int cislo;
        get_cislo(f,&cislo);
        if (cislo!=517 && next_sub)
           {
           js_close_sub();
           next_sub=0;
           }
        if (cislo!=171 && !iff_mode) pop_and_fill(prog_pos,open_level);
        switch (cislo)
           {
           case 512:js_dialoge(f);break; //Sekce DIALOG
           case 513:js_first(f);break;   //Prikaz FIRST
           case 514:add_short(152);  //Prikaz WHEN_ITEM
                    copy_short(f);
                    add_short(140);
                    get_cislo(f,&cislo);
                    if (cislo>0)add_short(cislo);else add_short(cislo+32767-basic_num);
                    break;
           case 515:add_short(163); //prikaz WHEN_FLAG
                    copy_short(f);
                    add_short(140);
                    get_cislo(f,&cislo);
                    if (cislo>0)add_short(cislo);else add_short(cislo+32767-basic_num);
                    break;
           case 516:js_standard(f);break; //prikaz STANDARD
           case 517:js_sub(f);next_sub=1;break; //prikaz SUB
           case 520:js_sentence(f);break;   //Sekce SENTENCE
           case -1:js_close_block();break; //znak }//
           case -2: if (iff_mode) add_if_jump();else error("Neocekavany znak '{' (open_block)");
                    open_level++;
                    break; //znak {//
           case 999:save_pgf_name(f);break;
           case 169:if (iff_mode) add_if_jump(); //prikaz if
                    iff_mode=IF_NOT_JUMP;break;
           case 170:if (iff_mode!=IF_NOT_JUMP) error("NOT bez IF"); //modifikator not
                    iff_mode=IF_JUMP;break;
           case 171:if (iff_mode) error("Chybn� pou�it� p�kazu ELSE"); //prikaz else
                    add_else();break;
           case 173:set_alternative(f);break;
           default: add_short(cislo);break;
           }
        }
     else if (c=='$')
        {
        fgets(d,16384,f);
        add_string(d);
        }
     else if (c=='&')
        {
        int cislo;
        get_cislo(f,&cislo);
        add_var(cislo);
        }
     c=fgetc(f);
     }
  free(d);
  }