From 8a9cd78072424622ff44df2b6b817c8b0461013f Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Wed, 29 Jan 2003 20:32:44 +0000 Subject: [PATCH] fix up a couple of error cases (and catch them!) --- libs/gamecode/engine/pr_load.c | 2 +- tools/qfprogs/source/qfprogs.c | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/libs/gamecode/engine/pr_load.c b/libs/gamecode/engine/pr_load.c index ee9d24387..f170ac848 100644 --- a/libs/gamecode/engine/pr_load.c +++ b/libs/gamecode/engine/pr_load.c @@ -97,7 +97,7 @@ PR_LoadProgsFile (progs_t * pr, QFile *file, int size, int edicts, int zone) pr->progs = 0; if (Qread (file, &progs, sizeof (progs)) != sizeof (progs)) - return; + PR_Error (pr, "error reading header"); pr->progs_size = com_filesize; Sys_DPrintf ("Programs occupy %iK.\n", com_filesize / 1024); diff --git a/tools/qfprogs/source/qfprogs.c b/tools/qfprogs/source/qfprogs.c index 83ba7575f..c30987884 100644 --- a/tools/qfprogs/source/qfprogs.c +++ b/tools/qfprogs/source/qfprogs.c @@ -93,10 +93,8 @@ open_file (const char *path, int *len) { QFile *file = Qopen (path, "rbz"); - if (!file) { - perror (path); + if (!file) return 0; - } *len = Qfilesize (file); return file; } @@ -112,6 +110,7 @@ load_file (progs_t *pr, const char *name) if (!file) { file = open_file (va ("%s.gz", name), &size); if (!file) { + perror (name); return 0; } } @@ -196,6 +195,10 @@ load_progs (const char *name) pr.progs_name = name; PR_LoadProgsFile (&pr, file, size, 1, 0); Qclose (file); + + if (!pr.progs) + return 0; + PR_LoadStrings (&pr); for (i = 0; i < pr.progs->numfunctions; i++) { @@ -244,7 +247,8 @@ main (int argc, char **argv) } init_qf (); while (optind < argc) { - load_progs (argv[optind++]); + if (!load_progs (argv[optind++])) + return 1; func (&pr); } return 0;