Lines 355-391
Link Here
|
355 |
|
355 |
|
356 |
for (i = 0; i < n; ++i) |
356 |
for (i = 0; i < n; ++i) |
357 |
{ |
357 |
{ |
358 |
wm_entry entry; |
358 |
wm_entry* entry = malloc(sizeof(wm_entry)); |
359 |
char *fname; |
359 |
char *fname; |
360 |
|
360 |
|
361 |
if (asprintf (&fname, "%s/%s", WM_DIR, namelist[i]->d_name) < |
361 |
if (asprintf (&fname, "%s/%s", WM_DIR, namelist[i]->d_name) < |
362 |
0) |
362 |
0) |
363 |
error (EXIT_FAILURE, errno, "asprintf"); |
363 |
error (EXIT_FAILURE, errno, "asprintf"); |
364 |
ReadWMConfig (fname, &entry); |
364 |
ReadWMConfig (fname, entry); |
365 |
if (!entry.name || !entry.icon || !entry.exec) |
365 |
if (!entry->name || !entry->icon || !entry->exec) |
366 |
{ |
366 |
{ |
367 |
error (EXIT_SUCCESS, 0, "%s: config incomplete", |
367 |
error (EXIT_SUCCESS, 0, "%s: config incomplete", |
368 |
fname); |
368 |
fname); |
369 |
free (fname); |
369 |
free (fname); |
370 |
if (entry.name) |
370 |
if (entry->name) |
371 |
free (entry.name); |
371 |
free (entry->name); |
372 |
if (entry.icon) |
372 |
if (entry->icon) |
373 |
free (entry.icon); |
373 |
free (entry->icon); |
374 |
if (entry.exec) |
374 |
if (entry->exec) |
375 |
free (entry.exec); |
375 |
free (entry->exec); |
376 |
entry.valid = 0; |
376 |
entry->valid = 0; |
377 |
memcpy (namelist[i]->d_name, (const char *) &entry, |
377 |
memcpy (namelist[i]->d_name, (const char *) &entry, |
378 |
sizeof (entry)); |
378 |
sizeof (entry)); |
379 |
continue; |
379 |
continue; |
380 |
} |
380 |
} |
381 |
free (fname); |
381 |
free (fname); |
382 |
entry.valid = 1; |
382 |
entry->valid = 1; |
383 |
memcpy (namelist[i]->d_name, (const char *) &entry, |
383 |
memcpy (namelist[i]->d_name, (const char *) &entry, |
384 |
sizeof (entry)); |
384 |
sizeof (entry)); |
385 |
++total; |
385 |
++total; |
386 |
|
386 |
|
387 |
if (!preferred) |
387 |
if (!preferred) |
388 |
preferred = entry.exec; |
388 |
preferred = entry->exec; |
389 |
} |
389 |
} |
390 |
|
390 |
|
391 |
if (total <= 6) |
391 |
if (total <= 6) |
Lines 400-406
Link Here
|
400 |
// error (EXIT_SUCCESS, 0, "total=%d, wrap_limit=%d", total, wrap_limit); |
400 |
// error (EXIT_SUCCESS, 0, "total=%d, wrap_limit=%d", total, wrap_limit); |
401 |
for (i = 0; i < n; ++i) |
401 |
for (i = 0; i < n; ++i) |
402 |
{ |
402 |
{ |
403 |
wm_entry *entry = (wm_entry *) (namelist[i]->d_name); |
403 |
wm_entry *entry = *((wm_entry **) (namelist[i]->d_name)); |
404 |
|
404 |
|
405 |
if (!entry->valid) |
405 |
if (!entry->valid) |
406 |
continue; |
406 |
continue; |
Lines 417-422
Link Here
|
417 |
hbox = gtk_hbox_new (1, 0); |
417 |
hbox = gtk_hbox_new (1, 0); |
418 |
wrap_i = 0; |
418 |
wrap_i = 0; |
419 |
} |
419 |
} |
|
|
420 |
free(entry); |
420 |
} |
421 |
} |
421 |
free (namelist); |
422 |
free (namelist); |
422 |
if (wrap_i) |
423 |
if (wrap_i) |