Patch 8.0.1490
Problem: Number of spell regions is spread out through the code.
Solution: Define MAXREGIONS.
Files: src/spell.h, src/spellfile.c
*** ../vim-8.0.1489/src/spell.h 2016-08-29 22:42:20.000000000 +0200
--- src/spell.h 2018-02-10 13:55:21.912773084 +0100
***************
*** 34,39 ****
--- 34,41 ----
byte, thus it can't be above 255.
Must be >= PFD_NOTSPECIAL. */
+ #define MAXREGIONS 8 /* Number of regions supported. */
+
/* Type used for indexes in the word tree need to be at least 4 bytes. If int
* is 8 bytes we could use something smaller, but what? */
#if VIM_SIZEOF_INT > 3
***************
*** 80,86 ****
char_u *sl_info; /* infotext string or NULL */
! char_u sl_regions[17]; /* table with up to 8 region names plus NUL */
char_u *sl_midword; /* MIDWORD string or NULL */
--- 82,89 ----
char_u *sl_info; /* infotext string or NULL */
! char_u sl_regions[MAXREGIONS * 2 + 1];
! /* table with up to 8 region names plus NUL */
char_u *sl_midword; /* MIDWORD string or NULL */
*** ../vim-8.0.1489/src/spellfile.c 2017-10-27 00:56:57.205291177 +0200
--- src/spellfile.c 2018-02-10 13:59:57.222895071 +0100
***************
*** 54,61 ****
* website, etc)
*
* sectionID == SN_REGION: <regionname> ...
! * <regionname> 2 bytes Up to 8 region names: ca, au, etc. Lower
case.
! * First <regionname> is region 1.
*
* sectionID == SN_CHARFLAGS: <charflagslen> <charflags>
* <folcharslen> <folchars>
--- 54,61 ----
* website, etc)
*
* sectionID == SN_REGION: <regionname> ...
! * <regionname> 2 bytes Up to MAXREGIONS region names: ca, au, etc.
Lower
! * case. First <regionname> is region 1.
*
* sectionID == SN_CHARFLAGS: <charflagslen> <charflags>
* <folcharslen> <folchars>
***************
*** 832,838 ****
{
int i;
! if (len > 16)
return SP_FORMERROR;
for (i = 0; i < len; ++i)
lp->sl_regions[i] = getc(fd); /* <regionname> */
--- 832,838 ----
{
int i;
! if (len > MAXREGIONS * 2)
return SP_FORMERROR;
for (i = 0; i < len; ++i)
lp->sl_regions[i] = getc(fd); /* <regionname> */
***************
*** 1952,1959 ****
char_u *si_info; /* info text chars or NULL */
int si_region_count; /* number of regions supported (1 when
there
are no regions) */
! char_u si_region_name[17]; /* region names; used only if
! * si_region_count > 1) */
garray_T si_rep; /* list of fromto_T entries from REP lines */
garray_T si_repsal; /* list of fromto_T entries from REPSAL lines */
--- 1952,1960 ----
char_u *si_info; /* info text chars or NULL */
int si_region_count; /* number of regions supported (1 when
there
are no regions) */
! char_u si_region_name[MAXREGIONS * 2 + 1];
! /* region names; used only if
! * si_region_count > 1) */
garray_T si_rep; /* list of fromto_T entries from REP lines */
garray_T si_repsal; /* list of fromto_T entries from REPSAL lines */
***************
*** 4234,4240 ****
else
{
line += 8;
! if (STRLEN(line) > 16)
smsg((char_u *)_("Too many regions in %s line %d: %s"),
fname, lnum, line);
else
--- 4235,4241 ----
else
{
line += 8;
! if (STRLEN(line) > MAXREGIONS * 2)
smsg((char_u *)_("Too many regions in %s line %d: %s"),
fname, lnum, line);
else
***************
*** 5954,5960 ****
char_u *wfname;
char_u **innames;
int incount;
! afffile_T *(afile[8]);
int i;
int len;
stat_T st;
--- 5955,5961 ----
char_u *wfname;
char_u **innames;
int incount;
! afffile_T *(afile[MAXREGIONS]);
int i;
int len;
stat_T st;
***************
*** 6025,6032 ****
EMSG(_(e_invarg)); /* need at least output and input names */
else if (vim_strchr(gettail(wfname), '_') != NULL)
EMSG(_("E751: Output file name must not have region name"));
! else if (incount > 8)
! EMSG(_("E754: Only up to 8 regions supported"));
else
{
/* Check for overwriting before doing things that may take a lot of
--- 6026,6033 ----
EMSG(_(e_invarg)); /* need at least output and input names */
else if (vim_strchr(gettail(wfname), '_') != NULL)
EMSG(_("E751: Output file name must not have region name"));
! else if (incount > MAXREGIONS)
! EMSGN(_("E754: Only up to %ld regions supported"), MAXREGIONS);
else
{
/* Check for overwriting before doing things that may take a lot of
*** ../vim-8.0.1489/src/version.c 2018-02-09 20:53:52.638060811 +0100
--- src/version.c 2018-02-10 14:12:00.870381694 +0100
***************
*** 773,774 ****
--- 773,776 ----
{ /* Add new patch number below this line */
+ /**/
+ 1490,
/**/
--
Have you heard about the new Barbie doll? It's called Divorce
Barbie. It comes with all of Ken's stuff.
/// Bram Moolenaar -- [email protected] -- 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 ///
--
--
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/d/optout.