sbenning: add RL_NOT macro (aka: !RL_IS)

This commit is contained in:
m4s 2016-12-10 12:12:05 +01:00
parent 8f22367d91
commit 27ba76f08a
14 changed files with 31 additions and 29 deletions

View file

@ -6,7 +6,7 @@
/* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */ /* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/12/08 18:02:25 by sbenning #+# #+# */ /* Created: 2016/12/08 18:02:25 by sbenning #+# #+# */
/* Updated: 2016/12/09 18:26:46 by sbenning ### ########.fr */ /* Updated: 2016/12/10 11:49:42 by sbenning ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -26,11 +26,13 @@
/* /*
* Bitset manipulation : X is the bitset and Y is the bit to manipulate * Bitset manipulation : X is the bitset and Y is the bit to manipulate
* IS : Is Y set in X * IS : Is Y set in X
* NOT : Is Y not set in X
* SET : Set Y in X * SET : Set Y in X
* UNSET : Unset Y from X * UNSET : Unset Y from X
*/ */
# define RL_IS(X, Y) (X & Y) # define RL_IS(X, Y) (X & Y)
# define RL_NOT(X, Y) (!RL_IS(X, Y))
# define RL_SET(X, Y) (X |= Y) # define RL_SET(X, Y) (X |= Y)
# define RL_UNSET(X, Y) (X &= ~Y) # define RL_UNSET(X, Y) (X &= ~Y)

View file

@ -6,7 +6,7 @@
/* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */ /* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/12/08 18:03:48 by sbenning #+# #+# */ /* Created: 2016/12/08 18:03:48 by sbenning #+# #+# */
/* Updated: 2016/12/09 18:27:49 by sbenning ### ########.fr */ /* Updated: 2016/12/10 11:50:51 by sbenning ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -60,7 +60,7 @@ static void rl_toogle_bitset(t_line *line, int set)
RL_UNSET(line->bitset, RL_ESC); RL_UNSET(line->bitset, RL_ESC);
esc = 0; esc = 0;
} }
if ((select && !RL_IS(line->bitset, RL_SELECT)) || (!select && RL_IS(line->bitset, RL_SELECT))) if ((select && RL_NOT(line->bitset, RL_SELECT)) || (!select && RL_IS(line->bitset, RL_SELECT)))
{ {
rl_reset_display(line); rl_reset_display(line);
} }
@ -75,7 +75,7 @@ static int rl_finish(t_line *line)
write(1, "\n", 1); write(1, "\n", 1);
if (rl_stack_line(line) < 0) if (rl_stack_line(line) < 0)
return (-1); return (-1);
if (!RL_IS(line->bitset, RL_FINISH)) if (RL_NOT(line->bitset, RL_FINISH))
{ {
if (curs_coo_setup(&line->curs) < 0) if (curs_coo_setup(&line->curs) < 0)
return (-1); return (-1);

View file

@ -6,7 +6,7 @@
/* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */ /* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/12/08 18:38:39 by sbenning #+# #+# */ /* Created: 2016/12/08 18:38:39 by sbenning #+# #+# */
/* Updated: 2016/12/09 13:16:11 by sbenning ### ########.fr */ /* Updated: 2016/12/10 11:52:18 by sbenning ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -20,7 +20,7 @@ void rl_reset_display_post(t_line *line)
curs_clear_post(&line->curs); curs_clear_post(&line->curs);
if (len == 0) if (len == 0)
return ; return ;
if (!RL_IS(line->bitset, RL_SELECT) || (RL_IS(line->bitset, RL_SELECT) && line->select < line->pos)) if (RL_NOT(line->bitset, RL_SELECT) || (RL_IS(line->bitset, RL_SELECT) && line->select < line->pos))
{ {
curs_write_static(&line->curs, line->input + line->pos, len); curs_write_static(&line->curs, line->input + line->pos, len);
return; return;
@ -40,7 +40,7 @@ void rl_reset_display_ante(t_line *line)
if (!line->pos) if (!line->pos)
return ; return ;
curs_backward(&line->curs, line->pos); curs_backward(&line->curs, line->pos);
if (!RL_IS(line->bitset, RL_SELECT) || (RL_IS(line->bitset, RL_SELECT) && line->select > line->pos)) if (RL_NOT(line->bitset, RL_SELECT) || (RL_IS(line->bitset, RL_SELECT) && line->select > line->pos))
{ {
curs_write(&line->curs, line->input, line->pos); curs_write(&line->curs, line->input, line->pos);
return ; return ;

View file

@ -6,7 +6,7 @@
/* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */ /* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/12/09 00:46:36 by sbenning #+# #+# */ /* Created: 2016/12/09 00:46:36 by sbenning #+# #+# */
/* Updated: 2016/12/09 02:20:10 by sbenning ### ########.fr */ /* Updated: 2016/12/10 12:05:12 by sbenning ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -14,7 +14,7 @@
int rl_dquote_function(t_line *line, long int input) int rl_dquote_function(t_line *line, long int input)
{ {
if (!RL_IS(line->bitset, RL_ESC)) if (RL_NOT(line->bitset, RL_ESC))
{ {
if (RL_IS(line->bitset, RL_DQUOTE)) if (RL_IS(line->bitset, RL_DQUOTE))
RL_UNSET(line->bitset, RL_DQUOTE); RL_UNSET(line->bitset, RL_DQUOTE);

View file

@ -6,7 +6,7 @@
/* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */ /* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/12/09 00:40:22 by sbenning #+# #+# */ /* Created: 2016/12/09 00:40:22 by sbenning #+# #+# */
/* Updated: 2016/12/09 02:18:11 by sbenning ### ########.fr */ /* Updated: 2016/12/10 12:05:51 by sbenning ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -14,7 +14,7 @@
int rl_esc_function(t_line *line, long int input) int rl_esc_function(t_line *line, long int input)
{ {
if (!RL_IS(line->bitset, RL_ESC)) if (RL_NOT(line->bitset, RL_ESC))
RL_SET(line->bitset, RL_ESC); RL_SET(line->bitset, RL_ESC);
return (rl_default_function(line, input)); return (rl_default_function(line, input));
} }

View file

@ -6,7 +6,7 @@
/* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */ /* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/12/08 19:03:22 by sbenning #+# #+# */ /* Created: 2016/12/08 19:03:22 by sbenning #+# #+# */
/* Updated: 2016/12/09 13:02:00 by sbenning ### ########.fr */ /* Updated: 2016/12/10 12:06:41 by sbenning ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -16,7 +16,7 @@ int rl_nl_function(t_line *line, long int input)
{ {
if (RL_IS(line->bitset, RL_SELECT)) if (RL_IS(line->bitset, RL_SELECT))
RL_UNSET(line->bitset, RL_SELECT); RL_UNSET(line->bitset, RL_SELECT);
if (!RL_IS(line->bitset, RL_QUOTING)) if (RL_NOT(line->bitset, RL_QUOTING))
RL_SET(line->bitset, RL_FINISH); RL_SET(line->bitset, RL_FINISH);
RL_SET(line->bitset, RL_STACK); RL_SET(line->bitset, RL_STACK);
return (0); return (0);

View file

@ -6,7 +6,7 @@
/* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */ /* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/12/09 00:45:34 by sbenning #+# #+# */ /* Created: 2016/12/09 00:45:34 by sbenning #+# #+# */
/* Updated: 2016/12/09 02:20:20 by sbenning ### ########.fr */ /* Updated: 2016/12/10 12:05:26 by sbenning ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -14,7 +14,7 @@
int rl_quote_function(t_line *line, long int input) int rl_quote_function(t_line *line, long int input)
{ {
if (!RL_IS(line->bitset, RL_ESC)) if (RL_NOT(line->bitset, RL_ESC))
{ {
if (RL_IS(line->bitset, RL_QUOTE)) if (RL_IS(line->bitset, RL_QUOTE))
RL_UNSET(line->bitset, RL_QUOTE); RL_UNSET(line->bitset, RL_QUOTE);

View file

@ -6,7 +6,7 @@
/* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */ /* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/12/09 13:19:35 by sbenning #+# #+# */ /* Created: 2016/12/09 13:19:35 by sbenning #+# #+# */
/* Updated: 2016/12/09 13:20:31 by sbenning ### ########.fr */ /* Updated: 2016/12/10 12:07:40 by sbenning ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -18,7 +18,7 @@ int rl_select_end_function(t_line *line, long int input)
if (line->pos == line->used) if (line->pos == line->used)
return (0); return (0);
if (!RL_IS(line->bitset, RL_SELECT)) if (RL_NOT(line->bitset, RL_SELECT))
line->select = line->pos; line->select = line->pos;
ret = rl_end_function(line, input); ret = rl_end_function(line, input);
RL_SET(line->bitset, RL_SELECT); RL_SET(line->bitset, RL_SELECT);

View file

@ -6,7 +6,7 @@
/* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */ /* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/12/09 13:18:43 by sbenning #+# #+# */ /* Created: 2016/12/09 13:18:43 by sbenning #+# #+# */
/* Updated: 2016/12/09 13:20:31 by sbenning ### ########.fr */ /* Updated: 2016/12/10 12:07:55 by sbenning ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -18,7 +18,7 @@ int rl_select_home_function(t_line *line, long int input)
if (!line->pos) if (!line->pos)
return (0); return (0);
if (!RL_IS(line->bitset, RL_SELECT)) if (RL_NOT(line->bitset, RL_SELECT))
line->select = line->pos; line->select = line->pos;
ret = rl_home_function(line, input); ret = rl_home_function(line, input);
RL_SET(line->bitset, RL_SELECT); RL_SET(line->bitset, RL_SELECT);

View file

@ -6,7 +6,7 @@
/* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */ /* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/12/09 03:06:59 by sbenning #+# #+# */ /* Created: 2016/12/09 03:06:59 by sbenning #+# #+# */
/* Updated: 2016/12/09 12:37:28 by sbenning ### ########.fr */ /* Updated: 2016/12/10 12:08:10 by sbenning ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -18,7 +18,7 @@ int rl_select_left_function(t_line *line, long int input)
if (!line->pos) if (!line->pos)
return (0); return (0);
if (!RL_IS(line->bitset, RL_SELECT)) if (RL_NOT(line->bitset, RL_SELECT))
line->select = line->pos; line->select = line->pos;
ret = rl_left_function(line, input); ret = rl_left_function(line, input);
RL_SET(line->bitset, RL_SELECT); RL_SET(line->bitset, RL_SELECT);

View file

@ -6,7 +6,7 @@
/* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */ /* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/12/09 03:16:57 by sbenning #+# #+# */ /* Created: 2016/12/09 03:16:57 by sbenning #+# #+# */
/* Updated: 2016/12/09 13:29:15 by sbenning ### ########.fr */ /* Updated: 2016/12/10 12:08:30 by sbenning ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -19,7 +19,7 @@ int rl_select_pagedown_function(t_line *line, long int input)
if (line->pos == line->used) if (line->pos == line->used)
return (0); return (0);
if (!RL_IS(line->bitset, RL_SELECT)) if (RL_NOT(line->bitset, RL_SELECT))
line->select = line->pos; line->select = line->pos;
ret = rl_pagedown_function(line, input); ret = rl_pagedown_function(line, input);
RL_SET(line->bitset, RL_SELECT); RL_SET(line->bitset, RL_SELECT);

View file

@ -6,7 +6,7 @@
/* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */ /* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/12/09 03:06:59 by sbenning #+# #+# */ /* Created: 2016/12/09 03:06:59 by sbenning #+# #+# */
/* Updated: 2016/12/09 13:29:30 by sbenning ### ########.fr */ /* Updated: 2016/12/10 12:08:47 by sbenning ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -18,7 +18,7 @@ int rl_select_pageup_function(t_line *line, long int input)
if (!line->pos) if (!line->pos)
return (0); return (0);
if (!RL_IS(line->bitset, RL_SELECT)) if (RL_NOT(line->bitset, RL_SELECT))
line->select = line->pos; line->select = line->pos;
ret = rl_pageup_function(line, input); ret = rl_pageup_function(line, input);
RL_SET(line->bitset, RL_SELECT); RL_SET(line->bitset, RL_SELECT);

View file

@ -6,7 +6,7 @@
/* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */ /* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/12/09 03:06:59 by sbenning #+# #+# */ /* Created: 2016/12/09 03:06:59 by sbenning #+# #+# */
/* Updated: 2016/12/09 13:28:20 by sbenning ### ########.fr */ /* Updated: 2016/12/10 12:09:03 by sbenning ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -18,7 +18,7 @@ int rl_select_wleft_function(t_line *line, long int input)
if (!line->pos) if (!line->pos)
return (0); return (0);
if (!RL_IS(line->bitset, RL_SELECT)) if (RL_NOT(line->bitset, RL_SELECT))
line->select = line->pos; line->select = line->pos;
ret = rl_wleft_function(line, input); ret = rl_wleft_function(line, input);
RL_SET(line->bitset, RL_SELECT); RL_SET(line->bitset, RL_SELECT);

View file

@ -6,7 +6,7 @@
/* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */ /* By: sbenning <sbenning@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2016/12/09 03:16:57 by sbenning #+# #+# */ /* Created: 2016/12/09 03:16:57 by sbenning #+# #+# */
/* Updated: 2016/12/09 13:28:37 by sbenning ### ########.fr */ /* Updated: 2016/12/10 12:09:16 by sbenning ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -19,7 +19,7 @@ int rl_select_wright_function(t_line *line, long int input)
if (line->pos == line->used) if (line->pos == line->used)
return (0); return (0);
if (!RL_IS(line->bitset, RL_SELECT)) if (RL_NOT(line->bitset, RL_SELECT))
line->select = line->pos; line->select = line->pos;
ret = rl_wright_function(line, input); ret = rl_wright_function(line, input);
RL_SET(line->bitset, RL_SELECT); RL_SET(line->bitset, RL_SELECT);