tux4kids / tuxtype

GNU General Public License v2.0
55 stars 32 forks source link

No need to redefine scandir on Haiku #20

Closed Begasus closed 8 months ago

Begasus commented 2 years ago

PS, this doesn't fix a build with a current commit checkout, but I'll get back to that later.

h01ger commented 1 year ago

https://dev.haiku-os.org/ticket/3374 has been implemented, does this mean this pull request can be closed as non-actionable?

Begasus commented 1 year ago

Will have to do another check (has been a while since last one), but I think this is still needed, current situation redefines scandir, which shouldn't be needed anymore. Will get back on this shortly.

perepujal commented 8 months ago

Hi, any updates on this?

Begasus commented 8 months ago

Whoops, that isn't shortly :) Let me do a testrun today (I hope to get around to it), sorry for the delay.

Begasus commented 8 months ago

Build errors out without the patch (checking latest commit):

In file included from scripting.c:34:
scandir.h:48:12: error: conflicting types for 'alphasort'; have 'int(const void *, const void *)'
   48 | extern int alphasort(const void *d1, const void *d2);
      |            ^~~~~~~~~
In file included from globals.h:48:
/boot/system/develop/headers/posix/dirent.h:50:33: note: previous declaration of 'alphasort' with type 'int(const struct dirent **, const struct dirent **)'
   50 | int                             alphasort(const struct dirent** entry1,
      |                                 ^~~~~~~~~
scandir.h:49:12: error: conflicting types for 'scandir'; have 'int(const char *, struct dirent ***, int (*)(struct dirent *), int (*)(const void *, const void *))'
   49 | extern int scandir(const char *dirname, struct dirent ***namelist, int (*sdfilter)(struct dirent *), int (*dcomp)(const void *, const void *));
      |            ^~~~~~~
/boot/system/develop/headers/posix/dirent.h:52:33: note: previous declaration of 'scandir' with type 'int(const char *, struct dirent ***, int (*)(const struct dirent *), int (*)(const struct dirent **, const struct dirent **))'
   52 | int                             scandir(const char* dir, struct dirent*** _entryArray,
      |                                 ^~~~~~~

The other error with current checkout is (unrelated to this):

<command-line>: note: this is the location of the previous definition
titlescreen.c:568:9: warning: implicit declaration of function 'T4K_Tts_say' [-Wimplicit-function-declaration]
titlescreen.c:640:59: error: 'white' undeclared (first use in this function); did you mean 'write'?
  640 |             s1 = T4K_BlackOutline(strings[i], font_size, &white);
      |                                                           ^~~~~
      |                                                           write
titlescreen.c:640:59: note: each undeclared identifier is reported only once for each function it appears in
practice.c: In function 'get_next_word_letters':
practice.c:1786:45: warning: passing argument 1 of 'gettext' from incompatible pointer type [-Wincompatible-pointer-types]
 1786 |                         wcscat(temp,gettext(L"comma"));
      |                                             ^~~~~~~~
      |                                             |
      |                                             int *
In file included from gettext.h:26,
                 from globals.h:58:
/boot/system/develop/headers/libintl.h:136:35: note: expected 'const char *' but argument is of type 'int *'
  136 | extern char *gettext (const char *__msgid)
      |                       ~~~~~~~~~~~~^~~~~~~
titlescreen.c: In function 'ShowMessage':
titlescreen.c:757:57: error: 'white' undeclared (first use in this function); did you mean 'write'?
  757 |         s1 = T4K_BlackOutline(str1, font_size * scale, &white);
      |                                                         ^~~~~
      |                                                         write

EDIT: strike the last error, this is fixed in upstream changes in t4kcommon.

perepujal commented 8 months ago

So seems still needed, merging, thanks!