Просмотр исходного кода

libdpkg: Add new dpkg_error_print() function

Guillem Jover лет назад: 11
Родитель
Сommit
7614571bb8
3 измененных файлов с 22 добавлено и 0 удалено
  1. 18 0
      lib/dpkg/error.c
  2. 3 0
      lib/dpkg/error.h
  3. 1 0
      lib/dpkg/libdpkg.map

+ 18 - 0
lib/dpkg/error.c

@@ -84,6 +84,24 @@ dpkg_put_errno(struct dpkg_error *err, const char *fmt, ...)
 	return -1;
 }
 
+void
+dpkg_error_print(struct dpkg_error *err, const char *fmt, ...)
+{
+	va_list args;
+	char *str;
+
+	va_start(args, fmt);
+	m_vasprintf(&str, fmt, args);
+	va_end(args);
+
+	if (err->type == DPKG_MSG_WARN)
+		warning("%s: %s", str, err->str);
+	else
+		ohshit("%s: %s", str, err->str);
+
+	free(str);
+}
+
 void
 dpkg_error_destroy(struct dpkg_error *err)
 {

+ 3 - 0
lib/dpkg/error.h

@@ -52,6 +52,9 @@ int dpkg_put_error(struct dpkg_error *err, const char *fmt, ...)
 int dpkg_put_errno(struct dpkg_error *err, const char *fmt, ...)
 	DPKG_ATTR_PRINTF(2);
 
+void dpkg_error_print(struct dpkg_error *err, const char *fmt, ...)
+	DPKG_ATTR_PRINTF(2);
+
 void dpkg_error_destroy(struct dpkg_error *err);
 
 /** @} */

+ 1 - 0
lib/dpkg/libdpkg.map

@@ -1,6 +1,7 @@
 LIBDPKG_0 {
 global:
 	# Error reporting
+	dpkg_error_print;
 	dpkg_error_destroy;
 
 	# Charset and string functions