Move setting of LD_LIBRARY_PATH closer to invocation of cppunittester
[LibreOffice.git] / external / freetype / freetype-fd-hack.patch.0
blob96f666c15daf3878c32cf20b70f7748ed0a2532c
1 # -*- Mode: Diff -*-
2 --- src/base/ftsystem.c
3 +++ src/base/ftsystem.c
4 @@ -24,6 +24,7 @@
5     *
6     */
7  
8 +#include <unistd.h>
9  
10  #include <ft2build.h>
11  #include FT_CONFIG_CONFIG_H
12 @@ -238,6 +239,8 @@
13                    const char*  filepathname )
14    {
15      FT_FILE*  file;
16 +    int nFD;
17 +    int n;
20      if ( !stream )
21 @@ -250,7 +253,13 @@
22      stream->read               = NULL;
23      stream->close              = NULL;
25 -    file = ft_fopen( filepathname, "rb" );
26 +    if ( sscanf( filepathname, "/:FD:/%d%n", &nFD, &n ) == 1 && filepathname[n] == '\0')
27 +    {
28 +      lseek( nFD, 0, SEEK_SET );
29 +      file = fdopen( dup( nFD ), "rb" );
30 +    }
31 +    else
32 +      file = ft_fopen( filepathname, "rb" );
33      if ( !file )
34      {
35        FT_ERROR(( "FT_Stream_Open:"
36 --- builds/unix/ftsystem.c
37 +++ builds/unix/ftsystem.c
38 @@ -249,13 +249,21 @@
39    {
40      int          file;
41      struct stat  stat_buf;
42 +    int nFD;
43 +    int n;
46      if ( !stream )
47        return FT_THROW( Invalid_Stream_Handle );
49      /* open the file */
50 -    file = open( filepathname, O_RDONLY );
51 +    if ( sscanf( filepathname, "/:FD:/%d%n", &nFD, &n ) == 1 && filepathname[n] == '\0')
52 +    {
53 +      lseek( nFD, 0, SEEK_SET );
54 +      file = dup( nFD );
55 +    }
56 +    else
57 +      file = open( filepathname, O_RDONLY );
58      if ( file < 0 )
59      {
60        FT_ERROR(( "FT_Stream_Open:" ));