Hi James,
2015/1/17(Sat) 9:56:56 UTC+9 James McCoy:
> On Fri, Jan 16, 2015 at 02:45:49PM -0800, h_east wrote:
> > Hi Bram and list,
> >
> > I found a strange code.
> >
> > ins_compl_bs() in src/edit.c : L3397
> > 3393 /* Stop completion when the whole word was deleted. For Omni
> > completion
> > 3394 * allow the word to be deleted, we won't match everything. */
> > 3395 if ((int)(p - line) - (int)compl_col < 0
> > 3396 || ((int)(p - line) - (int)compl_col == 0
> > 3397 && (ctrl_x_mode & CTRL_X_OMNI) == 0))
> > 3398 return K_BS;
> >
> >
> > `ctrl_x_mode` is assigned a kind of serial number. (CTRL_X_~)
> > But L3397 implemented a logical AND operation.
> > I think this is code typo.
>
> The logical AND is applied to the result of the "(ctrl_x_mode &
> CTRL_X_OMNI) == 0" expression. That expression is checking whether
> ctrl_x_mode is anything except CTRL_X_OMNI, i.e. whether the bitwise AND
> of ctrl_x_mode and CTRL_X_OMNI share no common bits (== 0).
>
> Your proposed patch has the same end result, but does make this code
> more in line with most of the other uses of ctrl_x_mode in the file.
No. Please confirm this test code.
---- test.c ----
#include <stdio.h>
#define CTRL_X_OMNI 13
void judge(int ctrl_x_mode);
int main(void)
{
int i;
for (i=0; i<20; i++)
judge(i);
return 0;
}
void judge(int ctrl_x_mode)
{
int result = ((ctrl_x_mode & CTRL_X_OMNI) == 0);
printf("ctrl_x_mode: %d, result is %d\n", ctrl_x_mode, result);
return;
}
--------
$ gcc -Wall test.c
$ ./a.out
ctrl_x_mode: 0, result is 1
ctrl_x_mode: 1, result is 0
ctrl_x_mode: 2, result is 1
ctrl_x_mode: 3, result is 0
ctrl_x_mode: 4, result is 0
ctrl_x_mode: 5, result is 0
ctrl_x_mode: 6, result is 0
ctrl_x_mode: 7, result is 0
ctrl_x_mode: 8, result is 0
ctrl_x_mode: 9, result is 0
ctrl_x_mode: 10, result is 0
ctrl_x_mode: 11, result is 0
ctrl_x_mode: 12, result is 0
ctrl_x_mode: 13, result is 0
ctrl_x_mode: 14, result is 0
ctrl_x_mode: 15, result is 0
ctrl_x_mode: 16, result is 1
ctrl_x_mode: 17, result is 0
ctrl_x_mode: 18, result is 1
ctrl_x_mode: 19, result is 0
Thanks for the response.
Best regards,
Hirohito Higashi (a.k.a h_east)
--
--
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.