Fixed some bugs.

Hi, I have been used cgdb for a while, when I moved to macosx, I found that cgdb will always not quit when using 'q' command in the gdb window after run target program.  And I found the reason is that when gdb closes,  both SIGCHLD is received and gdb_fd is readable. For some reason,  the signal comes a little later, just after that check of tgdb->has_sigchld_recv in function tgdb_process.  The result is tgdb_process will never called again.

I'm not sure this patch is the right way to fix this, It just works for me.  Please fix this, in any way.

And I'm sorry that I made a mistake for the following code in cgdb/sources.c:
if (sview->curr)
    sview->cur->buf.cur_line = NULL;

please change 'curr' to 'cur' when you merge, maybe check null for sview too.