poke-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] pk-cmd: Check for command in less arror-prone way


From: Tim Rühsen
Subject: Re: [PATCH] pk-cmd: Check for command in less arror-prone way
Date: Sat, 2 May 2020 18:51:51 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0

Amended and pushed.

On 02.05.20 18:49, Jose E. Marchesi wrote:
> 
> Hi Tim.
> 
>     2020-05-02  Tim Rühsen  <address@hidden>
>     
>             * src/pk-cmd.c: Add macro is_command.
>             (pk_cmd_exec): Use is_command to check for command.
> 
> I usually use ALL_CAPS for both macro names and macro arguments,
> especially for little utility macros like this.  If you wouldn't mind to
> use the same convention it would be great.
> 
> Otherwise the change looks ok to me!
> Thanks!
> 
> 
>     ---
>      ChangeLog    |  5 +++++
>      src/pk-cmd.c | 22 ++++++++++------------
>      2 files changed, 15 insertions(+), 12 deletions(-)
>     
>     diff --git a/src/pk-cmd.c b/src/pk-cmd.c
>     index 6a966041..dbe3f6f5 100644
>     --- a/src/pk-cmd.c
>     +++ b/src/pk-cmd.c
>     @@ -549,6 +549,10 @@ extern struct pk_trie *set_trie; /* pk-set.c */
>     
>      static struct pk_trie *cmds_trie;
>     
>     +#define is_command(input, cmd) \
>     +  (strncmp ((input), (cmd), sizeof (cmd) - 1) == 0 \
>     +   && ((input)[sizeof (cmd) - 1] == ' ' || (input)[sizeof (cmd) - 1] == 
> '\t'))
>     +
>      int
>      pk_cmd_exec (const char *str)
>      {
>     @@ -567,25 +571,17 @@ pk_cmd_exec (const char *str)
>            int what; /* 0 -> declaration, 1 -> statement */
>            int retval = 1;
>     
>     -      if (strncmp (ecmd, "defun ", 6) == 0
>     -          || strncmp (ecmd, "defun\t", 6) == 0)
>     +      if (is_command(ecmd, "defun"))
>              what = 0;
>            else
>              {
>     -          if (strncmp (ecmd, "defvar ", 7) == 0
>     -              || strncmp (ecmd, "defvar\t", 7) == 0
>     -              || strncmp (ecmd, "deftype ", 8) == 0
>     -              || strncmp (ecmd, "deftype\t", 8) == 0
>     -              || strncmp (ecmd, "defunit ", 8) == 0
>     -              || strncmp (ecmd, "defunit\t", 8) == 0)
>     +          if (is_command(ecmd, "defvar")
>     +           || is_command(ecmd, "deftype")
>     +           || is_command(ecmd, "defunit"))
>                  what = 0;
>                else
>                  what = 1;
>     -        }
>     
>     -      if (strncmp (ecmd, "defun ", 6) != 0
>     -          && strncmp (ecmd, "defun\t", 6) != 0)
>     -        {
>                cmd_alloc = pk_str_concat (cmd, ";", NULL);
>                ecmd = cmd_alloc;
>              }
>     @@ -614,6 +610,8 @@ pk_cmd_exec (const char *str)
>            return retval;
>          }
>      }
>     +#undef is_command
>     +
>     
>      int
>      pk_cmd_exec_script (const char *filename)
>     --
>     2.26.2
> 

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]