Add xexit() and make error_exit() use it.
authorRob Landley <rob@landley.net>
Mon, 17 Jun 2013 00:59:51 +0000 (19:59 -0500)
committerRob Landley <rob@landley.net>
Mon, 17 Jun 2013 00:59:51 +0000 (19:59 -0500)
lib/lib.c
lib/lib.h

index af820e2..dca92cb 100644 (file)
--- a/lib/lib.c
+++ b/lib/lib.c
@@ -17,6 +17,12 @@ void xstrncpy(char *dest, char *src, size_t size)
   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 @@ void error_exit(char *msg, ...)
   verror_msg(msg, 0, va);
   va_end(va);
 
-  if (toys.rebound) longjmp(*toys.rebound, 1);
-  else exit(toys.exitval);
+  xexit();
 }
 
 
@@ -72,8 +77,7 @@ void perror_exit(char *msg, ...)
   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.
index 131f9c4..70f8f49 100644 (file)
--- a/lib/lib.h
+++ b/lib/lib.h
@@ -87,6 +87,7 @@ void show_help(void);
 
 // 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, ...);