changeset 925:07693eb46e26

Add xexit() and make error_exit() use it.
author Rob Landley <rob@landley.net>
date Sun, 16 Jun 2013 19:59:51 -0500
parents b792de46d715
children 6988ece404b2
files lib/lib.c lib/lib.h
diffstat 2 files changed, 9 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lib/lib.c	Sun Jun 16 16:37:43 2013 -0500
+++ b/lib/lib.c	Sun Jun 16 19:59:51 2013 -0500
@@ -17,6 +17,12 @@
   strcpy(dest, src);
 }
 
+void xexit(void)
+{
+  if (toys.rebound) longjmp(*toys.rebound, 1);
+  else exit(toys.exitval);
+}
+
 void verror_msg(char *msg, int err, va_list va)
 {
   char *s = ": %s";
@@ -58,8 +64,7 @@
   verror_msg(msg, 0, va);
   va_end(va);
 
-  if (toys.rebound) longjmp(*toys.rebound, 1);
-  else exit(toys.exitval);
+  xexit();
 }
 
 
@@ -72,8 +77,7 @@
   verror_msg(msg, errno, va);
   va_end(va);
 
-  if (toys.rebound) longjmp(*toys.rebound, 1);
-  else exit(toys.exitval);
+  xexit();
 }
 
 // Die unless we can allocate memory.
--- a/lib/lib.h	Sun Jun 16 16:37:43 2013 -0500
+++ b/lib/lib.h	Sun Jun 16 19:59:51 2013 -0500
@@ -87,6 +87,7 @@
 
 // lib.c
 void xstrncpy(char *dest, char *src, size_t size);
+void xexit(void) noreturn;
 void verror_msg(char *msg, int err, va_list va);
 void error_msg(char *msg, ...);
 void perror_msg(char *msg, ...);