Loading ...
Sorry, an error occurred while loading the content.

Re: Weird bug in GTK2 version of gvim 7

Expand Messages
  • Bram Moolenaar
    ... I can reproduce it. Minimal things to reproduce are: set cmdheight=2 set lines=43 And then use the :split command. It s something with resizing the Vim
    Message 1 of 16 , Apr 6, 2005
    • 0 Attachment
      Michael Schaap wrote:

      > I've found a weird bug in the GTK2 version of Vim 7. (It's in the latest
      > CVS state, but has occurred for at least a few weeks.) It took some
      > effort to narrow it down from my organically grown, more than a decade
      > old, .[g]vimrc files ... I really need to clean those up some time. :-[
      >
      > To trigger it, do the following:
      >
      > 1) Create a file /tmp/tmpvimrc, with contents:
      >
      > set cmdheight=2
      > set laststatus=2
      > set lines=43
      >
      > 2) Start gvim with: gvim -u /tmp/tmpvimrc -U NONE
      >
      > 3) Press F1
      >
      > This leaves the bottom window in a weird state. For instance, the status
      > line is gone, scrolling doesn't work as it should, etc. Sometimes, it
      > even segmentation faults.
      >
      > Works fine with the terminal version of vim, and also with gvim 6.3.
      >
      > (As a workaround, I added these lines to the bottom of my .gvimrc
      > set laststatus=1
      > set laststatus=2
      > which do indeed prevent the problem from occurring.)

      I can reproduce it. Minimal things to reproduce are:

      set cmdheight=2
      set lines=43

      And then use the ":split" command.

      It's something with resizing the Vim window while starting up, the GTK
      code for this is very complicated.

      --
      hundred-and-one symptoms of being an internet addict:
      88. Every single time you press the 'Get mail' button...it does get new mail.

      /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
      /// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
      \\\ Project leader for A-A-P -- http://www.A-A-P.org ///
      \\\ Buy LOTR 3 and help AIDS victims -- http://ICCF.nl/lotr.html ///
    • Michael Schaap
      ... Yeah, it s definitely sizing related. I forgot to mention: if, after starting gvim, you manually resize the window vertically before pressing F1 (or
      Message 2 of 16 , Apr 6, 2005
      • 0 Attachment
        On 6-Apr-2005 19:08, Bram Moolenaar wrote:

        >Michael Schaap wrote:
        >
        >
        >
        >>I've found a weird bug in the GTK2 version of Vim 7. (It's in the latest
        >>CVS state, but has occurred for at least a few weeks.) It took some
        >>effort to narrow it down from my organically grown, more than a decade
        >>old, .[g]vimrc files ... I really need to clean those up some time. :-[
        >>
        >>To trigger it, do the following:
        >>
        >>1) Create a file /tmp/tmpvimrc, with contents:
        >>
        >>set cmdheight=2
        >>set laststatus=2
        >>set lines=43
        >>
        >>2) Start gvim with: gvim -u /tmp/tmpvimrc -U NONE
        >>
        >>3) Press F1
        >>
        >>This leaves the bottom window in a weird state. For instance, the status
        >>line is gone, scrolling doesn't work as it should, etc. Sometimes, it
        >>even segmentation faults.
        >>
        >>Works fine with the terminal version of vim, and also with gvim 6.3.
        >>
        >>(As a workaround, I added these lines to the bottom of my .gvimrc
        >>set laststatus=1
        >>set laststatus=2
        >>which do indeed prevent the problem from occurring.)
        >>
        >>
        >
        >I can reproduce it. Minimal things to reproduce are:
        >
        > set cmdheight=2
        > set lines=43
        >
        >And then use the ":split" command.
        >
        >It's something with resizing the Vim window while starting up, the GTK
        >code for this is very complicated.
        >
        >
        >
        Yeah, it's definitely sizing related. I forgot to mention: if, after
        starting gvim, you manually resize the window vertically before pressing
        F1 (or :split), things work fine. So it appears that the GTK code thinks
        that the window size is different than it actually is, and manually
        resizing it fixes its understanding. ":set lines?" always reports the
        right thing, though.

        – Michael
      • Michael Schaap
        ... Indeed. The problem actually occurs when using :split , and F1 is just a quick way to perform one. :-) ... It probably forces the code to recalculate
        Message 3 of 16 , Apr 6, 2005
        • 0 Attachment
          On 6-Apr-2005 17:56, A. J. Mechelynck wrote:

          > F1 is by default an alias for ":help<CR>".

          Indeed. The problem actually occurs when using ":split", and F1 is just
          a quick way to perform one. :-)

          > This is indeed a weird bug, especially since reasserting the
          > already-set value of 'laststatus' clears it.

          It probably forces the code to recalculate the window dimensions,
          thereby losing whatever value it is that is corrupted.

          > Of course, on my W32 system, I can't reproduce it: F1 works as
          > intended, splitting the window and displaying the first page of help
          > in approximately the top two thirds. Both status lines are there, the
          > top one saying "help.txt [help][RO]" and the bottom one "[No Name]".
          > No scrolling of course in the empty bottom window.
          >
          Indeed, it appears to be specific to the GTK version. The KDE version
          also doesn't have this bug.

          > I notice that -u means that 'compatible' is on, but I don't see how
          > this could be relevant.
          >
          Not relevant at all. Just a minimal test case, the problem occurs with
          my huge, nocompatible-setting .[g]vimrc files. :-)

          - Michael
        • Ankur Kotwal
          ... This was quite interesting. Is there anyway to produce a debugable gvim executable for Windows? One that I can step through in the Visual Studio debugger?
          Message 4 of 16 , Apr 6, 2005
          • 0 Attachment
            > Can you provide a backtrace of that segfault ? Please compile vim as
            > usually with the options:
            >
            > export CFLAGS="-O0 -g -Wl,--as-needed"
            >
            > gdb vim7
            > run

            This was quite interesting. Is there anyway to produce a debugable
            gvim executable for Windows? One that I can step through in the Visual
            Studio debugger? Does anyone have the build instructions?

            I usually perform a build using "nmake -f Make_mvc.mak GUI=yes OLE=yes".

            PS: Sorry about the topic jacking.

            --
            Kind Regards,
            Ankur Kotwal
          • A. J. Mechelynck
            ... Check your makefile (Make_mvc.mak, right?). There may be a parameter like DEBUG=yes to add to your make command-line. If it s like with Make_bc5.mak and
            Message 5 of 16 , Apr 6, 2005
            • 0 Attachment
              Ankur Kotwal wrote:
              >>Can you provide a backtrace of that segfault ? Please compile vim as
              >>usually with the options:
              >>
              >>export CFLAGS="-O0 -g -Wl,--as-needed"
              >>
              >>gdb vim7
              >>run
              >
              >
              > This was quite interesting. Is there anyway to produce a debugable
              > gvim executable for Windows? One that I can step through in the Visual
              > Studio debugger? Does anyone have the build instructions?
              >
              > I usually perform a build using "nmake -f Make_mvc.mak GUI=yes OLE=yes".
              >
              > PS: Sorry about the topic jacking.
              >
              Check your makefile (Make_mvc.mak, right?). There may be a parameter
              like DEBUG=yes to add to your make command-line. If it's like with
              Make_bc5.mak and Make_cyg.mak (also for Windows, but using free
              compilers) it might produce an executable named gvimd.exe.

              If you want a ready-made (g)vimd.exe for Windows, point your browser to
              my Vim page http://users.skynet.be/antoine.mechelynck/vim/

              Best regards,
              Tony.
            • Ankur Kotwal
              Thanks! This worked a charm. ... -- Kind Regards, Ankur Kotwal
              Message 6 of 16 , Apr 6, 2005
              • 0 Attachment
                Thanks! This worked a charm.

                On Apr 7, 2005 12:29 PM, A. J. Mechelynck <antoine.mechelynck@...> wrote:
                > Ankur Kotwal wrote:
                > >>Can you provide a backtrace of that segfault ? Please compile vim as
                > >>usually with the options:
                > >>
                > >>export CFLAGS="-O0 -g -Wl,--as-needed"
                > >>
                > >>gdb vim7
                > >>run
                > >
                > >
                > > This was quite interesting. Is there anyway to produce a debugable
                > > gvim executable for Windows? One that I can step through in the Visual
                > > Studio debugger? Does anyone have the build instructions?
                > >
                > > I usually perform a build using "nmake -f Make_mvc.mak GUI=yes OLE=yes".
                > >
                > > PS: Sorry about the topic jacking.
                > >
                > Check your makefile (Make_mvc.mak, right?). There may be a parameter
                > like DEBUG=yes to add to your make command-line. If it's like with
                > Make_bc5.mak and Make_cyg.mak (also for Windows, but using free
                > compilers) it might produce an executable named gvimd.exe.
                >
                > If you want a ready-made (g)vimd.exe for Windows, point your browser to
                > my Vim page http://users.skynet.be/antoine.mechelynck/vim/
                >
                > Best regards,
                > Tony.
                >
                >


                --
                Kind Regards,
                Ankur Kotwal
              • Bram Moolenaar
                ... Import Make_ivc.mak as a workspace into Visual Studio. -- From know your smileys : !-| I-am-a-Cylon-Centurian-with-one-red-eye-bouncing-back-and-forth ///
                Message 7 of 16 , Apr 7, 2005
                • 0 Attachment
                  Ankur Kotwal wrote:

                  > > Can you provide a backtrace of that segfault ? Please compile vim as
                  > > usually with the options:
                  > >
                  > > export CFLAGS="-O0 -g -Wl,--as-needed"
                  > >
                  > > gdb vim7
                  > > run
                  >
                  > This was quite interesting. Is there anyway to produce a debugable
                  > gvim executable for Windows? One that I can step through in the Visual
                  > Studio debugger? Does anyone have the build instructions?
                  >
                  > I usually perform a build using "nmake -f Make_mvc.mak GUI=yes OLE=yes".

                  Import Make_ivc.mak as a workspace into Visual Studio.

                  --
                  From "know your smileys":
                  !-| I-am-a-Cylon-Centurian-with-one-red-eye-bouncing-back-and-forth

                  /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
                  /// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
                  \\\ Project leader for A-A-P -- http://www.A-A-P.org ///
                  \\\ Buy LOTR 3 and help AIDS victims -- http://ICCF.nl/lotr.html ///
                • Ankur Kotwal
                  Bram, ... I m using Visual Studio .NET 2003 and unfortunately, I am unable to open the file as either a project or a solution. As soon as I try to open the
                  Message 8 of 16 , Apr 7, 2005
                  • 0 Attachment
                    Bram,

                    > > I usually perform a build using "nmake -f Make_mvc.mak GUI=yes OLE=yes".
                    >
                    > Import Make_ivc.mak as a workspace into Visual Studio.

                    I'm using Visual Studio .NET 2003 and unfortunately, I am unable to
                    open the file as either a project or a solution. As soon as I try to
                    open the file, VS asks me if I want to convert the project. I of
                    course say yes but as soon as I do, I'm left facing a message box that
                    says "Cannot load the project due to a corrupt project file."

                    I assume that you are using an older version of Visual Studio. Are you
                    able to send me your .dsp and .dsw file? I can then import and upgrade
                    those files into VS .NET 2003. Thanks.


                    --
                    Kind Regards,
                    Ankur Kotwal
                  • Bram Moolenaar
                    ... You need to load it as a workspace, not as a project. Make sure the file has DOS fileformat. Unix fileformat doesn t work. ... These files are very
                    Message 9 of 16 , Apr 7, 2005
                    • 0 Attachment
                      Ankur Kotwal wrote:

                      > > > I usually perform a build using "nmake -f Make_mvc.mak GUI=yes OLE=yes".
                      > >
                      > > Import Make_ivc.mak as a workspace into Visual Studio.
                      >
                      > I'm using Visual Studio .NET 2003 and unfortunately, I am unable to
                      > open the file as either a project or a solution. As soon as I try to
                      > open the file, VS asks me if I want to convert the project. I of
                      > course say yes but as soon as I do, I'm left facing a message box that
                      > says "Cannot load the project due to a corrupt project file."

                      You need to load it as a workspace, not as a project.
                      Make sure the file has DOS fileformat. Unix fileformat doesn't work.

                      > I assume that you are using an older version of Visual Studio. Are you
                      > able to send me your .dsp and .dsw file? I can then import and upgrade
                      > those files into VS .NET 2003. Thanks.

                      These files are very system-specific. They are in some strange format,
                      thus I don't even know what I would be sending out.

                      It's very disappointing the MS doesn't have a documented and backwards
                      compatible project description file. Clearly a vendor lock-in.

                      --
                      From "know your smileys":
                      |-P Reaction to unusually ugly C code

                      /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
                      /// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
                      \\\ Project leader for A-A-P -- http://www.A-A-P.org ///
                      \\\ Buy LOTR 3 and help AIDS victims -- http://ICCF.nl/lotr.html ///
                    • Ciaran McCreesh
                      [ Forwarding this for agriffis@gentoo.org because the list software hates him... ] Bram Moolenaar wrote: [Wed Apr 06 2005, 01:08:08PM EDT] ... On this topic,
                      Message 10 of 16 , Apr 7, 2005
                      • 0 Attachment
                        [ Forwarding this for agriffis@... because the list software
                        hates him... ]

                        Bram Moolenaar wrote: [Wed Apr 06 2005, 01:08:08PM EDT]
                        > It's something with resizing the Vim window while starting up, the GTK
                        > code for this is very complicated.

                        On this topic, starting gvim in the ion window manager reveals window
                        sizing issues with gtk2. I'm guessing race condition since it doesn't
                        always happen, in particular if the system is bogged down then it
                        works correctly.

                        http://gentoo.org/~agriffis/misc/vim-ion-gtk2.png

                        Aron
                      • Norbert Tretkowski
                        ... I ve also seen this with current gvim 6.3 and ion3, so that s not only gvim 7 related. Norbert
                        Message 11 of 16 , Apr 7, 2005
                        • 0 Attachment
                          * Ciaran McCreesh wrote:
                          > Bram Moolenaar wrote: [Wed Apr 06 2005, 01:08:08PM EDT]
                          > > It's something with resizing the Vim window while starting up, the
                          > > GTK code for this is very complicated.
                          >
                          > On this topic, starting gvim in the ion window manager reveals
                          > window sizing issues with gtk2. I'm guessing race condition since it
                          > doesn't always happen, in particular if the system is bogged down
                          > then it works correctly.

                          I've also seen this with current gvim 6.3 and ion3, so that's not only
                          gvim 7 related.

                          Norbert
                        • Ankur Kotwal
                          Bram, I was able to successfully import the makefile into visual studio. I hadn t thought to convert the format from unix to dos. I had hoped that Visual
                          Message 12 of 16 , Apr 7, 2005
                          • 0 Attachment
                            Bram,

                            I was able to successfully import the makefile into visual studio. I
                            hadn't thought to convert the format from unix to dos. I had hoped
                            that Visual Studio would be smart enough to cope with it. Obviously
                            not.

                            > These files are very system-specific. They are in some strange format,
                            > thus I don't even know what I would be sending out.

                            Actually the format isn't really all that bad. It's actually fairly
                            easy to edit by hand once you know your way around it. The .dsp file
                            is all thats required.

                            > It's very disappointing the MS doesn't have a documented and backwards
                            > compatible project description file. Clearly a vendor lock-in.

                            Well it seems that because I was able to import the makefile
                            successfully, MS is quite backwards compatible. Quite impressive given
                            that the file format was for MSVC 4 which is almost 10 years old (and
                            that the format has gone through many revisions over the various
                            versions).

                            Anyways, thanks for your help Bram. Now that I have a debuggable
                            environment, is there a repository of bugs that I can sink my teeth
                            into? I figure thats the best way to get involved in vim development
                            at least till I learn my way around the code.


                            --
                            Kind Regards,
                            Ankur Kotwal
                          • Bram Moolenaar
                            ... Visual Studio is only smart in some areas... ... Yeah, but the only way to make such a file is by hand-editing it. You can only generate it with MSVC 4,
                            Message 13 of 16 , Apr 8, 2005
                            • 0 Attachment
                              Ankur Kotwal wrote:

                              > I was able to successfully import the makefile into visual studio. I
                              > hadn't thought to convert the format from unix to dos. I had hoped
                              > that Visual Studio would be smart enough to cope with it. Obviously
                              > not.

                              Visual Studio is only smart in some areas...

                              > > It's very disappointing the MS doesn't have a documented and backwards
                              > > compatible project description file. Clearly a vendor lock-in.
                              >
                              > Well it seems that because I was able to import the makefile
                              > successfully, MS is quite backwards compatible. Quite impressive given
                              > that the file format was for MSVC 4 which is almost 10 years old (and
                              > that the format has gone through many revisions over the various
                              > versions).

                              Yeah, but the only way to make such a file is by hand-editing it. You
                              can only generate it with MSVC 4, which almost nobody has (you can't buy
                              it, you need to get an illegal copy).

                              > Anyways, thanks for your help Bram. Now that I have a debuggable
                              > environment, is there a repository of bugs that I can sink my teeth
                              > into? I figure thats the best way to get involved in vim development
                              > at least till I learn my way around the code.

                              ":help todo". You might want to get a Vim 7 snapshot, because some
                              things were fixed in Vim 7 but too risky to include in Vim 6.3.

                              --
                              From "know your smileys":
                              <>:-) Bishop

                              /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
                              /// Sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
                              \\\ Project leader for A-A-P -- http://www.A-A-P.org ///
                              \\\ Buy LOTR 3 and help AIDS victims -- http://ICCF.nl/lotr.html ///
                            Your message has been successfully submitted and would be delivered to recipients shortly.