|
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) |