Esempio n. 1
0
static int process_trimming(const char *input, char **storage, const char *input_end, int fail_when_empty)
{
    const char *left, *right;
    int trimmed_input_length;

    left = skip_leading_spaces(input, input_end);
    right = skip_trailing_spaces(input, input_end - 1);

    if (right < left) {
        if (fail_when_empty)
            return git__throw(GIT_EINVALIDARGS, "Failed to trim. Input is either empty or only contains spaces");
        else
            right = left - 1;
    }

    trimmed_input_length = right - left + 1;

    *storage = git__malloc(trimmed_input_length + 1);
    if (*storage == NULL)
        return GIT_ENOMEM;

    memcpy(*storage, left, trimmed_input_length);
    (*storage)[trimmed_input_length] = 0;

    return GIT_SUCCESS;
}
Esempio n. 2
0
static int process_trimming(const char *input, char **storage, const char *input_end, int fail_when_empty)
{
	const char *left, *right;
	size_t trimmed_input_length;

	assert(storage);

	left = skip_leading_spaces(input, input_end);
	right = skip_trailing_spaces(input, input_end - 1);

	if (right < left) {
		if (fail_when_empty)
			return signature_error("input is either empty of contains only spaces");

		right = left - 1;
	}

	trimmed_input_length = right - left + 1;

	*storage = git__malloc(trimmed_input_length + 1);
	GITERR_CHECK_ALLOC(*storage);

	memcpy(*storage, left, trimmed_input_length);
	(*storage)[trimmed_input_length] = 0;

	return 0;
}