added new string functions and fixed get_file_name() for sed
- added qse_str_setlen() & qse_str_getlen() - changed get_file_name() to ignore trailing spaces of a file name.
This commit is contained in:
		| @ -1,5 +1,5 @@ | ||||
| /* | ||||
|  * $Id: str_dyn.c 109 2009-03-24 01:44:31Z hyunghwan.chung $ | ||||
|  * $Id: str_dyn.c 110 2009-03-24 05:52:27Z hyunghwan.chung $ | ||||
|  * | ||||
|    Copyright 2006-2009 Chung, Hyung-Hwan. | ||||
|  | ||||
| @ -159,6 +159,31 @@ qse_size_t qse_str_setcapa (qse_str_t* str, qse_size_t capa) | ||||
| 	return str->capa; | ||||
| } | ||||
|  | ||||
| qse_size_t qse_str_getlen (qse_str_t* str) | ||||
| { | ||||
| 	return QSE_STR_LEN (str); | ||||
| } | ||||
|  | ||||
| qse_size_t qse_str_setlen (qse_str_t* str, qse_size_t len) | ||||
| { | ||||
| 	if (len == str->len) return len; | ||||
| 	if (len < str->len)  | ||||
| 	{ | ||||
| 		str->len = len; | ||||
| 		str->ptr[len] = QSE_T('\0');	 | ||||
| 		return len; | ||||
| 	} | ||||
|  | ||||
| 	if (len > str->capa) | ||||
| 	{ | ||||
| 		if (qse_str_setcapa (str, len) == (qse_size_t)-1)  | ||||
| 			return (qse_size_t)-1; | ||||
| 	} | ||||
|  | ||||
| 	while (str->len < len) str->ptr[str->len++] = QSE_T(' '); | ||||
| 	return str->len; | ||||
| } | ||||
|  | ||||
| void qse_str_clear (qse_str_t* str) | ||||
| { | ||||
| 	str->len = 0; | ||||
|  | ||||
| @ -580,11 +580,7 @@ static int get_file_name (qse_sed_t* sed, qse_sed_cmd_t* cmd) | ||||
|  | ||||
| 	if (trailing_spaces > 0) | ||||
| 	{ | ||||
| 		qse_str_delete ( | ||||
| 			t,  | ||||
| 			QSE_STR_LEN(t) - trailing_spaces, | ||||
| 			trailing_spaces | ||||
| 		); | ||||
| 		qse_str_setlen (t, QSE_STR_LEN(t) - trailing_spaces); | ||||
| 	} | ||||
|  | ||||
| 	qse_str_yield (t, &cmd->u.filename, 0); | ||||
|  | ||||
		Reference in New Issue
	
	Block a user