コード例 #1
0
ファイル: archive_util.c プロジェクト: vocho/qnxpkgsrcmirror
void
archive_set_error(struct archive *a, int error_number, const char *fmt, ...)
{
	va_list ap;
#ifdef HAVE_STRERROR_R
	char errbuff[512];
#endif
	char *errp;

	a->archive_error_number = error_number;
	if (fmt == NULL) {
		a->error = NULL;
		return;
	}

	va_start(ap, fmt);
	archive_string_vsprintf(&(a->error_string), fmt, ap);
	if (error_number > 0) {
		archive_strcat(&(a->error_string), ": ");
#ifdef HAVE_STRERROR_R
#ifdef STRERROR_R_CHAR_P
		errp = strerror_r(error_number, errbuff, sizeof(errbuff));
#else
		strerror_r(error_number, errbuff, sizeof(errbuff));
		errp = errbuff;
#endif
#else
		/* Note: this is not threadsafe! */
		errp = strerror(error_number);
#endif
		archive_strcat(&(a->error_string), errp);
	}
	a->error = a->error_string.s;
	va_end(ap);
}
コード例 #2
0
void
archive_string_sprintf(struct archive_string *as, const char *fmt, ...)
{
	va_list ap;

	va_start(ap, fmt);
	archive_string_vsprintf(as, fmt, ap);
	va_end(ap);
}
コード例 #3
0
ファイル: archive_util.c プロジェクト: marccodes/lfl
void
archive_set_error(struct archive *a, int error_number, const char *fmt, ...)
{
	va_list ap;

	a->archive_error_number = error_number;
	if (fmt == NULL) {
		a->error = NULL;
		return;
	}

	va_start(ap, fmt);
	archive_string_vsprintf(&(a->error_string), fmt, ap);
	va_end(ap);
	a->error = a->error_string.s;
}