diff options
| -rw-r--r-- | lib/lib.c | 12 | ||||
| -rw-r--r-- | lib/lib.h | 1 | 
2 files changed, 9 insertions, 4 deletions
| @@ -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. @@ -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, ...); | 
