Ticket #2063: man-db-2.4.4-fixes-1.patch

File man-db-2.4.4-fixes-1.patch, 2.0 KB (added by alexander@…, 17 years ago)

Upstream fixes

  • src/lexgrog.l

    Submitted By: Alexander E. Patrakov
    Date: 2007-08-20
    Initial Package Version: 2.4.4
    Origin: Debian
    Upstream Status: Backport
    Description: Fixes two bugs:
    
    1) makewhatis didn't break descriptions at certain macros
    2) ugly error message was displayed when the user pressed
       "q" without reading the long manual page
    
    old new  
    314314 /* collapse spaces, escaped spaces, tabs, newlines to a single space */
    315315<CAT_NAME>{next}((\\[ ])|{blank})*      add_char_to_whatis (' ');
    316316
    317  /* a ROFF break request (.br) or a paragraph request (.LP, .PP, .P)
     317 /* a ROFF break request, a paragraph request, or an indentation change
    318318    usually means we have multiple whatis definitions, provide a separator
    319319    for later processing */
    320320<MAN_NAME>{
    321321        {bol}\.br{blank}*               |
    322322        {bol}\.LP{blank}*               |
    323323        {bol}\.PP{blank}*               |
    324         {bol}\.P{blank}*                add_char_to_whatis ((char) 0x11);
     324        {bol}\.P{blank}*                |
     325        {bol}\.IP{blank}.*              |
     326        {bol}\.HP{blank}.*              |
     327        {bol}\.RS{blank}.*              |
     328        {bol}\.RE{blank}.*              add_char_to_whatis ((char) 0x11);
    325329}
    326330
    327331<MAN_NAME>{bol}\.{alpha}{2}{blank}*     { /* very general roff requests */
  • lib/pipeline.c

    old new  
    633633                if (pid < 0)
    634634                        error (FATAL, errno, _("fork failed"));
    635635                if (pid == 0) {
    636                         struct sigaction sa;
    637 
    638636                        /* child */
    639637                        pop_all_cleanups ();
    640638
     
    677675                        /* Restore signals. */
    678676                        xsigaction (SIGINT, &osa_sigint, NULL);
    679677                        xsigaction (SIGQUIT, &osa_sigquit, NULL);
    680                         /* ... but we don't want to know about SIGPIPE. */
    681                         sa.sa_handler = SIG_IGN;
    682                         sigemptyset(&sa.sa_mask);
    683                         sa.sa_flags = 0;
    684                         xsigaction (SIGPIPE, &sa, NULL);
    685678
    686679                        execvp (p->commands[i]->name, p->commands[i]->argv);
    687680                        error (EXEC_FAILED_EXIT_STATUS, errno,
     
    840833                        if (WIFSIGNALED (status)) {
    841834                                int sig = WTERMSIG (status);
    842835#ifdef SIGPIPE
    843                                 if (sig != SIGPIPE) {
     836                                if (sig == SIGPIPE)
     837                                        status = 0;
     838                                else {
    844839#endif /* SIGPIPE */
    845840                                        if (WCOREDUMP (status))
    846841                                                error (0, 0,