From b8f1add539b2482a853ed20513de2c654373856e Mon Sep 17 00:00:00 2001 From: Werner Almesberger Date: Wed, 14 Sep 2011 20:37:54 -0300 Subject: [PATCH] fped/obj.c (generate_items): handle failure to expand package name gracefully We just use "_" in this case. Before, "expand" returned NULL, which inst_select_pkg interprets as the global package. This in turn caused no further packages to be defined and thus active_pkg stayed NULL. This finally led to a crash in inst_draw. --- obj.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/obj.c b/obj.c index 8408eae..b40c89d 100644 --- a/obj.c +++ b/obj.c @@ -1,8 +1,8 @@ /* * obj.c - Object definition model * - * Written 2009, 2010 by Werner Almesberger - * Copyright 2009, 2010 by Werner Almesberger + * Written 2009-2011 by Werner Almesberger + * Copyright 2009-2011 by Werner Almesberger * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -285,7 +285,8 @@ static int generate_items(struct frame *frame, struct coord base, int active) if (frame == frames) { s = expand(pkg_name, frame); - inst_select_pkg(s); + /* s is NULL if expansion failed */ + inst_select_pkg(s ? s : "_"); free(s); } inst_begin_active(active && frame == active_frame);