Hi all,

This patch fails to compile on HP-UX like so:

Starting make in the src directory.
If there are problems, cd to the src directory and run make there
    cd src && make first
cc -c -I. -Iproto -DHAVE_CONFIG_H -O2 -o objects/regexp.o regexp.c cc: "regexp_nfa.c", line 2481: warning 500: Unnamed struct/union members are ignored.
cc: "regexp_nfa.c", line 2570: error 1588: "multilist" undefined.
cc: "regexp_nfa.c", line 2570: error 1531: Invalid member of struct or union. cc: "regexp_nfa.c", line 2570: error 1527: Incompatible types in cast: Must cast from scalar to scalar or to void type. cc: "regexp_nfa.c", line 2570: error 1531: Invalid member of struct or union. cc: "regexp_nfa.c", line 2570: error 1527: Incompatible types in cast: Must cast from scalar to scalar or to void type.
cc: "regexp_nfa.c", line 2574: error 1588: "linelist" undefined.
cc: "regexp_nfa.c", line 2574: error 1531: Invalid member of struct or union.
...
cc: "regexp_nfa.c", line 3763: error 1588: "multilist" undefined.
cc: "regexp_nfa.c", line 3763: error 1531: Invalid member of struct or union.
cc: Panic 2161: Maximum allowed number of errors exceeded.
*** Error exit code 1
Stop.
*** Error exit code 1
Stop.

The attached patch fixes.

Cheers
John

--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


*** regexp_nfa.c        2013-05-27 08:57:17.855588000 +1000
--- regexp_nfa.c.new    2013-05-27 08:57:17.855588000 +1000
***************
*** 2490,2496 ****
            char_u      *start;
            char_u      *end;
        } linelist[NSUBEXP];
!     };
  } regsub_T;
  
  /* nfa_thread_T contains execution information of a NFA state */
--- 2490,2496 ----
            char_u      *start;
            char_u      *end;
        } linelist[NSUBEXP];
!     } regsub_union;
  } regsub_T;
  
  /* nfa_thread_T contains execution information of a NFA state */
***************
*** 2567,2578 ****
                {
                    /* Copy the match start and end positions. */
                    if (REG_MULTI)
!                       mch_memmove(&lastthread->sub.multilist[0],
!                                   &m->multilist[0],
                                    sizeof(struct multipos) * m->in_use);
                    else
!                       mch_memmove(&lastthread->sub.linelist[0],
!                                   &m->linelist[0],
                                    sizeof(struct linepos) * m->in_use);
                }
            }
--- 2567,2578 ----
                {
                    /* Copy the match start and end positions. */
                    if (REG_MULTI)
!                       mch_memmove(&lastthread->sub.regsub_union.multilist[0],
!                                   &m->regsub_union.multilist[0],
                                    sizeof(struct multipos) * m->in_use);
                    else
!                       mch_memmove(&lastthread->sub.regsub_union.linelist[0],
!                                   &m->regsub_union.linelist[0],
                                    sizeof(struct linepos) * m->in_use);
                }
            }
***************
*** 2650,2656 ****
            {
                if (subidx < m->in_use)
                {
!                   save_lpos = m->multilist[subidx].start;
                    save_in_use = -1;
                }
                else
--- 2650,2656 ----
            {
                if (subidx < m->in_use)
                {
!                   save_lpos = m->regsub_union.multilist[subidx].start;
                    save_in_use = -1;
                }
                else
***************
*** 2658,2677 ****
                    save_in_use = m->in_use;
                    for (i = m->in_use; i < subidx; ++i)
                    {
!                       m->multilist[i].start.lnum = -1;
!                       m->multilist[i].end.lnum = -1;
                    }
                    m->in_use = subidx + 1;
                }
                if (off == -1)
                {
!                   m->multilist[subidx].start.lnum = reglnum + 1;
!                   m->multilist[subidx].start.col = 0;
                }
                else
                {
!                   m->multilist[subidx].start.lnum = reglnum;
!                   m->multilist[subidx].start.col =
                                          (colnr_T)(reginput - regline + off);
                }
            }
--- 2658,2677 ----
                    save_in_use = m->in_use;
                    for (i = m->in_use; i < subidx; ++i)
                    {
!                       m->regsub_union.multilist[i].start.lnum = -1;
!                       m->regsub_union.multilist[i].end.lnum = -1;
                    }
                    m->in_use = subidx + 1;
                }
                if (off == -1)
                {
!                   m->regsub_union.multilist[subidx].start.lnum = reglnum + 1;
!                   m->regsub_union.multilist[subidx].start.col = 0;
                }
                else
                {
!                   m->regsub_union.multilist[subidx].start.lnum = reglnum;
!                   m->regsub_union.multilist[subidx].start.col =
                                          (colnr_T)(reginput - regline + off);
                }
            }
***************
*** 2679,2685 ****
            {
                if (subidx < m->in_use)
                {
!                   save_ptr = m->linelist[subidx].start;
                    save_in_use = -1;
                }
                else
--- 2679,2685 ----
            {
                if (subidx < m->in_use)
                {
!                   save_ptr = m->regsub_union.linelist[subidx].start;
                    save_in_use = -1;
                }
                else
***************
*** 2687,2698 ****
                    save_in_use = m->in_use;
                    for (i = m->in_use; i < subidx; ++i)
                    {
!                       m->linelist[i].start = NULL;
!                       m->linelist[i].end = NULL;
                    }
                    m->in_use = subidx + 1;
                }
!               m->linelist[subidx].start = reginput + off;
            }
  
            addstate(l, state->out, m, off, lid);
--- 2687,2698 ----
                    save_in_use = m->in_use;
                    for (i = m->in_use; i < subidx; ++i)
                    {
!                       m->regsub_union.linelist[i].start = NULL;
!                       m->regsub_union.linelist[i].end = NULL;
                    }
                    m->in_use = subidx + 1;
                }
!               m->regsub_union.linelist[subidx].start = reginput + off;
            }
  
            addstate(l, state->out, m, off, lid);
***************
*** 2700,2708 ****
            if (save_in_use == -1)
            {
                if (REG_MULTI)
!                   m->multilist[subidx].start = save_lpos;
                else
!                   m->linelist[subidx].start = save_ptr;
            }
            else
                m->in_use = save_in_use;
--- 2700,2708 ----
            if (save_in_use == -1)
            {
                if (REG_MULTI)
!                   m->regsub_union.multilist[subidx].start = save_lpos;
                else
!                   m->regsub_union.linelist[subidx].start = save_ptr;
            }
            else
                m->in_use = save_in_use;
***************
*** 2736,2766 ****
                m->in_use = subidx + 1;
            if (REG_MULTI)
            {
!               save_lpos = m->multilist[subidx].end;
                if (off == -1)
                {
!                   m->multilist[subidx].end.lnum = reglnum + 1;
!                   m->multilist[subidx].end.col = 0;
                }
                else
                {
!                   m->multilist[subidx].end.lnum = reglnum;
!                   m->multilist[subidx].end.col =
                                          (colnr_T)(reginput - regline + off);
                }
            }
            else
            {
!               save_ptr = m->linelist[subidx].end;
!               m->linelist[subidx].end = reginput + off;
            }
  
            addstate(l, state->out, m, off, lid);
  
            if (REG_MULTI)
!               m->multilist[subidx].end = save_lpos;
            else
!               m->linelist[subidx].end = save_ptr;
            m->in_use = save_in_use;
            break;
      }
--- 2736,2766 ----
                m->in_use = subidx + 1;
            if (REG_MULTI)
            {
!               save_lpos = m->regsub_union.multilist[subidx].end;
                if (off == -1)
                {
!                   m->regsub_union.multilist[subidx].end.lnum = reglnum + 1;
!                   m->regsub_union.multilist[subidx].end.col = 0;
                }
                else
                {
!                   m->regsub_union.multilist[subidx].end.lnum = reglnum;
!                   m->regsub_union.multilist[subidx].end.col =
                                          (colnr_T)(reginput - regline + off);
                }
            }
            else
            {
!               save_ptr = m->regsub_union.linelist[subidx].end;
!               m->regsub_union.linelist[subidx].end = reginput + off;
            }
  
            addstate(l, state->out, m, off, lid);
  
            if (REG_MULTI)
!               m->regsub_union.multilist[subidx].end = save_lpos;
            else
!               m->regsub_union.linelist[subidx].end = save_ptr;
            m->in_use = save_in_use;
            break;
      }
***************
*** 3154,3182 ****
                if (REG_MULTI)
                    for (j = 0; j < submatch->in_use; j++)
                    {
!                       submatch->multilist[j].start = 
t->sub.multilist[j].start;
!                       submatch->multilist[j].end = t->sub.multilist[j].end;
                    }
                else
                    for (j = 0; j < submatch->in_use; j++)
                    {
!                       submatch->linelist[j].start = t->sub.linelist[j].start;
!                       submatch->linelist[j].end = t->sub.linelist[j].end;
                    }
  #ifdef ENABLE_LOG
                for (j = 0; j < t->sub.in_use; j++)
                    if (REG_MULTI)
                        fprintf(log_fd, "\n *** group %d, start: c=%d, l=%d, 
end: c=%d, l=%d",
                                j,
!                               t->sub.multilist[j].start.col,
!                               (int)t->sub.multilist[j].start.lnum,
!                               t->sub.multilist[j].end.col,
!                               (int)t->sub.multilist[j].end.lnum);
                    else
                        fprintf(log_fd, "\n *** group %d, start: \"%s\", end: 
\"%s\"",
                                j,
!                               (char *)t->sub.linelist[j].start,
!                               (char *)t->sub.linelist[j].end);
                fprintf(log_fd, "\n");
  #endif
                /* Found the left-most longest match, do not look at any other
--- 3154,3182 ----
                if (REG_MULTI)
                    for (j = 0; j < submatch->in_use; j++)
                    {
!                       submatch->regsub_union.multilist[j].start = 
t->sub.regsub_union.multilist[j].start;
!                       submatch->regsub_union.multilist[j].end = 
t->sub.regsub_union.multilist[j].end;
                    }
                else
                    for (j = 0; j < submatch->in_use; j++)
                    {
!                       submatch->regsub_union.linelist[j].start = 
t->sub.regsub_union.linelist[j].start;
!                       submatch->regsub_union.linelist[j].end = 
t->sub.regsub_union.linelist[j].end;
                    }
  #ifdef ENABLE_LOG
                for (j = 0; j < t->sub.in_use; j++)
                    if (REG_MULTI)
                        fprintf(log_fd, "\n *** group %d, start: c=%d, l=%d, 
end: c=%d, l=%d",
                                j,
!                               t->sub.regsub_union.multilist[j].start.col,
!                               
(int)t->sub.regsub_union.multilist[j].start.lnum,
!                               t->sub.regsub_union.multilist[j].end.col,
!                               (int)t->sub.regsub_union.multilist[j].end.lnum);
                    else
                        fprintf(log_fd, "\n *** group %d, start: \"%s\", end: 
\"%s\"",
                                j,
!                               (char *)t->sub.regsub_union.linelist[j].start,
!                               (char *)t->sub.regsub_union.linelist[j].end);
                fprintf(log_fd, "\n");
  #endif
                /* Found the left-most longest match, do not look at any other
***************
*** 3259,3272 ****
                    if (REG_MULTI)
                        for (j = 1; j < m->in_use; j++)
                        {
!                           t->sub.multilist[j].start = m->multilist[j].start;
!                           t->sub.multilist[j].end = m->multilist[j].end;
                        }
                    else
                        for (j = 1; j < m->in_use; j++)
                        {
!                           t->sub.linelist[j].start = m->linelist[j].start;
!                           t->sub.linelist[j].end = m->linelist[j].end;
                        }
                    t->sub.in_use = m->in_use;
  
--- 3259,3272 ----
                    if (REG_MULTI)
                        for (j = 1; j < m->in_use; j++)
                        {
!                           t->sub.regsub_union.multilist[j].start = 
m->regsub_union.multilist[j].start;
!                           t->sub.regsub_union.multilist[j].end = 
m->regsub_union.multilist[j].end;
                        }
                    else
                        for (j = 1; j < m->in_use; j++)
                        {
!                           t->sub.regsub_union.linelist[j].start = 
m->regsub_union.linelist[j].start;
!                           t->sub.regsub_union.linelist[j].end = 
m->regsub_union.linelist[j].end;
                        }
                    t->sub.in_use = m->in_use;
  
***************
*** 3760,3772 ****
      if (REG_MULTI)
      {
        /* Use 0xff to set lnum to -1 */
!       vim_memset(sub.multilist, 0xff, sizeof(struct multipos) * nfa_nsubexpr);
!       vim_memset(m.multilist, 0xff, sizeof(struct multipos) * nfa_nsubexpr);
      }
      else
      {
!       vim_memset(sub.linelist, 0, sizeof(struct linepos) * nfa_nsubexpr);
!       vim_memset(m.linelist, 0, sizeof(struct linepos) * nfa_nsubexpr);
      }
      sub.in_use = 0;
      m.in_use = 0;
--- 3760,3772 ----
      if (REG_MULTI)
      {
        /* Use 0xff to set lnum to -1 */
!       vim_memset(sub.regsub_union.multilist, 0xff, sizeof(struct multipos) * 
nfa_nsubexpr);
!       vim_memset(m.regsub_union.multilist, 0xff, sizeof(struct multipos) * 
nfa_nsubexpr);
      }
      else
      {
!       vim_memset(sub.regsub_union.linelist, 0, sizeof(struct linepos) * 
nfa_nsubexpr);
!       vim_memset(m.regsub_union.linelist, 0, sizeof(struct linepos) * 
nfa_nsubexpr);
      }
      sub.in_use = 0;
      m.in_use = 0;
***************
*** 3779,3786 ****
      {
        for (i = 0; i < sub.in_use; i++)
        {
!           reg_startpos[i] = sub.multilist[i].start;
!           reg_endpos[i] = sub.multilist[i].end;
        }
  
        if (reg_startpos[0].lnum < 0)
--- 3779,3786 ----
      {
        for (i = 0; i < sub.in_use; i++)
        {
!           reg_startpos[i] = sub.regsub_union.multilist[i].start;
!           reg_endpos[i] = sub.regsub_union.multilist[i].end;
        }
  
        if (reg_startpos[0].lnum < 0)
***************
*** 3801,3808 ****
      {
        for (i = 0; i < sub.in_use; i++)
        {
!           reg_startp[i] = sub.linelist[i].start;
!           reg_endp[i] = sub.linelist[i].end;
        }
  
        if (reg_startp[0] == NULL)
--- 3801,3808 ----
      {
        for (i = 0; i < sub.in_use; i++)
        {
!           reg_startp[i] = sub.regsub_union.linelist[i].start;
!           reg_endp[i] = sub.regsub_union.linelist[i].end;
        }
  
        if (reg_startp[0] == NULL)

Raspunde prin e-mail lui