[FFmpeg-devel] [PATCH] Set systems that should support DOS paths in configure
Måns Rullgård
mans
Mon Oct 6 22:52:07 CEST 2008
"Ramiro Polla" <ramiro.polla at gmail.com> writes:
> Hi,
>
> On Fri, Oct 3, 2008 at 7:58 PM, M?ns Rullg?rd <mans at mansr.com> wrote:
>> "Ramiro Polla" <ramiro.polla at gmail.com> writes:
>>> $subj
> [...]
>>> Index: libavformat/os_support.h
>>> ===================================================================
>>> --- libavformat/os_support.h (revision 15464)
>>> +++ libavformat/os_support.h (working copy)
>>> @@ -35,6 +35,12 @@
>>> # define lseek(f,p,w) _lseeki64((f), (p), (w))
>>> #endif
>>>
>>> +#ifdef HAVE_DOS_PATHS
>>> + #define is_dos_path(path) (path[1]==':')
>>
>> This allows anything as the "drive letter", though maybe that's
>> considered OK.
>
> According to [0], only letters are allowed for the drive letter
> (altough I've seen some program, fsdext2 IIRC, using numbers). Added
> isalpha() for path[0].
>
>>> +#else
>>> + #define is_dos_path(path) (0)
>>
>> Useless ().
>
> Removed.
>
> Also changed from #define to static inline int like ff_network_init().
>
> Ramiro Polla
> [0] http://msdn.microsoft.com/en-us/library/cc232152.aspx
>
> Index: libavformat/os_support.h
> ===================================================================
> --- libavformat/os_support.h (revision 15572)
> +++ libavformat/os_support.h (working copy)
> @@ -32,6 +32,15 @@
> # define lseek(f,p,w) _lseeki64((f), (p), (w))
> #endif
>
> +static inline int is_dos_path(const char *path)
> +{
> +#ifdef HAVE_DOS_PATHS
> + if (isalpha(path[0]) && path[1] == ':')
> + return 1;
Weird indentation.
> +#endif
> + return 0;
> +}
> +
> #ifdef __BEOS__
> # include <sys/socket.h>
> # include <netinet/in.h>
> Index: libavformat/avio.c
> ===================================================================
> --- libavformat/avio.c (revision 15572)
> +++ libavformat/avio.c (working copy)
> @@ -21,6 +21,7 @@
>
> #include "libavutil/avstring.h"
> #include "libavcodec/opt.h"
> +#include "os_support.h"
> #include "avformat.h"
>
> #if LIBAVFORMAT_VERSION_MAJOR >= 53
> @@ -115,7 +116,7 @@
> p++;
> }
> /* if the protocol has length 1, we consider it is a dos drive */
> - if (*p == '\0' || (q - proto_str) <= 1) {
> + if (*p == '\0' || is_dos_path(filename)) {
Not that I mind making the check stricter, but does this not cover
what you need?
--
M?ns Rullg?rd
mans at mansr.com
More information about the ffmpeg-devel
mailing list