Subject: Re: bug#13479: Cross Compiling for ARM

From: Ross Biro <[email-masked]>
Date: Tue, 22 Jan 2013 22:49:12 -0500

I don't have a wset_new_total.  Is that a new function?  I'm using mostly
stock 24.2.

    Ross

On Sat, Jan 19, 2013 at 5:11 AM, martin rudalics <[email-masked]> wrote:

> I haven't investigated.  But because protecting those calls by if
>> (initialized) and even moving the lisp->C binding for
>> window_root_window_resize_**vertically to after initialization didn't
>> help, I
>> suspect the issue might be deeper than just protecting C calls to lisp.  I
>> really don't know how to follow up though.
>>
>
> If Lisp hasn't been called yet, the root window cannot have
> been split yet.  So in the case at hand the following patch
> sould work.  Can you please try it?
>
> Thanks, martin
>
>
> === modified file 'src/window.c'
> --- src/window.c        2013-01-11 23:08:55 +0000
> +++ src/window.c        2013-01-19 09:54:07 +0000
> @@ -4207,8 +4207,15 @@
>
>    root = FRAME_ROOT_WINDOW (f);
>    r = XWINDOW (root);
> -  value = call2 (Qwindow_resize_root_window_vertically,
> -                root, make_number (- delta));
> +  if (WINDOW_LIVE_P (root))
> +    {
> +      wset_new_total (r, make_number (XFASTINT (r->total_lines) - delta));
> +      value = make_number (- delta);
> +    }
> +  else
> +    value = call2 (Qwindow_resize_root_window_vertically,
> +                  root, make_number (- delta));
> +
>    if (INTEGERP (value) && window_resize_check (r, 0))
>      {
>        block_input ();
> @@ -4245,8 +4252,15 @@
>      {
>        root = FRAME_ROOT_WINDOW (f);
>        r = XWINDOW (root);
> -      value = call2 (Qwindow_resize_root_window_vertically,
> -                    root, make_number (size - 1));
> +      if (WINDOW_LIVE_P (root))
> +       {
> +         wset_new_total (r, make_number (XFASTINT (r->total_lines) + size
> - 1));
> +         value = make_number (size - 1);
> +       }
> +      else
> +       value = call2 (Qwindow_resize_root_window_vertically,
> +                      root, make_number (size - 1));
> +
>        if (INTEGERP (value) && window_resize_check (r, 0))
>         {
>           block_input ();
>
>
>
>