On Thu, Sep 16, 2010 at 02:14:57PM +0100, Thomas Adam wrote:
> On 16 September 2010 13:50, Sergey Vlasov <v...@altlinux.ru> wrote:
> > Removing the offending line fixes the problem.
> 
> Thanks.  I had to copy and paste what looked like your Changelog
> entry.  Annoyingly.   Please read up on how we accept patches here.

Oops.  (Some other projects prefer Changelog separate from the patch -
most likely to avoid rejects when someone else had also added a
Changelog entry.)

> If there's another bug that crops up with this again, be warned I'll
> revert both this, and Vermeulen's patch.

Yes, there is a bug - the patch was applied at the wrong place (I
wonder how that could happen, there are different number of leading
tabs in those places).

Here is the fixup patch, if you will not decide to revert the whole
thing (with -U10, so that at least one different context line would be
visible - yes, that much code is duplicated there):

Index: ChangeLog
===================================================================
RCS file: /home/cvs/fvwm/fvwm/ChangeLog,v
retrieving revision 1.3131
diff -u -p -U 10 -r1.3131 ChangeLog
--- ChangeLog   16 Sep 2010 13:15:51 -0000      1.3131
+++ ChangeLog   16 Sep 2010 13:53:26 -0000
@@ -1,13 +1,13 @@
 2010-09-16  Sergey Vlasov <v...@altlinux.ru>
        * fvwm/move_resize.c (GetOnePositionArgument):
-       Fix parsing of commands like 'Move 50-50w 50-50w'
+       Fix parsing of commands like 'Move 50-50w 50-50w'.
 
 2010-08-31  Gerard Vermeulen <gav...@gmail.org>
        * fvwm/move_resize.c (GetOnePositionArgument):
        Parse commands like 'Move w+-5p w+-2p'.
 
 2010-08-09  Thomas Adam <tho...@xteddy.org>
        * NEWS:
        * configure.ac:
        Updated for the FVWM 2.5.31 release.
 
Index: fvwm/move_resize.c
===================================================================
RCS file: /home/cvs/fvwm/fvwm/fvwm/move_resize.c,v
retrieving revision 1.309
diff -u -p -U 10 -r1.309 move_resize.c
--- fvwm/move_resize.c  16 Sep 2010 13:15:51 -0000      1.309
+++ fvwm/move_resize.c  16 Sep 2010 13:53:26 -0000
@@ -363,20 +363,21 @@ static int GetOnePositionArgument(
                if (*s1 != 0)
                {
                        int val;
                        int n;
                        float f;
 
                        /* parse value */
                        if (sscanf(s1, "-%d%n", &val, &n) >= 1)
                        {
                                /* i.e. -1, -+1 or --1 */
+                               final_pos += (screen_size - window_size);
                                val = -val;
                        }
                        else if (
                                sscanf(s1, "+%d%n", &val, &n) >= 1 ||
                                sscanf(s1, "%d%n", &val, &n) >= 1)
                        {
                                /* i.e. 1, +1, ++1 or +-1 */
                        }
                        else
                        {
@@ -396,21 +397,20 @@ static int GetOnePositionArgument(
        while (*s1 != 0)
        {
                int val;
                int n;
                float f;
 
                /* parse value */
                if (sscanf(s1, "-%d%n", &val, &n) >= 1)
                {
                        /* i.e. -1, -+1 or --1 */
-                       final_pos += (screen_size - window_size);
                        val = -val;
                }
                else if (
                        sscanf(s1, "+%d%n", &val, &n) >= 1 ||
                        sscanf(s1, "%d%n", &val, &n) >= 1)
                {
                        /* i.e. 1, +1, ++1 or +-1 */
                }
                else
                {


Reply via email to