diff options
Diffstat (limited to 'sed.c')
-rw-r--r-- | sed.c | 17 |
1 files changed, 10 insertions, 7 deletions
@@ -333,17 +333,20 @@ static int parse_edit_cmd(struct sed_cmd *sed_cmd, const char *editstr) | |||
333 | } | 333 | } |
334 | 334 | ||
335 | out: | 335 | out: |
336 | ptr[idx] = '\n'; | ||
337 | ptr[idx+1] = 0; | ||
338 | |||
339 | /* this accounts for discrepancies between the modified string and the | 336 | /* this accounts for discrepancies between the modified string and the |
340 | * original string passed in to this function */ | 337 | * original string passed in to this function */ |
341 | idx += slashes_eaten; | 338 | idx += slashes_eaten; |
342 | 339 | ||
343 | /* this accounts for the fact that A) we started at index 3, not at index | 340 | /* figure out if we need to add a newline */ |
344 | * 0 and B) that we added an extra '\n' at the end (if you think the next | 341 | if (ptr[idx-1] != '\n') { |
345 | * line should read 'idx += 4' remember, arrays are zero-based) */ | 342 | ptr[idx] = '\n'; |
346 | idx += 3; | 343 | idx++; |
344 | } | ||
345 | |||
346 | /* terminate string */ | ||
347 | ptr[idx]= 0; | ||
348 | /* adjust for opening 2 chars [aic]\ */ | ||
349 | idx += 2; | ||
347 | 350 | ||
348 | return idx; | 351 | return idx; |
349 | } | 352 | } |