author | jurikm |
Sun, 12 Feb 2012 14:04:10 +0000 | |
changeset 8245 | 383896da4129 |
parent 3378 | 1133106f35d7 |
permissions | -rw-r--r-- |
3378
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
1 |
Source: http://mailman.videolan.org/pipermail/vlc-devel/2010-June/075315.html |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
2 |
|
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
3 |
|
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
4 |
[vlc-devel] [PATCH 1/2] Use pathconf() as NAME_MAX might be undefined |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
5 |
Francois Cartegnie fcvlcdev at free.fr |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
6 |
Thu Jun 10 23:25:31 CEST 2010 |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
7 |
|
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
8 |
|
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
9 |
SunOS <limits.h> deprecates and comments the NAME_MAX declartion. |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
10 |
The defined _POSIX_NAME_MAX does not reflect the real value (14). |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
11 |
Posix says that the reentrant readdir can either take NAME_MAX or |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
12 |
pathconf. |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
13 |
|
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
14 |
--- vlc-1.1.4.1/src/text/filesystem.c.orig 2010-09-24 11:32:04.000000000 +0200 |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
15 |
+++ vlc-1.1.4.1/src/text/filesystem.c 2010-11-06 22:46:23.808298542 +0100 |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
16 |
@@ -38,11 +38,15 @@ |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
17 |
|
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
18 |
#include <stdio.h> |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
19 |
#include <limits.h> /* NAME_MAX */ |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
20 |
+#if !defined(NAME_MAX) && defined(_POSIX_NAME_MAX) |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
21 |
+# define NAME_MAX _POSIX_NAME_MAX |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
22 |
+#endif |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
23 |
#include <errno.h> |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
24 |
#include <sys/types.h> |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
25 |
#ifdef HAVE_DIRENT_H |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
26 |
# include <dirent.h> |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
27 |
#endif |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
28 |
+#include <stddef.h> |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
29 |
#ifdef HAVE_SYS_STAT_H |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
30 |
# include <sys/stat.h> |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
31 |
#endif |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
32 |
@@ -322,13 +326,30 @@ |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
33 |
|
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
34 |
return FromWide (ent->d_name); |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
35 |
#else |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
36 |
- struct dirent *ent; |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
37 |
- struct |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
38 |
- { |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
39 |
- struct dirent ent; |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
40 |
- char buf[NAME_MAX + 1]; |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
41 |
- } buf; |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
42 |
- int val = readdir_r (dir, &buf.ent, &ent); |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
43 |
+ struct dirent *ent, *buf; |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
44 |
+ int fd; |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
45 |
+ int name_max; |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
46 |
+ #ifdef __SunOS |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
47 |
+ fd = dir->dd_fd; /* no dirfd on solaris */ |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
48 |
+ #else |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
49 |
+ fd = dirfd( dir ); |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
50 |
+ #endif |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
51 |
+ if ( fd == -1 ) return NULL; |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
52 |
+ |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
53 |
+ name_max = fpathconf( fd, _PC_NAME_MAX ); |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
54 |
+ if ( name_max == -1 ) |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
55 |
+ #ifdef NAME_MAX |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
56 |
+ name_max = NAME_MAX; |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
57 |
+ #else |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
58 |
+ name_max = 260; /* libvlc.h FILENAME_MAX */ |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
59 |
+ #endif |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
60 |
+ |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
61 |
+ buf = (struct dirent *) malloc( (size_t) offsetof(struct dirent, d_name) |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
62 |
+ + ++name_max * sizeof(char) ); |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
63 |
+ if ( buf == NULL ) return NULL; |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
64 |
+ int val = readdir_r (dir, buf, &ent); |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
65 |
+ if ( !ent || val) free(buf); |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
66 |
+ |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
67 |
if (val) |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
68 |
{ |
1133106f35d7
experimental/SFEvlc-1.1.4.1.spec: release to experimental, needs SFEqt47-gpp in new path layout and more work to find QT
tom68
parents:
diff
changeset
|
69 |
errno = val; |