home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / patches / 7.3 / 7.3.1120 < prev    next >
Encoding:
Internet Message Format  |  2013-06-04  |  2.7 KB

  1. To: vim_dev@googlegroups.com
  2. Subject: Patch 7.3.1120
  3. Fcc: outbox
  4. From: Bram Moolenaar <Bram@moolenaar.net>
  5. Mime-Version: 1.0
  6. Content-Type: text/plain; charset=UTF-8
  7. Content-Transfer-Encoding: 8bit
  8. ------------
  9.  
  10. Patch 7.3.1120
  11. Problem:    Crash when regexp logging is enabled.
  12. Solution:   Avoid using NULL pointers. Advance over count argument.
  13. Files:        src/regexp.c, src/regexp_nfa.c
  14.  
  15.  
  16. *** ../vim-7.3.1119/src/regexp.c    2013-06-05 12:43:05.000000000 +0200
  17. --- src/regexp.c    2013-06-05 16:27:25.000000000 +0200
  18. ***************
  19. *** 6538,6547 ****
  20.           end = next;
  21.       if (op == BRACE_LIMITS)
  22.       {
  23. !         /* Two short ints */
  24.           fprintf(f, " minval %ld, maxval %ld", OPERAND_MIN(s), OPERAND_MAX(s));
  25.           s += 8;
  26.       }
  27.       s += 3;
  28.       if (op == ANYOF || op == ANYOF + ADD_NL
  29.           || op == ANYBUT || op == ANYBUT + ADD_NL
  30. --- 6538,6553 ----
  31.           end = next;
  32.       if (op == BRACE_LIMITS)
  33.       {
  34. !         /* Two ints */
  35.           fprintf(f, " minval %ld, maxval %ld", OPERAND_MIN(s), OPERAND_MAX(s));
  36.           s += 8;
  37.       }
  38. +     else if (op == BEHIND || op == NOBEHIND)
  39. +     {
  40. +         /* one int */
  41. +         fprintf(f, " count %ld", OPERAND_MIN(s));
  42. +         s += 4;
  43. +     }
  44.       s += 3;
  45.       if (op == ANYOF || op == ANYOF + ADD_NL
  46.           || op == ANYBUT || op == ANYBUT + ADD_NL
  47. *** ../vim-7.3.1119/src/regexp_nfa.c    2013-06-05 12:43:05.000000000 +0200
  48. --- src/regexp_nfa.c    2013-06-05 16:13:25.000000000 +0200
  49. ***************
  50. *** 2960,2969 ****
  51.               sub->list.multi[j].end.col,
  52.               (int)sub->list.multi[j].end.lnum);
  53.       else
  54.           fprintf(log_fd, "\n *** group %d, start: \"%s\", end: \"%s\"",
  55.               j,
  56. !             (char *)sub->list.line[j].start,
  57. !             (char *)sub->list.line[j].end);
  58.       fprintf(log_fd, "\n");
  59.   }
  60.   #endif
  61. --- 2960,2974 ----
  62.               sub->list.multi[j].end.col,
  63.               (int)sub->list.multi[j].end.lnum);
  64.       else
  65. +     {
  66. +         char *s = (char *)sub->list.line[j].start;
  67. +         char *e = (char *)sub->list.line[j].end;
  68.           fprintf(log_fd, "\n *** group %d, start: \"%s\", end: \"%s\"",
  69.               j,
  70. !             s == NULL ? "NULL" : s,
  71. !             e == NULL ? "NULL" : e);
  72. !     }
  73.       fprintf(log_fd, "\n");
  74.   }
  75.   #endif
  76. *** ../vim-7.3.1119/src/version.c    2013-06-05 12:43:05.000000000 +0200
  77. --- src/version.c    2013-06-05 16:27:14.000000000 +0200
  78. ***************
  79. *** 730,731 ****
  80. --- 730,733 ----
  81.   {   /* Add new patch number below this line */
  82. + /**/
  83. +     1120,
  84.   /**/
  85.  
  86. -- 
  87. From "know your smileys":
  88.  |-P    Reaction to unusually ugly C code
  89.  
  90.  /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
  91. ///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
  92. \\\  an exciting new programming language -- http://www.Zimbu.org        ///
  93.  \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
  94.