コード例 #1
0
ファイル: sprite.c プロジェクト: juxstapose/stykfighta
void sprite_load_meta_file(char* filename, DArray *meta_info) {
    FILE *file = fopen ( filename, "r" );
    char line[LINE_BUFF_SIZE];
    char* pch;
    memset(line, '\0', LINE_BUFF_SIZE);
    darray_init(meta_info);
    if ( file != NULL ) {
        while(fgets(line, sizeof line, file) != NULL) {
            int val = 0;
            fputs (line, stdout);
            pch = strtok (line," ,.-");
            val = atoi(pch);
            darray_add(meta_info, val);
            while(pch != NULL) {
                //printf ("%i\n",val);
                pch = strtok (NULL, " ,.-");
                if(pch != NULL) {
                    val = atoi(pch);
                    darray_add(meta_info, val);
                }
            } 
        }
        fclose(file);
   }
   else {
      perror(filename);
   } 
}
コード例 #2
0
ファイル: optconstvar.c プロジェクト: dmsc/tbxl-parser
// Update constant value. Returns current count of constant values found and updates tree
static int update_cvalue(const expr *ex, cvalue_list *l)
{
    cvalue val;
    memset(&val, 0, sizeof(val));

    if( expr_is_cnum(ex) )
    {
        val.num = ex->num;
    }
    else if( expr_is_cstr(ex) )
    {
        val.str = ex->str;
        val.slen = ex->slen;
    }
    else if( ex )
        return update_cvalue(ex->lft, l) + update_cvalue(ex->rgt, l);
    else
        return 0;

    cvalue *n = cvalue_list_find(l, &val);
    if( n )
    {
        n->count ++;
        return 0;
    }
    else
    {
        // Insert new value with count == 1
        val.count = 1;
        darray_add(l, val);
        return 1;
    }
}