rendered paste bodyVALUE loadlist(VALUE self,VALUE bdir){ GList *list = NULL; void *bstr = NULL; char *dir = STR2CSTR(bdir); printf("dir len: %d\n",strlen(dir)); dir = realloc(dir,sizeof(char)*strlen(dir)+sizeof(char)); if(dir==NULL){ perror("malloc dir"); exit(-1); } strcat((char *)dir,"/"); printf("afted strcat: %d\n",strlen(dir)); printf("dir: %s\n",dir); struct dirent **namelist; int n; n = scandir(dir, &namelist, 0, alphasort); if (n < 0) perror("scandir"); else { while(n--) { bstr = NULL; bstr = (char *)realloc(bstr,sizeof(char)*strlen(dir)+sizeof(char)*strlen(namelist[n]->d_name\)+sizeof(char)); if(bstr==NULL){ perror("malloc bstr"); exit(-1); } strcat(bstr,dir); strcat(bstr,namelist[n]->d_name); printf("FFF: %s\n",namelist[n]->d_name); // free(namelist[n]); printf("FILE: %s\n",(char *)bstr); list = g_list_append(list,bstr); // free(bstr); } // free(dir); // free(namelist); } printf("LAST: %s\n",g_list_first(list)->data); //xmms_remote_playlist_add(NUM2INT(rb_iv_get(self,"@session")),list); return Qnil;}