diff options
| author | Jari Vetoniemi <mailroxas@gmail.com> | 2014-04-13 01:39:31 +0300 | 
|---|---|---|
| committer | Jari Vetoniemi <mailroxas@gmail.com> | 2014-04-13 01:39:31 +0300 | 
| commit | 60c1ab88cc4ee7b5d4f87c7867059464757666bb (patch) | |
| tree | ea1d4dc9ae789d1c0bb30f8ea25b77e3687dadcd /lib | |
| parent | 83d67f80c0d1935fff4e36bd63b2ac64c1dd2bc9 (diff) | |
| download | bemenu-60c1ab88cc4ee7b5d4f87c7867059464757666bb.tar.gz bemenu-60c1ab88cc4ee7b5d4f87c7867059464757666bb.tar.bz2 bemenu-60c1ab88cc4ee7b5d4f87c7867059464757666bb.zip  | |
Store old actions to seperate actions.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/draw/curses.c | 11 | 
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/draw/curses.c b/lib/draw/curses.c index f05db01..3b160a9 100644 --- a/lib/draw/curses.c +++ b/lib/draw/curses.c @@ -54,7 +54,8 @@ static const char *TTY = "/dev/tty";   * Dynamically loaded curses API.   */  static struct curses { -    struct sigaction action; +    struct sigaction abrtAction; +    struct sigaction segvAction;      void *handle;      WINDOW *stdscr;      WINDOW* (*initscr)(void); @@ -342,8 +343,8 @@ static void _bmDrawCursesFree(void)      if (curses.handle)          dlclose(curses.handle); -    sigaction(SIGABRT, &curses.action, NULL); -    sigaction(SIGSEGV, &curses.action, NULL); +    sigaction(SIGABRT, &curses.abrtAction, NULL); +    sigaction(SIGSEGV, &curses.segvAction, NULL);      memset(&curses, 0, sizeof(curses));  } @@ -407,8 +408,8 @@ int _bmDrawCursesInit(struct _bmRenderApi *api)      struct sigaction action;      memset(&action, 0, sizeof(struct sigaction));      action.sa_handler = _bmDrawCursesCrashHandler; -    sigaction(SIGABRT, &action, &curses.action); -    sigaction(SIGSEGV, &action, &curses.action); +    sigaction(SIGABRT, &action, &curses.abrtAction); +    sigaction(SIGSEGV, &action, &curses.segvAction);      return 1;  function_pointer_exception:  | 
