Changeset 0290b2a
- Timestamp:
- Feb 4, 2011, 3:49:44 PM (14 years ago)
- Branches:
- master, release-1.10, release-1.8, release-1.9
- Children:
- c6b1782
- Parents:
- df3a1f4
- git-author:
- David Benjamin <davidben@mit.edu> (01/24/11 23:31:49)
- git-committer:
- David Benjamin <davidben@mit.edu> (02/04/11 15:49:44)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
util.c
r65c753e r0290b2a 112 112 GPtrArray *argv; 113 113 int i, len, between=1; 114 char*curarg;114 GString *curarg; 115 115 char quote; 116 116 117 117 argv = g_ptr_array_new_with_free_func(owl_free); 118 118 len=strlen(line); 119 curarg=owl_malloc(len+10); 120 strcpy(curarg, ""); 119 curarg = g_string_new(""); 121 120 quote='\0'; 122 121 *argc=0; … … 148 147 149 148 /* if another type of quote is open then treat this as a literal */ 150 curarg[strlen(curarg)+1]='\0'; 151 curarg[strlen(curarg)]=line[i]; 149 g_string_append_c(curarg, line[i]); 152 150 continue; 153 151 } … … 155 153 /* if it's not a space or end of command, then use it */ 156 154 if (line[i]!=' ' && line[i]!='\t' && line[i]!='\n' && line[i]!='\0') { 157 curarg[strlen(curarg)+1]='\0'; 158 curarg[strlen(curarg)]=line[i]; 155 g_string_append_c(curarg, line[i]); 159 156 continue; 160 157 } … … 163 160 if (quote=='\0') { 164 161 /* add the argument */ 165 g_ptr_array_add(argv, owl_strdup(curarg));166 strcpy(curarg,"");162 g_ptr_array_add(argv, g_string_free(curarg, false)); 163 curarg = g_string_new(""); 167 164 between=1; 168 165 continue; … … 170 167 171 168 /* if it is a space and we're in quotes, then use it */ 172 curarg[strlen(curarg)+1]='\0'; 173 curarg[strlen(curarg)]=line[i]; 169 g_string_append_c(curarg, line[i]); 174 170 } 175 171 176 172 *argc = argv->len; 177 173 g_ptr_array_add(argv, NULL); 178 owl_free(curarg);174 g_string_free(curarg, true); 179 175 180 176 /* check for unbalanced quotes */
Note: See TracChangeset
for help on using the changeset viewer.