]> git.sesse.net Git - vlc/blobdiff - src/extras/libc.c
Separate and refactor the win32 main code
[vlc] / src / extras / libc.c
index 38c930cafe7cc86074271c44437786e73e8fe3ab..99c59db6775a078055e5d9e037394b495be0b256 100644 (file)
@@ -800,140 +800,6 @@ bool vlc_ureduce( unsigned *pi_dst_nom, unsigned *pi_dst_den,
     return b_exact;
 }
 
-/*************************************************************************
- * vlc_parse_cmdline: Command line parsing into elements.
- *
- * The command line is composed of space/tab separated arguments.
- * Quotes can be used as argument delimiters and a backslash can be used to
- * escape a quote.
- *************************************************************************/
-static void find_end_quote( char **s, char **ppsz_parser, int i_quote )
-{
-    int i_bcount = 0;
-
-    while( **s )
-    {
-        if( **s == '\\' )
-        {
-            **ppsz_parser = **s;
-            (*ppsz_parser)++; (*s)++;
-            i_bcount++;
-        }
-        else if( **s == '"' || **s == '\'' )
-        {
-            /* Preceeded by a number of '\' which we erase. */
-            *ppsz_parser -= i_bcount / 2;
-            if( i_bcount & 1 )
-            {
-                /* '\\' followed by a '"' or '\'' */
-                *ppsz_parser -= 1;
-                **ppsz_parser = **s;
-                (*ppsz_parser)++; (*s)++;
-                i_bcount = 0;
-                continue;
-            }
-
-            if( **s == i_quote )
-            {
-                /* End */
-                return;
-            }
-            else
-            {
-                /* Different quoting */
-                int i_quote = **s;
-                **ppsz_parser = **s;
-                (*ppsz_parser)++; (*s)++;
-                find_end_quote( s, ppsz_parser, i_quote );
-                **ppsz_parser = **s;
-                (*ppsz_parser)++; (*s)++;
-            }
-
-            i_bcount = 0;
-        }
-        else
-        {
-            /* A regular character */
-            **ppsz_parser = **s;
-            (*ppsz_parser)++; (*s)++;
-            i_bcount = 0;
-        }
-    }
-}
-
-char **vlc_parse_cmdline( const char *psz_cmdline, int *i_args )
-{
-    int argc = 0;
-    char **argv = 0;
-    char *s, *psz_parser, *psz_arg, *psz_orig;
-    int i_bcount = 0;
-
-    if( !psz_cmdline ) return 0;
-    psz_orig = strdup( psz_cmdline );
-    psz_arg = psz_parser = s = psz_orig;
-
-    while( *s )
-    {
-        if( *s == '\t' || *s == ' ' )
-        {
-            /* We have a complete argument */
-            *psz_parser = 0;
-            TAB_APPEND( argc, argv, strdup(psz_arg) );
-
-            /* Skip trailing spaces/tabs */
-            do{ s++; } while( *s == '\t' || *s == ' ' );
-
-            /* New argument */
-            psz_arg = psz_parser = s;
-            i_bcount = 0;
-        }
-        else if( *s == '\\' )
-        {
-            *psz_parser++ = *s++;
-            i_bcount++;
-        }
-        else if( *s == '"' || *s == '\'' )
-        {
-            if( ( i_bcount & 1 ) == 0 )
-            {
-                /* Preceeded by an even number of '\', this is half that
-                 * number of '\', plus a quote which we erase. */
-                int i_quote = *s;
-                psz_parser -= i_bcount / 2;
-                s++;
-                find_end_quote( &s, &psz_parser, i_quote );
-                s++;
-            }
-            else
-            {
-                /* Preceeded by an odd number of '\', this is half that
-                 * number of '\' followed by a '"' */
-                psz_parser = psz_parser - i_bcount/2 - 1;
-                *psz_parser++ = '"';
-                s++;
-            }
-            i_bcount = 0;
-        }
-        else
-        {
-            /* A regular character */
-            *psz_parser++ = *s++;
-            i_bcount = 0;
-        }
-    }
-
-    /* Take care of the last arg */
-    if( *psz_arg )
-    {
-        *psz_parser = '\0';
-        TAB_APPEND( argc, argv, strdup(psz_arg) );
-    }
-
-    if( i_args ) *i_args = argc;
-    free( psz_orig );
-    return argv;
-}
-
 /*************************************************************************
  * vlc_execve: Execute an external program with a given environment,
  * wait until it finishes and return its standard output