Subversion Repositories Kolibri OS

Rev

Rev 3245 | Rev 3268 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3245 Albom 1
 
2
3
 
4
{
5
6
 
7
int argc = 1;
8
int quote = 0;
9
int argv_len;
10
11
 
12
if ( param_len == 0 )
13
   return 0;
14
15
 
16
17
 
18
for (i = 0; i < param_len; i++)
19
    {
20
    switch (param[i])
21
           {
22
           case '"':
23
                if (quote == 0)
24
                    quote = 1;
25
                else
26
                    {
27
                    quote = 0;
28
                    argv[argc-1][argv_len] = '\0';
29
                    argc++;
30
                    argv[argc-1] = (char*) malloc(4096);
31
                    argv[argc-1][argv_len] = '\0';
32
                    argv_len = 0;
33
                    }
34
                break;
35
36
 
37
           case 32:
38
                if (quote == 0)
39
                   {
40
                   if ( ( param[i+1] != 32) || ( param[i+1] != 9) )
41
                      {
42
                      if (argv_len != 0)
43
                         {
44
                         argv[argc-1][argv_len] = '\0';
45
                         argc++;
46
                         argv[argc-1] = (char*) malloc(4096);
47
                         argv[argc-1][argv_len] = '\0';
48
                         argv_len = 0;
49
                         }
50
                      }
51
                   }
52
                   else
53
                    {
54
                    argv[argc-1][argv_len] = param[i];
55
                    argv_len++;
56
                    }
57
58
 
59
60
 
61
                   argv[argc-1][argv_len] = param[i];
62
                   argv_len++;
63
                   break;
64
           };
65
    }
66
67
 
68
69
 
70
   {
71
   free(argv[argc-1]);
72
   argc--;
73
   }
74
75
 
76
}
77
78
 
79
80
 
81
{
82
83
 
84
85
 
86
    free(argv[i]);
87
88
 
89
90
 
91