load tend: Avoid "may be used uninitialized" warnings
c_load() initializes @ich only when @type is EF_SECTOR. It also uses it only then. Clang is cool with this, but GCC gets confused and warns "‘ich’ may be used uninitialized". Ron Koenderink reports Visual Studio 2019 even flags it as an error. Same for c_lload() and c_tend(). Time to clean this up. Rearrange the code to avoid the warning and also improve readability a bit. Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
parent
b770ac4ba8
commit
1f6b79dd10
2 changed files with 8 additions and 7 deletions
|
@ -30,7 +30,7 @@
|
||||||
* David Sharnoff, 1987
|
* David Sharnoff, 1987
|
||||||
* Ken Stevens, 1995 (rewritten)
|
* Ken Stevens, 1995 (rewritten)
|
||||||
* Steve McClure, 1998-2000
|
* Steve McClure, 1998-2000
|
||||||
* Markus Armbruster, 2004-2018
|
* Markus Armbruster, 2004-2021
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
@ -79,12 +79,12 @@ c_load(void)
|
||||||
"What commodity (or 'plane' or 'land')? ", buf);
|
"What commodity (or 'plane' or 'land')? ", buf);
|
||||||
if (!p || !*p)
|
if (!p || !*p)
|
||||||
return RET_SYN;
|
return RET_SYN;
|
||||||
|
ich = item_by_name(p);
|
||||||
if (!strncmp(p, "plane", 5))
|
if (!strncmp(p, "plane", 5))
|
||||||
type = EF_PLANE;
|
type = EF_PLANE;
|
||||||
else if (!strncmp(p, "land", 4))
|
else if (!strncmp(p, "land", 4))
|
||||||
type = EF_LAND;
|
type = EF_LAND;
|
||||||
else if (NULL != (ich = item_by_name(p)))
|
else if (ich)
|
||||||
type = EF_SECTOR;
|
type = EF_SECTOR;
|
||||||
else {
|
else {
|
||||||
pr("Can't %sload '%s'\n", loading ? "" : "un", p);
|
pr("Can't %sload '%s'\n", loading ? "" : "un", p);
|
||||||
|
@ -208,11 +208,12 @@ c_lload(void)
|
||||||
"What commodity (or 'plane' or 'land')? ", buf);
|
"What commodity (or 'plane' or 'land')? ", buf);
|
||||||
if (!p || !*p)
|
if (!p || !*p)
|
||||||
return RET_SYN;
|
return RET_SYN;
|
||||||
|
ich = item_by_name(p);
|
||||||
if (!strncmp(p, "plane", 5))
|
if (!strncmp(p, "plane", 5))
|
||||||
type = EF_PLANE;
|
type = EF_PLANE;
|
||||||
else if (!strncmp(p, "land", 4))
|
else if (!strncmp(p, "land", 4))
|
||||||
type = EF_LAND;
|
type = EF_LAND;
|
||||||
else if (NULL != (ich = item_by_name(p)))
|
else if (ich)
|
||||||
type = EF_SECTOR;
|
type = EF_SECTOR;
|
||||||
else {
|
else {
|
||||||
pr("Can't %sload '%s'\n", loading ? "" : "un", p);
|
pr("Can't %sload '%s'\n", loading ? "" : "un", p);
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
* Dave Pare, 1986
|
* Dave Pare, 1986
|
||||||
* Thomas Ruschak, 1992
|
* Thomas Ruschak, 1992
|
||||||
* Steve McClure, 2000
|
* Steve McClure, 2000
|
||||||
* Markus Armbruster, 2004-2017
|
* Markus Armbruster, 2004-2021
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
@ -70,10 +70,10 @@ c_tend(void)
|
||||||
buf);
|
buf);
|
||||||
if (!p || !*p)
|
if (!p || !*p)
|
||||||
return RET_SYN;
|
return RET_SYN;
|
||||||
|
ip = item_by_name(p);
|
||||||
if (!strncmp(p, "land", 4))
|
if (!strncmp(p, "land", 4))
|
||||||
type = EF_LAND;
|
type = EF_LAND;
|
||||||
else if (NULL != (ip = item_by_name(p)))
|
else if (ip)
|
||||||
type = EF_SECTOR;
|
type = EF_SECTOR;
|
||||||
else {
|
else {
|
||||||
pr("Can't tend '%s'\n", p);
|
pr("Can't tend '%s'\n", p);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue