e2fsprogs: add patch for heimdal libcom_err compat, from Archlinux.

--HG--
extra : convert_revision : 009b095f885aa9c889055b0efbacc9b0839d9284
This commit is contained in:
Juan RP 2010-03-06 03:37:30 +01:00
parent 0596d4f941
commit 2e0861406b
3 changed files with 64 additions and 0 deletions

View File

@ -5,6 +5,8 @@ long_desc="${long_desc}
This package contains files for development, headers, static libs, etc."
revision=1
Add_dependency run libuuid-devel
Add_dependency run libblkid-devel
Add_dependency run e2fsprogs-libs

View File

@ -5,6 +5,8 @@ long_desc="${long_desc}
This package contains the shared libraries."
revision=1
Add_dependency run glibc
Add_dependency run libblkid

View File

@ -0,0 +1,60 @@
From 527d258d605e5a1dd841bccc6091c0b894a10411 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Wed, 27 Jan 2010 16:02:08 +0000
Subject: [PATCH] implement com_right_r()
For heimdal compat
---
lib/et/com_err.h | 2 ++
lib/et/com_right.c | 14 ++++++++++++++
2 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/lib/et/com_err.h b/lib/et/com_err.h
index de0146e..eb2106f 100644
--- lib/et/com_err.h
+++ lib/et/com_err.h
@@ -16,6 +16,7 @@
#define COM_ERR_ATTR(x)
#endif
+#include <stddef.h>
#include <stdarg.h>
typedef long errcode_t;
@@ -49,6 +50,7 @@ extern void add_to_error_table(struct et_list *new_table);
/* Provided for Heimdall compatibility */
extern const char *com_right(struct et_list *list, long code);
+extern const char *com_right_r(struct et_list *list, long code, char *str, size_t len);
extern void initialize_error_table_r(struct et_list **list,
const char **messages,
int num_errors,
diff --git a/lib/et/com_right.c b/lib/et/com_right.c
index 173fd1a..dbc1e41 100644
--- lib/et/com_right.c
+++ lib/et/com_right.c
@@ -55,6 +55,21 @@ com_right(struct et_list *list, long code)
return NULL;
}
+const char *
+com_right_r(struct et_list *list, long code, char *str, size_t len)
+{
+ struct et_list *p;
+ for (p = list; p; p = p->next) {
+ if (code >= p->table->base && code < p->table->base + p->table->n_msgs) {
+ strncpy(str, p->table->msgs[code - p->table->base], len);
+ str[len-1] = '\0';
+ return str;
+ }
+ }
+ return NULL;
+}
+
+
struct foobar {
struct et_list etl;
struct error_table tab;
--
1.6.6.1