Rev 3269 | Rev 3304 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3269 | Rev 3275 | ||
---|---|---|---|
Line 67... | Line 67... | ||
67 | 67 | ||
68 | if (NULL == usr->line) |
68 | if (NULL == usr->line) |
69 | return CL_EFAIL; |
69 | return CL_EFAIL; |
70 | 70 | ||
71 | tmp = cli_strdup(usr->line); |
71 | tmp = cli_strdup(usr->line); |
72 | cli_verbose("Tok: tmp = %s", tmp); |
- | |
- | 72 | ||
73 | /* Break up what the user typed, space delimited */ |
73 | /* Break up what the user typed, space delimited */ |
74 | cmd[n] = cli_strtok(tmp, " "); |
74 | cmd[n] = cli_strtok(tmp, " "); |
75 | while (cmd[n] && n < WORD_MAX) { |
75 | while (cmd[n] && n < WORD_MAX) { |
76 | cmd[++n] = cli_strtok(NULL, " "); |
76 | cmd[++n] = cli_strtok(NULL, " "); |
77 | } |
77 | } |
78 | 78 | ||
79 | for (n = 0; cmd[n] != NULL; n++) |
- | |
80 | cli_verbose("arg[%d] => `%s'", n, cmd[n]); |
- | |
81 | - | ||
82 | /* We have rubbish */ |
79 | /* We have rubbish */ |
83 | if (NULL == cmd[0]) { |
80 | if (NULL == cmd[0]) { |
84 | rc = CL_ENOENT; |
81 | rc = CL_ENOENT; |
85 | goto finit; |
82 | goto finit; |
86 | } |
83 | } |
Line 112... | Line 109... | ||
112 | rc = try_exec(cmd[0], cmd); |
109 | rc = try_exec(cmd[0], cmd); |
113 | goto finit; |
110 | goto finit; |
114 | } |
111 | } |
115 | 112 | ||
116 | finit: |
113 | finit: |
117 | /* Why is free complaining about these ? |
- | |
118 | if (NULL != usr->line) { |
114 | if (NULL != usr->line) { |
119 | free(usr->line); |
115 | free(usr->line); |
120 | usr->line = (char *) NULL; |
116 | usr->line = (char *) NULL; |
121 | } |
117 | } |
122 | if (NULL != tmp) |
118 | if (NULL != tmp) |
123 | free(tmp); |
119 | free(tmp); |
124 | */ |
120 | |
125 | return rc; |
121 | return rc; |
126 | } |
122 | } |
127 | 123 | ||
128 | #ifdef HELENOS |
124 | #ifdef HELENOS |
129 | /* Borrowed from Jiri Svoboda's 'cli' uspace app */ |
125 | /* Borrowed from Jiri Svoboda's 'cli' uspace app */ |
Line 166... | Line 162... | ||
166 | #else |
162 | #else |
167 | fgets(line, INPUT_MAX, stdin); |
163 | fgets(line, INPUT_MAX, stdin); |
168 | #endif |
164 | #endif |
169 | len = strlen(line); |
165 | len = strlen(line); |
170 | /* Make sure we don't have rubbish or a C/R happy user */ |
166 | /* Make sure we don't have rubbish or a C/R happy user */ |
171 | if (len == 0) |
167 | if (len == 0 || line[0] == '\n') |
172 | return; |
168 | return; |
173 | if (len == 1 && line[len-1] == '\n') |
169 | if (len == 1 && line[len-1] == '\n') |
174 | return; |
170 | return; |
175 | #ifndef HELENOS |
171 | #ifndef HELENOS |
176 | /* Null terminate line */ |
172 | /* Null terminate line */ |