Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Steve Lhomme
VLC
Commits
ff026ff6
Commit
ff026ff6
authored
Oct 07, 2008
by
geal
Browse files
WinCE: reintroduce parse_cmdline
parent
400b6736
Changes
1
Hide whitespace changes
Inline
Side-by-side
bin/winvlc.c
View file @
ff026ff6
...
...
@@ -35,6 +35,7 @@
#include
<stdlib.h>
#include
<windows.h>
#ifndef UNDER_CE
static
char
*
FromWide
(
const
wchar_t
*
wide
)
{
size_t
len
;
...
...
@@ -45,7 +46,55 @@ static char *FromWide (const wchar_t *wide)
WideCharToMultiByte
(
CP_UTF8
,
0
,
wide
,
-
1
,
out
,
len
,
NULL
,
NULL
);
return
out
;
}
#else
static
int
parse_cmdline
(
char
*
line
,
char
***
argvp
)
{
char
**
argv
=
malloc
(
sizeof
(
char
*
));
int
argc
=
0
;
while
(
*
line
!=
'\0'
)
{
char
quote
=
0
;
/* Skips white spaces */
while
(
strchr
(
"
\t
"
,
*
line
))
line
++
;
if
(
!*
line
)
break
;
/* Starts a new parameter */
argv
=
realloc
(
argv
,
(
argc
+
2
)
*
sizeof
(
char
*
));
if
(
*
line
==
'"'
)
{
quote
=
'"'
;
line
++
;
}
argv
[
argc
++
]
=
line
;
more:
while
(
*
line
&&
!
strchr
(
"
\t
"
,
*
line
))
line
++
;
if
(
line
>
argv
[
argc
-
1
]
&&
line
[
-
1
]
==
quote
)
/* End of quoted parameter */
line
[
-
1
]
=
0
;
else
if
(
*
line
&&
quote
)
{
/* Space within a quote */
line
++
;
goto
more
;
}
else
/* End of unquoted parameter */
if
(
*
line
)
*
line
++
=
0
;
}
argv
[
argc
]
=
NULL
;
*
argvp
=
argv
;
return
argc
;
}
#endif
int
WINAPI
WinMain
(
HINSTANCE
hInstance
,
HINSTANCE
hPrevInstance
,
#ifndef UNDER_CE
...
...
@@ -56,6 +105,7 @@ int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
int
nCmdShow
)
{
int
argc
,
ret
;
#ifndef UNDER_CE
wchar_t
**
wargv
=
CommandLineToArgvW
(
GetCommandLine
(),
&
argc
);
if
(
wargv
==
NULL
)
return
1
;
...
...
@@ -65,6 +115,14 @@ int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
argv
[
i
]
=
FromWide
(
wargv
[
i
]);
argv
[
argc
]
=
NULL
;
LocalFree
(
wargv
);
#else
char
**
argv
,
psz_cmdline
[
wcslen
(
lpCmdLine
)
*
4
];
WideCharToMultiByte
(
CP_UTF8
,
0
,
lpCmdLine
,
-
1
,
psz_cmdline
,
sizeof
(
psz_cmdline
),
NULL
,
NULL
);
argc
=
parse_cmdline
(
psz_cmdline
,
&
argv
);
#endif
libvlc_exception_t
ex
,
dummy
;
libvlc_exception_init
(
&
ex
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment