On Apr 3, 2:04 pm, Jürgen Krämer <[EMAIL PROTECTED]> wrote:
> I don't see a difference in meaning between "*stackp++ = s;" and
> "*stackp = s; ++stackp;"

You're right, I just split them out for clarity since I'm not a C
programmer.

> and I don't know anything about the context or
> usage of the original patch, but your change might break existing code,
> e.g.,

No, I have checked them out, the macroes are defined in a function
block and then undefined immediately before the functions ends. And
these macros are not used after any if() for() while(), etc.

>   #define PUSH(s)       do {                        \
>                     if (stackp >= stack_end)\
>                         return NULL;        \
>                      *stackp++ = s;         \
>                 } while (0)
>
>   #define POP()         do {                        \
>                     if (stackp <= stack)    \
>                         return NULL;        \
>                     *--stackp;              \
>                  } while (0)

For PUSH it will be fine, but for POP I don't think that it'd work
since it is used as an expression:

e = POP();

---
Charles
--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Raspunde prin e-mail lui