aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2010-02-05 10:14:09 +0100
committerThomas White <taw@physics.org>2010-02-05 10:14:09 +0100
commit1374dfa38ef7bdb7c18e92d058f51b3d79895cec (patch)
tree91d8f70ed0cfd9369905b42032c711b82036719b
parent96046b5dbb09328b4dac40f363cd8157cf32b4fa (diff)
Tidy up abort()s
... to avoid the special hell reserved for programmers who do this kind of thing.
-rw-r--r--src/dirax.c8
-rw-r--r--src/sfac.c9
2 files changed, 11 insertions, 6 deletions
diff --git a/src/dirax.c b/src/dirax.c
index 9220c8cb..0849d750 100644
--- a/src/dirax.c
+++ b/src/dirax.c
@@ -264,8 +264,12 @@ static gboolean dirax_readable(GIOChannel *dirax, GIOCondition condition,
default :
/* Obviously, this never happens :) */
- ERROR("Unrecognised input mode!\n");
- abort();
+ ERROR("Unrecognised DirAx input mode! "
+ "I don't know how to understand DirAx\n");
+ waitpid(image->dirax_pid, NULL, 0);
+ g_io_channel_shutdown(image->dirax, FALSE, NULL);
+ image->dirax = NULL;
+ return FALSE;
}
diff --git a/src/sfac.c b/src/sfac.c
index 3d6e5f72..37b57ace 100644
--- a/src/sfac.c
+++ b/src/sfac.c
@@ -71,8 +71,9 @@ static double complex get_f1f2(const char *n, double en)
r = sscanf(line, "%f %f %f", &E_f, &f1_f, &f2_f);
if ( r != 3 ) {
- ERROR("WTF?\n");
- abort();
+ STATUS("I couldn't understand a line in the f1f2 "
+ "tables\n");
+ continue;
}
/* Promote to double precision */
E = E_f; f1 = f1_f; f2 = f2_f;
@@ -365,8 +366,8 @@ struct molecule *load_molecule()
coords = line + 29;
r = sscanf(coords, "%f %f %f %f %f", &xf, &yf, &zf, &occf, &Bf);
if ( r != 5 ) {
- ERROR("WTF?\n");
- abort();
+ STATUS("I didn't understand a line in the PDB file.\n");
+ continue;
}
/* Promote to double precision */
x = xf; y = yf; z = zf; occ = occf; B = Bf;