Suresh Govindachar wrote:
  Bram Moolenaar wrote:
  > Markus Trenkwalder wrote:
  >
  >>    checked out vim-7.1a.001 today from svn (#263) and tried to
  >>    compile it with mingw-gcc and got the following error:
>> >> ----8<----
  >> $ make -f Make_ming.mak
  >> gcc -c -Iproto -DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400
  >> -DHAVE_PATHDEF -DFEAT_BIG -DHAVE_GETTEXT -DHAVE_LOCALE_H
  >> -DDYNAMIC_GETTEXT -DFEAT_CSCOPE -DFEAT_NETBEANS_INTG
  >> -DFEAT_GUI_W32 -DFEAT_CLIPBOARD -DFEAT_MBYTE -DFEAT_MBYTE_IME
  >> -DDYNAMIC_IME -DDYNAMIC_ICONV -pipe -w -march=i386 -Wall -O3
  >> -fomit-frame-pointer -freg-struct-return -s gui_w32.c -o
  >> gobj/gui_w32.o gui_w32.c:236: error: redefinition of `struct
  >> tagNMTTDISPINFOA' gui_w32.c:246: error: redefinition of `struct
  >> tagNMTTDISPINFOW' make: *** [gobj/gui_w32.o] Error 1 ----8<----

  I get the same error message.  I recursively grepped for
  NMTTDISPINFO and examined the output, but did not find any
  "redefinition"!  No clue where the compiler is finding the
  redefinitions.

  >> My naive solution to this problem is:
  >> ----8<----
  >> --- src/gui_w32.c.000   Mon May  7 08:26:54 2007
  >> +++ src/gui_w32.c       Mon May  7 07:01:09 2007
  >> @@ -232,7 +232,7 @@
  >>       LPARAM     lParam;
  >>   } NMTTDISPINFO_NEW;
>> >> -#ifndef LPNMTTDISPINFO
  >> +#if !defined(LPNMTTDISPINFO) && !defined(TOOLTIPTEXTA)
  >>   typedef struct tagNMTTDISPINFOA {
  >>       NMHDR      hdr;
  >>       LPSTR      lpszText;
  >> ----8<----
> > What does TOOLTIPTEXTA have to do with this? I don't understand
  > why you try to solve it this way.
> > Someone else also reported this problem while it worked OK
  > earlier.  Perhaps there is something wrong with the way you
  > obtained the sources?

  (Tony reported working around the error message by not using svn.)

  I got the sources from svn the same why I have always been getting
  the sources (the whole process of "get sources, build, deploy,
  update runtime" is automated in scripts).

The symbol is defined in mingw in the file '/include/commctrl.h' through
the file '/include/pshpack1.h'.  The relevant part in mingw's version of
commctrl.h (starting at line 2368) is:
----8<----
...
typedef struct tagNMTTDISPINFOA {
        NMHDR hdr;
        LPSTR lpszText;
        char szText[80];
        HINSTANCE hinst;
        UINT uFlags;
#if (_WIN32_IE >= 0x0300)
        LPARAM lParam;
#endif
} NMTTDISPINFOA, *LPNMTTDISPINFOA;
#define TOOLTIPTEXTA    NMTTDISPINFOA
#define LPTOOLTIPTEXTA  LPNMTTDISPINFOA
...
----8<----

So the only chance I had to detect if tagNMTTDISPINFOA is defined alredy
was to test one of the TOOLTIP macros.  I know this is not the most
beautyful solution but I just wanted to show the problem and provide one
possible solution.

I'll try to compile the FTP-sources now and see if the problem still
exists there -- report will follow.

Regards

Markus


Reply via email to