To: vim_dev@googlegroups.com Subject: Patch 7.4.1793 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.4.1793 Problem: Some character classes may differ between systems. On OS/X the regexp test fails. Solution: Make this less dependent on the system. (idea by Kazunobu Kuriyama) Files: src/regexp.c, src/regexp_nfa.c *** ../vim-7.4.1792/src/regexp.c 2016-04-24 14:40:04.099244752 +0200 --- src/regexp.c 2016-04-26 21:31:32.768584919 +0200 *************** *** 2542,2553 **** } break; case CLASS_ALNUM: ! for (cu = 1; cu <= 255; cu++) if (isalnum(cu)) regmbc(cu); break; case CLASS_ALPHA: ! for (cu = 1; cu <= 255; cu++) if (isalpha(cu)) regmbc(cu); break; --- 2542,2553 ---- } break; case CLASS_ALNUM: ! for (cu = 1; cu < 128; cu++) if (isalnum(cu)) regmbc(cu); break; case CLASS_ALPHA: ! for (cu = 1; cu < 128; cu++) if (isalpha(cu)) regmbc(cu); break; *************** *** 2572,2578 **** break; case CLASS_LOWER: for (cu = 1; cu <= 255; cu++) ! if (MB_ISLOWER(cu)) regmbc(cu); break; case CLASS_PRINT: --- 2572,2579 ---- break; case CLASS_LOWER: for (cu = 1; cu <= 255; cu++) ! if (MB_ISLOWER(cu) && cu != 170 ! && cu != 186) regmbc(cu); break; case CLASS_PRINT: *************** *** 2581,2587 **** regmbc(cu); break; case CLASS_PUNCT: ! for (cu = 1; cu <= 255; cu++) if (ispunct(cu)) regmbc(cu); break; --- 2582,2588 ---- regmbc(cu); break; case CLASS_PUNCT: ! for (cu = 1; cu < 128; cu++) if (ispunct(cu)) regmbc(cu); break; *** ../vim-7.4.1792/src/regexp_nfa.c 2016-04-23 14:33:11.341175028 +0200 --- src/regexp_nfa.c 2016-04-26 21:29:33.778069463 +0200 *************** *** 4837,4847 **** switch (class) { case NFA_CLASS_ALNUM: ! if (c >= 1 && c <= 255 && isalnum(c)) return OK; break; case NFA_CLASS_ALPHA: ! if (c >= 1 && c <= 255 && isalpha(c)) return OK; break; case NFA_CLASS_BLANK: --- 4837,4847 ---- switch (class) { case NFA_CLASS_ALNUM: ! if (c >= 1 && c < 128 && isalnum(c)) return OK; break; case NFA_CLASS_ALPHA: ! if (c >= 1 && c < 128 && isalpha(c)) return OK; break; case NFA_CLASS_BLANK: *************** *** 4861,4867 **** return OK; break; case NFA_CLASS_LOWER: ! if (MB_ISLOWER(c)) return OK; break; case NFA_CLASS_PRINT: --- 4861,4867 ---- return OK; break; case NFA_CLASS_LOWER: ! if (MB_ISLOWER(c) && c != 170 && c != 186) return OK; break; case NFA_CLASS_PRINT: *************** *** 4869,4875 **** return OK; break; case NFA_CLASS_PUNCT: ! if (c >= 1 && c <= 255 && ispunct(c)) return OK; break; case NFA_CLASS_SPACE: --- 4869,4875 ---- return OK; break; case NFA_CLASS_PUNCT: ! if (c >= 1 && c < 128 && ispunct(c)) return OK; break; case NFA_CLASS_SPACE: *** ../vim-7.4.1792/src/version.c 2016-04-26 20:59:24.736486417 +0200 --- src/version.c 2016-04-26 21:38:17.219626821 +0200 *************** *** 755,756 **** --- 755,758 ---- { /* Add new patch number below this line */ + /**/ + 1793, /**/ -- My girlfriend told me I should be more affectionate. So I got TWO girlfriends. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///